1 #ifndef __VMLINUX_H__
2 #define __VMLINUX_H__
3 
4 #ifndef BPF_NO_PRESERVE_ACCESS_INDEX
5 #pragma clang attribute push (__attribute__((preserve_access_index)), apply_to = record)
6 #endif
7 
8 typedef signed char __s8;
9 
10 typedef unsigned char __u8;
11 
12 typedef short unsigned int __u16;
13 
14 typedef int __s32;
15 
16 typedef unsigned int __u32;
17 
18 typedef long long int __s64;
19 
20 typedef long long unsigned int __u64;
21 
22 typedef __s8 s8;
23 
24 typedef __u8 u8;
25 
26 typedef __u16 u16;
27 
28 typedef __s32 s32;
29 
30 typedef __u32 u32;
31 
32 typedef __s64 s64;
33 
34 typedef __u64 u64;
35 
36 enum {
37 	false = 0,
38 	true = 1,
39 };
40 
41 typedef long int __kernel_long_t;
42 
43 typedef long unsigned int __kernel_ulong_t;
44 
45 typedef int __kernel_pid_t;
46 
47 typedef unsigned int __kernel_uid32_t;
48 
49 typedef unsigned int __kernel_gid32_t;
50 
51 typedef __kernel_ulong_t __kernel_size_t;
52 
53 typedef __kernel_long_t __kernel_ssize_t;
54 
55 typedef long long int __kernel_loff_t;
56 
57 typedef long long int __kernel_time64_t;
58 
59 typedef __kernel_long_t __kernel_clock_t;
60 
61 typedef int __kernel_timer_t;
62 
63 typedef int __kernel_clockid_t;
64 
65 typedef unsigned int __poll_t;
66 
67 typedef u32 __kernel_dev_t;
68 
69 typedef __kernel_dev_t dev_t;
70 
71 typedef short unsigned int umode_t;
72 
73 typedef __kernel_pid_t pid_t;
74 
75 typedef __kernel_clockid_t clockid_t;
76 
77 typedef _Bool bool;
78 
79 typedef __kernel_uid32_t uid_t;
80 
81 typedef __kernel_gid32_t gid_t;
82 
83 typedef __kernel_loff_t loff_t;
84 
85 typedef __kernel_size_t size_t;
86 
87 typedef __kernel_ssize_t ssize_t;
88 
89 typedef s32 int32_t;
90 
91 typedef u32 uint32_t;
92 
93 typedef u64 uint64_t;
94 
95 typedef u64 sector_t;
96 
97 typedef u64 blkcnt_t;
98 
99 typedef unsigned int gfp_t;
100 
101 typedef unsigned int fmode_t;
102 
103 typedef u64 phys_addr_t;
104 
105 typedef long unsigned int irq_hw_number_t;
106 
107 typedef struct {
108 	int counter;
109 } atomic_t;
110 
111 typedef struct {
112 	s64 counter;
113 } atomic64_t;
114 
115 struct list_head {
116 	struct list_head *next;
117 	struct list_head *prev;
118 };
119 
120 struct hlist_node;
121 
122 struct hlist_head {
123 	struct hlist_node *first;
124 };
125 
126 struct hlist_node {
127 	struct hlist_node *next;
128 	struct hlist_node **pprev;
129 };
130 
131 struct callback_head {
132 	struct callback_head *next;
133 	void (*func)(struct callback_head *);
134 };
135 
136 struct kernel_symbol {
137 	long unsigned int value;
138 	const char *name;
139 	const char *namespace;
140 };
141 
142 typedef atomic64_t atomic_long_t;
143 
144 typedef int (*initcall_t)();
145 
146 struct lock_class_key {};
147 
148 struct fs_context;
149 
150 struct fs_parameter_spec;
151 
152 struct dentry;
153 
154 struct super_block;
155 
156 struct module;
157 
158 struct file_system_type {
159 	const char *name;
160 	int fs_flags;
161 	int (*init_fs_context)(struct fs_context *);
162 	const struct fs_parameter_spec *parameters;
163 	struct dentry * (*mount)(struct file_system_type *, int, const char *, void *);
164 	void (*kill_sb)(struct super_block *);
165 	struct module *owner;
166 	struct file_system_type *next;
167 	struct hlist_head fs_supers;
168 	struct lock_class_key s_lock_key;
169 	struct lock_class_key s_umount_key;
170 	struct lock_class_key s_vfs_rename_key;
171 	struct lock_class_key s_writers_key[3];
172 	struct lock_class_key i_lock_key;
173 	struct lock_class_key i_mutex_key;
174 	struct lock_class_key invalidate_lock_key;
175 	struct lock_class_key i_mutex_dir_key;
176 };
177 
178 struct obs_kernel_param {
179 	const char *str;
180 	int (*setup_func)(char *);
181 	int early;
182 };
183 
184 struct qspinlock {
185 	union {
186 		atomic_t val;
187 		struct {
188 			u8 locked;
189 			u8 pending;
190 		};
191 		struct {
192 			u16 locked_pending;
193 			u16 tail;
194 		};
195 	};
196 };
197 
198 typedef struct qspinlock arch_spinlock_t;
199 
200 struct qrwlock {
201 	union {
202 		atomic_t cnts;
203 		struct {
204 			u8 wlocked;
205 			u8 __lstate[3];
206 		};
207 	};
208 	arch_spinlock_t wait_lock;
209 };
210 
211 typedef struct qrwlock arch_rwlock_t;
212 
213 struct lockdep_map {};
214 
215 struct raw_spinlock {
216 	arch_spinlock_t raw_lock;
217 };
218 
219 typedef struct raw_spinlock raw_spinlock_t;
220 
221 struct ratelimit_state {
222 	raw_spinlock_t lock;
223 	int interval;
224 	int burst;
225 	int printed;
226 	int missed;
227 	long unsigned int begin;
228 	long unsigned int flags;
229 };
230 
231 enum module_state {
232 	MODULE_STATE_LIVE = 0,
233 	MODULE_STATE_COMING = 1,
234 	MODULE_STATE_GOING = 2,
235 	MODULE_STATE_UNFORMED = 3,
236 };
237 
238 struct refcount_struct {
239 	atomic_t refs;
240 };
241 
242 typedef struct refcount_struct refcount_t;
243 
244 struct kref {
245 	refcount_t refcount;
246 };
247 
248 struct kset;
249 
250 struct kobj_type;
251 
252 struct kernfs_node;
253 
254 struct kobject {
255 	const char *name;
256 	struct list_head entry;
257 	struct kobject *parent;
258 	struct kset *kset;
259 	const struct kobj_type *ktype;
260 	struct kernfs_node *sd;
261 	struct kref kref;
262 	unsigned int state_initialized: 1;
263 	unsigned int state_in_sysfs: 1;
264 	unsigned int state_add_uevent_sent: 1;
265 	unsigned int state_remove_uevent_sent: 1;
266 	unsigned int uevent_suppress: 1;
267 };
268 
269 struct module_param_attrs;
270 
271 struct completion;
272 
273 struct module_kobject {
274 	struct kobject kobj;
275 	struct module *mod;
276 	struct kobject *drivers_dir;
277 	struct module_param_attrs *mp;
278 	struct completion *kobj_completion;
279 };
280 
281 struct optimistic_spin_queue {
282 	atomic_t tail;
283 };
284 
285 struct mutex {
286 	atomic_long_t owner;
287 	raw_spinlock_t wait_lock;
288 	struct optimistic_spin_queue osq;
289 	struct list_head wait_list;
290 };
291 
292 struct rb_node {
293 	long unsigned int __rb_parent_color;
294 	struct rb_node *rb_right;
295 	struct rb_node *rb_left;
296 };
297 
298 struct latch_tree_node {
299 	struct rb_node node[2];
300 };
301 
302 struct mod_tree_node {
303 	struct module *mod;
304 	struct latch_tree_node node;
305 };
306 
307 struct module_layout {
308 	void *base;
309 	unsigned int size;
310 	unsigned int text_size;
311 	unsigned int ro_size;
312 	unsigned int ro_after_init_size;
313 	struct mod_tree_node mtn;
314 };
315 
316 struct mod_section {
317 	int shndx;
318 	int num_entries;
319 	int max_entries;
320 };
321 
322 struct plt_entry;
323 
324 struct mod_arch_specific {
325 	struct mod_section got;
326 	struct mod_section plt;
327 	struct mod_section plt_idx;
328 	struct plt_entry *ftrace_trampolines;
329 };
330 
331 struct elf64_sym;
332 
333 typedef struct elf64_sym Elf64_Sym;
334 
335 struct mod_kallsyms {
336 	Elf64_Sym *symtab;
337 	unsigned int num_symtab;
338 	char *strtab;
339 	char *typetab;
340 };
341 
342 struct module_attribute;
343 
344 struct kernel_param;
345 
346 struct exception_table_entry;
347 
348 struct bug_entry;
349 
350 struct module_sect_attrs;
351 
352 struct module_notes_attrs;
353 
354 struct tracepoint;
355 
356 typedef struct tracepoint * const tracepoint_ptr_t;
357 
358 struct srcu_struct;
359 
360 struct bpf_raw_event_map;
361 
362 struct trace_event_call;
363 
364 struct trace_eval_map;
365 
366 struct module {
367 	enum module_state state;
368 	struct list_head list;
369 	char name[56];
370 	unsigned char build_id[20];
371 	struct module_kobject mkobj;
372 	struct module_attribute *modinfo_attrs;
373 	const char *version;
374 	const char *srcversion;
375 	struct kobject *holders_dir;
376 	const struct kernel_symbol *syms;
377 	const s32 *crcs;
378 	unsigned int num_syms;
379 	struct mutex param_lock;
380 	struct kernel_param *kp;
381 	unsigned int num_kp;
382 	unsigned int num_gpl_syms;
383 	const struct kernel_symbol *gpl_syms;
384 	const s32 *gpl_crcs;
385 	bool using_gplonly_symbols;
386 	bool async_probe_requested;
387 	unsigned int num_exentries;
388 	struct exception_table_entry *extable;
389 	int (*init)();
390 	long: 64;
391 	long: 64;
392 	long: 64;
393 	long: 64;
394 	long: 64;
395 	struct module_layout core_layout;
396 	struct module_layout init_layout;
397 	struct mod_arch_specific arch;
398 	long unsigned int taints;
399 	unsigned int num_bugs;
400 	struct list_head bug_list;
401 	struct bug_entry *bug_table;
402 	struct mod_kallsyms *kallsyms;
403 	struct mod_kallsyms core_kallsyms;
404 	struct module_sect_attrs *sect_attrs;
405 	struct module_notes_attrs *notes_attrs;
406 	char *args;
407 	void *percpu;
408 	unsigned int percpu_size;
409 	void *noinstr_text_start;
410 	unsigned int noinstr_text_size;
411 	unsigned int num_tracepoints;
412 	tracepoint_ptr_t *tracepoints_ptrs;
413 	unsigned int num_srcu_structs;
414 	struct srcu_struct **srcu_struct_ptrs;
415 	unsigned int num_bpf_raw_events;
416 	struct bpf_raw_event_map *bpf_raw_events;
417 	unsigned int btf_data_size;
418 	void *btf_data;
419 	unsigned int num_trace_bprintk_fmt;
420 	const char **trace_bprintk_fmt_start;
421 	struct trace_event_call **trace_events;
422 	unsigned int num_trace_events;
423 	struct trace_eval_map **trace_evals;
424 	unsigned int num_trace_evals;
425 	unsigned int num_ftrace_callsites;
426 	long unsigned int *ftrace_callsites;
427 	void *kprobes_text_start;
428 	unsigned int kprobes_text_size;
429 	long unsigned int *kprobe_blacklist;
430 	unsigned int num_kprobe_blacklist;
431 	struct list_head source_list;
432 	struct list_head target_list;
433 	void (*exit)();
434 	atomic_t refcnt;
435 	long: 32;
436 	long: 64;
437 	long: 64;
438 	long: 64;
439 	long: 64;
440 	long: 64;
441 };
442 
443 struct kernel_param_ops {
444 	unsigned int flags;
445 	int (*set)(const char *, const struct kernel_param *);
446 	int (*get)(char *, const struct kernel_param *);
447 	void (*free)(void *);
448 };
449 
450 typedef void *fl_owner_t;
451 
452 struct file;
453 
454 struct kiocb;
455 
456 struct iov_iter;
457 
458 struct io_comp_batch;
459 
460 struct dir_context;
461 
462 struct poll_table_struct;
463 
464 struct vm_area_struct;
465 
466 struct inode;
467 
468 struct file_lock;
469 
470 struct page;
471 
472 struct pipe_inode_info;
473 
474 struct seq_file;
475 
476 struct io_uring_cmd;
477 
478 struct file_operations {
479 	struct module *owner;
480 	loff_t (*llseek)(struct file *, loff_t, int);
481 	ssize_t (*read)(struct file *, char *, size_t, loff_t *);
482 	ssize_t (*write)(struct file *, const char *, size_t, loff_t *);
483 	ssize_t (*read_iter)(struct kiocb *, struct iov_iter *);
484 	ssize_t (*write_iter)(struct kiocb *, struct iov_iter *);
485 	int (*iopoll)(struct kiocb *, struct io_comp_batch *, unsigned int);
486 	int (*iterate)(struct file *, struct dir_context *);
487 	int (*iterate_shared)(struct file *, struct dir_context *);
488 	__poll_t (*poll)(struct file *, struct poll_table_struct *);
489 	long int (*unlocked_ioctl)(struct file *, unsigned int, long unsigned int);
490 	long int (*compat_ioctl)(struct file *, unsigned int, long unsigned int);
491 	int (*mmap)(struct file *, struct vm_area_struct *);
492 	long unsigned int mmap_supported_flags;
493 	int (*open)(struct inode *, struct file *);
494 	int (*flush)(struct file *, fl_owner_t);
495 	int (*release)(struct inode *, struct file *);
496 	int (*fsync)(struct file *, loff_t, loff_t, int);
497 	int (*fasync)(int, struct file *, int);
498 	int (*lock)(struct file *, int, struct file_lock *);
499 	ssize_t (*sendpage)(struct file *, struct page *, int, size_t, loff_t *, int);
500 	long unsigned int (*get_unmapped_area)(struct file *, long unsigned int, long unsigned int, long unsigned int, long unsigned int);
501 	int (*check_flags)(int);
502 	int (*flock)(struct file *, int, struct file_lock *);
503 	ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);
504 	ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
505 	int (*setlease)(struct file *, long int, struct file_lock **, void **);
506 	long int (*fallocate)(struct file *, int, loff_t, loff_t);
507 	void (*show_fdinfo)(struct seq_file *, struct file *);
508 	ssize_t (*copy_file_range)(struct file *, loff_t, struct file *, loff_t, size_t, unsigned int);
509 	loff_t (*remap_file_range)(struct file *, loff_t, struct file *, loff_t, loff_t, unsigned int);
510 	int (*fadvise)(struct file *, loff_t, loff_t, int);
511 	int (*uring_cmd)(struct io_uring_cmd *, unsigned int);
512 	int (*uring_cmd_iopoll)(struct io_uring_cmd *, struct io_comp_batch *, unsigned int);
513 };
514 
515 struct static_call_key {
516 	void *func;
517 };
518 
519 struct bug_entry {
520 	int bug_addr_disp;
521 	int file_disp;
522 	short unsigned int line;
523 	short unsigned int flags;
524 };
525 
526 typedef __s64 time64_t;
527 
528 struct __kernel_timespec {
529 	__kernel_time64_t tv_sec;
530 	long long int tv_nsec;
531 };
532 
533 struct timespec64 {
534 	time64_t tv_sec;
535 	long int tv_nsec;
536 };
537 
538 enum timespec_type {
539 	TT_NONE = 0,
540 	TT_NATIVE = 1,
541 	TT_COMPAT = 2,
542 };
543 
544 typedef s32 old_time32_t;
545 
546 struct old_timespec32 {
547 	old_time32_t tv_sec;
548 	s32 tv_nsec;
549 };
550 
551 struct pollfd {
552 	int fd;
553 	short int events;
554 	short int revents;
555 };
556 
557 struct restart_block {
558 	long unsigned int arch_data;
559 	long int (*fn)(struct restart_block *);
560 	union {
561 		struct {
562 			u32 *uaddr;
563 			u32 val;
564 			u32 flags;
565 			u32 bitset;
566 			u64 time;
567 			u32 *uaddr2;
568 		} futex;
569 		struct {
570 			clockid_t clockid;
571 			enum timespec_type type;
572 			union {
573 				struct __kernel_timespec *rmtp;
574 				struct old_timespec32 *compat_rmtp;
575 			};
576 			u64 expires;
577 		} nanosleep;
578 		struct {
579 			struct pollfd *ufds;
580 			int nfds;
581 			int has_timeout;
582 			long unsigned int tv_sec;
583 			long unsigned int tv_nsec;
584 		} poll;
585 	};
586 };
587 
588 struct cpumask {
589 	long unsigned int bits[1];
590 };
591 
592 typedef struct cpumask cpumask_t;
593 
594 typedef struct cpumask cpumask_var_t[1];
595 
596 struct seq_operations;
597 
598 struct seq_file {
599 	char *buf;
600 	size_t size;
601 	size_t from;
602 	size_t count;
603 	size_t pad_until;
604 	loff_t index;
605 	loff_t read_pos;
606 	struct mutex lock;
607 	const struct seq_operations *op;
608 	int poll_event;
609 	const struct file *file;
610 	void *private;
611 };
612 
613 union fpureg {
614 	__u32 val32[8];
615 	__u64 val64[4];
616 };
617 
618 struct loongarch_fpu {
619 	unsigned int fcsr;
620 	uint64_t fcc;
621 	union fpureg fpr[32];
622 };
623 
624 struct loongarch_vdso_info;
625 
626 struct thread_struct {
627 	long unsigned int reg01;
628 	long unsigned int reg03;
629 	long unsigned int reg22;
630 	long unsigned int reg23;
631 	long unsigned int reg24;
632 	long unsigned int reg25;
633 	long unsigned int reg26;
634 	long unsigned int reg27;
635 	long unsigned int reg28;
636 	long unsigned int reg29;
637 	long unsigned int reg30;
638 	long unsigned int reg31;
639 	long unsigned int sched_ra;
640 	long unsigned int sched_cfa;
641 	long unsigned int csr_prmd;
642 	long unsigned int csr_crmd;
643 	long unsigned int csr_euen;
644 	long unsigned int csr_ecfg;
645 	long unsigned int csr_badvaddr;
646 	long unsigned int scr0;
647 	long unsigned int scr1;
648 	long unsigned int scr2;
649 	long unsigned int scr3;
650 	long unsigned int eflags;
651 	long unsigned int trap_nr;
652 	long unsigned int error_code;
653 	struct loongarch_vdso_info *vdso;
654 	long: 64;
655 	struct loongarch_fpu fpu;
656 	long: 64;
657 	long: 64;
658 };
659 
660 typedef unsigned int vm_fault_t;
661 
662 struct vm_fault;
663 
664 struct vm_special_mapping {
665 	const char *name;
666 	struct page **pages;
667 	vm_fault_t (*fault)(const struct vm_special_mapping *, struct vm_area_struct *, struct vm_fault *);
668 	int (*mremap)(const struct vm_special_mapping *, struct vm_area_struct *);
669 };
670 
671 struct loongarch_vdso_info {
672 	void *vdso;
673 	long unsigned int size;
674 	long unsigned int offset_sigreturn;
675 	struct vm_special_mapping code_mapping;
676 	struct vm_special_mapping data_mapping;
677 };
678 
679 struct task_struct;
680 
681 struct pt_regs;
682 
683 struct thread_info {
684 	struct task_struct *task;
685 	long unsigned int flags;
686 	long unsigned int tp_value;
687 	__u32 cpu;
688 	int preempt_count;
689 	struct pt_regs *regs;
690 	long unsigned int syscall;
691 	long unsigned int syscall_work;
692 };
693 
694 struct llist_node {
695 	struct llist_node *next;
696 };
697 
698 struct __call_single_node {
699 	struct llist_node llist;
700 	union {
701 		unsigned int u_flags;
702 		atomic_t a_flags;
703 	};
704 	u16 src;
705 	u16 dst;
706 };
707 
708 struct load_weight {
709 	long unsigned int weight;
710 	u32 inv_weight;
711 };
712 
713 struct util_est {
714 	unsigned int enqueued;
715 	unsigned int ewma;
716 };
717 
718 struct sched_avg {
719 	u64 last_update_time;
720 	u64 load_sum;
721 	u64 runnable_sum;
722 	u32 util_sum;
723 	u32 period_contrib;
724 	long unsigned int load_avg;
725 	long unsigned int runnable_avg;
726 	long unsigned int util_avg;
727 	struct util_est util_est;
728 };
729 
730 struct cfs_rq;
731 
732 struct sched_entity {
733 	struct load_weight load;
734 	struct rb_node run_node;
735 	struct list_head group_node;
736 	unsigned int on_rq;
737 	u64 exec_start;
738 	u64 sum_exec_runtime;
739 	u64 vruntime;
740 	u64 prev_sum_exec_runtime;
741 	u64 nr_migrations;
742 	int depth;
743 	struct sched_entity *parent;
744 	struct cfs_rq *cfs_rq;
745 	struct cfs_rq *my_q;
746 	long unsigned int runnable_weight;
747 	long: 64;
748 	long: 64;
749 	long: 64;
750 	long: 64;
751 	long: 64;
752 	long: 64;
753 	struct sched_avg avg;
754 };
755 
756 struct rt_rq;
757 
758 struct sched_rt_entity {
759 	struct list_head run_list;
760 	long unsigned int timeout;
761 	long unsigned int watchdog_stamp;
762 	unsigned int time_slice;
763 	short unsigned int on_rq;
764 	short unsigned int on_list;
765 	struct sched_rt_entity *back;
766 	struct sched_rt_entity *parent;
767 	struct rt_rq *rt_rq;
768 	struct rt_rq *my_q;
769 };
770 
771 typedef s64 ktime_t;
772 
773 struct timerqueue_node {
774 	struct rb_node node;
775 	ktime_t expires;
776 };
777 
778 enum hrtimer_restart {
779 	HRTIMER_NORESTART = 0,
780 	HRTIMER_RESTART = 1,
781 };
782 
783 struct hrtimer_clock_base;
784 
785 struct hrtimer {
786 	struct timerqueue_node node;
787 	ktime_t _softexpires;
788 	enum hrtimer_restart (*function)(struct hrtimer *);
789 	struct hrtimer_clock_base *base;
790 	u8 state;
791 	u8 is_rel;
792 	u8 is_soft;
793 	u8 is_hard;
794 };
795 
796 struct sched_dl_entity {
797 	struct rb_node rb_node;
798 	u64 dl_runtime;
799 	u64 dl_deadline;
800 	u64 dl_period;
801 	u64 dl_bw;
802 	u64 dl_density;
803 	s64 runtime;
804 	u64 deadline;
805 	unsigned int flags;
806 	unsigned int dl_throttled: 1;
807 	unsigned int dl_yielded: 1;
808 	unsigned int dl_non_contending: 1;
809 	unsigned int dl_overrun: 1;
810 	struct hrtimer dl_timer;
811 	struct hrtimer inactive_timer;
812 	struct sched_dl_entity *pi_se;
813 };
814 
815 struct sched_statistics {
816 	u64 wait_start;
817 	u64 wait_max;
818 	u64 wait_count;
819 	u64 wait_sum;
820 	u64 iowait_count;
821 	u64 iowait_sum;
822 	u64 sleep_start;
823 	u64 sleep_max;
824 	s64 sum_sleep_runtime;
825 	u64 block_start;
826 	u64 block_max;
827 	s64 sum_block_runtime;
828 	u64 exec_max;
829 	u64 slice_max;
830 	u64 nr_migrations_cold;
831 	u64 nr_failed_migrations_affine;
832 	u64 nr_failed_migrations_running;
833 	u64 nr_failed_migrations_hot;
834 	u64 nr_forced_migrations;
835 	u64 nr_wakeups;
836 	u64 nr_wakeups_sync;
837 	u64 nr_wakeups_migrate;
838 	u64 nr_wakeups_local;
839 	u64 nr_wakeups_remote;
840 	u64 nr_wakeups_affine;
841 	u64 nr_wakeups_affine_attempts;
842 	u64 nr_wakeups_passive;
843 	u64 nr_wakeups_idle;
844 	long: 64;
845 	long: 64;
846 	long: 64;
847 	long: 64;
848 };
849 
850 union rcu_special {
851 	struct {
852 		u8 blocked;
853 		u8 need_qs;
854 		u8 exp_hint;
855 		u8 need_mb;
856 	} b;
857 	u32 s;
858 };
859 
860 struct sched_info {
861 	long unsigned int pcount;
862 	long long unsigned int run_delay;
863 	long long unsigned int last_arrival;
864 	long long unsigned int last_queued;
865 };
866 
867 struct plist_node {
868 	int prio;
869 	struct list_head prio_list;
870 	struct list_head node_list;
871 };
872 
873 struct prev_cputime {
874 	u64 utime;
875 	u64 stime;
876 	raw_spinlock_t lock;
877 };
878 
879 struct rb_root {
880 	struct rb_node *rb_node;
881 };
882 
883 struct rb_root_cached {
884 	struct rb_root rb_root;
885 	struct rb_node *rb_leftmost;
886 };
887 
888 struct timerqueue_head {
889 	struct rb_root_cached rb_root;
890 };
891 
892 struct posix_cputimer_base {
893 	u64 nextevt;
894 	struct timerqueue_head tqhead;
895 };
896 
897 struct posix_cputimers {
898 	struct posix_cputimer_base bases[3];
899 	unsigned int timers_active;
900 	unsigned int expiry_active;
901 };
902 
903 struct sem_undo_list;
904 
905 struct sysv_sem {
906 	struct sem_undo_list *undo_list;
907 };
908 
909 struct sysv_shm {
910 	struct list_head shm_clist;
911 };
912 
913 typedef struct {
914 	long unsigned int sig[1];
915 } sigset_t;
916 
917 struct sigpending {
918 	struct list_head list;
919 	sigset_t signal;
920 };
921 
922 typedef struct {
923 	uid_t val;
924 } kuid_t;
925 
926 struct seccomp_filter;
927 
928 struct seccomp {
929 	int mode;
930 	atomic_t filter_count;
931 	struct seccomp_filter *filter;
932 };
933 
934 struct syscall_user_dispatch {
935 	char *selector;
936 	long unsigned int offset;
937 	long unsigned int len;
938 	bool on_dispatch;
939 };
940 
941 struct spinlock {
942 	union {
943 		struct raw_spinlock rlock;
944 	};
945 };
946 
947 typedef struct spinlock spinlock_t;
948 
949 struct wake_q_node {
950 	struct wake_q_node *next;
951 };
952 
953 struct task_io_accounting {
954 	u64 rchar;
955 	u64 wchar;
956 	u64 syscr;
957 	u64 syscw;
958 	u64 read_bytes;
959 	u64 write_bytes;
960 	u64 cancelled_write_bytes;
961 };
962 
963 typedef struct {
964 	long unsigned int bits[1];
965 } nodemask_t;
966 
967 struct seqcount {
968 	unsigned int sequence;
969 };
970 
971 typedef struct seqcount seqcount_t;
972 
973 struct seqcount_spinlock {
974 	seqcount_t seqcount;
975 };
976 
977 typedef struct seqcount_spinlock seqcount_spinlock_t;
978 
979 struct tlbflush_unmap_batch {};
980 
981 struct page_frag {
982 	struct page *page;
983 	__u32 offset;
984 	__u32 size;
985 };
986 
987 struct kmap_ctrl {};
988 
989 struct timer_list {
990 	struct hlist_node entry;
991 	long unsigned int expires;
992 	void (*function)(struct timer_list *);
993 	u32 flags;
994 };
995 
996 struct llist_head {
997 	struct llist_node *first;
998 };
999 
1000 struct sched_class;
1001 
1002 struct task_group;
1003 
1004 struct mm_struct;
1005 
1006 struct pid;
1007 
1008 struct cred;
1009 
1010 struct key;
1011 
1012 struct nameidata;
1013 
1014 struct fs_struct;
1015 
1016 struct files_struct;
1017 
1018 struct io_uring_task;
1019 
1020 struct nsproxy;
1021 
1022 struct signal_struct;
1023 
1024 struct sighand_struct;
1025 
1026 struct audit_context;
1027 
1028 struct rt_mutex_waiter;
1029 
1030 struct bio_list;
1031 
1032 struct blk_plug;
1033 
1034 struct reclaim_state;
1035 
1036 struct backing_dev_info;
1037 
1038 struct io_context;
1039 
1040 struct capture_control;
1041 
1042 struct kernel_siginfo;
1043 
1044 typedef struct kernel_siginfo kernel_siginfo_t;
1045 
1046 struct css_set;
1047 
1048 struct robust_list_head;
1049 
1050 struct futex_pi_state;
1051 
1052 struct perf_event_context;
1053 
1054 struct mempolicy;
1055 
1056 struct numa_group;
1057 
1058 struct rseq;
1059 
1060 struct task_delay_info;
1061 
1062 struct ftrace_ret_stack;
1063 
1064 struct mem_cgroup;
1065 
1066 struct request_queue;
1067 
1068 struct bpf_local_storage;
1069 
1070 struct bpf_run_ctx;
1071 
1072 struct task_struct {
1073 	unsigned int __state;
1074 	void *stack;
1075 	refcount_t usage;
1076 	unsigned int flags;
1077 	unsigned int ptrace;
1078 	int on_cpu;
1079 	struct __call_single_node wake_entry;
1080 	unsigned int wakee_flips;
1081 	long unsigned int wakee_flip_decay_ts;
1082 	struct task_struct *last_wakee;
1083 	int recent_used_cpu;
1084 	int wake_cpu;
1085 	int on_rq;
1086 	int prio;
1087 	int static_prio;
1088 	int normal_prio;
1089 	unsigned int rt_priority;
1090 	long: 32;
1091 	long: 64;
1092 	long: 64;
1093 	long: 64;
1094 	struct sched_entity se;
1095 	struct sched_rt_entity rt;
1096 	struct sched_dl_entity dl;
1097 	const struct sched_class *sched_class;
1098 	struct task_group *sched_task_group;
1099 	long: 64;
1100 	struct sched_statistics stats;
1101 	unsigned int btrace_seq;
1102 	unsigned int policy;
1103 	int nr_cpus_allowed;
1104 	const cpumask_t *cpus_ptr;
1105 	cpumask_t *user_cpus_ptr;
1106 	cpumask_t cpus_mask;
1107 	void *migration_pending;
1108 	short unsigned int migration_disabled;
1109 	short unsigned int migration_flags;
1110 	int trc_reader_nesting;
1111 	int trc_ipi_to_cpu;
1112 	union rcu_special trc_reader_special;
1113 	struct list_head trc_holdout_list;
1114 	struct list_head trc_blkd_node;
1115 	int trc_blkd_cpu;
1116 	struct sched_info sched_info;
1117 	struct list_head tasks;
1118 	struct plist_node pushable_tasks;
1119 	struct rb_node pushable_dl_tasks;
1120 	struct mm_struct *mm;
1121 	struct mm_struct *active_mm;
1122 	int exit_state;
1123 	int exit_code;
1124 	int exit_signal;
1125 	int pdeath_signal;
1126 	long unsigned int jobctl;
1127 	unsigned int personality;
1128 	unsigned int sched_reset_on_fork: 1;
1129 	unsigned int sched_contributes_to_load: 1;
1130 	unsigned int sched_migrated: 1;
1131 	int: 29;
1132 	unsigned int sched_remote_wakeup: 1;
1133 	unsigned int in_execve: 1;
1134 	unsigned int in_iowait: 1;
1135 	unsigned int in_user_fault: 1;
1136 	unsigned int no_cgroup_migration: 1;
1137 	unsigned int frozen: 1;
1138 	unsigned int use_memdelay: 1;
1139 	unsigned int in_eventfd: 1;
1140 	unsigned int in_thrashing: 1;
1141 	long unsigned int atomic_flags;
1142 	struct restart_block restart_block;
1143 	pid_t pid;
1144 	pid_t tgid;
1145 	long unsigned int stack_canary;
1146 	struct task_struct *real_parent;
1147 	struct task_struct *parent;
1148 	struct list_head children;
1149 	struct list_head sibling;
1150 	struct task_struct *group_leader;
1151 	struct list_head ptraced;
1152 	struct list_head ptrace_entry;
1153 	struct pid *thread_pid;
1154 	struct hlist_node pid_links[4];
1155 	struct list_head thread_group;
1156 	struct list_head thread_node;
1157 	struct completion *vfork_done;
1158 	int *set_child_tid;
1159 	int *clear_child_tid;
1160 	void *worker_private;
1161 	u64 utime;
1162 	u64 stime;
1163 	u64 gtime;
1164 	struct prev_cputime prev_cputime;
1165 	long unsigned int nvcsw;
1166 	long unsigned int nivcsw;
1167 	u64 start_time;
1168 	u64 start_boottime;
1169 	long unsigned int min_flt;
1170 	long unsigned int maj_flt;
1171 	struct posix_cputimers posix_cputimers;
1172 	const struct cred *ptracer_cred;
1173 	const struct cred *real_cred;
1174 	const struct cred *cred;
1175 	struct key *cached_requested_key;
1176 	char comm[16];
1177 	struct nameidata *nameidata;
1178 	struct sysv_sem sysvsem;
1179 	struct sysv_shm sysvshm;
1180 	struct fs_struct *fs;
1181 	struct files_struct *files;
1182 	struct io_uring_task *io_uring;
1183 	struct nsproxy *nsproxy;
1184 	struct signal_struct *signal;
1185 	struct sighand_struct *sighand;
1186 	sigset_t blocked;
1187 	sigset_t real_blocked;
1188 	sigset_t saved_sigmask;
1189 	struct sigpending pending;
1190 	long unsigned int sas_ss_sp;
1191 	size_t sas_ss_size;
1192 	unsigned int sas_ss_flags;
1193 	struct callback_head *task_works;
1194 	struct audit_context *audit_context;
1195 	kuid_t loginuid;
1196 	unsigned int sessionid;
1197 	struct seccomp seccomp;
1198 	struct syscall_user_dispatch syscall_dispatch;
1199 	u64 parent_exec_id;
1200 	u64 self_exec_id;
1201 	spinlock_t alloc_lock;
1202 	raw_spinlock_t pi_lock;
1203 	struct wake_q_node wake_q;
1204 	struct rb_root_cached pi_waiters;
1205 	struct task_struct *pi_top_task;
1206 	struct rt_mutex_waiter *pi_blocked_on;
1207 	void *journal_info;
1208 	struct bio_list *bio_list;
1209 	struct blk_plug *plug;
1210 	struct reclaim_state *reclaim_state;
1211 	struct backing_dev_info *backing_dev_info;
1212 	struct io_context *io_context;
1213 	struct capture_control *capture_control;
1214 	long unsigned int ptrace_message;
1215 	kernel_siginfo_t *last_siginfo;
1216 	struct task_io_accounting ioac;
1217 	u64 acct_rss_mem1;
1218 	u64 acct_vm_mem1;
1219 	u64 acct_timexpd;
1220 	nodemask_t mems_allowed;
1221 	seqcount_spinlock_t mems_allowed_seq;
1222 	int cpuset_mem_spread_rotor;
1223 	int cpuset_slab_spread_rotor;
1224 	struct css_set *cgroups;
1225 	struct list_head cg_list;
1226 	struct robust_list_head *robust_list;
1227 	struct list_head pi_state_list;
1228 	struct futex_pi_state *pi_state_cache;
1229 	struct mutex futex_exit_mutex;
1230 	unsigned int futex_state;
1231 	struct perf_event_context *perf_event_ctxp;
1232 	struct mutex perf_event_mutex;
1233 	struct list_head perf_event_list;
1234 	struct mempolicy *mempolicy;
1235 	short int il_prev;
1236 	short int pref_node_fork;
1237 	int numa_scan_seq;
1238 	unsigned int numa_scan_period;
1239 	unsigned int numa_scan_period_max;
1240 	int numa_preferred_nid;
1241 	long unsigned int numa_migrate_retry;
1242 	u64 node_stamp;
1243 	u64 last_task_numa_placement;
1244 	u64 last_sum_exec_runtime;
1245 	struct callback_head numa_work;
1246 	struct numa_group *numa_group;
1247 	long unsigned int *numa_faults;
1248 	long unsigned int total_numa_faults;
1249 	long unsigned int numa_faults_locality[3];
1250 	long unsigned int numa_pages_migrated;
1251 	struct rseq *rseq;
1252 	u32 rseq_sig;
1253 	long unsigned int rseq_event_mask;
1254 	struct tlbflush_unmap_batch tlb_ubc;
1255 	union {
1256 		refcount_t rcu_users;
1257 		struct callback_head rcu;
1258 	};
1259 	struct pipe_inode_info *splice_pipe;
1260 	struct page_frag task_frag;
1261 	struct task_delay_info *delays;
1262 	int make_it_fail;
1263 	unsigned int fail_nth;
1264 	int nr_dirtied;
1265 	int nr_dirtied_pause;
1266 	long unsigned int dirty_paused_when;
1267 	u64 timer_slack_ns;
1268 	u64 default_timer_slack_ns;
1269 	int curr_ret_stack;
1270 	int curr_ret_depth;
1271 	struct ftrace_ret_stack *ret_stack;
1272 	long long unsigned int ftrace_timestamp;
1273 	atomic_t trace_overrun;
1274 	atomic_t tracing_graph_pause;
1275 	long unsigned int trace_recursion;
1276 	struct mem_cgroup *memcg_in_oom;
1277 	gfp_t memcg_oom_gfp_mask;
1278 	int memcg_oom_order;
1279 	unsigned int memcg_nr_pages_over_high;
1280 	struct mem_cgroup *active_memcg;
1281 	struct request_queue *throttle_queue;
1282 	unsigned int sequential_io;
1283 	unsigned int sequential_io_avg;
1284 	struct kmap_ctrl kmap_ctrl;
1285 	int pagefault_disabled;
1286 	struct task_struct *oom_reaper_list;
1287 	struct timer_list oom_reaper_timer;
1288 	void *security;
1289 	struct bpf_local_storage *bpf_storage;
1290 	struct bpf_run_ctx *bpf_ctx;
1291 	struct llist_head kretprobe_instances;
1292 	long: 64;
1293 	long: 64;
1294 	struct thread_struct thread;
1295 };
1296 
1297 struct pt_regs {
1298 	long unsigned int regs[32];
1299 	long unsigned int orig_a0;
1300 	long unsigned int csr_era;
1301 	long unsigned int csr_badvaddr;
1302 	long unsigned int csr_crmd;
1303 	long unsigned int csr_prmd;
1304 	long unsigned int csr_euen;
1305 	long unsigned int csr_ecfg;
1306 	long unsigned int csr_estat;
1307 	long unsigned int __last[0];
1308 };
1309 
1310 typedef struct {
1311 	arch_rwlock_t raw_lock;
1312 } rwlock_t;
1313 
1314 struct wait_queue_head {
1315 	spinlock_t lock;
1316 	struct list_head head;
1317 };
1318 
1319 typedef struct wait_queue_head wait_queue_head_t;
1320 
1321 struct hlist_bl_node;
1322 
1323 struct hlist_bl_head {
1324 	struct hlist_bl_node *first;
1325 };
1326 
1327 struct hlist_bl_node {
1328 	struct hlist_bl_node *next;
1329 	struct hlist_bl_node **pprev;
1330 };
1331 
1332 struct seqcount_raw_spinlock {
1333 	seqcount_t seqcount;
1334 };
1335 
1336 typedef struct seqcount_raw_spinlock seqcount_raw_spinlock_t;
1337 
1338 typedef struct {
1339 	seqcount_spinlock_t seqcount;
1340 	spinlock_t lock;
1341 } seqlock_t;
1342 
1343 struct lockref {
1344 	union {
1345 		__u64 lock_count;
1346 		struct {
1347 			spinlock_t lock;
1348 			int count;
1349 		};
1350 	};
1351 };
1352 
1353 struct qstr {
1354 	union {
1355 		struct {
1356 			u32 hash;
1357 			u32 len;
1358 		};
1359 		u64 hash_len;
1360 	};
1361 	const unsigned char *name;
1362 };
1363 
1364 struct dentry_operations;
1365 
1366 struct dentry {
1367 	unsigned int d_flags;
1368 	seqcount_spinlock_t d_seq;
1369 	struct hlist_bl_node d_hash;
1370 	struct dentry *d_parent;
1371 	struct qstr d_name;
1372 	struct inode *d_inode;
1373 	unsigned char d_iname[32];
1374 	struct lockref d_lockref;
1375 	const struct dentry_operations *d_op;
1376 	struct super_block *d_sb;
1377 	long unsigned int d_time;
1378 	void *d_fsdata;
1379 	union {
1380 		struct list_head d_lru;
1381 		wait_queue_head_t *d_wait;
1382 	};
1383 	struct list_head d_child;
1384 	struct list_head d_subdirs;
1385 	union {
1386 		struct hlist_node d_alias;
1387 		struct hlist_bl_node d_in_lookup_hash;
1388 		struct callback_head d_rcu;
1389 	} d_u;
1390 };
1391 
1392 typedef struct {
1393 	gid_t val;
1394 } kgid_t;
1395 
1396 struct rw_semaphore {
1397 	atomic_long_t count;
1398 	atomic_long_t owner;
1399 	struct optimistic_spin_queue osq;
1400 	raw_spinlock_t wait_lock;
1401 	struct list_head wait_list;
1402 };
1403 
1404 struct xarray {
1405 	spinlock_t xa_lock;
1406 	gfp_t xa_flags;
1407 	void *xa_head;
1408 };
1409 
1410 typedef u32 errseq_t;
1411 
1412 struct address_space_operations;
1413 
1414 struct address_space {
1415 	struct inode *host;
1416 	struct xarray i_pages;
1417 	struct rw_semaphore invalidate_lock;
1418 	gfp_t gfp_mask;
1419 	atomic_t i_mmap_writable;
1420 	struct rb_root_cached i_mmap;
1421 	struct rw_semaphore i_mmap_rwsem;
1422 	long unsigned int nrpages;
1423 	long unsigned int writeback_index;
1424 	const struct address_space_operations *a_ops;
1425 	long unsigned int flags;
1426 	errseq_t wb_err;
1427 	spinlock_t private_lock;
1428 	struct list_head private_list;
1429 	void *private_data;
1430 };
1431 
1432 struct posix_acl;
1433 
1434 struct inode_operations;
1435 
1436 struct bdi_writeback;
1437 
1438 struct file_lock_context;
1439 
1440 struct cdev;
1441 
1442 struct fsnotify_mark_connector;
1443 
1444 struct fscrypt_info;
1445 
1446 struct fsverity_info;
1447 
1448 struct inode {
1449 	umode_t i_mode;
1450 	short unsigned int i_opflags;
1451 	kuid_t i_uid;
1452 	kgid_t i_gid;
1453 	unsigned int i_flags;
1454 	struct posix_acl *i_acl;
1455 	struct posix_acl *i_default_acl;
1456 	const struct inode_operations *i_op;
1457 	struct super_block *i_sb;
1458 	struct address_space *i_mapping;
1459 	void *i_security;
1460 	long unsigned int i_ino;
1461 	union {
1462 		const unsigned int i_nlink;
1463 		unsigned int __i_nlink;
1464 	};
1465 	dev_t i_rdev;
1466 	loff_t i_size;
1467 	struct timespec64 i_atime;
1468 	struct timespec64 i_mtime;
1469 	struct timespec64 i_ctime;
1470 	spinlock_t i_lock;
1471 	short unsigned int i_bytes;
1472 	u8 i_blkbits;
1473 	u8 i_write_hint;
1474 	blkcnt_t i_blocks;
1475 	long unsigned int i_state;
1476 	struct rw_semaphore i_rwsem;
1477 	long unsigned int dirtied_when;
1478 	long unsigned int dirtied_time_when;
1479 	struct hlist_node i_hash;
1480 	struct list_head i_io_list;
1481 	struct bdi_writeback *i_wb;
1482 	int i_wb_frn_winner;
1483 	u16 i_wb_frn_avg_time;
1484 	u16 i_wb_frn_history;
1485 	struct list_head i_lru;
1486 	struct list_head i_sb_list;
1487 	struct list_head i_wb_list;
1488 	union {
1489 		struct hlist_head i_dentry;
1490 		struct callback_head i_rcu;
1491 	};
1492 	atomic64_t i_version;
1493 	atomic64_t i_sequence;
1494 	atomic_t i_count;
1495 	atomic_t i_dio_count;
1496 	atomic_t i_writecount;
1497 	atomic_t i_readcount;
1498 	union {
1499 		const struct file_operations *i_fop;
1500 		void (*free_inode)(struct inode *);
1501 	};
1502 	struct file_lock_context *i_flctx;
1503 	struct address_space i_data;
1504 	struct list_head i_devices;
1505 	union {
1506 		struct pipe_inode_info *i_pipe;
1507 		struct cdev *i_cdev;
1508 		char *i_link;
1509 		unsigned int i_dir_seq;
1510 	};
1511 	__u32 i_generation;
1512 	__u32 i_fsnotify_mask;
1513 	struct fsnotify_mark_connector *i_fsnotify_marks;
1514 	struct fscrypt_info *i_crypt_info;
1515 	struct fsverity_info *i_verity_info;
1516 	void *i_private;
1517 };
1518 
1519 struct vfsmount;
1520 
1521 struct path;
1522 
1523 struct dentry_operations {
1524 	int (*d_revalidate)(struct dentry *, unsigned int);
1525 	int (*d_weak_revalidate)(struct dentry *, unsigned int);
1526 	int (*d_hash)(const struct dentry *, struct qstr *);
1527 	int (*d_compare)(const struct dentry *, unsigned int, const char *, const struct qstr *);
1528 	int (*d_delete)(const struct dentry *);
1529 	int (*d_init)(struct dentry *);
1530 	void (*d_release)(struct dentry *);
1531 	void (*d_prune)(struct dentry *);
1532 	void (*d_iput)(struct dentry *, struct inode *);
1533 	char * (*d_dname)(struct dentry *, char *, int);
1534 	struct vfsmount * (*d_automount)(struct path *);
1535 	int (*d_manage)(const struct path *, bool);
1536 	struct dentry * (*d_real)(struct dentry *, const struct inode *);
1537 	long: 64;
1538 	long: 64;
1539 	long: 64;
1540 };
1541 
1542 struct mtd_info;
1543 
1544 typedef long long int qsize_t;
1545 
1546 struct quota_format_type;
1547 
1548 struct mem_dqinfo {
1549 	struct quota_format_type *dqi_format;
1550 	int dqi_fmt_id;
1551 	struct list_head dqi_dirty_list;
1552 	long unsigned int dqi_flags;
1553 	unsigned int dqi_bgrace;
1554 	unsigned int dqi_igrace;
1555 	qsize_t dqi_max_spc_limit;
1556 	qsize_t dqi_max_ino_limit;
1557 	void *dqi_priv;
1558 };
1559 
1560 struct quota_format_ops;
1561 
1562 struct quota_info {
1563 	unsigned int flags;
1564 	struct rw_semaphore dqio_sem;
1565 	struct inode *files[3];
1566 	struct mem_dqinfo info[3];
1567 	const struct quota_format_ops *ops[3];
1568 };
1569 
1570 struct rcu_sync {
1571 	int gp_state;
1572 	int gp_count;
1573 	wait_queue_head_t gp_wait;
1574 	struct callback_head cb_head;
1575 };
1576 
1577 struct rcuwait {
1578 	struct task_struct *task;
1579 };
1580 
1581 struct percpu_rw_semaphore {
1582 	struct rcu_sync rss;
1583 	unsigned int *read_count;
1584 	struct rcuwait writer;
1585 	wait_queue_head_t waiters;
1586 	atomic_t block;
1587 };
1588 
1589 struct sb_writers {
1590 	int frozen;
1591 	wait_queue_head_t wait_unfrozen;
1592 	struct percpu_rw_semaphore rw_sem[3];
1593 };
1594 
1595 typedef struct {
1596 	__u8 b[16];
1597 } uuid_t;
1598 
1599 struct shrink_control;
1600 
1601 struct shrinker {
1602 	long unsigned int (*count_objects)(struct shrinker *, struct shrink_control *);
1603 	long unsigned int (*scan_objects)(struct shrinker *, struct shrink_control *);
1604 	long int batch;
1605 	int seeks;
1606 	unsigned int flags;
1607 	struct list_head list;
1608 	int id;
1609 	atomic_long_t *nr_deferred;
1610 };
1611 
1612 struct list_lru_node;
1613 
1614 struct list_lru {
1615 	struct list_lru_node *node;
1616 	struct list_head list;
1617 	int shrinker_id;
1618 	bool memcg_aware;
1619 	struct xarray xa;
1620 };
1621 
1622 struct work_struct;
1623 
1624 typedef void (*work_func_t)(struct work_struct *);
1625 
1626 struct work_struct {
1627 	atomic_long_t data;
1628 	struct list_head entry;
1629 	work_func_t func;
1630 };
1631 
1632 struct super_operations;
1633 
1634 struct dquot_operations;
1635 
1636 struct quotactl_ops;
1637 
1638 struct export_operations;
1639 
1640 struct xattr_handler;
1641 
1642 struct fscrypt_operations;
1643 
1644 struct fscrypt_keyring;
1645 
1646 struct fsverity_operations;
1647 
1648 struct unicode_map;
1649 
1650 struct block_device;
1651 
1652 struct workqueue_struct;
1653 
1654 struct user_namespace;
1655 
1656 struct super_block {
1657 	struct list_head s_list;
1658 	dev_t s_dev;
1659 	unsigned char s_blocksize_bits;
1660 	long unsigned int s_blocksize;
1661 	loff_t s_maxbytes;
1662 	struct file_system_type *s_type;
1663 	const struct super_operations *s_op;
1664 	const struct dquot_operations *dq_op;
1665 	const struct quotactl_ops *s_qcop;
1666 	const struct export_operations *s_export_op;
1667 	long unsigned int s_flags;
1668 	long unsigned int s_iflags;
1669 	long unsigned int s_magic;
1670 	struct dentry *s_root;
1671 	struct rw_semaphore s_umount;
1672 	int s_count;
1673 	atomic_t s_active;
1674 	void *s_security;
1675 	const struct xattr_handler **s_xattr;
1676 	const struct fscrypt_operations *s_cop;
1677 	struct fscrypt_keyring *s_master_keys;
1678 	const struct fsverity_operations *s_vop;
1679 	struct unicode_map *s_encoding;
1680 	__u16 s_encoding_flags;
1681 	struct hlist_bl_head s_roots;
1682 	struct list_head s_mounts;
1683 	struct block_device *s_bdev;
1684 	struct backing_dev_info *s_bdi;
1685 	struct mtd_info *s_mtd;
1686 	struct hlist_node s_instances;
1687 	unsigned int s_quota_types;
1688 	struct quota_info s_dquot;
1689 	struct sb_writers s_writers;
1690 	void *s_fs_info;
1691 	u32 s_time_gran;
1692 	time64_t s_time_min;
1693 	time64_t s_time_max;
1694 	__u32 s_fsnotify_mask;
1695 	struct fsnotify_mark_connector *s_fsnotify_marks;
1696 	char s_id[32];
1697 	uuid_t s_uuid;
1698 	unsigned int s_max_links;
1699 	fmode_t s_mode;
1700 	struct mutex s_vfs_rename_mutex;
1701 	const char *s_subtype;
1702 	const struct dentry_operations *s_d_op;
1703 	struct shrinker s_shrink;
1704 	atomic_long_t s_remove_count;
1705 	atomic_long_t s_fsnotify_connectors;
1706 	int s_readonly_remount;
1707 	errseq_t s_wb_err;
1708 	struct workqueue_struct *s_dio_done_wq;
1709 	struct hlist_head s_pins;
1710 	struct user_namespace *s_user_ns;
1711 	struct list_lru s_dentry_lru;
1712 	struct list_lru s_inode_lru;
1713 	struct callback_head rcu;
1714 	struct work_struct destroy_work;
1715 	struct mutex s_sync_lock;
1716 	int s_stack_depth;
1717 	long: 32;
1718 	long: 64;
1719 	long: 64;
1720 	long: 64;
1721 	long: 64;
1722 	long: 64;
1723 	spinlock_t s_inode_list_lock;
1724 	struct list_head s_inodes;
1725 	spinlock_t s_inode_wblist_lock;
1726 	struct list_head s_inodes_wb;
1727 	long: 64;
1728 	long: 64;
1729 };
1730 
1731 struct mnt_idmap;
1732 
1733 struct vfsmount {
1734 	struct dentry *mnt_root;
1735 	struct super_block *mnt_sb;
1736 	int mnt_flags;
1737 	struct mnt_idmap *mnt_idmap;
1738 };
1739 
1740 struct path {
1741 	struct vfsmount *mnt;
1742 	struct dentry *dentry;
1743 };
1744 
1745 struct uid_gid_extent {
1746 	u32 first;
1747 	u32 lower_first;
1748 	u32 count;
1749 };
1750 
1751 struct uid_gid_map {
1752 	u32 nr_extents;
1753 	union {
1754 		struct uid_gid_extent extent[5];
1755 		struct {
1756 			struct uid_gid_extent *forward;
1757 			struct uid_gid_extent *reverse;
1758 		};
1759 	};
1760 };
1761 
1762 struct proc_ns_operations;
1763 
1764 struct ns_common {
1765 	atomic_long_t stashed;
1766 	const struct proc_ns_operations *ops;
1767 	unsigned int inum;
1768 	refcount_t count;
1769 };
1770 
1771 struct ctl_table;
1772 
1773 struct ctl_table_root;
1774 
1775 struct ctl_table_set;
1776 
1777 struct ctl_dir;
1778 
1779 struct ctl_node;
1780 
1781 struct ctl_table_header {
1782 	union {
1783 		struct {
1784 			struct ctl_table *ctl_table;
1785 			int used;
1786 			int count;
1787 			int nreg;
1788 		};
1789 		struct callback_head rcu;
1790 	};
1791 	struct completion *unregistering;
1792 	struct ctl_table *ctl_table_arg;
1793 	struct ctl_table_root *root;
1794 	struct ctl_table_set *set;
1795 	struct ctl_dir *parent;
1796 	struct ctl_node *node;
1797 	struct hlist_head inodes;
1798 };
1799 
1800 struct ctl_dir {
1801 	struct ctl_table_header header;
1802 	struct rb_root root;
1803 };
1804 
1805 struct ctl_table_set {
1806 	int (*is_seen)(struct ctl_table_set *);
1807 	struct ctl_dir dir;
1808 };
1809 
1810 struct ucounts;
1811 
1812 struct user_namespace {
1813 	struct uid_gid_map uid_map;
1814 	struct uid_gid_map gid_map;
1815 	struct uid_gid_map projid_map;
1816 	struct user_namespace *parent;
1817 	int level;
1818 	kuid_t owner;
1819 	kgid_t group;
1820 	struct ns_common ns;
1821 	long unsigned int flags;
1822 	bool parent_could_setfcap;
1823 	struct list_head keyring_name_list;
1824 	struct key *user_keyring_register;
1825 	struct rw_semaphore keyring_sem;
1826 	struct work_struct work;
1827 	struct ctl_table_set set;
1828 	struct ctl_table_header *sysctls;
1829 	struct ucounts *ucounts;
1830 	long int ucount_max[12];
1831 	long int rlimit_max[4];
1832 };
1833 
1834 struct kstat {
1835 	u32 result_mask;
1836 	umode_t mode;
1837 	unsigned int nlink;
1838 	uint32_t blksize;
1839 	u64 attributes;
1840 	u64 attributes_mask;
1841 	u64 ino;
1842 	dev_t dev;
1843 	dev_t rdev;
1844 	kuid_t uid;
1845 	kgid_t gid;
1846 	loff_t size;
1847 	struct timespec64 atime;
1848 	struct timespec64 mtime;
1849 	struct timespec64 ctime;
1850 	struct timespec64 btime;
1851 	u64 blocks;
1852 	u64 mnt_id;
1853 	u32 dio_mem_align;
1854 	u32 dio_offset_align;
1855 };
1856 
1857 struct static_key {
1858 	atomic_t enabled;
1859 };
1860 
1861 struct shrink_control {
1862 	gfp_t gfp_mask;
1863 	int nid;
1864 	long unsigned int nr_to_scan;
1865 	long unsigned int nr_scanned;
1866 	struct mem_cgroup *memcg;
1867 };
1868 
1869 typedef struct {
1870 	long unsigned int pte;
1871 } pte_t;
1872 
1873 typedef struct page *pgtable_t;
1874 
1875 struct page_pool;
1876 
1877 struct dev_pagemap;
1878 
1879 struct page {
1880 	long unsigned int flags;
1881 	union {
1882 		struct {
1883 			union {
1884 				struct list_head lru;
1885 				struct {
1886 					void *__filler;
1887 					unsigned int mlock_count;
1888 				};
1889 				struct list_head buddy_list;
1890 				struct list_head pcp_list;
1891 			};
1892 			struct address_space *mapping;
1893 			union {
1894 				long unsigned int index;
1895 				long unsigned int share;
1896 			};
1897 			long unsigned int private;
1898 		};
1899 		struct {
1900 			long unsigned int pp_magic;
1901 			struct page_pool *pp;
1902 			long unsigned int _pp_mapping_pad;
1903 			long unsigned int dma_addr;
1904 			union {
1905 				long unsigned int dma_addr_upper;
1906 				atomic_long_t pp_frag_count;
1907 			};
1908 		};
1909 		struct {
1910 			long unsigned int compound_head;
1911 			unsigned char compound_dtor;
1912 			unsigned char compound_order;
1913 			atomic_t compound_mapcount;
1914 			atomic_t subpages_mapcount;
1915 			atomic_t compound_pincount;
1916 			unsigned int compound_nr;
1917 		};
1918 		struct {
1919 			long unsigned int _compound_pad_1;
1920 			long unsigned int _compound_pad_2;
1921 			struct list_head deferred_list;
1922 		};
1923 		struct {
1924 			long unsigned int _hugetlb_pad_1;
1925 			void *hugetlb_subpool;
1926 			void *hugetlb_cgroup;
1927 			void *hugetlb_cgroup_rsvd;
1928 			void *hugetlb_hwpoison;
1929 		};
1930 		struct {
1931 			long unsigned int _pt_pad_1;
1932 			pgtable_t pmd_huge_pte;
1933 			long unsigned int _pt_pad_2;
1934 			union {
1935 				struct mm_struct *pt_mm;
1936 				atomic_t pt_frag_refcount;
1937 			};
1938 			spinlock_t ptl;
1939 		};
1940 		struct {
1941 			struct dev_pagemap *pgmap;
1942 			void *zone_device_data;
1943 		};
1944 		struct callback_head callback_head;
1945 	};
1946 	union {
1947 		atomic_t _mapcount;
1948 		unsigned int page_type;
1949 	};
1950 	atomic_t _refcount;
1951 	long unsigned int memcg_data;
1952 };
1953 
1954 typedef struct {
1955 	long unsigned int pgd;
1956 } pgd_t;
1957 
1958 typedef struct {
1959 	long unsigned int pgprot;
1960 } pgprot_t;
1961 
1962 typedef struct {} lockdep_map_p;
1963 
1964 struct maple_tree {
1965 	union {
1966 		spinlock_t ma_lock;
1967 		lockdep_map_p ma_external_lock;
1968 	};
1969 	void *ma_root;
1970 	unsigned int ma_flags;
1971 };
1972 
1973 struct swait_queue_head {
1974 	raw_spinlock_t lock;
1975 	struct list_head task_list;
1976 };
1977 
1978 struct completion {
1979 	unsigned int done;
1980 	struct swait_queue_head wait;
1981 };
1982 
1983 struct percpu_counter {
1984 	raw_spinlock_t lock;
1985 	s64 count;
1986 	struct list_head list;
1987 	s32 *counters;
1988 };
1989 
1990 typedef struct {
1991 	u64 asid[64];
1992 	void *vdso;
1993 } mm_context_t;
1994 
1995 struct uprobes_state {};
1996 
1997 struct linux_binfmt;
1998 
1999 struct kioctx_table;
2000 
2001 struct mmu_notifier_subscriptions;
2002 
2003 struct mm_struct {
2004 	struct {
2005 		struct maple_tree mm_mt;
2006 		long unsigned int (*get_unmapped_area)(struct file *, long unsigned int, long unsigned int, long unsigned int, long unsigned int);
2007 		long unsigned int mmap_base;
2008 		long unsigned int mmap_legacy_base;
2009 		long unsigned int task_size;
2010 		pgd_t *pgd;
2011 		atomic_t membarrier_state;
2012 		atomic_t mm_users;
2013 		atomic_t mm_count;
2014 		atomic_long_t pgtables_bytes;
2015 		int map_count;
2016 		spinlock_t page_table_lock;
2017 		struct rw_semaphore mmap_lock;
2018 		struct list_head mmlist;
2019 		long unsigned int hiwater_rss;
2020 		long unsigned int hiwater_vm;
2021 		long unsigned int total_vm;
2022 		long unsigned int locked_vm;
2023 		atomic64_t pinned_vm;
2024 		long unsigned int data_vm;
2025 		long unsigned int exec_vm;
2026 		long unsigned int stack_vm;
2027 		long unsigned int def_flags;
2028 		seqcount_t write_protect_seq;
2029 		spinlock_t arg_lock;
2030 		long unsigned int start_code;
2031 		long unsigned int end_code;
2032 		long unsigned int start_data;
2033 		long unsigned int end_data;
2034 		long unsigned int start_brk;
2035 		long unsigned int brk;
2036 		long unsigned int start_stack;
2037 		long unsigned int arg_start;
2038 		long unsigned int arg_end;
2039 		long unsigned int env_start;
2040 		long unsigned int env_end;
2041 		long unsigned int saved_auxv[44];
2042 		struct percpu_counter rss_stat[4];
2043 		struct linux_binfmt *binfmt;
2044 		mm_context_t context;
2045 		long unsigned int flags;
2046 		spinlock_t ioctx_lock;
2047 		struct kioctx_table *ioctx_table;
2048 		struct task_struct *owner;
2049 		struct user_namespace *user_ns;
2050 		struct file *exe_file;
2051 		struct mmu_notifier_subscriptions *notifier_subscriptions;
2052 		pgtable_t pmd_huge_pte;
2053 		long unsigned int numa_next_scan;
2054 		long unsigned int numa_scan_offset;
2055 		int numa_scan_seq;
2056 		atomic_t tlb_flush_pending;
2057 		struct uprobes_state uprobes_state;
2058 		atomic_long_t hugetlb_usage;
2059 		struct work_struct async_put_work;
2060 		long unsigned int ksm_merging_pages;
2061 		long unsigned int ksm_rmap_items;
2062 	};
2063 	long unsigned int cpu_bitmap[0];
2064 };
2065 
2066 struct delayed_work {
2067 	struct work_struct work;
2068 	struct timer_list timer;
2069 	struct workqueue_struct *wq;
2070 	int cpu;
2071 };
2072 
2073 struct rcu_work {
2074 	struct work_struct work;
2075 	struct callback_head rcu;
2076 	struct workqueue_struct *wq;
2077 };
2078 
2079 struct vmem_altmap {
2080 	long unsigned int base_pfn;
2081 	const long unsigned int end_pfn;
2082 	const long unsigned int reserve;
2083 	long unsigned int free;
2084 	long unsigned int align;
2085 	long unsigned int alloc;
2086 };
2087 
2088 struct percpu_ref_data;
2089 
2090 struct percpu_ref {
2091 	long unsigned int percpu_count_ptr;
2092 	struct percpu_ref_data *data;
2093 };
2094 
2095 enum memory_type {
2096 	MEMORY_DEVICE_PRIVATE = 1,
2097 	MEMORY_DEVICE_COHERENT = 2,
2098 	MEMORY_DEVICE_FS_DAX = 3,
2099 	MEMORY_DEVICE_GENERIC = 4,
2100 	MEMORY_DEVICE_PCI_P2PDMA = 5,
2101 };
2102 
2103 struct range {
2104 	u64 start;
2105 	u64 end;
2106 };
2107 
2108 struct dev_pagemap_ops;
2109 
2110 struct dev_pagemap {
2111 	struct vmem_altmap altmap;
2112 	struct percpu_ref ref;
2113 	struct completion done;
2114 	enum memory_type type;
2115 	unsigned int flags;
2116 	long unsigned int vmemmap_shift;
2117 	const struct dev_pagemap_ops *ops;
2118 	void *owner;
2119 	int nr_range;
2120 	union {
2121 		struct range range;
2122 		struct range ranges[0];
2123 	};
2124 };
2125 
2126 struct folio {
2127 	union {
2128 		struct {
2129 			long unsigned int flags;
2130 			union {
2131 				struct list_head lru;
2132 				struct {
2133 					void *__filler;
2134 					unsigned int mlock_count;
2135 				};
2136 			};
2137 			struct address_space *mapping;
2138 			long unsigned int index;
2139 			void *private;
2140 			atomic_t _mapcount;
2141 			atomic_t _refcount;
2142 			long unsigned int memcg_data;
2143 		};
2144 		struct page page;
2145 	};
2146 	union {
2147 		struct {
2148 			long unsigned int _flags_1;
2149 			long unsigned int _head_1;
2150 			unsigned char _folio_dtor;
2151 			unsigned char _folio_order;
2152 			atomic_t _compound_mapcount;
2153 			atomic_t _subpages_mapcount;
2154 			atomic_t _pincount;
2155 			unsigned int _folio_nr_pages;
2156 		};
2157 		struct page __page_1;
2158 	};
2159 	union {
2160 		struct {
2161 			long unsigned int _flags_2;
2162 			long unsigned int _head_2;
2163 			void *_hugetlb_subpool;
2164 			void *_hugetlb_cgroup;
2165 			void *_hugetlb_cgroup_rsvd;
2166 			void *_hugetlb_hwpoison;
2167 		};
2168 		struct page __page_2;
2169 	};
2170 };
2171 
2172 enum pid_type {
2173 	PIDTYPE_PID = 0,
2174 	PIDTYPE_TGID = 1,
2175 	PIDTYPE_PGID = 2,
2176 	PIDTYPE_SID = 3,
2177 	PIDTYPE_MAX = 4,
2178 };
2179 
2180 struct fown_struct {
2181 	rwlock_t lock;
2182 	struct pid *pid;
2183 	enum pid_type pid_type;
2184 	kuid_t uid;
2185 	kuid_t euid;
2186 	int signum;
2187 };
2188 
2189 struct file_ra_state {
2190 	long unsigned int start;
2191 	unsigned int size;
2192 	unsigned int async_size;
2193 	unsigned int ra_pages;
2194 	unsigned int mmap_miss;
2195 	loff_t prev_pos;
2196 };
2197 
2198 struct file {
2199 	union {
2200 		struct llist_node f_llist;
2201 		struct callback_head f_rcuhead;
2202 		unsigned int f_iocb_flags;
2203 	};
2204 	struct path f_path;
2205 	struct inode *f_inode;
2206 	const struct file_operations *f_op;
2207 	spinlock_t f_lock;
2208 	atomic_long_t f_count;
2209 	unsigned int f_flags;
2210 	fmode_t f_mode;
2211 	struct mutex f_pos_lock;
2212 	loff_t f_pos;
2213 	struct fown_struct f_owner;
2214 	const struct cred *f_cred;
2215 	struct file_ra_state f_ra;
2216 	u64 f_version;
2217 	void *f_security;
2218 	void *private_data;
2219 	struct hlist_head *f_ep;
2220 	struct address_space *f_mapping;
2221 	errseq_t f_wb_err;
2222 	errseq_t f_sb_err;
2223 };
2224 
2225 struct userfaultfd_ctx;
2226 
2227 struct vm_userfaultfd_ctx {
2228 	struct userfaultfd_ctx *ctx;
2229 };
2230 
2231 struct anon_vma;
2232 
2233 struct vm_operations_struct;
2234 
2235 struct vm_area_struct {
2236 	long unsigned int vm_start;
2237 	long unsigned int vm_end;
2238 	struct mm_struct *vm_mm;
2239 	pgprot_t vm_page_prot;
2240 	long unsigned int vm_flags;
2241 	struct {
2242 		struct rb_node rb;
2243 		long unsigned int rb_subtree_last;
2244 	} shared;
2245 	struct list_head anon_vma_chain;
2246 	struct anon_vma *anon_vma;
2247 	const struct vm_operations_struct *vm_ops;
2248 	long unsigned int vm_pgoff;
2249 	struct file *vm_file;
2250 	void *vm_private_data;
2251 	atomic_long_t swap_readahead_info;
2252 	struct mempolicy *vm_policy;
2253 	struct vm_userfaultfd_ctx vm_userfaultfd_ctx;
2254 };
2255 
2256 enum page_entry_size {
2257 	PE_SIZE_PTE = 0,
2258 	PE_SIZE_PMD = 1,
2259 	PE_SIZE_PUD = 2,
2260 };
2261 
2262 struct vm_operations_struct {
2263 	void (*open)(struct vm_area_struct *);
2264 	void (*close)(struct vm_area_struct *);
2265 	int (*may_split)(struct vm_area_struct *, long unsigned int);
2266 	int (*mremap)(struct vm_area_struct *);
2267 	int (*mprotect)(struct vm_area_struct *, long unsigned int, long unsigned int, long unsigned int);
2268 	vm_fault_t (*fault)(struct vm_fault *);
2269 	vm_fault_t (*huge_fault)(struct vm_fault *, enum page_entry_size);
2270 	vm_fault_t (*map_pages)(struct vm_fault *, long unsigned int, long unsigned int);
2271 	long unsigned int (*pagesize)(struct vm_area_struct *);
2272 	vm_fault_t (*page_mkwrite)(struct vm_fault *);
2273 	vm_fault_t (*pfn_mkwrite)(struct vm_fault *);
2274 	int (*access)(struct vm_area_struct *, long unsigned int, void *, int, int);
2275 	const char * (*name)(struct vm_area_struct *);
2276 	int (*set_policy)(struct vm_area_struct *, struct mempolicy *);
2277 	struct mempolicy * (*get_policy)(struct vm_area_struct *, long unsigned int);
2278 	struct page * (*find_special_page)(struct vm_area_struct *, long unsigned int);
2279 };
2280 
2281 enum fault_flag {
2282 	FAULT_FLAG_WRITE = 1,
2283 	FAULT_FLAG_MKWRITE = 2,
2284 	FAULT_FLAG_ALLOW_RETRY = 4,
2285 	FAULT_FLAG_RETRY_NOWAIT = 8,
2286 	FAULT_FLAG_KILLABLE = 16,
2287 	FAULT_FLAG_TRIED = 32,
2288 	FAULT_FLAG_USER = 64,
2289 	FAULT_FLAG_REMOTE = 128,
2290 	FAULT_FLAG_INSTRUCTION = 256,
2291 	FAULT_FLAG_INTERRUPTIBLE = 512,
2292 	FAULT_FLAG_UNSHARE = 1024,
2293 	FAULT_FLAG_ORIG_PTE_VALID = 2048,
2294 };
2295 
2296 typedef struct {
2297 	long unsigned int pmd;
2298 } pmd_t;
2299 
2300 typedef struct {
2301 	pgd_t pgd;
2302 } p4d_t;
2303 
2304 typedef struct {
2305 	p4d_t p4d;
2306 } pud_t;
2307 
2308 struct vm_fault {
2309 	const struct {
2310 		struct vm_area_struct *vma;
2311 		gfp_t gfp_mask;
2312 		long unsigned int pgoff;
2313 		long unsigned int address;
2314 		long unsigned int real_address;
2315 	};
2316 	enum fault_flag flags;
2317 	pmd_t *pmd;
2318 	pud_t *pud;
2319 	union {
2320 		pte_t orig_pte;
2321 		pmd_t orig_pmd;
2322 	};
2323 	struct page *cow_page;
2324 	struct page *page;
2325 	pte_t *pte;
2326 	spinlock_t *ptl;
2327 	pgtable_t prealloc_pte;
2328 };
2329 
2330 struct rcu_segcblist {
2331 	struct callback_head *head;
2332 	struct callback_head **tails[4];
2333 	long unsigned int gp_seq[4];
2334 	long int len;
2335 	long int seglen[4];
2336 	u8 flags;
2337 };
2338 
2339 struct srcu_node;
2340 
2341 struct srcu_data {
2342 	atomic_long_t srcu_lock_count[2];
2343 	atomic_long_t srcu_unlock_count[2];
2344 	int srcu_nmi_safety;
2345 	long: 32;
2346 	long: 64;
2347 	long: 64;
2348 	long: 64;
2349 	spinlock_t lock;
2350 	struct rcu_segcblist srcu_cblist;
2351 	long unsigned int srcu_gp_seq_needed;
2352 	long unsigned int srcu_gp_seq_needed_exp;
2353 	bool srcu_cblist_invoking;
2354 	struct timer_list delay_work;
2355 	struct work_struct work;
2356 	struct callback_head srcu_barrier_head;
2357 	struct srcu_node *mynode;
2358 	long unsigned int grpmask;
2359 	int cpu;
2360 	struct srcu_struct *ssp;
2361 	long: 64;
2362 	long: 64;
2363 	long: 64;
2364 	long: 64;
2365 	long: 64;
2366 	long: 64;
2367 };
2368 
2369 struct srcu_node {
2370 	spinlock_t lock;
2371 	long unsigned int srcu_have_cbs[4];
2372 	long unsigned int srcu_data_have_cbs[4];
2373 	long unsigned int srcu_gp_seq_needed_exp;
2374 	struct srcu_node *srcu_parent;
2375 	int grplo;
2376 	int grphi;
2377 };
2378 
2379 struct srcu_struct {
2380 	struct srcu_node *node;
2381 	struct srcu_node *level[3];
2382 	int srcu_size_state;
2383 	struct mutex srcu_cb_mutex;
2384 	spinlock_t lock;
2385 	struct mutex srcu_gp_mutex;
2386 	unsigned int srcu_idx;
2387 	long unsigned int srcu_gp_seq;
2388 	long unsigned int srcu_gp_seq_needed;
2389 	long unsigned int srcu_gp_seq_needed_exp;
2390 	long unsigned int srcu_gp_start;
2391 	long unsigned int srcu_last_gp_end;
2392 	long unsigned int srcu_size_jiffies;
2393 	long unsigned int srcu_n_lock_retries;
2394 	long unsigned int srcu_n_exp_nodelay;
2395 	struct srcu_data *sda;
2396 	bool sda_is_static;
2397 	long unsigned int srcu_barrier_seq;
2398 	struct mutex srcu_barrier_mutex;
2399 	struct completion srcu_barrier_completion;
2400 	atomic_t srcu_barrier_cpu_cnt;
2401 	long unsigned int reschedule_jiffies;
2402 	long unsigned int reschedule_count;
2403 	struct delayed_work work;
2404 	struct lockdep_map dep_map;
2405 };
2406 
2407 struct pid_namespace;
2408 
2409 struct upid {
2410 	int nr;
2411 	struct pid_namespace *ns;
2412 };
2413 
2414 struct idr {
2415 	struct xarray idr_rt;
2416 	unsigned int idr_base;
2417 	unsigned int idr_next;
2418 };
2419 
2420 struct kmem_cache;
2421 
2422 struct fs_pin;
2423 
2424 struct pid_namespace {
2425 	struct idr idr;
2426 	struct callback_head rcu;
2427 	unsigned int pid_allocated;
2428 	struct task_struct *child_reaper;
2429 	struct kmem_cache *pid_cachep;
2430 	unsigned int level;
2431 	struct pid_namespace *parent;
2432 	struct fs_pin *bacct;
2433 	struct user_namespace *user_ns;
2434 	struct ucounts *ucounts;
2435 	int reboot;
2436 	struct ns_common ns;
2437 };
2438 
2439 struct pid {
2440 	refcount_t count;
2441 	unsigned int level;
2442 	spinlock_t lock;
2443 	struct hlist_head tasks[4];
2444 	struct hlist_head inodes;
2445 	wait_queue_head_t wait_pidfd;
2446 	struct callback_head rcu;
2447 	struct upid numbers[1];
2448 };
2449 
2450 struct hrtimer_cpu_base;
2451 
2452 struct hrtimer_clock_base {
2453 	struct hrtimer_cpu_base *cpu_base;
2454 	unsigned int index;
2455 	clockid_t clockid;
2456 	seqcount_raw_spinlock_t seq;
2457 	struct hrtimer *running;
2458 	struct timerqueue_head active;
2459 	ktime_t (*get_time)();
2460 	ktime_t offset;
2461 };
2462 
2463 struct hrtimer_cpu_base {
2464 	raw_spinlock_t lock;
2465 	unsigned int cpu;
2466 	unsigned int active_bases;
2467 	unsigned int clock_was_set_seq;
2468 	unsigned int hres_active: 1;
2469 	unsigned int in_hrtirq: 1;
2470 	unsigned int hang_detected: 1;
2471 	unsigned int softirq_activated: 1;
2472 	unsigned int nr_events;
2473 	short unsigned int nr_retries;
2474 	short unsigned int nr_hangs;
2475 	unsigned int max_hang_time;
2476 	ktime_t expires_next;
2477 	struct hrtimer *next_timer;
2478 	ktime_t softirq_expires_next;
2479 	struct hrtimer *softirq_next_timer;
2480 	struct hrtimer_clock_base clock_base[8];
2481 };
2482 
2483 struct rlimit {
2484 	__kernel_ulong_t rlim_cur;
2485 	__kernel_ulong_t rlim_max;
2486 };
2487 
2488 struct task_cputime {
2489 	u64 stime;
2490 	u64 utime;
2491 	long long unsigned int sum_exec_runtime;
2492 };
2493 
2494 typedef void __signalfn_t(int);
2495 
2496 typedef __signalfn_t *__sighandler_t;
2497 
2498 union sigval {
2499 	int sival_int;
2500 	void *sival_ptr;
2501 };
2502 
2503 typedef union sigval sigval_t;
2504 
2505 union __sifields {
2506 	struct {
2507 		__kernel_pid_t _pid;
2508 		__kernel_uid32_t _uid;
2509 	} _kill;
2510 	struct {
2511 		__kernel_timer_t _tid;
2512 		int _overrun;
2513 		sigval_t _sigval;
2514 		int _sys_private;
2515 	} _timer;
2516 	struct {
2517 		__kernel_pid_t _pid;
2518 		__kernel_uid32_t _uid;
2519 		sigval_t _sigval;
2520 	} _rt;
2521 	struct {
2522 		__kernel_pid_t _pid;
2523 		__kernel_uid32_t _uid;
2524 		int _status;
2525 		__kernel_clock_t _utime;
2526 		__kernel_clock_t _stime;
2527 	} _sigchld;
2528 	struct {
2529 		void *_addr;
2530 		union {
2531 			int _trapno;
2532 			short int _addr_lsb;
2533 			struct {
2534 				char _dummy_bnd[8];
2535 				void *_lower;
2536 				void *_upper;
2537 			} _addr_bnd;
2538 			struct {
2539 				char _dummy_pkey[8];
2540 				__u32 _pkey;
2541 			} _addr_pkey;
2542 			struct {
2543 				long unsigned int _data;
2544 				__u32 _type;
2545 				__u32 _flags;
2546 			} _perf;
2547 		};
2548 	} _sigfault;
2549 	struct {
2550 		long int _band;
2551 		int _fd;
2552 	} _sigpoll;
2553 	struct {
2554 		void *_call_addr;
2555 		int _syscall;
2556 		unsigned int _arch;
2557 	} _sigsys;
2558 };
2559 
2560 struct kernel_siginfo {
2561 	struct {
2562 		int si_signo;
2563 		int si_errno;
2564 		int si_code;
2565 		union __sifields _sifields;
2566 	};
2567 };
2568 
2569 struct ucounts {
2570 	struct hlist_node node;
2571 	struct user_namespace *ns;
2572 	kuid_t uid;
2573 	atomic_t count;
2574 	atomic_long_t ucount[12];
2575 	atomic_long_t rlimit[4];
2576 };
2577 
2578 struct sigaction {
2579 	__sighandler_t sa_handler;
2580 	long unsigned int sa_flags;
2581 	sigset_t sa_mask;
2582 };
2583 
2584 struct k_sigaction {
2585 	struct sigaction sa;
2586 };
2587 
2588 struct cpu_itimer {
2589 	u64 expires;
2590 	u64 incr;
2591 };
2592 
2593 struct task_cputime_atomic {
2594 	atomic64_t utime;
2595 	atomic64_t stime;
2596 	atomic64_t sum_exec_runtime;
2597 };
2598 
2599 struct thread_group_cputimer {
2600 	struct task_cputime_atomic cputime_atomic;
2601 };
2602 
2603 struct pacct_struct {
2604 	int ac_flag;
2605 	long int ac_exitcode;
2606 	long unsigned int ac_mem;
2607 	u64 ac_utime;
2608 	u64 ac_stime;
2609 	long unsigned int ac_minflt;
2610 	long unsigned int ac_majflt;
2611 };
2612 
2613 struct core_state;
2614 
2615 struct tty_struct;
2616 
2617 struct autogroup;
2618 
2619 struct taskstats;
2620 
2621 struct tty_audit_buf;
2622 
2623 struct signal_struct {
2624 	refcount_t sigcnt;
2625 	atomic_t live;
2626 	int nr_threads;
2627 	int quick_threads;
2628 	struct list_head thread_head;
2629 	wait_queue_head_t wait_chldexit;
2630 	struct task_struct *curr_target;
2631 	struct sigpending shared_pending;
2632 	struct hlist_head multiprocess;
2633 	int group_exit_code;
2634 	int notify_count;
2635 	struct task_struct *group_exec_task;
2636 	int group_stop_count;
2637 	unsigned int flags;
2638 	struct core_state *core_state;
2639 	unsigned int is_child_subreaper: 1;
2640 	unsigned int has_child_subreaper: 1;
2641 	int posix_timer_id;
2642 	struct list_head posix_timers;
2643 	struct hrtimer real_timer;
2644 	ktime_t it_real_incr;
2645 	struct cpu_itimer it[2];
2646 	struct thread_group_cputimer cputimer;
2647 	struct posix_cputimers posix_cputimers;
2648 	struct pid *pids[4];
2649 	struct pid *tty_old_pgrp;
2650 	int leader;
2651 	struct tty_struct *tty;
2652 	struct autogroup *autogroup;
2653 	seqlock_t stats_lock;
2654 	u64 utime;
2655 	u64 stime;
2656 	u64 cutime;
2657 	u64 cstime;
2658 	u64 gtime;
2659 	u64 cgtime;
2660 	struct prev_cputime prev_cputime;
2661 	long unsigned int nvcsw;
2662 	long unsigned int nivcsw;
2663 	long unsigned int cnvcsw;
2664 	long unsigned int cnivcsw;
2665 	long unsigned int min_flt;
2666 	long unsigned int maj_flt;
2667 	long unsigned int cmin_flt;
2668 	long unsigned int cmaj_flt;
2669 	long unsigned int inblock;
2670 	long unsigned int oublock;
2671 	long unsigned int cinblock;
2672 	long unsigned int coublock;
2673 	long unsigned int maxrss;
2674 	long unsigned int cmaxrss;
2675 	struct task_io_accounting ioac;
2676 	long long unsigned int sum_sched_runtime;
2677 	struct rlimit rlim[16];
2678 	struct pacct_struct pacct;
2679 	struct taskstats *stats;
2680 	unsigned int audit_tty;
2681 	struct tty_audit_buf *tty_audit_buf;
2682 	bool oom_flag_origin;
2683 	short int oom_score_adj;
2684 	short int oom_score_adj_min;
2685 	struct mm_struct *oom_mm;
2686 	struct mutex cred_guard_mutex;
2687 	struct rw_semaphore exec_update_lock;
2688 };
2689 
2690 struct rseq {
2691 	__u32 cpu_id_start;
2692 	__u32 cpu_id;
2693 	__u64 rseq_cs;
2694 	__u32 flags;
2695 	long: 32;
2696 	long: 64;
2697 };
2698 
2699 struct rq;
2700 
2701 struct rq_flags;
2702 
2703 struct affinity_context;
2704 
2705 struct sched_class {
2706 	void (*enqueue_task)(struct rq *, struct task_struct *, int);
2707 	void (*dequeue_task)(struct rq *, struct task_struct *, int);
2708 	void (*yield_task)(struct rq *);
2709 	bool (*yield_to_task)(struct rq *, struct task_struct *);
2710 	void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
2711 	struct task_struct * (*pick_next_task)(struct rq *);
2712 	void (*put_prev_task)(struct rq *, struct task_struct *);
2713 	void (*set_next_task)(struct rq *, struct task_struct *, bool);
2714 	int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
2715 	int (*select_task_rq)(struct task_struct *, int, int);
2716 	struct task_struct * (*pick_task)(struct rq *);
2717 	void (*migrate_task_rq)(struct task_struct *, int);
2718 	void (*task_woken)(struct rq *, struct task_struct *);
2719 	void (*set_cpus_allowed)(struct task_struct *, struct affinity_context *);
2720 	void (*rq_online)(struct rq *);
2721 	void (*rq_offline)(struct rq *);
2722 	struct rq * (*find_lock_rq)(struct task_struct *, struct rq *);
2723 	void (*task_tick)(struct rq *, struct task_struct *, int);
2724 	void (*task_fork)(struct task_struct *);
2725 	void (*task_dead)(struct task_struct *);
2726 	void (*switched_from)(struct rq *, struct task_struct *);
2727 	void (*switched_to)(struct rq *, struct task_struct *);
2728 	void (*prio_changed)(struct rq *, struct task_struct *, int);
2729 	unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
2730 	void (*update_curr)(struct rq *);
2731 	void (*task_change_group)(struct task_struct *);
2732 };
2733 
2734 struct kernel_cap_struct {
2735 	__u32 cap[2];
2736 };
2737 
2738 typedef struct kernel_cap_struct kernel_cap_t;
2739 
2740 struct user_struct;
2741 
2742 struct group_info;
2743 
2744 struct cred {
2745 	atomic_t usage;
2746 	kuid_t uid;
2747 	kgid_t gid;
2748 	kuid_t suid;
2749 	kgid_t sgid;
2750 	kuid_t euid;
2751 	kgid_t egid;
2752 	kuid_t fsuid;
2753 	kgid_t fsgid;
2754 	unsigned int securebits;
2755 	kernel_cap_t cap_inheritable;
2756 	kernel_cap_t cap_permitted;
2757 	kernel_cap_t cap_effective;
2758 	kernel_cap_t cap_bset;
2759 	kernel_cap_t cap_ambient;
2760 	unsigned char jit_keyring;
2761 	struct key *session_keyring;
2762 	struct key *process_keyring;
2763 	struct key *thread_keyring;
2764 	struct key *request_key_auth;
2765 	void *security;
2766 	struct user_struct *user;
2767 	struct user_namespace *user_ns;
2768 	struct ucounts *ucounts;
2769 	struct group_info *group_info;
2770 	union {
2771 		int non_rcu;
2772 		struct callback_head rcu;
2773 	};
2774 };
2775 
2776 typedef int32_t key_serial_t;
2777 
2778 typedef uint32_t key_perm_t;
2779 
2780 struct key_type;
2781 
2782 struct key_tag;
2783 
2784 struct keyring_index_key {
2785 	long unsigned int hash;
2786 	union {
2787 		struct {
2788 			u16 desc_len;
2789 			char desc[6];
2790 		};
2791 		long unsigned int x;
2792 	};
2793 	struct key_type *type;
2794 	struct key_tag *domain_tag;
2795 	const char *description;
2796 };
2797 
2798 union key_payload {
2799 	void *rcu_data0;
2800 	void *data[4];
2801 };
2802 
2803 struct assoc_array_ptr;
2804 
2805 struct assoc_array {
2806 	struct assoc_array_ptr *root;
2807 	long unsigned int nr_leaves_on_tree;
2808 };
2809 
2810 struct key_user;
2811 
2812 struct key_restriction;
2813 
2814 struct key {
2815 	refcount_t usage;
2816 	key_serial_t serial;
2817 	union {
2818 		struct list_head graveyard_link;
2819 		struct rb_node serial_node;
2820 	};
2821 	struct rw_semaphore sem;
2822 	struct key_user *user;
2823 	void *security;
2824 	union {
2825 		time64_t expiry;
2826 		time64_t revoked_at;
2827 	};
2828 	time64_t last_used_at;
2829 	kuid_t uid;
2830 	kgid_t gid;
2831 	key_perm_t perm;
2832 	short unsigned int quotalen;
2833 	short unsigned int datalen;
2834 	short int state;
2835 	long unsigned int flags;
2836 	union {
2837 		struct keyring_index_key index_key;
2838 		struct {
2839 			long unsigned int hash;
2840 			long unsigned int len_desc;
2841 			struct key_type *type;
2842 			struct key_tag *domain_tag;
2843 			char *description;
2844 		};
2845 	};
2846 	union {
2847 		union key_payload payload;
2848 		struct {
2849 			struct list_head name_link;
2850 			struct assoc_array keys;
2851 		};
2852 	};
2853 	struct key_restriction *restrict_link;
2854 };
2855 
2856 struct uts_namespace;
2857 
2858 struct ipc_namespace;
2859 
2860 struct mnt_namespace;
2861 
2862 struct net;
2863 
2864 struct time_namespace;
2865 
2866 struct cgroup_namespace;
2867 
2868 struct nsproxy {
2869 	atomic_t count;
2870 	struct uts_namespace *uts_ns;
2871 	struct ipc_namespace *ipc_ns;
2872 	struct mnt_namespace *mnt_ns;
2873 	struct pid_namespace *pid_ns_for_children;
2874 	struct net *net_ns;
2875 	struct time_namespace *time_ns;
2876 	struct time_namespace *time_ns_for_children;
2877 	struct cgroup_namespace *cgroup_ns;
2878 };
2879 
2880 struct sighand_struct {
2881 	spinlock_t siglock;
2882 	refcount_t count;
2883 	wait_queue_head_t signalfd_wqh;
2884 	struct k_sigaction action[64];
2885 };
2886 
2887 struct bio;
2888 
2889 struct bio_list {
2890 	struct bio *head;
2891 	struct bio *tail;
2892 };
2893 
2894 struct request;
2895 
2896 struct blk_plug {
2897 	struct request *mq_list;
2898 	struct request *cached_rq;
2899 	short unsigned int nr_ios;
2900 	short unsigned int rq_count;
2901 	bool multiple_queues;
2902 	bool has_elevator;
2903 	bool nowait;
2904 	struct list_head cb_list;
2905 };
2906 
2907 struct io_cq;
2908 
2909 struct io_context {
2910 	atomic_long_t refcount;
2911 	atomic_t active_ref;
2912 	short unsigned int ioprio;
2913 	spinlock_t lock;
2914 	struct xarray icq_tree;
2915 	struct io_cq *icq_hint;
2916 	struct hlist_head icq_list;
2917 	struct work_struct release_work;
2918 };
2919 
2920 struct cgroup_subsys_state;
2921 
2922 struct cgroup;
2923 
2924 struct css_set {
2925 	struct cgroup_subsys_state *subsys[14];
2926 	refcount_t refcount;
2927 	struct css_set *dom_cset;
2928 	struct cgroup *dfl_cgrp;
2929 	int nr_tasks;
2930 	struct list_head tasks;
2931 	struct list_head mg_tasks;
2932 	struct list_head dying_tasks;
2933 	struct list_head task_iters;
2934 	struct list_head e_cset_node[14];
2935 	struct list_head threaded_csets;
2936 	struct list_head threaded_csets_node;
2937 	struct hlist_node hlist;
2938 	struct list_head cgrp_links;
2939 	struct list_head mg_src_preload_node;
2940 	struct list_head mg_dst_preload_node;
2941 	struct list_head mg_node;
2942 	struct cgroup *mg_src_cgrp;
2943 	struct cgroup *mg_dst_cgrp;
2944 	struct css_set *mg_dst_cset;
2945 	bool dead;
2946 	struct callback_head callback_head;
2947 };
2948 
2949 struct perf_event_groups {
2950 	struct rb_root tree;
2951 	u64 index;
2952 };
2953 
2954 typedef struct {
2955 	atomic_long_t a;
2956 } local_t;
2957 
2958 struct perf_event_context {
2959 	raw_spinlock_t lock;
2960 	struct mutex mutex;
2961 	struct list_head pmu_ctx_list;
2962 	struct perf_event_groups pinned_groups;
2963 	struct perf_event_groups flexible_groups;
2964 	struct list_head event_list;
2965 	int nr_events;
2966 	int nr_user;
2967 	int is_active;
2968 	int nr_task_data;
2969 	int nr_stat;
2970 	int nr_freq;
2971 	int rotate_disable;
2972 	refcount_t refcount;
2973 	struct task_struct *task;
2974 	u64 time;
2975 	u64 timestamp;
2976 	u64 timeoffset;
2977 	struct perf_event_context *parent_ctx;
2978 	u64 parent_gen;
2979 	u64 generation;
2980 	int pin_count;
2981 	int nr_cgroups;
2982 	struct callback_head callback_head;
2983 	local_t nr_pending;
2984 };
2985 
2986 struct ftrace_ret_stack {
2987 	long unsigned int ret;
2988 	long unsigned int func;
2989 	long long unsigned int calltime;
2990 	long long unsigned int subtime;
2991 	long unsigned int *retp;
2992 };
2993 
2994 struct blk_integrity_profile;
2995 
2996 struct blk_integrity {
2997 	const struct blk_integrity_profile *profile;
2998 	unsigned char flags;
2999 	unsigned char tuple_size;
3000 	unsigned char interval_exp;
3001 	unsigned char tag_size;
3002 };
3003 
3004 enum rpm_status {
3005 	RPM_INVALID = -1,
3006 	RPM_ACTIVE = 0,
3007 	RPM_RESUMING = 1,
3008 	RPM_SUSPENDED = 2,
3009 	RPM_SUSPENDING = 3,
3010 };
3011 
3012 enum blk_bounce {
3013 	BLK_BOUNCE_NONE = 0,
3014 	BLK_BOUNCE_HIGH = 1,
3015 };
3016 
3017 enum blk_zoned_model {
3018 	BLK_ZONED_NONE = 0,
3019 	BLK_ZONED_HA = 1,
3020 	BLK_ZONED_HM = 2,
3021 };
3022 
3023 struct queue_limits {
3024 	enum blk_bounce bounce;
3025 	long unsigned int seg_boundary_mask;
3026 	long unsigned int virt_boundary_mask;
3027 	unsigned int max_hw_sectors;
3028 	unsigned int max_dev_sectors;
3029 	unsigned int chunk_sectors;
3030 	unsigned int max_sectors;
3031 	unsigned int max_segment_size;
3032 	unsigned int physical_block_size;
3033 	unsigned int logical_block_size;
3034 	unsigned int alignment_offset;
3035 	unsigned int io_min;
3036 	unsigned int io_opt;
3037 	unsigned int max_discard_sectors;
3038 	unsigned int max_hw_discard_sectors;
3039 	unsigned int max_secure_erase_sectors;
3040 	unsigned int max_write_zeroes_sectors;
3041 	unsigned int max_zone_append_sectors;
3042 	unsigned int discard_granularity;
3043 	unsigned int discard_alignment;
3044 	unsigned int zone_write_granularity;
3045 	short unsigned int max_segments;
3046 	short unsigned int max_integrity_segments;
3047 	short unsigned int max_discard_segments;
3048 	unsigned char misaligned;
3049 	unsigned char discard_misaligned;
3050 	unsigned char raid_partial_stripes_expensive;
3051 	enum blk_zoned_model zoned;
3052 	unsigned int dma_alignment;
3053 };
3054 
3055 struct elevator_queue;
3056 
3057 struct blk_queue_stats;
3058 
3059 struct rq_qos;
3060 
3061 struct blk_mq_ops;
3062 
3063 struct blk_mq_ctx;
3064 
3065 struct gendisk;
3066 
3067 struct device;
3068 
3069 struct blk_crypto_profile;
3070 
3071 struct blk_stat_callback;
3072 
3073 struct blk_rq_stat;
3074 
3075 struct blk_mq_tags;
3076 
3077 struct blkcg_gq;
3078 
3079 struct blk_trace;
3080 
3081 struct blk_flush_queue;
3082 
3083 struct throtl_data;
3084 
3085 struct blk_mq_tag_set;
3086 
3087 struct request_queue {
3088 	struct request *last_merge;
3089 	struct elevator_queue *elevator;
3090 	struct percpu_ref q_usage_counter;
3091 	struct blk_queue_stats *stats;
3092 	struct rq_qos *rq_qos;
3093 	const struct blk_mq_ops *mq_ops;
3094 	struct blk_mq_ctx *queue_ctx;
3095 	unsigned int queue_depth;
3096 	struct xarray hctx_table;
3097 	unsigned int nr_hw_queues;
3098 	void *queuedata;
3099 	long unsigned int queue_flags;
3100 	atomic_t pm_only;
3101 	int id;
3102 	spinlock_t queue_lock;
3103 	struct gendisk *disk;
3104 	refcount_t refs;
3105 	struct kobject *mq_kobj;
3106 	struct blk_integrity integrity;
3107 	struct device *dev;
3108 	enum rpm_status rpm_status;
3109 	long unsigned int nr_requests;
3110 	unsigned int dma_pad_mask;
3111 	struct blk_crypto_profile *crypto_profile;
3112 	struct kobject *crypto_kobject;
3113 	unsigned int rq_timeout;
3114 	int poll_nsec;
3115 	struct blk_stat_callback *poll_cb;
3116 	struct blk_rq_stat *poll_stat;
3117 	struct timer_list timeout;
3118 	struct work_struct timeout_work;
3119 	atomic_t nr_active_requests_shared_tags;
3120 	struct blk_mq_tags *sched_shared_tags;
3121 	struct list_head icq_list;
3122 	long unsigned int blkcg_pols[1];
3123 	struct blkcg_gq *root_blkg;
3124 	struct list_head blkg_list;
3125 	struct queue_limits limits;
3126 	unsigned int required_elevator_features;
3127 	int node;
3128 	struct blk_trace *blk_trace;
3129 	struct blk_flush_queue *fq;
3130 	struct list_head requeue_list;
3131 	spinlock_t requeue_lock;
3132 	struct delayed_work requeue_work;
3133 	struct mutex sysfs_lock;
3134 	struct mutex sysfs_dir_lock;
3135 	struct list_head unused_hctx_list;
3136 	spinlock_t unused_hctx_lock;
3137 	int mq_freeze_depth;
3138 	struct throtl_data *td;
3139 	struct callback_head callback_head;
3140 	wait_queue_head_t mq_freeze_wq;
3141 	struct mutex mq_freeze_lock;
3142 	int quiesce_depth;
3143 	struct blk_mq_tag_set *tag_set;
3144 	struct list_head tag_set_list;
3145 	struct dentry *debugfs_dir;
3146 	struct dentry *sched_debugfs_dir;
3147 	struct dentry *rqos_debugfs_dir;
3148 	struct mutex debugfs_mutex;
3149 	bool mq_sysfs_init_done;
3150 };
3151 
3152 struct list_lru_one {
3153 	struct list_head list;
3154 	long int nr_items;
3155 };
3156 
3157 struct list_lru_node {
3158 	spinlock_t lock;
3159 	struct list_lru_one lru;
3160 	long int nr_items;
3161 	long: 64;
3162 	long: 64;
3163 	long: 64;
3164 };
3165 
3166 enum migrate_mode {
3167 	MIGRATE_ASYNC = 0,
3168 	MIGRATE_SYNC_LIGHT = 1,
3169 	MIGRATE_SYNC = 2,
3170 	MIGRATE_SYNC_NO_COPY = 3,
3171 };
3172 
3173 struct exception_table_entry {
3174 	int insn;
3175 	int fixup;
3176 	short int type;
3177 	short int data;
3178 };
3179 
3180 struct cgroup_subsys;
3181 
3182 struct cgroup_subsys_state {
3183 	struct cgroup *cgroup;
3184 	struct cgroup_subsys *ss;
3185 	struct percpu_ref refcnt;
3186 	struct list_head sibling;
3187 	struct list_head children;
3188 	struct list_head rstat_css_node;
3189 	int id;
3190 	unsigned int flags;
3191 	u64 serial_nr;
3192 	atomic_t online_cnt;
3193 	struct work_struct destroy_work;
3194 	struct rcu_work destroy_rwork;
3195 	struct cgroup_subsys_state *parent;
3196 };
3197 
3198 struct cgroup_file {
3199 	struct kernfs_node *kn;
3200 	long unsigned int notified_at;
3201 	struct timer_list notify_timer;
3202 };
3203 
3204 struct cgroup_base_stat {
3205 	struct task_cputime cputime;
3206 };
3207 
3208 struct bpf_prog_array;
3209 
3210 struct cgroup_bpf {
3211 	struct bpf_prog_array *effective[23];
3212 	struct hlist_head progs[23];
3213 	u8 flags[23];
3214 	struct list_head storages;
3215 	struct bpf_prog_array *inactive;
3216 	struct percpu_ref refcnt;
3217 	struct work_struct release_work;
3218 };
3219 
3220 struct cgroup_freezer_state {
3221 	bool freeze;
3222 	int e_freeze;
3223 	int nr_frozen_descendants;
3224 	int nr_frozen_tasks;
3225 };
3226 
3227 struct cgroup_root;
3228 
3229 struct cgroup_rstat_cpu;
3230 
3231 struct psi_group;
3232 
3233 struct cgroup {
3234 	struct cgroup_subsys_state self;
3235 	long unsigned int flags;
3236 	int level;
3237 	int max_depth;
3238 	int nr_descendants;
3239 	int nr_dying_descendants;
3240 	int max_descendants;
3241 	int nr_populated_csets;
3242 	int nr_populated_domain_children;
3243 	int nr_populated_threaded_children;
3244 	int nr_threaded_children;
3245 	struct kernfs_node *kn;
3246 	struct cgroup_file procs_file;
3247 	struct cgroup_file events_file;
3248 	struct cgroup_file psi_files[0];
3249 	u16 subtree_control;
3250 	u16 subtree_ss_mask;
3251 	u16 old_subtree_control;
3252 	u16 old_subtree_ss_mask;
3253 	struct cgroup_subsys_state *subsys[14];
3254 	struct cgroup_root *root;
3255 	struct list_head cset_links;
3256 	struct list_head e_csets[14];
3257 	struct cgroup *dom_cgrp;
3258 	struct cgroup *old_dom_cgrp;
3259 	struct cgroup_rstat_cpu *rstat_cpu;
3260 	struct list_head rstat_css_list;
3261 	struct cgroup_base_stat last_bstat;
3262 	struct cgroup_base_stat bstat;
3263 	struct prev_cputime prev_cputime;
3264 	struct list_head pidlists;
3265 	struct mutex pidlist_mutex;
3266 	wait_queue_head_t offline_waitq;
3267 	struct work_struct release_agent_work;
3268 	struct psi_group *psi;
3269 	struct cgroup_bpf bpf;
3270 	atomic_t congestion_count;
3271 	struct cgroup_freezer_state freezer;
3272 	struct bpf_local_storage *bpf_cgrp_storage;
3273 	struct cgroup *ancestors[0];
3274 };
3275 
3276 typedef int proc_handler(struct ctl_table *, int, void *, size_t *, loff_t *);
3277 
3278 struct ctl_table_poll;
3279 
3280 struct ctl_table {
3281 	const char *procname;
3282 	void *data;
3283 	int maxlen;
3284 	umode_t mode;
3285 	struct ctl_table *child;
3286 	proc_handler *proc_handler;
3287 	struct ctl_table_poll *poll;
3288 	void *extra1;
3289 	void *extra2;
3290 };
3291 
3292 struct ctl_table_poll {
3293 	atomic_t event;
3294 	wait_queue_head_t wait;
3295 };
3296 
3297 struct ctl_node {
3298 	struct rb_node node;
3299 	struct ctl_table_header *header;
3300 };
3301 
3302 struct ctl_table_root {
3303 	struct ctl_table_set default_set;
3304 	struct ctl_table_set * (*lookup)(struct ctl_table_root *);
3305 	void (*set_ownership)(struct ctl_table_header *, struct ctl_table *, kuid_t *, kgid_t *);
3306 	int (*permissions)(struct ctl_table_header *, struct ctl_table *);
3307 };
3308 
3309 struct key_tag {
3310 	struct callback_head rcu;
3311 	refcount_t usage;
3312 	bool removed;
3313 };
3314 
3315 typedef int (*request_key_actor_t)(struct key *, void *);
3316 
3317 struct key_preparsed_payload;
3318 
3319 struct key_match_data;
3320 
3321 struct kernel_pkey_params;
3322 
3323 struct kernel_pkey_query;
3324 
3325 struct key_type {
3326 	const char *name;
3327 	size_t def_datalen;
3328 	unsigned int flags;
3329 	int (*vet_description)(const char *);
3330 	int (*preparse)(struct key_preparsed_payload *);
3331 	void (*free_preparse)(struct key_preparsed_payload *);
3332 	int (*instantiate)(struct key *, struct key_preparsed_payload *);
3333 	int (*update)(struct key *, struct key_preparsed_payload *);
3334 	int (*match_preparse)(struct key_match_data *);
3335 	void (*match_free)(struct key_match_data *);
3336 	void (*revoke)(struct key *);
3337 	void (*destroy)(struct key *);
3338 	void (*describe)(const struct key *, struct seq_file *);
3339 	long int (*read)(const struct key *, char *, size_t);
3340 	request_key_actor_t request_key;
3341 	struct key_restriction * (*lookup_restriction)(const char *);
3342 	int (*asym_query)(const struct kernel_pkey_params *, struct kernel_pkey_query *);
3343 	int (*asym_eds_op)(struct kernel_pkey_params *, const void *, void *);
3344 	int (*asym_verify_signature)(struct kernel_pkey_params *, const void *, const void *);
3345 	struct list_head link;
3346 	struct lock_class_key lock_class;
3347 };
3348 
3349 typedef int (*key_restrict_link_func_t)(struct key *, const struct key_type *, const union key_payload *, struct key *);
3350 
3351 struct key_restriction {
3352 	key_restrict_link_func_t check;
3353 	struct key *key;
3354 	struct key_type *keytype;
3355 };
3356 
3357 struct user_struct {
3358 	refcount_t __count;
3359 	struct percpu_counter epoll_watches;
3360 	long unsigned int unix_inflight;
3361 	atomic_long_t pipe_bufs;
3362 	struct hlist_node uidhash_node;
3363 	kuid_t uid;
3364 	atomic_long_t locked_vm;
3365 	struct ratelimit_state ratelimit;
3366 };
3367 
3368 struct group_info {
3369 	atomic_t usage;
3370 	int ngroups;
3371 	kgid_t gid[0];
3372 };
3373 
3374 struct core_thread {
3375 	struct task_struct *task;
3376 	struct core_thread *next;
3377 };
3378 
3379 struct core_state {
3380 	atomic_t nr_threads;
3381 	struct core_thread dumper;
3382 	struct completion startup;
3383 };
3384 
3385 struct taskstats {
3386 	__u16 version;
3387 	__u32 ac_exitcode;
3388 	__u8 ac_flag;
3389 	__u8 ac_nice;
3390 	__u64 cpu_count;
3391 	__u64 cpu_delay_total;
3392 	__u64 blkio_count;
3393 	__u64 blkio_delay_total;
3394 	__u64 swapin_count;
3395 	__u64 swapin_delay_total;
3396 	__u64 cpu_run_real_total;
3397 	__u64 cpu_run_virtual_total;
3398 	char ac_comm[32];
3399 	__u8 ac_sched;
3400 	__u8 ac_pad[3];
3401 	int: 32;
3402 	__u32 ac_uid;
3403 	__u32 ac_gid;
3404 	__u32 ac_pid;
3405 	__u32 ac_ppid;
3406 	__u32 ac_btime;
3407 	__u64 ac_etime;
3408 	__u64 ac_utime;
3409 	__u64 ac_stime;
3410 	__u64 ac_minflt;
3411 	__u64 ac_majflt;
3412 	__u64 coremem;
3413 	__u64 virtmem;
3414 	__u64 hiwater_rss;
3415 	__u64 hiwater_vm;
3416 	__u64 read_char;
3417 	__u64 write_char;
3418 	__u64 read_syscalls;
3419 	__u64 write_syscalls;
3420 	__u64 read_bytes;
3421 	__u64 write_bytes;
3422 	__u64 cancelled_write_bytes;
3423 	__u64 nvcsw;
3424 	__u64 nivcsw;
3425 	__u64 ac_utimescaled;
3426 	__u64 ac_stimescaled;
3427 	__u64 cpu_scaled_run_real_total;
3428 	__u64 freepages_count;
3429 	__u64 freepages_delay_total;
3430 	__u64 thrashing_count;
3431 	__u64 thrashing_delay_total;
3432 	__u64 ac_btime64;
3433 	__u64 compact_count;
3434 	__u64 compact_delay_total;
3435 	__u32 ac_tgid;
3436 	__u64 ac_tgetime;
3437 	__u64 ac_exe_dev;
3438 	__u64 ac_exe_inode;
3439 	__u64 wpcopy_count;
3440 	__u64 wpcopy_delay_total;
3441 };
3442 
3443 struct delayed_call {
3444 	void (*fn)(void *);
3445 	void *arg;
3446 };
3447 
3448 struct io_cq {
3449 	struct request_queue *q;
3450 	struct io_context *ioc;
3451 	union {
3452 		struct list_head q_node;
3453 		struct kmem_cache *__rcu_icq_cache;
3454 	};
3455 	union {
3456 		struct hlist_node ioc_node;
3457 		struct callback_head __rcu_head;
3458 	};
3459 	unsigned int flags;
3460 };
3461 
3462 typedef struct {
3463 	uid_t val;
3464 } vfsuid_t;
3465 
3466 typedef struct {
3467 	gid_t val;
3468 } vfsgid_t;
3469 
3470 typedef void percpu_ref_func_t(struct percpu_ref *);
3471 
3472 struct percpu_ref_data {
3473 	atomic_long_t count;
3474 	percpu_ref_func_t *release;
3475 	percpu_ref_func_t *confirm_switch;
3476 	bool force_atomic: 1;
3477 	bool allow_reinit: 1;
3478 	struct callback_head rcu;
3479 	struct percpu_ref *ref;
3480 };
3481 
3482 struct wait_page_queue;
3483 
3484 struct kiocb {
3485 	struct file *ki_filp;
3486 	loff_t ki_pos;
3487 	void (*ki_complete)(struct kiocb *, long int);
3488 	void *private;
3489 	int ki_flags;
3490 	u16 ki_ioprio;
3491 	struct wait_page_queue *ki_waitq;
3492 };
3493 
3494 struct iattr {
3495 	unsigned int ia_valid;
3496 	umode_t ia_mode;
3497 	union {
3498 		kuid_t ia_uid;
3499 		vfsuid_t ia_vfsuid;
3500 	};
3501 	union {
3502 		kgid_t ia_gid;
3503 		vfsgid_t ia_vfsgid;
3504 	};
3505 	loff_t ia_size;
3506 	struct timespec64 ia_atime;
3507 	struct timespec64 ia_mtime;
3508 	struct timespec64 ia_ctime;
3509 	struct file *ia_file;
3510 };
3511 
3512 typedef __kernel_uid32_t projid_t;
3513 
3514 typedef struct {
3515 	projid_t val;
3516 } kprojid_t;
3517 
3518 enum quota_type {
3519 	USRQUOTA = 0,
3520 	GRPQUOTA = 1,
3521 	PRJQUOTA = 2,
3522 };
3523 
3524 struct kqid {
3525 	union {
3526 		kuid_t uid;
3527 		kgid_t gid;
3528 		kprojid_t projid;
3529 	};
3530 	enum quota_type type;
3531 };
3532 
3533 struct mem_dqblk {
3534 	qsize_t dqb_bhardlimit;
3535 	qsize_t dqb_bsoftlimit;
3536 	qsize_t dqb_curspace;
3537 	qsize_t dqb_rsvspace;
3538 	qsize_t dqb_ihardlimit;
3539 	qsize_t dqb_isoftlimit;
3540 	qsize_t dqb_curinodes;
3541 	time64_t dqb_btime;
3542 	time64_t dqb_itime;
3543 };
3544 
3545 struct dquot {
3546 	struct hlist_node dq_hash;
3547 	struct list_head dq_inuse;
3548 	struct list_head dq_free;
3549 	struct list_head dq_dirty;
3550 	struct mutex dq_lock;
3551 	spinlock_t dq_dqb_lock;
3552 	atomic_t dq_count;
3553 	struct super_block *dq_sb;
3554 	struct kqid dq_id;
3555 	loff_t dq_off;
3556 	long unsigned int dq_flags;
3557 	struct mem_dqblk dq_dqb;
3558 };
3559 
3560 struct quota_format_type {
3561 	int qf_fmt_id;
3562 	const struct quota_format_ops *qf_ops;
3563 	struct module *qf_owner;
3564 	struct quota_format_type *qf_next;
3565 };
3566 
3567 struct quota_format_ops {
3568 	int (*check_quota_file)(struct super_block *, int);
3569 	int (*read_file_info)(struct super_block *, int);
3570 	int (*write_file_info)(struct super_block *, int);
3571 	int (*free_file_info)(struct super_block *, int);
3572 	int (*read_dqblk)(struct dquot *);
3573 	int (*commit_dqblk)(struct dquot *);
3574 	int (*release_dqblk)(struct dquot *);
3575 	int (*get_next_id)(struct super_block *, struct kqid *);
3576 };
3577 
3578 struct dquot_operations {
3579 	int (*write_dquot)(struct dquot *);
3580 	struct dquot * (*alloc_dquot)(struct super_block *, int);
3581 	void (*destroy_dquot)(struct dquot *);
3582 	int (*acquire_dquot)(struct dquot *);
3583 	int (*release_dquot)(struct dquot *);
3584 	int (*mark_dirty)(struct dquot *);
3585 	int (*write_info)(struct super_block *, int);
3586 	qsize_t * (*get_reserved_space)(struct inode *);
3587 	int (*get_projid)(struct inode *, kprojid_t *);
3588 	int (*get_inode_usage)(struct inode *, qsize_t *);
3589 	int (*get_next_id)(struct super_block *, struct kqid *);
3590 };
3591 
3592 struct qc_dqblk {
3593 	int d_fieldmask;
3594 	u64 d_spc_hardlimit;
3595 	u64 d_spc_softlimit;
3596 	u64 d_ino_hardlimit;
3597 	u64 d_ino_softlimit;
3598 	u64 d_space;
3599 	u64 d_ino_count;
3600 	s64 d_ino_timer;
3601 	s64 d_spc_timer;
3602 	int d_ino_warns;
3603 	int d_spc_warns;
3604 	u64 d_rt_spc_hardlimit;
3605 	u64 d_rt_spc_softlimit;
3606 	u64 d_rt_space;
3607 	s64 d_rt_spc_timer;
3608 	int d_rt_spc_warns;
3609 };
3610 
3611 struct qc_type_state {
3612 	unsigned int flags;
3613 	unsigned int spc_timelimit;
3614 	unsigned int ino_timelimit;
3615 	unsigned int rt_spc_timelimit;
3616 	unsigned int spc_warnlimit;
3617 	unsigned int ino_warnlimit;
3618 	unsigned int rt_spc_warnlimit;
3619 	long long unsigned int ino;
3620 	blkcnt_t blocks;
3621 	blkcnt_t nextents;
3622 };
3623 
3624 struct qc_state {
3625 	unsigned int s_incoredqs;
3626 	struct qc_type_state s_state[3];
3627 };
3628 
3629 struct qc_info {
3630 	int i_fieldmask;
3631 	unsigned int i_flags;
3632 	unsigned int i_spc_timelimit;
3633 	unsigned int i_ino_timelimit;
3634 	unsigned int i_rt_spc_timelimit;
3635 	unsigned int i_spc_warnlimit;
3636 	unsigned int i_ino_warnlimit;
3637 	unsigned int i_rt_spc_warnlimit;
3638 };
3639 
3640 struct quotactl_ops {
3641 	int (*quota_on)(struct super_block *, int, int, const struct path *);
3642 	int (*quota_off)(struct super_block *, int);
3643 	int (*quota_enable)(struct super_block *, unsigned int);
3644 	int (*quota_disable)(struct super_block *, unsigned int);
3645 	int (*quota_sync)(struct super_block *, int);
3646 	int (*set_info)(struct super_block *, int, struct qc_info *);
3647 	int (*get_dqblk)(struct super_block *, struct kqid, struct qc_dqblk *);
3648 	int (*get_nextdqblk)(struct super_block *, struct kqid *, struct qc_dqblk *);
3649 	int (*set_dqblk)(struct super_block *, struct kqid, struct qc_dqblk *);
3650 	int (*get_state)(struct super_block *, struct qc_state *);
3651 	int (*rm_xquota)(struct super_block *, unsigned int);
3652 };
3653 
3654 struct writeback_control;
3655 
3656 struct readahead_control;
3657 
3658 struct swap_info_struct;
3659 
3660 struct address_space_operations {
3661 	int (*writepage)(struct page *, struct writeback_control *);
3662 	int (*read_folio)(struct file *, struct folio *);
3663 	int (*writepages)(struct address_space *, struct writeback_control *);
3664 	bool (*dirty_folio)(struct address_space *, struct folio *);
3665 	void (*readahead)(struct readahead_control *);
3666 	int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, struct page **, void **);
3667 	int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
3668 	sector_t (*bmap)(struct address_space *, sector_t);
3669 	void (*invalidate_folio)(struct folio *, size_t, size_t);
3670 	bool (*release_folio)(struct folio *, gfp_t);
3671 	void (*free_folio)(struct folio *);
3672 	ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
3673 	int (*migrate_folio)(struct address_space *, struct folio *, struct folio *, enum migrate_mode);
3674 	int (*launder_folio)(struct folio *);
3675 	bool (*is_partially_uptodate)(struct folio *, size_t, size_t);
3676 	void (*is_dirty_writeback)(struct folio *, bool *, bool *);
3677 	int (*error_remove_page)(struct address_space *, struct page *);
3678 	int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
3679 	void (*swap_deactivate)(struct file *);
3680 	int (*swap_rw)(struct kiocb *, struct iov_iter *);
3681 };
3682 
3683 struct iovec;
3684 
3685 struct kvec;
3686 
3687 struct bio_vec;
3688 
3689 struct iov_iter {
3690 	u8 iter_type;
3691 	bool nofault;
3692 	bool data_source;
3693 	bool user_backed;
3694 	union {
3695 		size_t iov_offset;
3696 		int last_offset;
3697 	};
3698 	size_t count;
3699 	union {
3700 		const struct iovec *iov;
3701 		const struct kvec *kvec;
3702 		const struct bio_vec *bvec;
3703 		struct xarray *xarray;
3704 		struct pipe_inode_info *pipe;
3705 		void *ubuf;
3706 	};
3707 	union {
3708 		long unsigned int nr_segs;
3709 		struct {
3710 			unsigned int head;
3711 			unsigned int start_head;
3712 		};
3713 		loff_t xarray_start;
3714 	};
3715 };
3716 
3717 struct fiemap_extent_info;
3718 
3719 struct fileattr;
3720 
3721 struct inode_operations {
3722 	struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
3723 	const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
3724 	int (*permission)(struct user_namespace *, struct inode *, int);
3725 	struct posix_acl * (*get_inode_acl)(struct inode *, int, bool);
3726 	int (*readlink)(struct dentry *, char *, int);
3727 	int (*create)(struct user_namespace *, struct inode *, struct dentry *, umode_t, bool);
3728 	int (*link)(struct dentry *, struct inode *, struct dentry *);
3729 	int (*unlink)(struct inode *, struct dentry *);
3730 	int (*symlink)(struct user_namespace *, struct inode *, struct dentry *, const char *);
3731 	int (*mkdir)(struct user_namespace *, struct inode *, struct dentry *, umode_t);
3732 	int (*rmdir)(struct inode *, struct dentry *);
3733 	int (*mknod)(struct user_namespace *, struct inode *, struct dentry *, umode_t, dev_t);
3734 	int (*rename)(struct user_namespace *, struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
3735 	int (*setattr)(struct user_namespace *, struct dentry *, struct iattr *);
3736 	int (*getattr)(struct user_namespace *, const struct path *, struct kstat *, u32, unsigned int);
3737 	ssize_t (*listxattr)(struct dentry *, char *, size_t);
3738 	int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
3739 	int (*update_time)(struct inode *, struct timespec64 *, int);
3740 	int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
3741 	int (*tmpfile)(struct user_namespace *, struct inode *, struct file *, umode_t);
3742 	struct posix_acl * (*get_acl)(struct user_namespace *, struct dentry *, int);
3743 	int (*set_acl)(struct user_namespace *, struct dentry *, struct posix_acl *, int);
3744 	int (*fileattr_set)(struct user_namespace *, struct dentry *, struct fileattr *);
3745 	int (*fileattr_get)(struct dentry *, struct fileattr *);
3746 };
3747 
3748 struct file_lock_context {
3749 	spinlock_t flc_lock;
3750 	struct list_head flc_flock;
3751 	struct list_head flc_posix;
3752 	struct list_head flc_lease;
3753 };
3754 
3755 struct file_lock_operations {
3756 	void (*fl_copy_lock)(struct file_lock *, struct file_lock *);
3757 	void (*fl_release_private)(struct file_lock *);
3758 };
3759 
3760 struct nlm_lockowner;
3761 
3762 struct nfs_lock_info {
3763 	u32 state;
3764 	struct nlm_lockowner *owner;
3765 	struct list_head list;
3766 };
3767 
3768 struct nfs4_lock_state;
3769 
3770 struct nfs4_lock_info {
3771 	struct nfs4_lock_state *owner;
3772 };
3773 
3774 struct fasync_struct;
3775 
3776 struct lock_manager_operations;
3777 
3778 struct file_lock {
3779 	struct file_lock *fl_blocker;
3780 	struct list_head fl_list;
3781 	struct hlist_node fl_link;
3782 	struct list_head fl_blocked_requests;
3783 	struct list_head fl_blocked_member;
3784 	fl_owner_t fl_owner;
3785 	unsigned int fl_flags;
3786 	unsigned char fl_type;
3787 	unsigned int fl_pid;
3788 	int fl_link_cpu;
3789 	wait_queue_head_t fl_wait;
3790 	struct file *fl_file;
3791 	loff_t fl_start;
3792 	loff_t fl_end;
3793 	struct fasync_struct *fl_fasync;
3794 	long unsigned int fl_break_time;
3795 	long unsigned int fl_downgrade_time;
3796 	const struct file_lock_operations *fl_ops;
3797 	const struct lock_manager_operations *fl_lmops;
3798 	union {
3799 		struct nfs_lock_info nfs_fl;
3800 		struct nfs4_lock_info nfs4_fl;
3801 		struct {
3802 			struct list_head link;
3803 			int state;
3804 			unsigned int debug_id;
3805 		} afs;
3806 		struct {
3807 			struct inode *inode;
3808 		} ceph;
3809 	} fl_u;
3810 };
3811 
3812 struct lock_manager_operations {
3813 	void *lm_mod_owner;
3814 	fl_owner_t (*lm_get_owner)(fl_owner_t);
3815 	void (*lm_put_owner)(fl_owner_t);
3816 	void (*lm_notify)(struct file_lock *);
3817 	int (*lm_grant)(struct file_lock *, int);
3818 	bool (*lm_break)(struct file_lock *);
3819 	int (*lm_change)(struct file_lock *, int, struct list_head *);
3820 	void (*lm_setup)(struct file_lock *, void **);
3821 	bool (*lm_breaker_owns_lease)(struct file_lock *);
3822 	bool (*lm_lock_expirable)(struct file_lock *);
3823 	void (*lm_expire_lock)();
3824 };
3825 
3826 struct fasync_struct {
3827 	rwlock_t fa_lock;
3828 	int magic;
3829 	int fa_fd;
3830 	struct fasync_struct *fa_next;
3831 	struct file *fa_file;
3832 	struct callback_head fa_rcu;
3833 };
3834 
3835 struct kstatfs;
3836 
3837 struct super_operations {
3838 	struct inode * (*alloc_inode)(struct super_block *);
3839 	void (*destroy_inode)(struct inode *);
3840 	void (*free_inode)(struct inode *);
3841 	void (*dirty_inode)(struct inode *, int);
3842 	int (*write_inode)(struct inode *, struct writeback_control *);
3843 	int (*drop_inode)(struct inode *);
3844 	void (*evict_inode)(struct inode *);
3845 	void (*put_super)(struct super_block *);
3846 	int (*sync_fs)(struct super_block *, int);
3847 	int (*freeze_super)(struct super_block *);
3848 	int (*freeze_fs)(struct super_block *);
3849 	int (*thaw_super)(struct super_block *);
3850 	int (*unfreeze_fs)(struct super_block *);
3851 	int (*statfs)(struct dentry *, struct kstatfs *);
3852 	int (*remount_fs)(struct super_block *, int *, char *);
3853 	void (*umount_begin)(struct super_block *);
3854 	int (*show_options)(struct seq_file *, struct dentry *);
3855 	int (*show_devname)(struct seq_file *, struct dentry *);
3856 	int (*show_path)(struct seq_file *, struct dentry *);
3857 	int (*show_stats)(struct seq_file *, struct dentry *);
3858 	ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);
3859 	ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
3860 	struct dquot ** (*get_dquots)(struct inode *);
3861 	long int (*nr_cached_objects)(struct super_block *, struct shrink_control *);
3862 	long int (*free_cached_objects)(struct super_block *, struct shrink_control *);
3863 };
3864 
3865 struct iomap;
3866 
3867 struct fid;
3868 
3869 struct export_operations {
3870 	int (*encode_fh)(struct inode *, __u32 *, int *, struct inode *);
3871 	struct dentry * (*fh_to_dentry)(struct super_block *, struct fid *, int, int);
3872 	struct dentry * (*fh_to_parent)(struct super_block *, struct fid *, int, int);
3873 	int (*get_name)(struct dentry *, char *, struct dentry *);
3874 	struct dentry * (*get_parent)(struct dentry *);
3875 	int (*commit_metadata)(struct inode *);
3876 	int (*get_uuid)(struct super_block *, u8 *, u32 *, u64 *);
3877 	int (*map_blocks)(struct inode *, loff_t, u64, struct iomap *, bool, u32 *);
3878 	int (*commit_blocks)(struct inode *, struct iomap *, int, struct iattr *);
3879 	u64 (*fetch_iversion)(struct inode *);
3880 	long unsigned int flags;
3881 };
3882 
3883 struct xattr_handler {
3884 	const char *name;
3885 	const char *prefix;
3886 	int flags;
3887 	bool (*list)(struct dentry *);
3888 	int (*get)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, size_t);
3889 	int (*set)(const struct xattr_handler *, struct user_namespace *, struct dentry *, struct inode *, const char *, const void *, size_t, int);
3890 };
3891 
3892 union fscrypt_policy;
3893 
3894 struct fscrypt_operations {
3895 	unsigned int flags;
3896 	const char *key_prefix;
3897 	int (*get_context)(struct inode *, void *, size_t);
3898 	int (*set_context)(struct inode *, const void *, size_t, void *);
3899 	const union fscrypt_policy * (*get_dummy_policy)(struct super_block *);
3900 	bool (*empty_dir)(struct inode *);
3901 	bool (*has_stable_inodes)(struct super_block *);
3902 	void (*get_ino_and_lblk_bits)(struct super_block *, int *, int *);
3903 	struct block_device ** (*get_devices)(struct super_block *, unsigned int *);
3904 };
3905 
3906 struct fsverity_operations {
3907 	int (*begin_enable_verity)(struct file *);
3908 	int (*end_enable_verity)(struct file *, const void *, size_t, u64);
3909 	int (*get_verity_descriptor)(struct inode *, void *, size_t);
3910 	struct page * (*read_merkle_tree_page)(struct inode *, long unsigned int, long unsigned int);
3911 	int (*write_merkle_tree_block)(struct inode *, const void *, u64, int);
3912 };
3913 
3914 enum dl_dev_state {
3915 	DL_DEV_NO_DRIVER = 0,
3916 	DL_DEV_PROBING = 1,
3917 	DL_DEV_DRIVER_BOUND = 2,
3918 	DL_DEV_UNBINDING = 3,
3919 };
3920 
3921 struct dev_links_info {
3922 	struct list_head suppliers;
3923 	struct list_head consumers;
3924 	struct list_head defer_sync;
3925 	enum dl_dev_state status;
3926 };
3927 
3928 struct pm_message {
3929 	int event;
3930 };
3931 
3932 typedef struct pm_message pm_message_t;
3933 
3934 enum rpm_request {
3935 	RPM_REQ_NONE = 0,
3936 	RPM_REQ_IDLE = 1,
3937 	RPM_REQ_SUSPEND = 2,
3938 	RPM_REQ_AUTOSUSPEND = 3,
3939 	RPM_REQ_RESUME = 4,
3940 };
3941 
3942 struct wakeup_source;
3943 
3944 struct wake_irq;
3945 
3946 struct pm_subsys_data;
3947 
3948 struct dev_pm_qos;
3949 
3950 struct dev_pm_info {
3951 	pm_message_t power_state;
3952 	unsigned int can_wakeup: 1;
3953 	unsigned int async_suspend: 1;
3954 	bool in_dpm_list: 1;
3955 	bool is_prepared: 1;
3956 	bool is_suspended: 1;
3957 	bool is_noirq_suspended: 1;
3958 	bool is_late_suspended: 1;
3959 	bool no_pm: 1;
3960 	bool early_init: 1;
3961 	bool direct_complete: 1;
3962 	u32 driver_flags;
3963 	spinlock_t lock;
3964 	struct list_head entry;
3965 	struct completion completion;
3966 	struct wakeup_source *wakeup;
3967 	bool wakeup_path: 1;
3968 	bool syscore: 1;
3969 	bool no_pm_callbacks: 1;
3970 	unsigned int must_resume: 1;
3971 	unsigned int may_skip_resume: 1;
3972 	struct hrtimer suspend_timer;
3973 	u64 timer_expires;
3974 	struct work_struct work;
3975 	wait_queue_head_t wait_queue;
3976 	struct wake_irq *wakeirq;
3977 	atomic_t usage_count;
3978 	atomic_t child_count;
3979 	unsigned int disable_depth: 3;
3980 	unsigned int idle_notification: 1;
3981 	unsigned int request_pending: 1;
3982 	unsigned int deferred_resume: 1;
3983 	unsigned int needs_force_resume: 1;
3984 	unsigned int runtime_auto: 1;
3985 	bool ignore_children: 1;
3986 	unsigned int no_callbacks: 1;
3987 	unsigned int irq_safe: 1;
3988 	unsigned int use_autosuspend: 1;
3989 	unsigned int timer_autosuspends: 1;
3990 	unsigned int memalloc_noio: 1;
3991 	unsigned int links_count;
3992 	enum rpm_request request;
3993 	enum rpm_status runtime_status;
3994 	enum rpm_status last_status;
3995 	int runtime_error;
3996 	int autosuspend_delay;
3997 	u64 last_busy;
3998 	u64 active_time;
3999 	u64 suspended_time;
4000 	u64 accounting_timestamp;
4001 	struct pm_subsys_data *subsys_data;
4002 	void (*set_latency_tolerance)(struct device *, s32);
4003 	struct dev_pm_qos *qos;
4004 };
4005 
4006 struct irq_domain;
4007 
4008 struct msi_device_data;
4009 
4010 struct dev_msi_info {
4011 	struct irq_domain *domain;
4012 	struct msi_device_data *data;
4013 };
4014 
4015 struct dev_archdata {};
4016 
4017 enum device_removable {
4018 	DEVICE_REMOVABLE_NOT_SUPPORTED = 0,
4019 	DEVICE_REMOVABLE_UNKNOWN = 1,
4020 	DEVICE_FIXED = 2,
4021 	DEVICE_REMOVABLE = 3,
4022 };
4023 
4024 struct device_private;
4025 
4026 struct device_type;
4027 
4028 struct bus_type;
4029 
4030 struct device_driver;
4031 
4032 struct dev_pm_domain;
4033 
4034 struct bus_dma_region;
4035 
4036 struct device_dma_parameters;
4037 
4038 struct dma_coherent_mem;
4039 
4040 struct cma;
4041 
4042 struct io_tlb_mem;
4043 
4044 struct device_node;
4045 
4046 struct fwnode_handle;
4047 
4048 struct class;
4049 
4050 struct attribute_group;
4051 
4052 struct iommu_group;
4053 
4054 struct dev_iommu;
4055 
4056 struct device_physical_location;
4057 
4058 struct device {
4059 	struct kobject kobj;
4060 	struct device *parent;
4061 	struct device_private *p;
4062 	const char *init_name;
4063 	const struct device_type *type;
4064 	struct bus_type *bus;
4065 	struct device_driver *driver;
4066 	void *platform_data;
4067 	void *driver_data;
4068 	struct mutex mutex;
4069 	struct dev_links_info links;
4070 	struct dev_pm_info power;
4071 	struct dev_pm_domain *pm_domain;
4072 	struct dev_msi_info msi;
4073 	u64 *dma_mask;
4074 	u64 coherent_dma_mask;
4075 	u64 bus_dma_limit;
4076 	const struct bus_dma_region *dma_range_map;
4077 	struct device_dma_parameters *dma_parms;
4078 	struct list_head dma_pools;
4079 	struct dma_coherent_mem *dma_mem;
4080 	struct cma *cma_area;
4081 	struct io_tlb_mem *dma_io_tlb_mem;
4082 	struct dev_archdata archdata;
4083 	struct device_node *of_node;
4084 	struct fwnode_handle *fwnode;
4085 	int numa_node;
4086 	dev_t devt;
4087 	u32 id;
4088 	spinlock_t devres_lock;
4089 	struct list_head devres_head;
4090 	struct class *class;
4091 	const struct attribute_group **groups;
4092 	void (*release)(struct device *);
4093 	struct iommu_group *iommu_group;
4094 	struct dev_iommu *iommu;
4095 	struct device_physical_location *physical_location;
4096 	enum device_removable removable;
4097 	bool offline_disabled: 1;
4098 	bool offline: 1;
4099 	bool of_node_reused: 1;
4100 	bool state_synced: 1;
4101 	bool can_match: 1;
4102 };
4103 
4104 struct disk_stats;
4105 
4106 struct partition_meta_info;
4107 
4108 struct block_device {
4109 	sector_t bd_start_sect;
4110 	sector_t bd_nr_sectors;
4111 	struct disk_stats *bd_stats;
4112 	long unsigned int bd_stamp;
4113 	bool bd_read_only;
4114 	dev_t bd_dev;
4115 	atomic_t bd_openers;
4116 	struct inode *bd_inode;
4117 	struct super_block *bd_super;
4118 	void *bd_claiming;
4119 	struct device bd_device;
4120 	void *bd_holder;
4121 	int bd_holders;
4122 	bool bd_write_holder;
4123 	struct kobject *bd_holder_dir;
4124 	u8 bd_partno;
4125 	spinlock_t bd_size_lock;
4126 	struct gendisk *bd_disk;
4127 	struct request_queue *bd_queue;
4128 	int bd_fsfreeze_count;
4129 	struct mutex bd_fsfreeze_mutex;
4130 	struct super_block *bd_fsfreeze_sb;
4131 	struct partition_meta_info *bd_meta_info;
4132 	bool bd_make_it_fail;
4133 };
4134 
4135 typedef bool (*filldir_t)(struct dir_context *, const char *, int, loff_t, u64, unsigned int);
4136 
4137 struct dir_context {
4138 	filldir_t actor;
4139 	loff_t pos;
4140 };
4141 
4142 struct io_comp_batch {
4143 	struct request *req_list;
4144 	bool need_ts;
4145 	void (*complete)(struct io_comp_batch *);
4146 };
4147 
4148 typedef void (*poll_queue_proc)(struct file *, wait_queue_head_t *, struct poll_table_struct *);
4149 
4150 struct poll_table_struct {
4151 	poll_queue_proc _qproc;
4152 	__poll_t _key;
4153 };
4154 
4155 struct p_log;
4156 
4157 struct fs_parameter;
4158 
4159 struct fs_parse_result;
4160 
4161 typedef int fs_param_type(struct p_log *, const struct fs_parameter_spec *, struct fs_parameter *, struct fs_parse_result *);
4162 
4163 struct fs_parameter_spec {
4164 	const char *name;
4165 	fs_param_type *type;
4166 	u8 opt;
4167 	short unsigned int flags;
4168 	const void *data;
4169 };
4170 
4171 typedef __u32 blk_opf_t;
4172 
4173 typedef u8 blk_status_t;
4174 
4175 struct bvec_iter {
4176 	sector_t bi_sector;
4177 	unsigned int bi_size;
4178 	unsigned int bi_idx;
4179 	unsigned int bi_bvec_done;
4180 } __attribute__((packed));
4181 
4182 typedef unsigned int blk_qc_t;
4183 
4184 typedef void bio_end_io_t(struct bio *);
4185 
4186 struct bio_issue {
4187 	u64 value;
4188 };
4189 
4190 struct bio_vec {
4191 	struct page *bv_page;
4192 	unsigned int bv_len;
4193 	unsigned int bv_offset;
4194 };
4195 
4196 struct bio_crypt_ctx;
4197 
4198 struct bio_integrity_payload;
4199 
4200 struct bio_set;
4201 
4202 struct bio {
4203 	struct bio *bi_next;
4204 	struct block_device *bi_bdev;
4205 	blk_opf_t bi_opf;
4206 	short unsigned int bi_flags;
4207 	short unsigned int bi_ioprio;
4208 	blk_status_t bi_status;
4209 	atomic_t __bi_remaining;
4210 	struct bvec_iter bi_iter;
4211 	blk_qc_t bi_cookie;
4212 	bio_end_io_t *bi_end_io;
4213 	void *bi_private;
4214 	struct blkcg_gq *bi_blkg;
4215 	struct bio_issue bi_issue;
4216 	u64 bi_iocost_cost;
4217 	struct bio_crypt_ctx *bi_crypt_context;
4218 	union {
4219 		struct bio_integrity_payload *bi_integrity;
4220 	};
4221 	short unsigned int bi_vcnt;
4222 	short unsigned int bi_max_vecs;
4223 	atomic_t __bi_cnt;
4224 	struct bio_vec *bi_io_vec;
4225 	struct bio_set *bi_pool;
4226 	struct bio_vec bi_inline_vecs[0];
4227 };
4228 
4229 struct subprocess_info {
4230 	struct work_struct work;
4231 	struct completion *complete;
4232 	const char *path;
4233 	char **argv;
4234 	char **envp;
4235 	int wait;
4236 	int retval;
4237 	int (*init)(struct subprocess_info *, struct cred *);
4238 	void (*cleanup)(struct subprocess_info *);
4239 	void *data;
4240 };
4241 
4242 struct tracepoint_func {
4243 	void *func;
4244 	void *data;
4245 	int prio;
4246 };
4247 
4248 struct tracepoint {
4249 	const char *name;
4250 	struct static_key key;
4251 	struct static_call_key *static_call_key;
4252 	void *static_call_tramp;
4253 	void *iterator;
4254 	int (*regfunc)();
4255 	void (*unregfunc)();
4256 	struct tracepoint_func *funcs;
4257 };
4258 
4259 struct bpf_raw_event_map {
4260 	struct tracepoint *tp;
4261 	void *bpf_func;
4262 	u32 num_args;
4263 	u32 writable_size;
4264 	long: 64;
4265 };
4266 
4267 struct dev_pagemap_ops {
4268 	void (*page_free)(struct page *);
4269 	vm_fault_t (*migrate_to_ram)(struct vm_fault *);
4270 	int (*memory_failure)(struct dev_pagemap *, long unsigned int, long unsigned int, int);
4271 };
4272 
4273 struct irq_desc;
4274 
4275 typedef void (*irq_flow_handler_t)(struct irq_desc *);
4276 
4277 struct msi_desc;
4278 
4279 struct irq_common_data {
4280 	unsigned int state_use_accessors;
4281 	unsigned int node;
4282 	void *handler_data;
4283 	struct msi_desc *msi_desc;
4284 	cpumask_var_t affinity;
4285 	cpumask_var_t effective_affinity;
4286 };
4287 
4288 struct irq_chip;
4289 
4290 struct irq_data {
4291 	u32 mask;
4292 	unsigned int irq;
4293 	long unsigned int hwirq;
4294 	struct irq_common_data *common;
4295 	struct irq_chip *chip;
4296 	struct irq_domain *domain;
4297 	struct irq_data *parent_data;
4298 	void *chip_data;
4299 };
4300 
4301 struct irqaction;
4302 
4303 struct irq_affinity_notify;
4304 
4305 struct proc_dir_entry;
4306 
4307 struct irq_desc {
4308 	struct irq_common_data irq_common_data;
4309 	struct irq_data irq_data;
4310 	unsigned int *kstat_irqs;
4311 	irq_flow_handler_t handle_irq;
4312 	struct irqaction *action;
4313 	unsigned int status_use_accessors;
4314 	unsigned int core_internal_state__do_not_mess_with_it;
4315 	unsigned int depth;
4316 	unsigned int wake_depth;
4317 	unsigned int tot_count;
4318 	unsigned int irq_count;
4319 	long unsigned int last_unhandled;
4320 	unsigned int irqs_unhandled;
4321 	atomic_t threads_handled;
4322 	int threads_handled_last;
4323 	raw_spinlock_t lock;
4324 	struct cpumask *percpu_enabled;
4325 	const struct cpumask *percpu_affinity;
4326 	const struct cpumask *affinity_hint;
4327 	struct irq_affinity_notify *affinity_notify;
4328 	long unsigned int threads_oneshot;
4329 	atomic_t threads_active;
4330 	wait_queue_head_t wait_for_threads;
4331 	unsigned int nr_actions;
4332 	unsigned int no_suspend_depth;
4333 	unsigned int cond_suspend_depth;
4334 	unsigned int force_resume_depth;
4335 	struct proc_dir_entry *dir;
4336 	struct callback_head rcu;
4337 	struct kobject kobj;
4338 	struct mutex request_mutex;
4339 	int parent_irq;
4340 	struct module *owner;
4341 	const char *name;
4342 	long: 64;
4343 	long: 64;
4344 	long: 64;
4345 	long: 64;
4346 	long: 64;
4347 	long: 64;
4348 };
4349 
4350 enum irqreturn {
4351 	IRQ_NONE = 0,
4352 	IRQ_HANDLED = 1,
4353 	IRQ_WAKE_THREAD = 2,
4354 };
4355 
4356 typedef enum irqreturn irqreturn_t;
4357 
4358 struct fwnode_operations;
4359 
4360 struct fwnode_handle {
4361 	struct fwnode_handle *secondary;
4362 	const struct fwnode_operations *ops;
4363 	struct device *dev;
4364 	struct list_head suppliers;
4365 	struct list_head consumers;
4366 	u8 flags;
4367 };
4368 
4369 enum dev_dma_attr {
4370 	DEV_DMA_NOT_SUPPORTED = 0,
4371 	DEV_DMA_NON_COHERENT = 1,
4372 	DEV_DMA_COHERENT = 2,
4373 };
4374 
4375 struct fwnode_reference_args;
4376 
4377 struct fwnode_endpoint;
4378 
4379 struct fwnode_operations {
4380 	struct fwnode_handle * (*get)(struct fwnode_handle *);
4381 	void (*put)(struct fwnode_handle *);
4382 	bool (*device_is_available)(const struct fwnode_handle *);
4383 	const void * (*device_get_match_data)(const struct fwnode_handle *, const struct device *);
4384 	bool (*device_dma_supported)(const struct fwnode_handle *);
4385 	enum dev_dma_attr (*device_get_dma_attr)(const struct fwnode_handle *);
4386 	bool (*property_present)(const struct fwnode_handle *, const char *);
4387 	int (*property_read_int_array)(const struct fwnode_handle *, const char *, unsigned int, void *, size_t);
4388 	int (*property_read_string_array)(const struct fwnode_handle *, const char *, const char **, size_t);
4389 	const char * (*get_name)(const struct fwnode_handle *);
4390 	const char * (*get_name_prefix)(const struct fwnode_handle *);
4391 	struct fwnode_handle * (*get_parent)(const struct fwnode_handle *);
4392 	struct fwnode_handle * (*get_next_child_node)(const struct fwnode_handle *, struct fwnode_handle *);
4393 	struct fwnode_handle * (*get_named_child_node)(const struct fwnode_handle *, const char *);
4394 	int (*get_reference_args)(const struct fwnode_handle *, const char *, const char *, unsigned int, unsigned int, struct fwnode_reference_args *);
4395 	struct fwnode_handle * (*graph_get_next_endpoint)(const struct fwnode_handle *, struct fwnode_handle *);
4396 	struct fwnode_handle * (*graph_get_remote_endpoint)(const struct fwnode_handle *);
4397 	struct fwnode_handle * (*graph_get_port_parent)(struct fwnode_handle *);
4398 	int (*graph_parse_endpoint)(const struct fwnode_handle *, struct fwnode_endpoint *);
4399 	void * (*iomap)(struct fwnode_handle *, int);
4400 	int (*irq_get)(const struct fwnode_handle *, unsigned int);
4401 	int (*add_links)(struct fwnode_handle *);
4402 };
4403 
4404 struct fwnode_endpoint {
4405 	unsigned int port;
4406 	unsigned int id;
4407 	const struct fwnode_handle *local_fwnode;
4408 };
4409 
4410 struct fwnode_reference_args {
4411 	struct fwnode_handle *fwnode;
4412 	unsigned int nargs;
4413 	u64 args[8];
4414 };
4415 
4416 enum irq_domain_bus_token {
4417 	DOMAIN_BUS_ANY = 0,
4418 	DOMAIN_BUS_WIRED = 1,
4419 	DOMAIN_BUS_GENERIC_MSI = 2,
4420 	DOMAIN_BUS_PCI_MSI = 3,
4421 	DOMAIN_BUS_PLATFORM_MSI = 4,
4422 	DOMAIN_BUS_NEXUS = 5,
4423 	DOMAIN_BUS_IPI = 6,
4424 	DOMAIN_BUS_FSL_MC_MSI = 7,
4425 	DOMAIN_BUS_TI_SCI_INTA_MSI = 8,
4426 	DOMAIN_BUS_WAKEUP = 9,
4427 	DOMAIN_BUS_VMD_MSI = 10,
4428 	DOMAIN_BUS_PCI_DEVICE_MSI = 11,
4429 	DOMAIN_BUS_PCI_DEVICE_MSIX = 12,
4430 	DOMAIN_BUS_DMAR = 13,
4431 	DOMAIN_BUS_AMDVI = 14,
4432 	DOMAIN_BUS_PCI_DEVICE_IMS = 15,
4433 };
4434 
4435 struct kernfs_root;
4436 
4437 struct kernfs_elem_dir {
4438 	long unsigned int subdirs;
4439 	struct rb_root children;
4440 	struct kernfs_root *root;
4441 	long unsigned int rev;
4442 };
4443 
4444 struct kernfs_elem_symlink {
4445 	struct kernfs_node *target_kn;
4446 };
4447 
4448 struct kernfs_ops;
4449 
4450 struct kernfs_open_node;
4451 
4452 struct kernfs_elem_attr {
4453 	const struct kernfs_ops *ops;
4454 	struct kernfs_open_node *open;
4455 	loff_t size;
4456 	struct kernfs_node *notify_next;
4457 };
4458 
4459 struct kernfs_iattrs;
4460 
4461 struct kernfs_node {
4462 	atomic_t count;
4463 	atomic_t active;
4464 	struct kernfs_node *parent;
4465 	const char *name;
4466 	struct rb_node rb;
4467 	const void *ns;
4468 	unsigned int hash;
4469 	union {
4470 		struct kernfs_elem_dir dir;
4471 		struct kernfs_elem_symlink symlink;
4472 		struct kernfs_elem_attr attr;
4473 	};
4474 	void *priv;
4475 	u64 id;
4476 	short unsigned int flags;
4477 	umode_t mode;
4478 	struct kernfs_iattrs *iattr;
4479 };
4480 
4481 struct kernfs_open_file;
4482 
4483 struct kernfs_ops {
4484 	int (*open)(struct kernfs_open_file *);
4485 	void (*release)(struct kernfs_open_file *);
4486 	int (*seq_show)(struct seq_file *, void *);
4487 	void * (*seq_start)(struct seq_file *, loff_t *);
4488 	void * (*seq_next)(struct seq_file *, void *, loff_t *);
4489 	void (*seq_stop)(struct seq_file *, void *);
4490 	ssize_t (*read)(struct kernfs_open_file *, char *, size_t, loff_t);
4491 	size_t atomic_write_len;
4492 	bool prealloc;
4493 	ssize_t (*write)(struct kernfs_open_file *, char *, size_t, loff_t);
4494 	__poll_t (*poll)(struct kernfs_open_file *, struct poll_table_struct *);
4495 	int (*mmap)(struct kernfs_open_file *, struct vm_area_struct *);
4496 };
4497 
4498 struct kernfs_open_file {
4499 	struct kernfs_node *kn;
4500 	struct file *file;
4501 	struct seq_file *seq_file;
4502 	void *priv;
4503 	struct mutex mutex;
4504 	struct mutex prealloc_mutex;
4505 	int event;
4506 	struct list_head list;
4507 	char *prealloc_buf;
4508 	size_t atomic_write_len;
4509 	bool mmapped: 1;
4510 	bool released: 1;
4511 	const struct vm_operations_struct *vm_ops;
4512 };
4513 
4514 enum kobj_ns_type {
4515 	KOBJ_NS_TYPE_NONE = 0,
4516 	KOBJ_NS_TYPE_NET = 1,
4517 	KOBJ_NS_TYPES = 2,
4518 };
4519 
4520 struct sock;
4521 
4522 struct kobj_ns_type_operations {
4523 	enum kobj_ns_type type;
4524 	bool (*current_may_mount)();
4525 	void * (*grab_current_ns)();
4526 	const void * (*netlink_ns)(struct sock *);
4527 	const void * (*initial_ns)();
4528 	void (*drop_ns)(void *);
4529 };
4530 
4531 struct attribute {
4532 	const char *name;
4533 	umode_t mode;
4534 };
4535 
4536 struct bin_attribute;
4537 
4538 struct attribute_group {
4539 	const char *name;
4540 	umode_t (*is_visible)(struct kobject *, struct attribute *, int);
4541 	umode_t (*is_bin_visible)(struct kobject *, struct bin_attribute *, int);
4542 	struct attribute **attrs;
4543 	struct bin_attribute **bin_attrs;
4544 };
4545 
4546 struct bin_attribute {
4547 	struct attribute attr;
4548 	size_t size;
4549 	void *private;
4550 	struct address_space * (*f_mapping)();
4551 	ssize_t (*read)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t);
4552 	ssize_t (*write)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t);
4553 	int (*mmap)(struct file *, struct kobject *, struct bin_attribute *, struct vm_area_struct *);
4554 };
4555 
4556 struct sysfs_ops {
4557 	ssize_t (*show)(struct kobject *, struct attribute *, char *);
4558 	ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t);
4559 };
4560 
4561 struct kset_uevent_ops;
4562 
4563 struct kset {
4564 	struct list_head list;
4565 	spinlock_t list_lock;
4566 	struct kobject kobj;
4567 	const struct kset_uevent_ops *uevent_ops;
4568 };
4569 
4570 struct kobj_type {
4571 	void (*release)(struct kobject *);
4572 	const struct sysfs_ops *sysfs_ops;
4573 	const struct attribute_group **default_groups;
4574 	const struct kobj_ns_type_operations * (*child_ns_type)(const struct kobject *);
4575 	const void * (*namespace)(const struct kobject *);
4576 	void (*get_ownership)(const struct kobject *, kuid_t *, kgid_t *);
4577 };
4578 
4579 struct kobj_uevent_env {
4580 	char *argv[3];
4581 	char *envp[64];
4582 	int envp_idx;
4583 	char buf[2048];
4584 	int buflen;
4585 };
4586 
4587 struct kset_uevent_ops {
4588 	int (* const filter)(const struct kobject *);
4589 	const char * (* const name)(const struct kobject *);
4590 	int (* const uevent)(struct kobject *, struct kobj_uevent_env *);
4591 };
4592 
4593 typedef long unsigned int kernel_ulong_t;
4594 
4595 struct acpi_device_id {
4596 	__u8 id[16];
4597 	kernel_ulong_t driver_data;
4598 	__u32 cls;
4599 	__u32 cls_msk;
4600 };
4601 
4602 struct of_device_id {
4603 	char name[32];
4604 	char type[32];
4605 	char compatible[128];
4606 	const void *data;
4607 };
4608 
4609 typedef u32 phandle;
4610 
4611 struct property {
4612 	char *name;
4613 	int length;
4614 	void *value;
4615 	struct property *next;
4616 	long unsigned int _flags;
4617 	struct bin_attribute attr;
4618 };
4619 
4620 struct device_node {
4621 	const char *name;
4622 	phandle phandle;
4623 	const char *full_name;
4624 	struct fwnode_handle fwnode;
4625 	struct property *properties;
4626 	struct property *deadprops;
4627 	struct device_node *parent;
4628 	struct device_node *child;
4629 	struct device_node *sibling;
4630 	struct kobject kobj;
4631 	long unsigned int _flags;
4632 	void *data;
4633 };
4634 
4635 struct irq_fwspec {
4636 	struct fwnode_handle *fwnode;
4637 	int param_count;
4638 	u32 param[16];
4639 };
4640 
4641 struct irq_domain_ops {
4642 	int (*match)(struct irq_domain *, struct device_node *, enum irq_domain_bus_token);
4643 	int (*select)(struct irq_domain *, struct irq_fwspec *, enum irq_domain_bus_token);
4644 	int (*map)(struct irq_domain *, unsigned int, irq_hw_number_t);
4645 	void (*unmap)(struct irq_domain *, unsigned int);
4646 	int (*xlate)(struct irq_domain *, struct device_node *, const u32 *, unsigned int, long unsigned int *, unsigned int *);
4647 	int (*alloc)(struct irq_domain *, unsigned int, unsigned int, void *);
4648 	void (*free)(struct irq_domain *, unsigned int, unsigned int);
4649 	int (*activate)(struct irq_domain *, struct irq_data *, bool);
4650 	void (*deactivate)(struct irq_domain *, struct irq_data *);
4651 	int (*translate)(struct irq_domain *, struct irq_fwspec *, long unsigned int *, unsigned int *);
4652 };
4653 
4654 struct irq_domain_chip_generic;
4655 
4656 struct msi_parent_ops;
4657 
4658 struct irq_domain {
4659 	struct list_head link;
4660 	const char *name;
4661 	const struct irq_domain_ops *ops;
4662 	void *host_data;
4663 	unsigned int flags;
4664 	unsigned int mapcount;
4665 	struct fwnode_handle *fwnode;
4666 	enum irq_domain_bus_token bus_token;
4667 	struct irq_domain_chip_generic *gc;
4668 	struct device *dev;
4669 	struct device *pm_dev;
4670 	struct irq_domain *parent;
4671 	const struct msi_parent_ops *msi_parent_ops;
4672 	irq_hw_number_t hwirq_max;
4673 	unsigned int revmap_size;
4674 	struct xarray revmap_tree;
4675 	struct mutex revmap_mutex;
4676 	struct irq_data *revmap[0];
4677 };
4678 
4679 enum irq_gc_flags {
4680 	IRQ_GC_INIT_MASK_CACHE = 1,
4681 	IRQ_GC_INIT_NESTED_LOCK = 2,
4682 	IRQ_GC_MASK_CACHE_PER_TYPE = 4,
4683 	IRQ_GC_NO_MASK = 8,
4684 	IRQ_GC_BE_IO = 16,
4685 };
4686 
4687 struct irq_chip_generic;
4688 
4689 struct irq_domain_chip_generic {
4690 	unsigned int irqs_per_chip;
4691 	unsigned int num_chips;
4692 	unsigned int irq_flags_to_clear;
4693 	unsigned int irq_flags_to_set;
4694 	enum irq_gc_flags gc_flags;
4695 	struct irq_chip_generic *gc[0];
4696 };
4697 
4698 struct msi_domain_info;
4699 
4700 struct msi_parent_ops {
4701 	u32 supported_flags;
4702 	const char *prefix;
4703 	bool (*init_dev_msi_info)(struct device *, struct irq_domain *, struct irq_domain *, struct msi_domain_info *);
4704 };
4705 
4706 enum irqchip_irq_state {
4707 	IRQCHIP_STATE_PENDING = 0,
4708 	IRQCHIP_STATE_ACTIVE = 1,
4709 	IRQCHIP_STATE_MASKED = 2,
4710 	IRQCHIP_STATE_LINE_LEVEL = 3,
4711 };
4712 
4713 struct msi_msg;
4714 
4715 struct irq_chip {
4716 	const char *name;
4717 	unsigned int (*irq_startup)(struct irq_data *);
4718 	void (*irq_shutdown)(struct irq_data *);
4719 	void (*irq_enable)(struct irq_data *);
4720 	void (*irq_disable)(struct irq_data *);
4721 	void (*irq_ack)(struct irq_data *);
4722 	void (*irq_mask)(struct irq_data *);
4723 	void (*irq_mask_ack)(struct irq_data *);
4724 	void (*irq_unmask)(struct irq_data *);
4725 	void (*irq_eoi)(struct irq_data *);
4726 	int (*irq_set_affinity)(struct irq_data *, const struct cpumask *, bool);
4727 	int (*irq_retrigger)(struct irq_data *);
4728 	int (*irq_set_type)(struct irq_data *, unsigned int);
4729 	int (*irq_set_wake)(struct irq_data *, unsigned int);
4730 	void (*irq_bus_lock)(struct irq_data *);
4731 	void (*irq_bus_sync_unlock)(struct irq_data *);
4732 	void (*irq_suspend)(struct irq_data *);
4733 	void (*irq_resume)(struct irq_data *);
4734 	void (*irq_pm_shutdown)(struct irq_data *);
4735 	void (*irq_calc_mask)(struct irq_data *);
4736 	void (*irq_print_chip)(struct irq_data *, struct seq_file *);
4737 	int (*irq_request_resources)(struct irq_data *);
4738 	void (*irq_release_resources)(struct irq_data *);
4739 	void (*irq_compose_msi_msg)(struct irq_data *, struct msi_msg *);
4740 	void (*irq_write_msi_msg)(struct irq_data *, struct msi_msg *);
4741 	int (*irq_get_irqchip_state)(struct irq_data *, enum irqchip_irq_state, bool *);
4742 	int (*irq_set_irqchip_state)(struct irq_data *, enum irqchip_irq_state, bool);
4743 	int (*irq_set_vcpu_affinity)(struct irq_data *, void *);
4744 	void (*ipi_send_single)(struct irq_data *, unsigned int);
4745 	void (*ipi_send_mask)(struct irq_data *, const struct cpumask *);
4746 	int (*irq_nmi_setup)(struct irq_data *);
4747 	void (*irq_nmi_teardown)(struct irq_data *);
4748 	long unsigned int flags;
4749 };
4750 
4751 typedef irqreturn_t (*irq_handler_t)(int, void *);
4752 
4753 struct irqaction {
4754 	irq_handler_t handler;
4755 	void *dev_id;
4756 	void *percpu_dev_id;
4757 	struct irqaction *next;
4758 	irq_handler_t thread_fn;
4759 	struct task_struct *thread;
4760 	struct irqaction *secondary;
4761 	unsigned int irq;
4762 	unsigned int flags;
4763 	long unsigned int thread_flags;
4764 	long unsigned int thread_mask;
4765 	const char *name;
4766 	struct proc_dir_entry *dir;
4767 	long: 64;
4768 	long: 64;
4769 	long: 64;
4770 	long: 64;
4771 };
4772 
4773 struct irq_affinity_notify {
4774 	unsigned int irq;
4775 	struct kref kref;
4776 	struct work_struct work;
4777 	void (*notify)(struct irq_affinity_notify *, const cpumask_t *);
4778 	void (*release)(struct kref *);
4779 };
4780 
4781 struct irq_chip_regs {
4782 	long unsigned int enable;
4783 	long unsigned int disable;
4784 	long unsigned int mask;
4785 	long unsigned int ack;
4786 	long unsigned int eoi;
4787 	long unsigned int type;
4788 	long unsigned int polarity;
4789 };
4790 
4791 struct irq_chip_type {
4792 	struct irq_chip chip;
4793 	struct irq_chip_regs regs;
4794 	irq_flow_handler_t handler;
4795 	u32 type;
4796 	u32 mask_cache_priv;
4797 	u32 *mask_cache;
4798 };
4799 
4800 struct irq_chip_generic {
4801 	raw_spinlock_t lock;
4802 	void *reg_base;
4803 	u32 (*reg_readl)(void *);
4804 	void (*reg_writel)(u32, void *);
4805 	void (*suspend)(struct irq_chip_generic *);
4806 	void (*resume)(struct irq_chip_generic *);
4807 	unsigned int irq_base;
4808 	unsigned int irq_cnt;
4809 	u32 mask_cache;
4810 	u32 type_cache;
4811 	u32 polarity_cache;
4812 	u32 wake_enabled;
4813 	u32 wake_active;
4814 	unsigned int num_ct;
4815 	void *private;
4816 	long unsigned int installed;
4817 	long unsigned int unused;
4818 	struct irq_domain *domain;
4819 	struct list_head list;
4820 	struct irq_chip_type chip_types[0];
4821 };
4822 
4823 struct dev_pm_ops {
4824 	int (*prepare)(struct device *);
4825 	void (*complete)(struct device *);
4826 	int (*suspend)(struct device *);
4827 	int (*resume)(struct device *);
4828 	int (*freeze)(struct device *);
4829 	int (*thaw)(struct device *);
4830 	int (*poweroff)(struct device *);
4831 	int (*restore)(struct device *);
4832 	int (*suspend_late)(struct device *);
4833 	int (*resume_early)(struct device *);
4834 	int (*freeze_late)(struct device *);
4835 	int (*thaw_early)(struct device *);
4836 	int (*poweroff_late)(struct device *);
4837 	int (*restore_early)(struct device *);
4838 	int (*suspend_noirq)(struct device *);
4839 	int (*resume_noirq)(struct device *);
4840 	int (*freeze_noirq)(struct device *);
4841 	int (*thaw_noirq)(struct device *);
4842 	int (*poweroff_noirq)(struct device *);
4843 	int (*restore_noirq)(struct device *);
4844 	int (*runtime_suspend)(struct device *);
4845 	int (*runtime_resume)(struct device *);
4846 	int (*runtime_idle)(struct device *);
4847 };
4848 
4849 struct pm_subsys_data {
4850 	spinlock_t lock;
4851 	unsigned int refcount;
4852 	unsigned int clock_op_might_sleep;
4853 	struct mutex clock_mutex;
4854 	struct list_head clock_list;
4855 };
4856 
4857 struct wakeup_source {
4858 	const char *name;
4859 	int id;
4860 	struct list_head entry;
4861 	spinlock_t lock;
4862 	struct wake_irq *wakeirq;
4863 	struct timer_list timer;
4864 	long unsigned int timer_expires;
4865 	ktime_t total_time;
4866 	ktime_t max_time;
4867 	ktime_t last_time;
4868 	ktime_t start_prevent_time;
4869 	ktime_t prevent_sleep_time;
4870 	long unsigned int event_count;
4871 	long unsigned int active_count;
4872 	long unsigned int relax_count;
4873 	long unsigned int expire_count;
4874 	long unsigned int wakeup_count;
4875 	struct device *dev;
4876 	bool active: 1;
4877 	bool autosleep_enabled: 1;
4878 };
4879 
4880 struct dev_pm_domain {
4881 	struct dev_pm_ops ops;
4882 	int (*start)(struct device *);
4883 	void (*detach)(struct device *, bool);
4884 	int (*activate)(struct device *);
4885 	void (*sync)(struct device *);
4886 	void (*dismiss)(struct device *);
4887 };
4888 
4889 struct iommu_ops;
4890 
4891 struct subsys_private;
4892 
4893 struct bus_type {
4894 	const char *name;
4895 	const char *dev_name;
4896 	struct device *dev_root;
4897 	const struct attribute_group **bus_groups;
4898 	const struct attribute_group **dev_groups;
4899 	const struct attribute_group **drv_groups;
4900 	int (*match)(struct device *, struct device_driver *);
4901 	int (*uevent)(struct device *, struct kobj_uevent_env *);
4902 	int (*probe)(struct device *);
4903 	void (*sync_state)(struct device *);
4904 	void (*remove)(struct device *);
4905 	void (*shutdown)(struct device *);
4906 	int (*online)(struct device *);
4907 	int (*offline)(struct device *);
4908 	int (*suspend)(struct device *, pm_message_t);
4909 	int (*resume)(struct device *);
4910 	int (*num_vf)(struct device *);
4911 	int (*dma_configure)(struct device *);
4912 	void (*dma_cleanup)(struct device *);
4913 	const struct dev_pm_ops *pm;
4914 	const struct iommu_ops *iommu_ops;
4915 	struct subsys_private *p;
4916 	struct lock_class_key lock_key;
4917 	bool need_parent_lock;
4918 };
4919 
4920 enum probe_type {
4921 	PROBE_DEFAULT_STRATEGY = 0,
4922 	PROBE_PREFER_ASYNCHRONOUS = 1,
4923 	PROBE_FORCE_SYNCHRONOUS = 2,
4924 };
4925 
4926 struct driver_private;
4927 
4928 struct device_driver {
4929 	const char *name;
4930 	struct bus_type *bus;
4931 	struct module *owner;
4932 	const char *mod_name;
4933 	bool suppress_bind_attrs;
4934 	enum probe_type probe_type;
4935 	const struct of_device_id *of_match_table;
4936 	const struct acpi_device_id *acpi_match_table;
4937 	int (*probe)(struct device *);
4938 	void (*sync_state)(struct device *);
4939 	int (*remove)(struct device *);
4940 	void (*shutdown)(struct device *);
4941 	int (*suspend)(struct device *, pm_message_t);
4942 	int (*resume)(struct device *);
4943 	const struct attribute_group **groups;
4944 	const struct attribute_group **dev_groups;
4945 	const struct dev_pm_ops *pm;
4946 	void (*coredump)(struct device *);
4947 	struct driver_private *p;
4948 };
4949 
4950 enum iommu_cap {
4951 	IOMMU_CAP_CACHE_COHERENCY = 0,
4952 	IOMMU_CAP_INTR_REMAP = 1,
4953 	IOMMU_CAP_NOEXEC = 2,
4954 	IOMMU_CAP_PRE_BOOT_PROTECTION = 3,
4955 	IOMMU_CAP_ENFORCE_CACHE_COHERENCY = 4,
4956 };
4957 
4958 enum iommu_dev_features {
4959 	IOMMU_DEV_FEAT_SVA = 0,
4960 	IOMMU_DEV_FEAT_IOPF = 1,
4961 };
4962 
4963 typedef unsigned int ioasid_t;
4964 
4965 struct iommu_domain;
4966 
4967 struct iommu_device;
4968 
4969 struct of_phandle_args;
4970 
4971 struct iommu_fault_event;
4972 
4973 struct iommu_page_response;
4974 
4975 struct iommu_domain_ops;
4976 
4977 struct iommu_ops {
4978 	bool (*capable)(struct device *, enum iommu_cap);
4979 	struct iommu_domain * (*domain_alloc)(unsigned int);
4980 	struct iommu_device * (*probe_device)(struct device *);
4981 	void (*release_device)(struct device *);
4982 	void (*probe_finalize)(struct device *);
4983 	struct iommu_group * (*device_group)(struct device *);
4984 	void (*get_resv_regions)(struct device *, struct list_head *);
4985 	int (*of_xlate)(struct device *, struct of_phandle_args *);
4986 	bool (*is_attach_deferred)(struct device *);
4987 	int (*dev_enable_feat)(struct device *, enum iommu_dev_features);
4988 	int (*dev_disable_feat)(struct device *, enum iommu_dev_features);
4989 	int (*page_response)(struct device *, struct iommu_fault_event *, struct iommu_page_response *);
4990 	int (*def_domain_type)(struct device *);
4991 	void (*remove_dev_pasid)(struct device *, ioasid_t);
4992 	const struct iommu_domain_ops *default_domain_ops;
4993 	long unsigned int pgsize_bitmap;
4994 	struct module *owner;
4995 };
4996 
4997 struct device_type {
4998 	const char *name;
4999 	const struct attribute_group **groups;
5000 	int (*uevent)(struct device *, struct kobj_uevent_env *);
5001 	char * (*devnode)(struct device *, umode_t *, kuid_t *, kgid_t *);
5002 	void (*release)(struct device *);
5003 	const struct dev_pm_ops *pm;
5004 };
5005 
5006 struct class {
5007 	const char *name;
5008 	struct module *owner;
5009 	const struct attribute_group **class_groups;
5010 	const struct attribute_group **dev_groups;
5011 	struct kobject *dev_kobj;
5012 	int (*dev_uevent)(const struct device *, struct kobj_uevent_env *);
5013 	char * (*devnode)(const struct device *, umode_t *);
5014 	void (*class_release)(struct class *);
5015 	void (*dev_release)(struct device *);
5016 	int (*shutdown_pre)(struct device *);
5017 	const struct kobj_ns_type_operations *ns_type;
5018 	const void * (*namespace)(const struct device *);
5019 	void (*get_ownership)(const struct device *, kuid_t *, kgid_t *);
5020 	const struct dev_pm_ops *pm;
5021 	struct subsys_private *p;
5022 };
5023 
5024 typedef __u64 Elf64_Addr;
5025 
5026 typedef __u16 Elf64_Half;
5027 
5028 typedef __u32 Elf64_Word;
5029 
5030 typedef __u64 Elf64_Xword;
5031 
5032 struct elf64_sym {
5033 	Elf64_Word st_name;
5034 	unsigned char st_info;
5035 	unsigned char st_other;
5036 	Elf64_Half st_shndx;
5037 	Elf64_Addr st_value;
5038 	Elf64_Xword st_size;
5039 };
5040 
5041 struct kparam_string;
5042 
5043 struct kparam_array;
5044 
5045 struct kernel_param {
5046 	const char *name;
5047 	struct module *mod;
5048 	const struct kernel_param_ops *ops;
5049 	const u16 perm;
5050 	s8 level;
5051 	u8 flags;
5052 	union {
5053 		void *arg;
5054 		const struct kparam_string *str;
5055 		const struct kparam_array *arr;
5056 	};
5057 };
5058 
5059 struct kparam_string {
5060 	unsigned int maxlen;
5061 	char *string;
5062 };
5063 
5064 struct kparam_array {
5065 	unsigned int max;
5066 	unsigned int elemsize;
5067 	unsigned int *num;
5068 	const struct kernel_param_ops *ops;
5069 	void *elem;
5070 };
5071 
5072 struct plt_entry {
5073 	u32 inst_lu12iw;
5074 	u32 inst_lu32id;
5075 	u32 inst_lu52id;
5076 	u32 inst_jirl;
5077 };
5078 
5079 struct module_attribute {
5080 	struct attribute attr;
5081 	ssize_t (*show)(struct module_attribute *, struct module_kobject *, char *);
5082 	ssize_t (*store)(struct module_attribute *, struct module_kobject *, const char *, size_t);
5083 	void (*setup)(struct module *, const char *);
5084 	int (*test)(struct module *);
5085 	void (*free)(struct module *);
5086 };
5087 
5088 struct trace_event_functions;
5089 
5090 struct trace_event {
5091 	struct hlist_node node;
5092 	int type;
5093 	struct trace_event_functions *funcs;
5094 };
5095 
5096 struct trace_event_class;
5097 
5098 struct event_filter;
5099 
5100 struct perf_event;
5101 
5102 struct trace_event_call {
5103 	struct list_head list;
5104 	struct trace_event_class *class;
5105 	union {
5106 		char *name;
5107 		struct tracepoint *tp;
5108 	};
5109 	struct trace_event event;
5110 	char *print_fmt;
5111 	struct event_filter *filter;
5112 	union {
5113 		void *module;
5114 		atomic_t refcnt;
5115 	};
5116 	void *data;
5117 	int flags;
5118 	int perf_refcount;
5119 	struct hlist_head *perf_events;
5120 	struct bpf_prog_array *prog_array;
5121 	int (*perf_perm)(struct trace_event_call *, struct perf_event *);
5122 };
5123 
5124 struct trace_eval_map {
5125 	const char *system;
5126 	const char *eval_string;
5127 	long unsigned int eval_value;
5128 };
5129 
5130 struct device_dma_parameters {
5131 	unsigned int max_segment_size;
5132 	unsigned int min_align_mask;
5133 	long unsigned int segment_boundary_mask;
5134 };
5135 
5136 enum device_physical_location_panel {
5137 	DEVICE_PANEL_TOP = 0,
5138 	DEVICE_PANEL_BOTTOM = 1,
5139 	DEVICE_PANEL_LEFT = 2,
5140 	DEVICE_PANEL_RIGHT = 3,
5141 	DEVICE_PANEL_FRONT = 4,
5142 	DEVICE_PANEL_BACK = 5,
5143 	DEVICE_PANEL_UNKNOWN = 6,
5144 };
5145 
5146 enum device_physical_location_vertical_position {
5147 	DEVICE_VERT_POS_UPPER = 0,
5148 	DEVICE_VERT_POS_CENTER = 1,
5149 	DEVICE_VERT_POS_LOWER = 2,
5150 };
5151 
5152 enum device_physical_location_horizontal_position {
5153 	DEVICE_HORI_POS_LEFT = 0,
5154 	DEVICE_HORI_POS_CENTER = 1,
5155 	DEVICE_HORI_POS_RIGHT = 2,
5156 };
5157 
5158 struct device_physical_location {
5159 	enum device_physical_location_panel panel;
5160 	enum device_physical_location_vertical_position vertical_position;
5161 	enum device_physical_location_horizontal_position horizontal_position;
5162 	bool dock;
5163 	bool lid;
5164 };
5165 
5166 typedef u64 dma_addr_t;
5167 
5168 struct bus_dma_region {
5169 	phys_addr_t cpu_start;
5170 	dma_addr_t dma_start;
5171 	u64 size;
5172 	u64 offset;
5173 };
5174 
5175 typedef void *mempool_alloc_t(gfp_t, void *);
5176 
5177 typedef void mempool_free_t(void *, void *);
5178 
5179 struct mempool_s {
5180 	spinlock_t lock;
5181 	int min_nr;
5182 	int curr_nr;
5183 	void **elements;
5184 	void *pool_data;
5185 	mempool_alloc_t *alloc;
5186 	mempool_free_t *free;
5187 	wait_queue_head_t wait;
5188 };
5189 
5190 typedef struct mempool_s mempool_t;
5191 
5192 struct bio_alloc_cache;
5193 
5194 struct bio_set {
5195 	struct kmem_cache *bio_slab;
5196 	unsigned int front_pad;
5197 	struct bio_alloc_cache *cache;
5198 	mempool_t bio_pool;
5199 	mempool_t bvec_pool;
5200 	mempool_t bio_integrity_pool;
5201 	mempool_t bvec_integrity_pool;
5202 	unsigned int back_pad;
5203 	spinlock_t rescue_lock;
5204 	struct bio_list rescue_list;
5205 	struct work_struct rescue_work;
5206 	struct workqueue_struct *rescue_workqueue;
5207 	struct hlist_node cpuhp_dead;
5208 };
5209 
5210 struct block_device_operations;
5211 
5212 struct timer_rand_state;
5213 
5214 struct disk_events;
5215 
5216 struct cdrom_device_info;
5217 
5218 struct badblocks;
5219 
5220 struct blk_independent_access_ranges;
5221 
5222 struct gendisk {
5223 	int major;
5224 	int first_minor;
5225 	int minors;
5226 	char disk_name[32];
5227 	short unsigned int events;
5228 	short unsigned int event_flags;
5229 	struct xarray part_tbl;
5230 	struct block_device *part0;
5231 	const struct block_device_operations *fops;
5232 	struct request_queue *queue;
5233 	void *private_data;
5234 	struct bio_set bio_split;
5235 	int flags;
5236 	long unsigned int state;
5237 	struct mutex open_mutex;
5238 	unsigned int open_partitions;
5239 	struct backing_dev_info *bdi;
5240 	struct kobject queue_kobj;
5241 	struct kobject *slave_dir;
5242 	struct list_head slave_bdevs;
5243 	struct timer_rand_state *random;
5244 	atomic_t sync_io;
5245 	struct disk_events *ev;
5246 	struct kobject integrity_kobj;
5247 	unsigned int nr_zones;
5248 	unsigned int max_open_zones;
5249 	unsigned int max_active_zones;
5250 	long unsigned int *conv_zones_bitmap;
5251 	long unsigned int *seq_zones_wlock;
5252 	struct cdrom_device_info *cdi;
5253 	int node_id;
5254 	struct badblocks *bb;
5255 	struct lockdep_map lockdep_map;
5256 	u64 diskseq;
5257 	struct blk_independent_access_ranges *ia_ranges;
5258 };
5259 
5260 struct partition_meta_info {
5261 	char uuid[37];
5262 	u8 volname[64];
5263 };
5264 
5265 struct bio_integrity_payload {
5266 	struct bio *bip_bio;
5267 	struct bvec_iter bip_iter;
5268 	short unsigned int bip_vcnt;
5269 	short unsigned int bip_max_vcnt;
5270 	short unsigned int bip_flags;
5271 	struct bvec_iter bio_iter;
5272 	short: 16;
5273 	struct work_struct bip_work;
5274 	struct bio_vec *bip_vec;
5275 	struct bio_vec bip_inline_vecs[0];
5276 } __attribute__((packed));
5277 
5278 enum req_op {
5279 	REQ_OP_READ = 0,
5280 	REQ_OP_WRITE = 1,
5281 	REQ_OP_FLUSH = 2,
5282 	REQ_OP_DISCARD = 3,
5283 	REQ_OP_SECURE_ERASE = 5,
5284 	REQ_OP_WRITE_ZEROES = 9,
5285 	REQ_OP_ZONE_OPEN = 10,
5286 	REQ_OP_ZONE_CLOSE = 11,
5287 	REQ_OP_ZONE_FINISH = 12,
5288 	REQ_OP_ZONE_APPEND = 13,
5289 	REQ_OP_ZONE_RESET = 15,
5290 	REQ_OP_ZONE_RESET_ALL = 17,
5291 	REQ_OP_DRV_IN = 34,
5292 	REQ_OP_DRV_OUT = 35,
5293 	REQ_OP_LAST = 36,
5294 };
5295 
5296 struct blk_rq_stat {
5297 	u64 mean;
5298 	u64 min;
5299 	u64 max;
5300 	u32 nr_samples;
5301 	u64 batch;
5302 };
5303 
5304 struct iovec {
5305 	void *iov_base;
5306 	__kernel_size_t iov_len;
5307 };
5308 
5309 struct kvec {
5310 	void *iov_base;
5311 	size_t iov_len;
5312 };
5313 
5314 struct blk_zone {
5315 	__u64 start;
5316 	__u64 len;
5317 	__u64 wp;
5318 	__u8 type;
5319 	__u8 cond;
5320 	__u8 non_seq;
5321 	__u8 reset;
5322 	__u8 resv[4];
5323 	__u64 capacity;
5324 	__u8 reserved[24];
5325 };
5326 
5327 struct blk_integrity_iter;
5328 
5329 typedef blk_status_t integrity_processing_fn(struct blk_integrity_iter *);
5330 
5331 typedef void integrity_prepare_fn(struct request *);
5332 
5333 typedef void integrity_complete_fn(struct request *, unsigned int);
5334 
5335 struct blk_integrity_profile {
5336 	integrity_processing_fn *generate_fn;
5337 	integrity_processing_fn *verify_fn;
5338 	integrity_prepare_fn *prepare_fn;
5339 	integrity_complete_fn *complete_fn;
5340 	const char *name;
5341 };
5342 
5343 typedef int (*report_zones_cb)(struct blk_zone *, unsigned int, void *);
5344 
5345 enum blk_unique_id {
5346 	BLK_UID_T10 = 1,
5347 	BLK_UID_EUI64 = 2,
5348 	BLK_UID_NAA = 3,
5349 };
5350 
5351 struct hd_geometry;
5352 
5353 struct pr_ops;
5354 
5355 struct block_device_operations {
5356 	void (*submit_bio)(struct bio *);
5357 	int (*poll_bio)(struct bio *, struct io_comp_batch *, unsigned int);
5358 	int (*open)(struct block_device *, fmode_t);
5359 	void (*release)(struct gendisk *, fmode_t);
5360 	int (*rw_page)(struct block_device *, sector_t, struct page *, enum req_op);
5361 	int (*ioctl)(struct block_device *, fmode_t, unsigned int, long unsigned int);
5362 	int (*compat_ioctl)(struct block_device *, fmode_t, unsigned int, long unsigned int);
5363 	unsigned int (*check_events)(struct gendisk *, unsigned int);
5364 	void (*unlock_native_capacity)(struct gendisk *);
5365 	int (*getgeo)(struct block_device *, struct hd_geometry *);
5366 	int (*set_read_only)(struct block_device *, bool);
5367 	void (*free_disk)(struct gendisk *);
5368 	void (*swap_slot_free_notify)(struct block_device *, long unsigned int);
5369 	int (*report_zones)(struct gendisk *, sector_t, unsigned int, report_zones_cb, void *);
5370 	char * (*devnode)(struct gendisk *, umode_t *);
5371 	int (*get_unique_id)(struct gendisk *, u8 *, enum blk_unique_id);
5372 	struct module *owner;
5373 	const struct pr_ops *pr_ops;
5374 	int (*alternative_gpt_sector)(struct gendisk *, sector_t *);
5375 };
5376 
5377 struct blk_independent_access_range {
5378 	struct kobject kobj;
5379 	sector_t sector;
5380 	sector_t nr_sectors;
5381 };
5382 
5383 struct blk_independent_access_ranges {
5384 	struct kobject kobj;
5385 	bool sysfs_registered;
5386 	unsigned int nr_ia_ranges;
5387 	struct blk_independent_access_range ia_range[0];
5388 };
5389 
5390 enum blk_eh_timer_return {
5391 	BLK_EH_DONE = 0,
5392 	BLK_EH_RESET_TIMER = 1,
5393 };
5394 
5395 struct blk_mq_hw_ctx;
5396 
5397 struct blk_mq_queue_data;
5398 
5399 struct blk_mq_ops {
5400 	blk_status_t (*queue_rq)(struct blk_mq_hw_ctx *, const struct blk_mq_queue_data *);
5401 	void (*commit_rqs)(struct blk_mq_hw_ctx *);
5402 	void (*queue_rqs)(struct request **);
5403 	int (*get_budget)(struct request_queue *);
5404 	void (*put_budget)(struct request_queue *, int);
5405 	void (*set_rq_budget_token)(struct request *, int);
5406 	int (*get_rq_budget_token)(struct request *);
5407 	enum blk_eh_timer_return (*timeout)(struct request *);
5408 	int (*poll)(struct blk_mq_hw_ctx *, struct io_comp_batch *);
5409 	void (*complete)(struct request *);
5410 	int (*init_hctx)(struct blk_mq_hw_ctx *, void *, unsigned int);
5411 	void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int);
5412 	int (*init_request)(struct blk_mq_tag_set *, struct request *, unsigned int, unsigned int);
5413 	void (*exit_request)(struct blk_mq_tag_set *, struct request *, unsigned int);
5414 	void (*cleanup_rq)(struct request *);
5415 	bool (*busy)(struct request_queue *);
5416 	void (*map_queues)(struct blk_mq_tag_set *);
5417 	void (*show_rq)(struct seq_file *, struct request *);
5418 };
5419 
5420 enum pr_type {
5421 	PR_WRITE_EXCLUSIVE = 1,
5422 	PR_EXCLUSIVE_ACCESS = 2,
5423 	PR_WRITE_EXCLUSIVE_REG_ONLY = 3,
5424 	PR_EXCLUSIVE_ACCESS_REG_ONLY = 4,
5425 	PR_WRITE_EXCLUSIVE_ALL_REGS = 5,
5426 	PR_EXCLUSIVE_ACCESS_ALL_REGS = 6,
5427 };
5428 
5429 struct pr_ops {
5430 	int (*pr_register)(struct block_device *, u64, u64, u32);
5431 	int (*pr_reserve)(struct block_device *, u64, enum pr_type, u32);
5432 	int (*pr_release)(struct block_device *, u64, enum pr_type);
5433 	int (*pr_preempt)(struct block_device *, u64, u64, enum pr_type, bool);
5434 	int (*pr_clear)(struct block_device *, u64);
5435 };
5436 
5437 struct seq_operations {
5438 	void * (*start)(struct seq_file *, loff_t *);
5439 	void (*stop)(struct seq_file *, void *);
5440 	void * (*next)(struct seq_file *, void *, loff_t *);
5441 	int (*show)(struct seq_file *, void *);
5442 };
5443 
5444 struct seq_buf {
5445 	char *buffer;
5446 	size_t size;
5447 	size_t len;
5448 	loff_t readpos;
5449 };
5450 
5451 struct trace_seq {
5452 	char buffer[16384];
5453 	struct seq_buf seq;
5454 	int full;
5455 };
5456 
5457 enum perf_sw_ids {
5458 	PERF_COUNT_SW_CPU_CLOCK = 0,
5459 	PERF_COUNT_SW_TASK_CLOCK = 1,
5460 	PERF_COUNT_SW_PAGE_FAULTS = 2,
5461 	PERF_COUNT_SW_CONTEXT_SWITCHES = 3,
5462 	PERF_COUNT_SW_CPU_MIGRATIONS = 4,
5463 	PERF_COUNT_SW_PAGE_FAULTS_MIN = 5,
5464 	PERF_COUNT_SW_PAGE_FAULTS_MAJ = 6,
5465 	PERF_COUNT_SW_ALIGNMENT_FAULTS = 7,
5466 	PERF_COUNT_SW_EMULATION_FAULTS = 8,
5467 	PERF_COUNT_SW_DUMMY = 9,
5468 	PERF_COUNT_SW_BPF_OUTPUT = 10,
5469 	PERF_COUNT_SW_CGROUP_SWITCHES = 11,
5470 	PERF_COUNT_SW_MAX = 12,
5471 };
5472 
5473 struct perf_event_attr {
5474 	__u32 type;
5475 	__u32 size;
5476 	__u64 config;
5477 	union {
5478 		__u64 sample_period;
5479 		__u64 sample_freq;
5480 	};
5481 	__u64 sample_type;
5482 	__u64 read_format;
5483 	__u64 disabled: 1;
5484 	__u64 inherit: 1;
5485 	__u64 pinned: 1;
5486 	__u64 exclusive: 1;
5487 	__u64 exclude_user: 1;
5488 	__u64 exclude_kernel: 1;
5489 	__u64 exclude_hv: 1;
5490 	__u64 exclude_idle: 1;
5491 	__u64 mmap: 1;
5492 	__u64 comm: 1;
5493 	__u64 freq: 1;
5494 	__u64 inherit_stat: 1;
5495 	__u64 enable_on_exec: 1;
5496 	__u64 task: 1;
5497 	__u64 watermark: 1;
5498 	__u64 precise_ip: 2;
5499 	__u64 mmap_data: 1;
5500 	__u64 sample_id_all: 1;
5501 	__u64 exclude_host: 1;
5502 	__u64 exclude_guest: 1;
5503 	__u64 exclude_callchain_kernel: 1;
5504 	__u64 exclude_callchain_user: 1;
5505 	__u64 mmap2: 1;
5506 	__u64 comm_exec: 1;
5507 	__u64 use_clockid: 1;
5508 	__u64 context_switch: 1;
5509 	__u64 write_backward: 1;
5510 	__u64 namespaces: 1;
5511 	__u64 ksymbol: 1;
5512 	__u64 bpf_event: 1;
5513 	__u64 aux_output: 1;
5514 	__u64 cgroup: 1;
5515 	__u64 text_poke: 1;
5516 	__u64 build_id: 1;
5517 	__u64 inherit_thread: 1;
5518 	__u64 remove_on_exec: 1;
5519 	__u64 sigtrap: 1;
5520 	__u64 __reserved_1: 26;
5521 	union {
5522 		__u32 wakeup_events;
5523 		__u32 wakeup_watermark;
5524 	};
5525 	__u32 bp_type;
5526 	union {
5527 		__u64 bp_addr;
5528 		__u64 kprobe_func;
5529 		__u64 uprobe_path;
5530 		__u64 config1;
5531 	};
5532 	union {
5533 		__u64 bp_len;
5534 		__u64 kprobe_addr;
5535 		__u64 probe_offset;
5536 		__u64 config2;
5537 	};
5538 	__u64 branch_sample_type;
5539 	__u64 sample_regs_user;
5540 	__u32 sample_stack_user;
5541 	__s32 clockid;
5542 	__u64 sample_regs_intr;
5543 	__u32 aux_watermark;
5544 	__u16 sample_max_stack;
5545 	__u16 __reserved_2;
5546 	__u32 aux_sample_size;
5547 	__u32 __reserved_3;
5548 	__u64 sig_data;
5549 };
5550 
5551 union perf_mem_data_src {
5552 	__u64 val;
5553 	struct {
5554 		__u64 mem_op: 5;
5555 		__u64 mem_lvl: 14;
5556 		__u64 mem_snoop: 5;
5557 		__u64 mem_lock: 2;
5558 		__u64 mem_dtlb: 7;
5559 		__u64 mem_lvl_num: 4;
5560 		__u64 mem_remote: 1;
5561 		__u64 mem_snoopx: 2;
5562 		__u64 mem_blk: 3;
5563 		__u64 mem_hops: 3;
5564 		__u64 mem_rsvd: 18;
5565 	};
5566 };
5567 
5568 struct perf_branch_entry {
5569 	__u64 from;
5570 	__u64 to;
5571 	__u64 mispred: 1;
5572 	__u64 predicted: 1;
5573 	__u64 in_tx: 1;
5574 	__u64 abort: 1;
5575 	__u64 cycles: 16;
5576 	__u64 type: 4;
5577 	__u64 spec: 2;
5578 	__u64 new_type: 4;
5579 	__u64 priv: 3;
5580 	__u64 reserved: 31;
5581 };
5582 
5583 union perf_sample_weight {
5584 	__u64 full;
5585 	struct {
5586 		__u32 var1_dw;
5587 		__u16 var2_w;
5588 		__u16 var3_w;
5589 	};
5590 };
5591 
5592 struct cgroup_namespace {
5593 	struct ns_common ns;
5594 	struct user_namespace *user_ns;
5595 	struct ucounts *ucounts;
5596 	struct css_set *root_cset;
5597 };
5598 
5599 struct nsset;
5600 
5601 struct proc_ns_operations {
5602 	const char *name;
5603 	const char *real_ns_name;
5604 	int type;
5605 	struct ns_common * (*get)(struct task_struct *);
5606 	void (*put)(struct ns_common *);
5607 	int (*install)(struct nsset *, struct ns_common *);
5608 	struct user_namespace * (*owner)(struct ns_common *);
5609 	struct ns_common * (*get_parent)(struct ns_common *);
5610 };
5611 
5612 typedef struct {
5613 	local_t a;
5614 } local64_t;
5615 
5616 struct ftrace_regs {
5617 	struct pt_regs regs;
5618 };
5619 
5620 struct ftrace_ops;
5621 
5622 typedef void (*ftrace_func_t)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *);
5623 
5624 struct ftrace_hash;
5625 
5626 struct ftrace_ops_hash {
5627 	struct ftrace_hash *notrace_hash;
5628 	struct ftrace_hash *filter_hash;
5629 	struct mutex regex_lock;
5630 };
5631 
5632 enum ftrace_ops_cmd {
5633 	FTRACE_OPS_CMD_ENABLE_SHARE_IPMODIFY_SELF = 0,
5634 	FTRACE_OPS_CMD_ENABLE_SHARE_IPMODIFY_PEER = 1,
5635 	FTRACE_OPS_CMD_DISABLE_SHARE_IPMODIFY_PEER = 2,
5636 };
5637 
5638 typedef int (*ftrace_ops_func_t)(struct ftrace_ops *, enum ftrace_ops_cmd);
5639 
5640 struct ftrace_ops {
5641 	ftrace_func_t func;
5642 	struct ftrace_ops *next;
5643 	long unsigned int flags;
5644 	void *private;
5645 	ftrace_func_t saved_func;
5646 	struct ftrace_ops_hash local_hash;
5647 	struct ftrace_ops_hash *func_hash;
5648 	struct ftrace_ops_hash old_hash;
5649 	long unsigned int trampoline;
5650 	long unsigned int trampoline_size;
5651 	struct list_head list;
5652 	ftrace_ops_func_t ops_func;
5653 };
5654 
5655 struct irq_work {
5656 	struct __call_single_node node;
5657 	void (*func)(struct irq_work *);
5658 	struct rcuwait irqwait;
5659 };
5660 
5661 struct perf_regs {
5662 	__u64 abi;
5663 	struct pt_regs *regs;
5664 };
5665 
5666 struct u64_stats_sync {};
5667 
5668 struct psi_group {};
5669 
5670 struct cgroup_taskset;
5671 
5672 struct cftype;
5673 
5674 struct cgroup_subsys {
5675 	struct cgroup_subsys_state * (*css_alloc)(struct cgroup_subsys_state *);
5676 	int (*css_online)(struct cgroup_subsys_state *);
5677 	void (*css_offline)(struct cgroup_subsys_state *);
5678 	void (*css_released)(struct cgroup_subsys_state *);
5679 	void (*css_free)(struct cgroup_subsys_state *);
5680 	void (*css_reset)(struct cgroup_subsys_state *);
5681 	void (*css_rstat_flush)(struct cgroup_subsys_state *, int);
5682 	int (*css_extra_stat_show)(struct seq_file *, struct cgroup_subsys_state *);
5683 	int (*can_attach)(struct cgroup_taskset *);
5684 	void (*cancel_attach)(struct cgroup_taskset *);
5685 	void (*attach)(struct cgroup_taskset *);
5686 	void (*post_attach)();
5687 	int (*can_fork)(struct task_struct *, struct css_set *);
5688 	void (*cancel_fork)(struct task_struct *, struct css_set *);
5689 	void (*fork)(struct task_struct *);
5690 	void (*exit)(struct task_struct *);
5691 	void (*release)(struct task_struct *);
5692 	void (*bind)(struct cgroup_subsys_state *);
5693 	bool early_init: 1;
5694 	bool implicit_on_dfl: 1;
5695 	bool threaded: 1;
5696 	int id;
5697 	const char *name;
5698 	const char *legacy_name;
5699 	struct cgroup_root *root;
5700 	struct idr css_idr;
5701 	struct list_head cfts;
5702 	struct cftype *dfl_cftypes;
5703 	struct cftype *legacy_cftypes;
5704 	unsigned int depends_on;
5705 };
5706 
5707 struct cgroup_rstat_cpu {
5708 	struct u64_stats_sync bsync;
5709 	struct cgroup_base_stat bstat;
5710 	struct cgroup_base_stat last_bstat;
5711 	struct cgroup *updated_children;
5712 	struct cgroup *updated_next;
5713 };
5714 
5715 struct cgroup_root {
5716 	struct kernfs_root *kf_root;
5717 	unsigned int subsys_mask;
5718 	int hierarchy_id;
5719 	struct cgroup cgrp;
5720 	struct cgroup *cgrp_ancestor_storage;
5721 	atomic_t nr_cgrps;
5722 	struct list_head root_list;
5723 	unsigned int flags;
5724 	char release_agent_path[4096];
5725 	char name[64];
5726 };
5727 
5728 struct cftype {
5729 	char name[64];
5730 	long unsigned int private;
5731 	size_t max_write_len;
5732 	unsigned int flags;
5733 	unsigned int file_offset;
5734 	struct cgroup_subsys *ss;
5735 	struct list_head node;
5736 	struct kernfs_ops *kf_ops;
5737 	int (*open)(struct kernfs_open_file *);
5738 	void (*release)(struct kernfs_open_file *);
5739 	u64 (*read_u64)(struct cgroup_subsys_state *, struct cftype *);
5740 	s64 (*read_s64)(struct cgroup_subsys_state *, struct cftype *);
5741 	int (*seq_show)(struct seq_file *, void *);
5742 	void * (*seq_start)(struct seq_file *, loff_t *);
5743 	void * (*seq_next)(struct seq_file *, void *, loff_t *);
5744 	void (*seq_stop)(struct seq_file *, void *);
5745 	int (*write_u64)(struct cgroup_subsys_state *, struct cftype *, u64);
5746 	int (*write_s64)(struct cgroup_subsys_state *, struct cftype *, s64);
5747 	ssize_t (*write)(struct kernfs_open_file *, char *, size_t, loff_t);
5748 	__poll_t (*poll)(struct kernfs_open_file *, struct poll_table_struct *);
5749 };
5750 
5751 struct perf_callchain_entry {
5752 	__u64 nr;
5753 	__u64 ip[0];
5754 };
5755 
5756 typedef long unsigned int (*perf_copy_f)(void *, const void *, long unsigned int, long unsigned int);
5757 
5758 struct perf_raw_frag {
5759 	union {
5760 		struct perf_raw_frag *next;
5761 		long unsigned int pad;
5762 	};
5763 	perf_copy_f copy;
5764 	void *data;
5765 	u32 size;
5766 } __attribute__((packed));
5767 
5768 struct perf_raw_record {
5769 	struct perf_raw_frag frag;
5770 	u32 size;
5771 };
5772 
5773 struct perf_branch_stack {
5774 	__u64 nr;
5775 	__u64 hw_idx;
5776 	struct perf_branch_entry entries[0];
5777 };
5778 
5779 struct hw_perf_event_extra {
5780 	u64 config;
5781 	unsigned int reg;
5782 	int alloc;
5783 	int idx;
5784 };
5785 
5786 struct hw_perf_event {
5787 	union {
5788 		struct {
5789 			u64 config;
5790 			u64 last_tag;
5791 			long unsigned int config_base;
5792 			long unsigned int event_base;
5793 			int event_base_rdpmc;
5794 			int idx;
5795 			int last_cpu;
5796 			int flags;
5797 			struct hw_perf_event_extra extra_reg;
5798 			struct hw_perf_event_extra branch_reg;
5799 		};
5800 		struct {
5801 			struct hrtimer hrtimer;
5802 		};
5803 		struct {
5804 			struct list_head tp_list;
5805 		};
5806 		struct {
5807 			u64 pwr_acc;
5808 			u64 ptsc;
5809 		};
5810 		struct {
5811 			u8 iommu_bank;
5812 			u8 iommu_cntr;
5813 			u16 padding;
5814 			u64 conf;
5815 			u64 conf1;
5816 		};
5817 	};
5818 	struct task_struct *target;
5819 	void *addr_filters;
5820 	long unsigned int addr_filters_gen;
5821 	int state;
5822 	local64_t prev_count;
5823 	u64 sample_period;
5824 	union {
5825 		struct {
5826 			u64 last_period;
5827 			local64_t period_left;
5828 		};
5829 		struct {
5830 			u64 saved_metric;
5831 			u64 saved_slots;
5832 		};
5833 	};
5834 	u64 interrupts_seq;
5835 	u64 interrupts;
5836 	u64 freq_time_stamp;
5837 	u64 freq_count_stamp;
5838 };
5839 
5840 struct perf_cpu_pmu_context;
5841 
5842 struct perf_event_pmu_context;
5843 
5844 struct perf_output_handle;
5845 
5846 struct pmu {
5847 	struct list_head entry;
5848 	struct module *module;
5849 	struct device *dev;
5850 	const struct attribute_group **attr_groups;
5851 	const struct attribute_group **attr_update;
5852 	const char *name;
5853 	int type;
5854 	int capabilities;
5855 	int *pmu_disable_count;
5856 	struct perf_cpu_pmu_context *cpu_pmu_context;
5857 	atomic_t exclusive_cnt;
5858 	int task_ctx_nr;
5859 	int hrtimer_interval_ms;
5860 	unsigned int nr_addr_filters;
5861 	void (*pmu_enable)(struct pmu *);
5862 	void (*pmu_disable)(struct pmu *);
5863 	int (*event_init)(struct perf_event *);
5864 	void (*event_mapped)(struct perf_event *, struct mm_struct *);
5865 	void (*event_unmapped)(struct perf_event *, struct mm_struct *);
5866 	int (*add)(struct perf_event *, int);
5867 	void (*del)(struct perf_event *, int);
5868 	void (*start)(struct perf_event *, int);
5869 	void (*stop)(struct perf_event *, int);
5870 	void (*read)(struct perf_event *);
5871 	void (*start_txn)(struct pmu *, unsigned int);
5872 	int (*commit_txn)(struct pmu *);
5873 	void (*cancel_txn)(struct pmu *);
5874 	int (*event_idx)(struct perf_event *);
5875 	void (*sched_task)(struct perf_event_pmu_context *, bool);
5876 	struct kmem_cache *task_ctx_cache;
5877 	void (*swap_task_ctx)(struct perf_event_pmu_context *, struct perf_event_pmu_context *);
5878 	void * (*setup_aux)(struct perf_event *, void **, int, bool);
5879 	void (*free_aux)(void *);
5880 	long int (*snapshot_aux)(struct perf_event *, struct perf_output_handle *, long unsigned int);
5881 	int (*addr_filters_validate)(struct list_head *);
5882 	void (*addr_filters_sync)(struct perf_event *);
5883 	int (*aux_output_match)(struct perf_event *);
5884 	bool (*filter)(struct pmu *, int);
5885 	int (*check_period)(struct perf_event *, u64);
5886 };
5887 
5888 struct perf_event_pmu_context {
5889 	struct pmu *pmu;
5890 	struct perf_event_context *ctx;
5891 	struct list_head pmu_ctx_entry;
5892 	struct list_head pinned_active;
5893 	struct list_head flexible_active;
5894 	unsigned int embedded: 1;
5895 	unsigned int nr_events;
5896 	atomic_t refcount;
5897 	struct callback_head callback_head;
5898 	void *task_ctx_data;
5899 	int rotate_necessary;
5900 };
5901 
5902 struct perf_cpu_pmu_context {
5903 	struct perf_event_pmu_context epc;
5904 	struct perf_event_pmu_context *task_epc;
5905 	struct list_head sched_cb_entry;
5906 	int sched_cb_usage;
5907 	int active_oncpu;
5908 	int exclusive;
5909 	raw_spinlock_t hrtimer_lock;
5910 	struct hrtimer hrtimer;
5911 	ktime_t hrtimer_interval;
5912 	unsigned int hrtimer_active;
5913 };
5914 
5915 enum perf_event_state {
5916 	PERF_EVENT_STATE_DEAD = -4,
5917 	PERF_EVENT_STATE_EXIT = -3,
5918 	PERF_EVENT_STATE_ERROR = -2,
5919 	PERF_EVENT_STATE_OFF = -1,
5920 	PERF_EVENT_STATE_INACTIVE = 0,
5921 	PERF_EVENT_STATE_ACTIVE = 1,
5922 };
5923 
5924 struct perf_addr_filters_head {
5925 	struct list_head list;
5926 	raw_spinlock_t lock;
5927 	unsigned int nr_file_filters;
5928 };
5929 
5930 struct perf_sample_data;
5931 
5932 typedef void (*perf_overflow_handler_t)(struct perf_event *, struct perf_sample_data *, struct pt_regs *);
5933 
5934 struct perf_buffer;
5935 
5936 struct perf_addr_filter_range;
5937 
5938 struct bpf_prog;
5939 
5940 struct perf_cgroup;
5941 
5942 struct perf_event {
5943 	struct list_head event_entry;
5944 	struct list_head sibling_list;
5945 	struct list_head active_list;
5946 	struct rb_node group_node;
5947 	u64 group_index;
5948 	struct list_head migrate_entry;
5949 	struct hlist_node hlist_entry;
5950 	struct list_head active_entry;
5951 	int nr_siblings;
5952 	int event_caps;
5953 	int group_caps;
5954 	struct perf_event *group_leader;
5955 	struct pmu *pmu;
5956 	void *pmu_private;
5957 	enum perf_event_state state;
5958 	unsigned int attach_state;
5959 	local64_t count;
5960 	atomic64_t child_count;
5961 	u64 total_time_enabled;
5962 	u64 total_time_running;
5963 	u64 tstamp;
5964 	struct perf_event_attr attr;
5965 	u16 header_size;
5966 	u16 id_header_size;
5967 	u16 read_size;
5968 	struct hw_perf_event hw;
5969 	struct perf_event_context *ctx;
5970 	struct perf_event_pmu_context *pmu_ctx;
5971 	atomic_long_t refcount;
5972 	atomic64_t child_total_time_enabled;
5973 	atomic64_t child_total_time_running;
5974 	struct mutex child_mutex;
5975 	struct list_head child_list;
5976 	struct perf_event *parent;
5977 	int oncpu;
5978 	int cpu;
5979 	struct list_head owner_entry;
5980 	struct task_struct *owner;
5981 	struct mutex mmap_mutex;
5982 	atomic_t mmap_count;
5983 	struct perf_buffer *rb;
5984 	struct list_head rb_entry;
5985 	long unsigned int rcu_batches;
5986 	int rcu_pending;
5987 	wait_queue_head_t waitq;
5988 	struct fasync_struct *fasync;
5989 	unsigned int pending_wakeup;
5990 	unsigned int pending_kill;
5991 	unsigned int pending_disable;
5992 	unsigned int pending_sigtrap;
5993 	long unsigned int pending_addr;
5994 	struct irq_work pending_irq;
5995 	struct callback_head pending_task;
5996 	unsigned int pending_work;
5997 	atomic_t event_limit;
5998 	struct perf_addr_filters_head addr_filters;
5999 	struct perf_addr_filter_range *addr_filter_ranges;
6000 	long unsigned int addr_filters_gen;
6001 	struct perf_event *aux_event;
6002 	void (*destroy)(struct perf_event *);
6003 	struct callback_head callback_head;
6004 	struct pid_namespace *ns;
6005 	u64 id;
6006 	atomic64_t lost_samples;
6007 	u64 (*clock)();
6008 	perf_overflow_handler_t overflow_handler;
6009 	void *overflow_handler_context;
6010 	perf_overflow_handler_t orig_overflow_handler;
6011 	struct bpf_prog *prog;
6012 	u64 bpf_cookie;
6013 	struct trace_event_call *tp_event;
6014 	struct event_filter *filter;
6015 	struct ftrace_ops ftrace_ops;
6016 	struct perf_cgroup *cgrp;
6017 	void *security;
6018 	struct list_head sb_list;
6019 };
6020 
6021 struct perf_output_handle {
6022 	struct perf_event *event;
6023 	struct perf_buffer *rb;
6024 	long unsigned int wakeup;
6025 	long unsigned int size;
6026 	u64 aux_flags;
6027 	union {
6028 		void *addr;
6029 		long unsigned int head;
6030 	};
6031 	int page;
6032 };
6033 
6034 struct perf_addr_filter_range {
6035 	long unsigned int start;
6036 	long unsigned int size;
6037 };
6038 
6039 struct perf_sample_data {
6040 	u64 sample_flags;
6041 	u64 period;
6042 	struct perf_branch_stack *br_stack;
6043 	union perf_sample_weight weight;
6044 	union perf_mem_data_src data_src;
6045 	u64 txn;
6046 	u64 addr;
6047 	struct perf_raw_record *raw;
6048 	u64 type;
6049 	u64 ip;
6050 	struct {
6051 		u32 pid;
6052 		u32 tid;
6053 	} tid_entry;
6054 	u64 time;
6055 	u64 id;
6056 	u64 stream_id;
6057 	struct {
6058 		u32 cpu;
6059 		u32 reserved;
6060 	} cpu_entry;
6061 	struct perf_callchain_entry *callchain;
6062 	u64 aux_size;
6063 	struct perf_regs regs_user;
6064 	struct perf_regs regs_intr;
6065 	u64 stack_user_size;
6066 	u64 phys_addr;
6067 	u64 cgroup;
6068 	u64 data_page_size;
6069 	u64 code_page_size;
6070 	long: 64;
6071 	long: 64;
6072 	long: 64;
6073 	long: 64;
6074 	long: 64;
6075 	long: 64;
6076 };
6077 
6078 struct perf_cgroup_info;
6079 
6080 struct perf_cgroup {
6081 	struct cgroup_subsys_state css;
6082 	struct perf_cgroup_info *info;
6083 };
6084 
6085 struct perf_cgroup_info {
6086 	u64 time;
6087 	u64 timestamp;
6088 	u64 timeoffset;
6089 	int active;
6090 };
6091 
6092 struct trace_entry {
6093 	short unsigned int type;
6094 	unsigned char flags;
6095 	unsigned char preempt_count;
6096 	int pid;
6097 };
6098 
6099 struct trace_array;
6100 
6101 struct tracer;
6102 
6103 struct array_buffer;
6104 
6105 struct ring_buffer_iter;
6106 
6107 struct trace_iterator {
6108 	struct trace_array *tr;
6109 	struct tracer *trace;
6110 	struct array_buffer *array_buffer;
6111 	void *private;
6112 	int cpu_file;
6113 	struct mutex mutex;
6114 	struct ring_buffer_iter **buffer_iter;
6115 	long unsigned int iter_flags;
6116 	void *temp;
6117 	unsigned int temp_size;
6118 	char *fmt;
6119 	unsigned int fmt_size;
6120 	long int wait_index;
6121 	struct trace_seq tmp_seq;
6122 	cpumask_var_t started;
6123 	bool snapshot;
6124 	struct trace_seq seq;
6125 	struct trace_entry *ent;
6126 	long unsigned int lost_events;
6127 	int leftover;
6128 	int ent_size;
6129 	int cpu;
6130 	u64 ts;
6131 	loff_t pos;
6132 	long int idx;
6133 };
6134 
6135 enum print_line_t {
6136 	TRACE_TYPE_PARTIAL_LINE = 0,
6137 	TRACE_TYPE_HANDLED = 1,
6138 	TRACE_TYPE_UNHANDLED = 2,
6139 	TRACE_TYPE_NO_CONSUME = 3,
6140 };
6141 
6142 typedef enum print_line_t (*trace_print_func)(struct trace_iterator *, int, struct trace_event *);
6143 
6144 struct trace_event_functions {
6145 	trace_print_func trace;
6146 	trace_print_func raw;
6147 	trace_print_func hex;
6148 	trace_print_func binary;
6149 };
6150 
6151 enum trace_reg {
6152 	TRACE_REG_REGISTER = 0,
6153 	TRACE_REG_UNREGISTER = 1,
6154 	TRACE_REG_PERF_REGISTER = 2,
6155 	TRACE_REG_PERF_UNREGISTER = 3,
6156 	TRACE_REG_PERF_OPEN = 4,
6157 	TRACE_REG_PERF_CLOSE = 5,
6158 	TRACE_REG_PERF_ADD = 6,
6159 	TRACE_REG_PERF_DEL = 7,
6160 };
6161 
6162 struct trace_event_fields {
6163 	const char *type;
6164 	union {
6165 		struct {
6166 			const char *name;
6167 			const int size;
6168 			const int align;
6169 			const int is_signed;
6170 			const int filter_type;
6171 		};
6172 		int (*define_fields)(struct trace_event_call *);
6173 	};
6174 };
6175 
6176 struct trace_event_class {
6177 	const char *system;
6178 	void *probe;
6179 	void *perf_probe;
6180 	int (*reg)(struct trace_event_call *, enum trace_reg, void *);
6181 	struct trace_event_fields *fields_array;
6182 	struct list_head * (*get_fields)(struct trace_event_call *);
6183 	struct list_head fields;
6184 	int (*raw_init)(struct trace_event_call *);
6185 };
6186 
6187 enum {
6188 	TRACE_EVENT_FL_FILTERED_BIT = 0,
6189 	TRACE_EVENT_FL_CAP_ANY_BIT = 1,
6190 	TRACE_EVENT_FL_NO_SET_FILTER_BIT = 2,
6191 	TRACE_EVENT_FL_IGNORE_ENABLE_BIT = 3,
6192 	TRACE_EVENT_FL_TRACEPOINT_BIT = 4,
6193 	TRACE_EVENT_FL_DYNAMIC_BIT = 5,
6194 	TRACE_EVENT_FL_KPROBE_BIT = 6,
6195 	TRACE_EVENT_FL_UPROBE_BIT = 7,
6196 	TRACE_EVENT_FL_EPROBE_BIT = 8,
6197 	TRACE_EVENT_FL_CUSTOM_BIT = 9,
6198 };
6199 
6200 enum {
6201 	EVENT_FILE_FL_ENABLED_BIT = 0,
6202 	EVENT_FILE_FL_RECORDED_CMD_BIT = 1,
6203 	EVENT_FILE_FL_RECORDED_TGID_BIT = 2,
6204 	EVENT_FILE_FL_FILTERED_BIT = 3,
6205 	EVENT_FILE_FL_NO_SET_FILTER_BIT = 4,
6206 	EVENT_FILE_FL_SOFT_MODE_BIT = 5,
6207 	EVENT_FILE_FL_SOFT_DISABLED_BIT = 6,
6208 	EVENT_FILE_FL_TRIGGER_MODE_BIT = 7,
6209 	EVENT_FILE_FL_TRIGGER_COND_BIT = 8,
6210 	EVENT_FILE_FL_PID_FILTER_BIT = 9,
6211 	EVENT_FILE_FL_WAS_ENABLED_BIT = 10,
6212 };
6213 
6214 enum {
6215 	Root_NFS = 255,
6216 	Root_CIFS = 254,
6217 	Root_RAM0 = 1048576,
6218 	Root_RAM1 = 1048577,
6219 	Root_FD0 = 2097152,
6220 	Root_HDA1 = 3145729,
6221 	Root_HDA2 = 3145730,
6222 	Root_SDA1 = 8388609,
6223 	Root_SDA2 = 8388610,
6224 	Root_HDC1 = 23068673,
6225 	Root_SR0 = 11534336,
6226 };
6227 
6228 typedef phys_addr_t resource_size_t;
6229 
6230 typedef void *va_list;
6231 
6232 struct _ddebug {
6233 	const char *modname;
6234 	const char *function;
6235 	const char *filename;
6236 	const char *format;
6237 	unsigned int lineno: 18;
6238 	unsigned int class_id: 6;
6239 	unsigned int flags: 8;
6240 };
6241 
6242 struct resource {
6243 	resource_size_t start;
6244 	resource_size_t end;
6245 	const char *name;
6246 	long unsigned int flags;
6247 	long unsigned int desc;
6248 	struct resource *parent;
6249 	struct resource *sibling;
6250 	struct resource *child;
6251 };
6252 
6253 enum umh_disable_depth {
6254 	UMH_ENABLED = 0,
6255 	UMH_FREEZING = 1,
6256 	UMH_DISABLED = 2,
6257 };
6258 
6259 enum kmalloc_cache_type {
6260 	KMALLOC_NORMAL = 0,
6261 	KMALLOC_DMA = 0,
6262 	KMALLOC_RECLAIM = 1,
6263 	KMALLOC_CGROUP = 2,
6264 	NR_KMALLOC_TYPES = 3,
6265 };
6266 
6267 typedef u64 async_cookie_t;
6268 
6269 typedef void (*async_func_t)(void *, async_cookie_t);
6270 
6271 struct async_domain {
6272 	struct list_head pending;
6273 	unsigned int registered: 1;
6274 };
6275 
6276 struct hash {
6277 	int ino;
6278 	int minor;
6279 	int major;
6280 	umode_t mode;
6281 	struct hash *next;
6282 	char name[4098];
6283 };
6284 
6285 struct dir_entry {
6286 	struct list_head list;
6287 	time64_t mtime;
6288 	char name[0];
6289 };
6290 
6291 enum state {
6292 	Start = 0,
6293 	Collect = 1,
6294 	GotHeader = 2,
6295 	SkipIt = 3,
6296 	GotName = 4,
6297 	CopyFile = 5,
6298 	GotSymlink = 6,
6299 	Reset = 7,
6300 };
6301 
6302 typedef int (*decompress_fn)(unsigned char *, long int, long int (*)(void *, long unsigned int), long int (*)(void *, long unsigned int), unsigned char *, long int *, void (*)(char *));
6303 
6304 enum key_being_used_for {
6305 	VERIFYING_MODULE_SIGNATURE = 0,
6306 	VERIFYING_FIRMWARE_SIGNATURE = 1,
6307 	VERIFYING_KEXEC_PE_SIGNATURE = 2,
6308 	VERIFYING_KEY_SIGNATURE = 3,
6309 	VERIFYING_KEY_SELF_SIGNATURE = 4,
6310 	VERIFYING_UNSPECIFIED_SIGNATURE = 5,
6311 	NR__KEY_BEING_USED_FOR = 6,
6312 };
6313 
6314 enum cpu_type_enum {
6315 	CPU_UNKNOWN = 0,
6316 	CPU_LOONGSON32 = 1,
6317 	CPU_LOONGSON64 = 2,
6318 	CPU_LAST = 3,
6319 };
6320 
6321 struct cache_desc {
6322 	unsigned char type;
6323 	unsigned char level;
6324 	short unsigned int sets;
6325 	unsigned char ways;
6326 	unsigned char linesz;
6327 	unsigned char flags;
6328 };
6329 
6330 struct cpuinfo_loongarch {
6331 	u64 asid_cache;
6332 	long unsigned int asid_mask;
6333 	long long unsigned int options;
6334 	unsigned int processor_id;
6335 	unsigned int fpu_vers;
6336 	unsigned int fpu_csr0;
6337 	unsigned int fpu_mask;
6338 	unsigned int cputype;
6339 	int isa_level;
6340 	int tlbsize;
6341 	int tlbsizemtlb;
6342 	int tlbsizestlbsets;
6343 	int tlbsizestlbways;
6344 	int cache_leaves_present;
6345 	struct cache_desc cache_leaves[6];
6346 	int core;
6347 	int package;
6348 	int vabits;
6349 	int pabits;
6350 	unsigned int ksave_mask;
6351 	unsigned int watch_dreg_count;
6352 	unsigned int watch_ireg_count;
6353 	unsigned int watch_reg_use_cnt;
6354 	long: 32;
6355 	long: 64;
6356 	long: 64;
6357 	long: 64;
6358 	long: 64;
6359 	long: 64;
6360 };
6361 
6362 enum pcpu_fc {
6363 	PCPU_FC_AUTO = 0,
6364 	PCPU_FC_EMBED = 1,
6365 	PCPU_FC_PAGE = 2,
6366 	PCPU_FC_NR = 3,
6367 };
6368 
6369 enum hrtimer_base_type {
6370 	HRTIMER_BASE_MONOTONIC = 0,
6371 	HRTIMER_BASE_REALTIME = 1,
6372 	HRTIMER_BASE_BOOTTIME = 2,
6373 	HRTIMER_BASE_TAI = 3,
6374 	HRTIMER_BASE_MONOTONIC_SOFT = 4,
6375 	HRTIMER_BASE_REALTIME_SOFT = 5,
6376 	HRTIMER_BASE_BOOTTIME_SOFT = 6,
6377 	HRTIMER_BASE_TAI_SOFT = 7,
6378 	HRTIMER_MAX_CLOCK_BASES = 8,
6379 };
6380 
6381 enum node_states {
6382 	N_POSSIBLE = 0,
6383 	N_ONLINE = 1,
6384 	N_NORMAL_MEMORY = 2,
6385 	N_HIGH_MEMORY = 2,
6386 	N_MEMORY = 3,
6387 	N_CPU = 4,
6388 	N_GENERIC_INITIATOR = 5,
6389 	NR_NODE_STATES = 6,
6390 };
6391 
6392 enum {
6393 	MM_FILEPAGES = 0,
6394 	MM_ANONPAGES = 1,
6395 	MM_SWAPENTS = 2,
6396 	MM_SHMEMPAGES = 3,
6397 	NR_MM_COUNTERS = 4,
6398 };
6399 
6400 enum rseq_cs_flags_bit {
6401 	RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT_BIT = 0,
6402 	RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL_BIT = 1,
6403 	RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE_BIT = 2,
6404 };
6405 
6406 enum {
6407 	TASK_COMM_LEN = 16,
6408 };
6409 
6410 enum rseq_event_mask_bits {
6411 	RSEQ_EVENT_PREEMPT_BIT = 0,
6412 	RSEQ_EVENT_SIGNAL_BIT = 1,
6413 	RSEQ_EVENT_MIGRATE_BIT = 2,
6414 };
6415 
6416 enum migratetype {
6417 	MIGRATE_UNMOVABLE = 0,
6418 	MIGRATE_MOVABLE = 1,
6419 	MIGRATE_RECLAIMABLE = 2,
6420 	MIGRATE_PCPTYPES = 3,
6421 	MIGRATE_HIGHATOMIC = 3,
6422 	MIGRATE_CMA = 4,
6423 	MIGRATE_ISOLATE = 5,
6424 	MIGRATE_TYPES = 6,
6425 };
6426 
6427 enum numa_stat_item {
6428 	NUMA_HIT = 0,
6429 	NUMA_MISS = 1,
6430 	NUMA_FOREIGN = 2,
6431 	NUMA_INTERLEAVE_HIT = 3,
6432 	NUMA_LOCAL = 4,
6433 	NUMA_OTHER = 5,
6434 	NR_VM_NUMA_EVENT_ITEMS = 6,
6435 };
6436 
6437 enum zone_stat_item {
6438 	NR_FREE_PAGES = 0,
6439 	NR_ZONE_LRU_BASE = 1,
6440 	NR_ZONE_INACTIVE_ANON = 1,
6441 	NR_ZONE_ACTIVE_ANON = 2,
6442 	NR_ZONE_INACTIVE_FILE = 3,
6443 	NR_ZONE_ACTIVE_FILE = 4,
6444 	NR_ZONE_UNEVICTABLE = 5,
6445 	NR_ZONE_WRITE_PENDING = 6,
6446 	NR_MLOCK = 7,
6447 	NR_BOUNCE = 8,
6448 	NR_ZSPAGES = 9,
6449 	NR_FREE_CMA_PAGES = 10,
6450 	NR_VM_ZONE_STAT_ITEMS = 11,
6451 };
6452 
6453 enum node_stat_item {
6454 	NR_LRU_BASE = 0,
6455 	NR_INACTIVE_ANON = 0,
6456 	NR_ACTIVE_ANON = 1,
6457 	NR_INACTIVE_FILE = 2,
6458 	NR_ACTIVE_FILE = 3,
6459 	NR_UNEVICTABLE = 4,
6460 	NR_SLAB_RECLAIMABLE_B = 5,
6461 	NR_SLAB_UNRECLAIMABLE_B = 6,
6462 	NR_ISOLATED_ANON = 7,
6463 	NR_ISOLATED_FILE = 8,
6464 	WORKINGSET_NODES = 9,
6465 	WORKINGSET_REFAULT_BASE = 10,
6466 	WORKINGSET_REFAULT_ANON = 10,
6467 	WORKINGSET_REFAULT_FILE = 11,
6468 	WORKINGSET_ACTIVATE_BASE = 12,
6469 	WORKINGSET_ACTIVATE_ANON = 12,
6470 	WORKINGSET_ACTIVATE_FILE = 13,
6471 	WORKINGSET_RESTORE_BASE = 14,
6472 	WORKINGSET_RESTORE_ANON = 14,
6473 	WORKINGSET_RESTORE_FILE = 15,
6474 	WORKINGSET_NODERECLAIM = 16,
6475 	NR_ANON_MAPPED = 17,
6476 	NR_FILE_MAPPED = 18,
6477 	NR_FILE_PAGES = 19,
6478 	NR_FILE_DIRTY = 20,
6479 	NR_WRITEBACK = 21,
6480 	NR_WRITEBACK_TEMP = 22,
6481 	NR_SHMEM = 23,
6482 	NR_SHMEM_THPS = 24,
6483 	NR_SHMEM_PMDMAPPED = 25,
6484 	NR_FILE_THPS = 26,
6485 	NR_FILE_PMDMAPPED = 27,
6486 	NR_ANON_THPS = 28,
6487 	NR_VMSCAN_WRITE = 29,
6488 	NR_VMSCAN_IMMEDIATE = 30,
6489 	NR_DIRTIED = 31,
6490 	NR_WRITTEN = 32,
6491 	NR_THROTTLED_WRITTEN = 33,
6492 	NR_KERNEL_MISC_RECLAIMABLE = 34,
6493 	NR_FOLL_PIN_ACQUIRED = 35,
6494 	NR_FOLL_PIN_RELEASED = 36,
6495 	NR_KERNEL_STACK_KB = 37,
6496 	NR_PAGETABLE = 38,
6497 	NR_SECONDARY_PAGETABLE = 39,
6498 	NR_SWAPCACHE = 40,
6499 	PGPROMOTE_SUCCESS = 41,
6500 	PGPROMOTE_CANDIDATE = 42,
6501 	NR_VM_NODE_STAT_ITEMS = 43,
6502 };
6503 
6504 enum lru_list {
6505 	LRU_INACTIVE_ANON = 0,
6506 	LRU_ACTIVE_ANON = 1,
6507 	LRU_INACTIVE_FILE = 2,
6508 	LRU_ACTIVE_FILE = 3,
6509 	LRU_UNEVICTABLE = 4,
6510 	NR_LRU_LISTS = 5,
6511 };
6512 
6513 enum vmscan_throttle_state {
6514 	VMSCAN_THROTTLE_WRITEBACK = 0,
6515 	VMSCAN_THROTTLE_ISOLATED = 1,
6516 	VMSCAN_THROTTLE_NOPROGRESS = 2,
6517 	VMSCAN_THROTTLE_CONGESTED = 3,
6518 	NR_VMSCAN_THROTTLE = 4,
6519 };
6520 
6521 enum zone_watermarks {
6522 	WMARK_MIN = 0,
6523 	WMARK_LOW = 1,
6524 	WMARK_HIGH = 2,
6525 	WMARK_PROMO = 3,
6526 	NR_WMARK = 4,
6527 };
6528 
6529 enum {
6530 	ZONELIST_FALLBACK = 0,
6531 	ZONELIST_NOFALLBACK = 1,
6532 	MAX_ZONELISTS = 2,
6533 };
6534 
6535 enum {
6536 	DQF_ROOT_SQUASH_B = 0,
6537 	DQF_SYS_FILE_B = 16,
6538 	DQF_PRIVATE = 17,
6539 };
6540 
6541 enum {
6542 	DQST_LOOKUPS = 0,
6543 	DQST_DROPS = 1,
6544 	DQST_READS = 2,
6545 	DQST_WRITES = 3,
6546 	DQST_CACHE_HITS = 4,
6547 	DQST_ALLOC_DQUOTS = 5,
6548 	DQST_FREE_DQUOTS = 6,
6549 	DQST_SYNCS = 7,
6550 	_DQST_DQSTAT_LAST = 8,
6551 };
6552 
6553 enum {
6554 	SB_UNFROZEN = 0,
6555 	SB_FREEZE_WRITE = 1,
6556 	SB_FREEZE_PAGEFAULT = 2,
6557 	SB_FREEZE_FS = 3,
6558 	SB_FREEZE_COMPLETE = 4,
6559 };
6560 
6561 enum compound_dtor_id {
6562 	NULL_COMPOUND_DTOR = 0,
6563 	COMPOUND_PAGE_DTOR = 1,
6564 	HUGETLB_PAGE_DTOR = 2,
6565 	TRANSHUGE_PAGE_DTOR = 3,
6566 	NR_COMPOUND_DTORS = 4,
6567 };
6568 
6569 enum vm_event_item {
6570 	PGPGIN = 0,
6571 	PGPGOUT = 1,
6572 	PSWPIN = 2,
6573 	PSWPOUT = 3,
6574 	PGALLOC_DMA32 = 4,
6575 	PGALLOC_NORMAL = 5,
6576 	PGALLOC_MOVABLE = 6,
6577 	ALLOCSTALL_DMA32 = 7,
6578 	ALLOCSTALL_NORMAL = 8,
6579 	ALLOCSTALL_MOVABLE = 9,
6580 	PGSCAN_SKIP_DMA32 = 10,
6581 	PGSCAN_SKIP_NORMAL = 11,
6582 	PGSCAN_SKIP_MOVABLE = 12,
6583 	PGFREE = 13,
6584 	PGACTIVATE = 14,
6585 	PGDEACTIVATE = 15,
6586 	PGLAZYFREE = 16,
6587 	PGFAULT = 17,
6588 	PGMAJFAULT = 18,
6589 	PGLAZYFREED = 19,
6590 	PGREFILL = 20,
6591 	PGREUSE = 21,
6592 	PGSTEAL_KSWAPD = 22,
6593 	PGSTEAL_DIRECT = 23,
6594 	PGSTEAL_KHUGEPAGED = 24,
6595 	PGDEMOTE_KSWAPD = 25,
6596 	PGDEMOTE_DIRECT = 26,
6597 	PGDEMOTE_KHUGEPAGED = 27,
6598 	PGSCAN_KSWAPD = 28,
6599 	PGSCAN_DIRECT = 29,
6600 	PGSCAN_KHUGEPAGED = 30,
6601 	PGSCAN_DIRECT_THROTTLE = 31,
6602 	PGSCAN_ANON = 32,
6603 	PGSCAN_FILE = 33,
6604 	PGSTEAL_ANON = 34,
6605 	PGSTEAL_FILE = 35,
6606 	PGSCAN_ZONE_RECLAIM_FAILED = 36,
6607 	PGINODESTEAL = 37,
6608 	SLABS_SCANNED = 38,
6609 	KSWAPD_INODESTEAL = 39,
6610 	KSWAPD_LOW_WMARK_HIT_QUICKLY = 40,
6611 	KSWAPD_HIGH_WMARK_HIT_QUICKLY = 41,
6612 	PAGEOUTRUN = 42,
6613 	PGROTATED = 43,
6614 	DROP_PAGECACHE = 44,
6615 	DROP_SLAB = 45,
6616 	OOM_KILL = 46,
6617 	NUMA_PTE_UPDATES = 47,
6618 	NUMA_HUGE_PTE_UPDATES = 48,
6619 	NUMA_HINT_FAULTS = 49,
6620 	NUMA_HINT_FAULTS_LOCAL = 50,
6621 	NUMA_PAGE_MIGRATE = 51,
6622 	PGMIGRATE_SUCCESS = 52,
6623 	PGMIGRATE_FAIL = 53,
6624 	THP_MIGRATION_SUCCESS = 54,
6625 	THP_MIGRATION_FAIL = 55,
6626 	THP_MIGRATION_SPLIT = 56,
6627 	COMPACTMIGRATE_SCANNED = 57,
6628 	COMPACTFREE_SCANNED = 58,
6629 	COMPACTISOLATED = 59,
6630 	COMPACTSTALL = 60,
6631 	COMPACTFAIL = 61,
6632 	COMPACTSUCCESS = 62,
6633 	KCOMPACTD_WAKE = 63,
6634 	KCOMPACTD_MIGRATE_SCANNED = 64,
6635 	KCOMPACTD_FREE_SCANNED = 65,
6636 	HTLB_BUDDY_PGALLOC = 66,
6637 	HTLB_BUDDY_PGALLOC_FAIL = 67,
6638 	CMA_ALLOC_SUCCESS = 68,
6639 	CMA_ALLOC_FAIL = 69,
6640 	UNEVICTABLE_PGCULLED = 70,
6641 	UNEVICTABLE_PGSCANNED = 71,
6642 	UNEVICTABLE_PGRESCUED = 72,
6643 	UNEVICTABLE_PGMLOCKED = 73,
6644 	UNEVICTABLE_PGMUNLOCKED = 74,
6645 	UNEVICTABLE_PGCLEARED = 75,
6646 	UNEVICTABLE_PGSTRANDED = 76,
6647 	THP_FAULT_ALLOC = 77,
6648 	THP_FAULT_FALLBACK = 78,
6649 	THP_FAULT_FALLBACK_CHARGE = 79,
6650 	THP_COLLAPSE_ALLOC = 80,
6651 	THP_COLLAPSE_ALLOC_FAILED = 81,
6652 	THP_FILE_ALLOC = 82,
6653 	THP_FILE_FALLBACK = 83,
6654 	THP_FILE_FALLBACK_CHARGE = 84,
6655 	THP_FILE_MAPPED = 85,
6656 	THP_SPLIT_PAGE = 86,
6657 	THP_SPLIT_PAGE_FAILED = 87,
6658 	THP_DEFERRED_SPLIT_PAGE = 88,
6659 	THP_SPLIT_PMD = 89,
6660 	THP_SCAN_EXCEED_NONE_PTE = 90,
6661 	THP_SCAN_EXCEED_SWAP_PTE = 91,
6662 	THP_SCAN_EXCEED_SHARED_PTE = 92,
6663 	THP_ZERO_PAGE_ALLOC = 93,
6664 	THP_ZERO_PAGE_ALLOC_FAILED = 94,
6665 	THP_SWPOUT = 95,
6666 	THP_SWPOUT_FALLBACK = 96,
6667 	BALLOON_INFLATE = 97,
6668 	BALLOON_DEFLATE = 98,
6669 	BALLOON_MIGRATE = 99,
6670 	SWAP_RA = 100,
6671 	SWAP_RA_HIT = 101,
6672 	KSM_SWPIN_COPY = 102,
6673 	COW_KSM = 103,
6674 	ZSWPIN = 104,
6675 	ZSWPOUT = 105,
6676 	NR_VM_EVENT_ITEMS = 106,
6677 };
6678 
6679 typedef __u32 __be32;
6680 
6681 struct cacheline_padding {
6682 	char x[0];
6683 };
6684 
6685 struct wait_queue_entry;
6686 
6687 typedef int (*wait_queue_func_t)(struct wait_queue_entry *, unsigned int, int, void *);
6688 
6689 struct wait_queue_entry {
6690 	unsigned int flags;
6691 	void *private;
6692 	wait_queue_func_t func;
6693 	struct list_head entry;
6694 };
6695 
6696 typedef struct wait_queue_entry wait_queue_entry_t;
6697 
6698 struct free_area {
6699 	struct list_head free_list[6];
6700 	long unsigned int nr_free;
6701 };
6702 
6703 struct pglist_data;
6704 
6705 struct lruvec {
6706 	struct list_head lists[5];
6707 	spinlock_t lru_lock;
6708 	long unsigned int anon_cost;
6709 	long unsigned int file_cost;
6710 	atomic_long_t nonresident_age;
6711 	long unsigned int refaults[2];
6712 	long unsigned int flags;
6713 	struct pglist_data *pgdat;
6714 };
6715 
6716 struct per_cpu_pages;
6717 
6718 struct per_cpu_zonestat;
6719 
6720 struct zone {
6721 	long unsigned int _watermark[4];
6722 	long unsigned int watermark_boost;
6723 	long unsigned int nr_reserved_highatomic;
6724 	long int lowmem_reserve[3];
6725 	int node;
6726 	struct pglist_data *zone_pgdat;
6727 	struct per_cpu_pages *per_cpu_pageset;
6728 	struct per_cpu_zonestat *per_cpu_zonestats;
6729 	int pageset_high;
6730 	int pageset_batch;
6731 	long unsigned int zone_start_pfn;
6732 	atomic_long_t managed_pages;
6733 	long unsigned int spanned_pages;
6734 	long unsigned int present_pages;
6735 	long unsigned int present_early_pages;
6736 	long unsigned int cma_pages;
6737 	const char *name;
6738 	long unsigned int nr_isolate_pageblock;
6739 	seqlock_t span_seqlock;
6740 	int initialized;
6741 	int: 32;
6742 	struct cacheline_padding _pad1_;
6743 	struct free_area free_area[12];
6744 	long unsigned int flags;
6745 	spinlock_t lock;
6746 	long: 32;
6747 	long: 64;
6748 	long: 64;
6749 	struct cacheline_padding _pad2_;
6750 	long unsigned int percpu_drift_mark;
6751 	long unsigned int compact_cached_free_pfn;
6752 	long unsigned int compact_cached_migrate_pfn[2];
6753 	long unsigned int compact_init_migrate_pfn;
6754 	long unsigned int compact_init_free_pfn;
6755 	unsigned int compact_considered;
6756 	unsigned int compact_defer_shift;
6757 	int compact_order_failed;
6758 	bool compact_blockskip_flush;
6759 	bool contiguous;
6760 	short: 16;
6761 	struct cacheline_padding _pad3_;
6762 	atomic_long_t vm_stat[11];
6763 	atomic_long_t vm_numa_event[6];
6764 	long: 64;
6765 	long: 64;
6766 	long: 64;
6767 	long: 64;
6768 	long: 64;
6769 	long: 64;
6770 	long: 64;
6771 };
6772 
6773 struct zoneref {
6774 	struct zone *zone;
6775 	int zone_idx;
6776 };
6777 
6778 struct zonelist {
6779 	struct zoneref _zonerefs[193];
6780 };
6781 
6782 enum zone_type {
6783 	ZONE_DMA32 = 0,
6784 	ZONE_NORMAL = 1,
6785 	ZONE_MOVABLE = 2,
6786 	__MAX_NR_ZONES = 3,
6787 };
6788 
6789 struct deferred_split {
6790 	spinlock_t split_queue_lock;
6791 	struct list_head split_queue;
6792 	long unsigned int split_queue_len;
6793 };
6794 
6795 struct per_cpu_nodestat;
6796 
6797 struct memory_tier;
6798 
6799 struct pglist_data {
6800 	struct zone node_zones[3];
6801 	struct zonelist node_zonelists[2];
6802 	int nr_zones;
6803 	spinlock_t node_size_lock;
6804 	long unsigned int node_start_pfn;
6805 	long unsigned int node_present_pages;
6806 	long unsigned int node_spanned_pages;
6807 	int node_id;
6808 	wait_queue_head_t kswapd_wait;
6809 	wait_queue_head_t pfmemalloc_wait;
6810 	wait_queue_head_t reclaim_wait[4];
6811 	atomic_t nr_writeback_throttled;
6812 	long unsigned int nr_reclaim_start;
6813 	struct mutex kswapd_lock;
6814 	struct task_struct *kswapd;
6815 	int kswapd_order;
6816 	enum zone_type kswapd_highest_zoneidx;
6817 	int kswapd_failures;
6818 	int kcompactd_max_order;
6819 	enum zone_type kcompactd_highest_zoneidx;
6820 	wait_queue_head_t kcompactd_wait;
6821 	struct task_struct *kcompactd;
6822 	bool proactive_compact_trigger;
6823 	long unsigned int totalreserve_pages;
6824 	long unsigned int min_unmapped_pages;
6825 	long unsigned int min_slab_pages;
6826 	long: 64;
6827 	long: 64;
6828 	long: 64;
6829 	struct cacheline_padding _pad1_;
6830 	struct deferred_split deferred_split_queue;
6831 	unsigned int nbp_rl_start;
6832 	long unsigned int nbp_rl_nr_cand;
6833 	unsigned int nbp_threshold;
6834 	unsigned int nbp_th_start;
6835 	long unsigned int nbp_th_nr_cand;
6836 	struct lruvec __lruvec;
6837 	long unsigned int flags;
6838 	long: 64;
6839 	long: 64;
6840 	long: 64;
6841 	long: 64;
6842 	long: 64;
6843 	struct cacheline_padding _pad2_;
6844 	struct per_cpu_nodestat *per_cpu_nodestats;
6845 	atomic_long_t vm_stat[43];
6846 	struct memory_tier *memtier;
6847 	long: 64;
6848 	long: 64;
6849 	long: 64;
6850 };
6851 
6852 struct per_cpu_pages {
6853 	spinlock_t lock;
6854 	int count;
6855 	int high;
6856 	int batch;
6857 	short int free_factor;
6858 	short int expire;
6859 	struct list_head lists[13];
6860 	long: 64;
6861 	long: 64;
6862 	long: 64;
6863 };
6864 
6865 struct per_cpu_zonestat {
6866 	s8 vm_stat_diff[11];
6867 	s8 stat_threshold;
6868 	long unsigned int vm_numa_event[6];
6869 };
6870 
6871 struct per_cpu_nodestat {
6872 	s8 stat_threshold;
6873 	s8 vm_node_stat_diff[43];
6874 };
6875 
6876 struct reclaim_state {
6877 	long unsigned int reclaimed_slab;
6878 };
6879 
6880 struct fprop_local_percpu {
6881 	struct percpu_counter events;
6882 	unsigned int period;
6883 	raw_spinlock_t lock;
6884 };
6885 
6886 enum wb_reason {
6887 	WB_REASON_BACKGROUND = 0,
6888 	WB_REASON_VMSCAN = 1,
6889 	WB_REASON_SYNC = 2,
6890 	WB_REASON_PERIODIC = 3,
6891 	WB_REASON_LAPTOP_TIMER = 4,
6892 	WB_REASON_FS_FREE_SPACE = 5,
6893 	WB_REASON_FORKER_THREAD = 6,
6894 	WB_REASON_FOREIGN_FLUSH = 7,
6895 	WB_REASON_MAX = 8,
6896 };
6897 
6898 struct bdi_writeback {
6899 	struct backing_dev_info *bdi;
6900 	long unsigned int state;
6901 	long unsigned int last_old_flush;
6902 	struct list_head b_dirty;
6903 	struct list_head b_io;
6904 	struct list_head b_more_io;
6905 	struct list_head b_dirty_time;
6906 	spinlock_t list_lock;
6907 	atomic_t writeback_inodes;
6908 	struct percpu_counter stat[4];
6909 	long unsigned int bw_time_stamp;
6910 	long unsigned int dirtied_stamp;
6911 	long unsigned int written_stamp;
6912 	long unsigned int write_bandwidth;
6913 	long unsigned int avg_write_bandwidth;
6914 	long unsigned int dirty_ratelimit;
6915 	long unsigned int balanced_dirty_ratelimit;
6916 	struct fprop_local_percpu completions;
6917 	int dirty_exceeded;
6918 	enum wb_reason start_all_reason;
6919 	spinlock_t work_lock;
6920 	struct list_head work_list;
6921 	struct delayed_work dwork;
6922 	struct delayed_work bw_dwork;
6923 	long unsigned int dirty_sleep;
6924 	struct list_head bdi_node;
6925 	struct percpu_ref refcnt;
6926 	struct fprop_local_percpu memcg_completions;
6927 	struct cgroup_subsys_state *memcg_css;
6928 	struct cgroup_subsys_state *blkcg_css;
6929 	struct list_head memcg_node;
6930 	struct list_head blkcg_node;
6931 	struct list_head b_attached;
6932 	struct list_head offline_node;
6933 	union {
6934 		struct work_struct release_work;
6935 		struct callback_head rcu;
6936 	};
6937 };
6938 
6939 struct backing_dev_info {
6940 	u64 id;
6941 	struct rb_node rb_node;
6942 	struct list_head bdi_list;
6943 	long unsigned int ra_pages;
6944 	long unsigned int io_pages;
6945 	struct kref refcnt;
6946 	unsigned int capabilities;
6947 	unsigned int min_ratio;
6948 	unsigned int max_ratio;
6949 	unsigned int max_prop_frac;
6950 	atomic_long_t tot_write_bandwidth;
6951 	struct bdi_writeback wb;
6952 	struct list_head wb_list;
6953 	struct xarray cgwb_tree;
6954 	struct mutex cgwb_release_mutex;
6955 	struct rw_semaphore wb_switch_rwsem;
6956 	wait_queue_head_t wb_waitq;
6957 	struct device *dev;
6958 	char dev_name[64];
6959 	struct device *owner;
6960 	struct timer_list laptop_mode_wb_timer;
6961 	struct dentry *debug_dir;
6962 };
6963 
6964 struct mem_cgroup_id {
6965 	int id;
6966 	refcount_t ref;
6967 };
6968 
6969 struct page_counter {
6970 	atomic_long_t usage;
6971 	long: 64;
6972 	long: 64;
6973 	long: 64;
6974 	long: 64;
6975 	long: 64;
6976 	long: 64;
6977 	long: 64;
6978 	struct cacheline_padding _pad1_;
6979 	long unsigned int emin;
6980 	atomic_long_t min_usage;
6981 	atomic_long_t children_min_usage;
6982 	long unsigned int elow;
6983 	atomic_long_t low_usage;
6984 	atomic_long_t children_low_usage;
6985 	long unsigned int watermark;
6986 	long unsigned int failcnt;
6987 	struct cacheline_padding _pad2_;
6988 	long unsigned int min;
6989 	long unsigned int low;
6990 	long unsigned int high;
6991 	long unsigned int max;
6992 	struct page_counter *parent;
6993 	long: 64;
6994 	long: 64;
6995 	long: 64;
6996 };
6997 
6998 struct vmpressure {
6999 	long unsigned int scanned;
7000 	long unsigned int reclaimed;
7001 	long unsigned int tree_scanned;
7002 	long unsigned int tree_reclaimed;
7003 	spinlock_t sr_lock;
7004 	struct list_head events;
7005 	struct mutex events_lock;
7006 	struct work_struct work;
7007 };
7008 
7009 struct mem_cgroup_threshold_ary;
7010 
7011 struct mem_cgroup_thresholds {
7012 	struct mem_cgroup_threshold_ary *primary;
7013 	struct mem_cgroup_threshold_ary *spare;
7014 };
7015 
7016 struct fprop_global {
7017 	struct percpu_counter events;
7018 	unsigned int period;
7019 	seqcount_t sequence;
7020 };
7021 
7022 struct wb_domain {
7023 	spinlock_t lock;
7024 	struct fprop_global completions;
7025 	struct timer_list period_timer;
7026 	long unsigned int period_time;
7027 	long unsigned int dirty_limit_tstamp;
7028 	long unsigned int dirty_limit;
7029 };
7030 
7031 struct wb_completion {
7032 	atomic_t cnt;
7033 	wait_queue_head_t *waitq;
7034 };
7035 
7036 struct memcg_cgwb_frn {
7037 	u64 bdi_id;
7038 	int memcg_id;
7039 	u64 at;
7040 	struct wb_completion done;
7041 };
7042 
7043 struct memcg_vmstats;
7044 
7045 struct obj_cgroup;
7046 
7047 struct memcg_vmstats_percpu;
7048 
7049 struct mem_cgroup_per_node;
7050 
7051 struct mem_cgroup {
7052 	struct cgroup_subsys_state css;
7053 	struct mem_cgroup_id id;
7054 	long: 64;
7055 	long: 64;
7056 	long: 64;
7057 	long: 64;
7058 	long: 64;
7059 	long: 64;
7060 	struct page_counter memory;
7061 	union {
7062 		struct page_counter swap;
7063 		struct page_counter memsw;
7064 	};
7065 	struct page_counter kmem;
7066 	struct page_counter tcpmem;
7067 	struct work_struct high_work;
7068 	long unsigned int zswap_max;
7069 	long unsigned int soft_limit;
7070 	struct vmpressure vmpressure;
7071 	bool oom_group;
7072 	bool oom_lock;
7073 	int under_oom;
7074 	int swappiness;
7075 	int oom_kill_disable;
7076 	struct cgroup_file events_file;
7077 	struct cgroup_file events_local_file;
7078 	struct cgroup_file swap_events_file;
7079 	struct mutex thresholds_lock;
7080 	struct mem_cgroup_thresholds thresholds;
7081 	struct mem_cgroup_thresholds memsw_thresholds;
7082 	struct list_head oom_notify;
7083 	long unsigned int move_charge_at_immigrate;
7084 	spinlock_t move_lock;
7085 	long unsigned int move_lock_flags;
7086 	long: 64;
7087 	long: 64;
7088 	long: 64;
7089 	long: 64;
7090 	long: 64;
7091 	long: 64;
7092 	long: 64;
7093 	struct cacheline_padding _pad1_;
7094 	struct memcg_vmstats *vmstats;
7095 	atomic_long_t memory_events[9];
7096 	atomic_long_t memory_events_local[9];
7097 	long unsigned int socket_pressure;
7098 	bool tcpmem_active;
7099 	int tcpmem_pressure;
7100 	int kmemcg_id;
7101 	struct obj_cgroup *objcg;
7102 	struct list_head objcg_list;
7103 	long: 64;
7104 	long: 64;
7105 	long: 64;
7106 	long: 64;
7107 	long: 64;
7108 	long: 64;
7109 	long: 64;
7110 	struct cacheline_padding _pad2_;
7111 	atomic_t moving_account;
7112 	struct task_struct *move_lock_task;
7113 	struct memcg_vmstats_percpu *vmstats_percpu;
7114 	struct list_head cgwb_list;
7115 	struct wb_domain cgwb_domain;
7116 	struct memcg_cgwb_frn cgwb_frn[4];
7117 	struct list_head event_list;
7118 	spinlock_t event_list_lock;
7119 	struct deferred_split deferred_split_queue;
7120 	struct mem_cgroup_per_node *nodeinfo[0];
7121 	long: 64;
7122 };
7123 
7124 enum dmi_field {
7125 	DMI_NONE = 0,
7126 	DMI_BIOS_VENDOR = 1,
7127 	DMI_BIOS_VERSION = 2,
7128 	DMI_BIOS_DATE = 3,
7129 	DMI_BIOS_RELEASE = 4,
7130 	DMI_EC_FIRMWARE_RELEASE = 5,
7131 	DMI_SYS_VENDOR = 6,
7132 	DMI_PRODUCT_NAME = 7,
7133 	DMI_PRODUCT_VERSION = 8,
7134 	DMI_PRODUCT_SERIAL = 9,
7135 	DMI_PRODUCT_UUID = 10,
7136 	DMI_PRODUCT_SKU = 11,
7137 	DMI_PRODUCT_FAMILY = 12,
7138 	DMI_BOARD_VENDOR = 13,
7139 	DMI_BOARD_NAME = 14,
7140 	DMI_BOARD_VERSION = 15,
7141 	DMI_BOARD_SERIAL = 16,
7142 	DMI_BOARD_ASSET_TAG = 17,
7143 	DMI_CHASSIS_VENDOR = 18,
7144 	DMI_CHASSIS_TYPE = 19,
7145 	DMI_CHASSIS_VERSION = 20,
7146 	DMI_CHASSIS_SERIAL = 21,
7147 	DMI_CHASSIS_ASSET_TAG = 22,
7148 	DMI_STRING_MAX = 23,
7149 	DMI_OEM_STRING = 24,
7150 };
7151 
7152 enum cpu_idle_type {
7153 	CPU_IDLE = 0,
7154 	CPU_NOT_IDLE = 1,
7155 	CPU_NEWLY_IDLE = 2,
7156 	CPU_MAX_IDLE_TYPES = 3,
7157 };
7158 
7159 enum {
7160 	__SD_BALANCE_NEWIDLE = 0,
7161 	__SD_BALANCE_EXEC = 1,
7162 	__SD_BALANCE_FORK = 2,
7163 	__SD_BALANCE_WAKE = 3,
7164 	__SD_WAKE_AFFINE = 4,
7165 	__SD_ASYM_CPUCAPACITY = 5,
7166 	__SD_ASYM_CPUCAPACITY_FULL = 6,
7167 	__SD_SHARE_CPUCAPACITY = 7,
7168 	__SD_SHARE_PKG_RESOURCES = 8,
7169 	__SD_SERIALIZE = 9,
7170 	__SD_ASYM_PACKING = 10,
7171 	__SD_PREFER_SIBLING = 11,
7172 	__SD_OVERLAP = 12,
7173 	__SD_NUMA = 13,
7174 	__SD_FLAG_CNT = 14,
7175 };
7176 
7177 struct wait_page_queue {
7178 	struct folio *folio;
7179 	int bit_nr;
7180 	wait_queue_entry_t wait;
7181 };
7182 
7183 enum writeback_sync_modes {
7184 	WB_SYNC_NONE = 0,
7185 	WB_SYNC_ALL = 1,
7186 };
7187 
7188 struct swap_iocb;
7189 
7190 struct writeback_control {
7191 	long int nr_to_write;
7192 	long int pages_skipped;
7193 	loff_t range_start;
7194 	loff_t range_end;
7195 	enum writeback_sync_modes sync_mode;
7196 	unsigned int for_kupdate: 1;
7197 	unsigned int for_background: 1;
7198 	unsigned int tagged_writepages: 1;
7199 	unsigned int for_reclaim: 1;
7200 	unsigned int range_cyclic: 1;
7201 	unsigned int for_sync: 1;
7202 	unsigned int unpinned_fscache_wb: 1;
7203 	unsigned int no_cgroup_owner: 1;
7204 	unsigned int punt_to_cgroup: 1;
7205 	struct swap_iocb **swap_plug;
7206 	struct bdi_writeback *wb;
7207 	struct inode *inode;
7208 	int wb_id;
7209 	int wb_lcand_id;
7210 	int wb_tcand_id;
7211 	size_t wb_bytes;
7212 	size_t wb_lcand_bytes;
7213 	size_t wb_tcand_bytes;
7214 };
7215 
7216 struct readahead_control {
7217 	struct file *file;
7218 	struct address_space *mapping;
7219 	struct file_ra_state *ra;
7220 	long unsigned int _index;
7221 	unsigned int _nr_pages;
7222 	unsigned int _batch_count;
7223 	bool _workingset;
7224 	long unsigned int _pflags;
7225 };
7226 
7227 struct swap_cluster_info {
7228 	spinlock_t lock;
7229 	unsigned int data: 24;
7230 	unsigned int flags: 8;
7231 };
7232 
7233 struct swap_cluster_list {
7234 	struct swap_cluster_info head;
7235 	struct swap_cluster_info tail;
7236 };
7237 
7238 struct percpu_cluster;
7239 
7240 struct swap_info_struct {
7241 	struct percpu_ref users;
7242 	long unsigned int flags;
7243 	short int prio;
7244 	struct plist_node list;
7245 	signed char type;
7246 	unsigned int max;
7247 	unsigned char *swap_map;
7248 	struct swap_cluster_info *cluster_info;
7249 	struct swap_cluster_list free_clusters;
7250 	unsigned int lowest_bit;
7251 	unsigned int highest_bit;
7252 	unsigned int pages;
7253 	unsigned int inuse_pages;
7254 	unsigned int cluster_next;
7255 	unsigned int cluster_nr;
7256 	unsigned int *cluster_next_cpu;
7257 	struct percpu_cluster *percpu_cluster;
7258 	struct rb_root swap_extent_root;
7259 	struct block_device *bdev;
7260 	struct file *swap_file;
7261 	unsigned int old_block_size;
7262 	struct completion comp;
7263 	long unsigned int *frontswap_map;
7264 	atomic_t frontswap_pages;
7265 	spinlock_t lock;
7266 	spinlock_t cont_lock;
7267 	struct work_struct discard_work;
7268 	struct swap_cluster_list discard_clusters;
7269 	struct plist_node avail_lists[0];
7270 };
7271 
7272 struct cdev {
7273 	struct kobject kobj;
7274 	struct module *owner;
7275 	const struct file_operations *ops;
7276 	struct list_head list;
7277 	dev_t dev;
7278 	unsigned int count;
7279 };
7280 
7281 struct io_tlb_area;
7282 
7283 struct io_tlb_slot;
7284 
7285 struct io_tlb_mem {
7286 	phys_addr_t start;
7287 	phys_addr_t end;
7288 	void *vaddr;
7289 	long unsigned int nslabs;
7290 	long unsigned int used;
7291 	struct dentry *debugfs;
7292 	bool late_alloc;
7293 	bool force_bounce;
7294 	bool for_alloc;
7295 	unsigned int nareas;
7296 	unsigned int area_nslabs;
7297 	struct io_tlb_area *areas;
7298 	struct io_tlb_slot *slots;
7299 };
7300 
7301 typedef u64 acpi_physical_address;
7302 
7303 enum {
7304 	LOGIC_PIO_INDIRECT = 0,
7305 	LOGIC_PIO_CPU_MMIO = 1,
7306 };
7307 
7308 struct logic_pio_host_ops;
7309 
7310 struct logic_pio_hwaddr {
7311 	struct list_head list;
7312 	struct fwnode_handle *fwnode;
7313 	resource_size_t hw_start;
7314 	resource_size_t io_start;
7315 	resource_size_t size;
7316 	long unsigned int flags;
7317 	void *hostdata;
7318 	const struct logic_pio_host_ops *ops;
7319 };
7320 
7321 struct logic_pio_host_ops {
7322 	u32 (*in)(void *, long unsigned int, size_t);
7323 	void (*out)(void *, long unsigned int, u32, size_t);
7324 	u32 (*ins)(void *, long unsigned int, void *, size_t, unsigned int);
7325 	void (*outs)(void *, long unsigned int, const void *, size_t, unsigned int);
7326 };
7327 
7328 struct dmi_header {
7329 	u8 type;
7330 	u8 length;
7331 	u16 handle;
7332 };
7333 
7334 enum {
7335 	HI_SOFTIRQ = 0,
7336 	TIMER_SOFTIRQ = 1,
7337 	NET_TX_SOFTIRQ = 2,
7338 	NET_RX_SOFTIRQ = 3,
7339 	BLOCK_SOFTIRQ = 4,
7340 	IRQ_POLL_SOFTIRQ = 5,
7341 	TASKLET_SOFTIRQ = 6,
7342 	SCHED_SOFTIRQ = 7,
7343 	HRTIMER_SOFTIRQ = 8,
7344 	RCU_SOFTIRQ = 9,
7345 	NR_SOFTIRQS = 10,
7346 };
7347 
7348 struct screen_info {
7349 	__u8 orig_x;
7350 	__u8 orig_y;
7351 	__u16 ext_mem_k;
7352 	__u16 orig_video_page;
7353 	__u8 orig_video_mode;
7354 	__u8 orig_video_cols;
7355 	__u8 flags;
7356 	__u8 unused2;
7357 	__u16 orig_video_ega_bx;
7358 	__u16 unused3;
7359 	__u8 orig_video_lines;
7360 	__u8 orig_video_isVGA;
7361 	__u16 orig_video_points;
7362 	__u16 lfb_width;
7363 	__u16 lfb_height;
7364 	__u16 lfb_depth;
7365 	__u32 lfb_base;
7366 	__u32 lfb_size;
7367 	__u16 cl_magic;
7368 	__u16 cl_offset;
7369 	__u16 lfb_linelength;
7370 	__u8 red_size;
7371 	__u8 red_pos;
7372 	__u8 green_size;
7373 	__u8 green_pos;
7374 	__u8 blue_size;
7375 	__u8 blue_pos;
7376 	__u8 rsvd_size;
7377 	__u8 rsvd_pos;
7378 	__u16 vesapm_seg;
7379 	__u16 vesapm_off;
7380 	__u16 pages;
7381 	__u16 vesa_attributes;
7382 	__u32 capabilities;
7383 	__u32 ext_lfb_base;
7384 	__u8 _reserved[2];
7385 } __attribute__((packed));
7386 
7387 enum memblock_flags {
7388 	MEMBLOCK_NONE = 0,
7389 	MEMBLOCK_HOTPLUG = 1,
7390 	MEMBLOCK_MIRROR = 2,
7391 	MEMBLOCK_NOMAP = 4,
7392 	MEMBLOCK_DRIVER_MANAGED = 8,
7393 };
7394 
7395 struct memblock_region {
7396 	phys_addr_t base;
7397 	phys_addr_t size;
7398 	enum memblock_flags flags;
7399 	int nid;
7400 };
7401 
7402 struct memblock_type {
7403 	long unsigned int cnt;
7404 	long unsigned int max;
7405 	phys_addr_t total_size;
7406 	struct memblock_region *regions;
7407 	char *name;
7408 };
7409 
7410 struct memblock {
7411 	bool bottom_up;
7412 	phys_addr_t current_limit;
7413 	struct memblock_type memory;
7414 	struct memblock_type reserved;
7415 };
7416 
7417 struct of_bus;
7418 
7419 struct of_pci_range_parser {
7420 	struct device_node *node;
7421 	struct of_bus *bus;
7422 	const __be32 *range;
7423 	const __be32 *end;
7424 	int na;
7425 	int ns;
7426 	int pna;
7427 	bool dma;
7428 };
7429 
7430 struct of_pci_range {
7431 	union {
7432 		u64 pci_addr;
7433 		u64 bus_addr;
7434 	};
7435 	u64 cpu_addr;
7436 	u64 size;
7437 	u32 flags;
7438 };
7439 
7440 enum {
7441 	TASKSTATS_CMD_UNSPEC = 0,
7442 	TASKSTATS_CMD_GET = 1,
7443 	TASKSTATS_CMD_NEW = 2,
7444 	__TASKSTATS_CMD_MAX = 3,
7445 };
7446 
7447 enum ucount_type {
7448 	UCOUNT_USER_NAMESPACES = 0,
7449 	UCOUNT_PID_NAMESPACES = 1,
7450 	UCOUNT_UTS_NAMESPACES = 2,
7451 	UCOUNT_IPC_NAMESPACES = 3,
7452 	UCOUNT_NET_NAMESPACES = 4,
7453 	UCOUNT_MNT_NAMESPACES = 5,
7454 	UCOUNT_CGROUP_NAMESPACES = 6,
7455 	UCOUNT_TIME_NAMESPACES = 7,
7456 	UCOUNT_INOTIFY_INSTANCES = 8,
7457 	UCOUNT_INOTIFY_WATCHES = 9,
7458 	UCOUNT_FANOTIFY_GROUPS = 10,
7459 	UCOUNT_FANOTIFY_MARKS = 11,
7460 	UCOUNT_COUNTS = 12,
7461 };
7462 
7463 enum rlimit_type {
7464 	UCOUNT_RLIMIT_NPROC = 0,
7465 	UCOUNT_RLIMIT_MSGQUEUE = 1,
7466 	UCOUNT_RLIMIT_SIGPENDING = 2,
7467 	UCOUNT_RLIMIT_MEMLOCK = 3,
7468 	UCOUNT_RLIMIT_COUNTS = 4,
7469 };
7470 
7471 enum cpu_usage_stat {
7472 	CPUTIME_USER = 0,
7473 	CPUTIME_NICE = 1,
7474 	CPUTIME_SYSTEM = 2,
7475 	CPUTIME_SOFTIRQ = 3,
7476 	CPUTIME_IRQ = 4,
7477 	CPUTIME_IDLE = 5,
7478 	CPUTIME_IOWAIT = 6,
7479 	CPUTIME_STEAL = 7,
7480 	CPUTIME_GUEST = 8,
7481 	CPUTIME_GUEST_NICE = 9,
7482 	NR_STATS = 10,
7483 };
7484 
7485 enum cgroup_bpf_attach_type {
7486 	CGROUP_BPF_ATTACH_TYPE_INVALID = -1,
7487 	CGROUP_INET_INGRESS = 0,
7488 	CGROUP_INET_EGRESS = 1,
7489 	CGROUP_INET_SOCK_CREATE = 2,
7490 	CGROUP_SOCK_OPS = 3,
7491 	CGROUP_DEVICE = 4,
7492 	CGROUP_INET4_BIND = 5,
7493 	CGROUP_INET6_BIND = 6,
7494 	CGROUP_INET4_CONNECT = 7,
7495 	CGROUP_INET6_CONNECT = 8,
7496 	CGROUP_INET4_POST_BIND = 9,
7497 	CGROUP_INET6_POST_BIND = 10,
7498 	CGROUP_UDP4_SENDMSG = 11,
7499 	CGROUP_UDP6_SENDMSG = 12,
7500 	CGROUP_SYSCTL = 13,
7501 	CGROUP_UDP4_RECVMSG = 14,
7502 	CGROUP_UDP6_RECVMSG = 15,
7503 	CGROUP_GETSOCKOPT = 16,
7504 	CGROUP_SETSOCKOPT = 17,
7505 	CGROUP_INET4_GETPEERNAME = 18,
7506 	CGROUP_INET6_GETPEERNAME = 19,
7507 	CGROUP_INET4_GETSOCKNAME = 20,
7508 	CGROUP_INET6_GETSOCKNAME = 21,
7509 	CGROUP_INET_SOCK_RELEASE = 22,
7510 	CGROUP_LSM_START = 23,
7511 	CGROUP_LSM_END = 22,
7512 	MAX_CGROUP_BPF_ATTACH_TYPE = 23,
7513 };
7514 
7515 enum cgroup_subsys_id {
7516 	cpuset_cgrp_id = 0,
7517 	cpu_cgrp_id = 1,
7518 	cpuacct_cgrp_id = 2,
7519 	io_cgrp_id = 3,
7520 	memory_cgrp_id = 4,
7521 	devices_cgrp_id = 5,
7522 	freezer_cgrp_id = 6,
7523 	net_cls_cgrp_id = 7,
7524 	perf_event_cgrp_id = 8,
7525 	net_prio_cgrp_id = 9,
7526 	hugetlb_cgrp_id = 10,
7527 	pids_cgrp_id = 11,
7528 	rdma_cgrp_id = 12,
7529 	misc_cgrp_id = 13,
7530 	CGROUP_SUBSYS_COUNT = 14,
7531 };
7532 
7533 enum wb_stat_item {
7534 	WB_RECLAIMABLE = 0,
7535 	WB_WRITEBACK = 1,
7536 	WB_DIRTIED = 2,
7537 	WB_WRITTEN = 3,
7538 	NR_WB_STAT_ITEMS = 4,
7539 };
7540 
7541 enum memcg_memory_event {
7542 	MEMCG_LOW = 0,
7543 	MEMCG_HIGH = 1,
7544 	MEMCG_MAX = 2,
7545 	MEMCG_OOM = 3,
7546 	MEMCG_OOM_KILL = 4,
7547 	MEMCG_OOM_GROUP_KILL = 5,
7548 	MEMCG_SWAP_HIGH = 6,
7549 	MEMCG_SWAP_MAX = 7,
7550 	MEMCG_SWAP_FAIL = 8,
7551 	MEMCG_NR_MEMORY_EVENTS = 9,
7552 };
7553 
7554 struct mem_cgroup_reclaim_iter {
7555 	struct mem_cgroup *position;
7556 	unsigned int generation;
7557 };
7558 
7559 struct shrinker_info {
7560 	struct callback_head rcu;
7561 	atomic_long_t *nr_deferred;
7562 	long unsigned int *map;
7563 };
7564 
7565 struct lruvec_stats_percpu {
7566 	long int state[43];
7567 	long int state_prev[43];
7568 };
7569 
7570 struct lruvec_stats {
7571 	long int state[43];
7572 	long int state_pending[43];
7573 };
7574 
7575 struct mem_cgroup_per_node {
7576 	struct lruvec lruvec;
7577 	struct lruvec_stats_percpu *lruvec_stats_percpu;
7578 	struct lruvec_stats lruvec_stats;
7579 	long unsigned int lru_zone_size[15];
7580 	struct mem_cgroup_reclaim_iter iter;
7581 	struct shrinker_info *shrinker_info;
7582 	struct rb_node tree_node;
7583 	long unsigned int usage_in_excess;
7584 	bool on_tree;
7585 	struct mem_cgroup *memcg;
7586 };
7587 
7588 struct eventfd_ctx;
7589 
7590 struct mem_cgroup_threshold {
7591 	struct eventfd_ctx *eventfd;
7592 	long unsigned int threshold;
7593 };
7594 
7595 struct mem_cgroup_threshold_ary {
7596 	int current_threshold;
7597 	unsigned int size;
7598 	struct mem_cgroup_threshold entries[0];
7599 };
7600 
7601 struct obj_cgroup {
7602 	struct percpu_ref refcnt;
7603 	struct mem_cgroup *memcg;
7604 	atomic_t nr_charged_bytes;
7605 	union {
7606 		struct list_head list;
7607 		struct callback_head rcu;
7608 	};
7609 };
7610 
7611 struct percpu_cluster {
7612 	struct swap_cluster_info index;
7613 	unsigned int next;
7614 };
7615 
7616 struct loongson_board_info {
7617 	int bios_size;
7618 	const char *bios_vendor;
7619 	const char *bios_version;
7620 	const char *bios_release_date;
7621 	const char *board_name;
7622 	const char *board_vendor;
7623 };
7624 
7625 struct loongson_system_configuration {
7626 	int nr_cpus;
7627 	int nr_nodes;
7628 	int boot_cpu_id;
7629 	int cores_per_node;
7630 	int cores_per_package;
7631 	long unsigned int cores_io_master;
7632 	long unsigned int suspend_addr;
7633 	const char *cpuname;
7634 };
7635 
7636 enum {
7637 	PCI_STD_RESOURCES = 0,
7638 	PCI_STD_RESOURCE_END = 5,
7639 	PCI_ROM_RESOURCE = 6,
7640 	PCI_IOV_RESOURCES = 7,
7641 	PCI_IOV_RESOURCE_END = 12,
7642 	PCI_BRIDGE_RESOURCES = 13,
7643 	PCI_BRIDGE_RESOURCE_END = 16,
7644 	PCI_NUM_RESOURCES = 17,
7645 	DEVICE_COUNT_RESOURCE = 17,
7646 };
7647 
7648 typedef unsigned int pci_channel_state_t;
7649 
7650 typedef unsigned int pcie_reset_state_t;
7651 
7652 typedef short unsigned int pci_dev_flags_t;
7653 
7654 typedef short unsigned int pci_bus_flags_t;
7655 
7656 typedef unsigned int pci_ers_result_t;
7657 
7658 typedef long unsigned int uintptr_t;
7659 
7660 enum idle_boot_override {
7661 	IDLE_NO_OVERRIDE = 0,
7662 	IDLE_HALT = 1,
7663 	IDLE_NOMWAIT = 2,
7664 	IDLE_POLL = 3,
7665 };
7666 
7667 typedef void (*smp_call_func_t)(void *);
7668 
7669 struct __call_single_data {
7670 	struct __call_single_node node;
7671 	smp_call_func_t func;
7672 	void *info;
7673 };
7674 
7675 typedef struct __call_single_data call_single_data_t;
7676 
7677 struct kernel_clone_args {
7678 	u64 flags;
7679 	int *pidfd;
7680 	int *child_tid;
7681 	int *parent_tid;
7682 	int exit_signal;
7683 	long unsigned int stack;
7684 	long unsigned int stack_size;
7685 	long unsigned int tls;
7686 	pid_t *set_tid;
7687 	size_t set_tid_size;
7688 	int cgroup;
7689 	int io_thread;
7690 	int kthread;
7691 	int idle;
7692 	int (*fn)(void *);
7693 	void *fn_arg;
7694 	struct cgroup *cgrp;
7695 	struct css_set *cset;
7696 };
7697 
7698 enum {
7699 	UNAME26 = 131072,
7700 	ADDR_NO_RANDOMIZE = 262144,
7701 	FDPIC_FUNCPTRS = 524288,
7702 	MMAP_PAGE_ZERO = 1048576,
7703 	ADDR_COMPAT_LAYOUT = 2097152,
7704 	READ_IMPLIES_EXEC = 4194304,
7705 	ADDR_LIMIT_32BIT = 8388608,
7706 	SHORT_INODE = 16777216,
7707 	WHOLE_SECONDS = 33554432,
7708 	STICKY_TIMEOUTS = 67108864,
7709 	ADDR_LIMIT_3GB = 134217728,
7710 };
7711 
7712 enum stack_type {
7713 	STACK_TYPE_UNKNOWN = 0,
7714 	STACK_TYPE_IRQ = 1,
7715 	STACK_TYPE_TASK = 2,
7716 };
7717 
7718 struct stack_info {
7719 	enum stack_type type;
7720 	long unsigned int begin;
7721 	long unsigned int end;
7722 	long unsigned int next_sp;
7723 };
7724 
7725 struct unwind_state {
7726 	char type;
7727 	struct stack_info stack_info;
7728 	struct task_struct *task;
7729 	bool first;
7730 	bool error;
7731 	bool reset;
7732 	int graph_idx;
7733 	long unsigned int sp;
7734 	long unsigned int pc;
7735 	long unsigned int ra;
7736 };
7737 
7738 struct linux_binprm {
7739 	struct vm_area_struct *vma;
7740 	long unsigned int vma_pages;
7741 	struct mm_struct *mm;
7742 	long unsigned int p;
7743 	long unsigned int argmin;
7744 	unsigned int have_execfd: 1;
7745 	unsigned int execfd_creds: 1;
7746 	unsigned int secureexec: 1;
7747 	unsigned int point_of_no_return: 1;
7748 	struct file *executable;
7749 	struct file *interpreter;
7750 	struct file *file;
7751 	struct cred *cred;
7752 	int unsafe;
7753 	unsigned int per_clear;
7754 	int argc;
7755 	int envc;
7756 	const char *filename;
7757 	const char *interp;
7758 	const char *fdpath;
7759 	unsigned int interp_flags;
7760 	int execfd;
7761 	long unsigned int loader;
7762 	long unsigned int exec;
7763 	struct rlimit rlim_stack;
7764 	char buf[256];
7765 };
7766 
7767 struct coredump_params;
7768 
7769 struct linux_binfmt {
7770 	struct list_head lh;
7771 	struct module *module;
7772 	int (*load_binary)(struct linux_binprm *);
7773 	int (*load_shlib)(struct file *);
7774 	int (*core_dump)(struct coredump_params *);
7775 	long unsigned int min_coredump;
7776 };
7777 
7778 struct arch_elf_state {
7779 	int fp_abi;
7780 	int interp_fp_abi;
7781 };
7782 
7783 enum clocksource_ids {
7784 	CSID_GENERIC = 0,
7785 	CSID_ARM_ARCH_COUNTER = 1,
7786 	CSID_MAX = 2,
7787 };
7788 
7789 enum vdso_clock_mode {
7790 	VDSO_CLOCKMODE_NONE = 0,
7791 	VDSO_CLOCKMODE_CPU = 1,
7792 	VDSO_CLOCKMODE_MAX = 2,
7793 	VDSO_CLOCKMODE_TIMENS = 2147483647,
7794 };
7795 
7796 struct clocksource {
7797 	u64 (*read)(struct clocksource *);
7798 	u64 mask;
7799 	u32 mult;
7800 	u32 shift;
7801 	u64 max_idle_ns;
7802 	u32 maxadj;
7803 	u32 uncertainty_margin;
7804 	u64 max_cycles;
7805 	const char *name;
7806 	struct list_head list;
7807 	int rating;
7808 	enum clocksource_ids id;
7809 	enum vdso_clock_mode vdso_clock_mode;
7810 	long unsigned int flags;
7811 	int (*enable)(struct clocksource *);
7812 	void (*disable)(struct clocksource *);
7813 	void (*suspend)(struct clocksource *);
7814 	void (*resume)(struct clocksource *);
7815 	void (*mark_unstable)(struct clocksource *);
7816 	void (*tick_stable)(struct clocksource *);
7817 	struct module *owner;
7818 };
7819 
7820 enum clock_event_state {
7821 	CLOCK_EVT_STATE_DETACHED = 0,
7822 	CLOCK_EVT_STATE_SHUTDOWN = 1,
7823 	CLOCK_EVT_STATE_PERIODIC = 2,
7824 	CLOCK_EVT_STATE_ONESHOT = 3,
7825 	CLOCK_EVT_STATE_ONESHOT_STOPPED = 4,
7826 };
7827 
7828 struct clock_event_device {
7829 	void (*event_handler)(struct clock_event_device *);
7830 	int (*set_next_event)(long unsigned int, struct clock_event_device *);
7831 	int (*set_next_ktime)(ktime_t, struct clock_event_device *);
7832 	ktime_t next_event;
7833 	u64 max_delta_ns;
7834 	u64 min_delta_ns;
7835 	u32 mult;
7836 	u32 shift;
7837 	enum clock_event_state state_use_accessors;
7838 	unsigned int features;
7839 	long unsigned int retries;
7840 	int (*set_state_periodic)(struct clock_event_device *);
7841 	int (*set_state_oneshot)(struct clock_event_device *);
7842 	int (*set_state_oneshot_stopped)(struct clock_event_device *);
7843 	int (*set_state_shutdown)(struct clock_event_device *);
7844 	int (*tick_resume)(struct clock_event_device *);
7845 	void (*broadcast)(const struct cpumask *);
7846 	void (*suspend)(struct clock_event_device *);
7847 	void (*resume)(struct clock_event_device *);
7848 	long unsigned int min_delta_ticks;
7849 	long unsigned int max_delta_ticks;
7850 	const char *name;
7851 	int rating;
7852 	int irq;
7853 	int bound_on;
7854 	const struct cpumask *cpumask;
7855 	struct list_head list;
7856 	struct module *owner;
7857 	long: 64;
7858 	long: 64;
7859 	long: 64;
7860 	long: 64;
7861 	long: 64;
7862 	long: 64;
7863 };
7864 
7865 struct irq_affinity_desc {
7866 	struct cpumask mask;
7867 	unsigned int is_managed: 1;
7868 };
7869 
7870 enum reg0i26_op {
7871 	b_op = 20,
7872 	bl_op = 21,
7873 };
7874 
7875 enum reg1i20_op {
7876 	lu12iw_op = 10,
7877 	lu32id_op = 11,
7878 	pcaddi_op = 12,
7879 	pcalau12i_op = 13,
7880 	pcaddu12i_op = 14,
7881 	pcaddu18i_op = 15,
7882 };
7883 
7884 enum reg1i21_op {
7885 	beqz_op = 16,
7886 	bnez_op = 17,
7887 	bceqz_op = 18,
7888 	bcnez_op = 18,
7889 };
7890 
7891 enum reg2i12_op {
7892 	addiw_op = 10,
7893 	addid_op = 11,
7894 	lu52id_op = 12,
7895 	andi_op = 13,
7896 	ori_op = 14,
7897 	xori_op = 15,
7898 	ldb_op = 160,
7899 	ldh_op = 161,
7900 	ldw_op = 162,
7901 	ldd_op = 163,
7902 	stb_op = 164,
7903 	sth_op = 165,
7904 	stw_op = 166,
7905 	std_op = 167,
7906 	ldbu_op = 168,
7907 	ldhu_op = 169,
7908 	ldwu_op = 170,
7909 	flds_op = 172,
7910 	fsts_op = 173,
7911 	fldd_op = 174,
7912 	fstd_op = 175,
7913 };
7914 
7915 enum reg2i16_op {
7916 	jirl_op = 19,
7917 	beq_op = 22,
7918 	bne_op = 23,
7919 	blt_op = 24,
7920 	bge_op = 25,
7921 	bltu_op = 26,
7922 	bgeu_op = 27,
7923 };
7924 
7925 enum reg3_op {
7926 	addw_op = 32,
7927 	addd_op = 33,
7928 	subw_op = 34,
7929 	subd_op = 35,
7930 	nor_op = 40,
7931 	and_op = 41,
7932 	or_op = 42,
7933 	xor_op = 43,
7934 	orn_op = 44,
7935 	andn_op = 45,
7936 	sllw_op = 46,
7937 	srlw_op = 47,
7938 	sraw_op = 48,
7939 	slld_op = 49,
7940 	srld_op = 50,
7941 	srad_op = 51,
7942 	mulw_op = 56,
7943 	mulhw_op = 57,
7944 	mulhwu_op = 58,
7945 	muld_op = 59,
7946 	mulhd_op = 60,
7947 	mulhdu_op = 61,
7948 	divw_op = 64,
7949 	modw_op = 65,
7950 	divwu_op = 66,
7951 	modwu_op = 67,
7952 	divd_op = 68,
7953 	modd_op = 69,
7954 	divdu_op = 70,
7955 	moddu_op = 71,
7956 	ldxb_op = 28672,
7957 	ldxh_op = 28680,
7958 	ldxw_op = 28688,
7959 	ldxd_op = 28696,
7960 	stxb_op = 28704,
7961 	stxh_op = 28712,
7962 	stxw_op = 28720,
7963 	stxd_op = 28728,
7964 	ldxbu_op = 28736,
7965 	ldxhu_op = 28744,
7966 	ldxwu_op = 28752,
7967 	fldxs_op = 28768,
7968 	fldxd_op = 28776,
7969 	fstxs_op = 28784,
7970 	fstxd_op = 28792,
7971 	amswapw_op = 28864,
7972 	amswapd_op = 28865,
7973 	amaddw_op = 28866,
7974 	amaddd_op = 28867,
7975 	amandw_op = 28868,
7976 	amandd_op = 28869,
7977 	amorw_op = 28870,
7978 	amord_op = 28871,
7979 	amxorw_op = 28872,
7980 	amxord_op = 28873,
7981 };
7982 
7983 struct reg0i15_format {
7984 	unsigned int immediate: 15;
7985 	unsigned int opcode: 17;
7986 };
7987 
7988 struct reg0i26_format {
7989 	unsigned int immediate_h: 10;
7990 	unsigned int immediate_l: 16;
7991 	unsigned int opcode: 6;
7992 };
7993 
7994 struct reg1i20_format {
7995 	unsigned int rd: 5;
7996 	unsigned int immediate: 20;
7997 	unsigned int opcode: 7;
7998 };
7999 
8000 struct reg1i21_format {
8001 	unsigned int immediate_h: 5;
8002 	unsigned int rj: 5;
8003 	unsigned int immediate_l: 16;
8004 	unsigned int opcode: 6;
8005 };
8006 
8007 struct reg2_format {
8008 	unsigned int rd: 5;
8009 	unsigned int rj: 5;
8010 	unsigned int opcode: 22;
8011 };
8012 
8013 struct reg2i5_format {
8014 	unsigned int rd: 5;
8015 	unsigned int rj: 5;
8016 	unsigned int immediate: 5;
8017 	unsigned int opcode: 17;
8018 };
8019 
8020 struct reg2i6_format {
8021 	unsigned int rd: 5;
8022 	unsigned int rj: 5;
8023 	unsigned int immediate: 6;
8024 	unsigned int opcode: 16;
8025 };
8026 
8027 struct reg2i12_format {
8028 	unsigned int rd: 5;
8029 	unsigned int rj: 5;
8030 	unsigned int immediate: 12;
8031 	unsigned int opcode: 10;
8032 };
8033 
8034 struct reg2i14_format {
8035 	unsigned int rd: 5;
8036 	unsigned int rj: 5;
8037 	unsigned int immediate: 14;
8038 	unsigned int opcode: 8;
8039 };
8040 
8041 struct reg2i16_format {
8042 	unsigned int rd: 5;
8043 	unsigned int rj: 5;
8044 	unsigned int immediate: 16;
8045 	unsigned int opcode: 6;
8046 };
8047 
8048 struct reg2bstrd_format {
8049 	unsigned int rd: 5;
8050 	unsigned int rj: 5;
8051 	unsigned int lsbd: 6;
8052 	unsigned int msbd: 6;
8053 	unsigned int opcode: 10;
8054 };
8055 
8056 struct reg3_format {
8057 	unsigned int rd: 5;
8058 	unsigned int rj: 5;
8059 	unsigned int rk: 5;
8060 	unsigned int opcode: 17;
8061 };
8062 
8063 struct reg3sa2_format {
8064 	unsigned int rd: 5;
8065 	unsigned int rj: 5;
8066 	unsigned int rk: 5;
8067 	unsigned int immediate: 2;
8068 	unsigned int opcode: 15;
8069 };
8070 
8071 union loongarch_instruction {
8072 	unsigned int word;
8073 	struct reg0i15_format reg0i15_format;
8074 	struct reg0i26_format reg0i26_format;
8075 	struct reg1i20_format reg1i20_format;
8076 	struct reg1i21_format reg1i21_format;
8077 	struct reg2_format reg2_format;
8078 	struct reg2i5_format reg2i5_format;
8079 	struct reg2i6_format reg2i6_format;
8080 	struct reg2i12_format reg2i12_format;
8081 	struct reg2i14_format reg2i14_format;
8082 	struct reg2i16_format reg2i16_format;
8083 	struct reg2bstrd_format reg2bstrd_format;
8084 	struct reg3_format reg3_format;
8085 	struct reg3sa2_format reg3sa2_format;
8086 };
8087 
8088 enum loongarch_gpr {
8089 	LOONGARCH_GPR_ZERO = 0,
8090 	LOONGARCH_GPR_RA = 1,
8091 	LOONGARCH_GPR_TP = 2,
8092 	LOONGARCH_GPR_SP = 3,
8093 	LOONGARCH_GPR_A0 = 4,
8094 	LOONGARCH_GPR_A1 = 5,
8095 	LOONGARCH_GPR_A2 = 6,
8096 	LOONGARCH_GPR_A3 = 7,
8097 	LOONGARCH_GPR_A4 = 8,
8098 	LOONGARCH_GPR_A5 = 9,
8099 	LOONGARCH_GPR_A6 = 10,
8100 	LOONGARCH_GPR_A7 = 11,
8101 	LOONGARCH_GPR_T0 = 12,
8102 	LOONGARCH_GPR_T1 = 13,
8103 	LOONGARCH_GPR_T2 = 14,
8104 	LOONGARCH_GPR_T3 = 15,
8105 	LOONGARCH_GPR_T4 = 16,
8106 	LOONGARCH_GPR_T5 = 17,
8107 	LOONGARCH_GPR_T6 = 18,
8108 	LOONGARCH_GPR_T7 = 19,
8109 	LOONGARCH_GPR_T8 = 20,
8110 	LOONGARCH_GPR_FP = 22,
8111 	LOONGARCH_GPR_S0 = 23,
8112 	LOONGARCH_GPR_S1 = 24,
8113 	LOONGARCH_GPR_S2 = 25,
8114 	LOONGARCH_GPR_S3 = 26,
8115 	LOONGARCH_GPR_S4 = 27,
8116 	LOONGARCH_GPR_S5 = 28,
8117 	LOONGARCH_GPR_S6 = 29,
8118 	LOONGARCH_GPR_S7 = 30,
8119 	LOONGARCH_GPR_S8 = 31,
8120 	LOONGARCH_GPR_MAX = 32,
8121 };
8122 
8123 struct __large_struct {
8124 	long unsigned int buf[100];
8125 };
8126 
8127 enum reg2i14_op {
8128 	llw_op = 32,
8129 	scw_op = 33,
8130 	lld_op = 34,
8131 	scd_op = 35,
8132 	ldptrw_op = 36,
8133 	stptrw_op = 37,
8134 	ldptrd_op = 38,
8135 	stptrd_op = 39,
8136 };
8137 
8138 enum {
8139 	TRACE_FTRACE_BIT = 0,
8140 	TRACE_FTRACE_NMI_BIT = 1,
8141 	TRACE_FTRACE_IRQ_BIT = 2,
8142 	TRACE_FTRACE_SIRQ_BIT = 3,
8143 	TRACE_FTRACE_TRANSITION_BIT = 4,
8144 	TRACE_INTERNAL_BIT = 5,
8145 	TRACE_INTERNAL_NMI_BIT = 6,
8146 	TRACE_INTERNAL_IRQ_BIT = 7,
8147 	TRACE_INTERNAL_SIRQ_BIT = 8,
8148 	TRACE_INTERNAL_TRANSITION_BIT = 9,
8149 	TRACE_BRANCH_BIT = 10,
8150 	TRACE_IRQ_BIT = 11,
8151 	TRACE_GRAPH_BIT = 12,
8152 	TRACE_GRAPH_DEPTH_START_BIT = 13,
8153 	TRACE_GRAPH_DEPTH_END_BIT = 14,
8154 	TRACE_GRAPH_NOTRACE_BIT = 15,
8155 	TRACE_RECORD_RECURSION_BIT = 16,
8156 };
8157 
8158 enum {
8159 	TRACE_CTX_NMI = 0,
8160 	TRACE_CTX_IRQ = 1,
8161 	TRACE_CTX_SOFTIRQ = 2,
8162 	TRACE_CTX_NORMAL = 3,
8163 	TRACE_CTX_TRANSITION = 4,
8164 };
8165 
8166 struct dyn_arch_ftrace {};
8167 
8168 struct dyn_ftrace {
8169 	long unsigned int ip;
8170 	long unsigned int flags;
8171 	struct dyn_arch_ftrace arch;
8172 };
8173 
8174 enum {
8175 	FTRACE_UPDATE_CALLS = 1,
8176 	FTRACE_DISABLE_CALLS = 2,
8177 	FTRACE_UPDATE_TRACE_FUNC = 4,
8178 	FTRACE_START_FUNC_RET = 8,
8179 	FTRACE_STOP_FUNC_RET = 16,
8180 	FTRACE_MAY_SLEEP = 32,
8181 };
8182 
8183 typedef union loongarch_instruction kprobe_opcode_t;
8184 
8185 struct arch_specific_insn {
8186 	kprobe_opcode_t *insn;
8187 	long unsigned int restore;
8188 };
8189 
8190 struct kprobe;
8191 
8192 struct prev_kprobe {
8193 	struct kprobe *kp;
8194 	unsigned int status;
8195 };
8196 
8197 typedef int (*kprobe_pre_handler_t)(struct kprobe *, struct pt_regs *);
8198 
8199 typedef void (*kprobe_post_handler_t)(struct kprobe *, struct pt_regs *, long unsigned int);
8200 
8201 struct kprobe {
8202 	struct hlist_node hlist;
8203 	struct list_head list;
8204 	long unsigned int nmissed;
8205 	kprobe_opcode_t *addr;
8206 	const char *symbol_name;
8207 	unsigned int offset;
8208 	kprobe_pre_handler_t pre_handler;
8209 	kprobe_post_handler_t post_handler;
8210 	kprobe_opcode_t opcode;
8211 	struct arch_specific_insn ainsn;
8212 	u32 flags;
8213 };
8214 
8215 struct kprobe_ctlblk {
8216 	unsigned int kprobe_status;
8217 	long unsigned int saved_status;
8218 	struct prev_kprobe prev_kprobe;
8219 };
8220 
8221 struct proc_cpuinfo_notifier_args {
8222 	struct seq_file *m;
8223 	long unsigned int n;
8224 };
8225 
8226 struct notifier_block;
8227 
8228 typedef int (*notifier_fn_t)(struct notifier_block *, long unsigned int, void *);
8229 
8230 struct notifier_block {
8231 	notifier_fn_t notifier_call;
8232 	struct notifier_block *next;
8233 	int priority;
8234 };
8235 
8236 struct raw_notifier_head {
8237 	struct notifier_block *head;
8238 };
8239 
8240 struct kimage_arch {
8241 	long unsigned int efi_boot;
8242 	long unsigned int cmdline_ptr;
8243 	long unsigned int systable_ptr;
8244 };
8245 
8246 typedef void (*do_kexec_t)(long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int);
8247 
8248 typedef long unsigned int kimage_entry_t;
8249 
8250 struct kexec_segment {
8251 	union {
8252 		void *buf;
8253 		void *kbuf;
8254 	};
8255 	size_t bufsz;
8256 	long unsigned int mem;
8257 	size_t memsz;
8258 };
8259 
8260 struct kimage {
8261 	kimage_entry_t head;
8262 	kimage_entry_t *entry;
8263 	kimage_entry_t *last_entry;
8264 	long unsigned int start;
8265 	struct page *control_code_page;
8266 	struct page *swap_page;
8267 	void *vmcoreinfo_data_copy;
8268 	long unsigned int nr_segments;
8269 	struct kexec_segment segment[16];
8270 	struct list_head control_pages;
8271 	struct list_head dest_pages;
8272 	struct list_head unusable_pages;
8273 	long unsigned int control_page;
8274 	unsigned int type: 1;
8275 	unsigned int preserve_context: 1;
8276 	unsigned int file_mode: 1;
8277 	struct kimage_arch arch;
8278 	void *elf_headers;
8279 	long unsigned int elf_headers_sz;
8280 	long unsigned int elf_load_addr;
8281 };
8282 
8283 typedef bool (*smp_cond_func_t)(int, void *);
8284 
8285 enum perf_type_id {
8286 	PERF_TYPE_HARDWARE = 0,
8287 	PERF_TYPE_SOFTWARE = 1,
8288 	PERF_TYPE_TRACEPOINT = 2,
8289 	PERF_TYPE_HW_CACHE = 3,
8290 	PERF_TYPE_RAW = 4,
8291 	PERF_TYPE_BREAKPOINT = 5,
8292 	PERF_TYPE_MAX = 6,
8293 };
8294 
8295 enum perf_hw_id {
8296 	PERF_COUNT_HW_CPU_CYCLES = 0,
8297 	PERF_COUNT_HW_INSTRUCTIONS = 1,
8298 	PERF_COUNT_HW_CACHE_REFERENCES = 2,
8299 	PERF_COUNT_HW_CACHE_MISSES = 3,
8300 	PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 4,
8301 	PERF_COUNT_HW_BRANCH_MISSES = 5,
8302 	PERF_COUNT_HW_BUS_CYCLES = 6,
8303 	PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 7,
8304 	PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 8,
8305 	PERF_COUNT_HW_REF_CPU_CYCLES = 9,
8306 	PERF_COUNT_HW_MAX = 10,
8307 };
8308 
8309 enum perf_hw_cache_id {
8310 	PERF_COUNT_HW_CACHE_L1D = 0,
8311 	PERF_COUNT_HW_CACHE_L1I = 1,
8312 	PERF_COUNT_HW_CACHE_LL = 2,
8313 	PERF_COUNT_HW_CACHE_DTLB = 3,
8314 	PERF_COUNT_HW_CACHE_ITLB = 4,
8315 	PERF_COUNT_HW_CACHE_BPU = 5,
8316 	PERF_COUNT_HW_CACHE_NODE = 6,
8317 	PERF_COUNT_HW_CACHE_MAX = 7,
8318 };
8319 
8320 enum perf_hw_cache_op_id {
8321 	PERF_COUNT_HW_CACHE_OP_READ = 0,
8322 	PERF_COUNT_HW_CACHE_OP_WRITE = 1,
8323 	PERF_COUNT_HW_CACHE_OP_PREFETCH = 2,
8324 	PERF_COUNT_HW_CACHE_OP_MAX = 3,
8325 };
8326 
8327 enum perf_hw_cache_op_result_id {
8328 	PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0,
8329 	PERF_COUNT_HW_CACHE_RESULT_MISS = 1,
8330 	PERF_COUNT_HW_CACHE_RESULT_MAX = 2,
8331 };
8332 
8333 enum perf_event_sample_format {
8334 	PERF_SAMPLE_IP = 1,
8335 	PERF_SAMPLE_TID = 2,
8336 	PERF_SAMPLE_TIME = 4,
8337 	PERF_SAMPLE_ADDR = 8,
8338 	PERF_SAMPLE_READ = 16,
8339 	PERF_SAMPLE_CALLCHAIN = 32,
8340 	PERF_SAMPLE_ID = 64,
8341 	PERF_SAMPLE_CPU = 128,
8342 	PERF_SAMPLE_PERIOD = 256,
8343 	PERF_SAMPLE_STREAM_ID = 512,
8344 	PERF_SAMPLE_RAW = 1024,
8345 	PERF_SAMPLE_BRANCH_STACK = 2048,
8346 	PERF_SAMPLE_REGS_USER = 4096,
8347 	PERF_SAMPLE_STACK_USER = 8192,
8348 	PERF_SAMPLE_WEIGHT = 16384,
8349 	PERF_SAMPLE_DATA_SRC = 32768,
8350 	PERF_SAMPLE_IDENTIFIER = 65536,
8351 	PERF_SAMPLE_TRANSACTION = 131072,
8352 	PERF_SAMPLE_REGS_INTR = 262144,
8353 	PERF_SAMPLE_PHYS_ADDR = 524288,
8354 	PERF_SAMPLE_AUX = 1048576,
8355 	PERF_SAMPLE_CGROUP = 2097152,
8356 	PERF_SAMPLE_DATA_PAGE_SIZE = 4194304,
8357 	PERF_SAMPLE_CODE_PAGE_SIZE = 8388608,
8358 	PERF_SAMPLE_WEIGHT_STRUCT = 16777216,
8359 	PERF_SAMPLE_MAX = 33554432,
8360 };
8361 
8362 struct perf_callchain_entry_ctx {
8363 	struct perf_callchain_entry *entry;
8364 	u32 max_stack;
8365 	u32 nr;
8366 	short int contexts;
8367 	bool contexts_maxed;
8368 };
8369 
8370 struct stack_frame {
8371 	long unsigned int fp;
8372 	long unsigned int ra;
8373 };
8374 
8375 struct cpu_hw_events {
8376 	struct perf_event *events[32];
8377 	long unsigned int used_mask[1];
8378 	unsigned int saved_ctrl[32];
8379 };
8380 
8381 struct loongarch_perf_event {
8382 	unsigned int event_id;
8383 };
8384 
8385 struct loongarch_pmu {
8386 	u64 max_period;
8387 	u64 valid_count;
8388 	u64 overflow;
8389 	const char *name;
8390 	unsigned int num_counters;
8391 	u64 (*read_counter)(unsigned int);
8392 	void (*write_counter)(unsigned int, u64);
8393 	const struct loongarch_perf_event * (*map_raw_event)(u64);
8394 	const struct loongarch_perf_event (*general_event_map)[10];
8395 	const struct loongarch_perf_event (*cache_event_map)[42];
8396 };
8397 
8398 enum vm_fault_reason {
8399 	VM_FAULT_OOM = 1,
8400 	VM_FAULT_SIGBUS = 2,
8401 	VM_FAULT_MAJOR = 4,
8402 	VM_FAULT_HWPOISON = 16,
8403 	VM_FAULT_HWPOISON_LARGE = 32,
8404 	VM_FAULT_SIGSEGV = 64,
8405 	VM_FAULT_NOPAGE = 256,
8406 	VM_FAULT_LOCKED = 512,
8407 	VM_FAULT_RETRY = 1024,
8408 	VM_FAULT_FALLBACK = 2048,
8409 	VM_FAULT_DONE_COW = 4096,
8410 	VM_FAULT_NEEDDSYNC = 8192,
8411 	VM_FAULT_COMPLETED = 16384,
8412 	VM_FAULT_HINDEX_MASK = 983040,
8413 };
8414 
8415 struct irqentry_state {
8416 	union {
8417 		bool exit_rcu;
8418 		bool lockdep;
8419 	};
8420 };
8421 
8422 typedef struct irqentry_state irqentry_state_t;
8423 
8424 typedef short int __s16;
8425 
8426 typedef __u16 __be16;
8427 
8428 typedef __u32 __wsum;
8429 
8430 typedef unsigned int slab_flags_t;
8431 
8432 typedef void (*rcu_callback_t)(struct callback_head *);
8433 
8434 enum syscall_work_bit {
8435 	SYSCALL_WORK_BIT_SECCOMP = 0,
8436 	SYSCALL_WORK_BIT_SYSCALL_TRACEPOINT = 1,
8437 	SYSCALL_WORK_BIT_SYSCALL_TRACE = 2,
8438 	SYSCALL_WORK_BIT_SYSCALL_EMU = 3,
8439 	SYSCALL_WORK_BIT_SYSCALL_AUDIT = 4,
8440 	SYSCALL_WORK_BIT_SYSCALL_USER_DISPATCH = 5,
8441 	SYSCALL_WORK_BIT_SYSCALL_EXIT_TRAP = 6,
8442 };
8443 
8444 enum refcount_saturation_type {
8445 	REFCOUNT_ADD_NOT_ZERO_OVF = 0,
8446 	REFCOUNT_ADD_OVF = 1,
8447 	REFCOUNT_ADD_UAF = 2,
8448 	REFCOUNT_SUB_UAF = 3,
8449 	REFCOUNT_DEC_LEAK = 4,
8450 };
8451 
8452 struct maple_alloc {
8453 	long unsigned int total;
8454 	unsigned char node_count;
8455 	unsigned int request_count;
8456 	struct maple_alloc *slot[30];
8457 };
8458 
8459 struct maple_enode;
8460 
8461 struct ma_state {
8462 	struct maple_tree *tree;
8463 	long unsigned int index;
8464 	long unsigned int last;
8465 	struct maple_enode *node;
8466 	long unsigned int min;
8467 	long unsigned int max;
8468 	struct maple_alloc *alloc;
8469 	unsigned char depth;
8470 	unsigned char offset;
8471 	unsigned char mas_flags;
8472 };
8473 
8474 enum tk_offsets {
8475 	TK_OFFS_REAL = 0,
8476 	TK_OFFS_BOOT = 1,
8477 	TK_OFFS_TAI = 2,
8478 	TK_OFFS_MAX = 3,
8479 };
8480 
8481 enum {
8482 	WORK_STRUCT_PENDING_BIT = 0LL,
8483 	WORK_STRUCT_INACTIVE_BIT = 1LL,
8484 	WORK_STRUCT_PWQ_BIT = 2LL,
8485 	WORK_STRUCT_LINKED_BIT = 3LL,
8486 	WORK_STRUCT_COLOR_SHIFT = 4LL,
8487 	WORK_STRUCT_COLOR_BITS = 4LL,
8488 	WORK_STRUCT_PENDING = 1LL,
8489 	WORK_STRUCT_INACTIVE = 2LL,
8490 	WORK_STRUCT_PWQ = 4LL,
8491 	WORK_STRUCT_LINKED = 8LL,
8492 	WORK_STRUCT_STATIC = 0LL,
8493 	WORK_NR_COLORS = 16LL,
8494 	WORK_CPU_UNBOUND = 64LL,
8495 	WORK_STRUCT_FLAG_BITS = 8LL,
8496 	WORK_OFFQ_FLAG_BASE = 4LL,
8497 	__WORK_OFFQ_CANCELING = 4LL,
8498 	WORK_OFFQ_CANCELING = 16LL,
8499 	WORK_OFFQ_FLAG_BITS = 1LL,
8500 	WORK_OFFQ_POOL_SHIFT = 5LL,
8501 	WORK_OFFQ_LEFT = 59LL,
8502 	WORK_OFFQ_POOL_BITS = 31LL,
8503 	WORK_OFFQ_POOL_NONE = 2147483647LL,
8504 	WORK_STRUCT_FLAG_MASK = 255LL,
8505 	WORK_STRUCT_WQ_DATA_MASK = -256LL,
8506 	WORK_STRUCT_NO_POOL = 68719476704LL,
8507 	WORK_BUSY_PENDING = 1LL,
8508 	WORK_BUSY_RUNNING = 2LL,
8509 	WORKER_DESC_LEN = 24LL,
8510 };
8511 
8512 enum dma_data_direction {
8513 	DMA_BIDIRECTIONAL = 0,
8514 	DMA_TO_DEVICE = 1,
8515 	DMA_FROM_DEVICE = 2,
8516 	DMA_NONE = 3,
8517 };
8518 
8519 struct page_pool_params {
8520 	unsigned int flags;
8521 	unsigned int order;
8522 	unsigned int pool_size;
8523 	int nid;
8524 	struct device *dev;
8525 	enum dma_data_direction dma_dir;
8526 	unsigned int max_len;
8527 	unsigned int offset;
8528 	void (*init_callback)(struct page *, void *);
8529 	void *init_arg;
8530 };
8531 
8532 struct pp_alloc_cache {
8533 	u32 count;
8534 	struct page *cache[128];
8535 };
8536 
8537 struct ptr_ring {
8538 	int producer;
8539 	spinlock_t producer_lock;
8540 	long: 64;
8541 	long: 64;
8542 	long: 64;
8543 	long: 64;
8544 	long: 64;
8545 	long: 64;
8546 	long: 64;
8547 	int consumer_head;
8548 	int consumer_tail;
8549 	spinlock_t consumer_lock;
8550 	long: 32;
8551 	long: 64;
8552 	long: 64;
8553 	long: 64;
8554 	long: 64;
8555 	long: 64;
8556 	long: 64;
8557 	int size;
8558 	int batch;
8559 	void **queue;
8560 	long: 64;
8561 	long: 64;
8562 	long: 64;
8563 	long: 64;
8564 	long: 64;
8565 	long: 64;
8566 };
8567 
8568 struct page_pool {
8569 	struct page_pool_params p;
8570 	struct delayed_work release_dw;
8571 	void (*disconnect)(void *);
8572 	long unsigned int defer_start;
8573 	long unsigned int defer_warn;
8574 	u32 pages_state_hold_cnt;
8575 	unsigned int frag_offset;
8576 	struct page *frag_page;
8577 	long int frag_users;
8578 	u32 xdp_mem_id;
8579 	long: 32;
8580 	long: 64;
8581 	long: 64;
8582 	long: 64;
8583 	long: 64;
8584 	long: 64;
8585 	long: 64;
8586 	long: 64;
8587 	struct pp_alloc_cache alloc;
8588 	long: 64;
8589 	long: 64;
8590 	long: 64;
8591 	long: 64;
8592 	long: 64;
8593 	long: 64;
8594 	long: 64;
8595 	struct ptr_ring ring;
8596 	atomic_t pages_state_release_cnt;
8597 	refcount_t user_cnt;
8598 	u64 destroy_cnt;
8599 	long: 64;
8600 	long: 64;
8601 	long: 64;
8602 	long: 64;
8603 	long: 64;
8604 	long: 64;
8605 };
8606 
8607 typedef long unsigned int vm_flags_t;
8608 
8609 struct anon_vma {
8610 	struct anon_vma *root;
8611 	struct rw_semaphore rwsem;
8612 	atomic_t refcount;
8613 	long unsigned int num_children;
8614 	long unsigned int num_active_vmas;
8615 	struct anon_vma *parent;
8616 	struct rb_root_cached rb_root;
8617 };
8618 
8619 struct mempolicy {
8620 	atomic_t refcnt;
8621 	short unsigned int mode;
8622 	short unsigned int flags;
8623 	nodemask_t nodes;
8624 	int home_node;
8625 	union {
8626 		nodemask_t cpuset_mems_allowed;
8627 		nodemask_t user_nodemask;
8628 	} w;
8629 };
8630 
8631 struct vma_iterator {
8632 	struct ma_state mas;
8633 };
8634 
8635 struct blocking_notifier_head {
8636 	struct rw_semaphore rwsem;
8637 	struct notifier_block *head;
8638 };
8639 
8640 struct clone_args {
8641 	__u64 flags;
8642 	__u64 pidfd;
8643 	__u64 child_tid;
8644 	__u64 parent_tid;
8645 	__u64 exit_signal;
8646 	__u64 stack;
8647 	__u64 stack_size;
8648 	__u64 tls;
8649 	__u64 set_tid;
8650 	__u64 set_tid_size;
8651 	__u64 cgroup;
8652 };
8653 
8654 struct rhash_head {
8655 	struct rhash_head *next;
8656 };
8657 
8658 struct rhashtable;
8659 
8660 struct rhashtable_compare_arg {
8661 	struct rhashtable *ht;
8662 	const void *key;
8663 };
8664 
8665 typedef u32 (*rht_hashfn_t)(const void *, u32, u32);
8666 
8667 typedef u32 (*rht_obj_hashfn_t)(const void *, u32, u32);
8668 
8669 typedef int (*rht_obj_cmpfn_t)(struct rhashtable_compare_arg *, const void *);
8670 
8671 struct rhashtable_params {
8672 	u16 nelem_hint;
8673 	u16 key_len;
8674 	u16 key_offset;
8675 	u16 head_offset;
8676 	unsigned int max_size;
8677 	u16 min_size;
8678 	bool automatic_shrinking;
8679 	rht_hashfn_t hashfn;
8680 	rht_obj_hashfn_t obj_hashfn;
8681 	rht_obj_cmpfn_t obj_cmpfn;
8682 };
8683 
8684 struct bucket_table;
8685 
8686 struct rhashtable {
8687 	struct bucket_table *tbl;
8688 	unsigned int key_len;
8689 	unsigned int max_elems;
8690 	struct rhashtable_params p;
8691 	bool rhlist;
8692 	struct work_struct run_work;
8693 	struct mutex mutex;
8694 	spinlock_t lock;
8695 	atomic_t nelems;
8696 };
8697 
8698 enum hrtimer_mode {
8699 	HRTIMER_MODE_ABS = 0,
8700 	HRTIMER_MODE_REL = 1,
8701 	HRTIMER_MODE_PINNED = 2,
8702 	HRTIMER_MODE_SOFT = 4,
8703 	HRTIMER_MODE_HARD = 8,
8704 	HRTIMER_MODE_ABS_PINNED = 2,
8705 	HRTIMER_MODE_REL_PINNED = 3,
8706 	HRTIMER_MODE_ABS_SOFT = 4,
8707 	HRTIMER_MODE_REL_SOFT = 5,
8708 	HRTIMER_MODE_ABS_PINNED_SOFT = 6,
8709 	HRTIMER_MODE_REL_PINNED_SOFT = 7,
8710 	HRTIMER_MODE_ABS_HARD = 8,
8711 	HRTIMER_MODE_REL_HARD = 9,
8712 	HRTIMER_MODE_ABS_PINNED_HARD = 10,
8713 	HRTIMER_MODE_REL_PINNED_HARD = 11,
8714 };
8715 
8716 struct fs_struct {
8717 	int users;
8718 	spinlock_t lock;
8719 	seqcount_spinlock_t seq;
8720 	int umask;
8721 	int in_exec;
8722 	struct path root;
8723 	struct path pwd;
8724 };
8725 
8726 struct fdtable {
8727 	unsigned int max_fds;
8728 	struct file **fd;
8729 	long unsigned int *close_on_exec;
8730 	long unsigned int *open_fds;
8731 	long unsigned int *full_fds_bits;
8732 	struct callback_head rcu;
8733 };
8734 
8735 struct files_struct {
8736 	atomic_t count;
8737 	bool resize_in_progress;
8738 	wait_queue_head_t resize_wait;
8739 	struct fdtable *fdt;
8740 	struct fdtable fdtab;
8741 	long: 64;
8742 	long: 64;
8743 	long: 64;
8744 	long: 64;
8745 	spinlock_t file_lock;
8746 	unsigned int next_fd;
8747 	long unsigned int close_on_exec_init[1];
8748 	long unsigned int open_fds_init[1];
8749 	long unsigned int full_fds_bits_init[1];
8750 	struct file *fd_array[64];
8751 	long: 64;
8752 	long: 64;
8753 	long: 64;
8754 	long: 64;
8755 };
8756 
8757 struct robust_list {
8758 	struct robust_list *next;
8759 };
8760 
8761 struct robust_list_head {
8762 	struct robust_list list;
8763 	long int futex_offset;
8764 	struct robust_list *list_op_pending;
8765 };
8766 
8767 struct pipe_buffer;
8768 
8769 struct pipe_inode_info {
8770 	struct mutex mutex;
8771 	wait_queue_head_t rd_wait;
8772 	wait_queue_head_t wr_wait;
8773 	unsigned int head;
8774 	unsigned int tail;
8775 	unsigned int max_usage;
8776 	unsigned int ring_size;
8777 	unsigned int nr_accounted;
8778 	unsigned int readers;
8779 	unsigned int writers;
8780 	unsigned int files;
8781 	unsigned int r_counter;
8782 	unsigned int w_counter;
8783 	bool poll_usage;
8784 	struct page *tmp_page;
8785 	struct fasync_struct *fasync_readers;
8786 	struct fasync_struct *fasync_writers;
8787 	struct pipe_buffer *bufs;
8788 	struct user_struct *user;
8789 };
8790 
8791 struct task_delay_info {
8792 	raw_spinlock_t lock;
8793 	u64 blkio_start;
8794 	u64 blkio_delay;
8795 	u64 swapin_start;
8796 	u64 swapin_delay;
8797 	u32 blkio_count;
8798 	u32 swapin_count;
8799 	u64 freepages_start;
8800 	u64 freepages_delay;
8801 	u64 thrashing_start;
8802 	u64 thrashing_delay;
8803 	u64 compact_start;
8804 	u64 compact_delay;
8805 	u64 wpcopy_start;
8806 	u64 wpcopy_delay;
8807 	u32 freepages_count;
8808 	u32 thrashing_count;
8809 	u32 compact_count;
8810 	u32 wpcopy_count;
8811 };
8812 
8813 struct bpf_run_ctx {};
8814 
8815 struct multiprocess_signals {
8816 	sigset_t signal;
8817 	struct hlist_node node;
8818 };
8819 
8820 struct ld_semaphore {
8821 	atomic_long_t count;
8822 	raw_spinlock_t wait_lock;
8823 	unsigned int wait_readers;
8824 	struct list_head read_wait;
8825 	struct list_head write_wait;
8826 };
8827 
8828 typedef unsigned int tcflag_t;
8829 
8830 typedef unsigned char cc_t;
8831 
8832 typedef unsigned int speed_t;
8833 
8834 struct ktermios {
8835 	tcflag_t c_iflag;
8836 	tcflag_t c_oflag;
8837 	tcflag_t c_cflag;
8838 	tcflag_t c_lflag;
8839 	cc_t c_line;
8840 	cc_t c_cc[19];
8841 	speed_t c_ispeed;
8842 	speed_t c_ospeed;
8843 };
8844 
8845 struct winsize {
8846 	short unsigned int ws_row;
8847 	short unsigned int ws_col;
8848 	short unsigned int ws_xpixel;
8849 	short unsigned int ws_ypixel;
8850 };
8851 
8852 struct tty_driver;
8853 
8854 struct tty_operations;
8855 
8856 struct tty_ldisc;
8857 
8858 struct tty_port;
8859 
8860 struct tty_struct {
8861 	struct kref kref;
8862 	struct device *dev;
8863 	struct tty_driver *driver;
8864 	const struct tty_operations *ops;
8865 	int index;
8866 	struct ld_semaphore ldisc_sem;
8867 	struct tty_ldisc *ldisc;
8868 	struct mutex atomic_write_lock;
8869 	struct mutex legacy_mutex;
8870 	struct mutex throttle_mutex;
8871 	struct rw_semaphore termios_rwsem;
8872 	struct mutex winsize_mutex;
8873 	struct ktermios termios;
8874 	struct ktermios termios_locked;
8875 	char name[64];
8876 	long unsigned int flags;
8877 	int count;
8878 	struct winsize winsize;
8879 	struct {
8880 		spinlock_t lock;
8881 		bool stopped;
8882 		bool tco_stopped;
8883 		long unsigned int unused[0];
8884 	} flow;
8885 	struct {
8886 		spinlock_t lock;
8887 		struct pid *pgrp;
8888 		struct pid *session;
8889 		unsigned char pktstatus;
8890 		bool packet;
8891 		long unsigned int unused[0];
8892 	} ctrl;
8893 	int hw_stopped;
8894 	unsigned int receive_room;
8895 	int flow_change;
8896 	struct tty_struct *link;
8897 	struct fasync_struct *fasync;
8898 	wait_queue_head_t write_wait;
8899 	wait_queue_head_t read_wait;
8900 	struct work_struct hangup_work;
8901 	void *disc_data;
8902 	void *driver_data;
8903 	spinlock_t files_lock;
8904 	struct list_head tty_files;
8905 	int closing;
8906 	unsigned char *write_buf;
8907 	int write_cnt;
8908 	struct work_struct SAK_work;
8909 	struct tty_port *port;
8910 };
8911 
8912 typedef int (*proc_visitor)(struct task_struct *, void *);
8913 
8914 struct io_uring_cmd {
8915 	struct file *file;
8916 	const void *cmd;
8917 	union {
8918 		void (*task_work_cb)(struct io_uring_cmd *);
8919 		void *cookie;
8920 	};
8921 	u32 cmd_op;
8922 	u32 flags;
8923 	u8 pdu[32];
8924 };
8925 
8926 struct vm_struct {
8927 	struct vm_struct *next;
8928 	void *addr;
8929 	long unsigned int size;
8930 	long unsigned int flags;
8931 	struct page **pages;
8932 	unsigned int nr_pages;
8933 	phys_addr_t phys_addr;
8934 	const void *caller;
8935 };
8936 
8937 struct new_utsname {
8938 	char sysname[65];
8939 	char nodename[65];
8940 	char release[65];
8941 	char version[65];
8942 	char machine[65];
8943 	char domainname[65];
8944 };
8945 
8946 struct uts_namespace {
8947 	struct new_utsname name;
8948 	struct user_namespace *user_ns;
8949 	struct ucounts *ucounts;
8950 	struct ns_common ns;
8951 };
8952 
8953 struct ref_tracker_dir {};
8954 
8955 struct prot_inuse;
8956 
8957 struct netns_core {
8958 	struct ctl_table_header *sysctl_hdr;
8959 	int sysctl_somaxconn;
8960 	u8 sysctl_txrehash;
8961 	struct prot_inuse *prot_inuse;
8962 };
8963 
8964 struct ipstats_mib;
8965 
8966 struct tcp_mib;
8967 
8968 struct linux_mib;
8969 
8970 struct udp_mib;
8971 
8972 struct linux_tls_mib;
8973 
8974 struct icmp_mib;
8975 
8976 struct icmpmsg_mib;
8977 
8978 struct icmpv6_mib;
8979 
8980 struct icmpv6msg_mib;
8981 
8982 struct netns_mib {
8983 	struct ipstats_mib *ip_statistics;
8984 	struct ipstats_mib *ipv6_statistics;
8985 	struct tcp_mib *tcp_statistics;
8986 	struct linux_mib *net_statistics;
8987 	struct udp_mib *udp_statistics;
8988 	struct udp_mib *udp_stats_in6;
8989 	struct linux_tls_mib *tls_statistics;
8990 	struct udp_mib *udplite_statistics;
8991 	struct udp_mib *udplite_stats_in6;
8992 	struct icmp_mib *icmp_statistics;
8993 	struct icmpmsg_mib *icmpmsg_statistics;
8994 	struct icmpv6_mib *icmpv6_statistics;
8995 	struct icmpv6msg_mib *icmpv6msg_statistics;
8996 	struct proc_dir_entry *proc_net_devsnmp6;
8997 };
8998 
8999 struct netns_packet {
9000 	struct mutex sklist_lock;
9001 	struct hlist_head sklist;
9002 };
9003 
9004 struct unix_table {
9005 	spinlock_t *locks;
9006 	struct hlist_head *buckets;
9007 };
9008 
9009 struct netns_unix {
9010 	struct unix_table table;
9011 	int sysctl_max_dgram_qlen;
9012 	struct ctl_table_header *ctl;
9013 };
9014 
9015 struct netns_nexthop {
9016 	struct rb_root rb_root;
9017 	struct hlist_head *devhash;
9018 	unsigned int seq;
9019 	u32 last_id_allocated;
9020 	struct blocking_notifier_head notifier_chain;
9021 };
9022 
9023 struct inet_hashinfo;
9024 
9025 struct inet_timewait_death_row {
9026 	refcount_t tw_refcount;
9027 	long: 32;
9028 	long: 64;
9029 	long: 64;
9030 	long: 64;
9031 	long: 64;
9032 	long: 64;
9033 	long: 64;
9034 	long: 64;
9035 	struct inet_hashinfo *hashinfo;
9036 	int sysctl_max_tw_buckets;
9037 	long: 32;
9038 	long: 64;
9039 	long: 64;
9040 	long: 64;
9041 	long: 64;
9042 	long: 64;
9043 	long: 64;
9044 };
9045 
9046 struct local_ports {
9047 	seqlock_t lock;
9048 	int range[2];
9049 	bool warned;
9050 };
9051 
9052 struct ping_group_range {
9053 	seqlock_t lock;
9054 	kgid_t range[2];
9055 };
9056 
9057 typedef struct {
9058 	u64 key[2];
9059 } siphash_key_t;
9060 
9061 struct udp_table;
9062 
9063 struct ipv4_devconf;
9064 
9065 struct ip_ra_chain;
9066 
9067 struct fib_rules_ops;
9068 
9069 struct fib_table;
9070 
9071 struct inet_peer_base;
9072 
9073 struct fqdir;
9074 
9075 struct tcp_congestion_ops;
9076 
9077 struct tcp_fastopen_context;
9078 
9079 struct mr_table;
9080 
9081 struct fib_notifier_ops;
9082 
9083 struct netns_ipv4 {
9084 	struct inet_timewait_death_row tcp_death_row;
9085 	struct udp_table *udp_table;
9086 	struct ctl_table_header *forw_hdr;
9087 	struct ctl_table_header *frags_hdr;
9088 	struct ctl_table_header *ipv4_hdr;
9089 	struct ctl_table_header *route_hdr;
9090 	struct ctl_table_header *xfrm4_hdr;
9091 	struct ipv4_devconf *devconf_all;
9092 	struct ipv4_devconf *devconf_dflt;
9093 	struct ip_ra_chain *ra_chain;
9094 	struct mutex ra_mutex;
9095 	struct fib_rules_ops *rules_ops;
9096 	struct fib_table *fib_main;
9097 	struct fib_table *fib_default;
9098 	unsigned int fib_rules_require_fldissect;
9099 	bool fib_has_custom_rules;
9100 	bool fib_has_custom_local_routes;
9101 	bool fib_offload_disabled;
9102 	atomic_t fib_num_tclassid_users;
9103 	struct hlist_head *fib_table_hash;
9104 	struct sock *fibnl;
9105 	struct sock *mc_autojoin_sk;
9106 	struct inet_peer_base *peers;
9107 	struct fqdir *fqdir;
9108 	u8 sysctl_icmp_echo_ignore_all;
9109 	u8 sysctl_icmp_echo_enable_probe;
9110 	u8 sysctl_icmp_echo_ignore_broadcasts;
9111 	u8 sysctl_icmp_ignore_bogus_error_responses;
9112 	u8 sysctl_icmp_errors_use_inbound_ifaddr;
9113 	int sysctl_icmp_ratelimit;
9114 	int sysctl_icmp_ratemask;
9115 	u32 ip_rt_min_pmtu;
9116 	int ip_rt_mtu_expires;
9117 	int ip_rt_min_advmss;
9118 	struct local_ports ip_local_ports;
9119 	u8 sysctl_tcp_ecn;
9120 	u8 sysctl_tcp_ecn_fallback;
9121 	u8 sysctl_ip_default_ttl;
9122 	u8 sysctl_ip_no_pmtu_disc;
9123 	u8 sysctl_ip_fwd_use_pmtu;
9124 	u8 sysctl_ip_fwd_update_priority;
9125 	u8 sysctl_ip_nonlocal_bind;
9126 	u8 sysctl_ip_autobind_reuse;
9127 	u8 sysctl_ip_dynaddr;
9128 	u8 sysctl_ip_early_demux;
9129 	u8 sysctl_raw_l3mdev_accept;
9130 	u8 sysctl_tcp_early_demux;
9131 	u8 sysctl_udp_early_demux;
9132 	u8 sysctl_nexthop_compat_mode;
9133 	u8 sysctl_fwmark_reflect;
9134 	u8 sysctl_tcp_fwmark_accept;
9135 	u8 sysctl_tcp_l3mdev_accept;
9136 	u8 sysctl_tcp_mtu_probing;
9137 	int sysctl_tcp_mtu_probe_floor;
9138 	int sysctl_tcp_base_mss;
9139 	int sysctl_tcp_min_snd_mss;
9140 	int sysctl_tcp_probe_threshold;
9141 	u32 sysctl_tcp_probe_interval;
9142 	int sysctl_tcp_keepalive_time;
9143 	int sysctl_tcp_keepalive_intvl;
9144 	u8 sysctl_tcp_keepalive_probes;
9145 	u8 sysctl_tcp_syn_retries;
9146 	u8 sysctl_tcp_synack_retries;
9147 	u8 sysctl_tcp_syncookies;
9148 	u8 sysctl_tcp_migrate_req;
9149 	u8 sysctl_tcp_comp_sack_nr;
9150 	int sysctl_tcp_reordering;
9151 	u8 sysctl_tcp_retries1;
9152 	u8 sysctl_tcp_retries2;
9153 	u8 sysctl_tcp_orphan_retries;
9154 	u8 sysctl_tcp_tw_reuse;
9155 	int sysctl_tcp_fin_timeout;
9156 	unsigned int sysctl_tcp_notsent_lowat;
9157 	u8 sysctl_tcp_sack;
9158 	u8 sysctl_tcp_window_scaling;
9159 	u8 sysctl_tcp_timestamps;
9160 	u8 sysctl_tcp_early_retrans;
9161 	u8 sysctl_tcp_recovery;
9162 	u8 sysctl_tcp_thin_linear_timeouts;
9163 	u8 sysctl_tcp_slow_start_after_idle;
9164 	u8 sysctl_tcp_retrans_collapse;
9165 	u8 sysctl_tcp_stdurg;
9166 	u8 sysctl_tcp_rfc1337;
9167 	u8 sysctl_tcp_abort_on_overflow;
9168 	u8 sysctl_tcp_fack;
9169 	int sysctl_tcp_max_reordering;
9170 	int sysctl_tcp_adv_win_scale;
9171 	u8 sysctl_tcp_dsack;
9172 	u8 sysctl_tcp_app_win;
9173 	u8 sysctl_tcp_frto;
9174 	u8 sysctl_tcp_nometrics_save;
9175 	u8 sysctl_tcp_no_ssthresh_metrics_save;
9176 	u8 sysctl_tcp_moderate_rcvbuf;
9177 	u8 sysctl_tcp_tso_win_divisor;
9178 	u8 sysctl_tcp_workaround_signed_windows;
9179 	int sysctl_tcp_limit_output_bytes;
9180 	int sysctl_tcp_challenge_ack_limit;
9181 	int sysctl_tcp_min_rtt_wlen;
9182 	u8 sysctl_tcp_min_tso_segs;
9183 	u8 sysctl_tcp_tso_rtt_log;
9184 	u8 sysctl_tcp_autocorking;
9185 	u8 sysctl_tcp_reflect_tos;
9186 	int sysctl_tcp_invalid_ratelimit;
9187 	int sysctl_tcp_pacing_ss_ratio;
9188 	int sysctl_tcp_pacing_ca_ratio;
9189 	int sysctl_tcp_wmem[3];
9190 	int sysctl_tcp_rmem[3];
9191 	unsigned int sysctl_tcp_child_ehash_entries;
9192 	long unsigned int sysctl_tcp_comp_sack_delay_ns;
9193 	long unsigned int sysctl_tcp_comp_sack_slack_ns;
9194 	int sysctl_max_syn_backlog;
9195 	int sysctl_tcp_fastopen;
9196 	const struct tcp_congestion_ops *tcp_congestion_control;
9197 	struct tcp_fastopen_context *tcp_fastopen_ctx;
9198 	unsigned int sysctl_tcp_fastopen_blackhole_timeout;
9199 	atomic_t tfo_active_disable_times;
9200 	long unsigned int tfo_active_disable_stamp;
9201 	u32 tcp_challenge_timestamp;
9202 	u32 tcp_challenge_count;
9203 	u8 sysctl_tcp_plb_enabled;
9204 	u8 sysctl_tcp_plb_idle_rehash_rounds;
9205 	u8 sysctl_tcp_plb_rehash_rounds;
9206 	u8 sysctl_tcp_plb_suspend_rto_sec;
9207 	int sysctl_tcp_plb_cong_thresh;
9208 	int sysctl_udp_wmem_min;
9209 	int sysctl_udp_rmem_min;
9210 	u8 sysctl_fib_notify_on_flag_change;
9211 	u8 sysctl_udp_l3mdev_accept;
9212 	u8 sysctl_igmp_llm_reports;
9213 	int sysctl_igmp_max_memberships;
9214 	int sysctl_igmp_max_msf;
9215 	int sysctl_igmp_qrv;
9216 	struct ping_group_range ping_group_range;
9217 	atomic_t dev_addr_genid;
9218 	unsigned int sysctl_udp_child_hash_entries;
9219 	long unsigned int *sysctl_local_reserved_ports;
9220 	int sysctl_ip_prot_sock;
9221 	struct mr_table *mrt;
9222 	u32 sysctl_fib_multipath_hash_fields;
9223 	u8 sysctl_fib_multipath_use_neigh;
9224 	u8 sysctl_fib_multipath_hash_policy;
9225 	struct fib_notifier_ops *notifier_ops;
9226 	unsigned int fib_seq;
9227 	struct fib_notifier_ops *ipmr_notifier_ops;
9228 	unsigned int ipmr_seq;
9229 	atomic_t rt_genid;
9230 	siphash_key_t ip_id_key;
9231 	long: 64;
9232 	long: 64;
9233 	long: 64;
9234 	long: 64;
9235 	long: 64;
9236 	long: 64;
9237 };
9238 
9239 struct dst_entry;
9240 
9241 struct net_device;
9242 
9243 struct sk_buff;
9244 
9245 struct neighbour;
9246 
9247 struct dst_ops {
9248 	short unsigned int family;
9249 	unsigned int gc_thresh;
9250 	int (*gc)(struct dst_ops *);
9251 	struct dst_entry * (*check)(struct dst_entry *, __u32);
9252 	unsigned int (*default_advmss)(const struct dst_entry *);
9253 	unsigned int (*mtu)(const struct dst_entry *);
9254 	u32 * (*cow_metrics)(struct dst_entry *, long unsigned int);
9255 	void (*destroy)(struct dst_entry *);
9256 	void (*ifdown)(struct dst_entry *, struct net_device *, int);
9257 	struct dst_entry * (*negative_advice)(struct dst_entry *);
9258 	void (*link_failure)(struct sk_buff *);
9259 	void (*update_pmtu)(struct dst_entry *, struct sock *, struct sk_buff *, u32, bool);
9260 	void (*redirect)(struct dst_entry *, struct sock *, struct sk_buff *);
9261 	int (*local_out)(struct net *, struct sock *, struct sk_buff *);
9262 	struct neighbour * (*neigh_lookup)(const struct dst_entry *, struct sk_buff *, const void *);
9263 	void (*confirm_neigh)(const struct dst_entry *, const void *);
9264 	struct kmem_cache *kmem_cachep;
9265 	struct percpu_counter pcpuc_entries;
9266 	long: 64;
9267 	long: 64;
9268 	long: 64;
9269 };
9270 
9271 struct netns_sysctl_ipv6 {
9272 	struct ctl_table_header *hdr;
9273 	struct ctl_table_header *route_hdr;
9274 	struct ctl_table_header *icmp_hdr;
9275 	struct ctl_table_header *frags_hdr;
9276 	struct ctl_table_header *xfrm6_hdr;
9277 	int flush_delay;
9278 	int ip6_rt_max_size;
9279 	int ip6_rt_gc_min_interval;
9280 	int ip6_rt_gc_timeout;
9281 	int ip6_rt_gc_interval;
9282 	int ip6_rt_gc_elasticity;
9283 	int ip6_rt_mtu_expires;
9284 	int ip6_rt_min_advmss;
9285 	u32 multipath_hash_fields;
9286 	u8 multipath_hash_policy;
9287 	u8 bindv6only;
9288 	u8 flowlabel_consistency;
9289 	u8 auto_flowlabels;
9290 	int icmpv6_time;
9291 	u8 icmpv6_echo_ignore_all;
9292 	u8 icmpv6_echo_ignore_multicast;
9293 	u8 icmpv6_echo_ignore_anycast;
9294 	long unsigned int icmpv6_ratemask[4];
9295 	long unsigned int *icmpv6_ratemask_ptr;
9296 	u8 anycast_src_echo_reply;
9297 	u8 ip_nonlocal_bind;
9298 	u8 fwmark_reflect;
9299 	u8 flowlabel_state_ranges;
9300 	int idgen_retries;
9301 	int idgen_delay;
9302 	int flowlabel_reflect;
9303 	int max_dst_opts_cnt;
9304 	int max_hbh_opts_cnt;
9305 	int max_dst_opts_len;
9306 	int max_hbh_opts_len;
9307 	int seg6_flowlabel;
9308 	u32 ioam6_id;
9309 	u64 ioam6_id_wide;
9310 	bool skip_notify_on_dev_down;
9311 	u8 fib_notify_on_flag_change;
9312 };
9313 
9314 struct ipv6_devconf;
9315 
9316 struct fib6_info;
9317 
9318 struct rt6_info;
9319 
9320 struct rt6_statistics;
9321 
9322 struct fib6_table;
9323 
9324 struct seg6_pernet_data;
9325 
9326 struct ioam6_pernet_data;
9327 
9328 struct netns_ipv6 {
9329 	struct dst_ops ip6_dst_ops;
9330 	struct netns_sysctl_ipv6 sysctl;
9331 	struct ipv6_devconf *devconf_all;
9332 	struct ipv6_devconf *devconf_dflt;
9333 	struct inet_peer_base *peers;
9334 	struct fqdir *fqdir;
9335 	struct fib6_info *fib6_null_entry;
9336 	struct rt6_info *ip6_null_entry;
9337 	struct rt6_statistics *rt6_stats;
9338 	struct timer_list ip6_fib_timer;
9339 	struct hlist_head *fib_table_hash;
9340 	struct fib6_table *fib6_main_tbl;
9341 	struct list_head fib6_walkers;
9342 	rwlock_t fib6_walker_lock;
9343 	spinlock_t fib6_gc_lock;
9344 	atomic_t ip6_rt_gc_expire;
9345 	long unsigned int ip6_rt_last_gc;
9346 	unsigned char flowlabel_has_excl;
9347 	bool fib6_has_custom_rules;
9348 	unsigned int fib6_rules_require_fldissect;
9349 	unsigned int fib6_routes_require_src;
9350 	struct rt6_info *ip6_prohibit_entry;
9351 	struct rt6_info *ip6_blk_hole_entry;
9352 	struct fib6_table *fib6_local_tbl;
9353 	struct fib_rules_ops *fib6_rules_ops;
9354 	struct sock *ndisc_sk;
9355 	struct sock *tcp_sk;
9356 	struct sock *igmp_sk;
9357 	struct sock *mc_autojoin_sk;
9358 	struct hlist_head *inet6_addr_lst;
9359 	spinlock_t addrconf_hash_lock;
9360 	struct delayed_work addr_chk_work;
9361 	struct list_head mr6_tables;
9362 	struct fib_rules_ops *mr6_rules_ops;
9363 	atomic_t dev_addr_genid;
9364 	atomic_t fib6_sernum;
9365 	struct seg6_pernet_data *seg6_data;
9366 	struct fib_notifier_ops *notifier_ops;
9367 	struct fib_notifier_ops *ip6mr_notifier_ops;
9368 	unsigned int ipmr_seq;
9369 	struct {
9370 		struct hlist_head head;
9371 		spinlock_t lock;
9372 		u32 seq;
9373 	} ip6addrlbl_table;
9374 	struct ioam6_pernet_data *ioam6_data;
9375 	long: 64;
9376 	long: 64;
9377 	long: 64;
9378 	long: 64;
9379 };
9380 
9381 struct sctp_mib;
9382 
9383 struct netns_sctp {
9384 	struct sctp_mib *sctp_statistics;
9385 	struct proc_dir_entry *proc_net_sctp;
9386 	struct ctl_table_header *sysctl_header;
9387 	struct sock *ctl_sock;
9388 	struct sock *udp4_sock;
9389 	struct sock *udp6_sock;
9390 	int udp_port;
9391 	int encap_port;
9392 	struct list_head local_addr_list;
9393 	struct list_head addr_waitq;
9394 	struct timer_list addr_wq_timer;
9395 	struct list_head auto_asconf_splist;
9396 	spinlock_t addr_wq_lock;
9397 	spinlock_t local_addr_lock;
9398 	unsigned int rto_initial;
9399 	unsigned int rto_min;
9400 	unsigned int rto_max;
9401 	int rto_alpha;
9402 	int rto_beta;
9403 	int max_burst;
9404 	int cookie_preserve_enable;
9405 	char *sctp_hmac_alg;
9406 	unsigned int valid_cookie_life;
9407 	unsigned int sack_timeout;
9408 	unsigned int hb_interval;
9409 	unsigned int probe_interval;
9410 	int max_retrans_association;
9411 	int max_retrans_path;
9412 	int max_retrans_init;
9413 	int pf_retrans;
9414 	int ps_retrans;
9415 	int pf_enable;
9416 	int pf_expose;
9417 	int sndbuf_policy;
9418 	int rcvbuf_policy;
9419 	int default_auto_asconf;
9420 	int addip_enable;
9421 	int addip_noauth;
9422 	int prsctp_enable;
9423 	int reconf_enable;
9424 	int auth_enable;
9425 	int intl_enable;
9426 	int ecn_enable;
9427 	int scope_policy;
9428 	int rwnd_upd_shift;
9429 	long unsigned int max_autoclose;
9430 	int l3mdev_accept;
9431 };
9432 
9433 struct nf_logger;
9434 
9435 struct nf_hook_entries;
9436 
9437 struct netns_nf {
9438 	struct proc_dir_entry *proc_netfilter;
9439 	const struct nf_logger *nf_loggers[11];
9440 	struct ctl_table_header *nf_log_dir_header;
9441 	struct nf_hook_entries *hooks_ipv4[5];
9442 	struct nf_hook_entries *hooks_ipv6[5];
9443 	struct nf_hook_entries *hooks_arp[3];
9444 	struct nf_hook_entries *hooks_bridge[5];
9445 	unsigned int defrag_ipv4_users;
9446 	unsigned int defrag_ipv6_users;
9447 };
9448 
9449 struct nf_ct_event_notifier;
9450 
9451 struct nf_generic_net {
9452 	unsigned int timeout;
9453 };
9454 
9455 struct nf_tcp_net {
9456 	unsigned int timeouts[14];
9457 	u8 tcp_loose;
9458 	u8 tcp_be_liberal;
9459 	u8 tcp_max_retrans;
9460 	u8 tcp_ignore_invalid_rst;
9461 };
9462 
9463 struct nf_udp_net {
9464 	unsigned int timeouts[2];
9465 };
9466 
9467 struct nf_icmp_net {
9468 	unsigned int timeout;
9469 };
9470 
9471 struct nf_dccp_net {
9472 	u8 dccp_loose;
9473 	unsigned int dccp_timeout[10];
9474 };
9475 
9476 struct nf_sctp_net {
9477 	unsigned int timeouts[10];
9478 };
9479 
9480 struct nf_gre_net {
9481 	struct list_head keymap_list;
9482 	unsigned int timeouts[2];
9483 };
9484 
9485 struct nf_ip_net {
9486 	struct nf_generic_net generic;
9487 	struct nf_tcp_net tcp;
9488 	struct nf_udp_net udp;
9489 	struct nf_icmp_net icmp;
9490 	struct nf_icmp_net icmpv6;
9491 	struct nf_dccp_net dccp;
9492 	struct nf_sctp_net sctp;
9493 	struct nf_gre_net gre;
9494 };
9495 
9496 struct ip_conntrack_stat;
9497 
9498 struct netns_ct {
9499 	u8 sysctl_log_invalid;
9500 	u8 sysctl_events;
9501 	u8 sysctl_acct;
9502 	u8 sysctl_tstamp;
9503 	u8 sysctl_checksum;
9504 	struct ip_conntrack_stat *stat;
9505 	struct nf_ct_event_notifier *nf_conntrack_event_cb;
9506 	struct nf_ip_net nf_ct_proto;
9507 	unsigned int labels_used;
9508 };
9509 
9510 struct netns_nftables {
9511 	u8 gencursor;
9512 };
9513 
9514 struct sk_buff_list {
9515 	struct sk_buff *next;
9516 	struct sk_buff *prev;
9517 };
9518 
9519 struct sk_buff_head {
9520 	union {
9521 		struct {
9522 			struct sk_buff *next;
9523 			struct sk_buff *prev;
9524 		};
9525 		struct sk_buff_list list;
9526 	};
9527 	__u32 qlen;
9528 	spinlock_t lock;
9529 };
9530 
9531 struct netns_bpf {
9532 	struct bpf_prog_array *run_array[2];
9533 	struct bpf_prog *progs[2];
9534 	struct list_head links[2];
9535 };
9536 
9537 struct xfrm_policy_hash {
9538 	struct hlist_head *table;
9539 	unsigned int hmask;
9540 	u8 dbits4;
9541 	u8 sbits4;
9542 	u8 dbits6;
9543 	u8 sbits6;
9544 };
9545 
9546 struct xfrm_policy_hthresh {
9547 	struct work_struct work;
9548 	seqlock_t lock;
9549 	u8 lbits4;
9550 	u8 rbits4;
9551 	u8 lbits6;
9552 	u8 rbits6;
9553 };
9554 
9555 struct netns_xfrm {
9556 	struct list_head state_all;
9557 	struct hlist_head *state_bydst;
9558 	struct hlist_head *state_bysrc;
9559 	struct hlist_head *state_byspi;
9560 	struct hlist_head *state_byseq;
9561 	unsigned int state_hmask;
9562 	unsigned int state_num;
9563 	struct work_struct state_hash_work;
9564 	struct list_head policy_all;
9565 	struct hlist_head *policy_byidx;
9566 	unsigned int policy_idx_hmask;
9567 	struct hlist_head policy_inexact[3];
9568 	struct xfrm_policy_hash policy_bydst[3];
9569 	unsigned int policy_count[6];
9570 	struct work_struct policy_hash_work;
9571 	struct xfrm_policy_hthresh policy_hthresh;
9572 	struct list_head inexact_bins;
9573 	struct sock *nlsk;
9574 	struct sock *nlsk_stash;
9575 	u32 sysctl_aevent_etime;
9576 	u32 sysctl_aevent_rseqth;
9577 	int sysctl_larval_drop;
9578 	u32 sysctl_acq_expires;
9579 	u8 policy_default[3];
9580 	struct ctl_table_header *sysctl_hdr;
9581 	long: 64;
9582 	long: 64;
9583 	long: 64;
9584 	struct dst_ops xfrm4_dst_ops;
9585 	struct dst_ops xfrm6_dst_ops;
9586 	spinlock_t xfrm_state_lock;
9587 	seqcount_spinlock_t xfrm_state_hash_generation;
9588 	seqcount_spinlock_t xfrm_policy_hash_generation;
9589 	spinlock_t xfrm_policy_lock;
9590 	struct mutex xfrm_cfg_mutex;
9591 	long: 64;
9592 	long: 64;
9593 };
9594 
9595 struct netns_ipvs;
9596 
9597 struct mpls_route;
9598 
9599 struct netns_mpls {
9600 	int ip_ttl_propagate;
9601 	int default_ttl;
9602 	size_t platform_labels;
9603 	struct mpls_route **platform_label;
9604 	struct ctl_table_header *ctl;
9605 };
9606 
9607 struct netns_xdp {
9608 	struct mutex lock;
9609 	struct hlist_head list;
9610 };
9611 
9612 struct uevent_sock;
9613 
9614 struct net_generic;
9615 
9616 struct net {
9617 	refcount_t passive;
9618 	spinlock_t rules_mod_lock;
9619 	atomic_t dev_unreg_count;
9620 	unsigned int dev_base_seq;
9621 	int ifindex;
9622 	spinlock_t nsid_lock;
9623 	atomic_t fnhe_genid;
9624 	struct list_head list;
9625 	struct list_head exit_list;
9626 	struct llist_node cleanup_list;
9627 	struct key_tag *key_domain;
9628 	struct user_namespace *user_ns;
9629 	struct ucounts *ucounts;
9630 	struct idr netns_ids;
9631 	struct ns_common ns;
9632 	struct ref_tracker_dir refcnt_tracker;
9633 	struct ref_tracker_dir notrefcnt_tracker;
9634 	struct list_head dev_base_head;
9635 	struct proc_dir_entry *proc_net;
9636 	struct proc_dir_entry *proc_net_stat;
9637 	struct ctl_table_set sysctls;
9638 	struct sock *rtnl;
9639 	struct sock *genl_sock;
9640 	struct uevent_sock *uevent_sock;
9641 	struct hlist_head *dev_name_head;
9642 	struct hlist_head *dev_index_head;
9643 	struct raw_notifier_head netdev_chain;
9644 	u32 hash_mix;
9645 	struct net_device *loopback_dev;
9646 	struct list_head rules_ops;
9647 	struct netns_core core;
9648 	struct netns_mib mib;
9649 	struct netns_packet packet;
9650 	struct netns_unix unx;
9651 	struct netns_nexthop nexthop;
9652 	long: 64;
9653 	struct netns_ipv4 ipv4;
9654 	struct netns_ipv6 ipv6;
9655 	struct netns_sctp sctp;
9656 	struct netns_nf nf;
9657 	struct netns_ct ct;
9658 	struct netns_nftables nft;
9659 	struct sk_buff_head wext_nlevents;
9660 	struct net_generic *gen;
9661 	struct netns_bpf bpf;
9662 	long: 64;
9663 	struct netns_xfrm xfrm;
9664 	u64 net_cookie;
9665 	struct netns_ipvs *ipvs;
9666 	struct netns_mpls mpls;
9667 	struct netns_xdp xdp;
9668 	struct sock *crypto_nlsk;
9669 	struct sock *diag_nlsk;
9670 	long: 64;
9671 	long: 64;
9672 	long: 64;
9673 };
9674 
9675 struct bpf_cgroup_storage;
9676 
9677 struct bpf_prog_array_item {
9678 	struct bpf_prog *prog;
9679 	union {
9680 		struct bpf_cgroup_storage *cgroup_storage[2];
9681 		u64 bpf_cookie;
9682 	};
9683 };
9684 
9685 struct bpf_prog_array {
9686 	struct callback_head rcu;
9687 	struct bpf_prog_array_item items[0];
9688 };
9689 
9690 typedef struct poll_table_struct poll_table;
9691 
9692 struct ring_buffer_event {
9693 	u32 type_len: 5;
9694 	u32 time_delta: 27;
9695 	u32 array[0];
9696 };
9697 
9698 enum perf_branch_sample_type_shift {
9699 	PERF_SAMPLE_BRANCH_USER_SHIFT = 0,
9700 	PERF_SAMPLE_BRANCH_KERNEL_SHIFT = 1,
9701 	PERF_SAMPLE_BRANCH_HV_SHIFT = 2,
9702 	PERF_SAMPLE_BRANCH_ANY_SHIFT = 3,
9703 	PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT = 4,
9704 	PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT = 5,
9705 	PERF_SAMPLE_BRANCH_IND_CALL_SHIFT = 6,
9706 	PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT = 7,
9707 	PERF_SAMPLE_BRANCH_IN_TX_SHIFT = 8,
9708 	PERF_SAMPLE_BRANCH_NO_TX_SHIFT = 9,
9709 	PERF_SAMPLE_BRANCH_COND_SHIFT = 10,
9710 	PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT = 11,
9711 	PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT = 12,
9712 	PERF_SAMPLE_BRANCH_CALL_SHIFT = 13,
9713 	PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 14,
9714 	PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 15,
9715 	PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 16,
9716 	PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 17,
9717 	PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT = 18,
9718 	PERF_SAMPLE_BRANCH_MAX_SHIFT = 19,
9719 };
9720 
9721 enum bpf_prog_type {
9722 	BPF_PROG_TYPE_UNSPEC = 0,
9723 	BPF_PROG_TYPE_SOCKET_FILTER = 1,
9724 	BPF_PROG_TYPE_KPROBE = 2,
9725 	BPF_PROG_TYPE_SCHED_CLS = 3,
9726 	BPF_PROG_TYPE_SCHED_ACT = 4,
9727 	BPF_PROG_TYPE_TRACEPOINT = 5,
9728 	BPF_PROG_TYPE_XDP = 6,
9729 	BPF_PROG_TYPE_PERF_EVENT = 7,
9730 	BPF_PROG_TYPE_CGROUP_SKB = 8,
9731 	BPF_PROG_TYPE_CGROUP_SOCK = 9,
9732 	BPF_PROG_TYPE_LWT_IN = 10,
9733 	BPF_PROG_TYPE_LWT_OUT = 11,
9734 	BPF_PROG_TYPE_LWT_XMIT = 12,
9735 	BPF_PROG_TYPE_SOCK_OPS = 13,
9736 	BPF_PROG_TYPE_SK_SKB = 14,
9737 	BPF_PROG_TYPE_CGROUP_DEVICE = 15,
9738 	BPF_PROG_TYPE_SK_MSG = 16,
9739 	BPF_PROG_TYPE_RAW_TRACEPOINT = 17,
9740 	BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 18,
9741 	BPF_PROG_TYPE_LWT_SEG6LOCAL = 19,
9742 	BPF_PROG_TYPE_LIRC_MODE2 = 20,
9743 	BPF_PROG_TYPE_SK_REUSEPORT = 21,
9744 	BPF_PROG_TYPE_FLOW_DISSECTOR = 22,
9745 	BPF_PROG_TYPE_CGROUP_SYSCTL = 23,
9746 	BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 24,
9747 	BPF_PROG_TYPE_CGROUP_SOCKOPT = 25,
9748 	BPF_PROG_TYPE_TRACING = 26,
9749 	BPF_PROG_TYPE_STRUCT_OPS = 27,
9750 	BPF_PROG_TYPE_EXT = 28,
9751 	BPF_PROG_TYPE_LSM = 29,
9752 	BPF_PROG_TYPE_SK_LOOKUP = 30,
9753 	BPF_PROG_TYPE_SYSCALL = 31,
9754 };
9755 
9756 enum bpf_attach_type {
9757 	BPF_CGROUP_INET_INGRESS = 0,
9758 	BPF_CGROUP_INET_EGRESS = 1,
9759 	BPF_CGROUP_INET_SOCK_CREATE = 2,
9760 	BPF_CGROUP_SOCK_OPS = 3,
9761 	BPF_SK_SKB_STREAM_PARSER = 4,
9762 	BPF_SK_SKB_STREAM_VERDICT = 5,
9763 	BPF_CGROUP_DEVICE = 6,
9764 	BPF_SK_MSG_VERDICT = 7,
9765 	BPF_CGROUP_INET4_BIND = 8,
9766 	BPF_CGROUP_INET6_BIND = 9,
9767 	BPF_CGROUP_INET4_CONNECT = 10,
9768 	BPF_CGROUP_INET6_CONNECT = 11,
9769 	BPF_CGROUP_INET4_POST_BIND = 12,
9770 	BPF_CGROUP_INET6_POST_BIND = 13,
9771 	BPF_CGROUP_UDP4_SENDMSG = 14,
9772 	BPF_CGROUP_UDP6_SENDMSG = 15,
9773 	BPF_LIRC_MODE2 = 16,
9774 	BPF_FLOW_DISSECTOR = 17,
9775 	BPF_CGROUP_SYSCTL = 18,
9776 	BPF_CGROUP_UDP4_RECVMSG = 19,
9777 	BPF_CGROUP_UDP6_RECVMSG = 20,
9778 	BPF_CGROUP_GETSOCKOPT = 21,
9779 	BPF_CGROUP_SETSOCKOPT = 22,
9780 	BPF_TRACE_RAW_TP = 23,
9781 	BPF_TRACE_FENTRY = 24,
9782 	BPF_TRACE_FEXIT = 25,
9783 	BPF_MODIFY_RETURN = 26,
9784 	BPF_LSM_MAC = 27,
9785 	BPF_TRACE_ITER = 28,
9786 	BPF_CGROUP_INET4_GETPEERNAME = 29,
9787 	BPF_CGROUP_INET6_GETPEERNAME = 30,
9788 	BPF_CGROUP_INET4_GETSOCKNAME = 31,
9789 	BPF_CGROUP_INET6_GETSOCKNAME = 32,
9790 	BPF_XDP_DEVMAP = 33,
9791 	BPF_CGROUP_INET_SOCK_RELEASE = 34,
9792 	BPF_XDP_CPUMAP = 35,
9793 	BPF_SK_LOOKUP = 36,
9794 	BPF_XDP = 37,
9795 	BPF_SK_SKB_VERDICT = 38,
9796 	BPF_SK_REUSEPORT_SELECT = 39,
9797 	BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40,
9798 	BPF_PERF_EVENT = 41,
9799 	BPF_TRACE_KPROBE_MULTI = 42,
9800 	BPF_LSM_CGROUP = 43,
9801 	__MAX_BPF_ATTACH_TYPE = 44,
9802 };
9803 
9804 struct sock_filter {
9805 	__u16 code;
9806 	__u8 jt;
9807 	__u8 jf;
9808 	__u32 k;
9809 };
9810 
9811 struct bpf_insn {
9812 	__u8 code;
9813 	__u8 dst_reg: 4;
9814 	__u8 src_reg: 4;
9815 	__s16 off;
9816 	__s32 imm;
9817 };
9818 
9819 struct bpf_prog_stats;
9820 
9821 struct bpf_prog_aux;
9822 
9823 struct sock_fprog_kern;
9824 
9825 struct bpf_prog {
9826 	u16 pages;
9827 	u16 jited: 1;
9828 	u16 jit_requested: 1;
9829 	u16 gpl_compatible: 1;
9830 	u16 cb_access: 1;
9831 	u16 dst_needed: 1;
9832 	u16 blinding_requested: 1;
9833 	u16 blinded: 1;
9834 	u16 is_func: 1;
9835 	u16 kprobe_override: 1;
9836 	u16 has_callchain_buf: 1;
9837 	u16 enforce_expected_attach_type: 1;
9838 	u16 call_get_stack: 1;
9839 	u16 call_get_func_ip: 1;
9840 	u16 tstamp_type_access: 1;
9841 	enum bpf_prog_type type;
9842 	enum bpf_attach_type expected_attach_type;
9843 	u32 len;
9844 	u32 jited_len;
9845 	u8 tag[8];
9846 	struct bpf_prog_stats *stats;
9847 	int *active;
9848 	unsigned int (*bpf_func)(const void *, const struct bpf_insn *);
9849 	struct bpf_prog_aux *aux;
9850 	struct sock_fprog_kern *orig_prog;
9851 	union {
9852 		struct {
9853 			struct {			} __empty_insns;
9854 			struct sock_filter insns[0];
9855 		};
9856 		struct {
9857 			struct {			} __empty_insnsi;
9858 			struct bpf_insn insnsi[0];
9859 		};
9860 	};
9861 };
9862 
9863 struct trace_buffer;
9864 
9865 struct trace_event_file;
9866 
9867 struct trace_event_buffer {
9868 	struct trace_buffer *buffer;
9869 	struct ring_buffer_event *event;
9870 	struct trace_event_file *trace_file;
9871 	void *entry;
9872 	unsigned int trace_ctx;
9873 	struct pt_regs *regs;
9874 };
9875 
9876 struct trace_subsystem_dir;
9877 
9878 struct trace_event_file {
9879 	struct list_head list;
9880 	struct trace_event_call *event_call;
9881 	struct event_filter *filter;
9882 	struct dentry *dir;
9883 	struct trace_array *tr;
9884 	struct trace_subsystem_dir *system;
9885 	struct list_head triggers;
9886 	long unsigned int flags;
9887 	atomic_t sm_ref;
9888 	atomic_t tm_ref;
9889 };
9890 
9891 enum {
9892 	TRACE_EVENT_FL_FILTERED = 1,
9893 	TRACE_EVENT_FL_CAP_ANY = 2,
9894 	TRACE_EVENT_FL_NO_SET_FILTER = 4,
9895 	TRACE_EVENT_FL_IGNORE_ENABLE = 8,
9896 	TRACE_EVENT_FL_TRACEPOINT = 16,
9897 	TRACE_EVENT_FL_DYNAMIC = 32,
9898 	TRACE_EVENT_FL_KPROBE = 64,
9899 	TRACE_EVENT_FL_UPROBE = 128,
9900 	TRACE_EVENT_FL_EPROBE = 256,
9901 	TRACE_EVENT_FL_CUSTOM = 512,
9902 };
9903 
9904 enum {
9905 	EVENT_FILE_FL_ENABLED = 1,
9906 	EVENT_FILE_FL_RECORDED_CMD = 2,
9907 	EVENT_FILE_FL_RECORDED_TGID = 4,
9908 	EVENT_FILE_FL_FILTERED = 8,
9909 	EVENT_FILE_FL_NO_SET_FILTER = 16,
9910 	EVENT_FILE_FL_SOFT_MODE = 32,
9911 	EVENT_FILE_FL_SOFT_DISABLED = 64,
9912 	EVENT_FILE_FL_TRIGGER_MODE = 128,
9913 	EVENT_FILE_FL_TRIGGER_COND = 256,
9914 	EVENT_FILE_FL_PID_FILTER = 512,
9915 	EVENT_FILE_FL_WAS_ENABLED = 1024,
9916 };
9917 
9918 enum {
9919 	FILTER_OTHER = 0,
9920 	FILTER_STATIC_STRING = 1,
9921 	FILTER_DYN_STRING = 2,
9922 	FILTER_RDYN_STRING = 3,
9923 	FILTER_PTR_STRING = 4,
9924 	FILTER_TRACE_FN = 5,
9925 	FILTER_COMM = 6,
9926 	FILTER_CPU = 7,
9927 };
9928 
9929 struct syscall_metadata {
9930 	const char *name;
9931 	int syscall_nr;
9932 	int nb_args;
9933 	const char **types;
9934 	const char **args;
9935 	struct list_head enter_fields;
9936 	struct trace_event_call *enter_event;
9937 	struct trace_event_call *exit_event;
9938 };
9939 
9940 enum {
9941 	FUTEX_STATE_OK = 0,
9942 	FUTEX_STATE_EXITING = 1,
9943 	FUTEX_STATE_DEAD = 2,
9944 };
9945 
9946 typedef unsigned int sk_buff_data_t;
9947 
9948 struct skb_ext;
9949 
9950 struct sk_buff {
9951 	union {
9952 		struct {
9953 			struct sk_buff *next;
9954 			struct sk_buff *prev;
9955 			union {
9956 				struct net_device *dev;
9957 				long unsigned int dev_scratch;
9958 			};
9959 		};
9960 		struct rb_node rbnode;
9961 		struct list_head list;
9962 		struct llist_node ll_node;
9963 	};
9964 	union {
9965 		struct sock *sk;
9966 		int ip_defrag_offset;
9967 	};
9968 	union {
9969 		ktime_t tstamp;
9970 		u64 skb_mstamp_ns;
9971 	};
9972 	char cb[48];
9973 	union {
9974 		struct {
9975 			long unsigned int _skb_refdst;
9976 			void (*destructor)(struct sk_buff *);
9977 		};
9978 		struct list_head tcp_tsorted_anchor;
9979 		long unsigned int _sk_redir;
9980 	};
9981 	long unsigned int _nfct;
9982 	unsigned int len;
9983 	unsigned int data_len;
9984 	__u16 mac_len;
9985 	__u16 hdr_len;
9986 	__u16 queue_mapping;
9987 	__u8 __cloned_offset[0];
9988 	__u8 cloned: 1;
9989 	__u8 nohdr: 1;
9990 	__u8 fclone: 2;
9991 	__u8 peeked: 1;
9992 	__u8 head_frag: 1;
9993 	__u8 pfmemalloc: 1;
9994 	__u8 pp_recycle: 1;
9995 	__u8 active_extensions;
9996 	union {
9997 		struct {
9998 			__u8 __pkt_type_offset[0];
9999 			__u8 pkt_type: 3;
10000 			__u8 ignore_df: 1;
10001 			__u8 nf_trace: 1;
10002 			__u8 ip_summed: 2;
10003 			__u8 ooo_okay: 1;
10004 			__u8 l4_hash: 1;
10005 			__u8 sw_hash: 1;
10006 			__u8 wifi_acked_valid: 1;
10007 			__u8 wifi_acked: 1;
10008 			__u8 no_fcs: 1;
10009 			__u8 encapsulation: 1;
10010 			__u8 encap_hdr_csum: 1;
10011 			__u8 csum_valid: 1;
10012 			__u8 __pkt_vlan_present_offset[0];
10013 			__u8 remcsum_offload: 1;
10014 			__u8 csum_complete_sw: 1;
10015 			__u8 csum_level: 2;
10016 			__u8 dst_pending_confirm: 1;
10017 			__u8 mono_delivery_time: 1;
10018 			__u8 tc_skip_classify: 1;
10019 			__u8 tc_at_ingress: 1;
10020 			__u8 ndisc_nodetype: 2;
10021 			__u8 ipvs_property: 1;
10022 			__u8 inner_protocol_type: 1;
10023 			__u8 redirected: 1;
10024 			__u8 from_ingress: 1;
10025 			__u8 nf_skip_egress: 1;
10026 			__u8 decrypted: 1;
10027 			__u8 slow_gro: 1;
10028 			__u8 csum_not_inet: 1;
10029 			__u8 scm_io_uring: 1;
10030 			__u16 tc_index;
10031 			union {
10032 				__wsum csum;
10033 				struct {
10034 					__u16 csum_start;
10035 					__u16 csum_offset;
10036 				};
10037 			};
10038 			__u32 priority;
10039 			int skb_iif;
10040 			__u32 hash;
10041 			union {
10042 				u32 vlan_all;
10043 				struct {
10044 					__be16 vlan_proto;
10045 					__u16 vlan_tci;
10046 				};
10047 			};
10048 			union {
10049 				unsigned int napi_id;
10050 				unsigned int sender_cpu;
10051 			};
10052 			u16 alloc_cpu;
10053 			__u32 secmark;
10054 			union {
10055 				__u32 mark;
10056 				__u32 reserved_tailroom;
10057 			};
10058 			union {
10059 				__be16 inner_protocol;
10060 				__u8 inner_ipproto;
10061 			};
10062 			__u16 inner_transport_header;
10063 			__u16 inner_network_header;
10064 			__u16 inner_mac_header;
10065 			__be16 protocol;
10066 			__u16 transport_header;
10067 			__u16 network_header;
10068 			__u16 mac_header;
10069 		};
10070 		struct {
10071 			__u8 __pkt_type_offset[0];
10072 			__u8 pkt_type: 3;
10073 			__u8 ignore_df: 1;
10074 			__u8 nf_trace: 1;
10075 			__u8 ip_summed: 2;
10076 			__u8 ooo_okay: 1;
10077 			__u8 l4_hash: 1;
10078 			__u8 sw_hash: 1;
10079 			__u8 wifi_acked_valid: 1;
10080 			__u8 wifi_acked: 1;
10081 			__u8 no_fcs: 1;
10082 			__u8 encapsulation: 1;
10083 			__u8 encap_hdr_csum: 1;
10084 			__u8 csum_valid: 1;
10085 			__u8 __pkt_vlan_present_offset[0];
10086 			__u8 remcsum_offload: 1;
10087 			__u8 csum_complete_sw: 1;
10088 			__u8 csum_level: 2;
10089 			__u8 dst_pending_confirm: 1;
10090 			__u8 mono_delivery_time: 1;
10091 			__u8 tc_skip_classify: 1;
10092 			__u8 tc_at_ingress: 1;
10093 			__u8 ndisc_nodetype: 2;
10094 			__u8 ipvs_property: 1;
10095 			__u8 inner_protocol_type: 1;
10096 			__u8 redirected: 1;
10097 			__u8 from_ingress: 1;
10098 			__u8 nf_skip_egress: 1;
10099 			__u8 decrypted: 1;
10100 			__u8 slow_gro: 1;
10101 			__u8 csum_not_inet: 1;
10102 			__u8 scm_io_uring: 1;
10103 			__u16 tc_index;
10104 			union {
10105 				__wsum csum;
10106 				struct {
10107 					__u16 csum_start;
10108 					__u16 csum_offset;
10109 				};
10110 			};
10111 			__u32 priority;
10112 			int skb_iif;
10113 			__u32 hash;
10114 			union {
10115 				u32 vlan_all;
10116 				struct {
10117 					__be16 vlan_proto;
10118 					__u16 vlan_tci;
10119 				};
10120 			};
10121 			union {
10122 				unsigned int napi_id;
10123 				unsigned int sender_cpu;
10124 			};
10125 			u16 alloc_cpu;
10126 			__u32 secmark;
10127 			union {
10128 				__u32 mark;
10129 				__u32 reserved_tailroom;
10130 			};
10131 			union {
10132 				__be16 inner_protocol;
10133 				__u8 inner_ipproto;
10134 			};
10135 			__u16 inner_transport_header;
10136 			__u16 inner_network_header;
10137 			__u16 inner_mac_header;
10138 			__be16 protocol;
10139 			__u16 transport_header;
10140 			__u16 network_header;
10141 			__u16 mac_header;
10142 		} headers;
10143 	};
10144 	sk_buff_data_t tail;
10145 	sk_buff_data_t end;
10146 	unsigned char *head;
10147 	unsigned char *data;
10148 	unsigned int truesize;
10149 	refcount_t users;
10150 	struct skb_ext *extensions;
10151 };
10152 
10153 enum audit_ntp_type {
10154 	AUDIT_NTP_OFFSET = 0,
10155 	AUDIT_NTP_FREQ = 1,
10156 	AUDIT_NTP_STATUS = 2,
10157 	AUDIT_NTP_TAI = 3,
10158 	AUDIT_NTP_TICK = 4,
10159 	AUDIT_NTP_ADJUST = 5,
10160 	AUDIT_NTP_NVALS = 6,
10161 };
10162 
10163 enum proc_hidepid {
10164 	HIDEPID_OFF = 0,
10165 	HIDEPID_NO_ACCESS = 1,
10166 	HIDEPID_INVISIBLE = 2,
10167 	HIDEPID_NOT_PTRACEABLE = 4,
10168 };
10169 
10170 enum proc_pidonly {
10171 	PROC_PIDONLY_OFF = 0,
10172 	PROC_PIDONLY_ON = 1,
10173 };
10174 
10175 struct proc_fs_info {
10176 	struct pid_namespace *pid_ns;
10177 	struct dentry *proc_self;
10178 	struct dentry *proc_thread_self;
10179 	kgid_t pid_gid;
10180 	enum proc_hidepid hide_pid;
10181 	enum proc_pidonly pidonly;
10182 };
10183 
10184 struct tty_buffer {
10185 	union {
10186 		struct tty_buffer *next;
10187 		struct llist_node free;
10188 	};
10189 	int used;
10190 	int size;
10191 	int commit;
10192 	int lookahead;
10193 	int read;
10194 	bool flags;
10195 	long unsigned int data[0];
10196 };
10197 
10198 struct tty_bufhead {
10199 	struct tty_buffer *head;
10200 	struct work_struct work;
10201 	struct mutex lock;
10202 	atomic_t priority;
10203 	struct tty_buffer sentinel;
10204 	struct llist_head free;
10205 	atomic_t mem_used;
10206 	int mem_limit;
10207 	struct tty_buffer *tail;
10208 };
10209 
10210 struct serial_icounter_struct;
10211 
10212 struct serial_struct;
10213 
10214 struct tty_operations {
10215 	struct tty_struct * (*lookup)(struct tty_driver *, struct file *, int);
10216 	int (*install)(struct tty_driver *, struct tty_struct *);
10217 	void (*remove)(struct tty_driver *, struct tty_struct *);
10218 	int (*open)(struct tty_struct *, struct file *);
10219 	void (*close)(struct tty_struct *, struct file *);
10220 	void (*shutdown)(struct tty_struct *);
10221 	void (*cleanup)(struct tty_struct *);
10222 	int (*write)(struct tty_struct *, const unsigned char *, int);
10223 	int (*put_char)(struct tty_struct *, unsigned char);
10224 	void (*flush_chars)(struct tty_struct *);
10225 	unsigned int (*write_room)(struct tty_struct *);
10226 	unsigned int (*chars_in_buffer)(struct tty_struct *);
10227 	int (*ioctl)(struct tty_struct *, unsigned int, long unsigned int);
10228 	long int (*compat_ioctl)(struct tty_struct *, unsigned int, long unsigned int);
10229 	void (*set_termios)(struct tty_struct *, const struct ktermios *);
10230 	void (*throttle)(struct tty_struct *);
10231 	void (*unthrottle)(struct tty_struct *);
10232 	void (*stop)(struct tty_struct *);
10233 	void (*start)(struct tty_struct *);
10234 	void (*hangup)(struct tty_struct *);
10235 	int (*break_ctl)(struct tty_struct *, int);
10236 	void (*flush_buffer)(struct tty_struct *);
10237 	void (*set_ldisc)(struct tty_struct *);
10238 	void (*wait_until_sent)(struct tty_struct *, int);
10239 	void (*send_xchar)(struct tty_struct *, char);
10240 	int (*tiocmget)(struct tty_struct *);
10241 	int (*tiocmset)(struct tty_struct *, unsigned int, unsigned int);
10242 	int (*resize)(struct tty_struct *, struct winsize *);
10243 	int (*get_icount)(struct tty_struct *, struct serial_icounter_struct *);
10244 	int (*get_serial)(struct tty_struct *, struct serial_struct *);
10245 	int (*set_serial)(struct tty_struct *, struct serial_struct *);
10246 	void (*show_fdinfo)(struct tty_struct *, struct seq_file *);
10247 	int (*proc_show)(struct seq_file *, void *);
10248 };
10249 
10250 struct tty_driver {
10251 	struct kref kref;
10252 	struct cdev **cdevs;
10253 	struct module *owner;
10254 	const char *driver_name;
10255 	const char *name;
10256 	int name_base;
10257 	int major;
10258 	int minor_start;
10259 	unsigned int num;
10260 	short int type;
10261 	short int subtype;
10262 	struct ktermios init_termios;
10263 	long unsigned int flags;
10264 	struct proc_dir_entry *proc_entry;
10265 	struct tty_driver *other;
10266 	struct tty_struct **ttys;
10267 	struct tty_port **ports;
10268 	struct ktermios **termios;
10269 	void *driver_state;
10270 	const struct tty_operations *ops;
10271 	struct list_head tty_drivers;
10272 };
10273 
10274 struct __kfifo {
10275 	unsigned int in;
10276 	unsigned int out;
10277 	unsigned int mask;
10278 	unsigned int esize;
10279 	void *data;
10280 };
10281 
10282 struct tty_port_operations;
10283 
10284 struct tty_port_client_operations;
10285 
10286 struct tty_port {
10287 	struct tty_bufhead buf;
10288 	struct tty_struct *tty;
10289 	struct tty_struct *itty;
10290 	const struct tty_port_operations *ops;
10291 	const struct tty_port_client_operations *client_ops;
10292 	spinlock_t lock;
10293 	int blocked_open;
10294 	int count;
10295 	wait_queue_head_t open_wait;
10296 	wait_queue_head_t delta_msr_wait;
10297 	long unsigned int flags;
10298 	long unsigned int iflags;
10299 	unsigned char console: 1;
10300 	struct mutex mutex;
10301 	struct mutex buf_mutex;
10302 	unsigned char *xmit_buf;
10303 	struct {
10304 		union {
10305 			struct __kfifo kfifo;
10306 			unsigned char *type;
10307 			const unsigned char *const_type;
10308 			char (*rectype)[0];
10309 			unsigned char *ptr;
10310 			const unsigned char *ptr_const;
10311 		};
10312 		unsigned char buf[0];
10313 	} xmit_fifo;
10314 	unsigned int close_delay;
10315 	unsigned int closing_wait;
10316 	int drain_delay;
10317 	struct kref kref;
10318 	void *client_data;
10319 };
10320 
10321 struct tty_ldisc_ops {
10322 	char *name;
10323 	int num;
10324 	int (*open)(struct tty_struct *);
10325 	void (*close)(struct tty_struct *);
10326 	void (*flush_buffer)(struct tty_struct *);
10327 	ssize_t (*read)(struct tty_struct *, struct file *, unsigned char *, size_t, void **, long unsigned int);
10328 	ssize_t (*write)(struct tty_struct *, struct file *, const unsigned char *, size_t);
10329 	int (*ioctl)(struct tty_struct *, unsigned int, long unsigned int);
10330 	int (*compat_ioctl)(struct tty_struct *, unsigned int, long unsigned int);
10331 	void (*set_termios)(struct tty_struct *, const struct ktermios *);
10332 	__poll_t (*poll)(struct tty_struct *, struct file *, struct poll_table_struct *);
10333 	void (*hangup)(struct tty_struct *);
10334 	void (*receive_buf)(struct tty_struct *, const unsigned char *, const char *, int);
10335 	void (*write_wakeup)(struct tty_struct *);
10336 	void (*dcd_change)(struct tty_struct *, unsigned int);
10337 	int (*receive_buf2)(struct tty_struct *, const unsigned char *, const char *, int);
10338 	void (*lookahead_buf)(struct tty_struct *, const unsigned char *, const unsigned char *, unsigned int);
10339 	struct module *owner;
10340 };
10341 
10342 struct tty_ldisc {
10343 	struct tty_ldisc_ops *ops;
10344 	struct tty_struct *tty;
10345 };
10346 
10347 struct tty_port_operations {
10348 	int (*carrier_raised)(struct tty_port *);
10349 	void (*dtr_rts)(struct tty_port *, int);
10350 	void (*shutdown)(struct tty_port *);
10351 	int (*activate)(struct tty_port *, struct tty_struct *);
10352 	void (*destruct)(struct tty_port *);
10353 };
10354 
10355 struct tty_port_client_operations {
10356 	int (*receive_buf)(struct tty_port *, const unsigned char *, const unsigned char *, size_t);
10357 	void (*lookahead_buf)(struct tty_port *, const unsigned char *, const unsigned char *, unsigned int);
10358 	void (*write_wakeup)(struct tty_port *);
10359 };
10360 
10361 enum bpf_cgroup_iter_order {
10362 	BPF_CGROUP_ITER_ORDER_UNSPEC = 0,
10363 	BPF_CGROUP_ITER_SELF_ONLY = 1,
10364 	BPF_CGROUP_ITER_DESCENDANTS_PRE = 2,
10365 	BPF_CGROUP_ITER_DESCENDANTS_POST = 3,
10366 	BPF_CGROUP_ITER_ANCESTORS_UP = 4,
10367 };
10368 
10369 enum bpf_map_type {
10370 	BPF_MAP_TYPE_UNSPEC = 0,
10371 	BPF_MAP_TYPE_HASH = 1,
10372 	BPF_MAP_TYPE_ARRAY = 2,
10373 	BPF_MAP_TYPE_PROG_ARRAY = 3,
10374 	BPF_MAP_TYPE_PERF_EVENT_ARRAY = 4,
10375 	BPF_MAP_TYPE_PERCPU_HASH = 5,
10376 	BPF_MAP_TYPE_PERCPU_ARRAY = 6,
10377 	BPF_MAP_TYPE_STACK_TRACE = 7,
10378 	BPF_MAP_TYPE_CGROUP_ARRAY = 8,
10379 	BPF_MAP_TYPE_LRU_HASH = 9,
10380 	BPF_MAP_TYPE_LRU_PERCPU_HASH = 10,
10381 	BPF_MAP_TYPE_LPM_TRIE = 11,
10382 	BPF_MAP_TYPE_ARRAY_OF_MAPS = 12,
10383 	BPF_MAP_TYPE_HASH_OF_MAPS = 13,
10384 	BPF_MAP_TYPE_DEVMAP = 14,
10385 	BPF_MAP_TYPE_SOCKMAP = 15,
10386 	BPF_MAP_TYPE_CPUMAP = 16,
10387 	BPF_MAP_TYPE_XSKMAP = 17,
10388 	BPF_MAP_TYPE_SOCKHASH = 18,
10389 	BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED = 19,
10390 	BPF_MAP_TYPE_CGROUP_STORAGE = 19,
10391 	BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20,
10392 	BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 21,
10393 	BPF_MAP_TYPE_QUEUE = 22,
10394 	BPF_MAP_TYPE_STACK = 23,
10395 	BPF_MAP_TYPE_SK_STORAGE = 24,
10396 	BPF_MAP_TYPE_DEVMAP_HASH = 25,
10397 	BPF_MAP_TYPE_STRUCT_OPS = 26,
10398 	BPF_MAP_TYPE_RINGBUF = 27,
10399 	BPF_MAP_TYPE_INODE_STORAGE = 28,
10400 	BPF_MAP_TYPE_TASK_STORAGE = 29,
10401 	BPF_MAP_TYPE_BLOOM_FILTER = 30,
10402 	BPF_MAP_TYPE_USER_RINGBUF = 31,
10403 	BPF_MAP_TYPE_CGRP_STORAGE = 32,
10404 };
10405 
10406 union bpf_attr {
10407 	struct {
10408 		__u32 map_type;
10409 		__u32 key_size;
10410 		__u32 value_size;
10411 		__u32 max_entries;
10412 		__u32 map_flags;
10413 		__u32 inner_map_fd;
10414 		__u32 numa_node;
10415 		char map_name[16];
10416 		__u32 map_ifindex;
10417 		__u32 btf_fd;
10418 		__u32 btf_key_type_id;
10419 		__u32 btf_value_type_id;
10420 		__u32 btf_vmlinux_value_type_id;
10421 		__u64 map_extra;
10422 	};
10423 	struct {
10424 		__u32 map_fd;
10425 		__u64 key;
10426 		union {
10427 			__u64 value;
10428 			__u64 next_key;
10429 		};
10430 		__u64 flags;
10431 	};
10432 	struct {
10433 		__u64 in_batch;
10434 		__u64 out_batch;
10435 		__u64 keys;
10436 		__u64 values;
10437 		__u32 count;
10438 		__u32 map_fd;
10439 		__u64 elem_flags;
10440 		__u64 flags;
10441 	} batch;
10442 	struct {
10443 		__u32 prog_type;
10444 		__u32 insn_cnt;
10445 		__u64 insns;
10446 		__u64 license;
10447 		__u32 log_level;
10448 		__u32 log_size;
10449 		__u64 log_buf;
10450 		__u32 kern_version;
10451 		__u32 prog_flags;
10452 		char prog_name[16];
10453 		__u32 prog_ifindex;
10454 		__u32 expected_attach_type;
10455 		__u32 prog_btf_fd;
10456 		__u32 func_info_rec_size;
10457 		__u64 func_info;
10458 		__u32 func_info_cnt;
10459 		__u32 line_info_rec_size;
10460 		__u64 line_info;
10461 		__u32 line_info_cnt;
10462 		__u32 attach_btf_id;
10463 		union {
10464 			__u32 attach_prog_fd;
10465 			__u32 attach_btf_obj_fd;
10466 		};
10467 		__u32 core_relo_cnt;
10468 		__u64 fd_array;
10469 		__u64 core_relos;
10470 		__u32 core_relo_rec_size;
10471 	};
10472 	struct {
10473 		__u64 pathname;
10474 		__u32 bpf_fd;
10475 		__u32 file_flags;
10476 	};
10477 	struct {
10478 		__u32 target_fd;
10479 		__u32 attach_bpf_fd;
10480 		__u32 attach_type;
10481 		__u32 attach_flags;
10482 		__u32 replace_bpf_fd;
10483 	};
10484 	struct {
10485 		__u32 prog_fd;
10486 		__u32 retval;
10487 		__u32 data_size_in;
10488 		__u32 data_size_out;
10489 		__u64 data_in;
10490 		__u64 data_out;
10491 		__u32 repeat;
10492 		__u32 duration;
10493 		__u32 ctx_size_in;
10494 		__u32 ctx_size_out;
10495 		__u64 ctx_in;
10496 		__u64 ctx_out;
10497 		__u32 flags;
10498 		__u32 cpu;
10499 		__u32 batch_size;
10500 	} test;
10501 	struct {
10502 		union {
10503 			__u32 start_id;
10504 			__u32 prog_id;
10505 			__u32 map_id;
10506 			__u32 btf_id;
10507 			__u32 link_id;
10508 		};
10509 		__u32 next_id;
10510 		__u32 open_flags;
10511 	};
10512 	struct {
10513 		__u32 bpf_fd;
10514 		__u32 info_len;
10515 		__u64 info;
10516 	} info;
10517 	struct {
10518 		__u32 target_fd;
10519 		__u32 attach_type;
10520 		__u32 query_flags;
10521 		__u32 attach_flags;
10522 		__u64 prog_ids;
10523 		__u32 prog_cnt;
10524 		__u64 prog_attach_flags;
10525 	} query;
10526 	struct {
10527 		__u64 name;
10528 		__u32 prog_fd;
10529 	} raw_tracepoint;
10530 	struct {
10531 		__u64 btf;
10532 		__u64 btf_log_buf;
10533 		__u32 btf_size;
10534 		__u32 btf_log_size;
10535 		__u32 btf_log_level;
10536 	};
10537 	struct {
10538 		__u32 pid;
10539 		__u32 fd;
10540 		__u32 flags;
10541 		__u32 buf_len;
10542 		__u64 buf;
10543 		__u32 prog_id;
10544 		__u32 fd_type;
10545 		__u64 probe_offset;
10546 		__u64 probe_addr;
10547 	} task_fd_query;
10548 	struct {
10549 		__u32 prog_fd;
10550 		union {
10551 			__u32 target_fd;
10552 			__u32 target_ifindex;
10553 		};
10554 		__u32 attach_type;
10555 		__u32 flags;
10556 		union {
10557 			__u32 target_btf_id;
10558 			struct {
10559 				__u64 iter_info;
10560 				__u32 iter_info_len;
10561 			};
10562 			struct {
10563 				__u64 bpf_cookie;
10564 			} perf_event;
10565 			struct {
10566 				__u32 flags;
10567 				__u32 cnt;
10568 				__u64 syms;
10569 				__u64 addrs;
10570 				__u64 cookies;
10571 			} kprobe_multi;
10572 			struct {
10573 				__u32 target_btf_id;
10574 				__u64 cookie;
10575 			} tracing;
10576 		};
10577 	} link_create;
10578 	struct {
10579 		__u32 link_fd;
10580 		__u32 new_prog_fd;
10581 		__u32 flags;
10582 		__u32 old_prog_fd;
10583 	} link_update;
10584 	struct {
10585 		__u32 link_fd;
10586 	} link_detach;
10587 	struct {
10588 		__u32 type;
10589 	} enable_stats;
10590 	struct {
10591 		__u32 link_fd;
10592 		__u32 flags;
10593 	} iter_create;
10594 	struct {
10595 		__u32 prog_fd;
10596 		__u32 map_fd;
10597 		__u32 flags;
10598 	} prog_bind_map;
10599 };
10600 
10601 struct bpf_func_info {
10602 	__u32 insn_off;
10603 	__u32 type_id;
10604 };
10605 
10606 struct bpf_line_info {
10607 	__u32 insn_off;
10608 	__u32 file_name_off;
10609 	__u32 line_off;
10610 	__u32 line_col;
10611 };
10612 
10613 struct btf_type {
10614 	__u32 name_off;
10615 	__u32 info;
10616 	union {
10617 		__u32 size;
10618 		__u32 type;
10619 	};
10620 };
10621 
10622 enum btf_field_type {
10623 	BPF_SPIN_LOCK = 1,
10624 	BPF_TIMER = 2,
10625 	BPF_KPTR_UNREF = 4,
10626 	BPF_KPTR_REF = 8,
10627 	BPF_KPTR = 12,
10628 	BPF_LIST_HEAD = 16,
10629 	BPF_LIST_NODE = 32,
10630 };
10631 
10632 typedef void (*btf_dtor_kfunc_t)(void *);
10633 
10634 struct btf;
10635 
10636 struct btf_field_kptr {
10637 	struct btf *btf;
10638 	struct module *module;
10639 	btf_dtor_kfunc_t dtor;
10640 	u32 btf_id;
10641 };
10642 
10643 struct btf_record;
10644 
10645 struct btf_field_list_head {
10646 	struct btf *btf;
10647 	u32 value_btf_id;
10648 	u32 node_offset;
10649 	struct btf_record *value_rec;
10650 };
10651 
10652 struct btf_field {
10653 	u32 offset;
10654 	enum btf_field_type type;
10655 	union {
10656 		struct btf_field_kptr kptr;
10657 		struct btf_field_list_head list_head;
10658 	};
10659 };
10660 
10661 struct btf_record {
10662 	u32 cnt;
10663 	u32 field_mask;
10664 	int spin_lock_off;
10665 	int timer_off;
10666 	struct btf_field fields[0];
10667 };
10668 
10669 struct btf_field_offs {
10670 	u32 cnt;
10671 	u32 field_off[10];
10672 	u8 field_sz[10];
10673 };
10674 
10675 typedef u64 (*bpf_callback_t)(u64, u64, u64, u64, u64);
10676 
10677 struct bpf_iter_aux_info;
10678 
10679 typedef int (*bpf_iter_init_seq_priv_t)(void *, struct bpf_iter_aux_info *);
10680 
10681 enum bpf_iter_task_type {
10682 	BPF_TASK_ITER_ALL = 0,
10683 	BPF_TASK_ITER_TID = 1,
10684 	BPF_TASK_ITER_TGID = 2,
10685 };
10686 
10687 struct bpf_map;
10688 
10689 struct bpf_iter_aux_info {
10690 	struct bpf_map *map;
10691 	struct {
10692 		struct cgroup *start;
10693 		enum bpf_cgroup_iter_order order;
10694 	} cgroup;
10695 	struct {
10696 		enum bpf_iter_task_type type;
10697 		u32 pid;
10698 	} task;
10699 };
10700 
10701 typedef void (*bpf_iter_fini_seq_priv_t)(void *);
10702 
10703 struct bpf_iter_seq_info {
10704 	const struct seq_operations *seq_ops;
10705 	bpf_iter_init_seq_priv_t init_seq_private;
10706 	bpf_iter_fini_seq_priv_t fini_seq_private;
10707 	u32 seq_priv_size;
10708 };
10709 
10710 struct bpf_local_storage_map;
10711 
10712 struct bpf_verifier_env;
10713 
10714 struct bpf_func_state;
10715 
10716 struct bpf_map_ops {
10717 	int (*map_alloc_check)(union bpf_attr *);
10718 	struct bpf_map * (*map_alloc)(union bpf_attr *);
10719 	void (*map_release)(struct bpf_map *, struct file *);
10720 	void (*map_free)(struct bpf_map *);
10721 	int (*map_get_next_key)(struct bpf_map *, void *, void *);
10722 	void (*map_release_uref)(struct bpf_map *);
10723 	void * (*map_lookup_elem_sys_only)(struct bpf_map *, void *);
10724 	int (*map_lookup_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr *);
10725 	int (*map_lookup_and_delete_elem)(struct bpf_map *, void *, void *, u64);
10726 	int (*map_lookup_and_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr *);
10727 	int (*map_update_batch)(struct bpf_map *, struct file *, const union bpf_attr *, union bpf_attr *);
10728 	int (*map_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr *);
10729 	void * (*map_lookup_elem)(struct bpf_map *, void *);
10730 	int (*map_update_elem)(struct bpf_map *, void *, void *, u64);
10731 	int (*map_delete_elem)(struct bpf_map *, void *);
10732 	int (*map_push_elem)(struct bpf_map *, void *, u64);
10733 	int (*map_pop_elem)(struct bpf_map *, void *);
10734 	int (*map_peek_elem)(struct bpf_map *, void *);
10735 	void * (*map_lookup_percpu_elem)(struct bpf_map *, void *, u32);
10736 	void * (*map_fd_get_ptr)(struct bpf_map *, struct file *, int);
10737 	void (*map_fd_put_ptr)(void *);
10738 	int (*map_gen_lookup)(struct bpf_map *, struct bpf_insn *);
10739 	u32 (*map_fd_sys_lookup_elem)(void *);
10740 	void (*map_seq_show_elem)(struct bpf_map *, void *, struct seq_file *);
10741 	int (*map_check_btf)(const struct bpf_map *, const struct btf *, const struct btf_type *, const struct btf_type *);
10742 	int (*map_poke_track)(struct bpf_map *, struct bpf_prog_aux *);
10743 	void (*map_poke_untrack)(struct bpf_map *, struct bpf_prog_aux *);
10744 	void (*map_poke_run)(struct bpf_map *, u32, struct bpf_prog *, struct bpf_prog *);
10745 	int (*map_direct_value_addr)(const struct bpf_map *, u64 *, u32);
10746 	int (*map_direct_value_meta)(const struct bpf_map *, u64, u32 *);
10747 	int (*map_mmap)(struct bpf_map *, struct vm_area_struct *);
10748 	__poll_t (*map_poll)(struct bpf_map *, struct file *, struct poll_table_struct *);
10749 	int (*map_local_storage_charge)(struct bpf_local_storage_map *, void *, u32);
10750 	void (*map_local_storage_uncharge)(struct bpf_local_storage_map *, void *, u32);
10751 	struct bpf_local_storage ** (*map_owner_storage_ptr)(void *);
10752 	int (*map_redirect)(struct bpf_map *, u64, u64);
10753 	bool (*map_meta_equal)(const struct bpf_map *, const struct bpf_map *);
10754 	int (*map_set_for_each_callback_args)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *);
10755 	int (*map_for_each_callback)(struct bpf_map *, bpf_callback_t, void *, u64);
10756 	int *map_btf_id;
10757 	const struct bpf_iter_seq_info *iter_seq_info;
10758 };
10759 
10760 struct bpf_map {
10761 	const struct bpf_map_ops *ops;
10762 	struct bpf_map *inner_map_meta;
10763 	void *security;
10764 	enum bpf_map_type map_type;
10765 	u32 key_size;
10766 	u32 value_size;
10767 	u32 max_entries;
10768 	u64 map_extra;
10769 	u32 map_flags;
10770 	u32 id;
10771 	struct btf_record *record;
10772 	int numa_node;
10773 	u32 btf_key_type_id;
10774 	u32 btf_value_type_id;
10775 	u32 btf_vmlinux_value_type_id;
10776 	struct btf *btf;
10777 	struct obj_cgroup *objcg;
10778 	char name[16];
10779 	struct btf_field_offs *field_offs;
10780 	long: 64;
10781 	atomic64_t refcnt;
10782 	atomic64_t usercnt;
10783 	struct work_struct work;
10784 	struct mutex freeze_mutex;
10785 	atomic64_t writecnt;
10786 	struct {
10787 		spinlock_t lock;
10788 		enum bpf_prog_type type;
10789 		bool jited;
10790 		bool xdp_has_frags;
10791 	} owner;
10792 	bool bypass_spec_v1;
10793 	bool frozen;
10794 	long: 16;
10795 	long: 64;
10796 	long: 64;
10797 	long: 64;
10798 };
10799 
10800 struct btf_header {
10801 	__u16 magic;
10802 	__u8 version;
10803 	__u8 flags;
10804 	__u32 hdr_len;
10805 	__u32 type_off;
10806 	__u32 type_len;
10807 	__u32 str_off;
10808 	__u32 str_len;
10809 };
10810 
10811 struct btf_kfunc_set_tab;
10812 
10813 struct btf_id_dtor_kfunc_tab;
10814 
10815 struct btf_struct_metas;
10816 
10817 struct btf {
10818 	void *data;
10819 	struct btf_type **types;
10820 	u32 *resolved_ids;
10821 	u32 *resolved_sizes;
10822 	const char *strings;
10823 	void *nohdr_data;
10824 	struct btf_header hdr;
10825 	u32 nr_types;
10826 	u32 types_size;
10827 	u32 data_size;
10828 	refcount_t refcnt;
10829 	u32 id;
10830 	struct callback_head rcu;
10831 	struct btf_kfunc_set_tab *kfunc_set_tab;
10832 	struct btf_id_dtor_kfunc_tab *dtor_kfunc_tab;
10833 	struct btf_struct_metas *struct_meta_tab;
10834 	struct btf *base_btf;
10835 	u32 start_id;
10836 	u32 start_str_off;
10837 	char name[56];
10838 	bool kernel_btf;
10839 };
10840 
10841 struct bpf_ksym {
10842 	long unsigned int start;
10843 	long unsigned int end;
10844 	char name[512];
10845 	struct list_head lnode;
10846 	struct latch_tree_node tnode;
10847 	bool prog;
10848 };
10849 
10850 struct bpf_ctx_arg_aux;
10851 
10852 struct bpf_trampoline;
10853 
10854 struct bpf_jit_poke_descriptor;
10855 
10856 struct bpf_kfunc_desc_tab;
10857 
10858 struct bpf_kfunc_btf_tab;
10859 
10860 struct bpf_prog_ops;
10861 
10862 struct btf_mod_pair;
10863 
10864 struct bpf_prog_offload;
10865 
10866 struct bpf_func_info_aux;
10867 
10868 struct bpf_prog_aux {
10869 	atomic64_t refcnt;
10870 	u32 used_map_cnt;
10871 	u32 used_btf_cnt;
10872 	u32 max_ctx_offset;
10873 	u32 max_pkt_offset;
10874 	u32 max_tp_access;
10875 	u32 stack_depth;
10876 	u32 id;
10877 	u32 func_cnt;
10878 	u32 func_idx;
10879 	u32 attach_btf_id;
10880 	u32 ctx_arg_info_size;
10881 	u32 max_rdonly_access;
10882 	u32 max_rdwr_access;
10883 	struct btf *attach_btf;
10884 	const struct bpf_ctx_arg_aux *ctx_arg_info;
10885 	struct mutex dst_mutex;
10886 	struct bpf_prog *dst_prog;
10887 	struct bpf_trampoline *dst_trampoline;
10888 	enum bpf_prog_type saved_dst_prog_type;
10889 	enum bpf_attach_type saved_dst_attach_type;
10890 	bool verifier_zext;
10891 	bool offload_requested;
10892 	bool attach_btf_trace;
10893 	bool func_proto_unreliable;
10894 	bool sleepable;
10895 	bool tail_call_reachable;
10896 	bool xdp_has_frags;
10897 	const struct btf_type *attach_func_proto;
10898 	const char *attach_func_name;
10899 	struct bpf_prog **func;
10900 	void *jit_data;
10901 	struct bpf_jit_poke_descriptor *poke_tab;
10902 	struct bpf_kfunc_desc_tab *kfunc_tab;
10903 	struct bpf_kfunc_btf_tab *kfunc_btf_tab;
10904 	u32 size_poke_tab;
10905 	struct bpf_ksym ksym;
10906 	const struct bpf_prog_ops *ops;
10907 	struct bpf_map **used_maps;
10908 	struct mutex used_maps_mutex;
10909 	struct btf_mod_pair *used_btfs;
10910 	struct bpf_prog *prog;
10911 	struct user_struct *user;
10912 	u64 load_time;
10913 	u32 verified_insns;
10914 	int cgroup_atype;
10915 	struct bpf_map *cgroup_storage[2];
10916 	char name[16];
10917 	void *security;
10918 	struct bpf_prog_offload *offload;
10919 	struct btf *btf;
10920 	struct bpf_func_info *func_info;
10921 	struct bpf_func_info_aux *func_info_aux;
10922 	struct bpf_line_info *linfo;
10923 	void **jited_linfo;
10924 	u32 func_info_cnt;
10925 	u32 nr_linfo;
10926 	u32 linfo_idx;
10927 	u32 num_exentries;
10928 	struct exception_table_entry *extable;
10929 	union {
10930 		struct work_struct work;
10931 		struct callback_head rcu;
10932 	};
10933 };
10934 
10935 enum {
10936 	BTF_FIELDS_MAX = 10,
10937 };
10938 
10939 enum bpf_type_flag {
10940 	PTR_MAYBE_NULL = 256,
10941 	MEM_RDONLY = 512,
10942 	MEM_RINGBUF = 1024,
10943 	MEM_USER = 2048,
10944 	MEM_PERCPU = 4096,
10945 	OBJ_RELEASE = 8192,
10946 	PTR_UNTRUSTED = 16384,
10947 	MEM_UNINIT = 32768,
10948 	DYNPTR_TYPE_LOCAL = 65536,
10949 	DYNPTR_TYPE_RINGBUF = 131072,
10950 	MEM_FIXED_SIZE = 262144,
10951 	MEM_ALLOC = 524288,
10952 	PTR_TRUSTED = 1048576,
10953 	MEM_RCU = 2097152,
10954 	__BPF_TYPE_FLAG_MAX = 2097153,
10955 	__BPF_TYPE_LAST_FLAG = 2097152,
10956 };
10957 
10958 enum bpf_arg_type {
10959 	ARG_DONTCARE = 0,
10960 	ARG_CONST_MAP_PTR = 1,
10961 	ARG_PTR_TO_MAP_KEY = 2,
10962 	ARG_PTR_TO_MAP_VALUE = 3,
10963 	ARG_PTR_TO_MEM = 4,
10964 	ARG_CONST_SIZE = 5,
10965 	ARG_CONST_SIZE_OR_ZERO = 6,
10966 	ARG_PTR_TO_CTX = 7,
10967 	ARG_ANYTHING = 8,
10968 	ARG_PTR_TO_SPIN_LOCK = 9,
10969 	ARG_PTR_TO_SOCK_COMMON = 10,
10970 	ARG_PTR_TO_INT = 11,
10971 	ARG_PTR_TO_LONG = 12,
10972 	ARG_PTR_TO_SOCKET = 13,
10973 	ARG_PTR_TO_BTF_ID = 14,
10974 	ARG_PTR_TO_RINGBUF_MEM = 15,
10975 	ARG_CONST_ALLOC_SIZE_OR_ZERO = 16,
10976 	ARG_PTR_TO_BTF_ID_SOCK_COMMON = 17,
10977 	ARG_PTR_TO_PERCPU_BTF_ID = 18,
10978 	ARG_PTR_TO_FUNC = 19,
10979 	ARG_PTR_TO_STACK = 20,
10980 	ARG_PTR_TO_CONST_STR = 21,
10981 	ARG_PTR_TO_TIMER = 22,
10982 	ARG_PTR_TO_KPTR = 23,
10983 	ARG_PTR_TO_DYNPTR = 24,
10984 	__BPF_ARG_TYPE_MAX = 25,
10985 	ARG_PTR_TO_MAP_VALUE_OR_NULL = 259,
10986 	ARG_PTR_TO_MEM_OR_NULL = 260,
10987 	ARG_PTR_TO_CTX_OR_NULL = 263,
10988 	ARG_PTR_TO_SOCKET_OR_NULL = 269,
10989 	ARG_PTR_TO_STACK_OR_NULL = 276,
10990 	ARG_PTR_TO_BTF_ID_OR_NULL = 270,
10991 	ARG_PTR_TO_UNINIT_MEM = 32772,
10992 	ARG_PTR_TO_FIXED_SIZE_MEM = 262148,
10993 	__BPF_ARG_TYPE_LIMIT = 4194303,
10994 };
10995 
10996 enum bpf_return_type {
10997 	RET_INTEGER = 0,
10998 	RET_VOID = 1,
10999 	RET_PTR_TO_MAP_VALUE = 2,
11000 	RET_PTR_TO_SOCKET = 3,
11001 	RET_PTR_TO_TCP_SOCK = 4,
11002 	RET_PTR_TO_SOCK_COMMON = 5,
11003 	RET_PTR_TO_MEM = 6,
11004 	RET_PTR_TO_MEM_OR_BTF_ID = 7,
11005 	RET_PTR_TO_BTF_ID = 8,
11006 	__BPF_RET_TYPE_MAX = 9,
11007 	RET_PTR_TO_MAP_VALUE_OR_NULL = 258,
11008 	RET_PTR_TO_SOCKET_OR_NULL = 259,
11009 	RET_PTR_TO_TCP_SOCK_OR_NULL = 260,
11010 	RET_PTR_TO_SOCK_COMMON_OR_NULL = 261,
11011 	RET_PTR_TO_RINGBUF_MEM_OR_NULL = 1286,
11012 	RET_PTR_TO_DYNPTR_MEM_OR_NULL = 262,
11013 	RET_PTR_TO_BTF_ID_OR_NULL = 264,
11014 	RET_PTR_TO_BTF_ID_TRUSTED = 1048584,
11015 	__BPF_RET_TYPE_LIMIT = 4194303,
11016 };
11017 
11018 enum bpf_reg_type {
11019 	NOT_INIT = 0,
11020 	SCALAR_VALUE = 1,
11021 	PTR_TO_CTX = 2,
11022 	CONST_PTR_TO_MAP = 3,
11023 	PTR_TO_MAP_VALUE = 4,
11024 	PTR_TO_MAP_KEY = 5,
11025 	PTR_TO_STACK = 6,
11026 	PTR_TO_PACKET_META = 7,
11027 	PTR_TO_PACKET = 8,
11028 	PTR_TO_PACKET_END = 9,
11029 	PTR_TO_FLOW_KEYS = 10,
11030 	PTR_TO_SOCKET = 11,
11031 	PTR_TO_SOCK_COMMON = 12,
11032 	PTR_TO_TCP_SOCK = 13,
11033 	PTR_TO_TP_BUFFER = 14,
11034 	PTR_TO_XDP_SOCK = 15,
11035 	PTR_TO_BTF_ID = 16,
11036 	PTR_TO_MEM = 17,
11037 	PTR_TO_BUF = 18,
11038 	PTR_TO_FUNC = 19,
11039 	CONST_PTR_TO_DYNPTR = 20,
11040 	__BPF_REG_TYPE_MAX = 21,
11041 	PTR_TO_MAP_VALUE_OR_NULL = 260,
11042 	PTR_TO_SOCKET_OR_NULL = 267,
11043 	PTR_TO_SOCK_COMMON_OR_NULL = 268,
11044 	PTR_TO_TCP_SOCK_OR_NULL = 269,
11045 	PTR_TO_BTF_ID_OR_NULL = 272,
11046 	__BPF_REG_TYPE_LIMIT = 4194303,
11047 };
11048 
11049 struct bpf_prog_ops {
11050 	int (*test_run)(struct bpf_prog *, const union bpf_attr *, union bpf_attr *);
11051 };
11052 
11053 struct bpf_offload_dev;
11054 
11055 struct bpf_prog_offload {
11056 	struct bpf_prog *prog;
11057 	struct net_device *netdev;
11058 	struct bpf_offload_dev *offdev;
11059 	void *dev_priv;
11060 	struct list_head offloads;
11061 	bool dev_state;
11062 	bool opt_failed;
11063 	void *jited_image;
11064 	u32 jited_len;
11065 };
11066 
11067 enum bpf_cgroup_storage_type {
11068 	BPF_CGROUP_STORAGE_SHARED = 0,
11069 	BPF_CGROUP_STORAGE_PERCPU = 1,
11070 	__BPF_CGROUP_STORAGE_MAX = 2,
11071 };
11072 
11073 struct btf_func_model {
11074 	u8 ret_size;
11075 	u8 nr_args;
11076 	u8 arg_size[12];
11077 	u8 arg_flags[12];
11078 };
11079 
11080 enum bpf_tramp_prog_type {
11081 	BPF_TRAMP_FENTRY = 0,
11082 	BPF_TRAMP_FEXIT = 1,
11083 	BPF_TRAMP_MODIFY_RETURN = 2,
11084 	BPF_TRAMP_MAX = 3,
11085 	BPF_TRAMP_REPLACE = 4,
11086 };
11087 
11088 struct bpf_tramp_image {
11089 	void *image;
11090 	struct bpf_ksym ksym;
11091 	struct percpu_ref pcref;
11092 	void *ip_after_call;
11093 	void *ip_epilogue;
11094 	union {
11095 		struct callback_head rcu;
11096 		struct work_struct work;
11097 	};
11098 };
11099 
11100 struct bpf_trampoline {
11101 	struct hlist_node hlist;
11102 	struct ftrace_ops *fops;
11103 	struct mutex mutex;
11104 	refcount_t refcnt;
11105 	u32 flags;
11106 	u64 key;
11107 	struct {
11108 		struct btf_func_model model;
11109 		void *addr;
11110 		bool ftrace_managed;
11111 	} func;
11112 	struct bpf_prog *extension_prog;
11113 	struct hlist_head progs_hlist[3];
11114 	int progs_cnt[3];
11115 	struct bpf_tramp_image *cur_image;
11116 	u64 selector;
11117 	struct module *mod;
11118 };
11119 
11120 struct bpf_func_info_aux {
11121 	u16 linkage;
11122 	bool unreliable;
11123 };
11124 
11125 struct bpf_jit_poke_descriptor {
11126 	void *tailcall_target;
11127 	void *tailcall_bypass;
11128 	void *bypass_addr;
11129 	void *aux;
11130 	union {
11131 		struct {
11132 			struct bpf_map *map;
11133 			u32 key;
11134 		} tail_call;
11135 	};
11136 	bool tailcall_target_stable;
11137 	u8 adj_off;
11138 	u16 reason;
11139 	u32 insn_idx;
11140 };
11141 
11142 struct bpf_ctx_arg_aux {
11143 	u32 offset;
11144 	enum bpf_reg_type reg_type;
11145 	u32 btf_id;
11146 };
11147 
11148 struct btf_mod_pair {
11149 	struct btf *btf;
11150 	struct module *module;
11151 };
11152 
11153 struct trace_event_raw_task_newtask {
11154 	struct trace_entry ent;
11155 	pid_t pid;
11156 	char comm[16];
11157 	long unsigned int clone_flags;
11158 	short int oom_score_adj;
11159 	char __data[0];
11160 };
11161 
11162 struct trace_event_raw_task_rename {
11163 	struct trace_entry ent;
11164 	pid_t pid;
11165 	char oldcomm[16];
11166 	char newcomm[16];
11167 	short int oom_score_adj;
11168 	char __data[0];
11169 };
11170 
11171 struct trace_event_data_offsets_task_newtask {};
11172 
11173 struct trace_event_data_offsets_task_rename {};
11174 
11175 typedef void (*btf_trace_task_newtask)(void *, struct task_struct *, long unsigned int);
11176 
11177 typedef void (*btf_trace_task_rename)(void *, struct task_struct *, const char *);
11178 
11179 struct in6_addr {
11180 	union {
11181 		__u8 u6_addr8[16];
11182 		__be16 u6_addr16[8];
11183 		__be32 u6_addr32[4];
11184 	} in6_u;
11185 };
11186 
11187 enum flow_dissector_key_id {
11188 	FLOW_DISSECTOR_KEY_CONTROL = 0,
11189 	FLOW_DISSECTOR_KEY_BASIC = 1,
11190 	FLOW_DISSECTOR_KEY_IPV4_ADDRS = 2,
11191 	FLOW_DISSECTOR_KEY_IPV6_ADDRS = 3,
11192 	FLOW_DISSECTOR_KEY_PORTS = 4,
11193 	FLOW_DISSECTOR_KEY_PORTS_RANGE = 5,
11194 	FLOW_DISSECTOR_KEY_ICMP = 6,
11195 	FLOW_DISSECTOR_KEY_ETH_ADDRS = 7,
11196 	FLOW_DISSECTOR_KEY_TIPC = 8,
11197 	FLOW_DISSECTOR_KEY_ARP = 9,
11198 	FLOW_DISSECTOR_KEY_VLAN = 10,
11199 	FLOW_DISSECTOR_KEY_FLOW_LABEL = 11,
11200 	FLOW_DISSECTOR_KEY_GRE_KEYID = 12,
11201 	FLOW_DISSECTOR_KEY_MPLS_ENTROPY = 13,
11202 	FLOW_DISSECTOR_KEY_ENC_KEYID = 14,
11203 	FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS = 15,
11204 	FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS = 16,
11205 	FLOW_DISSECTOR_KEY_ENC_CONTROL = 17,
11206 	FLOW_DISSECTOR_KEY_ENC_PORTS = 18,
11207 	FLOW_DISSECTOR_KEY_MPLS = 19,
11208 	FLOW_DISSECTOR_KEY_TCP = 20,
11209 	FLOW_DISSECTOR_KEY_IP = 21,
11210 	FLOW_DISSECTOR_KEY_CVLAN = 22,
11211 	FLOW_DISSECTOR_KEY_ENC_IP = 23,
11212 	FLOW_DISSECTOR_KEY_ENC_OPTS = 24,
11213 	FLOW_DISSECTOR_KEY_META = 25,
11214 	FLOW_DISSECTOR_KEY_CT = 26,
11215 	FLOW_DISSECTOR_KEY_HASH = 27,
11216 	FLOW_DISSECTOR_KEY_NUM_OF_VLANS = 28,
11217 	FLOW_DISSECTOR_KEY_PPPOE = 29,
11218 	FLOW_DISSECTOR_KEY_L2TPV3 = 30,
11219 	FLOW_DISSECTOR_KEY_MAX = 31,
11220 };
11221 
11222 enum {
11223 	IPSTATS_MIB_NUM = 0,
11224 	IPSTATS_MIB_INPKTS = 1,
11225 	IPSTATS_MIB_INOCTETS = 2,
11226 	IPSTATS_MIB_INDELIVERS = 3,
11227 	IPSTATS_MIB_OUTFORWDATAGRAMS = 4,
11228 	IPSTATS_MIB_OUTPKTS = 5,
11229 	IPSTATS_MIB_OUTOCTETS = 6,
11230 	IPSTATS_MIB_INHDRERRORS = 7,
11231 	IPSTATS_MIB_INTOOBIGERRORS = 8,
11232 	IPSTATS_MIB_INNOROUTES = 9,
11233 	IPSTATS_MIB_INADDRERRORS = 10,
11234 	IPSTATS_MIB_INUNKNOWNPROTOS = 11,
11235 	IPSTATS_MIB_INTRUNCATEDPKTS = 12,
11236 	IPSTATS_MIB_INDISCARDS = 13,
11237 	IPSTATS_MIB_OUTDISCARDS = 14,
11238 	IPSTATS_MIB_OUTNOROUTES = 15,
11239 	IPSTATS_MIB_REASMTIMEOUT = 16,
11240 	IPSTATS_MIB_REASMREQDS = 17,
11241 	IPSTATS_MIB_REASMOKS = 18,
11242 	IPSTATS_MIB_REASMFAILS = 19,
11243 	IPSTATS_MIB_FRAGOKS = 20,
11244 	IPSTATS_MIB_FRAGFAILS = 21,
11245 	IPSTATS_MIB_FRAGCREATES = 22,
11246 	IPSTATS_MIB_INMCASTPKTS = 23,
11247 	IPSTATS_MIB_OUTMCASTPKTS = 24,
11248 	IPSTATS_MIB_INBCASTPKTS = 25,
11249 	IPSTATS_MIB_OUTBCASTPKTS = 26,
11250 	IPSTATS_MIB_INMCASTOCTETS = 27,
11251 	IPSTATS_MIB_OUTMCASTOCTETS = 28,
11252 	IPSTATS_MIB_INBCASTOCTETS = 29,
11253 	IPSTATS_MIB_OUTBCASTOCTETS = 30,
11254 	IPSTATS_MIB_CSUMERRORS = 31,
11255 	IPSTATS_MIB_NOECTPKTS = 32,
11256 	IPSTATS_MIB_ECT1PKTS = 33,
11257 	IPSTATS_MIB_ECT0PKTS = 34,
11258 	IPSTATS_MIB_CEPKTS = 35,
11259 	IPSTATS_MIB_REASM_OVERLAPS = 36,
11260 	__IPSTATS_MIB_MAX = 37,
11261 };
11262 
11263 enum {
11264 	ICMP_MIB_NUM = 0,
11265 	ICMP_MIB_INMSGS = 1,
11266 	ICMP_MIB_INERRORS = 2,
11267 	ICMP_MIB_INDESTUNREACHS = 3,
11268 	ICMP_MIB_INTIMEEXCDS = 4,
11269 	ICMP_MIB_INPARMPROBS = 5,
11270 	ICMP_MIB_INSRCQUENCHS = 6,
11271 	ICMP_MIB_INREDIRECTS = 7,
11272 	ICMP_MIB_INECHOS = 8,
11273 	ICMP_MIB_INECHOREPS = 9,
11274 	ICMP_MIB_INTIMESTAMPS = 10,
11275 	ICMP_MIB_INTIMESTAMPREPS = 11,
11276 	ICMP_MIB_INADDRMASKS = 12,
11277 	ICMP_MIB_INADDRMASKREPS = 13,
11278 	ICMP_MIB_OUTMSGS = 14,
11279 	ICMP_MIB_OUTERRORS = 15,
11280 	ICMP_MIB_OUTDESTUNREACHS = 16,
11281 	ICMP_MIB_OUTTIMEEXCDS = 17,
11282 	ICMP_MIB_OUTPARMPROBS = 18,
11283 	ICMP_MIB_OUTSRCQUENCHS = 19,
11284 	ICMP_MIB_OUTREDIRECTS = 20,
11285 	ICMP_MIB_OUTECHOS = 21,
11286 	ICMP_MIB_OUTECHOREPS = 22,
11287 	ICMP_MIB_OUTTIMESTAMPS = 23,
11288 	ICMP_MIB_OUTTIMESTAMPREPS = 24,
11289 	ICMP_MIB_OUTADDRMASKS = 25,
11290 	ICMP_MIB_OUTADDRMASKREPS = 26,
11291 	ICMP_MIB_CSUMERRORS = 27,
11292 	__ICMP_MIB_MAX = 28,
11293 };
11294 
11295 enum {
11296 	ICMP6_MIB_NUM = 0,
11297 	ICMP6_MIB_INMSGS = 1,
11298 	ICMP6_MIB_INERRORS = 2,
11299 	ICMP6_MIB_OUTMSGS = 3,
11300 	ICMP6_MIB_OUTERRORS = 4,
11301 	ICMP6_MIB_CSUMERRORS = 5,
11302 	__ICMP6_MIB_MAX = 6,
11303 };
11304 
11305 enum {
11306 	TCP_MIB_NUM = 0,
11307 	TCP_MIB_RTOALGORITHM = 1,
11308 	TCP_MIB_RTOMIN = 2,
11309 	TCP_MIB_RTOMAX = 3,
11310 	TCP_MIB_MAXCONN = 4,
11311 	TCP_MIB_ACTIVEOPENS = 5,
11312 	TCP_MIB_PASSIVEOPENS = 6,
11313 	TCP_MIB_ATTEMPTFAILS = 7,
11314 	TCP_MIB_ESTABRESETS = 8,
11315 	TCP_MIB_CURRESTAB = 9,
11316 	TCP_MIB_INSEGS = 10,
11317 	TCP_MIB_OUTSEGS = 11,
11318 	TCP_MIB_RETRANSSEGS = 12,
11319 	TCP_MIB_INERRS = 13,
11320 	TCP_MIB_OUTRSTS = 14,
11321 	TCP_MIB_CSUMERRORS = 15,
11322 	__TCP_MIB_MAX = 16,
11323 };
11324 
11325 enum {
11326 	UDP_MIB_NUM = 0,
11327 	UDP_MIB_INDATAGRAMS = 1,
11328 	UDP_MIB_NOPORTS = 2,
11329 	UDP_MIB_INERRORS = 3,
11330 	UDP_MIB_OUTDATAGRAMS = 4,
11331 	UDP_MIB_RCVBUFERRORS = 5,
11332 	UDP_MIB_SNDBUFERRORS = 6,
11333 	UDP_MIB_CSUMERRORS = 7,
11334 	UDP_MIB_IGNOREDMULTI = 8,
11335 	UDP_MIB_MEMERRORS = 9,
11336 	__UDP_MIB_MAX = 10,
11337 };
11338 
11339 enum {
11340 	LINUX_MIB_NUM = 0,
11341 	LINUX_MIB_SYNCOOKIESSENT = 1,
11342 	LINUX_MIB_SYNCOOKIESRECV = 2,
11343 	LINUX_MIB_SYNCOOKIESFAILED = 3,
11344 	LINUX_MIB_EMBRYONICRSTS = 4,
11345 	LINUX_MIB_PRUNECALLED = 5,
11346 	LINUX_MIB_RCVPRUNED = 6,
11347 	LINUX_MIB_OFOPRUNED = 7,
11348 	LINUX_MIB_OUTOFWINDOWICMPS = 8,
11349 	LINUX_MIB_LOCKDROPPEDICMPS = 9,
11350 	LINUX_MIB_ARPFILTER = 10,
11351 	LINUX_MIB_TIMEWAITED = 11,
11352 	LINUX_MIB_TIMEWAITRECYCLED = 12,
11353 	LINUX_MIB_TIMEWAITKILLED = 13,
11354 	LINUX_MIB_PAWSACTIVEREJECTED = 14,
11355 	LINUX_MIB_PAWSESTABREJECTED = 15,
11356 	LINUX_MIB_DELAYEDACKS = 16,
11357 	LINUX_MIB_DELAYEDACKLOCKED = 17,
11358 	LINUX_MIB_DELAYEDACKLOST = 18,
11359 	LINUX_MIB_LISTENOVERFLOWS = 19,
11360 	LINUX_MIB_LISTENDROPS = 20,
11361 	LINUX_MIB_TCPHPHITS = 21,
11362 	LINUX_MIB_TCPPUREACKS = 22,
11363 	LINUX_MIB_TCPHPACKS = 23,
11364 	LINUX_MIB_TCPRENORECOVERY = 24,
11365 	LINUX_MIB_TCPSACKRECOVERY = 25,
11366 	LINUX_MIB_TCPSACKRENEGING = 26,
11367 	LINUX_MIB_TCPSACKREORDER = 27,
11368 	LINUX_MIB_TCPRENOREORDER = 28,
11369 	LINUX_MIB_TCPTSREORDER = 29,
11370 	LINUX_MIB_TCPFULLUNDO = 30,
11371 	LINUX_MIB_TCPPARTIALUNDO = 31,
11372 	LINUX_MIB_TCPDSACKUNDO = 32,
11373 	LINUX_MIB_TCPLOSSUNDO = 33,
11374 	LINUX_MIB_TCPLOSTRETRANSMIT = 34,
11375 	LINUX_MIB_TCPRENOFAILURES = 35,
11376 	LINUX_MIB_TCPSACKFAILURES = 36,
11377 	LINUX_MIB_TCPLOSSFAILURES = 37,
11378 	LINUX_MIB_TCPFASTRETRANS = 38,
11379 	LINUX_MIB_TCPSLOWSTARTRETRANS = 39,
11380 	LINUX_MIB_TCPTIMEOUTS = 40,
11381 	LINUX_MIB_TCPLOSSPROBES = 41,
11382 	LINUX_MIB_TCPLOSSPROBERECOVERY = 42,
11383 	LINUX_MIB_TCPRENORECOVERYFAIL = 43,
11384 	LINUX_MIB_TCPSACKRECOVERYFAIL = 44,
11385 	LINUX_MIB_TCPRCVCOLLAPSED = 45,
11386 	LINUX_MIB_TCPDSACKOLDSENT = 46,
11387 	LINUX_MIB_TCPDSACKOFOSENT = 47,
11388 	LINUX_MIB_TCPDSACKRECV = 48,
11389 	LINUX_MIB_TCPDSACKOFORECV = 49,
11390 	LINUX_MIB_TCPABORTONDATA = 50,
11391 	LINUX_MIB_TCPABORTONCLOSE = 51,
11392 	LINUX_MIB_TCPABORTONMEMORY = 52,
11393 	LINUX_MIB_TCPABORTONTIMEOUT = 53,
11394 	LINUX_MIB_TCPABORTONLINGER = 54,
11395 	LINUX_MIB_TCPABORTFAILED = 55,
11396 	LINUX_MIB_TCPMEMORYPRESSURES = 56,
11397 	LINUX_MIB_TCPMEMORYPRESSURESCHRONO = 57,
11398 	LINUX_MIB_TCPSACKDISCARD = 58,
11399 	LINUX_MIB_TCPDSACKIGNOREDOLD = 59,
11400 	LINUX_MIB_TCPDSACKIGNOREDNOUNDO = 60,
11401 	LINUX_MIB_TCPSPURIOUSRTOS = 61,
11402 	LINUX_MIB_TCPMD5NOTFOUND = 62,
11403 	LINUX_MIB_TCPMD5UNEXPECTED = 63,
11404 	LINUX_MIB_TCPMD5FAILURE = 64,
11405 	LINUX_MIB_SACKSHIFTED = 65,
11406 	LINUX_MIB_SACKMERGED = 66,
11407 	LINUX_MIB_SACKSHIFTFALLBACK = 67,
11408 	LINUX_MIB_TCPBACKLOGDROP = 68,
11409 	LINUX_MIB_PFMEMALLOCDROP = 69,
11410 	LINUX_MIB_TCPMINTTLDROP = 70,
11411 	LINUX_MIB_TCPDEFERACCEPTDROP = 71,
11412 	LINUX_MIB_IPRPFILTER = 72,
11413 	LINUX_MIB_TCPTIMEWAITOVERFLOW = 73,
11414 	LINUX_MIB_TCPREQQFULLDOCOOKIES = 74,
11415 	LINUX_MIB_TCPREQQFULLDROP = 75,
11416 	LINUX_MIB_TCPRETRANSFAIL = 76,
11417 	LINUX_MIB_TCPRCVCOALESCE = 77,
11418 	LINUX_MIB_TCPBACKLOGCOALESCE = 78,
11419 	LINUX_MIB_TCPOFOQUEUE = 79,
11420 	LINUX_MIB_TCPOFODROP = 80,
11421 	LINUX_MIB_TCPOFOMERGE = 81,
11422 	LINUX_MIB_TCPCHALLENGEACK = 82,
11423 	LINUX_MIB_TCPSYNCHALLENGE = 83,
11424 	LINUX_MIB_TCPFASTOPENACTIVE = 84,
11425 	LINUX_MIB_TCPFASTOPENACTIVEFAIL = 85,
11426 	LINUX_MIB_TCPFASTOPENPASSIVE = 86,
11427 	LINUX_MIB_TCPFASTOPENPASSIVEFAIL = 87,
11428 	LINUX_MIB_TCPFASTOPENLISTENOVERFLOW = 88,
11429 	LINUX_MIB_TCPFASTOPENCOOKIEREQD = 89,
11430 	LINUX_MIB_TCPFASTOPENBLACKHOLE = 90,
11431 	LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES = 91,
11432 	LINUX_MIB_BUSYPOLLRXPACKETS = 92,
11433 	LINUX_MIB_TCPAUTOCORKING = 93,
11434 	LINUX_MIB_TCPFROMZEROWINDOWADV = 94,
11435 	LINUX_MIB_TCPTOZEROWINDOWADV = 95,
11436 	LINUX_MIB_TCPWANTZEROWINDOWADV = 96,
11437 	LINUX_MIB_TCPSYNRETRANS = 97,
11438 	LINUX_MIB_TCPORIGDATASENT = 98,
11439 	LINUX_MIB_TCPHYSTARTTRAINDETECT = 99,
11440 	LINUX_MIB_TCPHYSTARTTRAINCWND = 100,
11441 	LINUX_MIB_TCPHYSTARTDELAYDETECT = 101,
11442 	LINUX_MIB_TCPHYSTARTDELAYCWND = 102,
11443 	LINUX_MIB_TCPACKSKIPPEDSYNRECV = 103,
11444 	LINUX_MIB_TCPACKSKIPPEDPAWS = 104,
11445 	LINUX_MIB_TCPACKSKIPPEDSEQ = 105,
11446 	LINUX_MIB_TCPACKSKIPPEDFINWAIT2 = 106,
11447 	LINUX_MIB_TCPACKSKIPPEDTIMEWAIT = 107,
11448 	LINUX_MIB_TCPACKSKIPPEDCHALLENGE = 108,
11449 	LINUX_MIB_TCPWINPROBE = 109,
11450 	LINUX_MIB_TCPKEEPALIVE = 110,
11451 	LINUX_MIB_TCPMTUPFAIL = 111,
11452 	LINUX_MIB_TCPMTUPSUCCESS = 112,
11453 	LINUX_MIB_TCPDELIVERED = 113,
11454 	LINUX_MIB_TCPDELIVEREDCE = 114,
11455 	LINUX_MIB_TCPACKCOMPRESSED = 115,
11456 	LINUX_MIB_TCPZEROWINDOWDROP = 116,
11457 	LINUX_MIB_TCPRCVQDROP = 117,
11458 	LINUX_MIB_TCPWQUEUETOOBIG = 118,
11459 	LINUX_MIB_TCPFASTOPENPASSIVEALTKEY = 119,
11460 	LINUX_MIB_TCPTIMEOUTREHASH = 120,
11461 	LINUX_MIB_TCPDUPLICATEDATAREHASH = 121,
11462 	LINUX_MIB_TCPDSACKRECVSEGS = 122,
11463 	LINUX_MIB_TCPDSACKIGNOREDDUBIOUS = 123,
11464 	LINUX_MIB_TCPMIGRATEREQSUCCESS = 124,
11465 	LINUX_MIB_TCPMIGRATEREQFAILURE = 125,
11466 	LINUX_MIB_TCPPLBREHASH = 126,
11467 	__LINUX_MIB_MAX = 127,
11468 };
11469 
11470 enum {
11471 	LINUX_MIB_XFRMNUM = 0,
11472 	LINUX_MIB_XFRMINERROR = 1,
11473 	LINUX_MIB_XFRMINBUFFERERROR = 2,
11474 	LINUX_MIB_XFRMINHDRERROR = 3,
11475 	LINUX_MIB_XFRMINNOSTATES = 4,
11476 	LINUX_MIB_XFRMINSTATEPROTOERROR = 5,
11477 	LINUX_MIB_XFRMINSTATEMODEERROR = 6,
11478 	LINUX_MIB_XFRMINSTATESEQERROR = 7,
11479 	LINUX_MIB_XFRMINSTATEEXPIRED = 8,
11480 	LINUX_MIB_XFRMINSTATEMISMATCH = 9,
11481 	LINUX_MIB_XFRMINSTATEINVALID = 10,
11482 	LINUX_MIB_XFRMINTMPLMISMATCH = 11,
11483 	LINUX_MIB_XFRMINNOPOLS = 12,
11484 	LINUX_MIB_XFRMINPOLBLOCK = 13,
11485 	LINUX_MIB_XFRMINPOLERROR = 14,
11486 	LINUX_MIB_XFRMOUTERROR = 15,
11487 	LINUX_MIB_XFRMOUTBUNDLEGENERROR = 16,
11488 	LINUX_MIB_XFRMOUTBUNDLECHECKERROR = 17,
11489 	LINUX_MIB_XFRMOUTNOSTATES = 18,
11490 	LINUX_MIB_XFRMOUTSTATEPROTOERROR = 19,
11491 	LINUX_MIB_XFRMOUTSTATEMODEERROR = 20,
11492 	LINUX_MIB_XFRMOUTSTATESEQERROR = 21,
11493 	LINUX_MIB_XFRMOUTSTATEEXPIRED = 22,
11494 	LINUX_MIB_XFRMOUTPOLBLOCK = 23,
11495 	LINUX_MIB_XFRMOUTPOLDEAD = 24,
11496 	LINUX_MIB_XFRMOUTPOLERROR = 25,
11497 	LINUX_MIB_XFRMFWDHDRERROR = 26,
11498 	LINUX_MIB_XFRMOUTSTATEINVALID = 27,
11499 	LINUX_MIB_XFRMACQUIREERROR = 28,
11500 	__LINUX_MIB_XFRMMAX = 29,
11501 };
11502 
11503 enum {
11504 	LINUX_MIB_TLSNUM = 0,
11505 	LINUX_MIB_TLSCURRTXSW = 1,
11506 	LINUX_MIB_TLSCURRRXSW = 2,
11507 	LINUX_MIB_TLSCURRTXDEVICE = 3,
11508 	LINUX_MIB_TLSCURRRXDEVICE = 4,
11509 	LINUX_MIB_TLSTXSW = 5,
11510 	LINUX_MIB_TLSRXSW = 6,
11511 	LINUX_MIB_TLSTXDEVICE = 7,
11512 	LINUX_MIB_TLSRXDEVICE = 8,
11513 	LINUX_MIB_TLSDECRYPTERROR = 9,
11514 	LINUX_MIB_TLSRXDEVICERESYNC = 10,
11515 	LINUX_MIB_TLSDECRYPTRETRY = 11,
11516 	LINUX_MIB_TLSRXNOPADVIOL = 12,
11517 	__LINUX_MIB_TLSMAX = 13,
11518 };
11519 
11520 struct ipstats_mib {
11521 	u64 mibs[37];
11522 	struct u64_stats_sync syncp;
11523 };
11524 
11525 struct icmp_mib {
11526 	long unsigned int mibs[28];
11527 };
11528 
11529 struct icmpmsg_mib {
11530 	atomic_long_t mibs[512];
11531 };
11532 
11533 struct icmpv6_mib {
11534 	long unsigned int mibs[6];
11535 };
11536 
11537 struct icmpv6msg_mib {
11538 	atomic_long_t mibs[512];
11539 };
11540 
11541 struct tcp_mib {
11542 	long unsigned int mibs[16];
11543 };
11544 
11545 struct udp_mib {
11546 	long unsigned int mibs[10];
11547 };
11548 
11549 struct linux_mib {
11550 	long unsigned int mibs[127];
11551 };
11552 
11553 struct linux_tls_mib {
11554 	long unsigned int mibs[13];
11555 };
11556 
11557 struct inet_frags;
11558 
11559 struct fqdir {
11560 	long int high_thresh;
11561 	long int low_thresh;
11562 	int timeout;
11563 	int max_dist;
11564 	struct inet_frags *f;
11565 	struct net *net;
11566 	bool dead;
11567 	long: 56;
11568 	long: 64;
11569 	long: 64;
11570 	struct rhashtable rhashtable;
11571 	long: 64;
11572 	long: 64;
11573 	long: 64;
11574 	long: 64;
11575 	long: 64;
11576 	long: 64;
11577 	long: 64;
11578 	atomic_long_t mem;
11579 	struct work_struct destroy_work;
11580 	struct llist_node free_list;
11581 	long: 64;
11582 	long: 64;
11583 };
11584 
11585 struct inet_frag_queue;
11586 
11587 struct inet_frags {
11588 	unsigned int qsize;
11589 	void (*constructor)(struct inet_frag_queue *, const void *);
11590 	void (*destructor)(struct inet_frag_queue *);
11591 	void (*frag_expire)(struct timer_list *);
11592 	struct kmem_cache *frags_cachep;
11593 	const char *frags_cache_name;
11594 	struct rhashtable_params rhash_params;
11595 	refcount_t refcnt;
11596 	struct completion completion;
11597 };
11598 
11599 struct frag_v4_compare_key {
11600 	__be32 saddr;
11601 	__be32 daddr;
11602 	u32 user;
11603 	u32 vif;
11604 	__be16 id;
11605 	u16 protocol;
11606 };
11607 
11608 struct frag_v6_compare_key {
11609 	struct in6_addr saddr;
11610 	struct in6_addr daddr;
11611 	u32 user;
11612 	__be32 id;
11613 	u32 iif;
11614 };
11615 
11616 struct inet_frag_queue {
11617 	struct rhash_head node;
11618 	union {
11619 		struct frag_v4_compare_key v4;
11620 		struct frag_v6_compare_key v6;
11621 	} key;
11622 	struct timer_list timer;
11623 	spinlock_t lock;
11624 	refcount_t refcnt;
11625 	struct rb_root rb_fragments;
11626 	struct sk_buff *fragments_tail;
11627 	struct sk_buff *last_run_head;
11628 	ktime_t stamp;
11629 	int len;
11630 	int meat;
11631 	u8 mono_delivery_time;
11632 	__u8 flags;
11633 	u16 max_size;
11634 	struct fqdir *fqdir;
11635 	struct callback_head rcu;
11636 };
11637 
11638 enum tcp_ca_event {
11639 	CA_EVENT_TX_START = 0,
11640 	CA_EVENT_CWND_RESTART = 1,
11641 	CA_EVENT_COMPLETE_CWR = 2,
11642 	CA_EVENT_LOSS = 3,
11643 	CA_EVENT_ECN_NO_CE = 4,
11644 	CA_EVENT_ECN_IS_CE = 5,
11645 };
11646 
11647 struct ack_sample;
11648 
11649 struct rate_sample;
11650 
11651 union tcp_cc_info;
11652 
11653 struct tcp_congestion_ops {
11654 	u32 (*ssthresh)(struct sock *);
11655 	void (*cong_avoid)(struct sock *, u32, u32);
11656 	void (*set_state)(struct sock *, u8);
11657 	void (*cwnd_event)(struct sock *, enum tcp_ca_event);
11658 	void (*in_ack_event)(struct sock *, u32);
11659 	void (*pkts_acked)(struct sock *, const struct ack_sample *);
11660 	u32 (*min_tso_segs)(struct sock *);
11661 	void (*cong_control)(struct sock *, const struct rate_sample *);
11662 	u32 (*undo_cwnd)(struct sock *);
11663 	u32 (*sndbuf_expand)(struct sock *);
11664 	size_t (*get_info)(struct sock *, u32, int *, union tcp_cc_info *);
11665 	char name[16];
11666 	struct module *owner;
11667 	struct list_head list;
11668 	u32 key;
11669 	u32 flags;
11670 	void (*init)(struct sock *);
11671 	void (*release)(struct sock *);
11672 	long: 64;
11673 	long: 64;
11674 	long: 64;
11675 	long: 64;
11676 	long: 64;
11677 };
11678 
11679 typedef struct {} netdevice_tracker;
11680 
11681 struct xfrm_state;
11682 
11683 struct lwtunnel_state;
11684 
11685 struct dst_entry {
11686 	struct net_device *dev;
11687 	struct dst_ops *ops;
11688 	long unsigned int _metrics;
11689 	long unsigned int expires;
11690 	struct xfrm_state *xfrm;
11691 	int (*input)(struct sk_buff *);
11692 	int (*output)(struct net *, struct sock *, struct sk_buff *);
11693 	short unsigned int flags;
11694 	short int obsolete;
11695 	short unsigned int header_len;
11696 	short unsigned int trailer_len;
11697 	atomic_t __refcnt;
11698 	int __use;
11699 	long unsigned int lastuse;
11700 	struct lwtunnel_state *lwtstate;
11701 	struct callback_head callback_head;
11702 	short int error;
11703 	short int __pad;
11704 	__u32 tclassid;
11705 	netdevice_tracker dev_tracker;
11706 };
11707 
11708 enum nf_inet_hooks {
11709 	NF_INET_PRE_ROUTING = 0,
11710 	NF_INET_LOCAL_IN = 1,
11711 	NF_INET_FORWARD = 2,
11712 	NF_INET_LOCAL_OUT = 3,
11713 	NF_INET_POST_ROUTING = 4,
11714 	NF_INET_NUMHOOKS = 5,
11715 	NF_INET_INGRESS = 5,
11716 };
11717 
11718 enum {
11719 	NFPROTO_UNSPEC = 0,
11720 	NFPROTO_INET = 1,
11721 	NFPROTO_IPV4 = 2,
11722 	NFPROTO_ARP = 3,
11723 	NFPROTO_NETDEV = 5,
11724 	NFPROTO_BRIDGE = 7,
11725 	NFPROTO_IPV6 = 10,
11726 	NFPROTO_NUMPROTO = 11,
11727 };
11728 
11729 enum nf_log_type {
11730 	NF_LOG_TYPE_LOG = 0,
11731 	NF_LOG_TYPE_ULOG = 1,
11732 	NF_LOG_TYPE_MAX = 2,
11733 };
11734 
11735 typedef u8 u_int8_t;
11736 
11737 struct nf_loginfo;
11738 
11739 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 *);
11740 
11741 struct nf_logger {
11742 	char *name;
11743 	enum nf_log_type type;
11744 	nf_logfn *logfn;
11745 	struct module *me;
11746 };
11747 
11748 enum tcp_conntrack {
11749 	TCP_CONNTRACK_NONE = 0,
11750 	TCP_CONNTRACK_SYN_SENT = 1,
11751 	TCP_CONNTRACK_SYN_RECV = 2,
11752 	TCP_CONNTRACK_ESTABLISHED = 3,
11753 	TCP_CONNTRACK_FIN_WAIT = 4,
11754 	TCP_CONNTRACK_CLOSE_WAIT = 5,
11755 	TCP_CONNTRACK_LAST_ACK = 6,
11756 	TCP_CONNTRACK_TIME_WAIT = 7,
11757 	TCP_CONNTRACK_CLOSE = 8,
11758 	TCP_CONNTRACK_LISTEN = 9,
11759 	TCP_CONNTRACK_MAX = 10,
11760 	TCP_CONNTRACK_IGNORE = 11,
11761 	TCP_CONNTRACK_RETRANS = 12,
11762 	TCP_CONNTRACK_UNACK = 13,
11763 	TCP_CONNTRACK_TIMEOUT_MAX = 14,
11764 };
11765 
11766 enum ct_dccp_states {
11767 	CT_DCCP_NONE = 0,
11768 	CT_DCCP_REQUEST = 1,
11769 	CT_DCCP_RESPOND = 2,
11770 	CT_DCCP_PARTOPEN = 3,
11771 	CT_DCCP_OPEN = 4,
11772 	CT_DCCP_CLOSEREQ = 5,
11773 	CT_DCCP_CLOSING = 6,
11774 	CT_DCCP_TIMEWAIT = 7,
11775 	CT_DCCP_IGNORE = 8,
11776 	CT_DCCP_INVALID = 9,
11777 	__CT_DCCP_MAX = 10,
11778 };
11779 
11780 struct ip_conntrack_stat {
11781 	unsigned int found;
11782 	unsigned int invalid;
11783 	unsigned int insert;
11784 	unsigned int insert_failed;
11785 	unsigned int clash_resolve;
11786 	unsigned int drop;
11787 	unsigned int early_drop;
11788 	unsigned int error;
11789 	unsigned int expect_new;
11790 	unsigned int expect_create;
11791 	unsigned int expect_delete;
11792 	unsigned int search_restart;
11793 	unsigned int chaintoolong;
11794 };
11795 
11796 enum ip_conntrack_dir {
11797 	IP_CT_DIR_ORIGINAL = 0,
11798 	IP_CT_DIR_REPLY = 1,
11799 	IP_CT_DIR_MAX = 2,
11800 };
11801 
11802 enum sctp_conntrack {
11803 	SCTP_CONNTRACK_NONE = 0,
11804 	SCTP_CONNTRACK_CLOSED = 1,
11805 	SCTP_CONNTRACK_COOKIE_WAIT = 2,
11806 	SCTP_CONNTRACK_COOKIE_ECHOED = 3,
11807 	SCTP_CONNTRACK_ESTABLISHED = 4,
11808 	SCTP_CONNTRACK_SHUTDOWN_SENT = 5,
11809 	SCTP_CONNTRACK_SHUTDOWN_RECD = 6,
11810 	SCTP_CONNTRACK_SHUTDOWN_ACK_SENT = 7,
11811 	SCTP_CONNTRACK_HEARTBEAT_SENT = 8,
11812 	SCTP_CONNTRACK_HEARTBEAT_ACKED = 9,
11813 	SCTP_CONNTRACK_MAX = 10,
11814 };
11815 
11816 enum udp_conntrack {
11817 	UDP_CT_UNREPLIED = 0,
11818 	UDP_CT_REPLIED = 1,
11819 	UDP_CT_MAX = 2,
11820 };
11821 
11822 enum gre_conntrack {
11823 	GRE_CT_UNREPLIED = 0,
11824 	GRE_CT_REPLIED = 1,
11825 	GRE_CT_MAX = 2,
11826 };
11827 
11828 enum {
11829 	XFRM_POLICY_IN = 0,
11830 	XFRM_POLICY_OUT = 1,
11831 	XFRM_POLICY_FWD = 2,
11832 	XFRM_POLICY_MASK = 3,
11833 	XFRM_POLICY_MAX = 3,
11834 };
11835 
11836 enum netns_bpf_attach_type {
11837 	NETNS_BPF_INVALID = -1,
11838 	NETNS_BPF_FLOW_DISSECTOR = 0,
11839 	NETNS_BPF_SK_LOOKUP = 1,
11840 	MAX_NETNS_BPF_ATTACH_TYPE = 2,
11841 };
11842 
11843 struct pipe_buf_operations;
11844 
11845 struct pipe_buffer {
11846 	struct page *page;
11847 	unsigned int offset;
11848 	unsigned int len;
11849 	const struct pipe_buf_operations *ops;
11850 	unsigned int flags;
11851 	long unsigned int private;
11852 };
11853 
11854 struct pipe_buf_operations {
11855 	int (*confirm)(struct pipe_inode_info *, struct pipe_buffer *);
11856 	void (*release)(struct pipe_inode_info *, struct pipe_buffer *);
11857 	bool (*try_steal)(struct pipe_inode_info *, struct pipe_buffer *);
11858 	bool (*get)(struct pipe_inode_info *, struct pipe_buffer *);
11859 };
11860 
11861 struct skb_ext {
11862 	refcount_t refcnt;
11863 	u8 offset[3];
11864 	u8 chunks;
11865 	char data[0];
11866 };
11867 
11868 enum skb_ext_id {
11869 	SKB_EXT_BRIDGE_NF = 0,
11870 	SKB_EXT_SEC_PATH = 1,
11871 	TC_SKB_EXT = 2,
11872 	SKB_EXT_NUM = 3,
11873 };
11874 
11875 enum {
11876 	IORES_DESC_NONE = 0,
11877 	IORES_DESC_CRASH_KERNEL = 1,
11878 	IORES_DESC_ACPI_TABLES = 2,
11879 	IORES_DESC_ACPI_NV_STORAGE = 3,
11880 	IORES_DESC_PERSISTENT_MEMORY = 4,
11881 	IORES_DESC_PERSISTENT_MEMORY_LEGACY = 5,
11882 	IORES_DESC_DEVICE_PRIVATE_MEMORY = 6,
11883 	IORES_DESC_RESERVED = 7,
11884 	IORES_DESC_SOFT_RESERVED = 8,
11885 	IORES_DESC_CXL = 9,
11886 };
11887 
11888 struct static_key_false {
11889 	struct static_key key;
11890 };
11891 
11892 enum pageflags {
11893 	PG_locked = 0,
11894 	PG_referenced = 1,
11895 	PG_uptodate = 2,
11896 	PG_dirty = 3,
11897 	PG_lru = 4,
11898 	PG_active = 5,
11899 	PG_workingset = 6,
11900 	PG_waiters = 7,
11901 	PG_error = 8,
11902 	PG_slab = 9,
11903 	PG_owner_priv_1 = 10,
11904 	PG_arch_1 = 11,
11905 	PG_reserved = 12,
11906 	PG_private = 13,
11907 	PG_private_2 = 14,
11908 	PG_writeback = 15,
11909 	PG_head = 16,
11910 	PG_mappedtodisk = 17,
11911 	PG_reclaim = 18,
11912 	PG_swapbacked = 19,
11913 	PG_unevictable = 20,
11914 	PG_mlocked = 21,
11915 	__NR_PAGEFLAGS = 22,
11916 	PG_readahead = 18,
11917 	PG_anon_exclusive = 17,
11918 	PG_checked = 10,
11919 	PG_swapcache = 10,
11920 	PG_fscache = 14,
11921 	PG_pinned = 10,
11922 	PG_savepinned = 3,
11923 	PG_foreign = 10,
11924 	PG_xen_remapped = 10,
11925 	PG_slob_free = 13,
11926 	PG_isolated = 18,
11927 	PG_reported = 2,
11928 	PG_vmemmap_self_hosted = 10,
11929 };
11930 
11931 struct fc_log;
11932 
11933 struct p_log {
11934 	const char *prefix;
11935 	struct fc_log *log;
11936 };
11937 
11938 enum fs_context_purpose {
11939 	FS_CONTEXT_FOR_MOUNT = 0,
11940 	FS_CONTEXT_FOR_SUBMOUNT = 1,
11941 	FS_CONTEXT_FOR_RECONFIGURE = 2,
11942 };
11943 
11944 enum fs_context_phase {
11945 	FS_CONTEXT_CREATE_PARAMS = 0,
11946 	FS_CONTEXT_CREATING = 1,
11947 	FS_CONTEXT_AWAITING_MOUNT = 2,
11948 	FS_CONTEXT_AWAITING_RECONF = 3,
11949 	FS_CONTEXT_RECONF_PARAMS = 4,
11950 	FS_CONTEXT_RECONFIGURING = 5,
11951 	FS_CONTEXT_FAILED = 6,
11952 };
11953 
11954 struct fs_context_operations;
11955 
11956 struct fs_context {
11957 	const struct fs_context_operations *ops;
11958 	struct mutex uapi_mutex;
11959 	struct file_system_type *fs_type;
11960 	void *fs_private;
11961 	void *sget_key;
11962 	struct dentry *root;
11963 	struct user_namespace *user_ns;
11964 	struct net *net_ns;
11965 	const struct cred *cred;
11966 	struct p_log log;
11967 	const char *source;
11968 	void *security;
11969 	void *s_fs_info;
11970 	unsigned int sb_flags;
11971 	unsigned int sb_flags_mask;
11972 	unsigned int s_iflags;
11973 	unsigned int lsm_flags;
11974 	enum fs_context_purpose purpose: 8;
11975 	enum fs_context_phase phase: 8;
11976 	bool need_free: 1;
11977 	bool global: 1;
11978 	bool oldapi: 1;
11979 };
11980 
11981 struct audit_names;
11982 
11983 struct filename {
11984 	const char *name;
11985 	const char *uptr;
11986 	int refcnt;
11987 	struct audit_names *aname;
11988 	const char iname[0];
11989 };
11990 
11991 enum {
11992 	REGION_INTERSECTS = 0,
11993 	REGION_DISJOINT = 1,
11994 	REGION_MIXED = 2,
11995 };
11996 
11997 enum fs_value_type {
11998 	fs_value_is_undefined = 0,
11999 	fs_value_is_flag = 1,
12000 	fs_value_is_string = 2,
12001 	fs_value_is_blob = 3,
12002 	fs_value_is_filename = 4,
12003 	fs_value_is_file = 5,
12004 };
12005 
12006 struct fs_parameter {
12007 	const char *key;
12008 	enum fs_value_type type: 8;
12009 	union {
12010 		char *string;
12011 		void *blob;
12012 		struct filename *name;
12013 		struct file *file;
12014 	};
12015 	size_t size;
12016 	int dirfd;
12017 };
12018 
12019 struct fc_log {
12020 	refcount_t usage;
12021 	u8 head;
12022 	u8 tail;
12023 	u8 need_free;
12024 	struct module *owner;
12025 	char *buffer[8];
12026 };
12027 
12028 struct fs_context_operations {
12029 	void (*free)(struct fs_context *);
12030 	int (*dup)(struct fs_context *, struct fs_context *);
12031 	int (*parse_param)(struct fs_context *, struct fs_parameter *);
12032 	int (*parse_monolithic)(struct fs_context *, void *);
12033 	int (*get_tree)(struct fs_context *);
12034 	int (*reconfigure)(struct fs_context *);
12035 };
12036 
12037 struct pseudo_fs_context {
12038 	const struct super_operations *ops;
12039 	const struct xattr_handler **xattr;
12040 	const struct dentry_operations *dops;
12041 	long unsigned int magic;
12042 };
12043 
12044 typedef void (*dr_release_t)(struct device *, void *);
12045 
12046 typedef int (*dr_match_t)(struct device *, void *, void *);
12047 
12048 struct resource_entry {
12049 	struct list_head node;
12050 	struct resource *res;
12051 	resource_size_t offset;
12052 	struct resource __res;
12053 };
12054 
12055 struct resource_constraint {
12056 	resource_size_t min;
12057 	resource_size_t max;
12058 	resource_size_t align;
12059 	resource_size_t (*alignf)(void *, const struct resource *, resource_size_t, resource_size_t);
12060 	void *alignf_data;
12061 };
12062 
12063 enum {
12064 	MAX_IORES_LEVEL = 5,
12065 };
12066 
12067 struct region_devres {
12068 	struct resource *parent;
12069 	resource_size_t start;
12070 	resource_size_t n;
12071 };
12072 
12073 struct siginfo {
12074 	union {
12075 		struct {
12076 			int si_signo;
12077 			int si_errno;
12078 			int si_code;
12079 			union __sifields _sifields;
12080 		};
12081 		int _si_pad[32];
12082 	};
12083 };
12084 
12085 typedef struct siginfo siginfo_t;
12086 
12087 struct sigqueue {
12088 	struct list_head list;
12089 	int flags;
12090 	kernel_siginfo_t info;
12091 	struct ucounts *ucounts;
12092 };
12093 
12094 struct wait_bit_key {
12095 	void *flags;
12096 	int bit_nr;
12097 	long unsigned int timeout;
12098 };
12099 
12100 typedef int wait_bit_action_f(struct wait_bit_key *, int);
12101 
12102 struct ptrace_peeksiginfo_args {
12103 	__u64 off;
12104 	__u32 flags;
12105 	__s32 nr;
12106 };
12107 
12108 struct ptrace_syscall_info {
12109 	__u8 op;
12110 	__u8 pad[3];
12111 	__u32 arch;
12112 	__u64 instruction_pointer;
12113 	__u64 stack_pointer;
12114 	union {
12115 		struct {
12116 			__u64 nr;
12117 			__u64 args[6];
12118 		} entry;
12119 		struct {
12120 			__s64 rval;
12121 			__u8 is_error;
12122 		} exit;
12123 		struct {
12124 			__u64 nr;
12125 			__u64 args[6];
12126 			__u32 ret_data;
12127 		} seccomp;
12128 	};
12129 };
12130 
12131 struct ptrace_rseq_configuration {
12132 	__u64 rseq_abi_pointer;
12133 	__u32 rseq_abi_size;
12134 	__u32 signature;
12135 	__u32 flags;
12136 	__u32 pad;
12137 };
12138 
12139 struct membuf {
12140 	void *p;
12141 	size_t left;
12142 };
12143 
12144 struct user_regset;
12145 
12146 typedef int user_regset_active_fn(struct task_struct *, const struct user_regset *);
12147 
12148 typedef int user_regset_get2_fn(struct task_struct *, const struct user_regset *, struct membuf);
12149 
12150 typedef int user_regset_set_fn(struct task_struct *, const struct user_regset *, unsigned int, unsigned int, const void *, const void *);
12151 
12152 typedef int user_regset_writeback_fn(struct task_struct *, const struct user_regset *, int);
12153 
12154 struct user_regset {
12155 	user_regset_get2_fn *regset_get;
12156 	user_regset_set_fn *set;
12157 	user_regset_active_fn *active;
12158 	user_regset_writeback_fn *writeback;
12159 	unsigned int n;
12160 	unsigned int size;
12161 	unsigned int align;
12162 	unsigned int bias;
12163 	unsigned int core_note_type;
12164 };
12165 
12166 struct user_regset_view {
12167 	const char *name;
12168 	const struct user_regset *regsets;
12169 	unsigned int n;
12170 	u32 e_flags;
12171 	u16 e_machine;
12172 	u8 ei_osabi;
12173 };
12174 
12175 typedef __s16 s16;
12176 
12177 enum system_states {
12178 	SYSTEM_BOOTING = 0,
12179 	SYSTEM_SCHEDULING = 1,
12180 	SYSTEM_FREEING_INITMEM = 2,
12181 	SYSTEM_RUNNING = 3,
12182 	SYSTEM_HALT = 4,
12183 	SYSTEM_POWER_OFF = 5,
12184 	SYSTEM_RESTART = 6,
12185 	SYSTEM_SUSPEND = 7,
12186 };
12187 
12188 struct kprobe_insn_cache {
12189 	struct mutex mutex;
12190 	void * (*alloc)();
12191 	void (*free)(void *);
12192 	const char *sym;
12193 	struct list_head pages;
12194 	size_t insn_size;
12195 	int nr_garbage;
12196 };
12197 
12198 struct bpf_offloaded_map;
12199 
12200 struct bpf_map_dev_ops {
12201 	int (*map_get_next_key)(struct bpf_offloaded_map *, void *, void *);
12202 	int (*map_lookup_elem)(struct bpf_offloaded_map *, void *, void *);
12203 	int (*map_update_elem)(struct bpf_offloaded_map *, void *, void *, u64);
12204 	int (*map_delete_elem)(struct bpf_offloaded_map *, void *);
12205 };
12206 
12207 struct bpf_offloaded_map {
12208 	struct bpf_map map;
12209 	struct net_device *netdev;
12210 	const struct bpf_map_dev_ops *dev_ops;
12211 	void *dev_priv;
12212 	struct list_head offloads;
12213 	long: 64;
12214 	long: 64;
12215 	long: 64;
12216 };
12217 
12218 typedef u64 netdev_features_t;
12219 
12220 struct net_device_stats {
12221 	union {
12222 		long unsigned int rx_packets;
12223 		atomic_long_t __rx_packets;
12224 	};
12225 	union {
12226 		long unsigned int tx_packets;
12227 		atomic_long_t __tx_packets;
12228 	};
12229 	union {
12230 		long unsigned int rx_bytes;
12231 		atomic_long_t __rx_bytes;
12232 	};
12233 	union {
12234 		long unsigned int tx_bytes;
12235 		atomic_long_t __tx_bytes;
12236 	};
12237 	union {
12238 		long unsigned int rx_errors;
12239 		atomic_long_t __rx_errors;
12240 	};
12241 	union {
12242 		long unsigned int tx_errors;
12243 		atomic_long_t __tx_errors;
12244 	};
12245 	union {
12246 		long unsigned int rx_dropped;
12247 		atomic_long_t __rx_dropped;
12248 	};
12249 	union {
12250 		long unsigned int tx_dropped;
12251 		atomic_long_t __tx_dropped;
12252 	};
12253 	union {
12254 		long unsigned int multicast;
12255 		atomic_long_t __multicast;
12256 	};
12257 	union {
12258 		long unsigned int collisions;
12259 		atomic_long_t __collisions;
12260 	};
12261 	union {
12262 		long unsigned int rx_length_errors;
12263 		atomic_long_t __rx_length_errors;
12264 	};
12265 	union {
12266 		long unsigned int rx_over_errors;
12267 		atomic_long_t __rx_over_errors;
12268 	};
12269 	union {
12270 		long unsigned int rx_crc_errors;
12271 		atomic_long_t __rx_crc_errors;
12272 	};
12273 	union {
12274 		long unsigned int rx_frame_errors;
12275 		atomic_long_t __rx_frame_errors;
12276 	};
12277 	union {
12278 		long unsigned int rx_fifo_errors;
12279 		atomic_long_t __rx_fifo_errors;
12280 	};
12281 	union {
12282 		long unsigned int rx_missed_errors;
12283 		atomic_long_t __rx_missed_errors;
12284 	};
12285 	union {
12286 		long unsigned int tx_aborted_errors;
12287 		atomic_long_t __tx_aborted_errors;
12288 	};
12289 	union {
12290 		long unsigned int tx_carrier_errors;
12291 		atomic_long_t __tx_carrier_errors;
12292 	};
12293 	union {
12294 		long unsigned int tx_fifo_errors;
12295 		atomic_long_t __tx_fifo_errors;
12296 	};
12297 	union {
12298 		long unsigned int tx_heartbeat_errors;
12299 		atomic_long_t __tx_heartbeat_errors;
12300 	};
12301 	union {
12302 		long unsigned int tx_window_errors;
12303 		atomic_long_t __tx_window_errors;
12304 	};
12305 	union {
12306 		long unsigned int rx_compressed;
12307 		atomic_long_t __rx_compressed;
12308 	};
12309 	union {
12310 		long unsigned int tx_compressed;
12311 		atomic_long_t __tx_compressed;
12312 	};
12313 };
12314 
12315 struct netdev_hw_addr_list {
12316 	struct list_head list;
12317 	int count;
12318 	struct rb_root tree;
12319 };
12320 
12321 enum rx_handler_result {
12322 	RX_HANDLER_CONSUMED = 0,
12323 	RX_HANDLER_ANOTHER = 1,
12324 	RX_HANDLER_EXACT = 2,
12325 	RX_HANDLER_PASS = 3,
12326 };
12327 
12328 typedef enum rx_handler_result rx_handler_result_t;
12329 
12330 typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **);
12331 
12332 typedef struct {
12333 	struct net *net;
12334 } possible_net_t;
12335 
12336 enum netdev_ml_priv_type {
12337 	ML_PRIV_NONE = 0,
12338 	ML_PRIV_CAN = 1,
12339 };
12340 
12341 struct pcpu_dstats;
12342 
12343 struct garp_port;
12344 
12345 struct mrp_port;
12346 
12347 struct netdev_tc_txq {
12348 	u16 count;
12349 	u16 offset;
12350 };
12351 
12352 struct sfp_bus;
12353 
12354 struct udp_tunnel_nic;
12355 
12356 struct bpf_xdp_link;
12357 
12358 struct bpf_xdp_entity {
12359 	struct bpf_prog *prog;
12360 	struct bpf_xdp_link *link;
12361 };
12362 
12363 struct netdev_name_node;
12364 
12365 struct dev_ifalias;
12366 
12367 struct net_device_ops;
12368 
12369 struct net_device_core_stats;
12370 
12371 struct iw_handler_def;
12372 
12373 struct iw_public_data;
12374 
12375 struct ethtool_ops;
12376 
12377 struct l3mdev_ops;
12378 
12379 struct ndisc_ops;
12380 
12381 struct tlsdev_ops;
12382 
12383 struct header_ops;
12384 
12385 struct in_device;
12386 
12387 struct inet6_dev;
12388 
12389 struct vlan_info;
12390 
12391 struct wireless_dev;
12392 
12393 struct netdev_rx_queue;
12394 
12395 struct mini_Qdisc;
12396 
12397 struct netdev_queue;
12398 
12399 struct cpu_rmap;
12400 
12401 struct Qdisc;
12402 
12403 struct xdp_dev_bulk_queue;
12404 
12405 struct xps_dev_maps;
12406 
12407 struct netpoll_info;
12408 
12409 struct pcpu_lstats;
12410 
12411 struct pcpu_sw_netstats;
12412 
12413 struct rtnl_link_ops;
12414 
12415 struct netprio_map;
12416 
12417 struct phy_device;
12418 
12419 struct macsec_ops;
12420 
12421 struct udp_tunnel_nic_info;
12422 
12423 struct rtnl_hw_stats64;
12424 
12425 struct devlink_port;
12426 
12427 struct net_device {
12428 	char name[16];
12429 	struct netdev_name_node *name_node;
12430 	struct dev_ifalias *ifalias;
12431 	long unsigned int mem_end;
12432 	long unsigned int mem_start;
12433 	long unsigned int base_addr;
12434 	long unsigned int state;
12435 	struct list_head dev_list;
12436 	struct list_head napi_list;
12437 	struct list_head unreg_list;
12438 	struct list_head close_list;
12439 	struct list_head ptype_all;
12440 	struct list_head ptype_specific;
12441 	struct {
12442 		struct list_head upper;
12443 		struct list_head lower;
12444 	} adj_list;
12445 	unsigned int flags;
12446 	long long unsigned int priv_flags;
12447 	const struct net_device_ops *netdev_ops;
12448 	int ifindex;
12449 	short unsigned int gflags;
12450 	short unsigned int hard_header_len;
12451 	unsigned int mtu;
12452 	short unsigned int needed_headroom;
12453 	short unsigned int needed_tailroom;
12454 	netdev_features_t features;
12455 	netdev_features_t hw_features;
12456 	netdev_features_t wanted_features;
12457 	netdev_features_t vlan_features;
12458 	netdev_features_t hw_enc_features;
12459 	netdev_features_t mpls_features;
12460 	netdev_features_t gso_partial_features;
12461 	unsigned int min_mtu;
12462 	unsigned int max_mtu;
12463 	short unsigned int type;
12464 	unsigned char min_header_len;
12465 	unsigned char name_assign_type;
12466 	int group;
12467 	struct net_device_stats stats;
12468 	struct net_device_core_stats *core_stats;
12469 	atomic_t carrier_up_count;
12470 	atomic_t carrier_down_count;
12471 	const struct iw_handler_def *wireless_handlers;
12472 	struct iw_public_data *wireless_data;
12473 	const struct ethtool_ops *ethtool_ops;
12474 	const struct l3mdev_ops *l3mdev_ops;
12475 	const struct ndisc_ops *ndisc_ops;
12476 	const struct tlsdev_ops *tlsdev_ops;
12477 	const struct header_ops *header_ops;
12478 	unsigned char operstate;
12479 	unsigned char link_mode;
12480 	unsigned char if_port;
12481 	unsigned char dma;
12482 	unsigned char perm_addr[32];
12483 	unsigned char addr_assign_type;
12484 	unsigned char addr_len;
12485 	unsigned char upper_level;
12486 	unsigned char lower_level;
12487 	short unsigned int neigh_priv_len;
12488 	short unsigned int dev_id;
12489 	short unsigned int dev_port;
12490 	short unsigned int padded;
12491 	spinlock_t addr_list_lock;
12492 	int irq;
12493 	struct netdev_hw_addr_list uc;
12494 	struct netdev_hw_addr_list mc;
12495 	struct netdev_hw_addr_list dev_addrs;
12496 	struct kset *queues_kset;
12497 	unsigned int promiscuity;
12498 	unsigned int allmulti;
12499 	bool uc_promisc;
12500 	struct in_device *ip_ptr;
12501 	struct inet6_dev *ip6_ptr;
12502 	struct vlan_info *vlan_info;
12503 	struct wireless_dev *ieee80211_ptr;
12504 	const unsigned char *dev_addr;
12505 	struct netdev_rx_queue *_rx;
12506 	unsigned int num_rx_queues;
12507 	unsigned int real_num_rx_queues;
12508 	struct bpf_prog *xdp_prog;
12509 	long unsigned int gro_flush_timeout;
12510 	int napi_defer_hard_irqs;
12511 	unsigned int gro_max_size;
12512 	rx_handler_func_t *rx_handler;
12513 	void *rx_handler_data;
12514 	struct mini_Qdisc *miniq_ingress;
12515 	struct netdev_queue *ingress_queue;
12516 	struct nf_hook_entries *nf_hooks_ingress;
12517 	unsigned char broadcast[32];
12518 	struct cpu_rmap *rx_cpu_rmap;
12519 	struct hlist_node index_hlist;
12520 	long: 64;
12521 	long: 64;
12522 	long: 64;
12523 	long: 64;
12524 	long: 64;
12525 	long: 64;
12526 	struct netdev_queue *_tx;
12527 	unsigned int num_tx_queues;
12528 	unsigned int real_num_tx_queues;
12529 	struct Qdisc *qdisc;
12530 	unsigned int tx_queue_len;
12531 	spinlock_t tx_global_lock;
12532 	struct xdp_dev_bulk_queue *xdp_bulkq;
12533 	struct xps_dev_maps *xps_maps[2];
12534 	struct mini_Qdisc *miniq_egress;
12535 	struct nf_hook_entries *nf_hooks_egress;
12536 	struct hlist_head qdisc_hash[16];
12537 	struct timer_list watchdog_timer;
12538 	int watchdog_timeo;
12539 	u32 proto_down_reason;
12540 	struct list_head todo_list;
12541 	int *pcpu_refcnt;
12542 	struct ref_tracker_dir refcnt_tracker;
12543 	struct list_head link_watch_list;
12544 	enum {
12545 		NETREG_UNINITIALIZED = 0,
12546 		NETREG_REGISTERED = 1,
12547 		NETREG_UNREGISTERING = 2,
12548 		NETREG_UNREGISTERED = 3,
12549 		NETREG_RELEASED = 4,
12550 		NETREG_DUMMY = 5,
12551 	} reg_state: 8;
12552 	bool dismantle;
12553 	enum {
12554 		RTNL_LINK_INITIALIZED = 0,
12555 		RTNL_LINK_INITIALIZING = 1,
12556 	} rtnl_link_state: 16;
12557 	bool needs_free_netdev;
12558 	void (*priv_destructor)(struct net_device *);
12559 	struct netpoll_info *npinfo;
12560 	possible_net_t nd_net;
12561 	void *ml_priv;
12562 	enum netdev_ml_priv_type ml_priv_type;
12563 	union {
12564 		struct pcpu_lstats *lstats;
12565 		struct pcpu_sw_netstats *tstats;
12566 		struct pcpu_dstats *dstats;
12567 	};
12568 	struct garp_port *garp_port;
12569 	struct mrp_port *mrp_port;
12570 	struct device dev;
12571 	const struct attribute_group *sysfs_groups[4];
12572 	const struct attribute_group *sysfs_rx_queue_group;
12573 	const struct rtnl_link_ops *rtnl_link_ops;
12574 	unsigned int gso_max_size;
12575 	unsigned int tso_max_size;
12576 	u16 gso_max_segs;
12577 	u16 tso_max_segs;
12578 	s16 num_tc;
12579 	struct netdev_tc_txq tc_to_txq[16];
12580 	u8 prio_tc_map[16];
12581 	unsigned int fcoe_ddp_xid;
12582 	struct netprio_map *priomap;
12583 	struct phy_device *phydev;
12584 	struct sfp_bus *sfp_bus;
12585 	struct lock_class_key *qdisc_tx_busylock;
12586 	bool proto_down;
12587 	unsigned int wol_enabled: 1;
12588 	unsigned int threaded: 1;
12589 	struct list_head net_notifier_list;
12590 	const struct macsec_ops *macsec_ops;
12591 	const struct udp_tunnel_nic_info *udp_tunnel_nic_info;
12592 	struct udp_tunnel_nic *udp_tunnel_nic;
12593 	struct bpf_xdp_entity xdp_state[3];
12594 	u8 dev_addr_shadow[32];
12595 	netdevice_tracker linkwatch_dev_tracker;
12596 	netdevice_tracker watchdog_dev_tracker;
12597 	netdevice_tracker dev_registered_tracker;
12598 	struct rtnl_hw_stats64 *offload_xstats_l3;
12599 	struct devlink_port *devlink_port;
12600 	long: 64;
12601 	long: 64;
12602 	long: 64;
12603 	long: 64;
12604 	long: 64;
12605 	long: 64;
12606 };
12607 
12608 typedef struct {
12609 	local64_t v;
12610 } u64_stats_t;
12611 
12612 struct bpf_prog_stats {
12613 	u64_stats_t cnt;
12614 	u64_stats_t nsecs;
12615 	u64_stats_t misses;
12616 	struct u64_stats_sync syncp;
12617 	long: 64;
12618 };
12619 
12620 struct sock_fprog_kern {
12621 	u16 len;
12622 	struct sock_filter *filter;
12623 };
12624 
12625 typedef short unsigned int __kernel_sa_family_t;
12626 
12627 typedef __kernel_sa_family_t sa_family_t;
12628 
12629 struct sockaddr {
12630 	sa_family_t sa_family;
12631 	union {
12632 		char sa_data_min[14];
12633 		struct {
12634 			struct {			} __empty_sa_data;
12635 			char sa_data[0];
12636 		};
12637 	};
12638 };
12639 
12640 typedef struct {
12641 	unsigned int clock_rate;
12642 	unsigned int clock_type;
12643 	short unsigned int loopback;
12644 } sync_serial_settings;
12645 
12646 typedef struct {
12647 	unsigned int clock_rate;
12648 	unsigned int clock_type;
12649 	short unsigned int loopback;
12650 	unsigned int slot_map;
12651 } te1_settings;
12652 
12653 typedef struct {
12654 	short unsigned int encoding;
12655 	short unsigned int parity;
12656 } raw_hdlc_proto;
12657 
12658 typedef struct {
12659 	unsigned int t391;
12660 	unsigned int t392;
12661 	unsigned int n391;
12662 	unsigned int n392;
12663 	unsigned int n393;
12664 	short unsigned int lmi;
12665 	short unsigned int dce;
12666 } fr_proto;
12667 
12668 typedef struct {
12669 	unsigned int dlci;
12670 } fr_proto_pvc;
12671 
12672 typedef struct {
12673 	unsigned int dlci;
12674 	char master[16];
12675 } fr_proto_pvc_info;
12676 
12677 typedef struct {
12678 	unsigned int interval;
12679 	unsigned int timeout;
12680 } cisco_proto;
12681 
12682 typedef struct {
12683 	short unsigned int dce;
12684 	unsigned int modulo;
12685 	unsigned int window;
12686 	unsigned int t1;
12687 	unsigned int t2;
12688 	unsigned int n2;
12689 } x25_hdlc_proto;
12690 
12691 struct ifmap {
12692 	long unsigned int mem_start;
12693 	long unsigned int mem_end;
12694 	short unsigned int base_addr;
12695 	unsigned char irq;
12696 	unsigned char dma;
12697 	unsigned char port;
12698 };
12699 
12700 struct if_settings {
12701 	unsigned int type;
12702 	unsigned int size;
12703 	union {
12704 		raw_hdlc_proto *raw_hdlc;
12705 		cisco_proto *cisco;
12706 		fr_proto *fr;
12707 		fr_proto_pvc *fr_pvc;
12708 		fr_proto_pvc_info *fr_pvc_info;
12709 		x25_hdlc_proto *x25;
12710 		sync_serial_settings *sync;
12711 		te1_settings *te1;
12712 	} ifs_ifsu;
12713 };
12714 
12715 struct ifreq {
12716 	union {
12717 		char ifrn_name[16];
12718 	} ifr_ifrn;
12719 	union {
12720 		struct sockaddr ifru_addr;
12721 		struct sockaddr ifru_dstaddr;
12722 		struct sockaddr ifru_broadaddr;
12723 		struct sockaddr ifru_netmask;
12724 		struct sockaddr ifru_hwaddr;
12725 		short int ifru_flags;
12726 		int ifru_ivalue;
12727 		int ifru_mtu;
12728 		struct ifmap ifru_map;
12729 		char ifru_slave[16];
12730 		char ifru_newname[16];
12731 		void *ifru_data;
12732 		struct if_settings ifru_settings;
12733 	} ifr_ifru;
12734 };
12735 
12736 struct scatterlist {
12737 	long unsigned int page_link;
12738 	unsigned int offset;
12739 	unsigned int length;
12740 	dma_addr_t dma_address;
12741 };
12742 
12743 struct skb_shared_hwtstamps {
12744 	union {
12745 		ktime_t hwtstamp;
12746 		void *netdev_data;
12747 	};
12748 };
12749 
12750 struct dql {
12751 	unsigned int num_queued;
12752 	unsigned int adj_limit;
12753 	unsigned int last_obj_cnt;
12754 	long: 32;
12755 	long: 64;
12756 	long: 64;
12757 	long: 64;
12758 	long: 64;
12759 	long: 64;
12760 	long: 64;
12761 	unsigned int limit;
12762 	unsigned int num_completed;
12763 	unsigned int prev_ovlimit;
12764 	unsigned int prev_num_queued;
12765 	unsigned int prev_last_obj_cnt;
12766 	unsigned int lowest_slack;
12767 	long unsigned int slack_start_time;
12768 	unsigned int max_limit;
12769 	unsigned int min_limit;
12770 	unsigned int slack_hold_time;
12771 	long: 32;
12772 	long: 64;
12773 	long: 64;
12774 };
12775 
12776 struct hh_cache {
12777 	unsigned int hh_len;
12778 	seqlock_t hh_lock;
12779 	long unsigned int hh_data[12];
12780 };
12781 
12782 struct neigh_table;
12783 
12784 struct neigh_parms;
12785 
12786 struct neigh_ops;
12787 
12788 struct neighbour {
12789 	struct neighbour *next;
12790 	struct neigh_table *tbl;
12791 	struct neigh_parms *parms;
12792 	long unsigned int confirmed;
12793 	long unsigned int updated;
12794 	rwlock_t lock;
12795 	refcount_t refcnt;
12796 	unsigned int arp_queue_len_bytes;
12797 	struct sk_buff_head arp_queue;
12798 	struct timer_list timer;
12799 	long unsigned int used;
12800 	atomic_t probes;
12801 	u8 nud_state;
12802 	u8 type;
12803 	u8 dead;
12804 	u8 protocol;
12805 	u32 flags;
12806 	seqlock_t ha_lock;
12807 	int: 32;
12808 	unsigned char ha[32];
12809 	struct hh_cache hh;
12810 	int (*output)(struct neighbour *, struct sk_buff *);
12811 	const struct neigh_ops *ops;
12812 	struct list_head gc_list;
12813 	struct list_head managed_list;
12814 	struct callback_head rcu;
12815 	struct net_device *dev;
12816 	netdevice_tracker dev_tracker;
12817 	u8 primary_key[0];
12818 };
12819 
12820 struct netprio_map {
12821 	struct callback_head rcu;
12822 	u32 priomap_len;
12823 	u32 priomap[0];
12824 };
12825 
12826 struct xdp_mem_info {
12827 	u32 type;
12828 	u32 id;
12829 };
12830 
12831 struct xdp_rxq_info {
12832 	struct net_device *dev;
12833 	u32 queue_index;
12834 	u32 reg_state;
12835 	struct xdp_mem_info mem;
12836 	unsigned int napi_id;
12837 	u32 frag_size;
12838 	long: 64;
12839 	long: 64;
12840 	long: 64;
12841 	long: 64;
12842 };
12843 
12844 struct xdp_txq_info {
12845 	struct net_device *dev;
12846 };
12847 
12848 struct xdp_buff {
12849 	void *data;
12850 	void *data_end;
12851 	void *data_meta;
12852 	void *data_hard_start;
12853 	struct xdp_rxq_info *rxq;
12854 	struct xdp_txq_info *txq;
12855 	u32 frame_sz;
12856 	u32 flags;
12857 };
12858 
12859 struct xdp_frame {
12860 	void *data;
12861 	u16 len;
12862 	u16 headroom;
12863 	u32 metasize;
12864 	struct xdp_mem_info mem;
12865 	struct net_device *dev_rx;
12866 	u32 frame_sz;
12867 	u32 flags;
12868 };
12869 
12870 struct nlmsghdr {
12871 	__u32 nlmsg_len;
12872 	__u16 nlmsg_type;
12873 	__u16 nlmsg_flags;
12874 	__u32 nlmsg_seq;
12875 	__u32 nlmsg_pid;
12876 };
12877 
12878 struct nlattr {
12879 	__u16 nla_len;
12880 	__u16 nla_type;
12881 };
12882 
12883 struct nla_policy;
12884 
12885 struct netlink_ext_ack {
12886 	const char *_msg;
12887 	const struct nlattr *bad_attr;
12888 	const struct nla_policy *policy;
12889 	const struct nlattr *miss_nest;
12890 	u16 miss_type;
12891 	u8 cookie[20];
12892 	u8 cookie_len;
12893 	char _msg_buf[80];
12894 };
12895 
12896 struct netlink_range_validation;
12897 
12898 struct netlink_range_validation_signed;
12899 
12900 struct nla_policy {
12901 	u8 type;
12902 	u8 validation_type;
12903 	u16 len;
12904 	union {
12905 		u16 strict_start_type;
12906 		const u32 bitfield32_valid;
12907 		const u32 mask;
12908 		const char *reject_message;
12909 		const struct nla_policy *nested_policy;
12910 		struct netlink_range_validation *range;
12911 		struct netlink_range_validation_signed *range_signed;
12912 		struct {
12913 			s16 min;
12914 			s16 max;
12915 		};
12916 		int (*validate)(const struct nlattr *, struct netlink_ext_ack *);
12917 	};
12918 };
12919 
12920 struct netlink_callback {
12921 	struct sk_buff *skb;
12922 	const struct nlmsghdr *nlh;
12923 	int (*dump)(struct sk_buff *, struct netlink_callback *);
12924 	int (*done)(struct netlink_callback *);
12925 	void *data;
12926 	struct module *module;
12927 	struct netlink_ext_ack *extack;
12928 	u16 family;
12929 	u16 answer_flags;
12930 	u32 min_dump_alloc;
12931 	unsigned int prev_seq;
12932 	unsigned int seq;
12933 	bool strict_check;
12934 	union {
12935 		u8 ctx[48];
12936 		long int args[6];
12937 	};
12938 };
12939 
12940 struct ndmsg {
12941 	__u8 ndm_family;
12942 	__u8 ndm_pad1;
12943 	__u16 ndm_pad2;
12944 	__s32 ndm_ifindex;
12945 	__u16 ndm_state;
12946 	__u8 ndm_flags;
12947 	__u8 ndm_type;
12948 };
12949 
12950 struct rtnl_link_stats64 {
12951 	__u64 rx_packets;
12952 	__u64 tx_packets;
12953 	__u64 rx_bytes;
12954 	__u64 tx_bytes;
12955 	__u64 rx_errors;
12956 	__u64 tx_errors;
12957 	__u64 rx_dropped;
12958 	__u64 tx_dropped;
12959 	__u64 multicast;
12960 	__u64 collisions;
12961 	__u64 rx_length_errors;
12962 	__u64 rx_over_errors;
12963 	__u64 rx_crc_errors;
12964 	__u64 rx_frame_errors;
12965 	__u64 rx_fifo_errors;
12966 	__u64 rx_missed_errors;
12967 	__u64 tx_aborted_errors;
12968 	__u64 tx_carrier_errors;
12969 	__u64 tx_fifo_errors;
12970 	__u64 tx_heartbeat_errors;
12971 	__u64 tx_window_errors;
12972 	__u64 rx_compressed;
12973 	__u64 tx_compressed;
12974 	__u64 rx_nohandler;
12975 	__u64 rx_otherhost_dropped;
12976 };
12977 
12978 struct rtnl_hw_stats64 {
12979 	__u64 rx_packets;
12980 	__u64 tx_packets;
12981 	__u64 rx_bytes;
12982 	__u64 tx_bytes;
12983 	__u64 rx_errors;
12984 	__u64 tx_errors;
12985 	__u64 rx_dropped;
12986 	__u64 tx_dropped;
12987 	__u64 multicast;
12988 };
12989 
12990 struct ifla_vf_guid {
12991 	__u32 vf;
12992 	__u64 guid;
12993 };
12994 
12995 struct ifla_vf_stats {
12996 	__u64 rx_packets;
12997 	__u64 tx_packets;
12998 	__u64 rx_bytes;
12999 	__u64 tx_bytes;
13000 	__u64 broadcast;
13001 	__u64 multicast;
13002 	__u64 rx_dropped;
13003 	__u64 tx_dropped;
13004 };
13005 
13006 struct ifla_vf_info {
13007 	__u32 vf;
13008 	__u8 mac[32];
13009 	__u32 vlan;
13010 	__u32 qos;
13011 	__u32 spoofchk;
13012 	__u32 linkstate;
13013 	__u32 min_tx_rate;
13014 	__u32 max_tx_rate;
13015 	__u32 rss_query_en;
13016 	__u32 trusted;
13017 	__be16 vlan_proto;
13018 };
13019 
13020 struct tc_stats {
13021 	__u64 bytes;
13022 	__u32 packets;
13023 	__u32 drops;
13024 	__u32 overlimits;
13025 	__u32 bps;
13026 	__u32 pps;
13027 	__u32 qlen;
13028 	__u32 backlog;
13029 };
13030 
13031 struct tc_sizespec {
13032 	unsigned char cell_log;
13033 	unsigned char size_log;
13034 	short int cell_align;
13035 	int overhead;
13036 	unsigned int linklayer;
13037 	unsigned int mpu;
13038 	unsigned int mtu;
13039 	unsigned int tsize;
13040 };
13041 
13042 enum netdev_tx {
13043 	__NETDEV_TX_MIN = -2147483648,
13044 	NETDEV_TX_OK = 0,
13045 	NETDEV_TX_BUSY = 16,
13046 };
13047 
13048 typedef enum netdev_tx netdev_tx_t;
13049 
13050 struct net_device_core_stats {
13051 	long unsigned int rx_dropped;
13052 	long unsigned int tx_dropped;
13053 	long unsigned int rx_nohandler;
13054 	long unsigned int rx_otherhost_dropped;
13055 };
13056 
13057 struct header_ops {
13058 	int (*create)(struct sk_buff *, struct net_device *, short unsigned int, const void *, const void *, unsigned int);
13059 	int (*parse)(const struct sk_buff *, unsigned char *);
13060 	int (*cache)(const struct neighbour *, struct hh_cache *, __be16);
13061 	void (*cache_update)(struct hh_cache *, const struct net_device *, const unsigned char *);
13062 	bool (*validate)(const char *, unsigned int);
13063 	__be16 (*parse_protocol)(const struct sk_buff *);
13064 };
13065 
13066 struct xsk_buff_pool;
13067 
13068 struct netdev_queue {
13069 	struct net_device *dev;
13070 	netdevice_tracker dev_tracker;
13071 	struct Qdisc *qdisc;
13072 	struct Qdisc *qdisc_sleeping;
13073 	struct kobject kobj;
13074 	int numa_node;
13075 	long unsigned int tx_maxrate;
13076 	atomic_long_t trans_timeout;
13077 	struct net_device *sb_dev;
13078 	struct xsk_buff_pool *pool;
13079 	spinlock_t _xmit_lock;
13080 	int xmit_lock_owner;
13081 	long unsigned int trans_start;
13082 	long unsigned int state;
13083 	long: 64;
13084 	long: 64;
13085 	long: 64;
13086 	long: 64;
13087 	long: 64;
13088 	struct dql dql;
13089 };
13090 
13091 struct net_rate_estimator;
13092 
13093 struct qdisc_skb_head {
13094 	struct sk_buff *head;
13095 	struct sk_buff *tail;
13096 	__u32 qlen;
13097 	spinlock_t lock;
13098 };
13099 
13100 struct gnet_stats_basic_sync {
13101 	u64_stats_t bytes;
13102 	u64_stats_t packets;
13103 	struct u64_stats_sync syncp;
13104 };
13105 
13106 struct gnet_stats_queue {
13107 	__u32 qlen;
13108 	__u32 backlog;
13109 	__u32 drops;
13110 	__u32 requeues;
13111 	__u32 overlimits;
13112 };
13113 
13114 struct Qdisc_ops;
13115 
13116 struct qdisc_size_table;
13117 
13118 struct Qdisc {
13119 	int (*enqueue)(struct sk_buff *, struct Qdisc *, struct sk_buff **);
13120 	struct sk_buff * (*dequeue)(struct Qdisc *);
13121 	unsigned int flags;
13122 	u32 limit;
13123 	const struct Qdisc_ops *ops;
13124 	struct qdisc_size_table *stab;
13125 	struct hlist_node hash;
13126 	u32 handle;
13127 	u32 parent;
13128 	struct netdev_queue *dev_queue;
13129 	struct net_rate_estimator *rate_est;
13130 	struct gnet_stats_basic_sync *cpu_bstats;
13131 	struct gnet_stats_queue *cpu_qstats;
13132 	int pad;
13133 	refcount_t refcnt;
13134 	long: 64;
13135 	long: 64;
13136 	long: 64;
13137 	struct sk_buff_head gso_skb;
13138 	struct qdisc_skb_head q;
13139 	struct gnet_stats_basic_sync bstats;
13140 	struct gnet_stats_queue qstats;
13141 	long unsigned int state;
13142 	long unsigned int state2;
13143 	struct Qdisc *next_sched;
13144 	struct sk_buff_head skb_bad_txq;
13145 	long: 64;
13146 	long: 64;
13147 	long: 64;
13148 	long: 64;
13149 	long: 64;
13150 	long: 64;
13151 	long: 64;
13152 	spinlock_t busylock;
13153 	spinlock_t seqlock;
13154 	struct callback_head rcu;
13155 	netdevice_tracker dev_tracker;
13156 	long: 64;
13157 	long: 64;
13158 	long: 64;
13159 	long: 64;
13160 	long: 64;
13161 	long int privdata[0];
13162 };
13163 
13164 struct rps_map {
13165 	unsigned int len;
13166 	struct callback_head rcu;
13167 	u16 cpus[0];
13168 };
13169 
13170 struct rps_dev_flow {
13171 	u16 cpu;
13172 	u16 filter;
13173 	unsigned int last_qtail;
13174 };
13175 
13176 struct rps_dev_flow_table {
13177 	unsigned int mask;
13178 	struct callback_head rcu;
13179 	struct rps_dev_flow flows[0];
13180 };
13181 
13182 struct netdev_rx_queue {
13183 	struct xdp_rxq_info xdp_rxq;
13184 	struct rps_map *rps_map;
13185 	struct rps_dev_flow_table *rps_flow_table;
13186 	struct kobject kobj;
13187 	struct net_device *dev;
13188 	netdevice_tracker dev_tracker;
13189 	struct xsk_buff_pool *pool;
13190 	long: 64;
13191 	long: 64;
13192 	long: 64;
13193 	long: 64;
13194 };
13195 
13196 struct xps_map {
13197 	unsigned int len;
13198 	unsigned int alloc_len;
13199 	struct callback_head rcu;
13200 	u16 queues[0];
13201 };
13202 
13203 struct xps_dev_maps {
13204 	struct callback_head rcu;
13205 	unsigned int nr_ids;
13206 	s16 num_tc;
13207 	struct xps_map *attr_map[0];
13208 };
13209 
13210 struct netdev_fcoe_hbainfo {
13211 	char manufacturer[64];
13212 	char serial_number[64];
13213 	char hardware_version[64];
13214 	char driver_version[64];
13215 	char optionrom_version[64];
13216 	char firmware_version[64];
13217 	char model[256];
13218 	char model_description[256];
13219 };
13220 
13221 struct netdev_phys_item_id {
13222 	unsigned char id[32];
13223 	unsigned char id_len;
13224 };
13225 
13226 enum net_device_path_type {
13227 	DEV_PATH_ETHERNET = 0,
13228 	DEV_PATH_VLAN = 1,
13229 	DEV_PATH_BRIDGE = 2,
13230 	DEV_PATH_PPPOE = 3,
13231 	DEV_PATH_DSA = 4,
13232 	DEV_PATH_MTK_WDMA = 5,
13233 };
13234 
13235 struct net_device_path {
13236 	enum net_device_path_type type;
13237 	const struct net_device *dev;
13238 	union {
13239 		struct {
13240 			u16 id;
13241 			__be16 proto;
13242 			u8 h_dest[6];
13243 		} encap;
13244 		struct {
13245 			enum {
13246 				DEV_PATH_BR_VLAN_KEEP = 0,
13247 				DEV_PATH_BR_VLAN_TAG = 1,
13248 				DEV_PATH_BR_VLAN_UNTAG = 2,
13249 				DEV_PATH_BR_VLAN_UNTAG_HW = 3,
13250 			} vlan_mode;
13251 			u16 vlan_id;
13252 			__be16 vlan_proto;
13253 		} bridge;
13254 		struct {
13255 			int port;
13256 			u16 proto;
13257 		} dsa;
13258 		struct {
13259 			u8 wdma_idx;
13260 			u8 queue;
13261 			u16 wcid;
13262 			u8 bss;
13263 		} mtk_wdma;
13264 	};
13265 };
13266 
13267 struct net_device_path_ctx {
13268 	const struct net_device *dev;
13269 	u8 daddr[6];
13270 	int num_vlans;
13271 	struct {
13272 		u16 id;
13273 		__be16 proto;
13274 	} vlan[2];
13275 };
13276 
13277 enum tc_setup_type {
13278 	TC_QUERY_CAPS = 0,
13279 	TC_SETUP_QDISC_MQPRIO = 1,
13280 	TC_SETUP_CLSU32 = 2,
13281 	TC_SETUP_CLSFLOWER = 3,
13282 	TC_SETUP_CLSMATCHALL = 4,
13283 	TC_SETUP_CLSBPF = 5,
13284 	TC_SETUP_BLOCK = 6,
13285 	TC_SETUP_QDISC_CBS = 7,
13286 	TC_SETUP_QDISC_RED = 8,
13287 	TC_SETUP_QDISC_PRIO = 9,
13288 	TC_SETUP_QDISC_MQ = 10,
13289 	TC_SETUP_QDISC_ETF = 11,
13290 	TC_SETUP_ROOT_QDISC = 12,
13291 	TC_SETUP_QDISC_GRED = 13,
13292 	TC_SETUP_QDISC_TAPRIO = 14,
13293 	TC_SETUP_FT = 15,
13294 	TC_SETUP_QDISC_ETS = 16,
13295 	TC_SETUP_QDISC_TBF = 17,
13296 	TC_SETUP_QDISC_FIFO = 18,
13297 	TC_SETUP_QDISC_HTB = 19,
13298 	TC_SETUP_ACT = 20,
13299 };
13300 
13301 enum bpf_netdev_command {
13302 	XDP_SETUP_PROG = 0,
13303 	XDP_SETUP_PROG_HW = 1,
13304 	BPF_OFFLOAD_MAP_ALLOC = 2,
13305 	BPF_OFFLOAD_MAP_FREE = 3,
13306 	XDP_SETUP_XSK_POOL = 4,
13307 };
13308 
13309 struct netdev_bpf {
13310 	enum bpf_netdev_command command;
13311 	union {
13312 		struct {
13313 			u32 flags;
13314 			struct bpf_prog *prog;
13315 			struct netlink_ext_ack *extack;
13316 		};
13317 		struct {
13318 			struct bpf_offloaded_map *offmap;
13319 		};
13320 		struct {
13321 			struct xsk_buff_pool *pool;
13322 			u16 queue_id;
13323 		} xsk;
13324 	};
13325 };
13326 
13327 struct dev_ifalias {
13328 	struct callback_head rcuhead;
13329 	char ifalias[0];
13330 };
13331 
13332 struct ip_tunnel_parm;
13333 
13334 struct net_device_ops {
13335 	int (*ndo_init)(struct net_device *);
13336 	void (*ndo_uninit)(struct net_device *);
13337 	int (*ndo_open)(struct net_device *);
13338 	int (*ndo_stop)(struct net_device *);
13339 	netdev_tx_t (*ndo_start_xmit)(struct sk_buff *, struct net_device *);
13340 	netdev_features_t (*ndo_features_check)(struct sk_buff *, struct net_device *, netdev_features_t);
13341 	u16 (*ndo_select_queue)(struct net_device *, struct sk_buff *, struct net_device *);
13342 	void (*ndo_change_rx_flags)(struct net_device *, int);
13343 	void (*ndo_set_rx_mode)(struct net_device *);
13344 	int (*ndo_set_mac_address)(struct net_device *, void *);
13345 	int (*ndo_validate_addr)(struct net_device *);
13346 	int (*ndo_do_ioctl)(struct net_device *, struct ifreq *, int);
13347 	int (*ndo_eth_ioctl)(struct net_device *, struct ifreq *, int);
13348 	int (*ndo_siocbond)(struct net_device *, struct ifreq *, int);
13349 	int (*ndo_siocwandev)(struct net_device *, struct if_settings *);
13350 	int (*ndo_siocdevprivate)(struct net_device *, struct ifreq *, void *, int);
13351 	int (*ndo_set_config)(struct net_device *, struct ifmap *);
13352 	int (*ndo_change_mtu)(struct net_device *, int);
13353 	int (*ndo_neigh_setup)(struct net_device *, struct neigh_parms *);
13354 	void (*ndo_tx_timeout)(struct net_device *, unsigned int);
13355 	void (*ndo_get_stats64)(struct net_device *, struct rtnl_link_stats64 *);
13356 	bool (*ndo_has_offload_stats)(const struct net_device *, int);
13357 	int (*ndo_get_offload_stats)(int, const struct net_device *, void *);
13358 	struct net_device_stats * (*ndo_get_stats)(struct net_device *);
13359 	int (*ndo_vlan_rx_add_vid)(struct net_device *, __be16, u16);
13360 	int (*ndo_vlan_rx_kill_vid)(struct net_device *, __be16, u16);
13361 	void (*ndo_poll_controller)(struct net_device *);
13362 	int (*ndo_netpoll_setup)(struct net_device *, struct netpoll_info *);
13363 	void (*ndo_netpoll_cleanup)(struct net_device *);
13364 	int (*ndo_set_vf_mac)(struct net_device *, int, u8 *);
13365 	int (*ndo_set_vf_vlan)(struct net_device *, int, u16, u8, __be16);
13366 	int (*ndo_set_vf_rate)(struct net_device *, int, int, int);
13367 	int (*ndo_set_vf_spoofchk)(struct net_device *, int, bool);
13368 	int (*ndo_set_vf_trust)(struct net_device *, int, bool);
13369 	int (*ndo_get_vf_config)(struct net_device *, int, struct ifla_vf_info *);
13370 	int (*ndo_set_vf_link_state)(struct net_device *, int, int);
13371 	int (*ndo_get_vf_stats)(struct net_device *, int, struct ifla_vf_stats *);
13372 	int (*ndo_set_vf_port)(struct net_device *, int, struct nlattr **);
13373 	int (*ndo_get_vf_port)(struct net_device *, int, struct sk_buff *);
13374 	int (*ndo_get_vf_guid)(struct net_device *, int, struct ifla_vf_guid *, struct ifla_vf_guid *);
13375 	int (*ndo_set_vf_guid)(struct net_device *, int, u64, int);
13376 	int (*ndo_set_vf_rss_query_en)(struct net_device *, int, bool);
13377 	int (*ndo_setup_tc)(struct net_device *, enum tc_setup_type, void *);
13378 	int (*ndo_fcoe_enable)(struct net_device *);
13379 	int (*ndo_fcoe_disable)(struct net_device *);
13380 	int (*ndo_fcoe_ddp_setup)(struct net_device *, u16, struct scatterlist *, unsigned int);
13381 	int (*ndo_fcoe_ddp_done)(struct net_device *, u16);
13382 	int (*ndo_fcoe_ddp_target)(struct net_device *, u16, struct scatterlist *, unsigned int);
13383 	int (*ndo_fcoe_get_hbainfo)(struct net_device *, struct netdev_fcoe_hbainfo *);
13384 	int (*ndo_fcoe_get_wwn)(struct net_device *, u64 *, int);
13385 	int (*ndo_rx_flow_steer)(struct net_device *, const struct sk_buff *, u16, u32);
13386 	int (*ndo_add_slave)(struct net_device *, struct net_device *, struct netlink_ext_ack *);
13387 	int (*ndo_del_slave)(struct net_device *, struct net_device *);
13388 	struct net_device * (*ndo_get_xmit_slave)(struct net_device *, struct sk_buff *, bool);
13389 	struct net_device * (*ndo_sk_get_lower_dev)(struct net_device *, struct sock *);
13390 	netdev_features_t (*ndo_fix_features)(struct net_device *, netdev_features_t);
13391 	int (*ndo_set_features)(struct net_device *, netdev_features_t);
13392 	int (*ndo_neigh_construct)(struct net_device *, struct neighbour *);
13393 	void (*ndo_neigh_destroy)(struct net_device *, struct neighbour *);
13394 	int (*ndo_fdb_add)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, u16, struct netlink_ext_ack *);
13395 	int (*ndo_fdb_del)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, struct netlink_ext_ack *);
13396 	int (*ndo_fdb_del_bulk)(struct ndmsg *, struct nlattr **, struct net_device *, u16, struct netlink_ext_ack *);
13397 	int (*ndo_fdb_dump)(struct sk_buff *, struct netlink_callback *, struct net_device *, struct net_device *, int *);
13398 	int (*ndo_fdb_get)(struct sk_buff *, struct nlattr **, struct net_device *, const unsigned char *, u16, u32, u32, struct netlink_ext_ack *);
13399 	int (*ndo_bridge_setlink)(struct net_device *, struct nlmsghdr *, u16, struct netlink_ext_ack *);
13400 	int (*ndo_bridge_getlink)(struct sk_buff *, u32, u32, struct net_device *, u32, int);
13401 	int (*ndo_bridge_dellink)(struct net_device *, struct nlmsghdr *, u16);
13402 	int (*ndo_change_carrier)(struct net_device *, bool);
13403 	int (*ndo_get_phys_port_id)(struct net_device *, struct netdev_phys_item_id *);
13404 	int (*ndo_get_port_parent_id)(struct net_device *, struct netdev_phys_item_id *);
13405 	int (*ndo_get_phys_port_name)(struct net_device *, char *, size_t);
13406 	void * (*ndo_dfwd_add_station)(struct net_device *, struct net_device *);
13407 	void (*ndo_dfwd_del_station)(struct net_device *, void *);
13408 	int (*ndo_set_tx_maxrate)(struct net_device *, int, u32);
13409 	int (*ndo_get_iflink)(const struct net_device *);
13410 	int (*ndo_fill_metadata_dst)(struct net_device *, struct sk_buff *);
13411 	void (*ndo_set_rx_headroom)(struct net_device *, int);
13412 	int (*ndo_bpf)(struct net_device *, struct netdev_bpf *);
13413 	int (*ndo_xdp_xmit)(struct net_device *, int, struct xdp_frame **, u32);
13414 	struct net_device * (*ndo_xdp_get_xmit_slave)(struct net_device *, struct xdp_buff *);
13415 	int (*ndo_xsk_wakeup)(struct net_device *, u32, u32);
13416 	int (*ndo_tunnel_ctl)(struct net_device *, struct ip_tunnel_parm *, int);
13417 	struct net_device * (*ndo_get_peer_dev)(struct net_device *);
13418 	int (*ndo_fill_forward_path)(struct net_device_path_ctx *, struct net_device_path *);
13419 	ktime_t (*ndo_get_tstamp)(struct net_device *, const struct skb_shared_hwtstamps *, bool);
13420 };
13421 
13422 struct pcpu_lstats {
13423 	u64_stats_t packets;
13424 	u64_stats_t bytes;
13425 	struct u64_stats_sync syncp;
13426 };
13427 
13428 struct pcpu_sw_netstats {
13429 	u64_stats_t rx_packets;
13430 	u64_stats_t rx_bytes;
13431 	u64_stats_t tx_packets;
13432 	u64_stats_t tx_bytes;
13433 	struct u64_stats_sync syncp;
13434 };
13435 
13436 struct iw_request_info;
13437 
13438 union iwreq_data;
13439 
13440 typedef int (*iw_handler)(struct net_device *, struct iw_request_info *, union iwreq_data *, char *);
13441 
13442 struct iw_priv_args;
13443 
13444 struct iw_statistics;
13445 
13446 struct iw_handler_def {
13447 	const iw_handler *standard;
13448 	__u16 num_standard;
13449 	__u16 num_private;
13450 	__u16 num_private_args;
13451 	const iw_handler *private;
13452 	const struct iw_priv_args *private_args;
13453 	struct iw_statistics * (*get_wireless_stats)(struct net_device *);
13454 };
13455 
13456 enum ethtool_phys_id_state {
13457 	ETHTOOL_ID_INACTIVE = 0,
13458 	ETHTOOL_ID_ACTIVE = 1,
13459 	ETHTOOL_ID_ON = 2,
13460 	ETHTOOL_ID_OFF = 3,
13461 };
13462 
13463 struct ethtool_drvinfo;
13464 
13465 struct ethtool_regs;
13466 
13467 struct ethtool_wolinfo;
13468 
13469 struct ethtool_link_ext_state_info;
13470 
13471 struct ethtool_link_ext_stats;
13472 
13473 struct ethtool_eeprom;
13474 
13475 struct ethtool_coalesce;
13476 
13477 struct kernel_ethtool_coalesce;
13478 
13479 struct ethtool_ringparam;
13480 
13481 struct kernel_ethtool_ringparam;
13482 
13483 struct ethtool_pause_stats;
13484 
13485 struct ethtool_pauseparam;
13486 
13487 struct ethtool_test;
13488 
13489 struct ethtool_stats;
13490 
13491 struct ethtool_rxnfc;
13492 
13493 struct ethtool_flash;
13494 
13495 struct ethtool_channels;
13496 
13497 struct ethtool_dump;
13498 
13499 struct ethtool_ts_info;
13500 
13501 struct ethtool_modinfo;
13502 
13503 struct ethtool_eee;
13504 
13505 struct ethtool_tunable;
13506 
13507 struct ethtool_link_ksettings;
13508 
13509 struct ethtool_fec_stats;
13510 
13511 struct ethtool_fecparam;
13512 
13513 struct ethtool_module_eeprom;
13514 
13515 struct ethtool_eth_phy_stats;
13516 
13517 struct ethtool_eth_mac_stats;
13518 
13519 struct ethtool_eth_ctrl_stats;
13520 
13521 struct ethtool_rmon_stats;
13522 
13523 struct ethtool_rmon_hist_range;
13524 
13525 struct ethtool_module_power_mode_params;
13526 
13527 struct ethtool_ops {
13528 	u32 cap_link_lanes_supported: 1;
13529 	u32 supported_coalesce_params;
13530 	u32 supported_ring_params;
13531 	void (*get_drvinfo)(struct net_device *, struct ethtool_drvinfo *);
13532 	int (*get_regs_len)(struct net_device *);
13533 	void (*get_regs)(struct net_device *, struct ethtool_regs *, void *);
13534 	void (*get_wol)(struct net_device *, struct ethtool_wolinfo *);
13535 	int (*set_wol)(struct net_device *, struct ethtool_wolinfo *);
13536 	u32 (*get_msglevel)(struct net_device *);
13537 	void (*set_msglevel)(struct net_device *, u32);
13538 	int (*nway_reset)(struct net_device *);
13539 	u32 (*get_link)(struct net_device *);
13540 	int (*get_link_ext_state)(struct net_device *, struct ethtool_link_ext_state_info *);
13541 	void (*get_link_ext_stats)(struct net_device *, struct ethtool_link_ext_stats *);
13542 	int (*get_eeprom_len)(struct net_device *);
13543 	int (*get_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
13544 	int (*set_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
13545 	int (*get_coalesce)(struct net_device *, struct ethtool_coalesce *, struct kernel_ethtool_coalesce *, struct netlink_ext_ack *);
13546 	int (*set_coalesce)(struct net_device *, struct ethtool_coalesce *, struct kernel_ethtool_coalesce *, struct netlink_ext_ack *);
13547 	void (*get_ringparam)(struct net_device *, struct ethtool_ringparam *, struct kernel_ethtool_ringparam *, struct netlink_ext_ack *);
13548 	int (*set_ringparam)(struct net_device *, struct ethtool_ringparam *, struct kernel_ethtool_ringparam *, struct netlink_ext_ack *);
13549 	void (*get_pause_stats)(struct net_device *, struct ethtool_pause_stats *);
13550 	void (*get_pauseparam)(struct net_device *, struct ethtool_pauseparam *);
13551 	int (*set_pauseparam)(struct net_device *, struct ethtool_pauseparam *);
13552 	void (*self_test)(struct net_device *, struct ethtool_test *, u64 *);
13553 	void (*get_strings)(struct net_device *, u32, u8 *);
13554 	int (*set_phys_id)(struct net_device *, enum ethtool_phys_id_state);
13555 	void (*get_ethtool_stats)(struct net_device *, struct ethtool_stats *, u64 *);
13556 	int (*begin)(struct net_device *);
13557 	void (*complete)(struct net_device *);
13558 	u32 (*get_priv_flags)(struct net_device *);
13559 	int (*set_priv_flags)(struct net_device *, u32);
13560 	int (*get_sset_count)(struct net_device *, int);
13561 	int (*get_rxnfc)(struct net_device *, struct ethtool_rxnfc *, u32 *);
13562 	int (*set_rxnfc)(struct net_device *, struct ethtool_rxnfc *);
13563 	int (*flash_device)(struct net_device *, struct ethtool_flash *);
13564 	int (*reset)(struct net_device *, u32 *);
13565 	u32 (*get_rxfh_key_size)(struct net_device *);
13566 	u32 (*get_rxfh_indir_size)(struct net_device *);
13567 	int (*get_rxfh)(struct net_device *, u32 *, u8 *, u8 *);
13568 	int (*set_rxfh)(struct net_device *, const u32 *, const u8 *, const u8);
13569 	int (*get_rxfh_context)(struct net_device *, u32 *, u8 *, u8 *, u32);
13570 	int (*set_rxfh_context)(struct net_device *, const u32 *, const u8 *, const u8, u32 *, bool);
13571 	void (*get_channels)(struct net_device *, struct ethtool_channels *);
13572 	int (*set_channels)(struct net_device *, struct ethtool_channels *);
13573 	int (*get_dump_flag)(struct net_device *, struct ethtool_dump *);
13574 	int (*get_dump_data)(struct net_device *, struct ethtool_dump *, void *);
13575 	int (*set_dump)(struct net_device *, struct ethtool_dump *);
13576 	int (*get_ts_info)(struct net_device *, struct ethtool_ts_info *);
13577 	int (*get_module_info)(struct net_device *, struct ethtool_modinfo *);
13578 	int (*get_module_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
13579 	int (*get_eee)(struct net_device *, struct ethtool_eee *);
13580 	int (*set_eee)(struct net_device *, struct ethtool_eee *);
13581 	int (*get_tunable)(struct net_device *, const struct ethtool_tunable *, void *);
13582 	int (*set_tunable)(struct net_device *, const struct ethtool_tunable *, const void *);
13583 	int (*get_per_queue_coalesce)(struct net_device *, u32, struct ethtool_coalesce *);
13584 	int (*set_per_queue_coalesce)(struct net_device *, u32, struct ethtool_coalesce *);
13585 	int (*get_link_ksettings)(struct net_device *, struct ethtool_link_ksettings *);
13586 	int (*set_link_ksettings)(struct net_device *, const struct ethtool_link_ksettings *);
13587 	void (*get_fec_stats)(struct net_device *, struct ethtool_fec_stats *);
13588 	int (*get_fecparam)(struct net_device *, struct ethtool_fecparam *);
13589 	int (*set_fecparam)(struct net_device *, struct ethtool_fecparam *);
13590 	void (*get_ethtool_phy_stats)(struct net_device *, struct ethtool_stats *, u64 *);
13591 	int (*get_phy_tunable)(struct net_device *, const struct ethtool_tunable *, void *);
13592 	int (*set_phy_tunable)(struct net_device *, const struct ethtool_tunable *, const void *);
13593 	int (*get_module_eeprom_by_page)(struct net_device *, const struct ethtool_module_eeprom *, struct netlink_ext_ack *);
13594 	void (*get_eth_phy_stats)(struct net_device *, struct ethtool_eth_phy_stats *);
13595 	void (*get_eth_mac_stats)(struct net_device *, struct ethtool_eth_mac_stats *);
13596 	void (*get_eth_ctrl_stats)(struct net_device *, struct ethtool_eth_ctrl_stats *);
13597 	void (*get_rmon_stats)(struct net_device *, struct ethtool_rmon_stats *, const struct ethtool_rmon_hist_range **);
13598 	int (*get_module_power_mode)(struct net_device *, struct ethtool_module_power_mode_params *, struct netlink_ext_ack *);
13599 	int (*set_module_power_mode)(struct net_device *, const struct ethtool_module_power_mode_params *, struct netlink_ext_ack *);
13600 };
13601 
13602 struct flowi6;
13603 
13604 struct l3mdev_ops {
13605 	u32 (*l3mdev_fib_table)(const struct net_device *);
13606 	struct sk_buff * (*l3mdev_l3_rcv)(struct net_device *, struct sk_buff *, u16);
13607 	struct sk_buff * (*l3mdev_l3_out)(struct net_device *, struct sock *, struct sk_buff *, u16);
13608 	struct dst_entry * (*l3mdev_link_scope_lookup)(const struct net_device *, struct flowi6 *);
13609 };
13610 
13611 struct nd_opt_hdr;
13612 
13613 struct ndisc_options;
13614 
13615 struct prefix_info;
13616 
13617 struct ndisc_ops {
13618 	int (*is_useropt)(u8);
13619 	int (*parse_options)(const struct net_device *, struct nd_opt_hdr *, struct ndisc_options *);
13620 	void (*update)(const struct net_device *, struct neighbour *, u32, u8, const struct ndisc_options *);
13621 	int (*opt_addr_space)(const struct net_device *, u8, struct neighbour *, u8 *, u8 **);
13622 	void (*fill_addr_option)(const struct net_device *, struct sk_buff *, u8, const u8 *);
13623 	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);
13624 };
13625 
13626 enum tls_offload_ctx_dir {
13627 	TLS_OFFLOAD_CTX_DIR_RX = 0,
13628 	TLS_OFFLOAD_CTX_DIR_TX = 1,
13629 };
13630 
13631 struct tls_crypto_info;
13632 
13633 struct tls_context;
13634 
13635 struct tlsdev_ops {
13636 	int (*tls_dev_add)(struct net_device *, struct sock *, enum tls_offload_ctx_dir, struct tls_crypto_info *, u32);
13637 	void (*tls_dev_del)(struct net_device *, struct tls_context *, enum tls_offload_ctx_dir);
13638 	int (*tls_dev_resync)(struct net_device *, struct sock *, u32, u8 *, enum tls_offload_ctx_dir);
13639 };
13640 
13641 struct tcf_proto;
13642 
13643 struct tcf_block;
13644 
13645 struct mini_Qdisc {
13646 	struct tcf_proto *filter_list;
13647 	struct tcf_block *block;
13648 	struct gnet_stats_basic_sync *cpu_bstats;
13649 	struct gnet_stats_queue *cpu_qstats;
13650 	long unsigned int rcu_state;
13651 };
13652 
13653 struct rtnl_link_ops {
13654 	struct list_head list;
13655 	const char *kind;
13656 	size_t priv_size;
13657 	struct net_device * (*alloc)(struct nlattr **, const char *, unsigned char, unsigned int, unsigned int);
13658 	void (*setup)(struct net_device *);
13659 	bool netns_refund;
13660 	unsigned int maxtype;
13661 	const struct nla_policy *policy;
13662 	int (*validate)(struct nlattr **, struct nlattr **, struct netlink_ext_ack *);
13663 	int (*newlink)(struct net *, struct net_device *, struct nlattr **, struct nlattr **, struct netlink_ext_ack *);
13664 	int (*changelink)(struct net_device *, struct nlattr **, struct nlattr **, struct netlink_ext_ack *);
13665 	void (*dellink)(struct net_device *, struct list_head *);
13666 	size_t (*get_size)(const struct net_device *);
13667 	int (*fill_info)(struct sk_buff *, const struct net_device *);
13668 	size_t (*get_xstats_size)(const struct net_device *);
13669 	int (*fill_xstats)(struct sk_buff *, const struct net_device *);
13670 	unsigned int (*get_num_tx_queues)();
13671 	unsigned int (*get_num_rx_queues)();
13672 	unsigned int slave_maxtype;
13673 	const struct nla_policy *slave_policy;
13674 	int (*slave_changelink)(struct net_device *, struct net_device *, struct nlattr **, struct nlattr **, struct netlink_ext_ack *);
13675 	size_t (*get_slave_size)(const struct net_device *, const struct net_device *);
13676 	int (*fill_slave_info)(struct sk_buff *, const struct net_device *, const struct net_device *);
13677 	struct net * (*get_link_net)(const struct net_device *);
13678 	size_t (*get_linkxstats_size)(const struct net_device *, int);
13679 	int (*fill_linkxstats)(struct sk_buff *, const struct net_device *, int *, int);
13680 };
13681 
13682 struct macsec_context;
13683 
13684 struct macsec_ops {
13685 	int (*mdo_dev_open)(struct macsec_context *);
13686 	int (*mdo_dev_stop)(struct macsec_context *);
13687 	int (*mdo_add_secy)(struct macsec_context *);
13688 	int (*mdo_upd_secy)(struct macsec_context *);
13689 	int (*mdo_del_secy)(struct macsec_context *);
13690 	int (*mdo_add_rxsc)(struct macsec_context *);
13691 	int (*mdo_upd_rxsc)(struct macsec_context *);
13692 	int (*mdo_del_rxsc)(struct macsec_context *);
13693 	int (*mdo_add_rxsa)(struct macsec_context *);
13694 	int (*mdo_upd_rxsa)(struct macsec_context *);
13695 	int (*mdo_del_rxsa)(struct macsec_context *);
13696 	int (*mdo_add_txsa)(struct macsec_context *);
13697 	int (*mdo_upd_txsa)(struct macsec_context *);
13698 	int (*mdo_del_txsa)(struct macsec_context *);
13699 	int (*mdo_get_dev_stats)(struct macsec_context *);
13700 	int (*mdo_get_tx_sc_stats)(struct macsec_context *);
13701 	int (*mdo_get_tx_sa_stats)(struct macsec_context *);
13702 	int (*mdo_get_rx_sc_stats)(struct macsec_context *);
13703 	int (*mdo_get_rx_sa_stats)(struct macsec_context *);
13704 };
13705 
13706 struct udp_tunnel_nic_table_info {
13707 	unsigned int n_entries;
13708 	unsigned int tunnel_types;
13709 };
13710 
13711 struct udp_tunnel_info;
13712 
13713 struct udp_tunnel_nic_shared;
13714 
13715 struct udp_tunnel_nic_info {
13716 	int (*set_port)(struct net_device *, unsigned int, unsigned int, struct udp_tunnel_info *);
13717 	int (*unset_port)(struct net_device *, unsigned int, unsigned int, struct udp_tunnel_info *);
13718 	int (*sync_table)(struct net_device *, unsigned int);
13719 	struct udp_tunnel_nic_shared *shared;
13720 	unsigned int flags;
13721 	struct udp_tunnel_nic_table_info tables[4];
13722 };
13723 
13724 struct tcmsg {
13725 	unsigned char tcm_family;
13726 	unsigned char tcm__pad1;
13727 	short unsigned int tcm__pad2;
13728 	int tcm_ifindex;
13729 	__u32 tcm_handle;
13730 	__u32 tcm_parent;
13731 	__u32 tcm_info;
13732 };
13733 
13734 struct gnet_dump {
13735 	spinlock_t *lock;
13736 	struct sk_buff *skb;
13737 	struct nlattr *tail;
13738 	int compat_tc_stats;
13739 	int compat_xstats;
13740 	int padattr;
13741 	void *xstats;
13742 	int xstats_len;
13743 	struct tc_stats tc_stats;
13744 };
13745 
13746 struct netlink_range_validation {
13747 	u64 min;
13748 	u64 max;
13749 };
13750 
13751 struct netlink_range_validation_signed {
13752 	s64 min;
13753 	s64 max;
13754 };
13755 
13756 enum flow_action_hw_stats_bit {
13757 	FLOW_ACTION_HW_STATS_IMMEDIATE_BIT = 0,
13758 	FLOW_ACTION_HW_STATS_DELAYED_BIT = 1,
13759 	FLOW_ACTION_HW_STATS_DISABLED_BIT = 2,
13760 	FLOW_ACTION_HW_STATS_NUM_BITS = 3,
13761 };
13762 
13763 struct flow_block {
13764 	struct list_head cb_list;
13765 };
13766 
13767 typedef int flow_setup_cb_t(enum tc_setup_type, void *, void *);
13768 
13769 struct qdisc_size_table {
13770 	struct callback_head rcu;
13771 	struct list_head list;
13772 	struct tc_sizespec szopts;
13773 	int refcnt;
13774 	u16 data[0];
13775 };
13776 
13777 struct Qdisc_class_ops;
13778 
13779 struct Qdisc_ops {
13780 	struct Qdisc_ops *next;
13781 	const struct Qdisc_class_ops *cl_ops;
13782 	char id[16];
13783 	int priv_size;
13784 	unsigned int static_flags;
13785 	int (*enqueue)(struct sk_buff *, struct Qdisc *, struct sk_buff **);
13786 	struct sk_buff * (*dequeue)(struct Qdisc *);
13787 	struct sk_buff * (*peek)(struct Qdisc *);
13788 	int (*init)(struct Qdisc *, struct nlattr *, struct netlink_ext_ack *);
13789 	void (*reset)(struct Qdisc *);
13790 	void (*destroy)(struct Qdisc *);
13791 	int (*change)(struct Qdisc *, struct nlattr *, struct netlink_ext_ack *);
13792 	void (*attach)(struct Qdisc *);
13793 	int (*change_tx_queue_len)(struct Qdisc *, unsigned int);
13794 	void (*change_real_num_tx)(struct Qdisc *, unsigned int);
13795 	int (*dump)(struct Qdisc *, struct sk_buff *);
13796 	int (*dump_stats)(struct Qdisc *, struct gnet_dump *);
13797 	void (*ingress_block_set)(struct Qdisc *, u32);
13798 	void (*egress_block_set)(struct Qdisc *, u32);
13799 	u32 (*ingress_block_get)(struct Qdisc *);
13800 	u32 (*egress_block_get)(struct Qdisc *);
13801 	struct module *owner;
13802 };
13803 
13804 struct qdisc_walker;
13805 
13806 struct Qdisc_class_ops {
13807 	unsigned int flags;
13808 	struct netdev_queue * (*select_queue)(struct Qdisc *, struct tcmsg *);
13809 	int (*graft)(struct Qdisc *, long unsigned int, struct Qdisc *, struct Qdisc **, struct netlink_ext_ack *);
13810 	struct Qdisc * (*leaf)(struct Qdisc *, long unsigned int);
13811 	void (*qlen_notify)(struct Qdisc *, long unsigned int);
13812 	long unsigned int (*find)(struct Qdisc *, u32);
13813 	int (*change)(struct Qdisc *, u32, u32, struct nlattr **, long unsigned int *, struct netlink_ext_ack *);
13814 	int (*delete)(struct Qdisc *, long unsigned int, struct netlink_ext_ack *);
13815 	void (*walk)(struct Qdisc *, struct qdisc_walker *);
13816 	struct tcf_block * (*tcf_block)(struct Qdisc *, long unsigned int, struct netlink_ext_ack *);
13817 	long unsigned int (*bind_tcf)(struct Qdisc *, long unsigned int, u32);
13818 	void (*unbind_tcf)(struct Qdisc *, long unsigned int);
13819 	int (*dump)(struct Qdisc *, long unsigned int, struct sk_buff *, struct tcmsg *);
13820 	int (*dump_stats)(struct Qdisc *, long unsigned int, struct gnet_dump *);
13821 };
13822 
13823 struct tcf_chain;
13824 
13825 struct tcf_block {
13826 	struct mutex lock;
13827 	struct list_head chain_list;
13828 	u32 index;
13829 	u32 classid;
13830 	refcount_t refcnt;
13831 	struct net *net;
13832 	struct Qdisc *q;
13833 	struct rw_semaphore cb_lock;
13834 	struct flow_block flow_block;
13835 	struct list_head owner_list;
13836 	bool keep_dst;
13837 	atomic_t offloadcnt;
13838 	unsigned int nooffloaddevcnt;
13839 	unsigned int lockeddevcnt;
13840 	struct {
13841 		struct tcf_chain *chain;
13842 		struct list_head filter_chain_list;
13843 	} chain0;
13844 	struct callback_head rcu;
13845 	struct hlist_head proto_destroy_ht[128];
13846 	struct mutex proto_destroy_lock;
13847 };
13848 
13849 struct tcf_result;
13850 
13851 struct tcf_proto_ops;
13852 
13853 struct tcf_proto {
13854 	struct tcf_proto *next;
13855 	void *root;
13856 	int (*classify)(struct sk_buff *, const struct tcf_proto *, struct tcf_result *);
13857 	__be16 protocol;
13858 	u32 prio;
13859 	void *data;
13860 	const struct tcf_proto_ops *ops;
13861 	struct tcf_chain *chain;
13862 	spinlock_t lock;
13863 	bool deleting;
13864 	refcount_t refcnt;
13865 	struct callback_head rcu;
13866 	struct hlist_node destroy_ht_node;
13867 };
13868 
13869 struct tcf_result {
13870 	union {
13871 		struct {
13872 			long unsigned int class;
13873 			u32 classid;
13874 		};
13875 		const struct tcf_proto *goto_tp;
13876 	};
13877 };
13878 
13879 struct tcf_walker;
13880 
13881 struct tcf_proto_ops {
13882 	struct list_head head;
13883 	char kind[16];
13884 	int (*classify)(struct sk_buff *, const struct tcf_proto *, struct tcf_result *);
13885 	int (*init)(struct tcf_proto *);
13886 	void (*destroy)(struct tcf_proto *, bool, struct netlink_ext_ack *);
13887 	void * (*get)(struct tcf_proto *, u32);
13888 	void (*put)(struct tcf_proto *, void *);
13889 	int (*change)(struct net *, struct sk_buff *, struct tcf_proto *, long unsigned int, u32, struct nlattr **, void **, u32, struct netlink_ext_ack *);
13890 	int (*delete)(struct tcf_proto *, void *, bool *, bool, struct netlink_ext_ack *);
13891 	bool (*delete_empty)(struct tcf_proto *);
13892 	void (*walk)(struct tcf_proto *, struct tcf_walker *, bool);
13893 	int (*reoffload)(struct tcf_proto *, bool, flow_setup_cb_t *, void *, struct netlink_ext_ack *);
13894 	void (*hw_add)(struct tcf_proto *, void *);
13895 	void (*hw_del)(struct tcf_proto *, void *);
13896 	void (*bind_class)(void *, u32, long unsigned int, void *, long unsigned int);
13897 	void * (*tmplt_create)(struct net *, struct tcf_chain *, struct nlattr **, struct netlink_ext_ack *);
13898 	void (*tmplt_destroy)(void *);
13899 	int (*dump)(struct net *, struct tcf_proto *, void *, struct sk_buff *, struct tcmsg *, bool);
13900 	int (*terse_dump)(struct net *, struct tcf_proto *, void *, struct sk_buff *, struct tcmsg *, bool);
13901 	int (*tmplt_dump)(struct sk_buff *, struct net *, void *);
13902 	struct module *owner;
13903 	int flags;
13904 };
13905 
13906 struct tcf_chain {
13907 	struct mutex filter_chain_lock;
13908 	struct tcf_proto *filter_chain;
13909 	struct list_head list;
13910 	struct tcf_block *block;
13911 	u32 index;
13912 	unsigned int refcnt;
13913 	unsigned int action_refcnt;
13914 	bool explicitly_created;
13915 	bool flushing;
13916 	const struct tcf_proto_ops *tmplt_ops;
13917 	void *tmplt_priv;
13918 	struct callback_head rcu;
13919 };
13920 
13921 struct ipc_ids {
13922 	int in_use;
13923 	short unsigned int seq;
13924 	struct rw_semaphore rwsem;
13925 	struct idr ipcs_idr;
13926 	int max_idx;
13927 	int last_idx;
13928 	int next_id;
13929 	struct rhashtable key_ht;
13930 };
13931 
13932 struct ipc_namespace {
13933 	struct ipc_ids ids[3];
13934 	int sem_ctls[4];
13935 	int used_sems;
13936 	unsigned int msg_ctlmax;
13937 	unsigned int msg_ctlmnb;
13938 	unsigned int msg_ctlmni;
13939 	struct percpu_counter percpu_msg_bytes;
13940 	struct percpu_counter percpu_msg_hdrs;
13941 	size_t shm_ctlmax;
13942 	size_t shm_ctlall;
13943 	long unsigned int shm_tot;
13944 	int shm_ctlmni;
13945 	int shm_rmid_forced;
13946 	struct notifier_block ipcns_nb;
13947 	struct vfsmount *mq_mnt;
13948 	unsigned int mq_queues_count;
13949 	unsigned int mq_queues_max;
13950 	unsigned int mq_msg_max;
13951 	unsigned int mq_msgsize_max;
13952 	unsigned int mq_msg_default;
13953 	unsigned int mq_msgsize_default;
13954 	struct ctl_table_set mq_set;
13955 	struct ctl_table_header *mq_sysctls;
13956 	struct ctl_table_set ipc_set;
13957 	struct ctl_table_header *ipc_sysctls;
13958 	struct user_namespace *user_ns;
13959 	struct ucounts *ucounts;
13960 	struct llist_node mnt_llist;
13961 	struct ns_common ns;
13962 };
13963 
13964 struct timens_offsets {
13965 	struct timespec64 monotonic;
13966 	struct timespec64 boottime;
13967 };
13968 
13969 struct time_namespace {
13970 	struct user_namespace *user_ns;
13971 	struct ucounts *ucounts;
13972 	struct ns_common ns;
13973 	struct timens_offsets offsets;
13974 	struct page *vvar_page;
13975 	bool frozen_offsets;
13976 };
13977 
13978 struct nsset {
13979 	unsigned int flags;
13980 	struct nsproxy *nsproxy;
13981 	struct fs_struct *fs;
13982 	const struct cred *cred;
13983 };
13984 
13985 typedef void (*swap_func_t)(void *, void *, int);
13986 
13987 typedef int (*cmp_func_t)(const void *, const void *);
13988 
13989 struct smp_hotplug_thread {
13990 	struct task_struct **store;
13991 	struct list_head list;
13992 	int (*thread_should_run)(unsigned int);
13993 	void (*thread_fn)(unsigned int);
13994 	void (*create)(unsigned int);
13995 	void (*setup)(unsigned int);
13996 	void (*cleanup)(unsigned int, bool);
13997 	void (*park)(unsigned int);
13998 	void (*unpark)(unsigned int);
13999 	bool selfparking;
14000 	const char *thread_comm;
14001 };
14002 
14003 struct smpboot_thread_data {
14004 	unsigned int cpu;
14005 	unsigned int status;
14006 	struct smp_hotplug_thread *ht;
14007 };
14008 
14009 enum {
14010 	HP_THREAD_NONE = 0,
14011 	HP_THREAD_ACTIVE = 1,
14012 	HP_THREAD_PARKED = 2,
14013 };
14014 
14015 enum lockdep_ok {
14016 	LOCKDEP_STILL_OK = 0,
14017 	LOCKDEP_NOW_UNRELIABLE = 1,
14018 };
14019 
14020 struct pin_cookie {};
14021 
14022 enum {
14023 	CSD_FLAG_LOCK = 1,
14024 	IRQ_WORK_PENDING = 1,
14025 	IRQ_WORK_BUSY = 2,
14026 	IRQ_WORK_LAZY = 4,
14027 	IRQ_WORK_HARD_IRQ = 8,
14028 	IRQ_WORK_CLAIMED = 3,
14029 	CSD_TYPE_ASYNC = 0,
14030 	CSD_TYPE_SYNC = 16,
14031 	CSD_TYPE_IRQ_WORK = 32,
14032 	CSD_TYPE_TTWU = 48,
14033 	CSD_FLAG_TYPE_MASK = 240,
14034 };
14035 
14036 typedef int (*task_call_f)(struct task_struct *, void *);
14037 
14038 struct wait_bit_queue_entry {
14039 	struct wait_bit_key key;
14040 	struct wait_queue_entry wq_entry;
14041 };
14042 
14043 struct static_key_true {
14044 	struct static_key key;
14045 };
14046 
14047 struct plist_head {
14048 	struct list_head node_list;
14049 };
14050 
14051 struct dl_bw {
14052 	raw_spinlock_t lock;
14053 	u64 bw;
14054 	u64 total_bw;
14055 };
14056 
14057 struct cpudl_item;
14058 
14059 struct cpudl {
14060 	raw_spinlock_t lock;
14061 	int size;
14062 	cpumask_var_t free_cpus;
14063 	struct cpudl_item *elements;
14064 };
14065 
14066 struct cpupri_vec {
14067 	atomic_t count;
14068 	cpumask_var_t mask;
14069 };
14070 
14071 struct cpupri {
14072 	struct cpupri_vec pri_to_cpu[101];
14073 	int *cpu_to_pri;
14074 };
14075 
14076 struct perf_domain;
14077 
14078 struct root_domain {
14079 	atomic_t refcount;
14080 	atomic_t rto_count;
14081 	struct callback_head rcu;
14082 	cpumask_var_t span;
14083 	cpumask_var_t online;
14084 	int overload;
14085 	int overutilized;
14086 	cpumask_var_t dlo_mask;
14087 	atomic_t dlo_count;
14088 	struct dl_bw dl_bw;
14089 	struct cpudl cpudl;
14090 	u64 visit_gen;
14091 	struct irq_work rto_push_work;
14092 	raw_spinlock_t rto_lock;
14093 	int rto_loop;
14094 	int rto_cpu;
14095 	atomic_t rto_loop_next;
14096 	atomic_t rto_loop_start;
14097 	cpumask_var_t rto_mask;
14098 	struct cpupri cpupri;
14099 	long unsigned int max_cpu_capacity;
14100 	struct perf_domain *pd;
14101 };
14102 
14103 struct cfs_rq {
14104 	struct load_weight load;
14105 	unsigned int nr_running;
14106 	unsigned int h_nr_running;
14107 	unsigned int idle_nr_running;
14108 	unsigned int idle_h_nr_running;
14109 	u64 exec_clock;
14110 	u64 min_vruntime;
14111 	struct rb_root_cached tasks_timeline;
14112 	struct sched_entity *curr;
14113 	struct sched_entity *next;
14114 	struct sched_entity *last;
14115 	struct sched_entity *skip;
14116 	long: 64;
14117 	long: 64;
14118 	long: 64;
14119 	long: 64;
14120 	struct sched_avg avg;
14121 	struct {
14122 		raw_spinlock_t lock;
14123 		int nr;
14124 		long unsigned int load_avg;
14125 		long unsigned int util_avg;
14126 		long unsigned int runnable_avg;
14127 		long: 64;
14128 		long: 64;
14129 		long: 64;
14130 		long: 64;
14131 	} removed;
14132 	long unsigned int tg_load_avg_contrib;
14133 	long int propagate;
14134 	long int prop_runnable_sum;
14135 	long unsigned int h_load;
14136 	u64 last_h_load_update;
14137 	struct sched_entity *h_load_next;
14138 	struct rq *rq;
14139 	int on_list;
14140 	struct list_head leaf_cfs_rq_list;
14141 	struct task_group *tg;
14142 	int idle;
14143 	int runtime_enabled;
14144 	s64 runtime_remaining;
14145 	u64 throttled_pelt_idle;
14146 	u64 throttled_clock;
14147 	u64 throttled_clock_pelt;
14148 	u64 throttled_clock_pelt_time;
14149 	int throttled;
14150 	int throttle_count;
14151 	struct list_head throttled_list;
14152 	long: 64;
14153 	long: 64;
14154 	long: 64;
14155 	long: 64;
14156 };
14157 
14158 struct rt_prio_array {
14159 	long unsigned int bitmap[2];
14160 	struct list_head queue[100];
14161 };
14162 
14163 struct rt_rq {
14164 	struct rt_prio_array active;
14165 	unsigned int rt_nr_running;
14166 	unsigned int rr_nr_running;
14167 	struct {
14168 		int curr;
14169 		int next;
14170 	} highest_prio;
14171 	unsigned int rt_nr_migratory;
14172 	unsigned int rt_nr_total;
14173 	int overloaded;
14174 	struct plist_head pushable_tasks;
14175 	int rt_queued;
14176 	int rt_throttled;
14177 	u64 rt_time;
14178 	u64 rt_runtime;
14179 	raw_spinlock_t rt_runtime_lock;
14180 	unsigned int rt_nr_boosted;
14181 	struct rq *rq;
14182 	struct task_group *tg;
14183 };
14184 
14185 struct rt_bandwidth {
14186 	raw_spinlock_t rt_runtime_lock;
14187 	ktime_t rt_period;
14188 	u64 rt_runtime;
14189 	struct hrtimer rt_period_timer;
14190 	unsigned int rt_period_active;
14191 };
14192 
14193 struct cfs_bandwidth {
14194 	raw_spinlock_t lock;
14195 	ktime_t period;
14196 	u64 quota;
14197 	u64 runtime;
14198 	u64 burst;
14199 	u64 runtime_snap;
14200 	s64 hierarchical_quota;
14201 	u8 idle;
14202 	u8 period_active;
14203 	u8 slack_started;
14204 	struct hrtimer period_timer;
14205 	struct hrtimer slack_timer;
14206 	struct list_head throttled_cfs_rq;
14207 	int nr_periods;
14208 	int nr_throttled;
14209 	int nr_burst;
14210 	u64 throttled_time;
14211 	u64 burst_time;
14212 };
14213 
14214 struct task_group {
14215 	struct cgroup_subsys_state css;
14216 	struct sched_entity **se;
14217 	struct cfs_rq **cfs_rq;
14218 	long unsigned int shares;
14219 	int idle;
14220 	long: 32;
14221 	long: 64;
14222 	long: 64;
14223 	long: 64;
14224 	atomic_long_t load_avg;
14225 	struct sched_rt_entity **rt_se;
14226 	struct rt_rq **rt_rq;
14227 	struct rt_bandwidth rt_bandwidth;
14228 	struct callback_head rcu;
14229 	struct list_head list;
14230 	struct task_group *parent;
14231 	struct list_head siblings;
14232 	struct list_head children;
14233 	struct autogroup *autogroup;
14234 	struct cfs_bandwidth cfs_bandwidth;
14235 	long: 64;
14236 };
14237 
14238 struct io_ring_ctx;
14239 
14240 struct io_wq;
14241 
14242 struct io_uring_task {
14243 	int cached_refs;
14244 	const struct io_ring_ctx *last;
14245 	struct io_wq *io_wq;
14246 	struct file *registered_rings[16];
14247 	struct xarray xa;
14248 	struct wait_queue_head wait;
14249 	atomic_t in_idle;
14250 	atomic_t inflight_tracked;
14251 	struct percpu_counter inflight;
14252 	long: 64;
14253 	long: 64;
14254 	struct {
14255 		struct llist_head task_list;
14256 		struct callback_head task_work;
14257 		long: 64;
14258 		long: 64;
14259 		long: 64;
14260 		long: 64;
14261 		long: 64;
14262 	};
14263 };
14264 
14265 enum {
14266 	MEMBARRIER_STATE_PRIVATE_EXPEDITED_READY = 1,
14267 	MEMBARRIER_STATE_PRIVATE_EXPEDITED = 2,
14268 	MEMBARRIER_STATE_GLOBAL_EXPEDITED_READY = 4,
14269 	MEMBARRIER_STATE_GLOBAL_EXPEDITED = 8,
14270 	MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE_READY = 16,
14271 	MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE = 32,
14272 	MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ_READY = 64,
14273 	MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ = 128,
14274 };
14275 
14276 struct autogroup {
14277 	struct kref kref;
14278 	struct task_group *tg;
14279 	struct rw_semaphore lock;
14280 	long unsigned int id;
14281 	int nice;
14282 };
14283 
14284 typedef int __kernel_rwf_t;
14285 
14286 struct trace_print_flags {
14287 	long unsigned int mask;
14288 	const char *name;
14289 };
14290 
14291 enum ctx_state {
14292 	CONTEXT_DISABLED = -1,
14293 	CONTEXT_KERNEL = 0,
14294 	CONTEXT_IDLE = 1,
14295 	CONTEXT_USER = 2,
14296 	CONTEXT_GUEST = 3,
14297 	CONTEXT_MAX = 4,
14298 };
14299 
14300 struct sched_domain_attr {
14301 	int relax_domain_level;
14302 };
14303 
14304 struct sched_domain_shared {
14305 	atomic_t ref;
14306 	atomic_t nr_busy_cpus;
14307 	int has_idle_cores;
14308 	int nr_idle_scan;
14309 };
14310 
14311 struct sched_group;
14312 
14313 struct sched_domain {
14314 	struct sched_domain *parent;
14315 	struct sched_domain *child;
14316 	struct sched_group *groups;
14317 	long unsigned int min_interval;
14318 	long unsigned int max_interval;
14319 	unsigned int busy_factor;
14320 	unsigned int imbalance_pct;
14321 	unsigned int cache_nice_tries;
14322 	unsigned int imb_numa_nr;
14323 	int nohz_idle;
14324 	int flags;
14325 	int level;
14326 	long unsigned int last_balance;
14327 	unsigned int balance_interval;
14328 	unsigned int nr_balance_failed;
14329 	u64 max_newidle_lb_cost;
14330 	long unsigned int last_decay_max_lb_cost;
14331 	u64 avg_scan_cost;
14332 	unsigned int lb_count[3];
14333 	unsigned int lb_failed[3];
14334 	unsigned int lb_balanced[3];
14335 	unsigned int lb_imbalance[3];
14336 	unsigned int lb_gained[3];
14337 	unsigned int lb_hot_gained[3];
14338 	unsigned int lb_nobusyg[3];
14339 	unsigned int lb_nobusyq[3];
14340 	unsigned int alb_count;
14341 	unsigned int alb_failed;
14342 	unsigned int alb_pushed;
14343 	unsigned int sbe_count;
14344 	unsigned int sbe_balanced;
14345 	unsigned int sbe_pushed;
14346 	unsigned int sbf_count;
14347 	unsigned int sbf_balanced;
14348 	unsigned int sbf_pushed;
14349 	unsigned int ttwu_wake_remote;
14350 	unsigned int ttwu_move_affine;
14351 	unsigned int ttwu_move_balance;
14352 	union {
14353 		void *private;
14354 		struct callback_head rcu;
14355 	};
14356 	struct sched_domain_shared *shared;
14357 	unsigned int span_weight;
14358 	long unsigned int span[0];
14359 };
14360 
14361 struct sched_group_capacity;
14362 
14363 struct sched_group {
14364 	struct sched_group *next;
14365 	atomic_t ref;
14366 	unsigned int group_weight;
14367 	struct sched_group_capacity *sgc;
14368 	int asym_prefer_cpu;
14369 	int flags;
14370 	long unsigned int cpumask[0];
14371 };
14372 
14373 struct sched_group_capacity {
14374 	atomic_t ref;
14375 	long unsigned int capacity;
14376 	long unsigned int min_capacity;
14377 	long unsigned int max_capacity;
14378 	long unsigned int next_update;
14379 	int imbalance;
14380 	long unsigned int cpumask[0];
14381 };
14382 
14383 struct em_perf_state {
14384 	long unsigned int frequency;
14385 	long unsigned int power;
14386 	long unsigned int cost;
14387 	long unsigned int flags;
14388 };
14389 
14390 struct em_perf_domain {
14391 	struct em_perf_state *table;
14392 	int nr_perf_states;
14393 	long unsigned int flags;
14394 	long unsigned int cpus[0];
14395 };
14396 
14397 enum pm_qos_type {
14398 	PM_QOS_UNITIALIZED = 0,
14399 	PM_QOS_MAX = 1,
14400 	PM_QOS_MIN = 2,
14401 };
14402 
14403 struct pm_qos_constraints {
14404 	struct plist_head list;
14405 	s32 target_value;
14406 	s32 default_value;
14407 	s32 no_constraint_value;
14408 	enum pm_qos_type type;
14409 	struct blocking_notifier_head *notifiers;
14410 };
14411 
14412 struct freq_constraints {
14413 	struct pm_qos_constraints min_freq;
14414 	struct blocking_notifier_head min_freq_notifiers;
14415 	struct pm_qos_constraints max_freq;
14416 	struct blocking_notifier_head max_freq_notifiers;
14417 };
14418 
14419 struct pm_qos_flags {
14420 	struct list_head list;
14421 	s32 effective_flags;
14422 };
14423 
14424 struct dev_pm_qos_request;
14425 
14426 struct dev_pm_qos {
14427 	struct pm_qos_constraints resume_latency;
14428 	struct pm_qos_constraints latency_tolerance;
14429 	struct freq_constraints freq;
14430 	struct pm_qos_flags flags;
14431 	struct dev_pm_qos_request *resume_latency_req;
14432 	struct dev_pm_qos_request *latency_tolerance_req;
14433 	struct dev_pm_qos_request *flags_req;
14434 };
14435 
14436 struct kernel_cpustat {
14437 	u64 cpustat[10];
14438 };
14439 
14440 struct kernel_stat {
14441 	long unsigned int irqs_sum;
14442 	unsigned int softirqs[10];
14443 };
14444 
14445 struct kthread_work;
14446 
14447 typedef void (*kthread_work_func_t)(struct kthread_work *);
14448 
14449 struct kthread_worker;
14450 
14451 struct kthread_work {
14452 	struct list_head node;
14453 	kthread_work_func_t func;
14454 	struct kthread_worker *worker;
14455 	int canceling;
14456 };
14457 
14458 struct kthread_worker {
14459 	unsigned int flags;
14460 	raw_spinlock_t lock;
14461 	struct list_head work_list;
14462 	struct list_head delayed_work_list;
14463 	struct task_struct *task;
14464 	struct kthread_work *current_work;
14465 };
14466 
14467 enum {
14468 	CFTYPE_ONLY_ON_ROOT = 1,
14469 	CFTYPE_NOT_ON_ROOT = 2,
14470 	CFTYPE_NS_DELEGATABLE = 4,
14471 	CFTYPE_NO_PREFIX = 8,
14472 	CFTYPE_WORLD_WRITABLE = 16,
14473 	CFTYPE_DEBUG = 32,
14474 	__CFTYPE_ONLY_ON_DFL = 65536,
14475 	__CFTYPE_NOT_ON_DFL = 131072,
14476 	__CFTYPE_ADDED = 262144,
14477 };
14478 
14479 typedef struct {
14480 	union {
14481 		void *kernel;
14482 		void *user;
14483 	};
14484 	bool is_kernel: 1;
14485 } sockptr_t;
14486 
14487 enum hk_type {
14488 	HK_TYPE_TIMER = 0,
14489 	HK_TYPE_RCU = 1,
14490 	HK_TYPE_MISC = 2,
14491 	HK_TYPE_SCHED = 3,
14492 	HK_TYPE_TICK = 4,
14493 	HK_TYPE_DOMAIN = 5,
14494 	HK_TYPE_WQ = 6,
14495 	HK_TYPE_MANAGED_IRQ = 7,
14496 	HK_TYPE_KTHREAD = 8,
14497 	HK_TYPE_MAX = 9,
14498 };
14499 
14500 struct ubuf_info;
14501 
14502 struct msghdr {
14503 	void *msg_name;
14504 	int msg_namelen;
14505 	int msg_inq;
14506 	struct iov_iter msg_iter;
14507 	union {
14508 		void *msg_control;
14509 		void *msg_control_user;
14510 	};
14511 	bool msg_control_is_user: 1;
14512 	bool msg_get_inq: 1;
14513 	unsigned int msg_flags;
14514 	__kernel_size_t msg_controllen;
14515 	struct kiocb *msg_iocb;
14516 	struct ubuf_info *msg_ubuf;
14517 	int (*sg_from_iter)(struct sock *, struct sk_buff *, struct iov_iter *, size_t);
14518 };
14519 
14520 struct ubuf_info {
14521 	void (*callback)(struct sk_buff *, struct ubuf_info *, bool);
14522 	refcount_t refcnt;
14523 	u8 flags;
14524 };
14525 
14526 typedef enum {
14527 	SS_FREE = 0,
14528 	SS_UNCONNECTED = 1,
14529 	SS_CONNECTING = 2,
14530 	SS_CONNECTED = 3,
14531 	SS_DISCONNECTING = 4,
14532 } socket_state;
14533 
14534 struct socket_wq {
14535 	wait_queue_head_t wait;
14536 	struct fasync_struct *fasync_list;
14537 	long unsigned int flags;
14538 	struct callback_head rcu;
14539 	long: 64;
14540 };
14541 
14542 struct proto_ops;
14543 
14544 struct socket {
14545 	socket_state state;
14546 	short int type;
14547 	long unsigned int flags;
14548 	struct file *file;
14549 	struct sock *sk;
14550 	const struct proto_ops *ops;
14551 	long: 64;
14552 	long: 64;
14553 	long: 64;
14554 	struct socket_wq wq;
14555 };
14556 
14557 typedef struct {
14558 	size_t written;
14559 	size_t count;
14560 	union {
14561 		char *buf;
14562 		void *data;
14563 	} arg;
14564 	int error;
14565 } read_descriptor_t;
14566 
14567 typedef int (*sk_read_actor_t)(read_descriptor_t *, struct sk_buff *, unsigned int, size_t);
14568 
14569 typedef int (*skb_read_actor_t)(struct sock *, struct sk_buff *);
14570 
14571 struct proto_ops {
14572 	int family;
14573 	struct module *owner;
14574 	int (*release)(struct socket *);
14575 	int (*bind)(struct socket *, struct sockaddr *, int);
14576 	int (*connect)(struct socket *, struct sockaddr *, int, int);
14577 	int (*socketpair)(struct socket *, struct socket *);
14578 	int (*accept)(struct socket *, struct socket *, int, bool);
14579 	int (*getname)(struct socket *, struct sockaddr *, int);
14580 	__poll_t (*poll)(struct file *, struct socket *, struct poll_table_struct *);
14581 	int (*ioctl)(struct socket *, unsigned int, long unsigned int);
14582 	int (*gettstamp)(struct socket *, void *, bool, bool);
14583 	int (*listen)(struct socket *, int);
14584 	int (*shutdown)(struct socket *, int);
14585 	int (*setsockopt)(struct socket *, int, int, sockptr_t, unsigned int);
14586 	int (*getsockopt)(struct socket *, int, int, char *, int *);
14587 	void (*show_fdinfo)(struct seq_file *, struct socket *);
14588 	int (*sendmsg)(struct socket *, struct msghdr *, size_t);
14589 	int (*recvmsg)(struct socket *, struct msghdr *, size_t, int);
14590 	int (*mmap)(struct file *, struct socket *, struct vm_area_struct *);
14591 	ssize_t (*sendpage)(struct socket *, struct page *, int, size_t, int);
14592 	ssize_t (*splice_read)(struct socket *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
14593 	int (*set_peek_off)(struct sock *, int);
14594 	int (*peek_len)(struct socket *);
14595 	int (*read_sock)(struct sock *, read_descriptor_t *, sk_read_actor_t);
14596 	int (*read_skb)(struct sock *, skb_read_actor_t);
14597 	int (*sendpage_locked)(struct sock *, struct page *, int, size_t, int);
14598 	int (*sendmsg_locked)(struct sock *, struct msghdr *, size_t);
14599 	int (*set_rcvlowat)(struct sock *, int);
14600 };
14601 
14602 struct wake_q_head {
14603 	struct wake_q_node *first;
14604 	struct wake_q_node **lastp;
14605 };
14606 
14607 struct sched_param {
14608 	int sched_priority;
14609 };
14610 
14611 struct sched_attr {
14612 	__u32 size;
14613 	__u32 sched_policy;
14614 	__u64 sched_flags;
14615 	__s32 sched_nice;
14616 	__u32 sched_priority;
14617 	__u64 sched_runtime;
14618 	__u64 sched_deadline;
14619 	__u64 sched_period;
14620 	__u32 sched_util_min;
14621 	__u32 sched_util_max;
14622 };
14623 
14624 struct trace_event_raw_sched_kthread_stop {
14625 	struct trace_entry ent;
14626 	char comm[16];
14627 	pid_t pid;
14628 	char __data[0];
14629 };
14630 
14631 struct trace_event_raw_sched_kthread_stop_ret {
14632 	struct trace_entry ent;
14633 	int ret;
14634 	char __data[0];
14635 };
14636 
14637 struct trace_event_raw_sched_kthread_work_queue_work {
14638 	struct trace_entry ent;
14639 	void *work;
14640 	void *function;
14641 	void *worker;
14642 	char __data[0];
14643 };
14644 
14645 struct trace_event_raw_sched_kthread_work_execute_start {
14646 	struct trace_entry ent;
14647 	void *work;
14648 	void *function;
14649 	char __data[0];
14650 };
14651 
14652 struct trace_event_raw_sched_kthread_work_execute_end {
14653 	struct trace_entry ent;
14654 	void *work;
14655 	void *function;
14656 	char __data[0];
14657 };
14658 
14659 struct trace_event_raw_sched_wakeup_template {
14660 	struct trace_entry ent;
14661 	char comm[16];
14662 	pid_t pid;
14663 	int prio;
14664 	int target_cpu;
14665 	char __data[0];
14666 };
14667 
14668 struct trace_event_raw_sched_switch {
14669 	struct trace_entry ent;
14670 	char prev_comm[16];
14671 	pid_t prev_pid;
14672 	int prev_prio;
14673 	long int prev_state;
14674 	char next_comm[16];
14675 	pid_t next_pid;
14676 	int next_prio;
14677 	char __data[0];
14678 };
14679 
14680 struct trace_event_raw_sched_migrate_task {
14681 	struct trace_entry ent;
14682 	char comm[16];
14683 	pid_t pid;
14684 	int prio;
14685 	int orig_cpu;
14686 	int dest_cpu;
14687 	char __data[0];
14688 };
14689 
14690 struct trace_event_raw_sched_process_template {
14691 	struct trace_entry ent;
14692 	char comm[16];
14693 	pid_t pid;
14694 	int prio;
14695 	char __data[0];
14696 };
14697 
14698 struct trace_event_raw_sched_process_wait {
14699 	struct trace_entry ent;
14700 	char comm[16];
14701 	pid_t pid;
14702 	int prio;
14703 	char __data[0];
14704 };
14705 
14706 struct trace_event_raw_sched_process_fork {
14707 	struct trace_entry ent;
14708 	char parent_comm[16];
14709 	pid_t parent_pid;
14710 	char child_comm[16];
14711 	pid_t child_pid;
14712 	char __data[0];
14713 };
14714 
14715 struct trace_event_raw_sched_process_exec {
14716 	struct trace_entry ent;
14717 	u32 __data_loc_filename;
14718 	pid_t pid;
14719 	pid_t old_pid;
14720 	char __data[0];
14721 };
14722 
14723 struct trace_event_raw_sched_stat_template {
14724 	struct trace_entry ent;
14725 	char comm[16];
14726 	pid_t pid;
14727 	u64 delay;
14728 	char __data[0];
14729 };
14730 
14731 struct trace_event_raw_sched_stat_runtime {
14732 	struct trace_entry ent;
14733 	char comm[16];
14734 	pid_t pid;
14735 	u64 runtime;
14736 	u64 vruntime;
14737 	char __data[0];
14738 };
14739 
14740 struct trace_event_raw_sched_pi_setprio {
14741 	struct trace_entry ent;
14742 	char comm[16];
14743 	pid_t pid;
14744 	int oldprio;
14745 	int newprio;
14746 	char __data[0];
14747 };
14748 
14749 struct trace_event_raw_sched_move_numa {
14750 	struct trace_entry ent;
14751 	pid_t pid;
14752 	pid_t tgid;
14753 	pid_t ngid;
14754 	int src_cpu;
14755 	int src_nid;
14756 	int dst_cpu;
14757 	int dst_nid;
14758 	char __data[0];
14759 };
14760 
14761 struct trace_event_raw_sched_numa_pair_template {
14762 	struct trace_entry ent;
14763 	pid_t src_pid;
14764 	pid_t src_tgid;
14765 	pid_t src_ngid;
14766 	int src_cpu;
14767 	int src_nid;
14768 	pid_t dst_pid;
14769 	pid_t dst_tgid;
14770 	pid_t dst_ngid;
14771 	int dst_cpu;
14772 	int dst_nid;
14773 	char __data[0];
14774 };
14775 
14776 struct trace_event_raw_sched_wake_idle_without_ipi {
14777 	struct trace_entry ent;
14778 	int cpu;
14779 	char __data[0];
14780 };
14781 
14782 struct trace_event_data_offsets_sched_kthread_stop {};
14783 
14784 struct trace_event_data_offsets_sched_kthread_stop_ret {};
14785 
14786 struct trace_event_data_offsets_sched_kthread_work_queue_work {};
14787 
14788 struct trace_event_data_offsets_sched_kthread_work_execute_start {};
14789 
14790 struct trace_event_data_offsets_sched_kthread_work_execute_end {};
14791 
14792 struct trace_event_data_offsets_sched_wakeup_template {};
14793 
14794 struct trace_event_data_offsets_sched_switch {};
14795 
14796 struct trace_event_data_offsets_sched_migrate_task {};
14797 
14798 struct trace_event_data_offsets_sched_process_template {};
14799 
14800 struct trace_event_data_offsets_sched_process_wait {};
14801 
14802 struct trace_event_data_offsets_sched_process_fork {};
14803 
14804 struct trace_event_data_offsets_sched_process_exec {
14805 	u32 filename;
14806 };
14807 
14808 struct trace_event_data_offsets_sched_stat_template {};
14809 
14810 struct trace_event_data_offsets_sched_stat_runtime {};
14811 
14812 struct trace_event_data_offsets_sched_pi_setprio {};
14813 
14814 struct trace_event_data_offsets_sched_move_numa {};
14815 
14816 struct trace_event_data_offsets_sched_numa_pair_template {};
14817 
14818 struct trace_event_data_offsets_sched_wake_idle_without_ipi {};
14819 
14820 typedef void (*btf_trace_sched_kthread_stop)(void *, struct task_struct *);
14821 
14822 typedef void (*btf_trace_sched_kthread_stop_ret)(void *, int);
14823 
14824 typedef void (*btf_trace_sched_kthread_work_queue_work)(void *, struct kthread_worker *, struct kthread_work *);
14825 
14826 typedef void (*btf_trace_sched_kthread_work_execute_start)(void *, struct kthread_work *);
14827 
14828 typedef void (*btf_trace_sched_kthread_work_execute_end)(void *, struct kthread_work *, kthread_work_func_t);
14829 
14830 typedef void (*btf_trace_sched_waking)(void *, struct task_struct *);
14831 
14832 typedef void (*btf_trace_sched_wakeup)(void *, struct task_struct *);
14833 
14834 typedef void (*btf_trace_sched_wakeup_new)(void *, struct task_struct *);
14835 
14836 typedef void (*btf_trace_sched_switch)(void *, bool, struct task_struct *, struct task_struct *, unsigned int);
14837 
14838 typedef void (*btf_trace_sched_migrate_task)(void *, struct task_struct *, int);
14839 
14840 typedef void (*btf_trace_sched_process_free)(void *, struct task_struct *);
14841 
14842 typedef void (*btf_trace_sched_process_exit)(void *, struct task_struct *);
14843 
14844 typedef void (*btf_trace_sched_wait_task)(void *, struct task_struct *);
14845 
14846 typedef void (*btf_trace_sched_process_wait)(void *, struct pid *);
14847 
14848 typedef void (*btf_trace_sched_process_fork)(void *, struct task_struct *, struct task_struct *);
14849 
14850 typedef void (*btf_trace_sched_process_exec)(void *, struct task_struct *, pid_t, struct linux_binprm *);
14851 
14852 typedef void (*btf_trace_sched_stat_wait)(void *, struct task_struct *, u64);
14853 
14854 typedef void (*btf_trace_sched_stat_sleep)(void *, struct task_struct *, u64);
14855 
14856 typedef void (*btf_trace_sched_stat_iowait)(void *, struct task_struct *, u64);
14857 
14858 typedef void (*btf_trace_sched_stat_blocked)(void *, struct task_struct *, u64);
14859 
14860 typedef void (*btf_trace_sched_stat_runtime)(void *, struct task_struct *, u64, u64);
14861 
14862 typedef void (*btf_trace_sched_pi_setprio)(void *, struct task_struct *, struct task_struct *);
14863 
14864 typedef void (*btf_trace_sched_move_numa)(void *, struct task_struct *, int, int);
14865 
14866 typedef void (*btf_trace_sched_stick_numa)(void *, struct task_struct *, int, struct task_struct *, int);
14867 
14868 typedef void (*btf_trace_sched_swap_numa)(void *, struct task_struct *, int, struct task_struct *, int);
14869 
14870 typedef void (*btf_trace_sched_wake_idle_without_ipi)(void *, int);
14871 
14872 typedef void (*btf_trace_pelt_cfs_tp)(void *, struct cfs_rq *);
14873 
14874 typedef void (*btf_trace_pelt_rt_tp)(void *, struct rq *);
14875 
14876 struct dl_rq {
14877 	struct rb_root_cached root;
14878 	unsigned int dl_nr_running;
14879 	struct {
14880 		u64 curr;
14881 		u64 next;
14882 	} earliest_dl;
14883 	unsigned int dl_nr_migratory;
14884 	int overloaded;
14885 	struct rb_root_cached pushable_dl_tasks_root;
14886 	u64 running_bw;
14887 	u64 this_bw;
14888 	u64 extra_bw;
14889 	u64 bw_ratio;
14890 };
14891 
14892 typedef int (*cpu_stop_fn_t)(void *);
14893 
14894 struct cpu_stop_done;
14895 
14896 struct cpu_stop_work {
14897 	struct list_head list;
14898 	cpu_stop_fn_t fn;
14899 	long unsigned int caller;
14900 	void *arg;
14901 	struct cpu_stop_done *done;
14902 };
14903 
14904 struct balance_callback;
14905 
14906 struct rq {
14907 	raw_spinlock_t __lock;
14908 	unsigned int nr_running;
14909 	unsigned int nr_numa_running;
14910 	unsigned int nr_preferred_running;
14911 	unsigned int numa_migrate_on;
14912 	long unsigned int last_blocked_load_update_tick;
14913 	unsigned int has_blocked_load;
14914 	long: 32;
14915 	long: 64;
14916 	long: 64;
14917 	long: 64;
14918 	call_single_data_t nohz_csd;
14919 	unsigned int nohz_tick_stopped;
14920 	atomic_t nohz_flags;
14921 	unsigned int ttwu_pending;
14922 	u64 nr_switches;
14923 	long: 64;
14924 	struct cfs_rq cfs;
14925 	struct rt_rq rt;
14926 	struct dl_rq dl;
14927 	struct list_head leaf_cfs_rq_list;
14928 	struct list_head *tmp_alone_branch;
14929 	unsigned int nr_uninterruptible;
14930 	struct task_struct *curr;
14931 	struct task_struct *idle;
14932 	struct task_struct *stop;
14933 	long unsigned int next_balance;
14934 	struct mm_struct *prev_mm;
14935 	unsigned int clock_update_flags;
14936 	u64 clock;
14937 	long: 64;
14938 	long: 64;
14939 	long: 64;
14940 	u64 clock_task;
14941 	u64 clock_pelt;
14942 	long unsigned int lost_idle_time;
14943 	u64 clock_pelt_idle;
14944 	u64 clock_idle;
14945 	atomic_t nr_iowait;
14946 	int membarrier_state;
14947 	struct root_domain *rd;
14948 	struct sched_domain *sd;
14949 	long unsigned int cpu_capacity;
14950 	long unsigned int cpu_capacity_orig;
14951 	long unsigned int cpu_capacity_inverted;
14952 	struct balance_callback *balance_callback;
14953 	unsigned char nohz_idle_balance;
14954 	unsigned char idle_balance;
14955 	long unsigned int misfit_task_load;
14956 	int active_balance;
14957 	int push_cpu;
14958 	struct cpu_stop_work active_balance_work;
14959 	int cpu;
14960 	int online;
14961 	struct list_head cfs_tasks;
14962 	struct sched_avg avg_rt;
14963 	struct sched_avg avg_dl;
14964 	u64 idle_stamp;
14965 	u64 avg_idle;
14966 	long unsigned int wake_stamp;
14967 	u64 wake_avg_idle;
14968 	u64 max_idle_balance_cost;
14969 	struct rcuwait hotplug_wait;
14970 	long unsigned int calc_load_update;
14971 	long int calc_load_active;
14972 	call_single_data_t hrtick_csd;
14973 	struct hrtimer hrtick_timer;
14974 	ktime_t hrtick_time;
14975 	struct sched_info rq_sched_info;
14976 	long long unsigned int rq_cpu_time;
14977 	unsigned int yld_count;
14978 	unsigned int sched_count;
14979 	unsigned int sched_goidle;
14980 	unsigned int ttwu_count;
14981 	unsigned int ttwu_local;
14982 	unsigned int nr_pinned;
14983 	unsigned int push_busy;
14984 	struct cpu_stop_work push_work;
14985 	cpumask_var_t scratch_mask;
14986 	long: 64;
14987 	long: 64;
14988 	long: 64;
14989 };
14990 
14991 typedef void (*btf_trace_pelt_dl_tp)(void *, struct rq *);
14992 
14993 typedef void (*btf_trace_pelt_thermal_tp)(void *, struct rq *);
14994 
14995 typedef void (*btf_trace_pelt_irq_tp)(void *, struct rq *);
14996 
14997 typedef void (*btf_trace_pelt_se_tp)(void *, struct sched_entity *);
14998 
14999 typedef void (*btf_trace_sched_cpu_capacity_tp)(void *, struct rq *);
15000 
15001 typedef void (*btf_trace_sched_overutilized_tp)(void *, struct root_domain *, bool);
15002 
15003 typedef void (*btf_trace_sched_util_est_cfs_tp)(void *, struct cfs_rq *);
15004 
15005 typedef void (*btf_trace_sched_util_est_se_tp)(void *, struct sched_entity *);
15006 
15007 typedef void (*btf_trace_sched_update_nr_running_tp)(void *, struct rq *, int);
15008 
15009 struct pm_qos_flags_request {
15010 	struct list_head node;
15011 	s32 flags;
15012 };
15013 
15014 enum freq_qos_req_type {
15015 	FREQ_QOS_MIN = 1,
15016 	FREQ_QOS_MAX = 2,
15017 };
15018 
15019 struct freq_qos_request {
15020 	enum freq_qos_req_type type;
15021 	struct plist_node pnode;
15022 	struct freq_constraints *qos;
15023 };
15024 
15025 enum dev_pm_qos_req_type {
15026 	DEV_PM_QOS_RESUME_LATENCY = 1,
15027 	DEV_PM_QOS_LATENCY_TOLERANCE = 2,
15028 	DEV_PM_QOS_MIN_FREQUENCY = 3,
15029 	DEV_PM_QOS_MAX_FREQUENCY = 4,
15030 	DEV_PM_QOS_FLAGS = 5,
15031 };
15032 
15033 struct dev_pm_qos_request {
15034 	enum dev_pm_qos_req_type type;
15035 	union {
15036 		struct plist_node pnode;
15037 		struct pm_qos_flags_request flr;
15038 		struct freq_qos_request freq;
15039 	} data;
15040 	struct device *dev;
15041 };
15042 
15043 struct cpudl_item {
15044 	u64 dl;
15045 	int cpu;
15046 	int idx;
15047 };
15048 
15049 typedef int (*tg_visitor)(struct task_group *, void *);
15050 
15051 struct perf_domain {
15052 	struct em_perf_domain *em_pd;
15053 	struct perf_domain *next;
15054 	struct callback_head rcu;
15055 };
15056 
15057 struct balance_callback {
15058 	struct balance_callback *next;
15059 	void (*func)(struct rq *);
15060 };
15061 
15062 struct rq_flags {
15063 	long unsigned int flags;
15064 	struct pin_cookie cookie;
15065 };
15066 
15067 struct sched_entity_stats {
15068 	struct sched_entity se;
15069 	struct sched_statistics stats;
15070 };
15071 
15072 enum {
15073 	__SCHED_FEAT_GENTLE_FAIR_SLEEPERS = 0,
15074 	__SCHED_FEAT_START_DEBIT = 1,
15075 	__SCHED_FEAT_NEXT_BUDDY = 2,
15076 	__SCHED_FEAT_LAST_BUDDY = 3,
15077 	__SCHED_FEAT_CACHE_HOT_BUDDY = 4,
15078 	__SCHED_FEAT_WAKEUP_PREEMPTION = 5,
15079 	__SCHED_FEAT_HRTICK = 6,
15080 	__SCHED_FEAT_HRTICK_DL = 7,
15081 	__SCHED_FEAT_DOUBLE_TICK = 8,
15082 	__SCHED_FEAT_NONTASK_CAPACITY = 9,
15083 	__SCHED_FEAT_TTWU_QUEUE = 10,
15084 	__SCHED_FEAT_SIS_PROP = 11,
15085 	__SCHED_FEAT_SIS_UTIL = 12,
15086 	__SCHED_FEAT_WARN_DOUBLE_CLOCK = 13,
15087 	__SCHED_FEAT_RT_PUSH_IPI = 14,
15088 	__SCHED_FEAT_RT_RUNTIME_SHARE = 15,
15089 	__SCHED_FEAT_LB_MIN = 16,
15090 	__SCHED_FEAT_ATTACH_AGE_LOAD = 17,
15091 	__SCHED_FEAT_WA_IDLE = 18,
15092 	__SCHED_FEAT_WA_WEIGHT = 19,
15093 	__SCHED_FEAT_WA_BIAS = 20,
15094 	__SCHED_FEAT_UTIL_EST = 21,
15095 	__SCHED_FEAT_UTIL_EST_FASTUP = 22,
15096 	__SCHED_FEAT_LATENCY_WARN = 23,
15097 	__SCHED_FEAT_ALT_PERIOD = 24,
15098 	__SCHED_FEAT_BASE_SLICE = 25,
15099 	__SCHED_FEAT_NR = 26,
15100 };
15101 
15102 struct affinity_context {
15103 	const struct cpumask *new_mask;
15104 	struct cpumask *user_mask;
15105 	unsigned int flags;
15106 };
15107 
15108 enum cpu_util_type {
15109 	FREQUENCY_UTIL = 0,
15110 	ENERGY_UTIL = 1,
15111 };
15112 
15113 enum task_work_notify_mode {
15114 	TWA_NONE = 0,
15115 	TWA_RESUME = 1,
15116 	TWA_SIGNAL = 2,
15117 	TWA_SIGNAL_NO_IPI = 3,
15118 };
15119 
15120 struct io_uring_sqe {
15121 	__u8 opcode;
15122 	__u8 flags;
15123 	__u16 ioprio;
15124 	__s32 fd;
15125 	union {
15126 		__u64 off;
15127 		__u64 addr2;
15128 		struct {
15129 			__u32 cmd_op;
15130 			__u32 __pad1;
15131 		};
15132 	};
15133 	union {
15134 		__u64 addr;
15135 		__u64 splice_off_in;
15136 	};
15137 	__u32 len;
15138 	union {
15139 		__kernel_rwf_t rw_flags;
15140 		__u32 fsync_flags;
15141 		__u16 poll_events;
15142 		__u32 poll32_events;
15143 		__u32 sync_range_flags;
15144 		__u32 msg_flags;
15145 		__u32 timeout_flags;
15146 		__u32 accept_flags;
15147 		__u32 cancel_flags;
15148 		__u32 open_flags;
15149 		__u32 statx_flags;
15150 		__u32 fadvise_advice;
15151 		__u32 splice_flags;
15152 		__u32 rename_flags;
15153 		__u32 unlink_flags;
15154 		__u32 hardlink_flags;
15155 		__u32 xattr_flags;
15156 		__u32 msg_ring_flags;
15157 		__u32 uring_cmd_flags;
15158 	};
15159 	__u64 user_data;
15160 	union {
15161 		__u16 buf_index;
15162 		__u16 buf_group;
15163 	};
15164 	__u16 personality;
15165 	union {
15166 		__s32 splice_fd_in;
15167 		__u32 file_index;
15168 		struct {
15169 			__u16 addr_len;
15170 			__u16 __pad3[1];
15171 		};
15172 	};
15173 	union {
15174 		struct {
15175 			__u64 addr3;
15176 			__u64 __pad2[1];
15177 		};
15178 		__u8 cmd[0];
15179 	};
15180 };
15181 
15182 enum {
15183 	IOSQE_FIXED_FILE_BIT = 0,
15184 	IOSQE_IO_DRAIN_BIT = 1,
15185 	IOSQE_IO_LINK_BIT = 2,
15186 	IOSQE_IO_HARDLINK_BIT = 3,
15187 	IOSQE_ASYNC_BIT = 4,
15188 	IOSQE_BUFFER_SELECT_BIT = 5,
15189 	IOSQE_CQE_SKIP_SUCCESS_BIT = 6,
15190 };
15191 
15192 enum io_uring_op {
15193 	IORING_OP_NOP = 0,
15194 	IORING_OP_READV = 1,
15195 	IORING_OP_WRITEV = 2,
15196 	IORING_OP_FSYNC = 3,
15197 	IORING_OP_READ_FIXED = 4,
15198 	IORING_OP_WRITE_FIXED = 5,
15199 	IORING_OP_POLL_ADD = 6,
15200 	IORING_OP_POLL_REMOVE = 7,
15201 	IORING_OP_SYNC_FILE_RANGE = 8,
15202 	IORING_OP_SENDMSG = 9,
15203 	IORING_OP_RECVMSG = 10,
15204 	IORING_OP_TIMEOUT = 11,
15205 	IORING_OP_TIMEOUT_REMOVE = 12,
15206 	IORING_OP_ACCEPT = 13,
15207 	IORING_OP_ASYNC_CANCEL = 14,
15208 	IORING_OP_LINK_TIMEOUT = 15,
15209 	IORING_OP_CONNECT = 16,
15210 	IORING_OP_FALLOCATE = 17,
15211 	IORING_OP_OPENAT = 18,
15212 	IORING_OP_CLOSE = 19,
15213 	IORING_OP_FILES_UPDATE = 20,
15214 	IORING_OP_STATX = 21,
15215 	IORING_OP_READ = 22,
15216 	IORING_OP_WRITE = 23,
15217 	IORING_OP_FADVISE = 24,
15218 	IORING_OP_MADVISE = 25,
15219 	IORING_OP_SEND = 26,
15220 	IORING_OP_RECV = 27,
15221 	IORING_OP_OPENAT2 = 28,
15222 	IORING_OP_EPOLL_CTL = 29,
15223 	IORING_OP_SPLICE = 30,
15224 	IORING_OP_PROVIDE_BUFFERS = 31,
15225 	IORING_OP_REMOVE_BUFFERS = 32,
15226 	IORING_OP_TEE = 33,
15227 	IORING_OP_SHUTDOWN = 34,
15228 	IORING_OP_RENAMEAT = 35,
15229 	IORING_OP_UNLINKAT = 36,
15230 	IORING_OP_MKDIRAT = 37,
15231 	IORING_OP_SYMLINKAT = 38,
15232 	IORING_OP_LINKAT = 39,
15233 	IORING_OP_MSG_RING = 40,
15234 	IORING_OP_FSETXATTR = 41,
15235 	IORING_OP_SETXATTR = 42,
15236 	IORING_OP_FGETXATTR = 43,
15237 	IORING_OP_GETXATTR = 44,
15238 	IORING_OP_SOCKET = 45,
15239 	IORING_OP_URING_CMD = 46,
15240 	IORING_OP_SEND_ZC = 47,
15241 	IORING_OP_SENDMSG_ZC = 48,
15242 	IORING_OP_LAST = 49,
15243 };
15244 
15245 struct io_uring_cqe {
15246 	__u64 user_data;
15247 	__s32 res;
15248 	__u32 flags;
15249 	__u64 big_cqe[0];
15250 };
15251 
15252 enum {
15253 	IORING_REGISTER_BUFFERS = 0,
15254 	IORING_UNREGISTER_BUFFERS = 1,
15255 	IORING_REGISTER_FILES = 2,
15256 	IORING_UNREGISTER_FILES = 3,
15257 	IORING_REGISTER_EVENTFD = 4,
15258 	IORING_UNREGISTER_EVENTFD = 5,
15259 	IORING_REGISTER_FILES_UPDATE = 6,
15260 	IORING_REGISTER_EVENTFD_ASYNC = 7,
15261 	IORING_REGISTER_PROBE = 8,
15262 	IORING_REGISTER_PERSONALITY = 9,
15263 	IORING_UNREGISTER_PERSONALITY = 10,
15264 	IORING_REGISTER_RESTRICTIONS = 11,
15265 	IORING_REGISTER_ENABLE_RINGS = 12,
15266 	IORING_REGISTER_FILES2 = 13,
15267 	IORING_REGISTER_FILES_UPDATE2 = 14,
15268 	IORING_REGISTER_BUFFERS2 = 15,
15269 	IORING_REGISTER_BUFFERS_UPDATE = 16,
15270 	IORING_REGISTER_IOWQ_AFF = 17,
15271 	IORING_UNREGISTER_IOWQ_AFF = 18,
15272 	IORING_REGISTER_IOWQ_MAX_WORKERS = 19,
15273 	IORING_REGISTER_RING_FDS = 20,
15274 	IORING_UNREGISTER_RING_FDS = 21,
15275 	IORING_REGISTER_PBUF_RING = 22,
15276 	IORING_UNREGISTER_PBUF_RING = 23,
15277 	IORING_REGISTER_SYNC_CANCEL = 24,
15278 	IORING_REGISTER_FILE_ALLOC_RANGE = 25,
15279 	IORING_REGISTER_LAST = 26,
15280 };
15281 
15282 struct io_wq_work_node {
15283 	struct io_wq_work_node *next;
15284 };
15285 
15286 struct io_wq_work_list {
15287 	struct io_wq_work_node *first;
15288 	struct io_wq_work_node *last;
15289 };
15290 
15291 struct io_wq_work {
15292 	struct io_wq_work_node list;
15293 	unsigned int flags;
15294 	int cancel_seq;
15295 };
15296 
15297 struct io_fixed_file {
15298 	long unsigned int file_ptr;
15299 };
15300 
15301 struct io_file_table {
15302 	struct io_fixed_file *files;
15303 	long unsigned int *bitmap;
15304 	unsigned int alloc_hint;
15305 };
15306 
15307 struct io_hash_bucket {
15308 	spinlock_t lock;
15309 	struct hlist_head list;
15310 	long: 64;
15311 	long: 64;
15312 	long: 64;
15313 	long: 64;
15314 	long: 64;
15315 	long: 64;
15316 };
15317 
15318 struct io_hash_table {
15319 	struct io_hash_bucket *hbs;
15320 	unsigned int hash_bits;
15321 };
15322 
15323 struct io_kiocb;
15324 
15325 struct io_submit_link {
15326 	struct io_kiocb *head;
15327 	struct io_kiocb *last;
15328 };
15329 
15330 struct io_submit_state {
15331 	struct io_wq_work_node free_list;
15332 	struct io_wq_work_list compl_reqs;
15333 	struct io_submit_link link;
15334 	bool plug_started;
15335 	bool need_plug;
15336 	short unsigned int submit_nr;
15337 	unsigned int cqes_count;
15338 	struct blk_plug plug;
15339 	struct io_uring_cqe cqes[16];
15340 };
15341 
15342 struct io_alloc_cache {
15343 	struct hlist_head list;
15344 	unsigned int nr_cached;
15345 };
15346 
15347 struct io_restriction {
15348 	long unsigned int register_op[1];
15349 	long unsigned int sqe_op[1];
15350 	u8 sqe_flags_allowed;
15351 	u8 sqe_flags_required;
15352 	bool registered;
15353 };
15354 
15355 struct io_rings;
15356 
15357 struct io_rsrc_node;
15358 
15359 struct io_mapped_ubuf;
15360 
15361 struct io_buffer_list;
15362 
15363 struct io_sq_data;
15364 
15365 struct io_ev_fd;
15366 
15367 struct io_rsrc_data;
15368 
15369 struct io_wq_hash;
15370 
15371 struct io_ring_ctx {
15372 	struct {
15373 		struct percpu_ref refs;
15374 		struct io_rings *rings;
15375 		unsigned int flags;
15376 		enum task_work_notify_mode notify_method;
15377 		unsigned int compat: 1;
15378 		unsigned int drain_next: 1;
15379 		unsigned int restricted: 1;
15380 		unsigned int off_timeout_used: 1;
15381 		unsigned int drain_active: 1;
15382 		unsigned int drain_disabled: 1;
15383 		unsigned int has_evfd: 1;
15384 		unsigned int syscall_iopoll: 1;
15385 		unsigned int task_complete: 1;
15386 		long: 55;
15387 		long: 64;
15388 		long: 64;
15389 		long: 64;
15390 	};
15391 	struct {
15392 		struct mutex uring_lock;
15393 		u32 *sq_array;
15394 		struct io_uring_sqe *sq_sqes;
15395 		unsigned int cached_sq_head;
15396 		unsigned int sq_entries;
15397 		struct io_rsrc_node *rsrc_node;
15398 		int rsrc_cached_refs;
15399 		atomic_t cancel_seq;
15400 		struct io_file_table file_table;
15401 		unsigned int nr_user_files;
15402 		unsigned int nr_user_bufs;
15403 		struct io_mapped_ubuf **user_bufs;
15404 		struct io_submit_state submit_state;
15405 		struct io_buffer_list *io_bl;
15406 		struct xarray io_bl_xa;
15407 		struct list_head io_buffers_cache;
15408 		struct io_hash_table cancel_table_locked;
15409 		struct list_head cq_overflow_list;
15410 		struct io_alloc_cache apoll_cache;
15411 		struct io_alloc_cache netmsg_cache;
15412 		long: 64;
15413 		long: 64;
15414 	};
15415 	struct io_wq_work_list locked_free_list;
15416 	unsigned int locked_free_nr;
15417 	const struct cred *sq_creds;
15418 	struct io_sq_data *sq_data;
15419 	struct wait_queue_head sqo_sq_wait;
15420 	struct list_head sqd_list;
15421 	long unsigned int check_cq;
15422 	unsigned int file_alloc_start;
15423 	unsigned int file_alloc_end;
15424 	struct xarray personalities;
15425 	u32 pers_next;
15426 	long: 32;
15427 	long: 64;
15428 	struct {
15429 		struct io_uring_cqe *cqe_cached;
15430 		struct io_uring_cqe *cqe_sentinel;
15431 		unsigned int cached_cq_tail;
15432 		unsigned int cq_entries;
15433 		struct io_ev_fd *io_ev_fd;
15434 		struct wait_queue_head cq_wait;
15435 		unsigned int cq_extra;
15436 	};
15437 	struct {
15438 		spinlock_t completion_lock;
15439 		bool poll_multi_queue;
15440 		struct io_wq_work_list iopoll_list;
15441 		struct io_hash_table cancel_table;
15442 		struct llist_head work_llist;
15443 		struct list_head io_buffers_comp;
15444 	};
15445 	struct {
15446 		spinlock_t timeout_lock;
15447 		atomic_t cq_timeouts;
15448 		struct list_head timeout_list;
15449 		struct list_head ltimeout_list;
15450 		unsigned int cq_last_tm_flush;
15451 		long: 32;
15452 		long: 64;
15453 		long: 64;
15454 	};
15455 	struct io_restriction restrictions;
15456 	struct task_struct *submitter_task;
15457 	struct io_rsrc_node *rsrc_backup_node;
15458 	struct io_mapped_ubuf *dummy_ubuf;
15459 	struct io_rsrc_data *file_data;
15460 	struct io_rsrc_data *buf_data;
15461 	struct delayed_work rsrc_put_work;
15462 	struct callback_head rsrc_put_tw;
15463 	struct llist_head rsrc_put_llist;
15464 	struct list_head rsrc_ref_list;
15465 	spinlock_t rsrc_ref_lock;
15466 	struct list_head io_buffers_pages;
15467 	struct socket *ring_sock;
15468 	struct io_wq_hash *hash_map;
15469 	struct user_struct *user;
15470 	struct mm_struct *mm_account;
15471 	struct llist_head fallback_llist;
15472 	struct delayed_work fallback_work;
15473 	struct work_struct exit_work;
15474 	struct list_head tctx_list;
15475 	struct completion ref_comp;
15476 	u32 iowq_limits[2];
15477 	bool iowq_limits_set;
15478 	struct list_head defer_list;
15479 	unsigned int sq_thread_idle;
15480 	unsigned int evfd_last_cq_tail;
15481 	long: 64;
15482 	long: 64;
15483 	long: 64;
15484 	long: 64;
15485 	long: 64;
15486 	long: 64;
15487 };
15488 
15489 struct io_uring {
15490 	u32 head;
15491 	long: 32;
15492 	long: 64;
15493 	long: 64;
15494 	long: 64;
15495 	long: 64;
15496 	long: 64;
15497 	long: 64;
15498 	long: 64;
15499 	u32 tail;
15500 	long: 32;
15501 	long: 64;
15502 	long: 64;
15503 	long: 64;
15504 	long: 64;
15505 	long: 64;
15506 	long: 64;
15507 	long: 64;
15508 };
15509 
15510 struct io_rings {
15511 	struct io_uring sq;
15512 	struct io_uring cq;
15513 	u32 sq_ring_mask;
15514 	u32 cq_ring_mask;
15515 	u32 sq_ring_entries;
15516 	u32 cq_ring_entries;
15517 	u32 sq_dropped;
15518 	atomic_t sq_flags;
15519 	u32 cq_flags;
15520 	u32 cq_overflow;
15521 	long: 64;
15522 	long: 64;
15523 	long: 64;
15524 	long: 64;
15525 	struct io_uring_cqe cqes[0];
15526 };
15527 
15528 struct io_cmd_data {
15529 	struct file *file;
15530 	__u8 data[56];
15531 };
15532 
15533 struct io_cqe {
15534 	__u64 user_data;
15535 	__s32 res;
15536 	union {
15537 		__u32 flags;
15538 		int fd;
15539 	};
15540 };
15541 
15542 typedef void (*io_req_tw_func_t)(struct io_kiocb *, bool *);
15543 
15544 struct io_task_work {
15545 	struct llist_node node;
15546 	io_req_tw_func_t func;
15547 };
15548 
15549 struct io_buffer;
15550 
15551 struct async_poll;
15552 
15553 struct io_kiocb {
15554 	union {
15555 		struct file *file;
15556 		struct io_cmd_data cmd;
15557 	};
15558 	u8 opcode;
15559 	u8 iopoll_completed;
15560 	u16 buf_index;
15561 	unsigned int flags;
15562 	struct io_cqe cqe;
15563 	struct io_ring_ctx *ctx;
15564 	struct task_struct *task;
15565 	struct io_rsrc_node *rsrc_node;
15566 	union {
15567 		struct io_mapped_ubuf *imu;
15568 		struct io_buffer *kbuf;
15569 		struct io_buffer_list *buf_list;
15570 	};
15571 	union {
15572 		struct io_wq_work_node comp_list;
15573 		__poll_t apoll_events;
15574 	};
15575 	atomic_t refs;
15576 	atomic_t poll_refs;
15577 	struct io_task_work io_task_work;
15578 	union {
15579 		struct hlist_node hash_node;
15580 		struct {
15581 			u64 extra1;
15582 			u64 extra2;
15583 		};
15584 	};
15585 	struct async_poll *apoll;
15586 	void *async_data;
15587 	struct io_kiocb *link;
15588 	const struct cred *creds;
15589 	struct io_wq_work work;
15590 };
15591 
15592 struct io_ev_fd {
15593 	struct eventfd_ctx *cq_ev_fd;
15594 	unsigned int eventfd_async: 1;
15595 	struct callback_head rcu;
15596 	atomic_t refs;
15597 	atomic_t ops;
15598 };
15599 
15600 struct io_wq_hash {
15601 	refcount_t refs;
15602 	long unsigned int map;
15603 	struct wait_queue_head wait;
15604 };
15605 
15606 enum {
15607 	REQ_F_FIXED_FILE_BIT = 0,
15608 	REQ_F_IO_DRAIN_BIT = 1,
15609 	REQ_F_LINK_BIT = 2,
15610 	REQ_F_HARDLINK_BIT = 3,
15611 	REQ_F_FORCE_ASYNC_BIT = 4,
15612 	REQ_F_BUFFER_SELECT_BIT = 5,
15613 	REQ_F_CQE_SKIP_BIT = 6,
15614 	REQ_F_FAIL_BIT = 8,
15615 	REQ_F_INFLIGHT_BIT = 9,
15616 	REQ_F_CUR_POS_BIT = 10,
15617 	REQ_F_NOWAIT_BIT = 11,
15618 	REQ_F_LINK_TIMEOUT_BIT = 12,
15619 	REQ_F_NEED_CLEANUP_BIT = 13,
15620 	REQ_F_POLLED_BIT = 14,
15621 	REQ_F_BUFFER_SELECTED_BIT = 15,
15622 	REQ_F_BUFFER_RING_BIT = 16,
15623 	REQ_F_REISSUE_BIT = 17,
15624 	REQ_F_CREDS_BIT = 18,
15625 	REQ_F_REFCOUNT_BIT = 19,
15626 	REQ_F_ARM_LTIMEOUT_BIT = 20,
15627 	REQ_F_ASYNC_DATA_BIT = 21,
15628 	REQ_F_SKIP_LINK_CQES_BIT = 22,
15629 	REQ_F_SINGLE_POLL_BIT = 23,
15630 	REQ_F_DOUBLE_POLL_BIT = 24,
15631 	REQ_F_PARTIAL_IO_BIT = 25,
15632 	REQ_F_CQE32_INIT_BIT = 26,
15633 	REQ_F_APOLL_MULTISHOT_BIT = 27,
15634 	REQ_F_CLEAR_POLLIN_BIT = 28,
15635 	REQ_F_HASH_LOCKED_BIT = 29,
15636 	REQ_F_SUPPORT_NOWAIT_BIT = 30,
15637 	REQ_F_ISREG_BIT = 31,
15638 	__REQ_F_LAST_BIT = 32,
15639 };
15640 
15641 struct set_affinity_pending;
15642 
15643 struct migration_arg {
15644 	struct task_struct *task;
15645 	int dest_cpu;
15646 	struct set_affinity_pending *pending;
15647 };
15648 
15649 struct set_affinity_pending {
15650 	refcount_t refs;
15651 	unsigned int stop_pending;
15652 	struct completion done;
15653 	struct cpu_stop_work stop_work;
15654 	struct migration_arg arg;
15655 };
15656 
15657 struct migration_swap_arg {
15658 	struct task_struct *src_task;
15659 	struct task_struct *dst_task;
15660 	int src_cpu;
15661 	int dst_cpu;
15662 };
15663 
15664 struct cfs_schedulable_data {
15665 	struct task_group *tg;
15666 	u64 period;
15667 	u64 quota;
15668 };
15669 
15670 enum {
15671 	cpuset = 0,
15672 	possible = 1,
15673 	fail = 2,
15674 };
15675 
15676 union cpumask_rcuhead {
15677 	cpumask_t cpumask;
15678 	struct callback_head rcu;
15679 };
15680 
15681 struct hrtimer_sleeper {
15682 	struct hrtimer timer;
15683 	struct task_struct *task;
15684 };
15685 
15686 struct rt_mutex_base;
15687 
15688 struct ww_acquire_ctx;
15689 
15690 struct rt_mutex_waiter {
15691 	struct rb_node tree_entry;
15692 	struct rb_node pi_tree_entry;
15693 	struct task_struct *task;
15694 	struct rt_mutex_base *lock;
15695 	unsigned int wake_state;
15696 	int prio;
15697 	u64 deadline;
15698 	struct ww_acquire_ctx *ww_ctx;
15699 };
15700 
15701 struct rt_mutex_base {
15702 	raw_spinlock_t wait_lock;
15703 	struct rb_root_cached waiters;
15704 	struct task_struct *owner;
15705 };
15706 
15707 struct rt_mutex {
15708 	struct rt_mutex_base rtmutex;
15709 };
15710 
15711 struct ww_mutex {
15712 	struct mutex base;
15713 	struct ww_acquire_ctx *ctx;
15714 };
15715 
15716 struct ww_acquire_ctx {
15717 	struct task_struct *task;
15718 	long unsigned int stamp;
15719 	unsigned int acquired;
15720 	short unsigned int wounded;
15721 	short unsigned int is_wait_die;
15722 };
15723 
15724 struct rt_wake_q_head {
15725 	struct wake_q_head head;
15726 	struct task_struct *rtlock_task;
15727 };
15728 
15729 enum rtmutex_chainwalk {
15730 	RT_MUTEX_MIN_CHAINWALK = 0,
15731 	RT_MUTEX_FULL_CHAINWALK = 1,
15732 };
15733 
15734 typedef unsigned int uint;
15735 
15736 struct console {
15737 	char name[16];
15738 	void (*write)(struct console *, const char *, unsigned int);
15739 	int (*read)(struct console *, char *, unsigned int);
15740 	struct tty_driver * (*device)(struct console *, int *);
15741 	void (*unblank)();
15742 	int (*setup)(struct console *, char *);
15743 	int (*exit)(struct console *);
15744 	int (*match)(struct console *, char *, int, char *);
15745 	short int flags;
15746 	short int index;
15747 	int cflag;
15748 	uint ispeed;
15749 	uint ospeed;
15750 	u64 seq;
15751 	long unsigned int dropped;
15752 	void *data;
15753 	struct hlist_node node;
15754 };
15755 
15756 struct console_cmdline {
15757 	char name[16];
15758 	int index;
15759 	bool user_specified;
15760 	char *options;
15761 	char *brl_options;
15762 };
15763 
15764 struct dev_printk_info {
15765 	char subsystem[16];
15766 	char device[48];
15767 };
15768 
15769 struct printk_info {
15770 	u64 seq;
15771 	u64 ts_nsec;
15772 	u16 text_len;
15773 	u8 facility;
15774 	u8 flags: 5;
15775 	u8 level: 3;
15776 	u32 caller_id;
15777 	struct dev_printk_info dev_info;
15778 };
15779 
15780 struct printk_record {
15781 	struct printk_info *info;
15782 	char *text_buf;
15783 	unsigned int text_buf_size;
15784 };
15785 
15786 struct prb_data_blk_lpos {
15787 	long unsigned int begin;
15788 	long unsigned int next;
15789 };
15790 
15791 struct prb_desc {
15792 	atomic_long_t state_var;
15793 	struct prb_data_blk_lpos text_blk_lpos;
15794 };
15795 
15796 struct prb_data_ring {
15797 	unsigned int size_bits;
15798 	char *data;
15799 	atomic_long_t head_lpos;
15800 	atomic_long_t tail_lpos;
15801 };
15802 
15803 struct prb_desc_ring {
15804 	unsigned int count_bits;
15805 	struct prb_desc *descs;
15806 	struct printk_info *infos;
15807 	atomic_long_t head_id;
15808 	atomic_long_t tail_id;
15809 	atomic_long_t last_finalized_id;
15810 };
15811 
15812 struct printk_ringbuffer {
15813 	struct prb_desc_ring desc_ring;
15814 	struct prb_data_ring text_data_ring;
15815 	atomic_long_t fail;
15816 };
15817 
15818 struct prb_reserved_entry {
15819 	struct printk_ringbuffer *rb;
15820 	long unsigned int irqflags;
15821 	long unsigned int id;
15822 	unsigned int text_space;
15823 };
15824 
15825 enum desc_state {
15826 	desc_miss = -1,
15827 	desc_reserved = 0,
15828 	desc_committed = 1,
15829 	desc_finalized = 2,
15830 	desc_reusable = 3,
15831 };
15832 
15833 struct prb_data_block {
15834 	long unsigned int id;
15835 	char data[0];
15836 };
15837 
15838 enum {
15839 	IRQ_TYPE_NONE = 0,
15840 	IRQ_TYPE_EDGE_RISING = 1,
15841 	IRQ_TYPE_EDGE_FALLING = 2,
15842 	IRQ_TYPE_EDGE_BOTH = 3,
15843 	IRQ_TYPE_LEVEL_HIGH = 4,
15844 	IRQ_TYPE_LEVEL_LOW = 8,
15845 	IRQ_TYPE_LEVEL_MASK = 12,
15846 	IRQ_TYPE_SENSE_MASK = 15,
15847 	IRQ_TYPE_DEFAULT = 15,
15848 	IRQ_TYPE_PROBE = 16,
15849 	IRQ_LEVEL = 256,
15850 	IRQ_PER_CPU = 512,
15851 	IRQ_NOPROBE = 1024,
15852 	IRQ_NOREQUEST = 2048,
15853 	IRQ_NOAUTOEN = 4096,
15854 	IRQ_NO_BALANCING = 8192,
15855 	IRQ_MOVE_PCNTXT = 16384,
15856 	IRQ_NESTED_THREAD = 32768,
15857 	IRQ_NOTHREAD = 65536,
15858 	IRQ_PER_CPU_DEVID = 131072,
15859 	IRQ_IS_POLLED = 262144,
15860 	IRQ_DISABLE_UNLAZY = 524288,
15861 	IRQ_HIDDEN = 1048576,
15862 	IRQ_NO_DEBUG = 2097152,
15863 };
15864 
15865 enum {
15866 	IRQD_TRIGGER_MASK = 15,
15867 	IRQD_SETAFFINITY_PENDING = 256,
15868 	IRQD_ACTIVATED = 512,
15869 	IRQD_NO_BALANCING = 1024,
15870 	IRQD_PER_CPU = 2048,
15871 	IRQD_AFFINITY_SET = 4096,
15872 	IRQD_LEVEL = 8192,
15873 	IRQD_WAKEUP_STATE = 16384,
15874 	IRQD_MOVE_PCNTXT = 32768,
15875 	IRQD_IRQ_DISABLED = 65536,
15876 	IRQD_IRQ_MASKED = 131072,
15877 	IRQD_IRQ_INPROGRESS = 262144,
15878 	IRQD_WAKEUP_ARMED = 524288,
15879 	IRQD_FORWARDED_TO_VCPU = 1048576,
15880 	IRQD_AFFINITY_MANAGED = 2097152,
15881 	IRQD_IRQ_STARTED = 4194304,
15882 	IRQD_MANAGED_SHUTDOWN = 8388608,
15883 	IRQD_SINGLE_TARGET = 16777216,
15884 	IRQD_DEFAULT_TRIGGER_SET = 33554432,
15885 	IRQD_CAN_RESERVE = 67108864,
15886 	IRQD_MSI_NOMASK_QUIRK = 134217728,
15887 	IRQD_HANDLE_ENFORCE_IRQCTX = 268435456,
15888 	IRQD_AFFINITY_ON_ACTIVATE = 536870912,
15889 	IRQD_IRQ_ENABLED_ON_SUSPEND = 1073741824,
15890 };
15891 
15892 enum {
15893 	IRQTF_RUNTHREAD = 0,
15894 	IRQTF_WARNED = 1,
15895 	IRQTF_AFFINITY = 2,
15896 	IRQTF_FORCED_THREAD = 3,
15897 	IRQTF_READY = 4,
15898 };
15899 
15900 enum {
15901 	IRQS_AUTODETECT = 1,
15902 	IRQS_SPURIOUS_DISABLED = 2,
15903 	IRQS_POLL_INPROGRESS = 8,
15904 	IRQS_ONESHOT = 32,
15905 	IRQS_REPLAY = 64,
15906 	IRQS_WAITING = 128,
15907 	IRQS_PENDING = 512,
15908 	IRQS_SUSPENDED = 2048,
15909 	IRQS_TIMINGS = 4096,
15910 	IRQS_NMI = 8192,
15911 	IRQS_SYSFS = 16384,
15912 };
15913 
15914 enum {
15915 	_IRQ_DEFAULT_INIT_FLAGS = 0,
15916 	_IRQ_PER_CPU = 512,
15917 	_IRQ_LEVEL = 256,
15918 	_IRQ_NOPROBE = 1024,
15919 	_IRQ_NOREQUEST = 2048,
15920 	_IRQ_NOTHREAD = 65536,
15921 	_IRQ_NOAUTOEN = 4096,
15922 	_IRQ_MOVE_PCNTXT = 16384,
15923 	_IRQ_NO_BALANCING = 8192,
15924 	_IRQ_NESTED_THREAD = 32768,
15925 	_IRQ_PER_CPU_DEVID = 131072,
15926 	_IRQ_IS_POLLED = 262144,
15927 	_IRQ_DISABLE_UNLAZY = 524288,
15928 	_IRQ_HIDDEN = 1048576,
15929 	_IRQ_NO_DEBUG = 2097152,
15930 	_IRQF_MODIFY_MASK = 2096911,
15931 };
15932 
15933 typedef __u32 __le32;
15934 
15935 struct syscore_ops {
15936 	struct list_head node;
15937 	int (*suspend)();
15938 	void (*resume)();
15939 	void (*shutdown)();
15940 };
15941 
15942 typedef void (*call_rcu_func_t)(struct callback_head *, rcu_callback_t);
15943 
15944 struct rcu_cblist {
15945 	struct callback_head *head;
15946 	struct callback_head **tail;
15947 	long int len;
15948 };
15949 
15950 struct rcu_synchronize {
15951 	struct callback_head head;
15952 	struct completion completion;
15953 };
15954 
15955 struct trace_event_raw_rcu_utilization {
15956 	struct trace_entry ent;
15957 	const char *s;
15958 	char __data[0];
15959 };
15960 
15961 struct trace_event_raw_rcu_grace_period {
15962 	struct trace_entry ent;
15963 	const char *rcuname;
15964 	long int gp_seq;
15965 	const char *gpevent;
15966 	char __data[0];
15967 };
15968 
15969 struct trace_event_raw_rcu_future_grace_period {
15970 	struct trace_entry ent;
15971 	const char *rcuname;
15972 	long int gp_seq;
15973 	long int gp_seq_req;
15974 	u8 level;
15975 	int grplo;
15976 	int grphi;
15977 	const char *gpevent;
15978 	char __data[0];
15979 };
15980 
15981 struct trace_event_raw_rcu_grace_period_init {
15982 	struct trace_entry ent;
15983 	const char *rcuname;
15984 	long int gp_seq;
15985 	u8 level;
15986 	int grplo;
15987 	int grphi;
15988 	long unsigned int qsmask;
15989 	char __data[0];
15990 };
15991 
15992 struct trace_event_raw_rcu_exp_grace_period {
15993 	struct trace_entry ent;
15994 	const char *rcuname;
15995 	long int gpseq;
15996 	const char *gpevent;
15997 	char __data[0];
15998 };
15999 
16000 struct trace_event_raw_rcu_exp_funnel_lock {
16001 	struct trace_entry ent;
16002 	const char *rcuname;
16003 	u8 level;
16004 	int grplo;
16005 	int grphi;
16006 	const char *gpevent;
16007 	char __data[0];
16008 };
16009 
16010 struct trace_event_raw_rcu_preempt_task {
16011 	struct trace_entry ent;
16012 	const char *rcuname;
16013 	long int gp_seq;
16014 	int pid;
16015 	char __data[0];
16016 };
16017 
16018 struct trace_event_raw_rcu_unlock_preempted_task {
16019 	struct trace_entry ent;
16020 	const char *rcuname;
16021 	long int gp_seq;
16022 	int pid;
16023 	char __data[0];
16024 };
16025 
16026 struct trace_event_raw_rcu_quiescent_state_report {
16027 	struct trace_entry ent;
16028 	const char *rcuname;
16029 	long int gp_seq;
16030 	long unsigned int mask;
16031 	long unsigned int qsmask;
16032 	u8 level;
16033 	int grplo;
16034 	int grphi;
16035 	u8 gp_tasks;
16036 	char __data[0];
16037 };
16038 
16039 struct trace_event_raw_rcu_fqs {
16040 	struct trace_entry ent;
16041 	const char *rcuname;
16042 	long int gp_seq;
16043 	int cpu;
16044 	const char *qsevent;
16045 	char __data[0];
16046 };
16047 
16048 struct trace_event_raw_rcu_stall_warning {
16049 	struct trace_entry ent;
16050 	const char *rcuname;
16051 	const char *msg;
16052 	char __data[0];
16053 };
16054 
16055 struct trace_event_raw_rcu_dyntick {
16056 	struct trace_entry ent;
16057 	const char *polarity;
16058 	long int oldnesting;
16059 	long int newnesting;
16060 	int dynticks;
16061 	char __data[0];
16062 };
16063 
16064 struct trace_event_raw_rcu_callback {
16065 	struct trace_entry ent;
16066 	const char *rcuname;
16067 	void *rhp;
16068 	void *func;
16069 	long int qlen;
16070 	char __data[0];
16071 };
16072 
16073 struct trace_event_raw_rcu_segcb_stats {
16074 	struct trace_entry ent;
16075 	const char *ctx;
16076 	long unsigned int gp_seq[4];
16077 	long int seglen[4];
16078 	char __data[0];
16079 };
16080 
16081 struct trace_event_raw_rcu_kvfree_callback {
16082 	struct trace_entry ent;
16083 	const char *rcuname;
16084 	void *rhp;
16085 	long unsigned int offset;
16086 	long int qlen;
16087 	char __data[0];
16088 };
16089 
16090 struct trace_event_raw_rcu_batch_start {
16091 	struct trace_entry ent;
16092 	const char *rcuname;
16093 	long int qlen;
16094 	long int blimit;
16095 	char __data[0];
16096 };
16097 
16098 struct trace_event_raw_rcu_invoke_callback {
16099 	struct trace_entry ent;
16100 	const char *rcuname;
16101 	void *rhp;
16102 	void *func;
16103 	char __data[0];
16104 };
16105 
16106 struct trace_event_raw_rcu_invoke_kvfree_callback {
16107 	struct trace_entry ent;
16108 	const char *rcuname;
16109 	void *rhp;
16110 	long unsigned int offset;
16111 	char __data[0];
16112 };
16113 
16114 struct trace_event_raw_rcu_invoke_kfree_bulk_callback {
16115 	struct trace_entry ent;
16116 	const char *rcuname;
16117 	long unsigned int nr_records;
16118 	void **p;
16119 	char __data[0];
16120 };
16121 
16122 struct trace_event_raw_rcu_batch_end {
16123 	struct trace_entry ent;
16124 	const char *rcuname;
16125 	int callbacks_invoked;
16126 	char cb;
16127 	char nr;
16128 	char iit;
16129 	char risk;
16130 	char __data[0];
16131 };
16132 
16133 struct trace_event_raw_rcu_torture_read {
16134 	struct trace_entry ent;
16135 	char rcutorturename[8];
16136 	struct callback_head *rhp;
16137 	long unsigned int secs;
16138 	long unsigned int c_old;
16139 	long unsigned int c;
16140 	char __data[0];
16141 };
16142 
16143 struct trace_event_raw_rcu_barrier {
16144 	struct trace_entry ent;
16145 	const char *rcuname;
16146 	const char *s;
16147 	int cpu;
16148 	int cnt;
16149 	long unsigned int done;
16150 	char __data[0];
16151 };
16152 
16153 struct trace_event_data_offsets_rcu_utilization {};
16154 
16155 struct trace_event_data_offsets_rcu_grace_period {};
16156 
16157 struct trace_event_data_offsets_rcu_future_grace_period {};
16158 
16159 struct trace_event_data_offsets_rcu_grace_period_init {};
16160 
16161 struct trace_event_data_offsets_rcu_exp_grace_period {};
16162 
16163 struct trace_event_data_offsets_rcu_exp_funnel_lock {};
16164 
16165 struct trace_event_data_offsets_rcu_preempt_task {};
16166 
16167 struct trace_event_data_offsets_rcu_unlock_preempted_task {};
16168 
16169 struct trace_event_data_offsets_rcu_quiescent_state_report {};
16170 
16171 struct trace_event_data_offsets_rcu_fqs {};
16172 
16173 struct trace_event_data_offsets_rcu_stall_warning {};
16174 
16175 struct trace_event_data_offsets_rcu_dyntick {};
16176 
16177 struct trace_event_data_offsets_rcu_callback {};
16178 
16179 struct trace_event_data_offsets_rcu_segcb_stats {};
16180 
16181 struct trace_event_data_offsets_rcu_kvfree_callback {};
16182 
16183 struct trace_event_data_offsets_rcu_batch_start {};
16184 
16185 struct trace_event_data_offsets_rcu_invoke_callback {};
16186 
16187 struct trace_event_data_offsets_rcu_invoke_kvfree_callback {};
16188 
16189 struct trace_event_data_offsets_rcu_invoke_kfree_bulk_callback {};
16190 
16191 struct trace_event_data_offsets_rcu_batch_end {};
16192 
16193 struct trace_event_data_offsets_rcu_torture_read {};
16194 
16195 struct trace_event_data_offsets_rcu_barrier {};
16196 
16197 typedef void (*btf_trace_rcu_utilization)(void *, const char *);
16198 
16199 typedef void (*btf_trace_rcu_grace_period)(void *, const char *, long unsigned int, const char *);
16200 
16201 typedef void (*btf_trace_rcu_future_grace_period)(void *, const char *, long unsigned int, long unsigned int, u8, int, int, const char *);
16202 
16203 typedef void (*btf_trace_rcu_grace_period_init)(void *, const char *, long unsigned int, u8, int, int, long unsigned int);
16204 
16205 typedef void (*btf_trace_rcu_exp_grace_period)(void *, const char *, long unsigned int, const char *);
16206 
16207 typedef void (*btf_trace_rcu_exp_funnel_lock)(void *, const char *, u8, int, int, const char *);
16208 
16209 typedef void (*btf_trace_rcu_preempt_task)(void *, const char *, int, long unsigned int);
16210 
16211 typedef void (*btf_trace_rcu_unlock_preempted_task)(void *, const char *, long unsigned int, int);
16212 
16213 typedef void (*btf_trace_rcu_quiescent_state_report)(void *, const char *, long unsigned int, long unsigned int, long unsigned int, u8, int, int, int);
16214 
16215 typedef void (*btf_trace_rcu_fqs)(void *, const char *, long unsigned int, int, const char *);
16216 
16217 typedef void (*btf_trace_rcu_stall_warning)(void *, const char *, const char *);
16218 
16219 typedef void (*btf_trace_rcu_dyntick)(void *, const char *, long int, long int, int);
16220 
16221 typedef void (*btf_trace_rcu_callback)(void *, const char *, struct callback_head *, long int);
16222 
16223 typedef void (*btf_trace_rcu_segcb_stats)(void *, struct rcu_segcblist *, const char *);
16224 
16225 typedef void (*btf_trace_rcu_kvfree_callback)(void *, const char *, struct callback_head *, long unsigned int, long int);
16226 
16227 typedef void (*btf_trace_rcu_batch_start)(void *, const char *, long int, long int);
16228 
16229 typedef void (*btf_trace_rcu_invoke_callback)(void *, const char *, struct callback_head *);
16230 
16231 typedef void (*btf_trace_rcu_invoke_kvfree_callback)(void *, const char *, struct callback_head *, long unsigned int);
16232 
16233 typedef void (*btf_trace_rcu_invoke_kfree_bulk_callback)(void *, const char *, long unsigned int, void **);
16234 
16235 typedef void (*btf_trace_rcu_batch_end)(void *, const char *, int, char, char, char, char);
16236 
16237 typedef void (*btf_trace_rcu_torture_read)(void *, const char *, struct callback_head *, long unsigned int, long unsigned int, long unsigned int);
16238 
16239 typedef void (*btf_trace_rcu_barrier)(void *, const char *, const char *, int, int, long unsigned int);
16240 
16241 struct rcu_tasks;
16242 
16243 typedef void (*rcu_tasks_gp_func_t)(struct rcu_tasks *);
16244 
16245 typedef void (*pregp_func_t)(struct list_head *);
16246 
16247 typedef void (*pertask_func_t)(struct task_struct *, struct list_head *);
16248 
16249 typedef void (*postscan_func_t)(struct list_head *);
16250 
16251 typedef void (*holdouts_func_t)(struct list_head *, bool, bool *);
16252 
16253 typedef void (*postgp_func_t)(struct rcu_tasks *);
16254 
16255 struct rcu_tasks_percpu;
16256 
16257 struct rcu_tasks {
16258 	struct rcuwait cbs_wait;
16259 	raw_spinlock_t cbs_gbl_lock;
16260 	struct mutex tasks_gp_mutex;
16261 	int gp_state;
16262 	int gp_sleep;
16263 	int init_fract;
16264 	long unsigned int gp_jiffies;
16265 	long unsigned int gp_start;
16266 	long unsigned int tasks_gp_seq;
16267 	long unsigned int n_ipis;
16268 	long unsigned int n_ipis_fails;
16269 	struct task_struct *kthread_ptr;
16270 	rcu_tasks_gp_func_t gp_func;
16271 	pregp_func_t pregp_func;
16272 	pertask_func_t pertask_func;
16273 	postscan_func_t postscan_func;
16274 	holdouts_func_t holdouts_func;
16275 	postgp_func_t postgp_func;
16276 	call_rcu_func_t call_func;
16277 	struct rcu_tasks_percpu *rtpcpu;
16278 	int percpu_enqueue_shift;
16279 	int percpu_enqueue_lim;
16280 	int percpu_dequeue_lim;
16281 	long unsigned int percpu_dequeue_gpseq;
16282 	struct mutex barrier_q_mutex;
16283 	atomic_t barrier_q_count;
16284 	struct completion barrier_q_completion;
16285 	long unsigned int barrier_q_seq;
16286 	char *name;
16287 	char *kname;
16288 };
16289 
16290 struct rcu_tasks_percpu {
16291 	struct rcu_segcblist cblist;
16292 	raw_spinlock_t lock;
16293 	long unsigned int rtp_jiffies;
16294 	long unsigned int rtp_n_lock_retries;
16295 	struct work_struct rtp_work;
16296 	struct irq_work rtp_irq_work;
16297 	struct callback_head barrier_q_head;
16298 	struct list_head rtp_blkd_tasks;
16299 	int cpu;
16300 	struct rcu_tasks *rtpp;
16301 };
16302 
16303 struct trc_stall_chk_rdr {
16304 	int nesting;
16305 	int ipi_to_cpu;
16306 	u8 needqs;
16307 };
16308 
16309 struct cma {
16310 	long unsigned int base_pfn;
16311 	long unsigned int count;
16312 	long unsigned int *bitmap;
16313 	unsigned int order_per_bit;
16314 	spinlock_t lock;
16315 	char name[64];
16316 	bool reserve_pages_on_error;
16317 };
16318 
16319 struct reserved_mem_ops;
16320 
16321 struct reserved_mem {
16322 	const char *name;
16323 	long unsigned int fdt_node;
16324 	long unsigned int phandle;
16325 	const struct reserved_mem_ops *ops;
16326 	phys_addr_t base;
16327 	phys_addr_t size;
16328 	void *priv;
16329 };
16330 
16331 struct reserved_mem_ops {
16332 	int (*device_init)(struct reserved_mem *, struct device *);
16333 	void (*device_release)(struct reserved_mem *, struct device *);
16334 };
16335 
16336 typedef int (*reservedmem_of_init_fn)(struct reserved_mem *);
16337 
16338 struct taint_flag {
16339 	char c_true;
16340 	char c_false;
16341 	bool module;
16342 };
16343 
16344 enum class_map_type {
16345 	DD_CLASS_TYPE_DISJOINT_BITS = 0,
16346 	DD_CLASS_TYPE_LEVEL_NUM = 1,
16347 	DD_CLASS_TYPE_DISJOINT_NAMES = 2,
16348 	DD_CLASS_TYPE_LEVEL_NAMES = 3,
16349 };
16350 
16351 struct ddebug_class_map {
16352 	struct list_head link;
16353 	struct module *mod;
16354 	const char *mod_name;
16355 	const char **class_names;
16356 	const int length;
16357 	const int base;
16358 	enum class_map_type map_type;
16359 };
16360 
16361 struct _ddebug_info {
16362 	struct _ddebug *descs;
16363 	struct ddebug_class_map *classes;
16364 	unsigned int num_descs;
16365 	unsigned int num_classes;
16366 };
16367 
16368 typedef struct {
16369 	seqcount_t seqcount;
16370 } seqcount_latch_t;
16371 
16372 typedef __u64 Elf64_Off;
16373 
16374 struct elf64_hdr {
16375 	unsigned char e_ident[16];
16376 	Elf64_Half e_type;
16377 	Elf64_Half e_machine;
16378 	Elf64_Word e_version;
16379 	Elf64_Addr e_entry;
16380 	Elf64_Off e_phoff;
16381 	Elf64_Off e_shoff;
16382 	Elf64_Word e_flags;
16383 	Elf64_Half e_ehsize;
16384 	Elf64_Half e_phentsize;
16385 	Elf64_Half e_phnum;
16386 	Elf64_Half e_shentsize;
16387 	Elf64_Half e_shnum;
16388 	Elf64_Half e_shstrndx;
16389 };
16390 
16391 typedef struct elf64_hdr Elf64_Ehdr;
16392 
16393 struct elf64_shdr {
16394 	Elf64_Word sh_name;
16395 	Elf64_Word sh_type;
16396 	Elf64_Xword sh_flags;
16397 	Elf64_Addr sh_addr;
16398 	Elf64_Off sh_offset;
16399 	Elf64_Xword sh_size;
16400 	Elf64_Word sh_link;
16401 	Elf64_Word sh_info;
16402 	Elf64_Xword sh_addralign;
16403 	Elf64_Xword sh_entsize;
16404 };
16405 
16406 typedef struct elf64_shdr Elf64_Shdr;
16407 
16408 enum kobject_action {
16409 	KOBJ_ADD = 0,
16410 	KOBJ_REMOVE = 1,
16411 	KOBJ_CHANGE = 2,
16412 	KOBJ_MOVE = 3,
16413 	KOBJ_ONLINE = 4,
16414 	KOBJ_OFFLINE = 5,
16415 	KOBJ_BIND = 6,
16416 	KOBJ_UNBIND = 7,
16417 };
16418 
16419 struct latch_tree_root {
16420 	seqcount_latch_t seq;
16421 	struct rb_root tree[2];
16422 };
16423 
16424 struct module_use {
16425 	struct list_head source_list;
16426 	struct list_head target_list;
16427 	struct module *source;
16428 	struct module *target;
16429 };
16430 
16431 enum kernel_read_file_id {
16432 	READING_UNKNOWN = 0,
16433 	READING_FIRMWARE = 1,
16434 	READING_MODULE = 2,
16435 	READING_KEXEC_IMAGE = 3,
16436 	READING_KEXEC_INITRAMFS = 4,
16437 	READING_POLICY = 5,
16438 	READING_X509_CERTIFICATE = 6,
16439 	READING_MAX_ID = 7,
16440 };
16441 
16442 enum kernel_load_data_id {
16443 	LOADING_UNKNOWN = 0,
16444 	LOADING_FIRMWARE = 1,
16445 	LOADING_MODULE = 2,
16446 	LOADING_KEXEC_IMAGE = 3,
16447 	LOADING_KEXEC_INITRAMFS = 4,
16448 	LOADING_POLICY = 5,
16449 	LOADING_X509_CERTIFICATE = 6,
16450 	LOADING_MAX_ID = 7,
16451 };
16452 
16453 struct load_info {
16454 	const char *name;
16455 	struct module *mod;
16456 	Elf64_Ehdr *hdr;
16457 	long unsigned int len;
16458 	Elf64_Shdr *sechdrs;
16459 	char *secstrings;
16460 	char *strtab;
16461 	long unsigned int symoffs;
16462 	long unsigned int stroffs;
16463 	long unsigned int init_typeoffs;
16464 	long unsigned int core_typeoffs;
16465 	struct _ddebug_info dyndbg;
16466 	bool sig_ok;
16467 	long unsigned int mod_kallsyms_init_off;
16468 	struct {
16469 		unsigned int sym;
16470 		unsigned int str;
16471 		unsigned int mod;
16472 		unsigned int vers;
16473 		unsigned int info;
16474 		unsigned int pcpu;
16475 	} index;
16476 };
16477 
16478 enum mod_license {
16479 	NOT_GPL_ONLY = 0,
16480 	GPL_ONLY = 1,
16481 };
16482 
16483 struct find_symbol_arg {
16484 	const char *name;
16485 	bool gplok;
16486 	bool warn;
16487 	struct module *owner;
16488 	const s32 *crc;
16489 	const struct kernel_symbol *sym;
16490 	enum mod_license license;
16491 };
16492 
16493 struct mod_tree_root {
16494 	struct latch_tree_root root;
16495 	long unsigned int addr_min;
16496 	long unsigned int addr_max;
16497 };
16498 
16499 struct trace_event_raw_module_load {
16500 	struct trace_entry ent;
16501 	unsigned int taints;
16502 	u32 __data_loc_name;
16503 	char __data[0];
16504 };
16505 
16506 struct trace_event_raw_module_free {
16507 	struct trace_entry ent;
16508 	u32 __data_loc_name;
16509 	char __data[0];
16510 };
16511 
16512 struct trace_event_raw_module_refcnt {
16513 	struct trace_entry ent;
16514 	long unsigned int ip;
16515 	int refcnt;
16516 	u32 __data_loc_name;
16517 	char __data[0];
16518 };
16519 
16520 struct trace_event_raw_module_request {
16521 	struct trace_entry ent;
16522 	long unsigned int ip;
16523 	bool wait;
16524 	u32 __data_loc_name;
16525 	char __data[0];
16526 };
16527 
16528 struct trace_event_data_offsets_module_load {
16529 	u32 name;
16530 };
16531 
16532 struct trace_event_data_offsets_module_free {
16533 	u32 name;
16534 };
16535 
16536 struct trace_event_data_offsets_module_refcnt {
16537 	u32 name;
16538 };
16539 
16540 struct trace_event_data_offsets_module_request {
16541 	u32 name;
16542 };
16543 
16544 typedef void (*btf_trace_module_load)(void *, struct module *);
16545 
16546 typedef void (*btf_trace_module_free)(void *, struct module *);
16547 
16548 typedef void (*btf_trace_module_get)(void *, struct module *, long unsigned int);
16549 
16550 typedef void (*btf_trace_module_put)(void *, struct module *, long unsigned int);
16551 
16552 typedef void (*btf_trace_module_request)(void *, char *, bool, long unsigned int);
16553 
16554 struct symsearch {
16555 	const struct kernel_symbol *start;
16556 	const struct kernel_symbol *stop;
16557 	const s32 *crcs;
16558 	enum mod_license license;
16559 };
16560 
16561 struct mod_initfree {
16562 	struct llist_node node;
16563 	void *module_init;
16564 };
16565 
16566 struct modversion_info {
16567 	long unsigned int crc;
16568 	char name[56];
16569 };
16570 
16571 typedef __kernel_long_t __kernel_suseconds_t;
16572 
16573 typedef __kernel_suseconds_t suseconds_t;
16574 
16575 typedef __kernel_clock_t clock_t;
16576 
16577 typedef __u64 timeu64_t;
16578 
16579 struct __kernel_itimerspec {
16580 	struct __kernel_timespec it_interval;
16581 	struct __kernel_timespec it_value;
16582 };
16583 
16584 struct __kernel_old_timeval {
16585 	__kernel_long_t tv_sec;
16586 	__kernel_long_t tv_usec;
16587 };
16588 
16589 struct timezone {
16590 	int tz_minuteswest;
16591 	int tz_dsttime;
16592 };
16593 
16594 struct itimerspec64 {
16595 	struct timespec64 it_interval;
16596 	struct timespec64 it_value;
16597 };
16598 
16599 struct old_itimerspec32 {
16600 	struct old_timespec32 it_interval;
16601 	struct old_timespec32 it_value;
16602 };
16603 
16604 struct __kernel_timex_timeval {
16605 	__kernel_time64_t tv_sec;
16606 	long long int tv_usec;
16607 };
16608 
16609 struct __kernel_timex {
16610 	unsigned int modes;
16611 	long long int offset;
16612 	long long int freq;
16613 	long long int maxerror;
16614 	long long int esterror;
16615 	int status;
16616 	long long int constant;
16617 	long long int precision;
16618 	long long int tolerance;
16619 	struct __kernel_timex_timeval time;
16620 	long long int tick;
16621 	long long int ppsfreq;
16622 	long long int jitter;
16623 	int shift;
16624 	long long int stabil;
16625 	long long int jitcnt;
16626 	long long int calcnt;
16627 	long long int errcnt;
16628 	long long int stbcnt;
16629 	int tai;
16630 	long: 32;
16631 	long: 64;
16632 	long: 64;
16633 	long: 64;
16634 	long: 64;
16635 	long: 64;
16636 };
16637 
16638 struct rtc_time {
16639 	int tm_sec;
16640 	int tm_min;
16641 	int tm_hour;
16642 	int tm_mday;
16643 	int tm_mon;
16644 	int tm_year;
16645 	int tm_wday;
16646 	int tm_yday;
16647 	int tm_isdst;
16648 };
16649 
16650 struct rtc_wkalrm {
16651 	unsigned char enabled;
16652 	unsigned char pending;
16653 	struct rtc_time time;
16654 };
16655 
16656 struct rtc_param {
16657 	__u64 param;
16658 	union {
16659 		__u64 uvalue;
16660 		__s64 svalue;
16661 		__u64 ptr;
16662 	};
16663 	__u32 index;
16664 	__u32 __pad;
16665 };
16666 
16667 struct rtc_class_ops {
16668 	int (*ioctl)(struct device *, unsigned int, long unsigned int);
16669 	int (*read_time)(struct device *, struct rtc_time *);
16670 	int (*set_time)(struct device *, struct rtc_time *);
16671 	int (*read_alarm)(struct device *, struct rtc_wkalrm *);
16672 	int (*set_alarm)(struct device *, struct rtc_wkalrm *);
16673 	int (*proc)(struct device *, struct seq_file *);
16674 	int (*alarm_irq_enable)(struct device *, unsigned int);
16675 	int (*read_offset)(struct device *, long int *);
16676 	int (*set_offset)(struct device *, long int);
16677 	int (*param_get)(struct device *, struct rtc_param *);
16678 	int (*param_set)(struct device *, struct rtc_param *);
16679 };
16680 
16681 struct rtc_device;
16682 
16683 struct rtc_timer {
16684 	struct timerqueue_node node;
16685 	ktime_t period;
16686 	void (*func)(struct rtc_device *);
16687 	struct rtc_device *rtc;
16688 	int enabled;
16689 };
16690 
16691 struct rtc_device {
16692 	struct device dev;
16693 	struct module *owner;
16694 	int id;
16695 	const struct rtc_class_ops *ops;
16696 	struct mutex ops_lock;
16697 	struct cdev char_dev;
16698 	long unsigned int flags;
16699 	long unsigned int irq_data;
16700 	spinlock_t irq_lock;
16701 	wait_queue_head_t irq_queue;
16702 	struct fasync_struct *async_queue;
16703 	int irq_freq;
16704 	int max_user_freq;
16705 	struct timerqueue_head timerqueue;
16706 	struct rtc_timer aie_timer;
16707 	struct rtc_timer uie_rtctimer;
16708 	struct hrtimer pie_timer;
16709 	int pie_enabled;
16710 	struct work_struct irqwork;
16711 	long unsigned int set_offset_nsec;
16712 	long unsigned int features[1];
16713 	time64_t range_min;
16714 	timeu64_t range_max;
16715 	time64_t start_secs;
16716 	time64_t offset_secs;
16717 	bool set_start_time;
16718 	struct work_struct uie_task;
16719 	struct timer_list uie_timer;
16720 	unsigned int oldsecs;
16721 	unsigned int uie_irq_active: 1;
16722 	unsigned int stop_uie_polling: 1;
16723 	unsigned int uie_task_active: 1;
16724 	unsigned int uie_timer_active: 1;
16725 };
16726 
16727 struct audit_ntp_val {
16728 	long long int oldval;
16729 	long long int newval;
16730 };
16731 
16732 struct audit_ntp_data {
16733 	struct audit_ntp_val vals[6];
16734 };
16735 
16736 enum tick_device_mode {
16737 	TICKDEV_MODE_PERIODIC = 0,
16738 	TICKDEV_MODE_ONESHOT = 1,
16739 };
16740 
16741 struct tick_device {
16742 	struct clock_event_device *evtdev;
16743 	enum tick_device_mode mode;
16744 };
16745 
16746 enum tick_nohz_mode {
16747 	NOHZ_MODE_INACTIVE = 0,
16748 	NOHZ_MODE_LOWRES = 1,
16749 	NOHZ_MODE_HIGHRES = 2,
16750 };
16751 
16752 struct tick_sched {
16753 	struct hrtimer sched_timer;
16754 	long unsigned int check_clocks;
16755 	enum tick_nohz_mode nohz_mode;
16756 	unsigned int inidle: 1;
16757 	unsigned int tick_stopped: 1;
16758 	unsigned int idle_active: 1;
16759 	unsigned int do_timer_last: 1;
16760 	unsigned int got_idle_tick: 1;
16761 	ktime_t last_tick;
16762 	ktime_t next_tick;
16763 	long unsigned int idle_jiffies;
16764 	long unsigned int idle_calls;
16765 	long unsigned int idle_sleeps;
16766 	ktime_t idle_entrytime;
16767 	ktime_t idle_waketime;
16768 	ktime_t idle_exittime;
16769 	ktime_t idle_sleeptime;
16770 	ktime_t iowait_sleeptime;
16771 	long unsigned int last_jiffies;
16772 	u64 timer_expires;
16773 	u64 timer_expires_base;
16774 	u64 next_timer;
16775 	ktime_t idle_expires;
16776 	atomic_t tick_dep_mask;
16777 	long unsigned int last_tick_jiffies;
16778 	unsigned int stalled_jiffies;
16779 };
16780 
16781 struct timer_list_iter {
16782 	int cpu;
16783 	bool second_pass;
16784 	u64 now;
16785 };
16786 
16787 typedef __kernel_timer_t timer_t;
16788 
16789 enum alarmtimer_type {
16790 	ALARM_REALTIME = 0,
16791 	ALARM_BOOTTIME = 1,
16792 	ALARM_NUMTYPE = 2,
16793 	ALARM_REALTIME_FREEZER = 3,
16794 	ALARM_BOOTTIME_FREEZER = 4,
16795 };
16796 
16797 enum alarmtimer_restart {
16798 	ALARMTIMER_NORESTART = 0,
16799 	ALARMTIMER_RESTART = 1,
16800 };
16801 
16802 struct alarm {
16803 	struct timerqueue_node node;
16804 	struct hrtimer timer;
16805 	enum alarmtimer_restart (*function)(struct alarm *, ktime_t);
16806 	enum alarmtimer_type type;
16807 	int state;
16808 	void *data;
16809 };
16810 
16811 struct cpu_timer {
16812 	struct timerqueue_node node;
16813 	struct timerqueue_head *head;
16814 	struct pid *pid;
16815 	struct list_head elist;
16816 	int firing;
16817 };
16818 
16819 struct k_clock;
16820 
16821 struct k_itimer {
16822 	struct list_head list;
16823 	struct hlist_node t_hash;
16824 	spinlock_t it_lock;
16825 	const struct k_clock *kclock;
16826 	clockid_t it_clock;
16827 	timer_t it_id;
16828 	int it_active;
16829 	s64 it_overrun;
16830 	s64 it_overrun_last;
16831 	int it_requeue_pending;
16832 	int it_sigev_notify;
16833 	ktime_t it_interval;
16834 	struct signal_struct *it_signal;
16835 	union {
16836 		struct pid *it_pid;
16837 		struct task_struct *it_process;
16838 	};
16839 	struct sigqueue *sigq;
16840 	union {
16841 		struct {
16842 			struct hrtimer timer;
16843 		} real;
16844 		struct cpu_timer cpu;
16845 		struct {
16846 			struct alarm alarmtimer;
16847 		} alarm;
16848 	} it;
16849 	struct callback_head rcu;
16850 };
16851 
16852 struct k_clock {
16853 	int (*clock_getres)(const clockid_t, struct timespec64 *);
16854 	int (*clock_set)(const clockid_t, const struct timespec64 *);
16855 	int (*clock_get_timespec)(const clockid_t, struct timespec64 *);
16856 	ktime_t (*clock_get_ktime)(const clockid_t);
16857 	int (*clock_adj)(const clockid_t, struct __kernel_timex *);
16858 	int (*timer_create)(struct k_itimer *);
16859 	int (*nsleep)(const clockid_t, int, const struct timespec64 *);
16860 	int (*timer_set)(struct k_itimer *, int, struct itimerspec64 *, struct itimerspec64 *);
16861 	int (*timer_del)(struct k_itimer *);
16862 	void (*timer_get)(struct k_itimer *, struct itimerspec64 *);
16863 	void (*timer_rearm)(struct k_itimer *);
16864 	s64 (*timer_forward)(struct k_itimer *, ktime_t);
16865 	ktime_t (*timer_remaining)(struct k_itimer *, ktime_t);
16866 	int (*timer_try_to_cancel)(struct k_itimer *);
16867 	void (*timer_arm)(struct k_itimer *, ktime_t, bool, bool);
16868 	void (*timer_wait_running)(struct k_itimer *);
16869 };
16870 
16871 struct posix_clock;
16872 
16873 struct posix_clock_operations {
16874 	struct module *owner;
16875 	int (*clock_adjtime)(struct posix_clock *, struct __kernel_timex *);
16876 	int (*clock_gettime)(struct posix_clock *, struct timespec64 *);
16877 	int (*clock_getres)(struct posix_clock *, struct timespec64 *);
16878 	int (*clock_settime)(struct posix_clock *, const struct timespec64 *);
16879 	long int (*ioctl)(struct posix_clock *, unsigned int, long unsigned int);
16880 	int (*open)(struct posix_clock *, fmode_t);
16881 	__poll_t (*poll)(struct posix_clock *, struct file *, poll_table *);
16882 	int (*release)(struct posix_clock *);
16883 	ssize_t (*read)(struct posix_clock *, uint, char *, size_t);
16884 };
16885 
16886 struct posix_clock {
16887 	struct posix_clock_operations ops;
16888 	struct cdev cdev;
16889 	struct device *dev;
16890 	struct rw_semaphore rwsem;
16891 	bool zombie;
16892 };
16893 
16894 struct posix_clock_desc {
16895 	struct file *fp;
16896 	struct posix_clock *clk;
16897 };
16898 
16899 typedef s64 int64_t;
16900 
16901 struct device_attribute {
16902 	struct attribute attr;
16903 	ssize_t (*show)(struct device *, struct device_attribute *, char *);
16904 	ssize_t (*store)(struct device *, struct device_attribute *, const char *, size_t);
16905 };
16906 
16907 struct ce_unbind {
16908 	struct clock_event_device *ce;
16909 	int res;
16910 };
16911 
16912 typedef struct {
16913 	unsigned int ipi_irqs[2];
16914 	unsigned int __softirq_pending;
16915 	long: 32;
16916 	long: 64;
16917 	long: 64;
16918 	long: 64;
16919 	long: 64;
16920 	long: 64;
16921 	long: 64;
16922 } irq_cpustat_t;
16923 
16924 union futex_key {
16925 	struct {
16926 		u64 i_seq;
16927 		long unsigned int pgoff;
16928 		unsigned int offset;
16929 	} shared;
16930 	struct {
16931 		union {
16932 			struct mm_struct *mm;
16933 			u64 __tmp;
16934 		};
16935 		long unsigned int address;
16936 		unsigned int offset;
16937 	} private;
16938 	struct {
16939 		u64 ptr;
16940 		long unsigned int word;
16941 		unsigned int offset;
16942 	} both;
16943 };
16944 
16945 struct futex_pi_state {
16946 	struct list_head list;
16947 	struct rt_mutex_base pi_mutex;
16948 	struct task_struct *owner;
16949 	refcount_t refcount;
16950 	union futex_key key;
16951 };
16952 
16953 struct futex_hash_bucket {
16954 	atomic_t waiters;
16955 	spinlock_t lock;
16956 	struct plist_head chain;
16957 	long: 64;
16958 	long: 64;
16959 	long: 64;
16960 	long: 64;
16961 	long: 64;
16962 };
16963 
16964 struct futex_q {
16965 	struct plist_node list;
16966 	struct task_struct *task;
16967 	spinlock_t *lock_ptr;
16968 	union futex_key key;
16969 	struct futex_pi_state *pi_state;
16970 	struct rt_mutex_waiter *rt_waiter;
16971 	union futex_key *requeue_pi_key;
16972 	u32 bitset;
16973 	atomic_t requeue_state;
16974 };
16975 
16976 enum futex_access {
16977 	FUTEX_READ = 0,
16978 	FUTEX_WRITE = 1,
16979 };
16980 
16981 struct cfd_percpu {
16982 	call_single_data_t csd;
16983 };
16984 
16985 struct call_function_data {
16986 	struct cfd_percpu *pcpu;
16987 	cpumask_var_t cpumask;
16988 	cpumask_var_t cpumask_ipi;
16989 };
16990 
16991 struct smp_call_on_cpu_struct {
16992 	struct work_struct work;
16993 	struct completion done;
16994 	int (*func)(void *);
16995 	void *data;
16996 	int ret;
16997 	int cpu;
16998 };
16999 
17000 typedef long unsigned int elf_greg_t;
17001 
17002 typedef elf_greg_t elf_gregset_t[45];
17003 
17004 struct elf_siginfo {
17005 	int si_signo;
17006 	int si_code;
17007 	int si_errno;
17008 };
17009 
17010 struct elf_prstatus_common {
17011 	struct elf_siginfo pr_info;
17012 	short int pr_cursig;
17013 	long unsigned int pr_sigpend;
17014 	long unsigned int pr_sighold;
17015 	pid_t pr_pid;
17016 	pid_t pr_ppid;
17017 	pid_t pr_pgrp;
17018 	pid_t pr_sid;
17019 	struct __kernel_old_timeval pr_utime;
17020 	struct __kernel_old_timeval pr_stime;
17021 	struct __kernel_old_timeval pr_cutime;
17022 	struct __kernel_old_timeval pr_cstime;
17023 };
17024 
17025 struct elf_prstatus {
17026 	struct elf_prstatus_common common;
17027 	elf_gregset_t pr_reg;
17028 	int pr_fpvalid;
17029 };
17030 
17031 typedef u32 note_buf_t[128];
17032 
17033 enum kmsg_dump_reason {
17034 	KMSG_DUMP_UNDEF = 0,
17035 	KMSG_DUMP_PANIC = 1,
17036 	KMSG_DUMP_OOPS = 2,
17037 	KMSG_DUMP_EMERG = 3,
17038 	KMSG_DUMP_SHUTDOWN = 4,
17039 	KMSG_DUMP_MAX = 5,
17040 };
17041 
17042 struct cgroupstats {
17043 	__u64 nr_sleeping;
17044 	__u64 nr_running;
17045 	__u64 nr_stopped;
17046 	__u64 nr_uninterruptible;
17047 	__u64 nr_io_wait;
17048 };
17049 
17050 enum {
17051 	__PERCPU_REF_ATOMIC = 1,
17052 	__PERCPU_REF_DEAD = 2,
17053 	__PERCPU_REF_ATOMIC_DEAD = 3,
17054 	__PERCPU_REF_FLAG_BITS = 2,
17055 };
17056 
17057 enum kernfs_node_type {
17058 	KERNFS_DIR = 1,
17059 	KERNFS_FILE = 2,
17060 	KERNFS_LINK = 4,
17061 };
17062 
17063 struct kernfs_syscall_ops {
17064 	int (*show_options)(struct seq_file *, struct kernfs_root *);
17065 	int (*mkdir)(struct kernfs_node *, const char *, umode_t);
17066 	int (*rmdir)(struct kernfs_node *);
17067 	int (*rename)(struct kernfs_node *, struct kernfs_node *, const char *);
17068 	int (*show_path)(struct seq_file *, struct kernfs_node *, struct kernfs_root *);
17069 };
17070 
17071 struct kernfs_fs_context {
17072 	struct kernfs_root *root;
17073 	void *ns_tag;
17074 	long unsigned int magic;
17075 	bool new_sb_created;
17076 };
17077 
17078 enum {
17079 	CSS_NO_REF = 1,
17080 	CSS_ONLINE = 2,
17081 	CSS_RELEASED = 4,
17082 	CSS_VISIBLE = 8,
17083 	CSS_DYING = 16,
17084 };
17085 
17086 enum {
17087 	CGRP_NOTIFY_ON_RELEASE = 0,
17088 	CGRP_CPUSET_CLONE_CHILDREN = 1,
17089 	CGRP_FREEZE = 2,
17090 	CGRP_FROZEN = 3,
17091 	CGRP_KILL = 4,
17092 };
17093 
17094 enum {
17095 	CGRP_ROOT_NOPREFIX = 2,
17096 	CGRP_ROOT_XATTR = 4,
17097 	CGRP_ROOT_NS_DELEGATE = 8,
17098 	CGRP_ROOT_FAVOR_DYNMODS = 16,
17099 	CGRP_ROOT_CPUSET_V2_MODE = 65536,
17100 	CGRP_ROOT_MEMORY_LOCAL_EVENTS = 131072,
17101 	CGRP_ROOT_MEMORY_RECURSIVE_PROT = 262144,
17102 };
17103 
17104 struct cgroup_taskset {
17105 	struct list_head src_csets;
17106 	struct list_head dst_csets;
17107 	int nr_tasks;
17108 	int ssid;
17109 	struct list_head *csets;
17110 	struct css_set *cur_cset;
17111 	struct task_struct *cur_task;
17112 };
17113 
17114 struct css_task_iter {
17115 	struct cgroup_subsys *ss;
17116 	unsigned int flags;
17117 	struct list_head *cset_pos;
17118 	struct list_head *cset_head;
17119 	struct list_head *tcset_pos;
17120 	struct list_head *tcset_head;
17121 	struct list_head *task_pos;
17122 	struct list_head *cur_tasks_head;
17123 	struct css_set *cur_cset;
17124 	struct css_set *cur_dcset;
17125 	struct task_struct *cur_task;
17126 	struct list_head iters_node;
17127 };
17128 
17129 struct fs_parse_result {
17130 	bool negated;
17131 	union {
17132 		bool boolean;
17133 		int int_32;
17134 		unsigned int uint_32;
17135 		u64 uint_64;
17136 	};
17137 };
17138 
17139 struct cgroup_fs_context {
17140 	struct kernfs_fs_context kfc;
17141 	struct cgroup_root *root;
17142 	struct cgroup_namespace *ns;
17143 	unsigned int flags;
17144 	bool cpuset_clone_children;
17145 	bool none;
17146 	bool all_ss;
17147 	u16 subsys_mask;
17148 	char *name;
17149 	char *release_agent;
17150 };
17151 
17152 enum cgroup_filetype {
17153 	CGROUP_FILE_PROCS = 0,
17154 	CGROUP_FILE_TASKS = 1,
17155 };
17156 
17157 struct cgroup_pidlist {
17158 	struct {
17159 		enum cgroup_filetype type;
17160 		struct pid_namespace *ns;
17161 	} key;
17162 	pid_t *list;
17163 	int length;
17164 	struct list_head links;
17165 	struct cgroup *owner;
17166 	struct delayed_work destroy_dwork;
17167 };
17168 
17169 struct cgroup_file_ctx {
17170 	struct cgroup_namespace *ns;
17171 	struct {
17172 		void *trigger;
17173 	} psi;
17174 	struct {
17175 		bool started;
17176 		struct css_task_iter iter;
17177 	} procs;
17178 	struct {
17179 		struct cgroup_pidlist *pidlist;
17180 	} procs1;
17181 };
17182 
17183 struct cgrp_cset_link {
17184 	struct cgroup *cgrp;
17185 	struct css_set *cset;
17186 	struct list_head cset_link;
17187 	struct list_head cgrp_link;
17188 };
17189 
17190 struct cgroup_mgctx {
17191 	struct list_head preloaded_src_csets;
17192 	struct list_head preloaded_dst_csets;
17193 	struct cgroup_taskset tset;
17194 	u16 ss_mask;
17195 };
17196 
17197 enum cgroup1_param {
17198 	Opt_all = 0,
17199 	Opt_clone_children = 1,
17200 	Opt_cpuset_v2_mode = 2,
17201 	Opt_name = 3,
17202 	Opt_none = 4,
17203 	Opt_noprefix = 5,
17204 	Opt_release_agent = 6,
17205 	Opt_xattr = 7,
17206 	Opt_favordynmods = 8,
17207 	Opt_nofavordynmods = 9,
17208 };
17209 
17210 struct pids_cgroup {
17211 	struct cgroup_subsys_state css;
17212 	atomic64_t counter;
17213 	atomic64_t limit;
17214 	int64_t watermark;
17215 	struct cgroup_file events_file;
17216 	atomic64_t events_limit;
17217 };
17218 
17219 enum misc_res_type {
17220 	MISC_CG_RES_TYPES = 0,
17221 };
17222 
17223 struct misc_res {
17224 	long unsigned int max;
17225 	atomic_long_t usage;
17226 	atomic_long_t events;
17227 };
17228 
17229 struct misc_cg {
17230 	struct cgroup_subsys_state css;
17231 	struct cgroup_file events_file;
17232 	struct misc_res res[0];
17233 };
17234 
17235 struct kernel_pkey_query {
17236 	__u32 supported_ops;
17237 	__u32 key_size;
17238 	__u16 max_data_size;
17239 	__u16 max_sig_size;
17240 	__u16 max_enc_size;
17241 	__u16 max_dec_size;
17242 };
17243 
17244 enum kernel_pkey_operation {
17245 	kernel_pkey_encrypt = 0,
17246 	kernel_pkey_decrypt = 1,
17247 	kernel_pkey_sign = 2,
17248 	kernel_pkey_verify = 3,
17249 };
17250 
17251 struct kernel_pkey_params {
17252 	struct key *key;
17253 	const char *encoding;
17254 	const char *hash_algo;
17255 	char *info;
17256 	__u32 in_len;
17257 	union {
17258 		__u32 out_len;
17259 		__u32 in2_len;
17260 	};
17261 	enum kernel_pkey_operation op: 8;
17262 };
17263 
17264 struct key_preparsed_payload {
17265 	const char *orig_description;
17266 	char *description;
17267 	union key_payload payload;
17268 	const void *data;
17269 	size_t datalen;
17270 	size_t quotalen;
17271 	time64_t expiry;
17272 };
17273 
17274 struct key_match_data {
17275 	bool (*cmp)(const struct key *, const struct key_match_data *);
17276 	const void *raw_data;
17277 	void *preparsed;
17278 	unsigned int lookup_type;
17279 };
17280 
17281 struct idmap_key {
17282 	bool map_up;
17283 	u32 id;
17284 	u32 count;
17285 };
17286 
17287 struct cpu_stop_done {
17288 	atomic_t nr_todo;
17289 	int ret;
17290 	struct completion completion;
17291 };
17292 
17293 struct cpu_stopper {
17294 	struct task_struct *thread;
17295 	raw_spinlock_t lock;
17296 	bool enabled;
17297 	struct list_head works;
17298 	struct cpu_stop_work stop_work;
17299 	long unsigned int caller;
17300 	cpu_stop_fn_t fn;
17301 };
17302 
17303 enum multi_stop_state {
17304 	MULTI_STOP_NONE = 0,
17305 	MULTI_STOP_PREPARE = 1,
17306 	MULTI_STOP_DISABLE_IRQ = 2,
17307 	MULTI_STOP_RUN = 3,
17308 	MULTI_STOP_EXIT = 4,
17309 };
17310 
17311 struct multi_stop_data {
17312 	cpu_stop_fn_t fn;
17313 	void *data;
17314 	unsigned int num_threads;
17315 	const struct cpumask *active_cpus;
17316 	enum multi_stop_state state;
17317 	atomic_t thread_ack;
17318 };
17319 
17320 typedef int __kernel_mqd_t;
17321 
17322 typedef struct {
17323 	int val[2];
17324 } __kernel_fsid_t;
17325 
17326 typedef __kernel_mqd_t mqd_t;
17327 
17328 enum audit_state {
17329 	AUDIT_STATE_DISABLED = 0,
17330 	AUDIT_STATE_BUILD = 1,
17331 	AUDIT_STATE_RECORD = 2,
17332 };
17333 
17334 struct audit_cap_data {
17335 	kernel_cap_t permitted;
17336 	kernel_cap_t inheritable;
17337 	union {
17338 		unsigned int fE;
17339 		kernel_cap_t effective;
17340 	};
17341 	kernel_cap_t ambient;
17342 	kuid_t rootid;
17343 };
17344 
17345 struct audit_names {
17346 	struct list_head list;
17347 	struct filename *name;
17348 	int name_len;
17349 	bool hidden;
17350 	long unsigned int ino;
17351 	dev_t dev;
17352 	umode_t mode;
17353 	kuid_t uid;
17354 	kgid_t gid;
17355 	dev_t rdev;
17356 	u32 osid;
17357 	struct audit_cap_data fcap;
17358 	unsigned int fcap_ver;
17359 	unsigned char type;
17360 	bool should_free;
17361 };
17362 
17363 struct mq_attr {
17364 	__kernel_long_t mq_flags;
17365 	__kernel_long_t mq_maxmsg;
17366 	__kernel_long_t mq_msgsize;
17367 	__kernel_long_t mq_curmsgs;
17368 	__kernel_long_t __reserved[4];
17369 };
17370 
17371 struct open_how {
17372 	__u64 flags;
17373 	__u64 mode;
17374 	__u64 resolve;
17375 };
17376 
17377 struct audit_proctitle {
17378 	int len;
17379 	char *value;
17380 };
17381 
17382 struct audit_aux_data;
17383 
17384 struct __kernel_sockaddr_storage;
17385 
17386 struct audit_tree_refs;
17387 
17388 struct audit_context {
17389 	int dummy;
17390 	enum {
17391 		AUDIT_CTX_UNUSED = 0,
17392 		AUDIT_CTX_SYSCALL = 1,
17393 		AUDIT_CTX_URING = 2,
17394 	} context;
17395 	enum audit_state state;
17396 	enum audit_state current_state;
17397 	unsigned int serial;
17398 	int major;
17399 	int uring_op;
17400 	struct timespec64 ctime;
17401 	long unsigned int argv[4];
17402 	long int return_code;
17403 	u64 prio;
17404 	int return_valid;
17405 	struct audit_names preallocated_names[5];
17406 	int name_count;
17407 	struct list_head names_list;
17408 	char *filterkey;
17409 	struct path pwd;
17410 	struct audit_aux_data *aux;
17411 	struct audit_aux_data *aux_pids;
17412 	struct __kernel_sockaddr_storage *sockaddr;
17413 	size_t sockaddr_len;
17414 	pid_t ppid;
17415 	kuid_t uid;
17416 	kuid_t euid;
17417 	kuid_t suid;
17418 	kuid_t fsuid;
17419 	kgid_t gid;
17420 	kgid_t egid;
17421 	kgid_t sgid;
17422 	kgid_t fsgid;
17423 	long unsigned int personality;
17424 	int arch;
17425 	pid_t target_pid;
17426 	kuid_t target_auid;
17427 	kuid_t target_uid;
17428 	unsigned int target_sessionid;
17429 	u32 target_sid;
17430 	char target_comm[16];
17431 	struct audit_tree_refs *trees;
17432 	struct audit_tree_refs *first_trees;
17433 	struct list_head killed_trees;
17434 	int tree_count;
17435 	int type;
17436 	union {
17437 		struct {
17438 			int nargs;
17439 			long int args[6];
17440 		} socketcall;
17441 		struct {
17442 			kuid_t uid;
17443 			kgid_t gid;
17444 			umode_t mode;
17445 			u32 osid;
17446 			int has_perm;
17447 			uid_t perm_uid;
17448 			gid_t perm_gid;
17449 			umode_t perm_mode;
17450 			long unsigned int qbytes;
17451 		} ipc;
17452 		struct {
17453 			mqd_t mqdes;
17454 			struct mq_attr mqstat;
17455 		} mq_getsetattr;
17456 		struct {
17457 			mqd_t mqdes;
17458 			int sigev_signo;
17459 		} mq_notify;
17460 		struct {
17461 			mqd_t mqdes;
17462 			size_t msg_len;
17463 			unsigned int msg_prio;
17464 			struct timespec64 abs_timeout;
17465 		} mq_sendrecv;
17466 		struct {
17467 			int oflag;
17468 			umode_t mode;
17469 			struct mq_attr attr;
17470 		} mq_open;
17471 		struct {
17472 			pid_t pid;
17473 			struct audit_cap_data cap;
17474 		} capset;
17475 		struct {
17476 			int fd;
17477 			int flags;
17478 		} mmap;
17479 		struct open_how openat2;
17480 		struct {
17481 			int argc;
17482 		} execve;
17483 		struct {
17484 			char *name;
17485 		} module;
17486 		struct {
17487 			struct audit_ntp_data ntp_data;
17488 			struct timespec64 tk_injoffset;
17489 		} time;
17490 	};
17491 	int fds[2];
17492 	struct audit_proctitle proctitle;
17493 };
17494 
17495 typedef struct fsnotify_mark_connector *fsnotify_connp_t;
17496 
17497 struct fsnotify_mark_connector {
17498 	spinlock_t lock;
17499 	short unsigned int type;
17500 	short unsigned int flags;
17501 	__kernel_fsid_t fsid;
17502 	union {
17503 		fsnotify_connp_t *obj;
17504 		struct fsnotify_mark_connector *destroy_next;
17505 	};
17506 	struct hlist_head list;
17507 };
17508 
17509 enum {
17510 	Audit_equal = 0,
17511 	Audit_not_equal = 1,
17512 	Audit_bitmask = 2,
17513 	Audit_bittest = 3,
17514 	Audit_lt = 4,
17515 	Audit_gt = 5,
17516 	Audit_le = 6,
17517 	Audit_ge = 7,
17518 	Audit_bad = 8,
17519 };
17520 
17521 struct audit_field;
17522 
17523 struct audit_watch;
17524 
17525 struct audit_tree;
17526 
17527 struct audit_fsnotify_mark;
17528 
17529 struct audit_krule {
17530 	u32 pflags;
17531 	u32 flags;
17532 	u32 listnr;
17533 	u32 action;
17534 	u32 mask[64];
17535 	u32 buflen;
17536 	u32 field_count;
17537 	char *filterkey;
17538 	struct audit_field *fields;
17539 	struct audit_field *arch_f;
17540 	struct audit_field *inode_f;
17541 	struct audit_watch *watch;
17542 	struct audit_tree *tree;
17543 	struct audit_fsnotify_mark *exe;
17544 	struct list_head rlist;
17545 	struct list_head list;
17546 	u64 prio;
17547 };
17548 
17549 struct audit_field {
17550 	u32 type;
17551 	union {
17552 		u32 val;
17553 		kuid_t uid;
17554 		kgid_t gid;
17555 		struct {
17556 			char *lsm_str;
17557 			void *lsm_rule;
17558 		};
17559 	};
17560 	u32 op;
17561 };
17562 
17563 struct audit_parent;
17564 
17565 struct audit_watch {
17566 	refcount_t count;
17567 	dev_t dev;
17568 	char *path;
17569 	long unsigned int ino;
17570 	struct audit_parent *parent;
17571 	struct list_head wlist;
17572 	struct list_head rules;
17573 };
17574 
17575 struct fsnotify_group;
17576 
17577 struct fsnotify_iter_info;
17578 
17579 struct fsnotify_mark;
17580 
17581 struct fsnotify_event;
17582 
17583 struct fsnotify_ops {
17584 	int (*handle_event)(struct fsnotify_group *, u32, const void *, int, struct inode *, const struct qstr *, u32, struct fsnotify_iter_info *);
17585 	int (*handle_inode_event)(struct fsnotify_mark *, u32, struct inode *, struct inode *, const struct qstr *, u32);
17586 	void (*free_group_priv)(struct fsnotify_group *);
17587 	void (*freeing_mark)(struct fsnotify_mark *, struct fsnotify_group *);
17588 	void (*free_event)(struct fsnotify_group *, struct fsnotify_event *);
17589 	void (*free_mark)(struct fsnotify_mark *);
17590 };
17591 
17592 struct inotify_group_private_data {
17593 	spinlock_t idr_lock;
17594 	struct idr idr;
17595 	struct ucounts *ucounts;
17596 };
17597 
17598 struct fanotify_group_private_data {
17599 	struct hlist_head *merge_hash;
17600 	struct list_head access_list;
17601 	wait_queue_head_t access_waitq;
17602 	int flags;
17603 	int f_flags;
17604 	struct ucounts *ucounts;
17605 	mempool_t error_events_pool;
17606 };
17607 
17608 struct fsnotify_group {
17609 	const struct fsnotify_ops *ops;
17610 	refcount_t refcnt;
17611 	spinlock_t notification_lock;
17612 	struct list_head notification_list;
17613 	wait_queue_head_t notification_waitq;
17614 	unsigned int q_len;
17615 	unsigned int max_events;
17616 	unsigned int priority;
17617 	bool shutdown;
17618 	int flags;
17619 	unsigned int owner_flags;
17620 	struct mutex mark_mutex;
17621 	atomic_t user_waits;
17622 	struct list_head marks_list;
17623 	struct fasync_struct *fsn_fa;
17624 	struct fsnotify_event *overflow_event;
17625 	struct mem_cgroup *memcg;
17626 	union {
17627 		void *private;
17628 		struct inotify_group_private_data inotify_data;
17629 		struct fanotify_group_private_data fanotify_data;
17630 	};
17631 };
17632 
17633 struct fsnotify_iter_info {
17634 	struct fsnotify_mark *marks[5];
17635 	struct fsnotify_group *current_group;
17636 	unsigned int report_mask;
17637 	int srcu_idx;
17638 };
17639 
17640 struct fsnotify_mark {
17641 	__u32 mask;
17642 	refcount_t refcnt;
17643 	struct fsnotify_group *group;
17644 	struct list_head g_list;
17645 	spinlock_t lock;
17646 	struct hlist_node obj_list;
17647 	struct fsnotify_mark_connector *connector;
17648 	__u32 ignore_mask;
17649 	unsigned int flags;
17650 };
17651 
17652 struct fsnotify_event {
17653 	struct list_head list;
17654 };
17655 
17656 enum fsnotify_obj_type {
17657 	FSNOTIFY_OBJ_TYPE_ANY = -1,
17658 	FSNOTIFY_OBJ_TYPE_INODE = 0,
17659 	FSNOTIFY_OBJ_TYPE_VFSMOUNT = 1,
17660 	FSNOTIFY_OBJ_TYPE_SB = 2,
17661 	FSNOTIFY_OBJ_TYPE_COUNT = 3,
17662 	FSNOTIFY_OBJ_TYPE_DETACHED = 3,
17663 };
17664 
17665 struct __kernel_sockaddr_storage {
17666 	union {
17667 		struct {
17668 			__kernel_sa_family_t ss_family;
17669 			char __data[126];
17670 		};
17671 		void *__align;
17672 	};
17673 };
17674 
17675 struct audit_entry {
17676 	struct list_head list;
17677 	struct callback_head rcu;
17678 	struct audit_krule rule;
17679 };
17680 
17681 struct audit_parent {
17682 	struct list_head watches;
17683 	struct fsnotify_mark mark;
17684 };
17685 
17686 struct audit_buffer;
17687 
17688 struct audit_fsnotify_mark {
17689 	dev_t dev;
17690 	long unsigned int ino;
17691 	char *path;
17692 	struct fsnotify_mark mark;
17693 	struct audit_krule *rule;
17694 };
17695 
17696 struct rchan;
17697 
17698 struct rchan_buf {
17699 	void *start;
17700 	void *data;
17701 	size_t offset;
17702 	size_t subbufs_produced;
17703 	size_t subbufs_consumed;
17704 	struct rchan *chan;
17705 	wait_queue_head_t read_wait;
17706 	struct irq_work wakeup_work;
17707 	struct dentry *dentry;
17708 	struct kref kref;
17709 	struct page **page_array;
17710 	unsigned int page_count;
17711 	unsigned int finalized;
17712 	size_t *padding;
17713 	size_t prev_padding;
17714 	size_t bytes_consumed;
17715 	size_t early_bytes;
17716 	unsigned int cpu;
17717 	long: 32;
17718 	long: 64;
17719 	long: 64;
17720 };
17721 
17722 struct rchan_callbacks;
17723 
17724 struct rchan {
17725 	u32 version;
17726 	size_t subbuf_size;
17727 	size_t n_subbufs;
17728 	size_t alloc_size;
17729 	const struct rchan_callbacks *cb;
17730 	struct kref kref;
17731 	void *private_data;
17732 	size_t last_toobig;
17733 	struct rchan_buf **buf;
17734 	int is_global;
17735 	struct list_head list;
17736 	struct dentry *parent;
17737 	int has_base_filename;
17738 	char base_filename[255];
17739 };
17740 
17741 struct rchan_callbacks {
17742 	int (*subbuf_start)(struct rchan_buf *, void *, void *, size_t);
17743 	struct dentry * (*create_buf_file)(const char *, struct dentry *, umode_t, struct rchan_buf *, int *);
17744 	int (*remove_buf_file)(struct dentry *);
17745 };
17746 
17747 struct partial_page {
17748 	unsigned int offset;
17749 	unsigned int len;
17750 	long unsigned int private;
17751 };
17752 
17753 struct splice_pipe_desc {
17754 	struct page **pages;
17755 	struct partial_page *partial;
17756 	int nr_pages;
17757 	unsigned int nr_pages_max;
17758 	const struct pipe_buf_operations *ops;
17759 	void (*spd_release)(struct splice_pipe_desc *, unsigned int);
17760 };
17761 
17762 struct rchan_percpu_buf_dispatcher {
17763 	struct rchan_buf *buf;
17764 	struct dentry *dentry;
17765 };
17766 
17767 struct tp_module {
17768 	struct list_head list;
17769 	struct module *mod;
17770 };
17771 
17772 enum tp_func_state {
17773 	TP_FUNC_0 = 0,
17774 	TP_FUNC_1 = 1,
17775 	TP_FUNC_2 = 2,
17776 	TP_FUNC_N = 3,
17777 };
17778 
17779 enum tp_transition_sync {
17780 	TP_TRANSITION_SYNC_1_0_1 = 0,
17781 	TP_TRANSITION_SYNC_N_2_1 = 1,
17782 	_NR_TP_TRANSITION_SYNC = 2,
17783 };
17784 
17785 struct tp_transition_snapshot {
17786 	long unsigned int rcu;
17787 	long unsigned int srcu;
17788 	bool ongoing;
17789 };
17790 
17791 struct tp_probes {
17792 	struct callback_head rcu;
17793 	struct tracepoint_func probes[0];
17794 };
17795 
17796 typedef unsigned int xa_mark_t;
17797 
17798 enum xa_lock_type {
17799 	XA_LOCK_IRQ = 1,
17800 	XA_LOCK_BH = 2,
17801 };
17802 
17803 struct ida {
17804 	struct xarray xa;
17805 };
17806 
17807 struct ftrace_hash {
17808 	long unsigned int size_bits;
17809 	struct hlist_head *buckets;
17810 	long unsigned int count;
17811 	long unsigned int flags;
17812 	struct callback_head rcu;
17813 };
17814 
17815 struct prog_entry;
17816 
17817 struct event_filter {
17818 	struct prog_entry *prog;
17819 	char *filter_string;
17820 };
17821 
17822 struct trace_array_cpu;
17823 
17824 struct array_buffer {
17825 	struct trace_array *tr;
17826 	struct trace_buffer *buffer;
17827 	struct trace_array_cpu *data;
17828 	u64 time_start;
17829 	int cpu;
17830 };
17831 
17832 struct trace_pid_list;
17833 
17834 struct trace_options;
17835 
17836 struct trace_func_repeats;
17837 
17838 struct trace_array {
17839 	struct list_head list;
17840 	char *name;
17841 	struct array_buffer array_buffer;
17842 	struct trace_pid_list *filtered_pids;
17843 	struct trace_pid_list *filtered_no_pids;
17844 	arch_spinlock_t max_lock;
17845 	int buffer_disabled;
17846 	int sys_refcount_enter;
17847 	int sys_refcount_exit;
17848 	struct trace_event_file *enter_syscall_files[451];
17849 	struct trace_event_file *exit_syscall_files[451];
17850 	int stop_count;
17851 	int clock_id;
17852 	int nr_topts;
17853 	bool clear_trace;
17854 	int buffer_percent;
17855 	unsigned int n_err_log_entries;
17856 	struct tracer *current_trace;
17857 	unsigned int trace_flags;
17858 	unsigned char trace_flags_index[32];
17859 	unsigned int flags;
17860 	raw_spinlock_t start_lock;
17861 	struct list_head err_log;
17862 	struct dentry *dir;
17863 	struct dentry *options;
17864 	struct dentry *percpu_dir;
17865 	struct dentry *event_dir;
17866 	struct trace_options *topts;
17867 	struct list_head systems;
17868 	struct list_head events;
17869 	struct trace_event_file *trace_marker_file;
17870 	cpumask_var_t tracing_cpumask;
17871 	int ref;
17872 	int trace_ref;
17873 	struct ftrace_ops *ops;
17874 	struct trace_pid_list *function_pids;
17875 	struct trace_pid_list *function_no_pids;
17876 	struct list_head func_probes;
17877 	struct list_head mod_trace;
17878 	struct list_head mod_notrace;
17879 	int function_enabled;
17880 	int no_filter_buffering_ref;
17881 	struct list_head hist_vars;
17882 	struct trace_func_repeats *last_func_repeats;
17883 };
17884 
17885 struct tracer_flags;
17886 
17887 struct tracer {
17888 	const char *name;
17889 	int (*init)(struct trace_array *);
17890 	void (*reset)(struct trace_array *);
17891 	void (*start)(struct trace_array *);
17892 	void (*stop)(struct trace_array *);
17893 	int (*update_thresh)(struct trace_array *);
17894 	void (*open)(struct trace_iterator *);
17895 	void (*pipe_open)(struct trace_iterator *);
17896 	void (*close)(struct trace_iterator *);
17897 	void (*pipe_close)(struct trace_iterator *);
17898 	ssize_t (*read)(struct trace_iterator *, struct file *, char *, size_t, loff_t *);
17899 	ssize_t (*splice_read)(struct trace_iterator *, struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
17900 	void (*print_header)(struct seq_file *);
17901 	enum print_line_t (*print_line)(struct trace_iterator *);
17902 	int (*set_flag)(struct trace_array *, u32, u32, int);
17903 	int (*flag_changed)(struct trace_array *, u32, int);
17904 	struct tracer *next;
17905 	struct tracer_flags *flags;
17906 	int enabled;
17907 	bool print_max;
17908 	bool allow_instances;
17909 	bool noboot;
17910 };
17911 
17912 enum trace_iter_flags {
17913 	TRACE_FILE_LAT_FMT = 1,
17914 	TRACE_FILE_ANNOTATE = 2,
17915 	TRACE_FILE_TIME_IN_NS = 4,
17916 };
17917 
17918 enum trace_flag_type {
17919 	TRACE_FLAG_IRQS_OFF = 1,
17920 	TRACE_FLAG_IRQS_NOSUPPORT = 2,
17921 	TRACE_FLAG_NEED_RESCHED = 4,
17922 	TRACE_FLAG_HARDIRQ = 8,
17923 	TRACE_FLAG_SOFTIRQ = 16,
17924 	TRACE_FLAG_PREEMPT_RESCHED = 32,
17925 	TRACE_FLAG_NMI = 64,
17926 	TRACE_FLAG_BH_OFF = 128,
17927 };
17928 
17929 struct event_subsystem;
17930 
17931 struct trace_subsystem_dir {
17932 	struct list_head list;
17933 	struct event_subsystem *subsystem;
17934 	struct trace_array *tr;
17935 	struct dentry *entry;
17936 	int ref_count;
17937 	int nr_events;
17938 };
17939 
17940 union lower_chunk {
17941 	union lower_chunk *next;
17942 	long unsigned int data[256];
17943 };
17944 
17945 union upper_chunk {
17946 	union upper_chunk *next;
17947 	union lower_chunk *data[256];
17948 };
17949 
17950 struct trace_pid_list {
17951 	raw_spinlock_t lock;
17952 	struct irq_work refill_irqwork;
17953 	union upper_chunk *upper[256];
17954 	union upper_chunk *upper_list;
17955 	union lower_chunk *lower_list;
17956 	int free_upper_chunks;
17957 	int free_lower_chunks;
17958 };
17959 
17960 enum trace_type {
17961 	__TRACE_FIRST_TYPE = 0,
17962 	TRACE_FN = 1,
17963 	TRACE_CTX = 2,
17964 	TRACE_WAKE = 3,
17965 	TRACE_STACK = 4,
17966 	TRACE_PRINT = 5,
17967 	TRACE_BPRINT = 6,
17968 	TRACE_MMIO_RW = 7,
17969 	TRACE_MMIO_MAP = 8,
17970 	TRACE_BRANCH = 9,
17971 	TRACE_GRAPH_RET = 10,
17972 	TRACE_GRAPH_ENT = 11,
17973 	TRACE_USER_STACK = 12,
17974 	TRACE_BLK = 13,
17975 	TRACE_BPUTS = 14,
17976 	TRACE_HWLAT = 15,
17977 	TRACE_OSNOISE = 16,
17978 	TRACE_TIMERLAT = 17,
17979 	TRACE_RAW_DATA = 18,
17980 	TRACE_FUNC_REPEATS = 19,
17981 	__TRACE_LAST_TYPE = 20,
17982 };
17983 
17984 struct ftrace_entry {
17985 	struct trace_entry ent;
17986 	long unsigned int ip;
17987 	long unsigned int parent_ip;
17988 };
17989 
17990 struct ctx_switch_entry {
17991 	struct trace_entry ent;
17992 	unsigned int prev_pid;
17993 	unsigned int next_pid;
17994 	unsigned int next_cpu;
17995 	unsigned char prev_prio;
17996 	unsigned char prev_state;
17997 	unsigned char next_prio;
17998 	unsigned char next_state;
17999 };
18000 
18001 struct stack_entry {
18002 	struct trace_entry ent;
18003 	int size;
18004 	long unsigned int caller[8];
18005 };
18006 
18007 struct userstack_entry {
18008 	struct trace_entry ent;
18009 	unsigned int tgid;
18010 	long unsigned int caller[8];
18011 };
18012 
18013 struct bprint_entry {
18014 	struct trace_entry ent;
18015 	long unsigned int ip;
18016 	const char *fmt;
18017 	u32 buf[0];
18018 };
18019 
18020 struct print_entry {
18021 	struct trace_entry ent;
18022 	long unsigned int ip;
18023 	char buf[0];
18024 };
18025 
18026 struct raw_data_entry {
18027 	struct trace_entry ent;
18028 	unsigned int id;
18029 	char buf[0];
18030 };
18031 
18032 struct bputs_entry {
18033 	struct trace_entry ent;
18034 	long unsigned int ip;
18035 	const char *str;
18036 };
18037 
18038 struct hwlat_entry {
18039 	struct trace_entry ent;
18040 	u64 duration;
18041 	u64 outer_duration;
18042 	u64 nmi_total_ts;
18043 	struct timespec64 timestamp;
18044 	unsigned int nmi_count;
18045 	unsigned int seqnum;
18046 	unsigned int count;
18047 };
18048 
18049 struct func_repeats_entry {
18050 	struct trace_entry ent;
18051 	long unsigned int ip;
18052 	long unsigned int parent_ip;
18053 	u16 count;
18054 	u16 top_delta_ts;
18055 	u32 bottom_delta_ts;
18056 };
18057 
18058 struct osnoise_entry {
18059 	struct trace_entry ent;
18060 	u64 noise;
18061 	u64 runtime;
18062 	u64 max_sample;
18063 	unsigned int hw_count;
18064 	unsigned int nmi_count;
18065 	unsigned int irq_count;
18066 	unsigned int softirq_count;
18067 	unsigned int thread_count;
18068 };
18069 
18070 struct timerlat_entry {
18071 	struct trace_entry ent;
18072 	unsigned int seqnum;
18073 	int context;
18074 	u64 timer_latency;
18075 };
18076 
18077 struct trace_array_cpu {
18078 	atomic_t disabled;
18079 	void *buffer_page;
18080 	long unsigned int entries;
18081 	long unsigned int saved_latency;
18082 	long unsigned int critical_start;
18083 	long unsigned int critical_end;
18084 	long unsigned int critical_sequence;
18085 	long unsigned int nice;
18086 	long unsigned int policy;
18087 	long unsigned int rt_priority;
18088 	long unsigned int skipped_entries;
18089 	u64 preempt_timestamp;
18090 	pid_t pid;
18091 	kuid_t uid;
18092 	char comm[16];
18093 	int ftrace_ignore_pid;
18094 	bool ignore_pid;
18095 };
18096 
18097 struct trace_option_dentry;
18098 
18099 struct trace_options {
18100 	struct tracer *tracer;
18101 	struct trace_option_dentry *topts;
18102 };
18103 
18104 struct tracer_opt;
18105 
18106 struct trace_option_dentry {
18107 	struct tracer_opt *opt;
18108 	struct tracer_flags *flags;
18109 	struct trace_array *tr;
18110 	struct dentry *entry;
18111 };
18112 
18113 struct trace_func_repeats {
18114 	long unsigned int ip;
18115 	long unsigned int parent_ip;
18116 	long unsigned int count;
18117 	u64 ts_last_call;
18118 };
18119 
18120 struct tracer_opt {
18121 	const char *name;
18122 	u32 bit;
18123 };
18124 
18125 struct tracer_flags {
18126 	u32 val;
18127 	struct tracer_opt *opts;
18128 	struct tracer *trace;
18129 };
18130 
18131 enum trace_iterator_bits {
18132 	TRACE_ITER_PRINT_PARENT_BIT = 0,
18133 	TRACE_ITER_SYM_OFFSET_BIT = 1,
18134 	TRACE_ITER_SYM_ADDR_BIT = 2,
18135 	TRACE_ITER_VERBOSE_BIT = 3,
18136 	TRACE_ITER_RAW_BIT = 4,
18137 	TRACE_ITER_HEX_BIT = 5,
18138 	TRACE_ITER_BIN_BIT = 6,
18139 	TRACE_ITER_BLOCK_BIT = 7,
18140 	TRACE_ITER_PRINTK_BIT = 8,
18141 	TRACE_ITER_ANNOTATE_BIT = 9,
18142 	TRACE_ITER_USERSTACKTRACE_BIT = 10,
18143 	TRACE_ITER_SYM_USEROBJ_BIT = 11,
18144 	TRACE_ITER_PRINTK_MSGONLY_BIT = 12,
18145 	TRACE_ITER_CONTEXT_INFO_BIT = 13,
18146 	TRACE_ITER_LATENCY_FMT_BIT = 14,
18147 	TRACE_ITER_RECORD_CMD_BIT = 15,
18148 	TRACE_ITER_RECORD_TGID_BIT = 16,
18149 	TRACE_ITER_OVERWRITE_BIT = 17,
18150 	TRACE_ITER_STOP_ON_FREE_BIT = 18,
18151 	TRACE_ITER_IRQ_INFO_BIT = 19,
18152 	TRACE_ITER_MARKERS_BIT = 20,
18153 	TRACE_ITER_EVENT_FORK_BIT = 21,
18154 	TRACE_ITER_PAUSE_ON_TRACE_BIT = 22,
18155 	TRACE_ITER_HASH_PTR_BIT = 23,
18156 	TRACE_ITER_FUNCTION_BIT = 24,
18157 	TRACE_ITER_FUNC_FORK_BIT = 25,
18158 	TRACE_ITER_DISPLAY_GRAPH_BIT = 26,
18159 	TRACE_ITER_STACKTRACE_BIT = 27,
18160 	TRACE_ITER_LAST_BIT = 28,
18161 };
18162 
18163 enum trace_iterator_flags {
18164 	TRACE_ITER_PRINT_PARENT = 1,
18165 	TRACE_ITER_SYM_OFFSET = 2,
18166 	TRACE_ITER_SYM_ADDR = 4,
18167 	TRACE_ITER_VERBOSE = 8,
18168 	TRACE_ITER_RAW = 16,
18169 	TRACE_ITER_HEX = 32,
18170 	TRACE_ITER_BIN = 64,
18171 	TRACE_ITER_BLOCK = 128,
18172 	TRACE_ITER_PRINTK = 256,
18173 	TRACE_ITER_ANNOTATE = 512,
18174 	TRACE_ITER_USERSTACKTRACE = 1024,
18175 	TRACE_ITER_SYM_USEROBJ = 2048,
18176 	TRACE_ITER_PRINTK_MSGONLY = 4096,
18177 	TRACE_ITER_CONTEXT_INFO = 8192,
18178 	TRACE_ITER_LATENCY_FMT = 16384,
18179 	TRACE_ITER_RECORD_CMD = 32768,
18180 	TRACE_ITER_RECORD_TGID = 65536,
18181 	TRACE_ITER_OVERWRITE = 131072,
18182 	TRACE_ITER_STOP_ON_FREE = 262144,
18183 	TRACE_ITER_IRQ_INFO = 524288,
18184 	TRACE_ITER_MARKERS = 1048576,
18185 	TRACE_ITER_EVENT_FORK = 2097152,
18186 	TRACE_ITER_PAUSE_ON_TRACE = 4194304,
18187 	TRACE_ITER_HASH_PTR = 8388608,
18188 	TRACE_ITER_FUNCTION = 16777216,
18189 	TRACE_ITER_FUNC_FORK = 33554432,
18190 	TRACE_ITER_DISPLAY_GRAPH = 67108864,
18191 	TRACE_ITER_STACKTRACE = 134217728,
18192 };
18193 
18194 struct event_subsystem {
18195 	struct list_head list;
18196 	const char *name;
18197 	struct event_filter *filter;
18198 	int ref_count;
18199 };
18200 
18201 struct trace_mark {
18202 	long long unsigned int val;
18203 	char sym;
18204 };
18205 
18206 enum lockdown_reason {
18207 	LOCKDOWN_NONE = 0,
18208 	LOCKDOWN_MODULE_SIGNATURE = 1,
18209 	LOCKDOWN_DEV_MEM = 2,
18210 	LOCKDOWN_EFI_TEST = 3,
18211 	LOCKDOWN_KEXEC = 4,
18212 	LOCKDOWN_HIBERNATION = 5,
18213 	LOCKDOWN_PCI_ACCESS = 6,
18214 	LOCKDOWN_IOPORT = 7,
18215 	LOCKDOWN_MSR = 8,
18216 	LOCKDOWN_ACPI_TABLES = 9,
18217 	LOCKDOWN_DEVICE_TREE = 10,
18218 	LOCKDOWN_PCMCIA_CIS = 11,
18219 	LOCKDOWN_TIOCSSERIAL = 12,
18220 	LOCKDOWN_MODULE_PARAMETERS = 13,
18221 	LOCKDOWN_MMIOTRACE = 14,
18222 	LOCKDOWN_DEBUGFS = 15,
18223 	LOCKDOWN_XMON_WR = 16,
18224 	LOCKDOWN_BPF_WRITE_USER = 17,
18225 	LOCKDOWN_DBG_WRITE_KERNEL = 18,
18226 	LOCKDOWN_RTAS_ERROR_INJECTION = 19,
18227 	LOCKDOWN_INTEGRITY_MAX = 20,
18228 	LOCKDOWN_KCORE = 21,
18229 	LOCKDOWN_KPROBES = 22,
18230 	LOCKDOWN_BPF_READ_KERNEL = 23,
18231 	LOCKDOWN_DBG_READ_KERNEL = 24,
18232 	LOCKDOWN_PERF = 25,
18233 	LOCKDOWN_TRACEFS = 26,
18234 	LOCKDOWN_XMON_RW = 27,
18235 	LOCKDOWN_XFRM_SECRET = 28,
18236 	LOCKDOWN_CONFIDENTIALITY_MAX = 29,
18237 };
18238 
18239 struct tracer_stat {
18240 	const char *name;
18241 	void * (*stat_start)(struct tracer_stat *);
18242 	void * (*stat_next)(void *, int);
18243 	cmp_func_t stat_cmp;
18244 	int (*stat_show)(struct seq_file *, void *);
18245 	void (*stat_release)(void *);
18246 	int (*stat_headers)(struct seq_file *);
18247 };
18248 
18249 struct stat_node {
18250 	struct rb_node node;
18251 	void *stat;
18252 };
18253 
18254 struct stat_session {
18255 	struct list_head session_list;
18256 	struct tracer_stat *ts;
18257 	struct rb_root stat_root;
18258 	struct mutex stat_mutex;
18259 	struct dentry *file;
18260 };
18261 
18262 enum ftrace_dump_mode {
18263 	DUMP_NONE = 0,
18264 	DUMP_ALL = 1,
18265 	DUMP_ORIG = 2,
18266 };
18267 
18268 enum {
18269 	FTRACE_OPS_FL_ENABLED = 1,
18270 	FTRACE_OPS_FL_DYNAMIC = 2,
18271 	FTRACE_OPS_FL_SAVE_REGS = 4,
18272 	FTRACE_OPS_FL_SAVE_REGS_IF_SUPPORTED = 8,
18273 	FTRACE_OPS_FL_RECURSION = 16,
18274 	FTRACE_OPS_FL_STUB = 32,
18275 	FTRACE_OPS_FL_INITIALIZED = 64,
18276 	FTRACE_OPS_FL_DELETED = 128,
18277 	FTRACE_OPS_FL_ADDING = 256,
18278 	FTRACE_OPS_FL_REMOVING = 512,
18279 	FTRACE_OPS_FL_MODIFYING = 1024,
18280 	FTRACE_OPS_FL_ALLOC_TRAMP = 2048,
18281 	FTRACE_OPS_FL_IPMODIFY = 4096,
18282 	FTRACE_OPS_FL_PID = 8192,
18283 	FTRACE_OPS_FL_RCU = 16384,
18284 	FTRACE_OPS_FL_TRACE_ARRAY = 32768,
18285 	FTRACE_OPS_FL_PERMANENT = 65536,
18286 	FTRACE_OPS_FL_DIRECT = 131072,
18287 };
18288 
18289 enum {
18290 	TRACE_ARRAY_FL_GLOBAL = 1,
18291 };
18292 
18293 struct ftrace_func_command {
18294 	struct list_head list;
18295 	char *name;
18296 	int (*func)(struct trace_array *, struct ftrace_hash *, char *, char *, char *, int);
18297 };
18298 
18299 struct ftrace_probe_ops {
18300 	void (*func)(long unsigned int, long unsigned int, struct trace_array *, struct ftrace_probe_ops *, void *);
18301 	int (*init)(struct ftrace_probe_ops *, struct trace_array *, long unsigned int, void *, void **);
18302 	void (*free)(struct ftrace_probe_ops *, struct trace_array *, long unsigned int, void *);
18303 	int (*print)(struct seq_file *, long unsigned int, struct ftrace_probe_ops *, void *);
18304 };
18305 
18306 typedef int (*ftrace_mapper_func)(void *);
18307 
18308 enum {
18309 	TRACE_FUNC_NO_OPTS = 0,
18310 	TRACE_FUNC_OPT_STACK = 1,
18311 	TRACE_FUNC_OPT_NO_REPEATS = 2,
18312 	TRACE_FUNC_OPT_HIGHEST_BIT = 4,
18313 };
18314 
18315 struct ftrace_func_mapper;
18316 
18317 struct ftrace_graph_ent {
18318 	long unsigned int func;
18319 	int depth;
18320 } __attribute__((packed));
18321 
18322 struct ftrace_graph_ret {
18323 	long unsigned int func;
18324 	int depth;
18325 	unsigned int overrun;
18326 	long long unsigned int calltime;
18327 	long long unsigned int rettime;
18328 };
18329 
18330 typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *);
18331 
18332 typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *);
18333 
18334 struct fgraph_ops {
18335 	trace_func_graph_ent_t entryfunc;
18336 	trace_func_graph_ret_t retfunc;
18337 };
18338 
18339 struct syscall_trace_enter {
18340 	struct trace_entry ent;
18341 	int nr;
18342 	long unsigned int args[0];
18343 };
18344 
18345 struct syscall_trace_exit {
18346 	struct trace_entry ent;
18347 	int nr;
18348 	long int ret;
18349 };
18350 
18351 struct syscall_tp_t {
18352 	long long unsigned int regs;
18353 	long unsigned int syscall_nr;
18354 	long unsigned int ret;
18355 };
18356 
18357 struct syscall_tp_t___2 {
18358 	long long unsigned int regs;
18359 	long unsigned int syscall_nr;
18360 	long unsigned int args[6];
18361 };
18362 
18363 enum event_trigger_type {
18364 	ETT_NONE = 0,
18365 	ETT_TRACE_ONOFF = 1,
18366 	ETT_SNAPSHOT = 2,
18367 	ETT_STACKTRACE = 4,
18368 	ETT_EVENT_ENABLE = 8,
18369 	ETT_EVENT_HIST = 16,
18370 	ETT_HIST_ENABLE = 32,
18371 	ETT_EVENT_EPROBE = 64,
18372 };
18373 
18374 struct eprobe_trace_entry_head {
18375 	struct trace_entry ent;
18376 };
18377 
18378 struct ftrace_event_field {
18379 	struct list_head link;
18380 	const char *name;
18381 	const char *type;
18382 	int filter_type;
18383 	int offset;
18384 	int size;
18385 	int is_signed;
18386 };
18387 
18388 enum {
18389 	EVENT_TRIGGER_FL_PROBE = 1,
18390 };
18391 
18392 struct event_trigger_ops;
18393 
18394 struct event_command;
18395 
18396 struct event_trigger_data {
18397 	long unsigned int count;
18398 	int ref;
18399 	int flags;
18400 	struct event_trigger_ops *ops;
18401 	struct event_command *cmd_ops;
18402 	struct event_filter *filter;
18403 	char *filter_str;
18404 	void *private_data;
18405 	bool paused;
18406 	bool paused_tmp;
18407 	struct list_head list;
18408 	char *name;
18409 	struct list_head named_list;
18410 	struct event_trigger_data *named_data;
18411 };
18412 
18413 struct event_trigger_ops {
18414 	void (*trigger)(struct event_trigger_data *, struct trace_buffer *, void *, struct ring_buffer_event *);
18415 	int (*init)(struct event_trigger_data *);
18416 	void (*free)(struct event_trigger_data *);
18417 	int (*print)(struct seq_file *, struct event_trigger_data *);
18418 };
18419 
18420 struct event_command {
18421 	struct list_head list;
18422 	char *name;
18423 	enum event_trigger_type trigger_type;
18424 	int flags;
18425 	int (*parse)(struct event_command *, struct trace_event_file *, char *, char *, char *);
18426 	int (*reg)(char *, struct event_trigger_data *, struct trace_event_file *);
18427 	void (*unreg)(char *, struct event_trigger_data *, struct trace_event_file *);
18428 	void (*unreg_all)(struct trace_event_file *);
18429 	int (*set_filter)(char *, struct event_trigger_data *, struct trace_event_file *);
18430 	struct event_trigger_ops * (*get_trigger_ops)(char *, char *);
18431 };
18432 
18433 enum event_command_flags {
18434 	EVENT_CMD_FL_POST_TRIGGER = 1,
18435 	EVENT_CMD_FL_NEEDS_REC = 2,
18436 };
18437 
18438 struct dyn_event;
18439 
18440 struct dyn_event_operations {
18441 	struct list_head list;
18442 	int (*create)(const char *);
18443 	int (*show)(struct seq_file *, struct dyn_event *);
18444 	bool (*is_busy)(struct dyn_event *);
18445 	int (*free)(struct dyn_event *);
18446 	bool (*match)(const char *, const char *, int, const char **, struct dyn_event *);
18447 };
18448 
18449 struct dyn_event {
18450 	struct list_head list;
18451 	struct dyn_event_operations *ops;
18452 };
18453 
18454 typedef int (*print_type_func_t)(struct trace_seq *, void *, void *);
18455 
18456 enum fetch_op {
18457 	FETCH_OP_NOP = 0,
18458 	FETCH_OP_REG = 1,
18459 	FETCH_OP_STACK = 2,
18460 	FETCH_OP_STACKP = 3,
18461 	FETCH_OP_RETVAL = 4,
18462 	FETCH_OP_IMM = 5,
18463 	FETCH_OP_COMM = 6,
18464 	FETCH_OP_ARG = 7,
18465 	FETCH_OP_FOFFS = 8,
18466 	FETCH_OP_DATA = 9,
18467 	FETCH_OP_DEREF = 10,
18468 	FETCH_OP_UDEREF = 11,
18469 	FETCH_OP_ST_RAW = 12,
18470 	FETCH_OP_ST_MEM = 13,
18471 	FETCH_OP_ST_UMEM = 14,
18472 	FETCH_OP_ST_STRING = 15,
18473 	FETCH_OP_ST_USTRING = 16,
18474 	FETCH_OP_ST_SYMSTR = 17,
18475 	FETCH_OP_MOD_BF = 18,
18476 	FETCH_OP_LP_ARRAY = 19,
18477 	FETCH_OP_TP_ARG = 20,
18478 	FETCH_OP_END = 21,
18479 	FETCH_NOP_SYMBOL = 22,
18480 };
18481 
18482 struct fetch_insn {
18483 	enum fetch_op op;
18484 	union {
18485 		unsigned int param;
18486 		struct {
18487 			unsigned int size;
18488 			int offset;
18489 		};
18490 		struct {
18491 			unsigned char basesize;
18492 			unsigned char lshift;
18493 			unsigned char rshift;
18494 		};
18495 		long unsigned int immediate;
18496 		void *data;
18497 	};
18498 };
18499 
18500 struct fetch_type {
18501 	const char *name;
18502 	size_t size;
18503 	bool is_signed;
18504 	bool is_string;
18505 	print_type_func_t print;
18506 	const char *fmt;
18507 	const char *fmttype;
18508 };
18509 
18510 struct probe_arg {
18511 	struct fetch_insn *code;
18512 	bool dynamic;
18513 	unsigned int offset;
18514 	unsigned int count;
18515 	const char *name;
18516 	const char *comm;
18517 	char *fmt;
18518 	const struct fetch_type *type;
18519 };
18520 
18521 struct trace_uprobe_filter {
18522 	rwlock_t rwlock;
18523 	int nr_systemwide;
18524 	struct list_head perf_events;
18525 };
18526 
18527 struct trace_probe_event {
18528 	unsigned int flags;
18529 	struct trace_event_class class;
18530 	struct trace_event_call call;
18531 	struct list_head files;
18532 	struct list_head probes;
18533 	struct trace_uprobe_filter filter[0];
18534 };
18535 
18536 struct trace_probe {
18537 	struct list_head list;
18538 	struct trace_probe_event *event;
18539 	ssize_t size;
18540 	unsigned int nr_args;
18541 	struct probe_arg args[0];
18542 };
18543 
18544 struct event_file_link {
18545 	struct trace_event_file *file;
18546 	struct list_head list;
18547 };
18548 
18549 enum probe_print_type {
18550 	PROBE_PRINT_NORMAL = 0,
18551 	PROBE_PRINT_RETURN = 1,
18552 	PROBE_PRINT_EVENT = 2,
18553 };
18554 
18555 enum {
18556 	TP_ERR_FILE_NOT_FOUND = 0,
18557 	TP_ERR_NO_REGULAR_FILE = 1,
18558 	TP_ERR_BAD_REFCNT = 2,
18559 	TP_ERR_REFCNT_OPEN_BRACE = 3,
18560 	TP_ERR_BAD_REFCNT_SUFFIX = 4,
18561 	TP_ERR_BAD_UPROBE_OFFS = 5,
18562 	TP_ERR_MAXACT_NO_KPROBE = 6,
18563 	TP_ERR_BAD_MAXACT = 7,
18564 	TP_ERR_MAXACT_TOO_BIG = 8,
18565 	TP_ERR_BAD_PROBE_ADDR = 9,
18566 	TP_ERR_BAD_RETPROBE = 10,
18567 	TP_ERR_BAD_ADDR_SUFFIX = 11,
18568 	TP_ERR_NO_GROUP_NAME = 12,
18569 	TP_ERR_GROUP_TOO_LONG = 13,
18570 	TP_ERR_BAD_GROUP_NAME = 14,
18571 	TP_ERR_NO_EVENT_NAME = 15,
18572 	TP_ERR_EVENT_TOO_LONG = 16,
18573 	TP_ERR_BAD_EVENT_NAME = 17,
18574 	TP_ERR_EVENT_EXIST = 18,
18575 	TP_ERR_RETVAL_ON_PROBE = 19,
18576 	TP_ERR_BAD_STACK_NUM = 20,
18577 	TP_ERR_BAD_ARG_NUM = 21,
18578 	TP_ERR_BAD_VAR = 22,
18579 	TP_ERR_BAD_REG_NAME = 23,
18580 	TP_ERR_BAD_MEM_ADDR = 24,
18581 	TP_ERR_BAD_IMM = 25,
18582 	TP_ERR_IMMSTR_NO_CLOSE = 26,
18583 	TP_ERR_FILE_ON_KPROBE = 27,
18584 	TP_ERR_BAD_FILE_OFFS = 28,
18585 	TP_ERR_SYM_ON_UPROBE = 29,
18586 	TP_ERR_TOO_MANY_OPS = 30,
18587 	TP_ERR_DEREF_NEED_BRACE = 31,
18588 	TP_ERR_BAD_DEREF_OFFS = 32,
18589 	TP_ERR_DEREF_OPEN_BRACE = 33,
18590 	TP_ERR_COMM_CANT_DEREF = 34,
18591 	TP_ERR_BAD_FETCH_ARG = 35,
18592 	TP_ERR_ARRAY_NO_CLOSE = 36,
18593 	TP_ERR_BAD_ARRAY_SUFFIX = 37,
18594 	TP_ERR_BAD_ARRAY_NUM = 38,
18595 	TP_ERR_ARRAY_TOO_BIG = 39,
18596 	TP_ERR_BAD_TYPE = 40,
18597 	TP_ERR_BAD_STRING = 41,
18598 	TP_ERR_BAD_SYMSTRING = 42,
18599 	TP_ERR_BAD_BITFIELD = 43,
18600 	TP_ERR_ARG_NAME_TOO_LONG = 44,
18601 	TP_ERR_NO_ARG_NAME = 45,
18602 	TP_ERR_BAD_ARG_NAME = 46,
18603 	TP_ERR_USED_ARG_NAME = 47,
18604 	TP_ERR_ARG_TOO_LONG = 48,
18605 	TP_ERR_NO_ARG_BODY = 49,
18606 	TP_ERR_BAD_INSN_BNDRY = 50,
18607 	TP_ERR_FAIL_REG_PROBE = 51,
18608 	TP_ERR_DIFF_PROBE_TYPE = 52,
18609 	TP_ERR_DIFF_ARG_TYPE = 53,
18610 	TP_ERR_SAME_PROBE = 54,
18611 	TP_ERR_NO_EVENT_INFO = 55,
18612 	TP_ERR_BAD_ATTACH_EVENT = 56,
18613 	TP_ERR_BAD_ATTACH_ARG = 57,
18614 	TP_ERR_NO_EP_FILTER = 58,
18615 };
18616 
18617 struct trace_eprobe {
18618 	const char *event_system;
18619 	const char *event_name;
18620 	char *filter_str;
18621 	struct trace_event_call *event;
18622 	struct dyn_event devent;
18623 	struct trace_probe tp;
18624 };
18625 
18626 struct eprobe_data {
18627 	struct trace_event_file *file;
18628 	struct trace_eprobe *ep;
18629 };
18630 
18631 typedef __u64 __be64;
18632 
18633 struct bpf_cgroup_storage_key {
18634 	__u64 cgroup_inode_id;
18635 	__u32 attach_type;
18636 };
18637 
18638 enum bpf_task_fd_type {
18639 	BPF_FD_TYPE_RAW_TRACEPOINT = 0,
18640 	BPF_FD_TYPE_TRACEPOINT = 1,
18641 	BPF_FD_TYPE_KPROBE = 2,
18642 	BPF_FD_TYPE_KRETPROBE = 3,
18643 	BPF_FD_TYPE_UPROBE = 4,
18644 	BPF_FD_TYPE_URETPROBE = 5,
18645 };
18646 
18647 typedef __u64 __addrpair;
18648 
18649 typedef __u32 __portpair;
18650 
18651 struct hlist_nulls_node {
18652 	struct hlist_nulls_node *next;
18653 	struct hlist_nulls_node **pprev;
18654 };
18655 
18656 struct proto;
18657 
18658 struct sock_common {
18659 	union {
18660 		__addrpair skc_addrpair;
18661 		struct {
18662 			__be32 skc_daddr;
18663 			__be32 skc_rcv_saddr;
18664 		};
18665 	};
18666 	union {
18667 		unsigned int skc_hash;
18668 		__u16 skc_u16hashes[2];
18669 	};
18670 	union {
18671 		__portpair skc_portpair;
18672 		struct {
18673 			__be16 skc_dport;
18674 			__u16 skc_num;
18675 		};
18676 	};
18677 	short unsigned int skc_family;
18678 	volatile unsigned char skc_state;
18679 	unsigned char skc_reuse: 4;
18680 	unsigned char skc_reuseport: 1;
18681 	unsigned char skc_ipv6only: 1;
18682 	unsigned char skc_net_refcnt: 1;
18683 	int skc_bound_dev_if;
18684 	union {
18685 		struct hlist_node skc_bind_node;
18686 		struct hlist_node skc_portaddr_node;
18687 	};
18688 	struct proto *skc_prot;
18689 	possible_net_t skc_net;
18690 	struct in6_addr skc_v6_daddr;
18691 	struct in6_addr skc_v6_rcv_saddr;
18692 	atomic64_t skc_cookie;
18693 	union {
18694 		long unsigned int skc_flags;
18695 		struct sock *skc_listener;
18696 		struct inet_timewait_death_row *skc_tw_dr;
18697 	};
18698 	int skc_dontcopy_begin[0];
18699 	union {
18700 		struct hlist_node skc_node;
18701 		struct hlist_nulls_node skc_nulls_node;
18702 	};
18703 	short unsigned int skc_tx_queue_mapping;
18704 	short unsigned int skc_rx_queue_mapping;
18705 	union {
18706 		int skc_incoming_cpu;
18707 		u32 skc_rcv_wnd;
18708 		u32 skc_tw_rcv_nxt;
18709 	};
18710 	refcount_t skc_refcnt;
18711 	int skc_dontcopy_end[0];
18712 	union {
18713 		u32 skc_rxhash;
18714 		u32 skc_window_clamp;
18715 		u32 skc_tw_snd_nxt;
18716 	};
18717 };
18718 
18719 typedef struct {
18720 	spinlock_t slock;
18721 	int owned;
18722 	wait_queue_head_t wq;
18723 } socket_lock_t;
18724 
18725 struct sock_cgroup_data {
18726 	struct cgroup *cgroup;
18727 	u32 classid;
18728 	u16 prioidx;
18729 };
18730 
18731 typedef struct {} netns_tracker;
18732 
18733 struct sk_filter;
18734 
18735 struct xfrm_policy;
18736 
18737 struct sock_reuseport;
18738 
18739 struct sock {
18740 	struct sock_common __sk_common;
18741 	struct dst_entry *sk_rx_dst;
18742 	int sk_rx_dst_ifindex;
18743 	u32 sk_rx_dst_cookie;
18744 	socket_lock_t sk_lock;
18745 	atomic_t sk_drops;
18746 	int sk_rcvlowat;
18747 	struct sk_buff_head sk_error_queue;
18748 	struct sk_buff_head sk_receive_queue;
18749 	struct {
18750 		atomic_t rmem_alloc;
18751 		int len;
18752 		struct sk_buff *head;
18753 		struct sk_buff *tail;
18754 	} sk_backlog;
18755 	int sk_forward_alloc;
18756 	u32 sk_reserved_mem;
18757 	unsigned int sk_ll_usec;
18758 	unsigned int sk_napi_id;
18759 	int sk_rcvbuf;
18760 	struct sk_filter *sk_filter;
18761 	union {
18762 		struct socket_wq *sk_wq;
18763 		struct socket_wq *sk_wq_raw;
18764 	};
18765 	struct xfrm_policy *sk_policy[2];
18766 	struct dst_entry *sk_dst_cache;
18767 	atomic_t sk_omem_alloc;
18768 	int sk_sndbuf;
18769 	int sk_wmem_queued;
18770 	refcount_t sk_wmem_alloc;
18771 	long unsigned int sk_tsq_flags;
18772 	union {
18773 		struct sk_buff *sk_send_head;
18774 		struct rb_root tcp_rtx_queue;
18775 	};
18776 	struct sk_buff_head sk_write_queue;
18777 	__s32 sk_peek_off;
18778 	int sk_write_pending;
18779 	__u32 sk_dst_pending_confirm;
18780 	u32 sk_pacing_status;
18781 	long int sk_sndtimeo;
18782 	struct timer_list sk_timer;
18783 	__u32 sk_priority;
18784 	__u32 sk_mark;
18785 	long unsigned int sk_pacing_rate;
18786 	long unsigned int sk_max_pacing_rate;
18787 	struct page_frag sk_frag;
18788 	netdev_features_t sk_route_caps;
18789 	int sk_gso_type;
18790 	unsigned int sk_gso_max_size;
18791 	gfp_t sk_allocation;
18792 	__u32 sk_txhash;
18793 	u8 sk_gso_disabled: 1;
18794 	u8 sk_kern_sock: 1;
18795 	u8 sk_no_check_tx: 1;
18796 	u8 sk_no_check_rx: 1;
18797 	u8 sk_userlocks: 4;
18798 	u8 sk_pacing_shift;
18799 	u16 sk_type;
18800 	u16 sk_protocol;
18801 	u16 sk_gso_max_segs;
18802 	long unsigned int sk_lingertime;
18803 	struct proto *sk_prot_creator;
18804 	rwlock_t sk_callback_lock;
18805 	int sk_err;
18806 	int sk_err_soft;
18807 	u32 sk_ack_backlog;
18808 	u32 sk_max_ack_backlog;
18809 	kuid_t sk_uid;
18810 	u8 sk_txrehash;
18811 	u8 sk_prefer_busy_poll;
18812 	u16 sk_busy_poll_budget;
18813 	spinlock_t sk_peer_lock;
18814 	int sk_bind_phc;
18815 	struct pid *sk_peer_pid;
18816 	const struct cred *sk_peer_cred;
18817 	long int sk_rcvtimeo;
18818 	ktime_t sk_stamp;
18819 	atomic_t sk_tskey;
18820 	atomic_t sk_zckey;
18821 	u32 sk_tsflags;
18822 	u8 sk_shutdown;
18823 	u8 sk_clockid;
18824 	u8 sk_txtime_deadline_mode: 1;
18825 	u8 sk_txtime_report_errors: 1;
18826 	u8 sk_txtime_unused: 6;
18827 	bool sk_use_task_frag;
18828 	struct socket *sk_socket;
18829 	void *sk_user_data;
18830 	void *sk_security;
18831 	struct sock_cgroup_data sk_cgrp_data;
18832 	struct mem_cgroup *sk_memcg;
18833 	void (*sk_state_change)(struct sock *);
18834 	void (*sk_data_ready)(struct sock *);
18835 	void (*sk_write_space)(struct sock *);
18836 	void (*sk_error_report)(struct sock *);
18837 	int (*sk_backlog_rcv)(struct sock *, struct sk_buff *);
18838 	struct sk_buff * (*sk_validate_xmit_skb)(struct sock *, struct net_device *, struct sk_buff *);
18839 	void (*sk_destruct)(struct sock *);
18840 	struct sock_reuseport *sk_reuseport_cb;
18841 	struct bpf_local_storage *sk_bpf_storage;
18842 	struct callback_head sk_rcu;
18843 	netns_tracker ns_tracker;
18844 	struct hlist_node sk_bind2_node;
18845 };
18846 
18847 struct bpf_storage_buffer;
18848 
18849 struct bpf_cgroup_storage_map;
18850 
18851 struct bpf_cgroup_storage {
18852 	union {
18853 		struct bpf_storage_buffer *buf;
18854 		void *percpu_buf;
18855 	};
18856 	struct bpf_cgroup_storage_map *map;
18857 	struct bpf_cgroup_storage_key key;
18858 	struct list_head list_map;
18859 	struct list_head list_cg;
18860 	struct rb_node node;
18861 	struct callback_head rcu;
18862 };
18863 
18864 struct flowi_tunnel {
18865 	__be64 tun_id;
18866 };
18867 
18868 struct flowi_common {
18869 	int flowic_oif;
18870 	int flowic_iif;
18871 	int flowic_l3mdev;
18872 	__u32 flowic_mark;
18873 	__u8 flowic_tos;
18874 	__u8 flowic_scope;
18875 	__u8 flowic_proto;
18876 	__u8 flowic_flags;
18877 	__u32 flowic_secid;
18878 	kuid_t flowic_uid;
18879 	struct flowi_tunnel flowic_tun_key;
18880 	__u32 flowic_multipath_hash;
18881 };
18882 
18883 union flowi_uli {
18884 	struct {
18885 		__be16 dport;
18886 		__be16 sport;
18887 	} ports;
18888 	struct {
18889 		__u8 type;
18890 		__u8 code;
18891 	} icmpt;
18892 	__be32 gre_key;
18893 	struct {
18894 		__u8 type;
18895 	} mht;
18896 };
18897 
18898 struct flowi4 {
18899 	struct flowi_common __fl_common;
18900 	__be32 saddr;
18901 	__be32 daddr;
18902 	union flowi_uli uli;
18903 };
18904 
18905 struct flowi6 {
18906 	struct flowi_common __fl_common;
18907 	struct in6_addr daddr;
18908 	struct in6_addr saddr;
18909 	__be32 flowlabel;
18910 	union flowi_uli uli;
18911 	__u32 mp_hash;
18912 };
18913 
18914 struct flowi {
18915 	union {
18916 		struct flowi_common __fl_common;
18917 		struct flowi4 ip4;
18918 		struct flowi6 ip6;
18919 	} u;
18920 };
18921 
18922 struct prot_inuse {
18923 	int all;
18924 	int val[64];
18925 };
18926 
18927 struct fib_rule;
18928 
18929 struct fib_lookup_arg;
18930 
18931 struct fib_rule_hdr;
18932 
18933 struct fib_rules_ops {
18934 	int family;
18935 	struct list_head list;
18936 	int rule_size;
18937 	int addr_size;
18938 	int unresolved_rules;
18939 	int nr_goto_rules;
18940 	unsigned int fib_rules_seq;
18941 	int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
18942 	bool (*suppress)(struct fib_rule *, int, struct fib_lookup_arg *);
18943 	int (*match)(struct fib_rule *, struct flowi *, int);
18944 	int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
18945 	int (*delete)(struct fib_rule *);
18946 	int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
18947 	int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
18948 	size_t (*nlmsg_payload)(struct fib_rule *);
18949 	void (*flush_cache)(struct fib_rules_ops *);
18950 	int nlgroup;
18951 	struct list_head rules_list;
18952 	struct module *owner;
18953 	struct net *fro_net;
18954 	struct callback_head rcu;
18955 };
18956 
18957 struct fib_notifier_ops {
18958 	int family;
18959 	struct list_head list;
18960 	unsigned int (*fib_seq_read)(struct net *);
18961 	int (*fib_dump)(struct net *, struct notifier_block *, struct netlink_ext_ack *);
18962 	struct module *owner;
18963 	struct callback_head rcu;
18964 };
18965 
18966 enum {
18967 	NAPI_STATE_SCHED = 0,
18968 	NAPI_STATE_MISSED = 1,
18969 	NAPI_STATE_DISABLE = 2,
18970 	NAPI_STATE_NPSVC = 3,
18971 	NAPI_STATE_LISTED = 4,
18972 	NAPI_STATE_NO_BUSY_POLL = 5,
18973 	NAPI_STATE_IN_BUSY_POLL = 6,
18974 	NAPI_STATE_PREFER_BUSY_POLL = 7,
18975 	NAPI_STATE_THREADED = 8,
18976 	NAPI_STATE_SCHED_THREADED = 9,
18977 };
18978 
18979 enum xps_map_type {
18980 	XPS_CPUS = 0,
18981 	XPS_RXQS = 1,
18982 	XPS_MAPS_MAX = 2,
18983 };
18984 
18985 enum bpf_xdp_mode {
18986 	XDP_MODE_SKB = 0,
18987 	XDP_MODE_DRV = 1,
18988 	XDP_MODE_HW = 2,
18989 	__MAX_XDP_MODE = 3,
18990 };
18991 
18992 struct neigh_parms {
18993 	possible_net_t net;
18994 	struct net_device *dev;
18995 	netdevice_tracker dev_tracker;
18996 	struct list_head list;
18997 	int (*neigh_setup)(struct neighbour *);
18998 	struct neigh_table *tbl;
18999 	void *sysctl_table;
19000 	int dead;
19001 	refcount_t refcnt;
19002 	struct callback_head callback_head;
19003 	int reachable_time;
19004 	u32 qlen;
19005 	int data[14];
19006 	long unsigned int data_state[1];
19007 };
19008 
19009 enum {
19010 	NETIF_MSG_DRV_BIT = 0,
19011 	NETIF_MSG_PROBE_BIT = 1,
19012 	NETIF_MSG_LINK_BIT = 2,
19013 	NETIF_MSG_TIMER_BIT = 3,
19014 	NETIF_MSG_IFDOWN_BIT = 4,
19015 	NETIF_MSG_IFUP_BIT = 5,
19016 	NETIF_MSG_RX_ERR_BIT = 6,
19017 	NETIF_MSG_TX_ERR_BIT = 7,
19018 	NETIF_MSG_TX_QUEUED_BIT = 8,
19019 	NETIF_MSG_INTR_BIT = 9,
19020 	NETIF_MSG_TX_DONE_BIT = 10,
19021 	NETIF_MSG_RX_STATUS_BIT = 11,
19022 	NETIF_MSG_PKTDATA_BIT = 12,
19023 	NETIF_MSG_HW_BIT = 13,
19024 	NETIF_MSG_WOL_BIT = 14,
19025 	NETIF_MSG_CLASS_COUNT = 15,
19026 };
19027 
19028 enum {
19029 	RTAX_UNSPEC = 0,
19030 	RTAX_LOCK = 1,
19031 	RTAX_MTU = 2,
19032 	RTAX_WINDOW = 3,
19033 	RTAX_RTT = 4,
19034 	RTAX_RTTVAR = 5,
19035 	RTAX_SSTHRESH = 6,
19036 	RTAX_CWND = 7,
19037 	RTAX_ADVMSS = 8,
19038 	RTAX_REORDERING = 9,
19039 	RTAX_HOPLIMIT = 10,
19040 	RTAX_INITCWND = 11,
19041 	RTAX_FEATURES = 12,
19042 	RTAX_RTO_MIN = 13,
19043 	RTAX_INITRWND = 14,
19044 	RTAX_QUICKACK = 15,
19045 	RTAX_CC_ALGO = 16,
19046 	RTAX_FASTOPEN_NO_COOKIE = 17,
19047 	__RTAX_MAX = 18,
19048 };
19049 
19050 enum {
19051 	NEIGH_VAR_MCAST_PROBES = 0,
19052 	NEIGH_VAR_UCAST_PROBES = 1,
19053 	NEIGH_VAR_APP_PROBES = 2,
19054 	NEIGH_VAR_MCAST_REPROBES = 3,
19055 	NEIGH_VAR_RETRANS_TIME = 4,
19056 	NEIGH_VAR_BASE_REACHABLE_TIME = 5,
19057 	NEIGH_VAR_DELAY_PROBE_TIME = 6,
19058 	NEIGH_VAR_INTERVAL_PROBE_TIME_MS = 7,
19059 	NEIGH_VAR_GC_STALETIME = 8,
19060 	NEIGH_VAR_QUEUE_LEN_BYTES = 9,
19061 	NEIGH_VAR_PROXY_QLEN = 10,
19062 	NEIGH_VAR_ANYCAST_DELAY = 11,
19063 	NEIGH_VAR_PROXY_DELAY = 12,
19064 	NEIGH_VAR_LOCKTIME = 13,
19065 	NEIGH_VAR_QUEUE_LEN = 14,
19066 	NEIGH_VAR_RETRANS_TIME_MS = 15,
19067 	NEIGH_VAR_BASE_REACHABLE_TIME_MS = 16,
19068 	NEIGH_VAR_GC_INTERVAL = 17,
19069 	NEIGH_VAR_GC_THRESH1 = 18,
19070 	NEIGH_VAR_GC_THRESH2 = 19,
19071 	NEIGH_VAR_GC_THRESH3 = 20,
19072 	NEIGH_VAR_MAX = 21,
19073 };
19074 
19075 struct pneigh_entry;
19076 
19077 struct neigh_statistics;
19078 
19079 struct neigh_hash_table;
19080 
19081 struct neigh_table {
19082 	int family;
19083 	unsigned int entry_size;
19084 	unsigned int key_len;
19085 	__be16 protocol;
19086 	__u32 (*hash)(const void *, const struct net_device *, __u32 *);
19087 	bool (*key_eq)(const struct neighbour *, const void *);
19088 	int (*constructor)(struct neighbour *);
19089 	int (*pconstructor)(struct pneigh_entry *);
19090 	void (*pdestructor)(struct pneigh_entry *);
19091 	void (*proxy_redo)(struct sk_buff *);
19092 	int (*is_multicast)(const void *);
19093 	bool (*allow_add)(const struct net_device *, struct netlink_ext_ack *);
19094 	char *id;
19095 	struct neigh_parms parms;
19096 	struct list_head parms_list;
19097 	int gc_interval;
19098 	int gc_thresh1;
19099 	int gc_thresh2;
19100 	int gc_thresh3;
19101 	long unsigned int last_flush;
19102 	struct delayed_work gc_work;
19103 	struct delayed_work managed_work;
19104 	struct timer_list proxy_timer;
19105 	struct sk_buff_head proxy_queue;
19106 	atomic_t entries;
19107 	atomic_t gc_entries;
19108 	struct list_head gc_list;
19109 	struct list_head managed_list;
19110 	rwlock_t lock;
19111 	long unsigned int last_rand;
19112 	struct neigh_statistics *stats;
19113 	struct neigh_hash_table *nht;
19114 	struct pneigh_entry **phash_buckets;
19115 };
19116 
19117 struct neigh_statistics {
19118 	long unsigned int allocs;
19119 	long unsigned int destroys;
19120 	long unsigned int hash_grows;
19121 	long unsigned int res_failed;
19122 	long unsigned int lookups;
19123 	long unsigned int hits;
19124 	long unsigned int rcv_probes_mcast;
19125 	long unsigned int rcv_probes_ucast;
19126 	long unsigned int periodic_gc_runs;
19127 	long unsigned int forced_gc_runs;
19128 	long unsigned int unres_discards;
19129 	long unsigned int table_fulls;
19130 };
19131 
19132 struct neigh_ops {
19133 	int family;
19134 	void (*solicit)(struct neighbour *, struct sk_buff *);
19135 	void (*error_report)(struct neighbour *, struct sk_buff *);
19136 	int (*output)(struct neighbour *, struct sk_buff *);
19137 	int (*connected_output)(struct neighbour *, struct sk_buff *);
19138 };
19139 
19140 struct pneigh_entry {
19141 	struct pneigh_entry *next;
19142 	possible_net_t net;
19143 	struct net_device *dev;
19144 	netdevice_tracker dev_tracker;
19145 	u32 flags;
19146 	u8 protocol;
19147 	u8 key[0];
19148 };
19149 
19150 struct neigh_hash_table {
19151 	struct neighbour **hash_buckets;
19152 	unsigned int hash_shift;
19153 	__u32 hash_rnd[4];
19154 	struct callback_head rcu;
19155 };
19156 
19157 enum {
19158 	TCP_ESTABLISHED = 1,
19159 	TCP_SYN_SENT = 2,
19160 	TCP_SYN_RECV = 3,
19161 	TCP_FIN_WAIT1 = 4,
19162 	TCP_FIN_WAIT2 = 5,
19163 	TCP_TIME_WAIT = 6,
19164 	TCP_CLOSE = 7,
19165 	TCP_CLOSE_WAIT = 8,
19166 	TCP_LAST_ACK = 9,
19167 	TCP_LISTEN = 10,
19168 	TCP_CLOSING = 11,
19169 	TCP_NEW_SYN_RECV = 12,
19170 	TCP_MAX_STATES = 13,
19171 };
19172 
19173 struct fib_rule_hdr {
19174 	__u8 family;
19175 	__u8 dst_len;
19176 	__u8 src_len;
19177 	__u8 tos;
19178 	__u8 table;
19179 	__u8 res1;
19180 	__u8 res2;
19181 	__u8 action;
19182 	__u32 flags;
19183 };
19184 
19185 struct fib_rule_port_range {
19186 	__u16 start;
19187 	__u16 end;
19188 };
19189 
19190 struct fib_kuid_range {
19191 	kuid_t start;
19192 	kuid_t end;
19193 };
19194 
19195 struct fib_rule {
19196 	struct list_head list;
19197 	int iifindex;
19198 	int oifindex;
19199 	u32 mark;
19200 	u32 mark_mask;
19201 	u32 flags;
19202 	u32 table;
19203 	u8 action;
19204 	u8 l3mdev;
19205 	u8 proto;
19206 	u8 ip_proto;
19207 	u32 target;
19208 	__be64 tun_id;
19209 	struct fib_rule *ctarget;
19210 	struct net *fr_net;
19211 	refcount_t refcnt;
19212 	u32 pref;
19213 	int suppress_ifgroup;
19214 	int suppress_prefixlen;
19215 	char iifname[16];
19216 	char oifname[16];
19217 	struct fib_kuid_range uid_range;
19218 	struct fib_rule_port_range sport_range;
19219 	struct fib_rule_port_range dport_range;
19220 	struct callback_head rcu;
19221 };
19222 
19223 struct fib_lookup_arg {
19224 	void *lookup_ptr;
19225 	const void *lookup_data;
19226 	void *result;
19227 	struct fib_rule *rule;
19228 	u32 table;
19229 	int flags;
19230 };
19231 
19232 struct smc_hashinfo;
19233 
19234 struct sk_psock;
19235 
19236 struct request_sock_ops;
19237 
19238 struct timewait_sock_ops;
19239 
19240 struct raw_hashinfo;
19241 
19242 struct proto {
19243 	void (*close)(struct sock *, long int);
19244 	int (*pre_connect)(struct sock *, struct sockaddr *, int);
19245 	int (*connect)(struct sock *, struct sockaddr *, int);
19246 	int (*disconnect)(struct sock *, int);
19247 	struct sock * (*accept)(struct sock *, int, int *, bool);
19248 	int (*ioctl)(struct sock *, int, long unsigned int);
19249 	int (*init)(struct sock *);
19250 	void (*destroy)(struct sock *);
19251 	void (*shutdown)(struct sock *, int);
19252 	int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int);
19253 	int (*getsockopt)(struct sock *, int, int, char *, int *);
19254 	void (*keepalive)(struct sock *, int);
19255 	int (*sendmsg)(struct sock *, struct msghdr *, size_t);
19256 	int (*recvmsg)(struct sock *, struct msghdr *, size_t, int, int *);
19257 	int (*sendpage)(struct sock *, struct page *, int, size_t, int);
19258 	int (*bind)(struct sock *, struct sockaddr *, int);
19259 	int (*bind_add)(struct sock *, struct sockaddr *, int);
19260 	int (*backlog_rcv)(struct sock *, struct sk_buff *);
19261 	bool (*bpf_bypass_getsockopt)(int, int);
19262 	void (*release_cb)(struct sock *);
19263 	int (*hash)(struct sock *);
19264 	void (*unhash)(struct sock *);
19265 	void (*rehash)(struct sock *);
19266 	int (*get_port)(struct sock *, short unsigned int);
19267 	void (*put_port)(struct sock *);
19268 	int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool);
19269 	unsigned int inuse_idx;
19270 	bool (*stream_memory_free)(const struct sock *, int);
19271 	bool (*sock_is_readable)(struct sock *);
19272 	void (*enter_memory_pressure)(struct sock *);
19273 	void (*leave_memory_pressure)(struct sock *);
19274 	atomic_long_t *memory_allocated;
19275 	int *per_cpu_fw_alloc;
19276 	struct percpu_counter *sockets_allocated;
19277 	long unsigned int *memory_pressure;
19278 	long int *sysctl_mem;
19279 	int *sysctl_wmem;
19280 	int *sysctl_rmem;
19281 	u32 sysctl_wmem_offset;
19282 	u32 sysctl_rmem_offset;
19283 	int max_header;
19284 	bool no_autobind;
19285 	struct kmem_cache *slab;
19286 	unsigned int obj_size;
19287 	slab_flags_t slab_flags;
19288 	unsigned int useroffset;
19289 	unsigned int usersize;
19290 	unsigned int *orphan_count;
19291 	struct request_sock_ops *rsk_prot;
19292 	struct timewait_sock_ops *twsk_prot;
19293 	union {
19294 		struct inet_hashinfo *hashinfo;
19295 		struct udp_table *udp_table;
19296 		struct raw_hashinfo *raw_hash;
19297 		struct smc_hashinfo *smc_hash;
19298 	} h;
19299 	struct module *owner;
19300 	char name[32];
19301 	struct list_head node;
19302 	int (*diag_destroy)(struct sock *, int);
19303 };
19304 
19305 struct bpf_storage_buffer {
19306 	struct callback_head rcu;
19307 	char data[0];
19308 };
19309 
19310 enum dynevent_type {
19311 	DYNEVENT_TYPE_SYNTH = 1,
19312 	DYNEVENT_TYPE_KPROBE = 2,
19313 	DYNEVENT_TYPE_NONE = 3,
19314 };
19315 
19316 struct dynevent_cmd;
19317 
19318 typedef int (*dynevent_create_fn_t)(struct dynevent_cmd *);
19319 
19320 struct dynevent_cmd {
19321 	struct seq_buf seq;
19322 	const char *event_name;
19323 	unsigned int n_fields;
19324 	enum dynevent_type type;
19325 	dynevent_create_fn_t run_command;
19326 	void *private_data;
19327 };
19328 
19329 struct kprobe_trace_entry_head {
19330 	struct trace_entry ent;
19331 	long unsigned int ip;
19332 };
19333 
19334 struct kretprobe_trace_entry_head {
19335 	struct trace_entry ent;
19336 	long unsigned int func;
19337 	long unsigned int ret_ip;
19338 };
19339 
19340 typedef int (*dynevent_check_arg_fn_t)(void *);
19341 
19342 struct dynevent_arg {
19343 	const char *str;
19344 	char separator;
19345 };
19346 
19347 struct freelist_node {
19348 	atomic_t refs;
19349 	struct freelist_node *next;
19350 };
19351 
19352 struct freelist_head {
19353 	struct freelist_node *head;
19354 };
19355 
19356 struct kretprobe_instance;
19357 
19358 typedef int (*kretprobe_handler_t)(struct kretprobe_instance *, struct pt_regs *);
19359 
19360 struct kretprobe_holder;
19361 
19362 struct kretprobe_instance {
19363 	union {
19364 		struct freelist_node freelist;
19365 		struct callback_head rcu;
19366 	};
19367 	struct llist_node llist;
19368 	struct kretprobe_holder *rph;
19369 	kprobe_opcode_t *ret_addr;
19370 	void *fp;
19371 	char data[0];
19372 };
19373 
19374 struct kretprobe;
19375 
19376 struct kretprobe_holder {
19377 	struct kretprobe *rp;
19378 	refcount_t ref;
19379 };
19380 
19381 struct kretprobe {
19382 	struct kprobe kp;
19383 	kretprobe_handler_t handler;
19384 	kretprobe_handler_t entry_handler;
19385 	int maxactive;
19386 	int nmissed;
19387 	size_t data_size;
19388 	struct freelist_head freelist;
19389 	struct kretprobe_holder *rph;
19390 };
19391 
19392 struct trace_kprobe {
19393 	struct dyn_event devent;
19394 	struct kretprobe rp;
19395 	long unsigned int *nhit;
19396 	const char *symbol;
19397 	struct trace_probe tp;
19398 };
19399 
19400 typedef __u16 __le16;
19401 
19402 typedef __u64 __le64;
19403 
19404 enum {
19405 	BPF_REG_0 = 0,
19406 	BPF_REG_1 = 1,
19407 	BPF_REG_2 = 2,
19408 	BPF_REG_3 = 3,
19409 	BPF_REG_4 = 4,
19410 	BPF_REG_5 = 5,
19411 	BPF_REG_6 = 6,
19412 	BPF_REG_7 = 7,
19413 	BPF_REG_8 = 8,
19414 	BPF_REG_9 = 9,
19415 	BPF_REG_10 = 10,
19416 	__MAX_BPF_REG = 11,
19417 };
19418 
19419 enum bpf_func_id {
19420 	BPF_FUNC_unspec = 0,
19421 	BPF_FUNC_map_lookup_elem = 1,
19422 	BPF_FUNC_map_update_elem = 2,
19423 	BPF_FUNC_map_delete_elem = 3,
19424 	BPF_FUNC_probe_read = 4,
19425 	BPF_FUNC_ktime_get_ns = 5,
19426 	BPF_FUNC_trace_printk = 6,
19427 	BPF_FUNC_get_prandom_u32 = 7,
19428 	BPF_FUNC_get_smp_processor_id = 8,
19429 	BPF_FUNC_skb_store_bytes = 9,
19430 	BPF_FUNC_l3_csum_replace = 10,
19431 	BPF_FUNC_l4_csum_replace = 11,
19432 	BPF_FUNC_tail_call = 12,
19433 	BPF_FUNC_clone_redirect = 13,
19434 	BPF_FUNC_get_current_pid_tgid = 14,
19435 	BPF_FUNC_get_current_uid_gid = 15,
19436 	BPF_FUNC_get_current_comm = 16,
19437 	BPF_FUNC_get_cgroup_classid = 17,
19438 	BPF_FUNC_skb_vlan_push = 18,
19439 	BPF_FUNC_skb_vlan_pop = 19,
19440 	BPF_FUNC_skb_get_tunnel_key = 20,
19441 	BPF_FUNC_skb_set_tunnel_key = 21,
19442 	BPF_FUNC_perf_event_read = 22,
19443 	BPF_FUNC_redirect = 23,
19444 	BPF_FUNC_get_route_realm = 24,
19445 	BPF_FUNC_perf_event_output = 25,
19446 	BPF_FUNC_skb_load_bytes = 26,
19447 	BPF_FUNC_get_stackid = 27,
19448 	BPF_FUNC_csum_diff = 28,
19449 	BPF_FUNC_skb_get_tunnel_opt = 29,
19450 	BPF_FUNC_skb_set_tunnel_opt = 30,
19451 	BPF_FUNC_skb_change_proto = 31,
19452 	BPF_FUNC_skb_change_type = 32,
19453 	BPF_FUNC_skb_under_cgroup = 33,
19454 	BPF_FUNC_get_hash_recalc = 34,
19455 	BPF_FUNC_get_current_task = 35,
19456 	BPF_FUNC_probe_write_user = 36,
19457 	BPF_FUNC_current_task_under_cgroup = 37,
19458 	BPF_FUNC_skb_change_tail = 38,
19459 	BPF_FUNC_skb_pull_data = 39,
19460 	BPF_FUNC_csum_update = 40,
19461 	BPF_FUNC_set_hash_invalid = 41,
19462 	BPF_FUNC_get_numa_node_id = 42,
19463 	BPF_FUNC_skb_change_head = 43,
19464 	BPF_FUNC_xdp_adjust_head = 44,
19465 	BPF_FUNC_probe_read_str = 45,
19466 	BPF_FUNC_get_socket_cookie = 46,
19467 	BPF_FUNC_get_socket_uid = 47,
19468 	BPF_FUNC_set_hash = 48,
19469 	BPF_FUNC_setsockopt = 49,
19470 	BPF_FUNC_skb_adjust_room = 50,
19471 	BPF_FUNC_redirect_map = 51,
19472 	BPF_FUNC_sk_redirect_map = 52,
19473 	BPF_FUNC_sock_map_update = 53,
19474 	BPF_FUNC_xdp_adjust_meta = 54,
19475 	BPF_FUNC_perf_event_read_value = 55,
19476 	BPF_FUNC_perf_prog_read_value = 56,
19477 	BPF_FUNC_getsockopt = 57,
19478 	BPF_FUNC_override_return = 58,
19479 	BPF_FUNC_sock_ops_cb_flags_set = 59,
19480 	BPF_FUNC_msg_redirect_map = 60,
19481 	BPF_FUNC_msg_apply_bytes = 61,
19482 	BPF_FUNC_msg_cork_bytes = 62,
19483 	BPF_FUNC_msg_pull_data = 63,
19484 	BPF_FUNC_bind = 64,
19485 	BPF_FUNC_xdp_adjust_tail = 65,
19486 	BPF_FUNC_skb_get_xfrm_state = 66,
19487 	BPF_FUNC_get_stack = 67,
19488 	BPF_FUNC_skb_load_bytes_relative = 68,
19489 	BPF_FUNC_fib_lookup = 69,
19490 	BPF_FUNC_sock_hash_update = 70,
19491 	BPF_FUNC_msg_redirect_hash = 71,
19492 	BPF_FUNC_sk_redirect_hash = 72,
19493 	BPF_FUNC_lwt_push_encap = 73,
19494 	BPF_FUNC_lwt_seg6_store_bytes = 74,
19495 	BPF_FUNC_lwt_seg6_adjust_srh = 75,
19496 	BPF_FUNC_lwt_seg6_action = 76,
19497 	BPF_FUNC_rc_repeat = 77,
19498 	BPF_FUNC_rc_keydown = 78,
19499 	BPF_FUNC_skb_cgroup_id = 79,
19500 	BPF_FUNC_get_current_cgroup_id = 80,
19501 	BPF_FUNC_get_local_storage = 81,
19502 	BPF_FUNC_sk_select_reuseport = 82,
19503 	BPF_FUNC_skb_ancestor_cgroup_id = 83,
19504 	BPF_FUNC_sk_lookup_tcp = 84,
19505 	BPF_FUNC_sk_lookup_udp = 85,
19506 	BPF_FUNC_sk_release = 86,
19507 	BPF_FUNC_map_push_elem = 87,
19508 	BPF_FUNC_map_pop_elem = 88,
19509 	BPF_FUNC_map_peek_elem = 89,
19510 	BPF_FUNC_msg_push_data = 90,
19511 	BPF_FUNC_msg_pop_data = 91,
19512 	BPF_FUNC_rc_pointer_rel = 92,
19513 	BPF_FUNC_spin_lock = 93,
19514 	BPF_FUNC_spin_unlock = 94,
19515 	BPF_FUNC_sk_fullsock = 95,
19516 	BPF_FUNC_tcp_sock = 96,
19517 	BPF_FUNC_skb_ecn_set_ce = 97,
19518 	BPF_FUNC_get_listener_sock = 98,
19519 	BPF_FUNC_skc_lookup_tcp = 99,
19520 	BPF_FUNC_tcp_check_syncookie = 100,
19521 	BPF_FUNC_sysctl_get_name = 101,
19522 	BPF_FUNC_sysctl_get_current_value = 102,
19523 	BPF_FUNC_sysctl_get_new_value = 103,
19524 	BPF_FUNC_sysctl_set_new_value = 104,
19525 	BPF_FUNC_strtol = 105,
19526 	BPF_FUNC_strtoul = 106,
19527 	BPF_FUNC_sk_storage_get = 107,
19528 	BPF_FUNC_sk_storage_delete = 108,
19529 	BPF_FUNC_send_signal = 109,
19530 	BPF_FUNC_tcp_gen_syncookie = 110,
19531 	BPF_FUNC_skb_output = 111,
19532 	BPF_FUNC_probe_read_user = 112,
19533 	BPF_FUNC_probe_read_kernel = 113,
19534 	BPF_FUNC_probe_read_user_str = 114,
19535 	BPF_FUNC_probe_read_kernel_str = 115,
19536 	BPF_FUNC_tcp_send_ack = 116,
19537 	BPF_FUNC_send_signal_thread = 117,
19538 	BPF_FUNC_jiffies64 = 118,
19539 	BPF_FUNC_read_branch_records = 119,
19540 	BPF_FUNC_get_ns_current_pid_tgid = 120,
19541 	BPF_FUNC_xdp_output = 121,
19542 	BPF_FUNC_get_netns_cookie = 122,
19543 	BPF_FUNC_get_current_ancestor_cgroup_id = 123,
19544 	BPF_FUNC_sk_assign = 124,
19545 	BPF_FUNC_ktime_get_boot_ns = 125,
19546 	BPF_FUNC_seq_printf = 126,
19547 	BPF_FUNC_seq_write = 127,
19548 	BPF_FUNC_sk_cgroup_id = 128,
19549 	BPF_FUNC_sk_ancestor_cgroup_id = 129,
19550 	BPF_FUNC_ringbuf_output = 130,
19551 	BPF_FUNC_ringbuf_reserve = 131,
19552 	BPF_FUNC_ringbuf_submit = 132,
19553 	BPF_FUNC_ringbuf_discard = 133,
19554 	BPF_FUNC_ringbuf_query = 134,
19555 	BPF_FUNC_csum_level = 135,
19556 	BPF_FUNC_skc_to_tcp6_sock = 136,
19557 	BPF_FUNC_skc_to_tcp_sock = 137,
19558 	BPF_FUNC_skc_to_tcp_timewait_sock = 138,
19559 	BPF_FUNC_skc_to_tcp_request_sock = 139,
19560 	BPF_FUNC_skc_to_udp6_sock = 140,
19561 	BPF_FUNC_get_task_stack = 141,
19562 	BPF_FUNC_load_hdr_opt = 142,
19563 	BPF_FUNC_store_hdr_opt = 143,
19564 	BPF_FUNC_reserve_hdr_opt = 144,
19565 	BPF_FUNC_inode_storage_get = 145,
19566 	BPF_FUNC_inode_storage_delete = 146,
19567 	BPF_FUNC_d_path = 147,
19568 	BPF_FUNC_copy_from_user = 148,
19569 	BPF_FUNC_snprintf_btf = 149,
19570 	BPF_FUNC_seq_printf_btf = 150,
19571 	BPF_FUNC_skb_cgroup_classid = 151,
19572 	BPF_FUNC_redirect_neigh = 152,
19573 	BPF_FUNC_per_cpu_ptr = 153,
19574 	BPF_FUNC_this_cpu_ptr = 154,
19575 	BPF_FUNC_redirect_peer = 155,
19576 	BPF_FUNC_task_storage_get = 156,
19577 	BPF_FUNC_task_storage_delete = 157,
19578 	BPF_FUNC_get_current_task_btf = 158,
19579 	BPF_FUNC_bprm_opts_set = 159,
19580 	BPF_FUNC_ktime_get_coarse_ns = 160,
19581 	BPF_FUNC_ima_inode_hash = 161,
19582 	BPF_FUNC_sock_from_file = 162,
19583 	BPF_FUNC_check_mtu = 163,
19584 	BPF_FUNC_for_each_map_elem = 164,
19585 	BPF_FUNC_snprintf = 165,
19586 	BPF_FUNC_sys_bpf = 166,
19587 	BPF_FUNC_btf_find_by_name_kind = 167,
19588 	BPF_FUNC_sys_close = 168,
19589 	BPF_FUNC_timer_init = 169,
19590 	BPF_FUNC_timer_set_callback = 170,
19591 	BPF_FUNC_timer_start = 171,
19592 	BPF_FUNC_timer_cancel = 172,
19593 	BPF_FUNC_get_func_ip = 173,
19594 	BPF_FUNC_get_attach_cookie = 174,
19595 	BPF_FUNC_task_pt_regs = 175,
19596 	BPF_FUNC_get_branch_snapshot = 176,
19597 	BPF_FUNC_trace_vprintk = 177,
19598 	BPF_FUNC_skc_to_unix_sock = 178,
19599 	BPF_FUNC_kallsyms_lookup_name = 179,
19600 	BPF_FUNC_find_vma = 180,
19601 	BPF_FUNC_loop = 181,
19602 	BPF_FUNC_strncmp = 182,
19603 	BPF_FUNC_get_func_arg = 183,
19604 	BPF_FUNC_get_func_ret = 184,
19605 	BPF_FUNC_get_func_arg_cnt = 185,
19606 	BPF_FUNC_get_retval = 186,
19607 	BPF_FUNC_set_retval = 187,
19608 	BPF_FUNC_xdp_get_buff_len = 188,
19609 	BPF_FUNC_xdp_load_bytes = 189,
19610 	BPF_FUNC_xdp_store_bytes = 190,
19611 	BPF_FUNC_copy_from_user_task = 191,
19612 	BPF_FUNC_skb_set_tstamp = 192,
19613 	BPF_FUNC_ima_file_hash = 193,
19614 	BPF_FUNC_kptr_xchg = 194,
19615 	BPF_FUNC_map_lookup_percpu_elem = 195,
19616 	BPF_FUNC_skc_to_mptcp_sock = 196,
19617 	BPF_FUNC_dynptr_from_mem = 197,
19618 	BPF_FUNC_ringbuf_reserve_dynptr = 198,
19619 	BPF_FUNC_ringbuf_submit_dynptr = 199,
19620 	BPF_FUNC_ringbuf_discard_dynptr = 200,
19621 	BPF_FUNC_dynptr_read = 201,
19622 	BPF_FUNC_dynptr_write = 202,
19623 	BPF_FUNC_dynptr_data = 203,
19624 	BPF_FUNC_tcp_raw_gen_syncookie_ipv4 = 204,
19625 	BPF_FUNC_tcp_raw_gen_syncookie_ipv6 = 205,
19626 	BPF_FUNC_tcp_raw_check_syncookie_ipv4 = 206,
19627 	BPF_FUNC_tcp_raw_check_syncookie_ipv6 = 207,
19628 	BPF_FUNC_ktime_get_tai_ns = 208,
19629 	BPF_FUNC_user_ringbuf_drain = 209,
19630 	BPF_FUNC_cgrp_storage_get = 210,
19631 	BPF_FUNC_cgrp_storage_delete = 211,
19632 	__BPF_FUNC_MAX_ID = 212,
19633 };
19634 
19635 enum xdp_action {
19636 	XDP_ABORTED = 0,
19637 	XDP_DROP = 1,
19638 	XDP_PASS = 2,
19639 	XDP_TX = 3,
19640 	XDP_REDIRECT = 4,
19641 };
19642 
19643 struct latch_tree_ops {
19644 	bool (*less)(struct latch_tree_node *, struct latch_tree_node *);
19645 	int (*comp)(void *, struct latch_tree_node *);
19646 };
19647 
19648 struct rnd_state {
19649 	__u32 s1;
19650 	__u32 s2;
19651 	__u32 s3;
19652 	__u32 s4;
19653 };
19654 
19655 struct rhash_lock_head;
19656 
19657 struct bucket_table {
19658 	unsigned int size;
19659 	unsigned int nest;
19660 	u32 hash_rnd;
19661 	struct list_head walkers;
19662 	struct callback_head rcu;
19663 	struct bucket_table *future_tbl;
19664 	struct lockdep_map dep_map;
19665 	long: 64;
19666 	struct rhash_lock_head *buckets[0];
19667 };
19668 
19669 typedef sockptr_t bpfptr_t;
19670 
19671 struct btf_struct_meta {
19672 	u32 btf_id;
19673 	struct btf_record *record;
19674 	struct btf_field_offs *field_offs;
19675 };
19676 
19677 struct bpf_mem_caches;
19678 
19679 struct bpf_mem_cache;
19680 
19681 struct bpf_mem_alloc {
19682 	struct bpf_mem_caches *caches;
19683 	struct bpf_mem_cache *cache;
19684 	struct work_struct work;
19685 };
19686 
19687 struct bpf_verifier_log {
19688 	u32 level;
19689 	char kbuf[1024];
19690 	char *ubuf;
19691 	u32 len_used;
19692 	u32 len_total;
19693 };
19694 
19695 struct bpf_subprog_info {
19696 	u32 start;
19697 	u32 linfo_idx;
19698 	u16 stack_depth;
19699 	bool has_tail_call;
19700 	bool tail_call_reachable;
19701 	bool has_ld_abs;
19702 	bool is_async_cb;
19703 };
19704 
19705 struct bpf_id_pair {
19706 	u32 old;
19707 	u32 cur;
19708 };
19709 
19710 struct bpf_verifier_ops;
19711 
19712 struct bpf_verifier_stack_elem;
19713 
19714 struct bpf_verifier_state;
19715 
19716 struct bpf_verifier_state_list;
19717 
19718 struct bpf_insn_aux_data;
19719 
19720 struct bpf_verifier_env {
19721 	u32 insn_idx;
19722 	u32 prev_insn_idx;
19723 	struct bpf_prog *prog;
19724 	const struct bpf_verifier_ops *ops;
19725 	struct bpf_verifier_stack_elem *head;
19726 	int stack_size;
19727 	bool strict_alignment;
19728 	bool test_state_freq;
19729 	struct bpf_verifier_state *cur_state;
19730 	struct bpf_verifier_state_list **explored_states;
19731 	struct bpf_verifier_state_list *free_list;
19732 	struct bpf_map *used_maps[64];
19733 	struct btf_mod_pair used_btfs[64];
19734 	u32 used_map_cnt;
19735 	u32 used_btf_cnt;
19736 	u32 id_gen;
19737 	bool explore_alu_limits;
19738 	bool allow_ptr_leaks;
19739 	bool allow_uninit_stack;
19740 	bool bpf_capable;
19741 	bool bypass_spec_v1;
19742 	bool bypass_spec_v4;
19743 	bool seen_direct_write;
19744 	bool rcu_tag_supported;
19745 	struct bpf_insn_aux_data *insn_aux_data;
19746 	const struct bpf_line_info *prev_linfo;
19747 	struct bpf_verifier_log log;
19748 	struct bpf_subprog_info subprog_info[257];
19749 	struct bpf_id_pair idmap_scratch[600];
19750 	struct {
19751 		int *insn_state;
19752 		int *insn_stack;
19753 		int cur_stack;
19754 	} cfg;
19755 	u32 pass_cnt;
19756 	u32 subprog_cnt;
19757 	u32 prev_insn_processed;
19758 	u32 insn_processed;
19759 	u32 prev_jmps_processed;
19760 	u32 jmps_processed;
19761 	u64 verification_time;
19762 	u32 max_states_per_insn;
19763 	u32 total_states;
19764 	u32 peak_states;
19765 	u32 longest_mark_read_walk;
19766 	bpfptr_t fd_array;
19767 	u32 scratched_regs;
19768 	u64 scratched_stack_slots;
19769 	u32 prev_log_len;
19770 	u32 prev_insn_print_len;
19771 	char type_str_buf[128];
19772 };
19773 
19774 enum bpf_dynptr_type {
19775 	BPF_DYNPTR_TYPE_INVALID = 0,
19776 	BPF_DYNPTR_TYPE_LOCAL = 1,
19777 	BPF_DYNPTR_TYPE_RINGBUF = 2,
19778 };
19779 
19780 struct tnum {
19781 	u64 value;
19782 	u64 mask;
19783 };
19784 
19785 enum bpf_reg_liveness {
19786 	REG_LIVE_NONE = 0,
19787 	REG_LIVE_READ32 = 1,
19788 	REG_LIVE_READ64 = 2,
19789 	REG_LIVE_READ = 3,
19790 	REG_LIVE_WRITTEN = 4,
19791 	REG_LIVE_DONE = 8,
19792 };
19793 
19794 struct bpf_reg_state {
19795 	enum bpf_reg_type type;
19796 	s32 off;
19797 	union {
19798 		int range;
19799 		struct {
19800 			struct bpf_map *map_ptr;
19801 			u32 map_uid;
19802 		};
19803 		struct {
19804 			struct btf *btf;
19805 			u32 btf_id;
19806 		};
19807 		u32 mem_size;
19808 		struct {
19809 			enum bpf_dynptr_type type;
19810 			bool first_slot;
19811 		} dynptr;
19812 		struct {
19813 			long unsigned int raw1;
19814 			long unsigned int raw2;
19815 		} raw;
19816 		u32 subprogno;
19817 	};
19818 	u32 id;
19819 	u32 ref_obj_id;
19820 	struct tnum var_off;
19821 	s64 smin_value;
19822 	s64 smax_value;
19823 	u64 umin_value;
19824 	u64 umax_value;
19825 	s32 s32_min_value;
19826 	s32 s32_max_value;
19827 	u32 u32_min_value;
19828 	u32 u32_max_value;
19829 	struct bpf_reg_state *parent;
19830 	u32 frameno;
19831 	s32 subreg_def;
19832 	enum bpf_reg_liveness live;
19833 	bool precise;
19834 };
19835 
19836 struct bpf_reference_state;
19837 
19838 struct bpf_stack_state;
19839 
19840 struct bpf_func_state {
19841 	struct bpf_reg_state regs[11];
19842 	int callsite;
19843 	u32 frameno;
19844 	u32 subprogno;
19845 	u32 async_entry_cnt;
19846 	bool in_callback_fn;
19847 	struct tnum callback_ret_range;
19848 	bool in_async_callback_fn;
19849 	int acquired_refs;
19850 	struct bpf_reference_state *refs;
19851 	int allocated_stack;
19852 	struct bpf_stack_state *stack;
19853 };
19854 
19855 struct bpf_func_proto {
19856 	u64 (*func)(u64, u64, u64, u64, u64);
19857 	bool gpl_only;
19858 	bool pkt_access;
19859 	bool might_sleep;
19860 	enum bpf_return_type ret_type;
19861 	union {
19862 		struct {
19863 			enum bpf_arg_type arg1_type;
19864 			enum bpf_arg_type arg2_type;
19865 			enum bpf_arg_type arg3_type;
19866 			enum bpf_arg_type arg4_type;
19867 			enum bpf_arg_type arg5_type;
19868 		};
19869 		enum bpf_arg_type arg_type[5];
19870 	};
19871 	union {
19872 		struct {
19873 			u32 *arg1_btf_id;
19874 			u32 *arg2_btf_id;
19875 			u32 *arg3_btf_id;
19876 			u32 *arg4_btf_id;
19877 			u32 *arg5_btf_id;
19878 		};
19879 		u32 *arg_btf_id[5];
19880 		struct {
19881 			size_t arg1_size;
19882 			size_t arg2_size;
19883 			size_t arg3_size;
19884 			size_t arg4_size;
19885 			size_t arg5_size;
19886 		};
19887 		size_t arg_size[5];
19888 	};
19889 	int *ret_btf_id;
19890 	bool (*allowed)(const struct bpf_prog *);
19891 };
19892 
19893 enum bpf_access_type {
19894 	BPF_READ = 1,
19895 	BPF_WRITE = 2,
19896 };
19897 
19898 struct bpf_insn_access_aux {
19899 	enum bpf_reg_type reg_type;
19900 	union {
19901 		int ctx_field_size;
19902 		struct {
19903 			struct btf *btf;
19904 			u32 btf_id;
19905 		};
19906 	};
19907 	struct bpf_verifier_log *log;
19908 };
19909 
19910 struct bpf_verifier_ops {
19911 	const struct bpf_func_proto * (*get_func_proto)(enum bpf_func_id, const struct bpf_prog *);
19912 	bool (*is_valid_access)(int, int, enum bpf_access_type, const struct bpf_prog *, struct bpf_insn_access_aux *);
19913 	int (*gen_prologue)(struct bpf_insn *, bool, const struct bpf_prog *);
19914 	int (*gen_ld_abs)(const struct bpf_insn *, struct bpf_insn *);
19915 	u32 (*convert_ctx_access)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *);
19916 	int (*btf_struct_access)(struct bpf_verifier_log *, const struct bpf_reg_state *, int, int, enum bpf_access_type, u32 *, enum bpf_type_flag *);
19917 };
19918 
19919 enum bpf_jit_poke_reason {
19920 	BPF_POKE_REASON_TAIL_CALL = 0,
19921 };
19922 
19923 struct bpf_array_aux {
19924 	struct list_head poke_progs;
19925 	struct bpf_map *map;
19926 	struct mutex poke_mutex;
19927 	struct work_struct work;
19928 };
19929 
19930 struct bpf_array {
19931 	struct bpf_map map;
19932 	u32 elem_size;
19933 	u32 index_mask;
19934 	struct bpf_array_aux *aux;
19935 	union {
19936 		char value[0];
19937 		void *ptrs[0];
19938 		void *pptrs[0];
19939 	};
19940 	long: 64;
19941 	long: 64;
19942 	long: 64;
19943 	long: 64;
19944 	long: 64;
19945 	long: 64;
19946 };
19947 
19948 typedef long unsigned int (*bpf_ctx_copy_t)(void *, const void *, long unsigned int, long unsigned int);
19949 
19950 struct bpf_empty_prog_array {
19951 	struct bpf_prog_array hdr;
19952 	struct bpf_prog *null_prog;
19953 };
19954 
19955 enum bpf_text_poke_type {
19956 	BPF_MOD_CALL = 0,
19957 	BPF_MOD_JUMP = 1,
19958 };
19959 
19960 enum xdp_mem_type {
19961 	MEM_TYPE_PAGE_SHARED = 0,
19962 	MEM_TYPE_PAGE_ORDER0 = 1,
19963 	MEM_TYPE_PAGE_POOL = 2,
19964 	MEM_TYPE_XSK_BUFF_POOL = 3,
19965 	MEM_TYPE_MAX = 4,
19966 };
19967 
19968 struct xdp_cpumap_stats {
19969 	unsigned int redirect;
19970 	unsigned int pass;
19971 	unsigned int drop;
19972 };
19973 
19974 struct bpf_binary_header {
19975 	u32 size;
19976 	int: 32;
19977 	u8 image[0];
19978 };
19979 
19980 typedef void (*bpf_jit_fill_hole_t)(void *, unsigned int);
19981 
19982 struct bpf_stack_state {
19983 	struct bpf_reg_state spilled_ptr;
19984 	u8 slot_type[8];
19985 };
19986 
19987 struct bpf_reference_state {
19988 	int id;
19989 	int insn_idx;
19990 	int callback_ref;
19991 	bool release_on_unlock;
19992 };
19993 
19994 struct bpf_idx_pair {
19995 	u32 prev_idx;
19996 	u32 idx;
19997 };
19998 
19999 struct bpf_verifier_state {
20000 	struct bpf_func_state *frame[8];
20001 	struct bpf_verifier_state *parent;
20002 	u32 branches;
20003 	u32 insn_idx;
20004 	u32 curframe;
20005 	struct {
20006 		void *ptr;
20007 		u32 id;
20008 	} active_lock;
20009 	bool speculative;
20010 	bool active_rcu_lock;
20011 	u32 first_insn_idx;
20012 	u32 last_insn_idx;
20013 	struct bpf_idx_pair *jmp_history;
20014 	u32 jmp_history_cnt;
20015 };
20016 
20017 struct bpf_verifier_state_list {
20018 	struct bpf_verifier_state state;
20019 	struct bpf_verifier_state_list *next;
20020 	int miss_cnt;
20021 	int hit_cnt;
20022 };
20023 
20024 struct bpf_loop_inline_state {
20025 	unsigned int initialized: 1;
20026 	unsigned int fit_for_inline: 1;
20027 	u32 callback_subprogno;
20028 };
20029 
20030 struct bpf_insn_aux_data {
20031 	union {
20032 		enum bpf_reg_type ptr_type;
20033 		long unsigned int map_ptr_state;
20034 		s32 call_imm;
20035 		u32 alu_limit;
20036 		struct {
20037 			u32 map_index;
20038 			u32 map_off;
20039 		};
20040 		struct {
20041 			enum bpf_reg_type reg_type;
20042 			union {
20043 				struct {
20044 					struct btf *btf;
20045 					u32 btf_id;
20046 				};
20047 				u32 mem_size;
20048 			};
20049 		} btf_var;
20050 		struct bpf_loop_inline_state loop_inline_state;
20051 	};
20052 	u64 obj_new_size;
20053 	struct btf_struct_meta *kptr_struct_meta;
20054 	u64 map_key_state;
20055 	int ctx_field_size;
20056 	u32 seen;
20057 	bool sanitize_stack_spill;
20058 	bool zext_dst;
20059 	bool storage_get_func_atomic;
20060 	u8 alu_state;
20061 	unsigned int orig_idx;
20062 	bool prune_point;
20063 	bool jmp_point;
20064 };
20065 
20066 struct bpf_prog_pack {
20067 	struct list_head list;
20068 	void *ptr;
20069 	long unsigned int bitmap[0];
20070 };
20071 
20072 struct bpf_prog_dummy {
20073 	struct bpf_prog prog;
20074 };
20075 
20076 typedef u64 (*btf_bpf_user_rnd_u32)();
20077 
20078 typedef u64 (*btf_bpf_get_raw_cpu_id)();
20079 
20080 struct _bpf_dtab_netdev {
20081 	struct net_device *dev;
20082 };
20083 
20084 struct rhash_lock_head {};
20085 
20086 struct xdp_mem_allocator {
20087 	struct xdp_mem_info mem;
20088 	union {
20089 		void *allocator;
20090 		struct page_pool *page_pool;
20091 	};
20092 	struct rhash_head node;
20093 	struct callback_head rcu;
20094 };
20095 
20096 struct trace_event_raw_xdp_exception {
20097 	struct trace_entry ent;
20098 	int prog_id;
20099 	u32 act;
20100 	int ifindex;
20101 	char __data[0];
20102 };
20103 
20104 struct trace_event_raw_xdp_bulk_tx {
20105 	struct trace_entry ent;
20106 	int ifindex;
20107 	u32 act;
20108 	int drops;
20109 	int sent;
20110 	int err;
20111 	char __data[0];
20112 };
20113 
20114 struct trace_event_raw_xdp_redirect_template {
20115 	struct trace_entry ent;
20116 	int prog_id;
20117 	u32 act;
20118 	int ifindex;
20119 	int err;
20120 	int to_ifindex;
20121 	u32 map_id;
20122 	int map_index;
20123 	char __data[0];
20124 };
20125 
20126 struct trace_event_raw_xdp_cpumap_kthread {
20127 	struct trace_entry ent;
20128 	int map_id;
20129 	u32 act;
20130 	int cpu;
20131 	unsigned int drops;
20132 	unsigned int processed;
20133 	int sched;
20134 	unsigned int xdp_pass;
20135 	unsigned int xdp_drop;
20136 	unsigned int xdp_redirect;
20137 	char __data[0];
20138 };
20139 
20140 struct trace_event_raw_xdp_cpumap_enqueue {
20141 	struct trace_entry ent;
20142 	int map_id;
20143 	u32 act;
20144 	int cpu;
20145 	unsigned int drops;
20146 	unsigned int processed;
20147 	int to_cpu;
20148 	char __data[0];
20149 };
20150 
20151 struct trace_event_raw_xdp_devmap_xmit {
20152 	struct trace_entry ent;
20153 	int from_ifindex;
20154 	u32 act;
20155 	int to_ifindex;
20156 	int drops;
20157 	int sent;
20158 	int err;
20159 	char __data[0];
20160 };
20161 
20162 struct trace_event_raw_mem_disconnect {
20163 	struct trace_entry ent;
20164 	const struct xdp_mem_allocator *xa;
20165 	u32 mem_id;
20166 	u32 mem_type;
20167 	const void *allocator;
20168 	char __data[0];
20169 };
20170 
20171 struct trace_event_raw_mem_connect {
20172 	struct trace_entry ent;
20173 	const struct xdp_mem_allocator *xa;
20174 	u32 mem_id;
20175 	u32 mem_type;
20176 	const void *allocator;
20177 	const struct xdp_rxq_info *rxq;
20178 	int ifindex;
20179 	char __data[0];
20180 };
20181 
20182 struct trace_event_raw_mem_return_failed {
20183 	struct trace_entry ent;
20184 	const struct page *page;
20185 	u32 mem_id;
20186 	u32 mem_type;
20187 	char __data[0];
20188 };
20189 
20190 struct trace_event_data_offsets_xdp_exception {};
20191 
20192 struct trace_event_data_offsets_xdp_bulk_tx {};
20193 
20194 struct trace_event_data_offsets_xdp_redirect_template {};
20195 
20196 struct trace_event_data_offsets_xdp_cpumap_kthread {};
20197 
20198 struct trace_event_data_offsets_xdp_cpumap_enqueue {};
20199 
20200 struct trace_event_data_offsets_xdp_devmap_xmit {};
20201 
20202 struct trace_event_data_offsets_mem_disconnect {};
20203 
20204 struct trace_event_data_offsets_mem_connect {};
20205 
20206 struct trace_event_data_offsets_mem_return_failed {};
20207 
20208 typedef void (*btf_trace_xdp_exception)(void *, const struct net_device *, const struct bpf_prog *, u32);
20209 
20210 typedef void (*btf_trace_xdp_bulk_tx)(void *, const struct net_device *, int, int, int);
20211 
20212 typedef void (*btf_trace_xdp_redirect)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32);
20213 
20214 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);
20215 
20216 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);
20217 
20218 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);
20219 
20220 typedef void (*btf_trace_xdp_cpumap_kthread)(void *, int, unsigned int, unsigned int, int, struct xdp_cpumap_stats *);
20221 
20222 typedef void (*btf_trace_xdp_cpumap_enqueue)(void *, int, unsigned int, unsigned int, int);
20223 
20224 typedef void (*btf_trace_xdp_devmap_xmit)(void *, const struct net_device *, const struct net_device *, int, int, int);
20225 
20226 typedef void (*btf_trace_mem_disconnect)(void *, const struct xdp_mem_allocator *);
20227 
20228 typedef void (*btf_trace_mem_connect)(void *, const struct xdp_mem_allocator *, const struct xdp_rxq_info *);
20229 
20230 typedef void (*btf_trace_mem_return_failed)(void *, const struct xdp_mem_info *, const struct page *);
20231 
20232 union bpf_iter_link_info {
20233 	struct {
20234 		__u32 map_fd;
20235 	} map;
20236 	struct {
20237 		enum bpf_cgroup_iter_order order;
20238 		__u32 cgroup_fd;
20239 		__u64 cgroup_id;
20240 	} cgroup;
20241 	struct {
20242 		__u32 tid;
20243 		__u32 pid;
20244 		__u32 pid_fd;
20245 	} task;
20246 };
20247 
20248 enum bpf_link_type {
20249 	BPF_LINK_TYPE_UNSPEC = 0,
20250 	BPF_LINK_TYPE_RAW_TRACEPOINT = 1,
20251 	BPF_LINK_TYPE_TRACING = 2,
20252 	BPF_LINK_TYPE_CGROUP = 3,
20253 	BPF_LINK_TYPE_ITER = 4,
20254 	BPF_LINK_TYPE_NETNS = 5,
20255 	BPF_LINK_TYPE_XDP = 6,
20256 	BPF_LINK_TYPE_PERF_EVENT = 7,
20257 	BPF_LINK_TYPE_KPROBE_MULTI = 8,
20258 	BPF_LINK_TYPE_STRUCT_OPS = 9,
20259 	MAX_BPF_LINK_TYPE = 10,
20260 };
20261 
20262 struct bpf_link_info {
20263 	__u32 type;
20264 	__u32 id;
20265 	__u32 prog_id;
20266 	union {
20267 		struct {
20268 			__u64 tp_name;
20269 			__u32 tp_name_len;
20270 		} raw_tracepoint;
20271 		struct {
20272 			__u32 attach_type;
20273 			__u32 target_obj_id;
20274 			__u32 target_btf_id;
20275 		} tracing;
20276 		struct {
20277 			__u64 cgroup_id;
20278 			__u32 attach_type;
20279 		} cgroup;
20280 		struct {
20281 			__u64 target_name;
20282 			__u32 target_name_len;
20283 			union {
20284 				struct {
20285 					__u32 map_id;
20286 				} map;
20287 			};
20288 			union {
20289 				struct {
20290 					__u64 cgroup_id;
20291 					__u32 order;
20292 				} cgroup;
20293 				struct {
20294 					__u32 tid;
20295 					__u32 pid;
20296 				} task;
20297 			};
20298 		} iter;
20299 		struct {
20300 			__u32 netns_ino;
20301 			__u32 attach_type;
20302 		} netns;
20303 		struct {
20304 			__u32 ifindex;
20305 		} xdp;
20306 	};
20307 };
20308 
20309 typedef unsigned int (*bpf_func_t)(const void *, const struct bpf_insn *);
20310 
20311 struct bpf_link_ops;
20312 
20313 struct bpf_link {
20314 	atomic64_t refcnt;
20315 	u32 id;
20316 	enum bpf_link_type type;
20317 	const struct bpf_link_ops *ops;
20318 	struct bpf_prog *prog;
20319 	struct work_struct work;
20320 };
20321 
20322 struct bpf_link_ops {
20323 	void (*release)(struct bpf_link *);
20324 	void (*dealloc)(struct bpf_link *);
20325 	int (*detach)(struct bpf_link *);
20326 	int (*update_prog)(struct bpf_link *, struct bpf_prog *, struct bpf_prog *);
20327 	void (*show_fdinfo)(const struct bpf_link *, struct seq_file *);
20328 	int (*fill_link_info)(const struct bpf_link *, struct bpf_link_info *);
20329 };
20330 
20331 struct bpf_link_primer {
20332 	struct bpf_link *link;
20333 	struct file *file;
20334 	int fd;
20335 	u32 id;
20336 };
20337 
20338 typedef int (*bpf_iter_attach_target_t)(struct bpf_prog *, union bpf_iter_link_info *, struct bpf_iter_aux_info *);
20339 
20340 typedef void (*bpf_iter_detach_target_t)(struct bpf_iter_aux_info *);
20341 
20342 typedef void (*bpf_iter_show_fdinfo_t)(const struct bpf_iter_aux_info *, struct seq_file *);
20343 
20344 typedef int (*bpf_iter_fill_link_info_t)(const struct bpf_iter_aux_info *, struct bpf_link_info *);
20345 
20346 typedef const struct bpf_func_proto * (*bpf_iter_get_func_proto_t)(enum bpf_func_id, const struct bpf_prog *);
20347 
20348 enum bpf_iter_feature {
20349 	BPF_ITER_RESCHED = 1,
20350 };
20351 
20352 struct bpf_iter_reg {
20353 	const char *target;
20354 	bpf_iter_attach_target_t attach_target;
20355 	bpf_iter_detach_target_t detach_target;
20356 	bpf_iter_show_fdinfo_t show_fdinfo;
20357 	bpf_iter_fill_link_info_t fill_link_info;
20358 	bpf_iter_get_func_proto_t get_func_proto;
20359 	u32 ctx_arg_info_size;
20360 	u32 feature;
20361 	struct bpf_ctx_arg_aux ctx_arg_info[2];
20362 	const struct bpf_iter_seq_info *seq_info;
20363 };
20364 
20365 struct bpf_iter_meta {
20366 	union {
20367 		struct seq_file *seq;
20368 	};
20369 	u64 session_id;
20370 	u64 seq_num;
20371 };
20372 
20373 typedef unsigned int (*bpf_dispatcher_fn)(const void *, const struct bpf_insn *, unsigned int (*)(const void *, const struct bpf_insn *));
20374 
20375 struct bpf_iter_target_info {
20376 	struct list_head list;
20377 	const struct bpf_iter_reg *reg_info;
20378 	u32 btf_id;
20379 };
20380 
20381 struct bpf_iter_link {
20382 	struct bpf_link link;
20383 	struct bpf_iter_aux_info aux;
20384 	struct bpf_iter_target_info *tinfo;
20385 };
20386 
20387 struct bpf_iter_priv_data {
20388 	struct bpf_iter_target_info *tinfo;
20389 	const struct bpf_iter_seq_info *seq_info;
20390 	struct bpf_prog *prog;
20391 	u64 session_id;
20392 	u64 seq_num;
20393 	bool done_stop;
20394 	long: 56;
20395 	u8 target_private[0];
20396 };
20397 
20398 typedef u64 (*btf_bpf_for_each_map_elem)(struct bpf_map *, void *, void *, u64);
20399 
20400 typedef u64 (*btf_bpf_loop)(u32, void *, void *, u64);
20401 
20402 enum {
20403 	BTF_TRACING_TYPE_TASK = 0,
20404 	BTF_TRACING_TYPE_FILE = 1,
20405 	BTF_TRACING_TYPE_VMA = 2,
20406 	MAX_BTF_TRACING_TYPE = 3,
20407 };
20408 
20409 struct mmap_unlock_irq_work {
20410 	struct irq_work irq_work;
20411 	struct mm_struct *mm;
20412 };
20413 
20414 struct bpf_iter_seq_task_common {
20415 	struct pid_namespace *ns;
20416 	enum bpf_iter_task_type type;
20417 	u32 pid;
20418 	u32 pid_visiting;
20419 };
20420 
20421 struct bpf_iter_seq_task_info {
20422 	struct bpf_iter_seq_task_common common;
20423 	u32 tid;
20424 };
20425 
20426 struct bpf_iter__task {
20427 	union {
20428 		struct bpf_iter_meta *meta;
20429 	};
20430 	union {
20431 		struct task_struct *task;
20432 	};
20433 };
20434 
20435 struct bpf_iter_seq_task_file_info {
20436 	struct bpf_iter_seq_task_common common;
20437 	struct task_struct *task;
20438 	u32 tid;
20439 	u32 fd;
20440 };
20441 
20442 struct bpf_iter__task_file {
20443 	union {
20444 		struct bpf_iter_meta *meta;
20445 	};
20446 	union {
20447 		struct task_struct *task;
20448 	};
20449 	u32 fd;
20450 	union {
20451 		struct file *file;
20452 	};
20453 };
20454 
20455 struct bpf_iter_seq_task_vma_info {
20456 	struct bpf_iter_seq_task_common common;
20457 	struct task_struct *task;
20458 	struct mm_struct *mm;
20459 	struct vm_area_struct *vma;
20460 	u32 tid;
20461 	long unsigned int prev_vm_start;
20462 	long unsigned int prev_vm_end;
20463 };
20464 
20465 enum bpf_task_vma_iter_find_op {
20466 	task_vma_iter_first_vma = 0,
20467 	task_vma_iter_next_vma = 1,
20468 	task_vma_iter_find_vma = 2,
20469 };
20470 
20471 struct bpf_iter__task_vma {
20472 	union {
20473 		struct bpf_iter_meta *meta;
20474 	};
20475 	union {
20476 		struct task_struct *task;
20477 	};
20478 	union {
20479 		struct vm_area_struct *vma;
20480 	};
20481 };
20482 
20483 typedef u64 (*btf_bpf_find_vma)(struct task_struct *, u64, bpf_callback_t, void *, u64);
20484 
20485 struct pcpu_freelist_node;
20486 
20487 struct pcpu_freelist_head {
20488 	struct pcpu_freelist_node *first;
20489 	raw_spinlock_t lock;
20490 };
20491 
20492 struct pcpu_freelist_node {
20493 	struct pcpu_freelist_node *next;
20494 };
20495 
20496 struct pcpu_freelist {
20497 	struct pcpu_freelist_head *freelist;
20498 	struct pcpu_freelist_head extralist;
20499 };
20500 
20501 struct bpf_lpm_trie_key {
20502 	__u32 prefixlen;
20503 	__u8 data[0];
20504 };
20505 
20506 enum {
20507 	BPF_ANY = 0,
20508 	BPF_NOEXIST = 1,
20509 	BPF_EXIST = 2,
20510 	BPF_F_LOCK = 4,
20511 };
20512 
20513 enum {
20514 	BPF_F_NO_PREALLOC = 1,
20515 	BPF_F_NO_COMMON_LRU = 2,
20516 	BPF_F_NUMA_NODE = 4,
20517 	BPF_F_RDONLY = 8,
20518 	BPF_F_WRONLY = 16,
20519 	BPF_F_STACK_BUILD_ID = 32,
20520 	BPF_F_ZERO_SEED = 64,
20521 	BPF_F_RDONLY_PROG = 128,
20522 	BPF_F_WRONLY_PROG = 256,
20523 	BPF_F_CLONE = 512,
20524 	BPF_F_MMAPABLE = 1024,
20525 	BPF_F_PRESERVE_ELEMS = 2048,
20526 	BPF_F_INNER_MAP = 4096,
20527 };
20528 
20529 enum {
20530 	BTF_KIND_UNKN = 0,
20531 	BTF_KIND_INT = 1,
20532 	BTF_KIND_PTR = 2,
20533 	BTF_KIND_ARRAY = 3,
20534 	BTF_KIND_STRUCT = 4,
20535 	BTF_KIND_UNION = 5,
20536 	BTF_KIND_ENUM = 6,
20537 	BTF_KIND_FWD = 7,
20538 	BTF_KIND_TYPEDEF = 8,
20539 	BTF_KIND_VOLATILE = 9,
20540 	BTF_KIND_CONST = 10,
20541 	BTF_KIND_RESTRICT = 11,
20542 	BTF_KIND_FUNC = 12,
20543 	BTF_KIND_FUNC_PROTO = 13,
20544 	BTF_KIND_VAR = 14,
20545 	BTF_KIND_DATASEC = 15,
20546 	BTF_KIND_FLOAT = 16,
20547 	BTF_KIND_DECL_TAG = 17,
20548 	BTF_KIND_TYPE_TAG = 18,
20549 	BTF_KIND_ENUM64 = 19,
20550 	NR_BTF_KINDS = 20,
20551 	BTF_KIND_MAX = 19,
20552 };
20553 
20554 struct ipv6_stable_secret {
20555 	bool initialized;
20556 	struct in6_addr secret;
20557 };
20558 
20559 struct ipv6_devconf {
20560 	__s32 forwarding;
20561 	__s32 hop_limit;
20562 	__s32 mtu6;
20563 	__s32 accept_ra;
20564 	__s32 accept_redirects;
20565 	__s32 autoconf;
20566 	__s32 dad_transmits;
20567 	__s32 rtr_solicits;
20568 	__s32 rtr_solicit_interval;
20569 	__s32 rtr_solicit_max_interval;
20570 	__s32 rtr_solicit_delay;
20571 	__s32 force_mld_version;
20572 	__s32 mldv1_unsolicited_report_interval;
20573 	__s32 mldv2_unsolicited_report_interval;
20574 	__s32 use_tempaddr;
20575 	__s32 temp_valid_lft;
20576 	__s32 temp_prefered_lft;
20577 	__s32 regen_max_retry;
20578 	__s32 max_desync_factor;
20579 	__s32 max_addresses;
20580 	__s32 accept_ra_defrtr;
20581 	__u32 ra_defrtr_metric;
20582 	__s32 accept_ra_min_hop_limit;
20583 	__s32 accept_ra_pinfo;
20584 	__s32 ignore_routes_with_linkdown;
20585 	__s32 accept_ra_rtr_pref;
20586 	__s32 rtr_probe_interval;
20587 	__s32 accept_ra_rt_info_min_plen;
20588 	__s32 accept_ra_rt_info_max_plen;
20589 	__s32 proxy_ndp;
20590 	__s32 accept_source_route;
20591 	__s32 accept_ra_from_local;
20592 	atomic_t mc_forwarding;
20593 	__s32 disable_ipv6;
20594 	__s32 drop_unicast_in_l2_multicast;
20595 	__s32 accept_dad;
20596 	__s32 force_tllao;
20597 	__s32 ndisc_notify;
20598 	__s32 suppress_frag_ndisc;
20599 	__s32 accept_ra_mtu;
20600 	__s32 drop_unsolicited_na;
20601 	__s32 accept_untracked_na;
20602 	struct ipv6_stable_secret stable_secret;
20603 	__s32 use_oif_addrs_only;
20604 	__s32 keep_addr_on_down;
20605 	__s32 seg6_enabled;
20606 	__s32 seg6_require_hmac;
20607 	__u32 enhanced_dad;
20608 	__u32 addr_gen_mode;
20609 	__s32 disable_policy;
20610 	__s32 ndisc_tclass;
20611 	__s32 rpl_seg_enabled;
20612 	__u32 ioam6_id;
20613 	__u32 ioam6_id_wide;
20614 	__u8 ioam6_enabled;
20615 	__u8 ndisc_evict_nocarrier;
20616 	struct ctl_table_header *sysctl_header;
20617 };
20618 
20619 struct icmpv6_mib_device {
20620 	atomic_long_t mibs[6];
20621 };
20622 
20623 struct icmpv6msg_mib_device {
20624 	atomic_long_t mibs[512];
20625 };
20626 
20627 struct ipv6_devstat {
20628 	struct proc_dir_entry *proc_dir_entry;
20629 	struct ipstats_mib *ipv6;
20630 	struct icmpv6_mib_device *icmpv6dev;
20631 	struct icmpv6msg_mib_device *icmpv6msgdev;
20632 };
20633 
20634 struct ifmcaddr6;
20635 
20636 struct ifacaddr6;
20637 
20638 struct inet6_dev {
20639 	struct net_device *dev;
20640 	netdevice_tracker dev_tracker;
20641 	struct list_head addr_list;
20642 	struct ifmcaddr6 *mc_list;
20643 	struct ifmcaddr6 *mc_tomb;
20644 	unsigned char mc_qrv;
20645 	unsigned char mc_gq_running;
20646 	unsigned char mc_ifc_count;
20647 	unsigned char mc_dad_count;
20648 	long unsigned int mc_v1_seen;
20649 	long unsigned int mc_qi;
20650 	long unsigned int mc_qri;
20651 	long unsigned int mc_maxdelay;
20652 	struct delayed_work mc_gq_work;
20653 	struct delayed_work mc_ifc_work;
20654 	struct delayed_work mc_dad_work;
20655 	struct delayed_work mc_query_work;
20656 	struct delayed_work mc_report_work;
20657 	struct sk_buff_head mc_query_queue;
20658 	struct sk_buff_head mc_report_queue;
20659 	spinlock_t mc_query_lock;
20660 	spinlock_t mc_report_lock;
20661 	struct mutex mc_lock;
20662 	struct ifacaddr6 *ac_list;
20663 	rwlock_t lock;
20664 	refcount_t refcnt;
20665 	__u32 if_flags;
20666 	int dead;
20667 	u32 desync_factor;
20668 	struct list_head tempaddr_list;
20669 	struct in6_addr token;
20670 	struct neigh_parms *nd_parms;
20671 	struct ipv6_devconf cnf;
20672 	struct ipv6_devstat stats;
20673 	struct timer_list rs_timer;
20674 	__s32 rs_interval;
20675 	__u8 rs_probes;
20676 	long unsigned int tstamp;
20677 	struct callback_head rcu;
20678 	unsigned int ra_mtu;
20679 };
20680 
20681 struct request_sock;
20682 
20683 struct request_sock_ops {
20684 	int family;
20685 	unsigned int obj_size;
20686 	struct kmem_cache *slab;
20687 	char *slab_name;
20688 	int (*rtx_syn_ack)(const struct sock *, struct request_sock *);
20689 	void (*send_ack)(const struct sock *, struct sk_buff *, struct request_sock *);
20690 	void (*send_reset)(const struct sock *, struct sk_buff *);
20691 	void (*destructor)(struct request_sock *);
20692 	void (*syn_ack_timeout)(const struct request_sock *);
20693 };
20694 
20695 struct timewait_sock_ops {
20696 	struct kmem_cache *twsk_slab;
20697 	char *twsk_slab_name;
20698 	unsigned int twsk_obj_size;
20699 	int (*twsk_unique)(struct sock *, struct sock *, void *);
20700 	void (*twsk_destructor)(struct sock *);
20701 };
20702 
20703 struct saved_syn;
20704 
20705 struct request_sock {
20706 	struct sock_common __req_common;
20707 	struct request_sock *dl_next;
20708 	u16 mss;
20709 	u8 num_retrans;
20710 	u8 syncookie: 1;
20711 	u8 num_timeout: 7;
20712 	u32 ts_recent;
20713 	struct timer_list rsk_timer;
20714 	const struct request_sock_ops *rsk_ops;
20715 	struct sock *sk;
20716 	struct saved_syn *saved_syn;
20717 	u32 secid;
20718 	u32 peer_secid;
20719 	u32 timeout;
20720 };
20721 
20722 struct saved_syn {
20723 	u32 mac_hdrlen;
20724 	u32 network_hdrlen;
20725 	u32 tcp_hdrlen;
20726 	u8 data[0];
20727 };
20728 
20729 enum tsq_enum {
20730 	TSQ_THROTTLED = 0,
20731 	TSQ_QUEUED = 1,
20732 	TCP_TSQ_DEFERRED = 2,
20733 	TCP_WRITE_TIMER_DEFERRED = 3,
20734 	TCP_DELACK_TIMER_DEFERRED = 4,
20735 	TCP_MTU_REDUCED_DEFERRED = 5,
20736 };
20737 
20738 struct ip6_sf_list {
20739 	struct ip6_sf_list *sf_next;
20740 	struct in6_addr sf_addr;
20741 	long unsigned int sf_count[2];
20742 	unsigned char sf_gsresp;
20743 	unsigned char sf_oldin;
20744 	unsigned char sf_crcount;
20745 	struct callback_head rcu;
20746 };
20747 
20748 struct ifmcaddr6 {
20749 	struct in6_addr mca_addr;
20750 	struct inet6_dev *idev;
20751 	struct ifmcaddr6 *next;
20752 	struct ip6_sf_list *mca_sources;
20753 	struct ip6_sf_list *mca_tomb;
20754 	unsigned int mca_sfmode;
20755 	unsigned char mca_crcount;
20756 	long unsigned int mca_sfcount[2];
20757 	struct delayed_work mca_work;
20758 	unsigned int mca_flags;
20759 	int mca_users;
20760 	refcount_t mca_refcnt;
20761 	long unsigned int mca_cstamp;
20762 	long unsigned int mca_tstamp;
20763 	struct callback_head rcu;
20764 };
20765 
20766 struct ifacaddr6 {
20767 	struct in6_addr aca_addr;
20768 	struct fib6_info *aca_rt;
20769 	struct ifacaddr6 *aca_next;
20770 	struct hlist_node aca_addr_lst;
20771 	int aca_users;
20772 	refcount_t aca_refcnt;
20773 	long unsigned int aca_cstamp;
20774 	long unsigned int aca_tstamp;
20775 	struct callback_head rcu;
20776 };
20777 
20778 struct lpm_trie_node {
20779 	struct callback_head rcu;
20780 	struct lpm_trie_node *child[2];
20781 	u32 prefixlen;
20782 	u32 flags;
20783 	u8 data[0];
20784 };
20785 
20786 struct lpm_trie {
20787 	struct bpf_map map;
20788 	struct lpm_trie_node *root;
20789 	size_t n_entries;
20790 	size_t max_prefixlen;
20791 	size_t data_size;
20792 	spinlock_t lock;
20793 	long: 32;
20794 	long: 64;
20795 	long: 64;
20796 	long: 64;
20797 };
20798 
20799 struct bpf_local_storage_data;
20800 
20801 struct bpf_local_storage {
20802 	struct bpf_local_storage_data *cache[16];
20803 	struct hlist_head list;
20804 	void *owner;
20805 	struct callback_head rcu;
20806 	raw_spinlock_t lock;
20807 };
20808 
20809 struct bpf_local_storage_map_bucket;
20810 
20811 struct bpf_local_storage_map {
20812 	struct bpf_map map;
20813 	struct bpf_local_storage_map_bucket *buckets;
20814 	u32 bucket_log;
20815 	u16 elem_size;
20816 	u16 cache_idx;
20817 	long: 64;
20818 	long: 64;
20819 	long: 64;
20820 	long: 64;
20821 	long: 64;
20822 	long: 64;
20823 };
20824 
20825 struct sk_filter {
20826 	refcount_t refcnt;
20827 	struct callback_head rcu;
20828 	struct bpf_prog *prog;
20829 };
20830 
20831 struct bpf_local_storage_map_bucket {
20832 	struct hlist_head list;
20833 	raw_spinlock_t lock;
20834 };
20835 
20836 struct bpf_local_storage_data {
20837 	struct bpf_local_storage_map *smap;
20838 	u8 data[0];
20839 };
20840 
20841 struct bpf_local_storage_elem {
20842 	struct hlist_node map_node;
20843 	struct hlist_node snode;
20844 	struct bpf_local_storage *local_storage;
20845 	struct callback_head rcu;
20846 	long: 64;
20847 	struct bpf_local_storage_data sdata;
20848 	long: 64;
20849 	long: 64;
20850 	long: 64;
20851 	long: 64;
20852 	long: 64;
20853 	long: 64;
20854 	long: 64;
20855 };
20856 
20857 struct bpf_local_storage_cache {
20858 	spinlock_t idx_lock;
20859 	u64 idx_usage_counts[16];
20860 };
20861 
20862 struct bpf_mem_cache {
20863 	struct llist_head free_llist;
20864 	local_t active;
20865 	struct llist_head free_llist_extra;
20866 	struct irq_work refill_work;
20867 	struct obj_cgroup *objcg;
20868 	int unit_size;
20869 	int free_cnt;
20870 	int low_watermark;
20871 	int high_watermark;
20872 	int batch;
20873 	int percpu_size;
20874 	struct callback_head rcu;
20875 	struct llist_head free_by_rcu;
20876 	struct llist_head waiting_for_gp;
20877 	atomic_t call_rcu_in_progress;
20878 };
20879 
20880 struct bpf_mem_caches {
20881 	struct bpf_mem_cache cache[11];
20882 };
20883 
20884 typedef long unsigned int ulong;
20885 
20886 enum {
20887 	BPF_F_BROADCAST = 8,
20888 	BPF_F_EXCLUDE_INGRESS = 16,
20889 };
20890 
20891 struct bpf_devmap_val {
20892 	__u32 ifindex;
20893 	union {
20894 		int fd;
20895 		__u32 id;
20896 	} bpf_prog;
20897 };
20898 
20899 enum skb_drop_reason {
20900 	SKB_NOT_DROPPED_YET = 0,
20901 	SKB_CONSUMED = 1,
20902 	SKB_DROP_REASON_NOT_SPECIFIED = 2,
20903 	SKB_DROP_REASON_NO_SOCKET = 3,
20904 	SKB_DROP_REASON_PKT_TOO_SMALL = 4,
20905 	SKB_DROP_REASON_TCP_CSUM = 5,
20906 	SKB_DROP_REASON_SOCKET_FILTER = 6,
20907 	SKB_DROP_REASON_UDP_CSUM = 7,
20908 	SKB_DROP_REASON_NETFILTER_DROP = 8,
20909 	SKB_DROP_REASON_OTHERHOST = 9,
20910 	SKB_DROP_REASON_IP_CSUM = 10,
20911 	SKB_DROP_REASON_IP_INHDR = 11,
20912 	SKB_DROP_REASON_IP_RPFILTER = 12,
20913 	SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST = 13,
20914 	SKB_DROP_REASON_XFRM_POLICY = 14,
20915 	SKB_DROP_REASON_IP_NOPROTO = 15,
20916 	SKB_DROP_REASON_SOCKET_RCVBUFF = 16,
20917 	SKB_DROP_REASON_PROTO_MEM = 17,
20918 	SKB_DROP_REASON_TCP_MD5NOTFOUND = 18,
20919 	SKB_DROP_REASON_TCP_MD5UNEXPECTED = 19,
20920 	SKB_DROP_REASON_TCP_MD5FAILURE = 20,
20921 	SKB_DROP_REASON_SOCKET_BACKLOG = 21,
20922 	SKB_DROP_REASON_TCP_FLAGS = 22,
20923 	SKB_DROP_REASON_TCP_ZEROWINDOW = 23,
20924 	SKB_DROP_REASON_TCP_OLD_DATA = 24,
20925 	SKB_DROP_REASON_TCP_OVERWINDOW = 25,
20926 	SKB_DROP_REASON_TCP_OFOMERGE = 26,
20927 	SKB_DROP_REASON_TCP_RFC7323_PAWS = 27,
20928 	SKB_DROP_REASON_TCP_INVALID_SEQUENCE = 28,
20929 	SKB_DROP_REASON_TCP_RESET = 29,
20930 	SKB_DROP_REASON_TCP_INVALID_SYN = 30,
20931 	SKB_DROP_REASON_TCP_CLOSE = 31,
20932 	SKB_DROP_REASON_TCP_FASTOPEN = 32,
20933 	SKB_DROP_REASON_TCP_OLD_ACK = 33,
20934 	SKB_DROP_REASON_TCP_TOO_OLD_ACK = 34,
20935 	SKB_DROP_REASON_TCP_ACK_UNSENT_DATA = 35,
20936 	SKB_DROP_REASON_TCP_OFO_QUEUE_PRUNE = 36,
20937 	SKB_DROP_REASON_TCP_OFO_DROP = 37,
20938 	SKB_DROP_REASON_IP_OUTNOROUTES = 38,
20939 	SKB_DROP_REASON_BPF_CGROUP_EGRESS = 39,
20940 	SKB_DROP_REASON_IPV6DISABLED = 40,
20941 	SKB_DROP_REASON_NEIGH_CREATEFAIL = 41,
20942 	SKB_DROP_REASON_NEIGH_FAILED = 42,
20943 	SKB_DROP_REASON_NEIGH_QUEUEFULL = 43,
20944 	SKB_DROP_REASON_NEIGH_DEAD = 44,
20945 	SKB_DROP_REASON_TC_EGRESS = 45,
20946 	SKB_DROP_REASON_QDISC_DROP = 46,
20947 	SKB_DROP_REASON_CPU_BACKLOG = 47,
20948 	SKB_DROP_REASON_XDP = 48,
20949 	SKB_DROP_REASON_TC_INGRESS = 49,
20950 	SKB_DROP_REASON_UNHANDLED_PROTO = 50,
20951 	SKB_DROP_REASON_SKB_CSUM = 51,
20952 	SKB_DROP_REASON_SKB_GSO_SEG = 52,
20953 	SKB_DROP_REASON_SKB_UCOPY_FAULT = 53,
20954 	SKB_DROP_REASON_DEV_HDR = 54,
20955 	SKB_DROP_REASON_DEV_READY = 55,
20956 	SKB_DROP_REASON_FULL_RING = 56,
20957 	SKB_DROP_REASON_NOMEM = 57,
20958 	SKB_DROP_REASON_HDR_TRUNC = 58,
20959 	SKB_DROP_REASON_TAP_FILTER = 59,
20960 	SKB_DROP_REASON_TAP_TXFILTER = 60,
20961 	SKB_DROP_REASON_ICMP_CSUM = 61,
20962 	SKB_DROP_REASON_INVALID_PROTO = 62,
20963 	SKB_DROP_REASON_IP_INADDRERRORS = 63,
20964 	SKB_DROP_REASON_IP_INNOROUTES = 64,
20965 	SKB_DROP_REASON_PKT_TOO_BIG = 65,
20966 	SKB_DROP_REASON_DUP_FRAG = 66,
20967 	SKB_DROP_REASON_FRAG_REASM_TIMEOUT = 67,
20968 	SKB_DROP_REASON_FRAG_TOO_FAR = 68,
20969 	SKB_DROP_REASON_MAX = 69,
20970 };
20971 
20972 typedef struct bio_vec skb_frag_t;
20973 
20974 struct skb_shared_info {
20975 	__u8 flags;
20976 	__u8 meta_len;
20977 	__u8 nr_frags;
20978 	__u8 tx_flags;
20979 	short unsigned int gso_size;
20980 	short unsigned int gso_segs;
20981 	struct sk_buff *frag_list;
20982 	struct skb_shared_hwtstamps hwtstamps;
20983 	unsigned int gso_type;
20984 	u32 tskey;
20985 	atomic_t dataref;
20986 	unsigned int xdp_frags_size;
20987 	void *destructor_arg;
20988 	skb_frag_t frags[16];
20989 };
20990 
20991 enum xdp_buff_flags {
20992 	XDP_FLAGS_HAS_FRAGS = 1,
20993 	XDP_FLAGS_FRAGS_PF_MEMALLOC = 2,
20994 };
20995 
20996 enum net_device_flags {
20997 	IFF_UP = 1,
20998 	IFF_BROADCAST = 2,
20999 	IFF_DEBUG = 4,
21000 	IFF_LOOPBACK = 8,
21001 	IFF_POINTOPOINT = 16,
21002 	IFF_NOTRAILERS = 32,
21003 	IFF_RUNNING = 64,
21004 	IFF_NOARP = 128,
21005 	IFF_PROMISC = 256,
21006 	IFF_ALLMULTI = 512,
21007 	IFF_MASTER = 1024,
21008 	IFF_SLAVE = 2048,
21009 	IFF_MULTICAST = 4096,
21010 	IFF_PORTSEL = 8192,
21011 	IFF_AUTOMEDIA = 16384,
21012 	IFF_DYNAMIC = 32768,
21013 	IFF_LOWER_UP = 65536,
21014 	IFF_DORMANT = 131072,
21015 	IFF_ECHO = 262144,
21016 };
21017 
21018 enum netdev_priv_flags {
21019 	IFF_802_1Q_VLAN = 1ULL,
21020 	IFF_EBRIDGE = 2ULL,
21021 	IFF_BONDING = 4ULL,
21022 	IFF_ISATAP = 8ULL,
21023 	IFF_WAN_HDLC = 16ULL,
21024 	IFF_XMIT_DST_RELEASE = 32ULL,
21025 	IFF_DONT_BRIDGE = 64ULL,
21026 	IFF_DISABLE_NETPOLL = 128ULL,
21027 	IFF_MACVLAN_PORT = 256ULL,
21028 	IFF_BRIDGE_PORT = 512ULL,
21029 	IFF_OVS_DATAPATH = 1024ULL,
21030 	IFF_TX_SKB_SHARING = 2048ULL,
21031 	IFF_UNICAST_FLT = 4096ULL,
21032 	IFF_TEAM_PORT = 8192ULL,
21033 	IFF_SUPP_NOFCS = 16384ULL,
21034 	IFF_LIVE_ADDR_CHANGE = 32768ULL,
21035 	IFF_MACVLAN = 65536ULL,
21036 	IFF_XMIT_DST_RELEASE_PERM = 131072ULL,
21037 	IFF_L3MDEV_MASTER = 262144ULL,
21038 	IFF_NO_QUEUE = 524288ULL,
21039 	IFF_OPENVSWITCH = 1048576ULL,
21040 	IFF_L3MDEV_SLAVE = 2097152ULL,
21041 	IFF_TEAM = 4194304ULL,
21042 	IFF_RXFH_CONFIGURED = 8388608ULL,
21043 	IFF_PHONY_HEADROOM = 16777216ULL,
21044 	IFF_MACSEC = 33554432ULL,
21045 	IFF_NO_RX_HANDLER = 67108864ULL,
21046 	IFF_FAILOVER = 134217728ULL,
21047 	IFF_FAILOVER_SLAVE = 268435456ULL,
21048 	IFF_L3MDEV_RX_HANDLER = 536870912ULL,
21049 	IFF_NO_ADDRCONF = 1073741824ULL,
21050 	IFF_TX_SKB_NO_LINEAR = 2147483648ULL,
21051 	IFF_CHANGE_PROTO_DOWN = 4294967296ULL,
21052 };
21053 
21054 struct xdp_dev_bulk_queue {
21055 	struct xdp_frame *q[16];
21056 	struct list_head flush_node;
21057 	struct net_device *dev;
21058 	struct net_device *dev_rx;
21059 	struct bpf_prog *xdp_prog;
21060 	unsigned int count;
21061 };
21062 
21063 enum netdev_cmd {
21064 	NETDEV_UP = 1,
21065 	NETDEV_DOWN = 2,
21066 	NETDEV_REBOOT = 3,
21067 	NETDEV_CHANGE = 4,
21068 	NETDEV_REGISTER = 5,
21069 	NETDEV_UNREGISTER = 6,
21070 	NETDEV_CHANGEMTU = 7,
21071 	NETDEV_CHANGEADDR = 8,
21072 	NETDEV_PRE_CHANGEADDR = 9,
21073 	NETDEV_GOING_DOWN = 10,
21074 	NETDEV_CHANGENAME = 11,
21075 	NETDEV_FEAT_CHANGE = 12,
21076 	NETDEV_BONDING_FAILOVER = 13,
21077 	NETDEV_PRE_UP = 14,
21078 	NETDEV_PRE_TYPE_CHANGE = 15,
21079 	NETDEV_POST_TYPE_CHANGE = 16,
21080 	NETDEV_POST_INIT = 17,
21081 	NETDEV_PRE_UNINIT = 18,
21082 	NETDEV_RELEASE = 19,
21083 	NETDEV_NOTIFY_PEERS = 20,
21084 	NETDEV_JOIN = 21,
21085 	NETDEV_CHANGEUPPER = 22,
21086 	NETDEV_RESEND_IGMP = 23,
21087 	NETDEV_PRECHANGEMTU = 24,
21088 	NETDEV_CHANGEINFODATA = 25,
21089 	NETDEV_BONDING_INFO = 26,
21090 	NETDEV_PRECHANGEUPPER = 27,
21091 	NETDEV_CHANGELOWERSTATE = 28,
21092 	NETDEV_UDP_TUNNEL_PUSH_INFO = 29,
21093 	NETDEV_UDP_TUNNEL_DROP_INFO = 30,
21094 	NETDEV_CHANGE_TX_QUEUE_LEN = 31,
21095 	NETDEV_CVLAN_FILTER_PUSH_INFO = 32,
21096 	NETDEV_CVLAN_FILTER_DROP_INFO = 33,
21097 	NETDEV_SVLAN_FILTER_PUSH_INFO = 34,
21098 	NETDEV_SVLAN_FILTER_DROP_INFO = 35,
21099 	NETDEV_OFFLOAD_XSTATS_ENABLE = 36,
21100 	NETDEV_OFFLOAD_XSTATS_DISABLE = 37,
21101 	NETDEV_OFFLOAD_XSTATS_REPORT_USED = 38,
21102 	NETDEV_OFFLOAD_XSTATS_REPORT_DELTA = 39,
21103 };
21104 
21105 struct netdev_notifier_info {
21106 	struct net_device *dev;
21107 	struct netlink_ext_ack *extack;
21108 };
21109 
21110 struct bpf_nh_params {
21111 	u32 nh_family;
21112 	union {
21113 		u32 ipv4_nh;
21114 		struct in6_addr ipv6_nh;
21115 	};
21116 };
21117 
21118 struct bpf_redirect_info {
21119 	u64 tgt_index;
21120 	void *tgt_value;
21121 	struct bpf_map *map;
21122 	u32 flags;
21123 	u32 kern_flags;
21124 	u32 map_id;
21125 	enum bpf_map_type map_type;
21126 	struct bpf_nh_params nh;
21127 };
21128 
21129 struct bpf_dtab;
21130 
21131 struct bpf_dtab_netdev {
21132 	struct net_device *dev;
21133 	struct hlist_node index_hlist;
21134 	struct bpf_dtab *dtab;
21135 	struct bpf_prog *xdp_prog;
21136 	struct callback_head rcu;
21137 	unsigned int idx;
21138 	struct bpf_devmap_val val;
21139 };
21140 
21141 struct bpf_dtab {
21142 	struct bpf_map map;
21143 	struct bpf_dtab_netdev **netdev_map;
21144 	struct list_head list;
21145 	struct hlist_head *dev_index_head;
21146 	spinlock_t index_lock;
21147 	unsigned int items;
21148 	u32 n_buckets;
21149 	long: 32;
21150 	long: 64;
21151 	long: 64;
21152 };
21153 
21154 enum bpf_stack_build_id_status {
21155 	BPF_STACK_BUILD_ID_EMPTY = 0,
21156 	BPF_STACK_BUILD_ID_VALID = 1,
21157 	BPF_STACK_BUILD_ID_IP = 2,
21158 };
21159 
21160 struct bpf_stack_build_id {
21161 	__s32 status;
21162 	unsigned char build_id[20];
21163 	union {
21164 		__u64 offset;
21165 		__u64 ip;
21166 	};
21167 };
21168 
21169 enum {
21170 	BPF_F_SKIP_FIELD_MASK = 255,
21171 	BPF_F_USER_STACK = 256,
21172 	BPF_F_FAST_STACK_CMP = 512,
21173 	BPF_F_REUSE_STACKID = 1024,
21174 	BPF_F_USER_BUILD_ID = 2048,
21175 };
21176 
21177 struct user_pt_regs {
21178 	long unsigned int regs[32];
21179 	long unsigned int orig_a0;
21180 	long unsigned int csr_era;
21181 	long unsigned int csr_badv;
21182 	long unsigned int reserved[10];
21183 };
21184 
21185 enum perf_callchain_context {
21186 	PERF_CONTEXT_HV = 18446744073709551584ULL,
21187 	PERF_CONTEXT_KERNEL = 18446744073709551488ULL,
21188 	PERF_CONTEXT_USER = 18446744073709551104ULL,
21189 	PERF_CONTEXT_GUEST = 18446744073709549568ULL,
21190 	PERF_CONTEXT_GUEST_KERNEL = 18446744073709549440ULL,
21191 	PERF_CONTEXT_GUEST_USER = 18446744073709549056ULL,
21192 	PERF_CONTEXT_MAX = 18446744073709547521ULL,
21193 };
21194 
21195 typedef struct user_pt_regs bpf_user_pt_regs_t;
21196 
21197 struct bpf_perf_event_data_kern {
21198 	bpf_user_pt_regs_t *regs;
21199 	struct perf_sample_data *data;
21200 	struct perf_event *event;
21201 };
21202 
21203 struct stack_map_bucket {
21204 	struct pcpu_freelist_node fnode;
21205 	u32 hash;
21206 	u32 nr;
21207 	u64 data[0];
21208 };
21209 
21210 struct bpf_stack_map {
21211 	struct bpf_map map;
21212 	void *elems;
21213 	struct pcpu_freelist freelist;
21214 	u32 n_buckets;
21215 	struct stack_map_bucket *buckets[0];
21216 	long: 64;
21217 	long: 64;
21218 	long: 64;
21219 };
21220 
21221 typedef u64 (*btf_bpf_get_stackid)(struct pt_regs *, struct bpf_map *, u64);
21222 
21223 typedef u64 (*btf_bpf_get_stackid_pe)(struct bpf_perf_event_data_kern *, struct bpf_map *, u64);
21224 
21225 typedef u64 (*btf_bpf_get_stack)(struct pt_regs *, void *, u32, u64);
21226 
21227 typedef u64 (*btf_bpf_get_task_stack)(struct task_struct *, void *, u32, u64);
21228 
21229 typedef u64 (*btf_bpf_get_stack_pe)(struct bpf_perf_event_data_kern *, void *, u32, u64);
21230 
21231 enum bpf_core_relo_kind {
21232 	BPF_CORE_FIELD_BYTE_OFFSET = 0,
21233 	BPF_CORE_FIELD_BYTE_SIZE = 1,
21234 	BPF_CORE_FIELD_EXISTS = 2,
21235 	BPF_CORE_FIELD_SIGNED = 3,
21236 	BPF_CORE_FIELD_LSHIFT_U64 = 4,
21237 	BPF_CORE_FIELD_RSHIFT_U64 = 5,
21238 	BPF_CORE_TYPE_ID_LOCAL = 6,
21239 	BPF_CORE_TYPE_ID_TARGET = 7,
21240 	BPF_CORE_TYPE_EXISTS = 8,
21241 	BPF_CORE_TYPE_SIZE = 9,
21242 	BPF_CORE_ENUMVAL_EXISTS = 10,
21243 	BPF_CORE_ENUMVAL_VALUE = 11,
21244 	BPF_CORE_TYPE_MATCHES = 12,
21245 };
21246 
21247 struct bpf_core_relo {
21248 	__u32 insn_off;
21249 	__u32 type_id;
21250 	__u32 access_str_off;
21251 	enum bpf_core_relo_kind kind;
21252 };
21253 
21254 struct btf_enum {
21255 	__u32 name_off;
21256 	__s32 val;
21257 };
21258 
21259 struct btf_array {
21260 	__u32 type;
21261 	__u32 index_type;
21262 	__u32 nelems;
21263 };
21264 
21265 struct btf_member {
21266 	__u32 name_off;
21267 	__u32 type;
21268 	__u32 offset;
21269 };
21270 
21271 struct btf_param {
21272 	__u32 name_off;
21273 	__u32 type;
21274 };
21275 
21276 struct btf_enum64 {
21277 	__u32 name_off;
21278 	__u32 val_lo32;
21279 	__u32 val_hi32;
21280 };
21281 
21282 struct bpf_core_cand {
21283 	const struct btf *btf;
21284 	__u32 id;
21285 };
21286 
21287 struct bpf_core_cand_list {
21288 	struct bpf_core_cand *cands;
21289 	int len;
21290 };
21291 
21292 struct bpf_core_accessor {
21293 	__u32 type_id;
21294 	__u32 idx;
21295 	const char *name;
21296 };
21297 
21298 struct bpf_core_spec {
21299 	const struct btf *btf;
21300 	struct bpf_core_accessor spec[64];
21301 	__u32 root_type_id;
21302 	enum bpf_core_relo_kind relo_kind;
21303 	int len;
21304 	int raw_spec[64];
21305 	int raw_len;
21306 	__u32 bit_offset;
21307 };
21308 
21309 struct bpf_core_relo_res {
21310 	__u64 orig_val;
21311 	__u64 new_val;
21312 	bool poison;
21313 	bool validate;
21314 	bool fail_memsz_adjust;
21315 	__u32 orig_sz;
21316 	__u32 orig_type_id;
21317 	__u32 new_sz;
21318 	__u32 new_type_id;
21319 };
21320 
21321 struct callchain_cpus_entries {
21322 	struct callback_head callback_head;
21323 	struct perf_callchain_entry *cpu_entries[0];
21324 };
21325 
21326 struct mem_section_usage {
21327 	long unsigned int subsection_map[4];
21328 	long unsigned int pageblock_flags[0];
21329 };
21330 
21331 struct mem_section {
21332 	long unsigned int section_mem_map;
21333 	struct mem_section_usage *usage;
21334 };
21335 
21336 enum {
21337 	SECTION_MARKED_PRESENT_BIT = 0,
21338 	SECTION_HAS_MEM_MAP_BIT = 1,
21339 	SECTION_IS_ONLINE_BIT = 2,
21340 	SECTION_IS_EARLY_BIT = 3,
21341 	SECTION_MAP_LAST_BIT = 4,
21342 };
21343 
21344 enum {
21345 	MEMREMAP_WB = 1,
21346 	MEMREMAP_WT = 2,
21347 	MEMREMAP_WC = 4,
21348 	MEMREMAP_ENC = 8,
21349 	MEMREMAP_DEC = 16,
21350 };
21351 
21352 typedef struct {
21353 	long unsigned int val;
21354 } swp_entry_t;
21355 
21356 typedef struct pglist_data pg_data_t;
21357 
21358 struct compact_control;
21359 
21360 struct capture_control {
21361 	struct compact_control *cc;
21362 	struct page *page;
21363 };
21364 
21365 struct xa_node {
21366 	unsigned char shift;
21367 	unsigned char offset;
21368 	unsigned char count;
21369 	unsigned char nr_values;
21370 	struct xa_node *parent;
21371 	struct xarray *array;
21372 	union {
21373 		struct list_head private_list;
21374 		struct callback_head callback_head;
21375 	};
21376 	void *slots[64];
21377 	union {
21378 		long unsigned int tags[3];
21379 		long unsigned int marks[3];
21380 	};
21381 };
21382 
21383 typedef void (*xa_update_node_t)(struct xa_node *);
21384 
21385 struct xa_state {
21386 	struct xarray *xa;
21387 	long unsigned int xa_index;
21388 	unsigned char xa_shift;
21389 	unsigned char xa_sibs;
21390 	unsigned char xa_offset;
21391 	unsigned char xa_pad;
21392 	struct xa_node *xa_node;
21393 	struct xa_node *xa_alloc;
21394 	xa_update_node_t xa_update;
21395 	struct list_lru *xa_lru;
21396 };
21397 
21398 enum migrate_reason {
21399 	MR_COMPACTION = 0,
21400 	MR_MEMORY_FAILURE = 1,
21401 	MR_MEMORY_HOTPLUG = 2,
21402 	MR_SYSCALL = 3,
21403 	MR_MEMPOLICY_MBIND = 4,
21404 	MR_NUMA_MISPLACED = 5,
21405 	MR_CONTIG_RANGE = 6,
21406 	MR_LONGTERM_PIN = 7,
21407 	MR_DEMOTION = 8,
21408 	MR_TYPES = 9,
21409 };
21410 
21411 enum positive_aop_returns {
21412 	AOP_WRITEPAGE_ACTIVATE = 524288,
21413 	AOP_TRUNCATED_PAGE = 524289,
21414 };
21415 
21416 struct vm_event_state {
21417 	long unsigned int event[106];
21418 };
21419 
21420 enum iter_type {
21421 	ITER_IOVEC = 0,
21422 	ITER_KVEC = 1,
21423 	ITER_BVEC = 2,
21424 	ITER_PIPE = 3,
21425 	ITER_XARRAY = 4,
21426 	ITER_DISCARD = 5,
21427 	ITER_UBUF = 6,
21428 };
21429 
21430 enum mapping_flags {
21431 	AS_EIO = 0,
21432 	AS_ENOSPC = 1,
21433 	AS_MM_ALL_LOCKS = 2,
21434 	AS_UNEVICTABLE = 3,
21435 	AS_EXITING = 4,
21436 	AS_NO_WRITEBACK_TAGS = 5,
21437 	AS_LARGE_FOLIO_SUPPORT = 6,
21438 };
21439 
21440 typedef int filler_t(struct file *, struct folio *);
21441 
21442 struct wait_page_key {
21443 	struct folio *folio;
21444 	int bit_nr;
21445 	int page_match;
21446 };
21447 
21448 struct pagevec {
21449 	unsigned char nr;
21450 	bool percpu_pvec_drained;
21451 	struct page *pages[15];
21452 };
21453 
21454 struct folio_batch {
21455 	unsigned char nr;
21456 	bool percpu_pvec_drained;
21457 	struct folio *folios[15];
21458 };
21459 
21460 struct compact_control {
21461 	struct list_head freepages;
21462 	struct list_head migratepages;
21463 	unsigned int nr_freepages;
21464 	unsigned int nr_migratepages;
21465 	long unsigned int free_pfn;
21466 	long unsigned int migrate_pfn;
21467 	long unsigned int fast_start_pfn;
21468 	struct zone *zone;
21469 	long unsigned int total_migrate_scanned;
21470 	long unsigned int total_free_scanned;
21471 	short unsigned int fast_search_fail;
21472 	short int search_order;
21473 	const gfp_t gfp_mask;
21474 	int order;
21475 	int migratetype;
21476 	const unsigned int alloc_flags;
21477 	const int highest_zoneidx;
21478 	enum migrate_mode mode;
21479 	bool ignore_skip_hint;
21480 	bool no_set_skip_hint;
21481 	bool ignore_block_suitable;
21482 	bool direct_compaction;
21483 	bool proactive_compaction;
21484 	bool whole_zone;
21485 	bool contended;
21486 	bool rescan;
21487 	bool alloc_contig;
21488 };
21489 
21490 struct trace_event_raw_mm_filemap_op_page_cache {
21491 	struct trace_entry ent;
21492 	long unsigned int pfn;
21493 	long unsigned int i_ino;
21494 	long unsigned int index;
21495 	dev_t s_dev;
21496 	unsigned char order;
21497 	char __data[0];
21498 };
21499 
21500 struct trace_event_raw_filemap_set_wb_err {
21501 	struct trace_entry ent;
21502 	long unsigned int i_ino;
21503 	dev_t s_dev;
21504 	errseq_t errseq;
21505 	char __data[0];
21506 };
21507 
21508 struct trace_event_raw_file_check_and_advance_wb_err {
21509 	struct trace_entry ent;
21510 	struct file *file;
21511 	long unsigned int i_ino;
21512 	dev_t s_dev;
21513 	errseq_t old;
21514 	errseq_t new;
21515 	char __data[0];
21516 };
21517 
21518 struct trace_event_data_offsets_mm_filemap_op_page_cache {};
21519 
21520 struct trace_event_data_offsets_filemap_set_wb_err {};
21521 
21522 struct trace_event_data_offsets_file_check_and_advance_wb_err {};
21523 
21524 typedef void (*btf_trace_mm_filemap_delete_from_page_cache)(void *, struct folio *);
21525 
21526 typedef void (*btf_trace_mm_filemap_add_to_page_cache)(void *, struct folio *);
21527 
21528 typedef void (*btf_trace_filemap_set_wb_err)(void *, struct address_space *, errseq_t);
21529 
21530 typedef void (*btf_trace_file_check_and_advance_wb_err)(void *, struct file *, errseq_t);
21531 
21532 enum behavior {
21533 	EXCLUSIVE = 0,
21534 	SHARED = 1,
21535 	DROP = 2,
21536 };
21537 
21538 enum {
21539 	WQ_UNBOUND = 2,
21540 	WQ_FREEZABLE = 4,
21541 	WQ_MEM_RECLAIM = 8,
21542 	WQ_HIGHPRI = 16,
21543 	WQ_CPU_INTENSIVE = 32,
21544 	WQ_SYSFS = 64,
21545 	WQ_POWER_EFFICIENT = 128,
21546 	__WQ_DRAINING = 65536,
21547 	__WQ_ORDERED = 131072,
21548 	__WQ_LEGACY = 262144,
21549 	__WQ_ORDERED_EXPLICIT = 524288,
21550 	WQ_MAX_ACTIVE = 512,
21551 	WQ_MAX_UNBOUND_PER_CPU = 4,
21552 	WQ_DFL_ACTIVE = 256,
21553 };
21554 
21555 enum writeback_stat_item {
21556 	NR_DIRTY_THRESHOLD = 0,
21557 	NR_DIRTY_BG_THRESHOLD = 1,
21558 	NR_VM_WRITEBACK_STAT_ITEMS = 2,
21559 };
21560 
21561 enum cpuhp_state {
21562 	CPUHP_INVALID = -1,
21563 	CPUHP_OFFLINE = 0,
21564 	CPUHP_CREATE_THREADS = 1,
21565 	CPUHP_PERF_PREPARE = 2,
21566 	CPUHP_PERF_X86_PREPARE = 3,
21567 	CPUHP_PERF_X86_AMD_UNCORE_PREP = 4,
21568 	CPUHP_PERF_POWER = 5,
21569 	CPUHP_PERF_SUPERH = 6,
21570 	CPUHP_X86_HPET_DEAD = 7,
21571 	CPUHP_X86_APB_DEAD = 8,
21572 	CPUHP_X86_MCE_DEAD = 9,
21573 	CPUHP_VIRT_NET_DEAD = 10,
21574 	CPUHP_IBMVNIC_DEAD = 11,
21575 	CPUHP_SLUB_DEAD = 12,
21576 	CPUHP_DEBUG_OBJ_DEAD = 13,
21577 	CPUHP_MM_WRITEBACK_DEAD = 14,
21578 	CPUHP_MM_DEMOTION_DEAD = 15,
21579 	CPUHP_MM_VMSTAT_DEAD = 16,
21580 	CPUHP_SOFTIRQ_DEAD = 17,
21581 	CPUHP_NET_MVNETA_DEAD = 18,
21582 	CPUHP_CPUIDLE_DEAD = 19,
21583 	CPUHP_ARM64_FPSIMD_DEAD = 20,
21584 	CPUHP_ARM_OMAP_WAKE_DEAD = 21,
21585 	CPUHP_IRQ_POLL_DEAD = 22,
21586 	CPUHP_BLOCK_SOFTIRQ_DEAD = 23,
21587 	CPUHP_BIO_DEAD = 24,
21588 	CPUHP_ACPI_CPUDRV_DEAD = 25,
21589 	CPUHP_S390_PFAULT_DEAD = 26,
21590 	CPUHP_BLK_MQ_DEAD = 27,
21591 	CPUHP_FS_BUFF_DEAD = 28,
21592 	CPUHP_PRINTK_DEAD = 29,
21593 	CPUHP_MM_MEMCQ_DEAD = 30,
21594 	CPUHP_XFS_DEAD = 31,
21595 	CPUHP_PERCPU_CNT_DEAD = 32,
21596 	CPUHP_RADIX_DEAD = 33,
21597 	CPUHP_PAGE_ALLOC = 34,
21598 	CPUHP_NET_DEV_DEAD = 35,
21599 	CPUHP_PCI_XGENE_DEAD = 36,
21600 	CPUHP_IOMMU_IOVA_DEAD = 37,
21601 	CPUHP_LUSTRE_CFS_DEAD = 38,
21602 	CPUHP_AP_ARM_CACHE_B15_RAC_DEAD = 39,
21603 	CPUHP_PADATA_DEAD = 40,
21604 	CPUHP_AP_DTPM_CPU_DEAD = 41,
21605 	CPUHP_RANDOM_PREPARE = 42,
21606 	CPUHP_WORKQUEUE_PREP = 43,
21607 	CPUHP_POWER_NUMA_PREPARE = 44,
21608 	CPUHP_HRTIMERS_PREPARE = 45,
21609 	CPUHP_PROFILE_PREPARE = 46,
21610 	CPUHP_X2APIC_PREPARE = 47,
21611 	CPUHP_SMPCFD_PREPARE = 48,
21612 	CPUHP_RELAY_PREPARE = 49,
21613 	CPUHP_SLAB_PREPARE = 50,
21614 	CPUHP_MD_RAID5_PREPARE = 51,
21615 	CPUHP_RCUTREE_PREP = 52,
21616 	CPUHP_CPUIDLE_COUPLED_PREPARE = 53,
21617 	CPUHP_POWERPC_PMAC_PREPARE = 54,
21618 	CPUHP_POWERPC_MMU_CTX_PREPARE = 55,
21619 	CPUHP_XEN_PREPARE = 56,
21620 	CPUHP_XEN_EVTCHN_PREPARE = 57,
21621 	CPUHP_ARM_SHMOBILE_SCU_PREPARE = 58,
21622 	CPUHP_SH_SH3X_PREPARE = 59,
21623 	CPUHP_NET_FLOW_PREPARE = 60,
21624 	CPUHP_TOPOLOGY_PREPARE = 61,
21625 	CPUHP_NET_IUCV_PREPARE = 62,
21626 	CPUHP_ARM_BL_PREPARE = 63,
21627 	CPUHP_TRACE_RB_PREPARE = 64,
21628 	CPUHP_MM_ZS_PREPARE = 65,
21629 	CPUHP_MM_ZSWP_MEM_PREPARE = 66,
21630 	CPUHP_MM_ZSWP_POOL_PREPARE = 67,
21631 	CPUHP_KVM_PPC_BOOK3S_PREPARE = 68,
21632 	CPUHP_ZCOMP_PREPARE = 69,
21633 	CPUHP_TIMERS_PREPARE = 70,
21634 	CPUHP_MIPS_SOC_PREPARE = 71,
21635 	CPUHP_BP_PREPARE_DYN = 72,
21636 	CPUHP_BP_PREPARE_DYN_END = 92,
21637 	CPUHP_BRINGUP_CPU = 93,
21638 	CPUHP_AP_IDLE_DEAD = 94,
21639 	CPUHP_AP_OFFLINE = 95,
21640 	CPUHP_AP_CACHECTRL_STARTING = 96,
21641 	CPUHP_AP_SCHED_STARTING = 97,
21642 	CPUHP_AP_RCUTREE_DYING = 98,
21643 	CPUHP_AP_CPU_PM_STARTING = 99,
21644 	CPUHP_AP_IRQ_GIC_STARTING = 100,
21645 	CPUHP_AP_IRQ_HIP04_STARTING = 101,
21646 	CPUHP_AP_IRQ_APPLE_AIC_STARTING = 102,
21647 	CPUHP_AP_IRQ_ARMADA_XP_STARTING = 103,
21648 	CPUHP_AP_IRQ_BCM2836_STARTING = 104,
21649 	CPUHP_AP_IRQ_MIPS_GIC_STARTING = 105,
21650 	CPUHP_AP_IRQ_RISCV_STARTING = 106,
21651 	CPUHP_AP_IRQ_LOONGARCH_STARTING = 107,
21652 	CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING = 108,
21653 	CPUHP_AP_ARM_MVEBU_COHERENCY = 109,
21654 	CPUHP_AP_MICROCODE_LOADER = 110,
21655 	CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING = 111,
21656 	CPUHP_AP_PERF_X86_STARTING = 112,
21657 	CPUHP_AP_PERF_X86_AMD_IBS_STARTING = 113,
21658 	CPUHP_AP_PERF_X86_CQM_STARTING = 114,
21659 	CPUHP_AP_PERF_X86_CSTATE_STARTING = 115,
21660 	CPUHP_AP_PERF_XTENSA_STARTING = 116,
21661 	CPUHP_AP_MIPS_OP_LOONGSON3_STARTING = 117,
21662 	CPUHP_AP_ARM_SDEI_STARTING = 118,
21663 	CPUHP_AP_ARM_VFP_STARTING = 119,
21664 	CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING = 120,
21665 	CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING = 121,
21666 	CPUHP_AP_PERF_ARM_ACPI_STARTING = 122,
21667 	CPUHP_AP_PERF_ARM_STARTING = 123,
21668 	CPUHP_AP_PERF_RISCV_STARTING = 124,
21669 	CPUHP_AP_ARM_L2X0_STARTING = 125,
21670 	CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING = 126,
21671 	CPUHP_AP_ARM_ARCH_TIMER_STARTING = 127,
21672 	CPUHP_AP_ARM_GLOBAL_TIMER_STARTING = 128,
21673 	CPUHP_AP_JCORE_TIMER_STARTING = 129,
21674 	CPUHP_AP_ARM_TWD_STARTING = 130,
21675 	CPUHP_AP_QCOM_TIMER_STARTING = 131,
21676 	CPUHP_AP_TEGRA_TIMER_STARTING = 132,
21677 	CPUHP_AP_ARMADA_TIMER_STARTING = 133,
21678 	CPUHP_AP_MARCO_TIMER_STARTING = 134,
21679 	CPUHP_AP_MIPS_GIC_TIMER_STARTING = 135,
21680 	CPUHP_AP_ARC_TIMER_STARTING = 136,
21681 	CPUHP_AP_RISCV_TIMER_STARTING = 137,
21682 	CPUHP_AP_CLINT_TIMER_STARTING = 138,
21683 	CPUHP_AP_CSKY_TIMER_STARTING = 139,
21684 	CPUHP_AP_TI_GP_TIMER_STARTING = 140,
21685 	CPUHP_AP_HYPERV_TIMER_STARTING = 141,
21686 	CPUHP_AP_KVM_STARTING = 142,
21687 	CPUHP_AP_KVM_ARM_VGIC_INIT_STARTING = 143,
21688 	CPUHP_AP_KVM_ARM_VGIC_STARTING = 144,
21689 	CPUHP_AP_KVM_ARM_TIMER_STARTING = 145,
21690 	CPUHP_AP_DUMMY_TIMER_STARTING = 146,
21691 	CPUHP_AP_ARM_XEN_STARTING = 147,
21692 	CPUHP_AP_ARM_CORESIGHT_STARTING = 148,
21693 	CPUHP_AP_ARM_CORESIGHT_CTI_STARTING = 149,
21694 	CPUHP_AP_ARM64_ISNDEP_STARTING = 150,
21695 	CPUHP_AP_SMPCFD_DYING = 151,
21696 	CPUHP_AP_X86_TBOOT_DYING = 152,
21697 	CPUHP_AP_ARM_CACHE_B15_RAC_DYING = 153,
21698 	CPUHP_AP_ONLINE = 154,
21699 	CPUHP_TEARDOWN_CPU = 155,
21700 	CPUHP_AP_ONLINE_IDLE = 156,
21701 	CPUHP_AP_SCHED_WAIT_EMPTY = 157,
21702 	CPUHP_AP_SMPBOOT_THREADS = 158,
21703 	CPUHP_AP_X86_VDSO_VMA_ONLINE = 159,
21704 	CPUHP_AP_IRQ_AFFINITY_ONLINE = 160,
21705 	CPUHP_AP_BLK_MQ_ONLINE = 161,
21706 	CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 162,
21707 	CPUHP_AP_X86_INTEL_EPB_ONLINE = 163,
21708 	CPUHP_AP_PERF_ONLINE = 164,
21709 	CPUHP_AP_PERF_X86_ONLINE = 165,
21710 	CPUHP_AP_PERF_X86_UNCORE_ONLINE = 166,
21711 	CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 167,
21712 	CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 168,
21713 	CPUHP_AP_PERF_X86_RAPL_ONLINE = 169,
21714 	CPUHP_AP_PERF_X86_CQM_ONLINE = 170,
21715 	CPUHP_AP_PERF_X86_CSTATE_ONLINE = 171,
21716 	CPUHP_AP_PERF_X86_IDXD_ONLINE = 172,
21717 	CPUHP_AP_PERF_S390_CF_ONLINE = 173,
21718 	CPUHP_AP_PERF_S390_SF_ONLINE = 174,
21719 	CPUHP_AP_PERF_ARM_CCI_ONLINE = 175,
21720 	CPUHP_AP_PERF_ARM_CCN_ONLINE = 176,
21721 	CPUHP_AP_PERF_ARM_HISI_CPA_ONLINE = 177,
21722 	CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE = 178,
21723 	CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE = 179,
21724 	CPUHP_AP_PERF_ARM_HISI_L3_ONLINE = 180,
21725 	CPUHP_AP_PERF_ARM_HISI_PA_ONLINE = 181,
21726 	CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE = 182,
21727 	CPUHP_AP_PERF_ARM_HISI_PCIE_PMU_ONLINE = 183,
21728 	CPUHP_AP_PERF_ARM_HNS3_PMU_ONLINE = 184,
21729 	CPUHP_AP_PERF_ARM_L2X0_ONLINE = 185,
21730 	CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE = 186,
21731 	CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE = 187,
21732 	CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE = 188,
21733 	CPUHP_AP_PERF_ARM_CAVIUM_TX2_UNCORE_ONLINE = 189,
21734 	CPUHP_AP_PERF_ARM_MARVELL_CN10K_DDR_ONLINE = 190,
21735 	CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE = 191,
21736 	CPUHP_AP_PERF_POWERPC_CORE_IMC_ONLINE = 192,
21737 	CPUHP_AP_PERF_POWERPC_THREAD_IMC_ONLINE = 193,
21738 	CPUHP_AP_PERF_POWERPC_TRACE_IMC_ONLINE = 194,
21739 	CPUHP_AP_PERF_POWERPC_HV_24x7_ONLINE = 195,
21740 	CPUHP_AP_PERF_POWERPC_HV_GPCI_ONLINE = 196,
21741 	CPUHP_AP_PERF_CSKY_ONLINE = 197,
21742 	CPUHP_AP_WATCHDOG_ONLINE = 198,
21743 	CPUHP_AP_WORKQUEUE_ONLINE = 199,
21744 	CPUHP_AP_RANDOM_ONLINE = 200,
21745 	CPUHP_AP_RCUTREE_ONLINE = 201,
21746 	CPUHP_AP_BASE_CACHEINFO_ONLINE = 202,
21747 	CPUHP_AP_ONLINE_DYN = 203,
21748 	CPUHP_AP_ONLINE_DYN_END = 233,
21749 	CPUHP_AP_MM_DEMOTION_ONLINE = 234,
21750 	CPUHP_AP_X86_HPET_ONLINE = 235,
21751 	CPUHP_AP_X86_KVM_CLK_ONLINE = 236,
21752 	CPUHP_AP_ACTIVE = 237,
21753 	CPUHP_ONLINE = 238,
21754 };
21755 
21756 struct contig_page_info {
21757 	long unsigned int free_pages;
21758 	long unsigned int free_blocks_total;
21759 	long unsigned int free_blocks_suitable;
21760 };
21761 
21762 typedef struct {} local_lock_t;
21763 
21764 struct reciprocal_value {
21765 	u32 m;
21766 	u8 sh1;
21767 	u8 sh2;
21768 };
21769 
21770 struct kmem_cache_order_objects {
21771 	unsigned int x;
21772 };
21773 
21774 struct kmem_cache_cpu;
21775 
21776 struct kmem_cache_node;
21777 
21778 struct kmem_cache {
21779 	struct kmem_cache_cpu *cpu_slab;
21780 	slab_flags_t flags;
21781 	long unsigned int min_partial;
21782 	unsigned int size;
21783 	unsigned int object_size;
21784 	struct reciprocal_value reciprocal_size;
21785 	unsigned int offset;
21786 	unsigned int cpu_partial;
21787 	unsigned int cpu_partial_slabs;
21788 	struct kmem_cache_order_objects oo;
21789 	struct kmem_cache_order_objects min;
21790 	gfp_t allocflags;
21791 	int refcount;
21792 	void (*ctor)(void *);
21793 	unsigned int inuse;
21794 	unsigned int align;
21795 	unsigned int red_left_pad;
21796 	const char *name;
21797 	struct list_head list;
21798 	struct kobject kobj;
21799 	unsigned int remote_node_defrag_ratio;
21800 	struct kmem_cache_node *node[64];
21801 };
21802 
21803 enum {
21804 	PROC_ENTRY_PERMANENT = 1,
21805 };
21806 
21807 struct proc_ops {
21808 	unsigned int proc_flags;
21809 	int (*proc_open)(struct inode *, struct file *);
21810 	ssize_t (*proc_read)(struct file *, char *, size_t, loff_t *);
21811 	ssize_t (*proc_read_iter)(struct kiocb *, struct iov_iter *);
21812 	ssize_t (*proc_write)(struct file *, const char *, size_t, loff_t *);
21813 	loff_t (*proc_lseek)(struct file *, loff_t, int);
21814 	int (*proc_release)(struct inode *, struct file *);
21815 	__poll_t (*proc_poll)(struct file *, struct poll_table_struct *);
21816 	long int (*proc_ioctl)(struct file *, unsigned int, long unsigned int);
21817 	int (*proc_mmap)(struct file *, struct vm_area_struct *);
21818 	long unsigned int (*proc_get_unmapped_area)(struct file *, long unsigned int, long unsigned int, long unsigned int, long unsigned int);
21819 };
21820 
21821 struct slab {
21822 	long unsigned int __page_flags;
21823 	struct kmem_cache *slab_cache;
21824 	union {
21825 		struct {
21826 			union {
21827 				struct list_head slab_list;
21828 				struct {
21829 					struct slab *next;
21830 					int slabs;
21831 				};
21832 			};
21833 			void *freelist;
21834 			union {
21835 				long unsigned int counters;
21836 				struct {
21837 					unsigned int inuse: 16;
21838 					unsigned int objects: 15;
21839 					unsigned int frozen: 1;
21840 				};
21841 			};
21842 		};
21843 		struct callback_head callback_head;
21844 	};
21845 	unsigned int __unused;
21846 	atomic_t __page_refcount;
21847 	long unsigned int memcg_data;
21848 };
21849 
21850 struct kmem_cache_cpu {
21851 	void **freelist;
21852 	long unsigned int tid;
21853 	struct slab *slab;
21854 	struct slab *partial;
21855 	local_lock_t lock;
21856 };
21857 
21858 struct kmem_cache_node {
21859 	spinlock_t list_lock;
21860 	long unsigned int nr_partial;
21861 	struct list_head partial;
21862 	atomic_long_t nr_slabs;
21863 	atomic_long_t total_objects;
21864 	struct list_head full;
21865 };
21866 
21867 enum slab_state {
21868 	DOWN = 0,
21869 	PARTIAL = 1,
21870 	PARTIAL_NODE = 2,
21871 	UP = 3,
21872 	FULL = 4,
21873 };
21874 
21875 struct kmalloc_info_struct {
21876 	const char *name[3];
21877 	unsigned int size;
21878 };
21879 
21880 struct slabinfo {
21881 	long unsigned int active_objs;
21882 	long unsigned int num_objs;
21883 	long unsigned int active_slabs;
21884 	long unsigned int num_slabs;
21885 	long unsigned int shared_avail;
21886 	unsigned int limit;
21887 	unsigned int batchcount;
21888 	unsigned int shared;
21889 	unsigned int objects_per_slab;
21890 	unsigned int cache_order;
21891 };
21892 
21893 struct kmem_obj_info {
21894 	void *kp_ptr;
21895 	struct slab *kp_slab;
21896 	void *kp_objp;
21897 	long unsigned int kp_data_offset;
21898 	struct kmem_cache *kp_slab_cache;
21899 	void *kp_ret;
21900 	void *kp_stack[16];
21901 	void *kp_free_stack[16];
21902 };
21903 
21904 enum compact_priority {
21905 	COMPACT_PRIO_SYNC_FULL = 0,
21906 	MIN_COMPACT_PRIORITY = 0,
21907 	COMPACT_PRIO_SYNC_LIGHT = 1,
21908 	MIN_COMPACT_COSTLY_PRIORITY = 1,
21909 	DEF_COMPACT_PRIORITY = 1,
21910 	COMPACT_PRIO_ASYNC = 2,
21911 	INIT_COMPACT_PRIORITY = 2,
21912 };
21913 
21914 enum compact_result {
21915 	COMPACT_NOT_SUITABLE_ZONE = 0,
21916 	COMPACT_SKIPPED = 1,
21917 	COMPACT_DEFERRED = 2,
21918 	COMPACT_NO_SUITABLE_PAGE = 3,
21919 	COMPACT_CONTINUE = 4,
21920 	COMPACT_COMPLETE = 5,
21921 	COMPACT_PARTIAL_SKIPPED = 6,
21922 	COMPACT_CONTENDED = 7,
21923 	COMPACT_SUCCESS = 8,
21924 };
21925 
21926 struct trace_event_raw_kmem_cache_alloc {
21927 	struct trace_entry ent;
21928 	long unsigned int call_site;
21929 	const void *ptr;
21930 	size_t bytes_req;
21931 	size_t bytes_alloc;
21932 	long unsigned int gfp_flags;
21933 	int node;
21934 	bool accounted;
21935 	char __data[0];
21936 };
21937 
21938 struct trace_event_raw_kmalloc {
21939 	struct trace_entry ent;
21940 	long unsigned int call_site;
21941 	const void *ptr;
21942 	size_t bytes_req;
21943 	size_t bytes_alloc;
21944 	long unsigned int gfp_flags;
21945 	int node;
21946 	char __data[0];
21947 };
21948 
21949 struct trace_event_raw_kfree {
21950 	struct trace_entry ent;
21951 	long unsigned int call_site;
21952 	const void *ptr;
21953 	char __data[0];
21954 };
21955 
21956 struct trace_event_raw_kmem_cache_free {
21957 	struct trace_entry ent;
21958 	long unsigned int call_site;
21959 	const void *ptr;
21960 	u32 __data_loc_name;
21961 	char __data[0];
21962 };
21963 
21964 struct trace_event_raw_mm_page_free {
21965 	struct trace_entry ent;
21966 	long unsigned int pfn;
21967 	unsigned int order;
21968 	char __data[0];
21969 };
21970 
21971 struct trace_event_raw_mm_page_free_batched {
21972 	struct trace_entry ent;
21973 	long unsigned int pfn;
21974 	char __data[0];
21975 };
21976 
21977 struct trace_event_raw_mm_page_alloc {
21978 	struct trace_entry ent;
21979 	long unsigned int pfn;
21980 	unsigned int order;
21981 	long unsigned int gfp_flags;
21982 	int migratetype;
21983 	char __data[0];
21984 };
21985 
21986 struct trace_event_raw_mm_page {
21987 	struct trace_entry ent;
21988 	long unsigned int pfn;
21989 	unsigned int order;
21990 	int migratetype;
21991 	int percpu_refill;
21992 	char __data[0];
21993 };
21994 
21995 struct trace_event_raw_mm_page_pcpu_drain {
21996 	struct trace_entry ent;
21997 	long unsigned int pfn;
21998 	unsigned int order;
21999 	int migratetype;
22000 	char __data[0];
22001 };
22002 
22003 struct trace_event_raw_mm_page_alloc_extfrag {
22004 	struct trace_entry ent;
22005 	long unsigned int pfn;
22006 	int alloc_order;
22007 	int fallback_order;
22008 	int alloc_migratetype;
22009 	int fallback_migratetype;
22010 	int change_ownership;
22011 	char __data[0];
22012 };
22013 
22014 struct trace_event_raw_rss_stat {
22015 	struct trace_entry ent;
22016 	unsigned int mm_id;
22017 	unsigned int curr;
22018 	int member;
22019 	long int size;
22020 	char __data[0];
22021 };
22022 
22023 struct trace_event_data_offsets_kmem_cache_alloc {};
22024 
22025 struct trace_event_data_offsets_kmalloc {};
22026 
22027 struct trace_event_data_offsets_kfree {};
22028 
22029 struct trace_event_data_offsets_kmem_cache_free {
22030 	u32 name;
22031 };
22032 
22033 struct trace_event_data_offsets_mm_page_free {};
22034 
22035 struct trace_event_data_offsets_mm_page_free_batched {};
22036 
22037 struct trace_event_data_offsets_mm_page_alloc {};
22038 
22039 struct trace_event_data_offsets_mm_page {};
22040 
22041 struct trace_event_data_offsets_mm_page_pcpu_drain {};
22042 
22043 struct trace_event_data_offsets_mm_page_alloc_extfrag {};
22044 
22045 struct trace_event_data_offsets_rss_stat {};
22046 
22047 typedef void (*btf_trace_kmem_cache_alloc)(void *, long unsigned int, const void *, struct kmem_cache *, gfp_t, int);
22048 
22049 typedef void (*btf_trace_kmalloc)(void *, long unsigned int, const void *, size_t, size_t, gfp_t, int);
22050 
22051 typedef void (*btf_trace_kfree)(void *, long unsigned int, const void *);
22052 
22053 typedef void (*btf_trace_kmem_cache_free)(void *, long unsigned int, const void *, const struct kmem_cache *);
22054 
22055 typedef void (*btf_trace_mm_page_free)(void *, struct page *, unsigned int);
22056 
22057 typedef void (*btf_trace_mm_page_free_batched)(void *, struct page *);
22058 
22059 typedef void (*btf_trace_mm_page_alloc)(void *, struct page *, unsigned int, gfp_t, int);
22060 
22061 typedef void (*btf_trace_mm_page_alloc_zone_locked)(void *, struct page *, unsigned int, int, int);
22062 
22063 typedef void (*btf_trace_mm_page_pcpu_drain)(void *, struct page *, unsigned int, int);
22064 
22065 typedef void (*btf_trace_mm_page_alloc_extfrag)(void *, struct page *, int, int, int, int);
22066 
22067 typedef void (*btf_trace_rss_stat)(void *, struct mm_struct *, int);
22068 
22069 enum lru_status {
22070 	LRU_REMOVED = 0,
22071 	LRU_REMOVED_RETRY = 1,
22072 	LRU_ROTATE = 2,
22073 	LRU_SKIP = 3,
22074 	LRU_RETRY = 4,
22075 };
22076 
22077 typedef enum lru_status (*list_lru_walk_cb)(struct list_head *, struct list_lru_one *, spinlock_t *, void *);
22078 
22079 enum page_memcg_data_flags {
22080 	MEMCG_DATA_OBJCGS = 1,
22081 	MEMCG_DATA_KMEM = 2,
22082 	__NR_MEMCG_DATA_FLAGS = 4,
22083 };
22084 
22085 struct anon_vma_name {
22086 	struct kref kref;
22087 	char name[0];
22088 };
22089 
22090 typedef union {} release_pages_arg;
22091 
22092 struct mm_walk;
22093 
22094 struct mm_walk_ops {
22095 	int (*pgd_entry)(pgd_t *, long unsigned int, long unsigned int, struct mm_walk *);
22096 	int (*p4d_entry)(p4d_t *, long unsigned int, long unsigned int, struct mm_walk *);
22097 	int (*pud_entry)(pud_t *, long unsigned int, long unsigned int, struct mm_walk *);
22098 	int (*pmd_entry)(pmd_t *, long unsigned int, long unsigned int, struct mm_walk *);
22099 	int (*pte_entry)(pte_t *, long unsigned int, long unsigned int, struct mm_walk *);
22100 	int (*pte_hole)(long unsigned int, long unsigned int, int, struct mm_walk *);
22101 	int (*hugetlb_entry)(pte_t *, long unsigned int, long unsigned int, long unsigned int, struct mm_walk *);
22102 	int (*test_walk)(long unsigned int, long unsigned int, struct mm_walk *);
22103 	int (*pre_vma)(long unsigned int, long unsigned int, struct mm_walk *);
22104 	void (*post_vma)(struct mm_walk *);
22105 };
22106 
22107 enum page_walk_action {
22108 	ACTION_SUBTREE = 0,
22109 	ACTION_CONTINUE = 1,
22110 	ACTION_AGAIN = 2,
22111 };
22112 
22113 struct mm_walk {
22114 	const struct mm_walk_ops *ops;
22115 	struct mm_struct *mm;
22116 	pgd_t *pgd;
22117 	struct vm_area_struct *vma;
22118 	enum page_walk_action action;
22119 	bool no_vma;
22120 	void *private;
22121 };
22122 
22123 struct mlock_pvec {
22124 	local_lock_t lock;
22125 	struct pagevec vec;
22126 };
22127 
22128 struct hstate;
22129 
22130 struct hugepage_subpool {
22131 	spinlock_t lock;
22132 	long int count;
22133 	long int max_hpages;
22134 	long int used_hpages;
22135 	struct hstate *hstate;
22136 	long int min_hpages;
22137 	long int rsv_hpages;
22138 };
22139 
22140 struct hstate {
22141 	struct mutex resize_lock;
22142 	int next_nid_to_alloc;
22143 	int next_nid_to_free;
22144 	unsigned int order;
22145 	unsigned int demote_order;
22146 	long unsigned int mask;
22147 	long unsigned int max_huge_pages;
22148 	long unsigned int nr_huge_pages;
22149 	long unsigned int free_huge_pages;
22150 	long unsigned int resv_huge_pages;
22151 	long unsigned int surplus_huge_pages;
22152 	long unsigned int nr_overcommit_huge_pages;
22153 	struct list_head hugepage_activelist;
22154 	struct list_head hugepage_freelists[64];
22155 	unsigned int max_huge_pages_node[64];
22156 	unsigned int nr_huge_pages_node[64];
22157 	unsigned int free_huge_pages_node[64];
22158 	unsigned int surplus_huge_pages_node[64];
22159 	struct cftype cgroup_files_dfl[8];
22160 	struct cftype cgroup_files_legacy[10];
22161 	char name[32];
22162 };
22163 
22164 struct hugetlbfs_sb_info {
22165 	long int max_inodes;
22166 	long int free_inodes;
22167 	spinlock_t stat_lock;
22168 	struct hstate *hstate;
22169 	struct hugepage_subpool *spool;
22170 	kuid_t uid;
22171 	kgid_t gid;
22172 	umode_t mode;
22173 };
22174 
22175 enum mmu_notifier_event {
22176 	MMU_NOTIFY_UNMAP = 0,
22177 	MMU_NOTIFY_CLEAR = 1,
22178 	MMU_NOTIFY_PROTECTION_VMA = 2,
22179 	MMU_NOTIFY_PROTECTION_PAGE = 3,
22180 	MMU_NOTIFY_SOFT_DIRTY = 4,
22181 	MMU_NOTIFY_RELEASE = 5,
22182 	MMU_NOTIFY_MIGRATE = 6,
22183 	MMU_NOTIFY_EXCLUSIVE = 7,
22184 };
22185 
22186 struct mmu_notifier_range {
22187 	struct vm_area_struct *vma;
22188 	struct mm_struct *mm;
22189 	long unsigned int start;
22190 	long unsigned int end;
22191 	unsigned int flags;
22192 	enum mmu_notifier_event event;
22193 	void *owner;
22194 };
22195 
22196 enum pgt_entry {
22197 	NORMAL_PMD = 0,
22198 	HPAGE_PMD = 1,
22199 	NORMAL_PUD = 2,
22200 	HPAGE_PUD = 3,
22201 };
22202 
22203 typedef struct {
22204 	long unsigned int pd;
22205 } hugepd_t;
22206 
22207 struct va_format {
22208 	const char *fmt;
22209 	va_list *va;
22210 };
22211 
22212 struct sysinfo {
22213 	__kernel_long_t uptime;
22214 	__kernel_ulong_t loads[3];
22215 	__kernel_ulong_t totalram;
22216 	__kernel_ulong_t freeram;
22217 	__kernel_ulong_t sharedram;
22218 	__kernel_ulong_t bufferram;
22219 	__kernel_ulong_t totalswap;
22220 	__kernel_ulong_t freeswap;
22221 	__u16 procs;
22222 	__u16 pad;
22223 	__kernel_ulong_t totalhigh;
22224 	__kernel_ulong_t freehigh;
22225 	__u32 mem_unit;
22226 	char _f[0];
22227 };
22228 
22229 enum pageblock_bits {
22230 	PB_migrate = 0,
22231 	PB_migrate_end = 2,
22232 	PB_migrate_skip = 3,
22233 	NR_PAGEBLOCK_BITS = 4,
22234 };
22235 
22236 struct page_frag_cache {
22237 	void *va;
22238 	__u16 offset;
22239 	__u16 size;
22240 	unsigned int pagecnt_bias;
22241 	bool pfmemalloc;
22242 };
22243 
22244 enum zone_flags {
22245 	ZONE_BOOSTED_WATERMARK = 0,
22246 	ZONE_RECLAIM_ACTIVE = 1,
22247 };
22248 
22249 enum meminit_context {
22250 	MEMINIT_EARLY = 0,
22251 	MEMINIT_HOTPLUG = 1,
22252 };
22253 
22254 typedef void compound_page_dtor(struct page *);
22255 
22256 enum oom_constraint {
22257 	CONSTRAINT_NONE = 0,
22258 	CONSTRAINT_CPUSET = 1,
22259 	CONSTRAINT_MEMORY_POLICY = 2,
22260 	CONSTRAINT_MEMCG = 3,
22261 };
22262 
22263 struct oom_control {
22264 	struct zonelist *zonelist;
22265 	nodemask_t *nodemask;
22266 	struct mem_cgroup *memcg;
22267 	const gfp_t gfp_mask;
22268 	const int order;
22269 	long unsigned int totalpages;
22270 	struct task_struct *chosen;
22271 	long int chosen_points;
22272 	enum oom_constraint constraint;
22273 };
22274 
22275 struct fault_attr {
22276 	long unsigned int probability;
22277 	long unsigned int interval;
22278 	atomic_t times;
22279 	atomic_t space;
22280 	long unsigned int verbose;
22281 	bool task_filter;
22282 	long unsigned int stacktrace_depth;
22283 	long unsigned int require_start;
22284 	long unsigned int require_end;
22285 	long unsigned int reject_start;
22286 	long unsigned int reject_end;
22287 	long unsigned int count;
22288 	struct ratelimit_state ratelimit_state;
22289 	struct dentry *dname;
22290 };
22291 
22292 enum fault_flags {
22293 	FAULT_NOWARN = 1,
22294 };
22295 
22296 typedef struct page *new_page_t(struct page *, long unsigned int);
22297 
22298 typedef void free_page_t(struct page *, long unsigned int);
22299 
22300 struct alloc_context {
22301 	struct zonelist *zonelist;
22302 	nodemask_t *nodemask;
22303 	struct zoneref *preferred_zoneref;
22304 	int migratetype;
22305 	enum zone_type highest_zoneidx;
22306 	bool spread_dirty_pages;
22307 };
22308 
22309 enum mminit_level {
22310 	MMINIT_WARNING = 0,
22311 	MMINIT_VERIFY = 1,
22312 	MMINIT_TRACE = 2,
22313 };
22314 
22315 struct migration_target_control {
22316 	int nid;
22317 	nodemask_t *nmask;
22318 	gfp_t gfp_mask;
22319 };
22320 
22321 typedef int fpi_t;
22322 
22323 struct mminit_pfnnid_cache {
22324 	long unsigned int last_start;
22325 	long unsigned int last_end;
22326 	int last_nid;
22327 };
22328 
22329 struct kobj_attribute {
22330 	struct attribute attr;
22331 	ssize_t (*show)(struct kobject *, struct kobj_attribute *, char *);
22332 	ssize_t (*store)(struct kobject *, struct kobj_attribute *, const char *, size_t);
22333 };
22334 
22335 struct encoded_page;
22336 
22337 struct vma_swap_readahead {
22338 	short unsigned int win;
22339 	short unsigned int offset;
22340 	short unsigned int nr_pte;
22341 	pte_t *ptes;
22342 };
22343 
22344 struct frontswap_ops {
22345 	void (*init)(unsigned int);
22346 	int (*store)(unsigned int, long unsigned int, struct page *);
22347 	int (*load)(unsigned int, long unsigned int, struct page *);
22348 	void (*invalidate_page)(unsigned int, long unsigned int);
22349 	void (*invalidate_area)(unsigned int);
22350 };
22351 
22352 struct crypto_async_request;
22353 
22354 typedef void (*crypto_completion_t)(struct crypto_async_request *, int);
22355 
22356 struct crypto_tfm;
22357 
22358 struct crypto_async_request {
22359 	struct list_head list;
22360 	crypto_completion_t complete;
22361 	void *data;
22362 	struct crypto_tfm *tfm;
22363 	u32 flags;
22364 };
22365 
22366 struct crypto_alg;
22367 
22368 struct crypto_tfm {
22369 	u32 crt_flags;
22370 	int node;
22371 	void (*exit)(struct crypto_tfm *);
22372 	struct crypto_alg *__crt_alg;
22373 	void *__crt_ctx[0];
22374 };
22375 
22376 struct cipher_alg {
22377 	unsigned int cia_min_keysize;
22378 	unsigned int cia_max_keysize;
22379 	int (*cia_setkey)(struct crypto_tfm *, const u8 *, unsigned int);
22380 	void (*cia_encrypt)(struct crypto_tfm *, u8 *, const u8 *);
22381 	void (*cia_decrypt)(struct crypto_tfm *, u8 *, const u8 *);
22382 };
22383 
22384 struct compress_alg {
22385 	int (*coa_compress)(struct crypto_tfm *, const u8 *, unsigned int, u8 *, unsigned int *);
22386 	int (*coa_decompress)(struct crypto_tfm *, const u8 *, unsigned int, u8 *, unsigned int *);
22387 };
22388 
22389 struct crypto_type;
22390 
22391 struct crypto_alg {
22392 	struct list_head cra_list;
22393 	struct list_head cra_users;
22394 	u32 cra_flags;
22395 	unsigned int cra_blocksize;
22396 	unsigned int cra_ctxsize;
22397 	unsigned int cra_alignmask;
22398 	int cra_priority;
22399 	refcount_t cra_refcnt;
22400 	char cra_name[128];
22401 	char cra_driver_name[128];
22402 	const struct crypto_type *cra_type;
22403 	union {
22404 		struct cipher_alg cipher;
22405 		struct compress_alg compress;
22406 	} cra_u;
22407 	int (*cra_init)(struct crypto_tfm *);
22408 	void (*cra_exit)(struct crypto_tfm *);
22409 	void (*cra_destroy)(struct crypto_alg *);
22410 	struct module *cra_module;
22411 };
22412 
22413 struct crypto_instance;
22414 
22415 struct crypto_type {
22416 	unsigned int (*ctxsize)(struct crypto_alg *, u32, u32);
22417 	unsigned int (*extsize)(struct crypto_alg *);
22418 	int (*init)(struct crypto_tfm *, u32, u32);
22419 	int (*init_tfm)(struct crypto_tfm *);
22420 	void (*show)(struct seq_file *, struct crypto_alg *);
22421 	int (*report)(struct sk_buff *, struct crypto_alg *);
22422 	void (*free)(struct crypto_instance *);
22423 	unsigned int type;
22424 	unsigned int maskclear;
22425 	unsigned int maskset;
22426 	unsigned int tfmsize;
22427 };
22428 
22429 struct crypto_wait {
22430 	struct completion completion;
22431 	int err;
22432 };
22433 
22434 struct zpool;
22435 
22436 struct zpool_ops {
22437 	int (*evict)(struct zpool *, long unsigned int);
22438 };
22439 
22440 enum zpool_mapmode {
22441 	ZPOOL_MM_RW = 0,
22442 	ZPOOL_MM_RO = 1,
22443 	ZPOOL_MM_WO = 2,
22444 	ZPOOL_MM_DEFAULT = 0,
22445 };
22446 
22447 struct acomp_req {
22448 	struct crypto_async_request base;
22449 	struct scatterlist *src;
22450 	struct scatterlist *dst;
22451 	unsigned int slen;
22452 	unsigned int dlen;
22453 	u32 flags;
22454 	void *__ctx[0];
22455 };
22456 
22457 struct crypto_acomp {
22458 	int (*compress)(struct acomp_req *);
22459 	int (*decompress)(struct acomp_req *);
22460 	void (*dst_free)(struct scatterlist *);
22461 	unsigned int reqsize;
22462 	struct crypto_tfm base;
22463 };
22464 
22465 struct crypto_acomp_ctx {
22466 	struct crypto_acomp *acomp;
22467 	struct acomp_req *req;
22468 	struct crypto_wait wait;
22469 	u8 *dstmem;
22470 	struct mutex *mutex;
22471 };
22472 
22473 struct zswap_pool {
22474 	struct zpool *zpool;
22475 	struct crypto_acomp_ctx *acomp_ctx;
22476 	struct kref kref;
22477 	struct list_head list;
22478 	struct work_struct release_work;
22479 	struct work_struct shrink_work;
22480 	struct hlist_node node;
22481 	char tfm_name[128];
22482 };
22483 
22484 struct zswap_entry {
22485 	struct rb_node rbnode;
22486 	long unsigned int offset;
22487 	int refcount;
22488 	unsigned int length;
22489 	struct zswap_pool *pool;
22490 	union {
22491 		long unsigned int handle;
22492 		long unsigned int value;
22493 	};
22494 	struct obj_cgroup *objcg;
22495 };
22496 
22497 struct zswap_header {
22498 	swp_entry_t swpentry;
22499 };
22500 
22501 struct zswap_tree {
22502 	struct rb_root rbroot;
22503 	spinlock_t lock;
22504 };
22505 
22506 enum zswap_get_swap_ret {
22507 	ZSWAP_SWAPCACHE_NEW = 0,
22508 	ZSWAP_SWAPCACHE_EXIST = 1,
22509 	ZSWAP_SWAPCACHE_FAIL = 2,
22510 };
22511 
22512 struct mmu_notifier_subscriptions {
22513 	struct hlist_head list;
22514 	bool has_itree;
22515 	spinlock_t lock;
22516 	long unsigned int invalidate_seq;
22517 	long unsigned int active_invalidate_ranges;
22518 	struct rb_root_cached itree;
22519 	wait_queue_head_t wq;
22520 	struct hlist_head deferred_list;
22521 };
22522 
22523 struct interval_tree_node {
22524 	struct rb_node rb;
22525 	long unsigned int start;
22526 	long unsigned int last;
22527 	long unsigned int __subtree_last;
22528 };
22529 
22530 struct mmu_notifier;
22531 
22532 struct mmu_notifier_ops {
22533 	void (*release)(struct mmu_notifier *, struct mm_struct *);
22534 	int (*clear_flush_young)(struct mmu_notifier *, struct mm_struct *, long unsigned int, long unsigned int);
22535 	int (*clear_young)(struct mmu_notifier *, struct mm_struct *, long unsigned int, long unsigned int);
22536 	int (*test_young)(struct mmu_notifier *, struct mm_struct *, long unsigned int);
22537 	void (*change_pte)(struct mmu_notifier *, struct mm_struct *, long unsigned int, pte_t);
22538 	int (*invalidate_range_start)(struct mmu_notifier *, const struct mmu_notifier_range *);
22539 	void (*invalidate_range_end)(struct mmu_notifier *, const struct mmu_notifier_range *);
22540 	void (*invalidate_range)(struct mmu_notifier *, struct mm_struct *, long unsigned int, long unsigned int);
22541 	struct mmu_notifier * (*alloc_notifier)(struct mm_struct *);
22542 	void (*free_notifier)(struct mmu_notifier *);
22543 };
22544 
22545 struct mmu_notifier {
22546 	struct hlist_node hlist;
22547 	const struct mmu_notifier_ops *ops;
22548 	struct mm_struct *mm;
22549 	struct callback_head rcu;
22550 	unsigned int users;
22551 };
22552 
22553 struct mmu_interval_notifier;
22554 
22555 struct mmu_interval_notifier_ops {
22556 	bool (*invalidate)(struct mmu_interval_notifier *, const struct mmu_notifier_range *, long unsigned int);
22557 };
22558 
22559 struct mmu_interval_notifier {
22560 	struct interval_tree_node interval_tree;
22561 	const struct mmu_interval_notifier_ops *ops;
22562 	struct mm_struct *mm;
22563 	struct hlist_node deferred_item;
22564 	long unsigned int invalidate_seq;
22565 };
22566 
22567 typedef unsigned int isolate_mode_t;
22568 
22569 struct buffer_head;
22570 
22571 typedef void bh_end_io_t(struct buffer_head *, int);
22572 
22573 struct buffer_head {
22574 	long unsigned int b_state;
22575 	struct buffer_head *b_this_page;
22576 	struct page *b_page;
22577 	sector_t b_blocknr;
22578 	size_t b_size;
22579 	char *b_data;
22580 	struct block_device *b_bdev;
22581 	bh_end_io_t *b_end_io;
22582 	void *b_private;
22583 	struct list_head b_assoc_buffers;
22584 	struct address_space *b_assoc_map;
22585 	atomic_t b_count;
22586 	spinlock_t b_uptodate_lock;
22587 };
22588 
22589 struct movable_operations {
22590 	bool (*isolate_page)(struct page *, isolate_mode_t);
22591 	int (*migrate_page)(struct page *, struct page *, enum migrate_mode);
22592 	void (*putback_page)(struct page *);
22593 };
22594 
22595 enum bh_state_bits {
22596 	BH_Uptodate = 0,
22597 	BH_Dirty = 1,
22598 	BH_Lock = 2,
22599 	BH_Req = 3,
22600 	BH_Mapped = 4,
22601 	BH_New = 5,
22602 	BH_Async_Read = 6,
22603 	BH_Async_Write = 7,
22604 	BH_Delay = 8,
22605 	BH_Boundary = 9,
22606 	BH_Write_EIO = 10,
22607 	BH_Unwritten = 11,
22608 	BH_Quiet = 12,
22609 	BH_Meta = 13,
22610 	BH_Prio = 14,
22611 	BH_Defer_Completion = 15,
22612 	BH_PrivateStart = 16,
22613 };
22614 
22615 enum ttu_flags {
22616 	TTU_SPLIT_HUGE_PMD = 4,
22617 	TTU_IGNORE_MLOCK = 8,
22618 	TTU_SYNC = 16,
22619 	TTU_IGNORE_HWPOISON = 32,
22620 	TTU_BATCH_FLUSH = 64,
22621 	TTU_RMAP_LOCKED = 128,
22622 };
22623 
22624 typedef int rmap_t;
22625 
22626 struct page_vma_mapped_walk {
22627 	long unsigned int pfn;
22628 	long unsigned int nr_pages;
22629 	long unsigned int pgoff;
22630 	struct vm_area_struct *vma;
22631 	long unsigned int address;
22632 	pmd_t *pmd;
22633 	pte_t *pte;
22634 	spinlock_t *ptl;
22635 	unsigned int flags;
22636 };
22637 
22638 struct rmap_walk_control {
22639 	void *arg;
22640 	bool try_lock;
22641 	bool contended;
22642 	bool (*rmap_one)(struct folio *, struct vm_area_struct *, long unsigned int, void *);
22643 	int (*done)(struct folio *);
22644 	struct anon_vma * (*anon_lock)(struct folio *, struct rmap_walk_control *);
22645 	bool (*invalid_vma)(struct vm_area_struct *, void *);
22646 };
22647 
22648 typedef u32 compat_uptr_t;
22649 
22650 enum hugetlb_memory_event {
22651 	HUGETLB_MAX = 0,
22652 	HUGETLB_NR_MEMORY_EVENTS = 1,
22653 };
22654 
22655 enum transparent_hugepage_flag {
22656 	TRANSPARENT_HUGEPAGE_NEVER_DAX = 0,
22657 	TRANSPARENT_HUGEPAGE_FLAG = 1,
22658 	TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG = 2,
22659 	TRANSPARENT_HUGEPAGE_DEFRAG_DIRECT_FLAG = 3,
22660 	TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_FLAG = 4,
22661 	TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG = 5,
22662 	TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG = 6,
22663 	TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG = 7,
22664 	TRANSPARENT_HUGEPAGE_USE_ZERO_PAGE_FLAG = 8,
22665 };
22666 
22667 enum sgp_type {
22668 	SGP_READ = 0,
22669 	SGP_NOALLOC = 1,
22670 	SGP_CACHE = 2,
22671 	SGP_WRITE = 3,
22672 	SGP_FALLOC = 4,
22673 };
22674 
22675 struct mm_slot {
22676 	struct hlist_node hash;
22677 	struct list_head mm_node;
22678 	struct mm_struct *mm;
22679 };
22680 
22681 enum scan_result {
22682 	SCAN_FAIL = 0,
22683 	SCAN_SUCCEED = 1,
22684 	SCAN_PMD_NULL = 2,
22685 	SCAN_PMD_NONE = 3,
22686 	SCAN_PMD_MAPPED = 4,
22687 	SCAN_EXCEED_NONE_PTE = 5,
22688 	SCAN_EXCEED_SWAP_PTE = 6,
22689 	SCAN_EXCEED_SHARED_PTE = 7,
22690 	SCAN_PTE_NON_PRESENT = 8,
22691 	SCAN_PTE_UFFD_WP = 9,
22692 	SCAN_PTE_MAPPED_HUGEPAGE = 10,
22693 	SCAN_PAGE_RO = 11,
22694 	SCAN_LACK_REFERENCED_PAGE = 12,
22695 	SCAN_PAGE_NULL = 13,
22696 	SCAN_SCAN_ABORT = 14,
22697 	SCAN_PAGE_COUNT = 15,
22698 	SCAN_PAGE_LRU = 16,
22699 	SCAN_PAGE_LOCK = 17,
22700 	SCAN_PAGE_ANON = 18,
22701 	SCAN_PAGE_COMPOUND = 19,
22702 	SCAN_ANY_PROCESS = 20,
22703 	SCAN_VMA_NULL = 21,
22704 	SCAN_VMA_CHECK = 22,
22705 	SCAN_ADDRESS_RANGE = 23,
22706 	SCAN_DEL_PAGE_LRU = 24,
22707 	SCAN_ALLOC_HUGE_PAGE_FAIL = 25,
22708 	SCAN_CGROUP_CHARGE_FAIL = 26,
22709 	SCAN_TRUNCATED = 27,
22710 	SCAN_PAGE_HAS_PRIVATE = 28,
22711 };
22712 
22713 struct trace_event_raw_mm_khugepaged_scan_pmd {
22714 	struct trace_entry ent;
22715 	struct mm_struct *mm;
22716 	long unsigned int pfn;
22717 	bool writable;
22718 	int referenced;
22719 	int none_or_zero;
22720 	int status;
22721 	int unmapped;
22722 	char __data[0];
22723 };
22724 
22725 struct trace_event_raw_mm_collapse_huge_page {
22726 	struct trace_entry ent;
22727 	struct mm_struct *mm;
22728 	int isolated;
22729 	int status;
22730 	char __data[0];
22731 };
22732 
22733 struct trace_event_raw_mm_collapse_huge_page_isolate {
22734 	struct trace_entry ent;
22735 	long unsigned int pfn;
22736 	int none_or_zero;
22737 	int referenced;
22738 	bool writable;
22739 	int status;
22740 	char __data[0];
22741 };
22742 
22743 struct trace_event_raw_mm_collapse_huge_page_swapin {
22744 	struct trace_entry ent;
22745 	struct mm_struct *mm;
22746 	int swapped_in;
22747 	int referenced;
22748 	int ret;
22749 	char __data[0];
22750 };
22751 
22752 struct trace_event_raw_mm_khugepaged_scan_file {
22753 	struct trace_entry ent;
22754 	struct mm_struct *mm;
22755 	long unsigned int pfn;
22756 	u32 __data_loc_filename;
22757 	int present;
22758 	int swap;
22759 	int result;
22760 	char __data[0];
22761 };
22762 
22763 struct trace_event_raw_mm_khugepaged_collapse_file {
22764 	struct trace_entry ent;
22765 	struct mm_struct *mm;
22766 	long unsigned int hpfn;
22767 	long unsigned int index;
22768 	long unsigned int addr;
22769 	bool is_shmem;
22770 	u32 __data_loc_filename;
22771 	int nr;
22772 	int result;
22773 	char __data[0];
22774 };
22775 
22776 struct trace_event_data_offsets_mm_khugepaged_scan_pmd {};
22777 
22778 struct trace_event_data_offsets_mm_collapse_huge_page {};
22779 
22780 struct trace_event_data_offsets_mm_collapse_huge_page_isolate {};
22781 
22782 struct trace_event_data_offsets_mm_collapse_huge_page_swapin {};
22783 
22784 struct trace_event_data_offsets_mm_khugepaged_scan_file {
22785 	u32 filename;
22786 };
22787 
22788 struct trace_event_data_offsets_mm_khugepaged_collapse_file {
22789 	u32 filename;
22790 };
22791 
22792 typedef void (*btf_trace_mm_khugepaged_scan_pmd)(void *, struct mm_struct *, struct page *, bool, int, int, int, int);
22793 
22794 typedef void (*btf_trace_mm_collapse_huge_page)(void *, struct mm_struct *, int, int);
22795 
22796 typedef void (*btf_trace_mm_collapse_huge_page_isolate)(void *, struct page *, int, int, bool, int);
22797 
22798 typedef void (*btf_trace_mm_collapse_huge_page_swapin)(void *, struct mm_struct *, int, int, int);
22799 
22800 typedef void (*btf_trace_mm_khugepaged_scan_file)(void *, struct mm_struct *, struct page *, struct file *, int, int, int);
22801 
22802 typedef void (*btf_trace_mm_khugepaged_collapse_file)(void *, struct mm_struct *, struct page *, long unsigned int, bool, long unsigned int, struct file *, int, int);
22803 
22804 struct collapse_control {
22805 	bool is_khugepaged;
22806 	u32 node_load[64];
22807 	nodemask_t alloc_nmask;
22808 };
22809 
22810 struct khugepaged_mm_slot {
22811 	struct mm_slot slot;
22812 	int nr_pte_mapped_thp;
22813 	long unsigned int pte_mapped_thp[8];
22814 };
22815 
22816 struct khugepaged_scan {
22817 	struct list_head mm_head;
22818 	struct khugepaged_mm_slot *mm_slot;
22819 	long unsigned int address;
22820 };
22821 
22822 struct trace_event_raw_test_pages_isolated {
22823 	struct trace_entry ent;
22824 	long unsigned int start_pfn;
22825 	long unsigned int end_pfn;
22826 	long unsigned int fin_pfn;
22827 	char __data[0];
22828 };
22829 
22830 struct trace_event_data_offsets_test_pages_isolated {};
22831 
22832 typedef void (*btf_trace_test_pages_isolated)(void *, long unsigned int, long unsigned int, long unsigned int);
22833 
22834 typedef void (*exitcall_t)();
22835 
22836 struct zpool_driver {
22837 	char *type;
22838 	struct module *owner;
22839 	atomic_t refcount;
22840 	struct list_head list;
22841 	void * (*create)(const char *, gfp_t, const struct zpool_ops *, struct zpool *);
22842 	void (*destroy)(void *);
22843 	bool malloc_support_movable;
22844 	int (*malloc)(void *, size_t, gfp_t, long unsigned int *);
22845 	void (*free)(void *, long unsigned int);
22846 	int (*shrink)(void *, unsigned int, unsigned int *);
22847 	bool sleep_mapped;
22848 	void * (*map)(void *, long unsigned int, enum zpool_mapmode);
22849 	void (*unmap)(void *, long unsigned int);
22850 	u64 (*total_size)(void *);
22851 };
22852 
22853 enum buddy {
22854 	HEADLESS = 0,
22855 	FIRST = 1,
22856 	MIDDLE = 2,
22857 	LAST = 3,
22858 	BUDDIES_MAX = 3,
22859 };
22860 
22861 struct z3fold_buddy_slots {
22862 	long unsigned int slot[4];
22863 	long unsigned int pool;
22864 	rwlock_t lock;
22865 };
22866 
22867 struct z3fold_pool;
22868 
22869 struct z3fold_header {
22870 	struct list_head buddy;
22871 	spinlock_t page_lock;
22872 	struct kref refcount;
22873 	struct work_struct work;
22874 	struct z3fold_buddy_slots *slots;
22875 	struct z3fold_pool *pool;
22876 	short int cpu;
22877 	short unsigned int first_chunks;
22878 	short unsigned int middle_chunks;
22879 	short unsigned int last_chunks;
22880 	short unsigned int start_middle;
22881 	short unsigned int first_num: 2;
22882 	short unsigned int mapped_count: 2;
22883 	short unsigned int foreign_handles: 2;
22884 };
22885 
22886 struct z3fold_pool {
22887 	const char *name;
22888 	spinlock_t lock;
22889 	spinlock_t stale_lock;
22890 	struct list_head *unbuddied;
22891 	struct list_head lru;
22892 	struct list_head stale;
22893 	atomic64_t pages_nr;
22894 	struct kmem_cache *c_handle;
22895 	struct zpool *zpool;
22896 	const struct zpool_ops *zpool_ops;
22897 	struct workqueue_struct *compact_wq;
22898 	struct workqueue_struct *release_wq;
22899 	struct work_struct work;
22900 };
22901 
22902 enum z3fold_page_flags {
22903 	PAGE_HEADLESS = 0,
22904 	MIDDLE_CHUNK_MAPPED = 1,
22905 	NEEDS_COMPACTING = 2,
22906 	PAGE_STALE = 3,
22907 	PAGE_CLAIMED = 4,
22908 	PAGE_MIGRATED = 5,
22909 };
22910 
22911 enum z3fold_handle_flags {
22912 	HANDLES_NOFREE = 0,
22913 };
22914 
22915 struct page_reporting_dev_info {
22916 	int (*report)(struct page_reporting_dev_info *, struct scatterlist *, unsigned int);
22917 	struct delayed_work work;
22918 	atomic_t state;
22919 	unsigned int order;
22920 };
22921 
22922 enum {
22923 	PAGE_REPORTING_IDLE = 0,
22924 	PAGE_REPORTING_REQUESTED = 1,
22925 	PAGE_REPORTING_ACTIVE = 2,
22926 };
22927 
22928 typedef __kernel_long_t __kernel_off_t;
22929 
22930 typedef __kernel_off_t off_t;
22931 
22932 struct fd {
22933 	struct file *file;
22934 	unsigned int flags;
22935 };
22936 
22937 typedef __kernel_rwf_t rwf_t;
22938 
22939 enum fsnotify_data_type {
22940 	FSNOTIFY_EVENT_NONE = 0,
22941 	FSNOTIFY_EVENT_PATH = 1,
22942 	FSNOTIFY_EVENT_INODE = 2,
22943 	FSNOTIFY_EVENT_DENTRY = 3,
22944 	FSNOTIFY_EVENT_ERROR = 4,
22945 };
22946 
22947 struct stat {
22948 	long unsigned int st_dev;
22949 	long unsigned int st_ino;
22950 	unsigned int st_mode;
22951 	unsigned int st_nlink;
22952 	unsigned int st_uid;
22953 	unsigned int st_gid;
22954 	long unsigned int st_rdev;
22955 	long unsigned int __pad1;
22956 	long int st_size;
22957 	int st_blksize;
22958 	int __pad2;
22959 	long int st_blocks;
22960 	long int st_atime;
22961 	long unsigned int st_atime_nsec;
22962 	long int st_mtime;
22963 	long unsigned int st_mtime_nsec;
22964 	long int st_ctime;
22965 	long unsigned int st_ctime_nsec;
22966 	unsigned int __unused4;
22967 	unsigned int __unused5;
22968 };
22969 
22970 struct statx_timestamp {
22971 	__s64 tv_sec;
22972 	__u32 tv_nsec;
22973 	__s32 __reserved;
22974 };
22975 
22976 struct statx {
22977 	__u32 stx_mask;
22978 	__u32 stx_blksize;
22979 	__u64 stx_attributes;
22980 	__u32 stx_nlink;
22981 	__u32 stx_uid;
22982 	__u32 stx_gid;
22983 	__u16 stx_mode;
22984 	__u16 __spare0[1];
22985 	__u64 stx_ino;
22986 	__u64 stx_size;
22987 	__u64 stx_blocks;
22988 	__u64 stx_attributes_mask;
22989 	struct statx_timestamp stx_atime;
22990 	struct statx_timestamp stx_btime;
22991 	struct statx_timestamp stx_ctime;
22992 	struct statx_timestamp stx_mtime;
22993 	__u32 stx_rdev_major;
22994 	__u32 stx_rdev_minor;
22995 	__u32 stx_dev_major;
22996 	__u32 stx_dev_minor;
22997 	__u64 stx_mnt_id;
22998 	__u32 stx_dio_mem_align;
22999 	__u32 stx_dio_offset_align;
23000 	__u64 __spare3[12];
23001 };
23002 
23003 struct mount;
23004 
23005 struct mnt_namespace {
23006 	struct ns_common ns;
23007 	struct mount *root;
23008 	struct list_head list;
23009 	spinlock_t ns_lock;
23010 	struct user_namespace *user_ns;
23011 	struct ucounts *ucounts;
23012 	u64 seq;
23013 	wait_queue_head_t poll;
23014 	u64 event;
23015 	unsigned int mounts;
23016 	unsigned int pending_mounts;
23017 };
23018 
23019 struct fs_pin {
23020 	wait_queue_head_t wait;
23021 	int done;
23022 	struct hlist_node s_list;
23023 	struct hlist_node m_list;
23024 	void (*kill)(struct fs_pin *);
23025 };
23026 
23027 struct mnt_pcp;
23028 
23029 struct mountpoint;
23030 
23031 struct mount {
23032 	struct hlist_node mnt_hash;
23033 	struct mount *mnt_parent;
23034 	struct dentry *mnt_mountpoint;
23035 	struct vfsmount mnt;
23036 	union {
23037 		struct callback_head mnt_rcu;
23038 		struct llist_node mnt_llist;
23039 	};
23040 	struct mnt_pcp *mnt_pcp;
23041 	struct list_head mnt_mounts;
23042 	struct list_head mnt_child;
23043 	struct list_head mnt_instance;
23044 	const char *mnt_devname;
23045 	struct list_head mnt_list;
23046 	struct list_head mnt_expire;
23047 	struct list_head mnt_share;
23048 	struct list_head mnt_slave_list;
23049 	struct list_head mnt_slave;
23050 	struct mount *mnt_master;
23051 	struct mnt_namespace *mnt_ns;
23052 	struct mountpoint *mnt_mp;
23053 	union {
23054 		struct hlist_node mnt_mp_list;
23055 		struct hlist_node mnt_umount;
23056 	};
23057 	struct list_head mnt_umounting;
23058 	struct fsnotify_mark_connector *mnt_fsnotify_marks;
23059 	__u32 mnt_fsnotify_mask;
23060 	int mnt_id;
23061 	int mnt_group_id;
23062 	int mnt_expiry_mark;
23063 	struct hlist_head mnt_pins;
23064 	struct hlist_head mnt_stuck_children;
23065 };
23066 
23067 struct mnt_pcp {
23068 	int mnt_count;
23069 	int mnt_writers;
23070 };
23071 
23072 struct mountpoint {
23073 	struct hlist_node m_hash;
23074 	struct dentry *m_dentry;
23075 	struct hlist_head m_list;
23076 	int m_count;
23077 };
23078 
23079 struct f_owner_ex {
23080 	int type;
23081 	__kernel_pid_t pid;
23082 };
23083 
23084 struct flock {
23085 	short int l_type;
23086 	short int l_whence;
23087 	__kernel_off_t l_start;
23088 	__kernel_off_t l_len;
23089 	__kernel_pid_t l_pid;
23090 };
23091 
23092 enum rw_hint {
23093 	WRITE_LIFE_NOT_SET = 0,
23094 	WRITE_LIFE_NONE = 1,
23095 	WRITE_LIFE_SHORT = 2,
23096 	WRITE_LIFE_MEDIUM = 3,
23097 	WRITE_LIFE_LONG = 4,
23098 	WRITE_LIFE_EXTREME = 5,
23099 };
23100 
23101 typedef struct {
23102 	long unsigned int fds_bits[16];
23103 } __kernel_fd_set;
23104 
23105 typedef __kernel_fd_set fd_set;
23106 
23107 struct old_timeval32 {
23108 	old_time32_t tv_sec;
23109 	s32 tv_usec;
23110 };
23111 
23112 struct poll_table_entry {
23113 	struct file *filp;
23114 	__poll_t key;
23115 	wait_queue_entry_t wait;
23116 	wait_queue_head_t *wait_address;
23117 };
23118 
23119 struct poll_table_page;
23120 
23121 struct poll_wqueues {
23122 	poll_table pt;
23123 	struct poll_table_page *table;
23124 	struct task_struct *polling_task;
23125 	int triggered;
23126 	int error;
23127 	int inline_index;
23128 	struct poll_table_entry inline_entries[9];
23129 };
23130 
23131 struct poll_table_page {
23132 	struct poll_table_page *next;
23133 	struct poll_table_entry *entry;
23134 	struct poll_table_entry entries[0];
23135 };
23136 
23137 struct ip_ra_chain {
23138 	struct ip_ra_chain *next;
23139 	struct sock *sk;
23140 	union {
23141 		void (*destructor)(struct sock *);
23142 		struct sock *saved_sk;
23143 	};
23144 	struct callback_head rcu;
23145 };
23146 
23147 struct fib_table {
23148 	struct hlist_node tb_hlist;
23149 	u32 tb_id;
23150 	int tb_num_default;
23151 	struct callback_head rcu;
23152 	long unsigned int *tb_data;
23153 	long unsigned int __data[0];
23154 };
23155 
23156 struct inet_peer_base {
23157 	struct rb_root rb_root;
23158 	seqlock_t lock;
23159 	int total;
23160 };
23161 
23162 struct lwtunnel_state {
23163 	__u16 type;
23164 	__u16 flags;
23165 	__u16 headroom;
23166 	atomic_t refcnt;
23167 	int (*orig_output)(struct net *, struct sock *, struct sk_buff *);
23168 	int (*orig_input)(struct sk_buff *);
23169 	struct callback_head rcu;
23170 	__u8 data[0];
23171 };
23172 
23173 enum {
23174 	__ND_OPT_PREFIX_INFO_END = 0,
23175 	ND_OPT_SOURCE_LL_ADDR = 1,
23176 	ND_OPT_TARGET_LL_ADDR = 2,
23177 	ND_OPT_PREFIX_INFO = 3,
23178 	ND_OPT_REDIRECT_HDR = 4,
23179 	ND_OPT_MTU = 5,
23180 	ND_OPT_NONCE = 14,
23181 	__ND_OPT_ARRAY_MAX = 15,
23182 	ND_OPT_ROUTE_INFO = 24,
23183 	ND_OPT_RDNSS = 25,
23184 	ND_OPT_DNSSL = 31,
23185 	ND_OPT_6CO = 34,
23186 	ND_OPT_CAPTIVE_PORTAL = 37,
23187 	ND_OPT_PREF64 = 38,
23188 	__ND_OPT_MAX = 39,
23189 };
23190 
23191 struct nd_opt_hdr {
23192 	__u8 nd_opt_type;
23193 	__u8 nd_opt_len;
23194 };
23195 
23196 struct ndisc_options {
23197 	struct nd_opt_hdr *nd_opt_array[15];
23198 	struct nd_opt_hdr *nd_opts_ri;
23199 	struct nd_opt_hdr *nd_opts_ri_end;
23200 	struct nd_opt_hdr *nd_useropts;
23201 	struct nd_opt_hdr *nd_useropts_end;
23202 };
23203 
23204 struct prefix_info {
23205 	__u8 type;
23206 	__u8 length;
23207 	__u8 prefix_len;
23208 	__u8 reserved: 6;
23209 	__u8 autoconf: 1;
23210 	__u8 onlink: 1;
23211 	__be32 valid;
23212 	__be32 prefered;
23213 	__be32 reserved2;
23214 	struct in6_addr prefix;
23215 };
23216 
23217 enum poll_time_type {
23218 	PT_TIMEVAL = 0,
23219 	PT_OLD_TIMEVAL = 1,
23220 	PT_TIMESPEC = 2,
23221 	PT_OLD_TIMESPEC = 3,
23222 };
23223 
23224 typedef struct {
23225 	long unsigned int *in;
23226 	long unsigned int *out;
23227 	long unsigned int *ex;
23228 	long unsigned int *res_in;
23229 	long unsigned int *res_out;
23230 	long unsigned int *res_ex;
23231 } fd_set_bits;
23232 
23233 struct sigset_argpack {
23234 	sigset_t *p;
23235 	size_t size;
23236 };
23237 
23238 struct poll_list {
23239 	struct poll_list *next;
23240 	int len;
23241 	struct pollfd entries[0];
23242 };
23243 
23244 enum {
23245 	DUMP_PREFIX_NONE = 0,
23246 	DUMP_PREFIX_ADDRESS = 1,
23247 	DUMP_PREFIX_OFFSET = 2,
23248 };
23249 
23250 struct mnt_idmap {
23251 	struct user_namespace *owner;
23252 	refcount_t count;
23253 };
23254 
23255 struct posix_acl_entry {
23256 	short int e_tag;
23257 	short unsigned int e_perm;
23258 	union {
23259 		kuid_t e_uid;
23260 		kgid_t e_gid;
23261 	};
23262 };
23263 
23264 struct posix_acl {
23265 	refcount_t a_refcount;
23266 	struct callback_head a_rcu;
23267 	unsigned int a_count;
23268 	struct posix_acl_entry a_entries[0];
23269 };
23270 
23271 struct simple_xattrs {
23272 	struct rb_root rb_root;
23273 	rwlock_t lock;
23274 };
23275 
23276 struct simple_xattr {
23277 	struct rb_node rb_node;
23278 	char *name;
23279 	size_t size;
23280 	char value[0];
23281 };
23282 
23283 enum fsnotify_iter_type {
23284 	FSNOTIFY_ITER_TYPE_INODE = 0,
23285 	FSNOTIFY_ITER_TYPE_VFSMOUNT = 1,
23286 	FSNOTIFY_ITER_TYPE_SB = 2,
23287 	FSNOTIFY_ITER_TYPE_PARENT = 3,
23288 	FSNOTIFY_ITER_TYPE_INODE2 = 4,
23289 	FSNOTIFY_ITER_TYPE_COUNT = 5,
23290 };
23291 
23292 struct xattr_name {
23293 	char name[256];
23294 };
23295 
23296 struct xattr_ctx {
23297 	union {
23298 		const void *cvalue;
23299 		void *value;
23300 	};
23301 	void *kvalue;
23302 	size_t size;
23303 	struct xattr_name *kname;
23304 	unsigned int flags;
23305 };
23306 
23307 typedef __kernel_ulong_t ino_t;
23308 
23309 enum wb_state {
23310 	WB_registered = 0,
23311 	WB_writeback_running = 1,
23312 	WB_has_dirty_io = 2,
23313 	WB_start_all = 3,
23314 };
23315 
23316 struct wb_writeback_work {
23317 	long int nr_pages;
23318 	struct super_block *sb;
23319 	enum writeback_sync_modes sync_mode;
23320 	unsigned int tagged_writepages: 1;
23321 	unsigned int for_kupdate: 1;
23322 	unsigned int range_cyclic: 1;
23323 	unsigned int for_background: 1;
23324 	unsigned int for_sync: 1;
23325 	unsigned int auto_free: 1;
23326 	enum wb_reason reason;
23327 	struct list_head list;
23328 	struct wb_completion *done;
23329 };
23330 
23331 struct trace_event_raw_writeback_folio_template {
23332 	struct trace_entry ent;
23333 	char name[32];
23334 	ino_t ino;
23335 	long unsigned int index;
23336 	char __data[0];
23337 };
23338 
23339 struct trace_event_raw_writeback_dirty_inode_template {
23340 	struct trace_entry ent;
23341 	char name[32];
23342 	ino_t ino;
23343 	long unsigned int state;
23344 	long unsigned int flags;
23345 	char __data[0];
23346 };
23347 
23348 struct trace_event_raw_inode_foreign_history {
23349 	struct trace_entry ent;
23350 	char name[32];
23351 	ino_t ino;
23352 	ino_t cgroup_ino;
23353 	unsigned int history;
23354 	char __data[0];
23355 };
23356 
23357 struct trace_event_raw_inode_switch_wbs {
23358 	struct trace_entry ent;
23359 	char name[32];
23360 	ino_t ino;
23361 	ino_t old_cgroup_ino;
23362 	ino_t new_cgroup_ino;
23363 	char __data[0];
23364 };
23365 
23366 struct trace_event_raw_track_foreign_dirty {
23367 	struct trace_entry ent;
23368 	char name[32];
23369 	u64 bdi_id;
23370 	ino_t ino;
23371 	unsigned int memcg_id;
23372 	ino_t cgroup_ino;
23373 	ino_t page_cgroup_ino;
23374 	char __data[0];
23375 };
23376 
23377 struct trace_event_raw_flush_foreign {
23378 	struct trace_entry ent;
23379 	char name[32];
23380 	ino_t cgroup_ino;
23381 	unsigned int frn_bdi_id;
23382 	unsigned int frn_memcg_id;
23383 	char __data[0];
23384 };
23385 
23386 struct trace_event_raw_writeback_write_inode_template {
23387 	struct trace_entry ent;
23388 	char name[32];
23389 	ino_t ino;
23390 	int sync_mode;
23391 	ino_t cgroup_ino;
23392 	char __data[0];
23393 };
23394 
23395 struct trace_event_raw_writeback_work_class {
23396 	struct trace_entry ent;
23397 	char name[32];
23398 	long int nr_pages;
23399 	dev_t sb_dev;
23400 	int sync_mode;
23401 	int for_kupdate;
23402 	int range_cyclic;
23403 	int for_background;
23404 	int reason;
23405 	ino_t cgroup_ino;
23406 	char __data[0];
23407 };
23408 
23409 struct trace_event_raw_writeback_pages_written {
23410 	struct trace_entry ent;
23411 	long int pages;
23412 	char __data[0];
23413 };
23414 
23415 struct trace_event_raw_writeback_class {
23416 	struct trace_entry ent;
23417 	char name[32];
23418 	ino_t cgroup_ino;
23419 	char __data[0];
23420 };
23421 
23422 struct trace_event_raw_writeback_bdi_register {
23423 	struct trace_entry ent;
23424 	char name[32];
23425 	char __data[0];
23426 };
23427 
23428 struct trace_event_raw_wbc_class {
23429 	struct trace_entry ent;
23430 	char name[32];
23431 	long int nr_to_write;
23432 	long int pages_skipped;
23433 	int sync_mode;
23434 	int for_kupdate;
23435 	int for_background;
23436 	int for_reclaim;
23437 	int range_cyclic;
23438 	long int range_start;
23439 	long int range_end;
23440 	ino_t cgroup_ino;
23441 	char __data[0];
23442 };
23443 
23444 struct trace_event_raw_writeback_queue_io {
23445 	struct trace_entry ent;
23446 	char name[32];
23447 	long unsigned int older;
23448 	long int age;
23449 	int moved;
23450 	int reason;
23451 	ino_t cgroup_ino;
23452 	char __data[0];
23453 };
23454 
23455 struct trace_event_raw_global_dirty_state {
23456 	struct trace_entry ent;
23457 	long unsigned int nr_dirty;
23458 	long unsigned int nr_writeback;
23459 	long unsigned int background_thresh;
23460 	long unsigned int dirty_thresh;
23461 	long unsigned int dirty_limit;
23462 	long unsigned int nr_dirtied;
23463 	long unsigned int nr_written;
23464 	char __data[0];
23465 };
23466 
23467 struct trace_event_raw_bdi_dirty_ratelimit {
23468 	struct trace_entry ent;
23469 	char bdi[32];
23470 	long unsigned int write_bw;
23471 	long unsigned int avg_write_bw;
23472 	long unsigned int dirty_rate;
23473 	long unsigned int dirty_ratelimit;
23474 	long unsigned int task_ratelimit;
23475 	long unsigned int balanced_dirty_ratelimit;
23476 	ino_t cgroup_ino;
23477 	char __data[0];
23478 };
23479 
23480 struct trace_event_raw_balance_dirty_pages {
23481 	struct trace_entry ent;
23482 	char bdi[32];
23483 	long unsigned int limit;
23484 	long unsigned int setpoint;
23485 	long unsigned int dirty;
23486 	long unsigned int bdi_setpoint;
23487 	long unsigned int bdi_dirty;
23488 	long unsigned int dirty_ratelimit;
23489 	long unsigned int task_ratelimit;
23490 	unsigned int dirtied;
23491 	unsigned int dirtied_pause;
23492 	long unsigned int paused;
23493 	long int pause;
23494 	long unsigned int period;
23495 	long int think;
23496 	ino_t cgroup_ino;
23497 	char __data[0];
23498 };
23499 
23500 struct trace_event_raw_writeback_sb_inodes_requeue {
23501 	struct trace_entry ent;
23502 	char name[32];
23503 	ino_t ino;
23504 	long unsigned int state;
23505 	long unsigned int dirtied_when;
23506 	ino_t cgroup_ino;
23507 	char __data[0];
23508 };
23509 
23510 struct trace_event_raw_writeback_single_inode_template {
23511 	struct trace_entry ent;
23512 	char name[32];
23513 	ino_t ino;
23514 	long unsigned int state;
23515 	long unsigned int dirtied_when;
23516 	long unsigned int writeback_index;
23517 	long int nr_to_write;
23518 	long unsigned int wrote;
23519 	ino_t cgroup_ino;
23520 	char __data[0];
23521 };
23522 
23523 struct trace_event_raw_writeback_inode_template {
23524 	struct trace_entry ent;
23525 	dev_t dev;
23526 	ino_t ino;
23527 	long unsigned int state;
23528 	__u16 mode;
23529 	long unsigned int dirtied_when;
23530 	char __data[0];
23531 };
23532 
23533 struct trace_event_data_offsets_writeback_folio_template {};
23534 
23535 struct trace_event_data_offsets_writeback_dirty_inode_template {};
23536 
23537 struct trace_event_data_offsets_inode_foreign_history {};
23538 
23539 struct trace_event_data_offsets_inode_switch_wbs {};
23540 
23541 struct trace_event_data_offsets_track_foreign_dirty {};
23542 
23543 struct trace_event_data_offsets_flush_foreign {};
23544 
23545 struct trace_event_data_offsets_writeback_write_inode_template {};
23546 
23547 struct trace_event_data_offsets_writeback_work_class {};
23548 
23549 struct trace_event_data_offsets_writeback_pages_written {};
23550 
23551 struct trace_event_data_offsets_writeback_class {};
23552 
23553 struct trace_event_data_offsets_writeback_bdi_register {};
23554 
23555 struct trace_event_data_offsets_wbc_class {};
23556 
23557 struct trace_event_data_offsets_writeback_queue_io {};
23558 
23559 struct trace_event_data_offsets_global_dirty_state {};
23560 
23561 struct trace_event_data_offsets_bdi_dirty_ratelimit {};
23562 
23563 struct trace_event_data_offsets_balance_dirty_pages {};
23564 
23565 struct trace_event_data_offsets_writeback_sb_inodes_requeue {};
23566 
23567 struct trace_event_data_offsets_writeback_single_inode_template {};
23568 
23569 struct trace_event_data_offsets_writeback_inode_template {};
23570 
23571 typedef void (*btf_trace_writeback_dirty_folio)(void *, struct folio *, struct address_space *);
23572 
23573 typedef void (*btf_trace_folio_wait_writeback)(void *, struct folio *, struct address_space *);
23574 
23575 typedef void (*btf_trace_writeback_mark_inode_dirty)(void *, struct inode *, int);
23576 
23577 typedef void (*btf_trace_writeback_dirty_inode_start)(void *, struct inode *, int);
23578 
23579 typedef void (*btf_trace_writeback_dirty_inode)(void *, struct inode *, int);
23580 
23581 typedef void (*btf_trace_inode_foreign_history)(void *, struct inode *, struct writeback_control *, unsigned int);
23582 
23583 typedef void (*btf_trace_inode_switch_wbs)(void *, struct inode *, struct bdi_writeback *, struct bdi_writeback *);
23584 
23585 typedef void (*btf_trace_track_foreign_dirty)(void *, struct folio *, struct bdi_writeback *);
23586 
23587 typedef void (*btf_trace_flush_foreign)(void *, struct bdi_writeback *, unsigned int, unsigned int);
23588 
23589 typedef void (*btf_trace_writeback_write_inode_start)(void *, struct inode *, struct writeback_control *);
23590 
23591 typedef void (*btf_trace_writeback_write_inode)(void *, struct inode *, struct writeback_control *);
23592 
23593 typedef void (*btf_trace_writeback_queue)(void *, struct bdi_writeback *, struct wb_writeback_work *);
23594 
23595 typedef void (*btf_trace_writeback_exec)(void *, struct bdi_writeback *, struct wb_writeback_work *);
23596 
23597 typedef void (*btf_trace_writeback_start)(void *, struct bdi_writeback *, struct wb_writeback_work *);
23598 
23599 typedef void (*btf_trace_writeback_written)(void *, struct bdi_writeback *, struct wb_writeback_work *);
23600 
23601 typedef void (*btf_trace_writeback_wait)(void *, struct bdi_writeback *, struct wb_writeback_work *);
23602 
23603 typedef void (*btf_trace_writeback_pages_written)(void *, long int);
23604 
23605 typedef void (*btf_trace_writeback_wake_background)(void *, struct bdi_writeback *);
23606 
23607 typedef void (*btf_trace_writeback_bdi_register)(void *, struct backing_dev_info *);
23608 
23609 typedef void (*btf_trace_wbc_writepage)(void *, struct writeback_control *, struct backing_dev_info *);
23610 
23611 typedef void (*btf_trace_writeback_queue_io)(void *, struct bdi_writeback *, struct wb_writeback_work *, long unsigned int, int);
23612 
23613 typedef void (*btf_trace_global_dirty_state)(void *, long unsigned int, long unsigned int);
23614 
23615 typedef void (*btf_trace_bdi_dirty_ratelimit)(void *, struct bdi_writeback *, long unsigned int, long unsigned int);
23616 
23617 typedef void (*btf_trace_balance_dirty_pages)(void *, struct bdi_writeback *, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long int, long unsigned int);
23618 
23619 typedef void (*btf_trace_writeback_sb_inodes_requeue)(void *, struct inode *);
23620 
23621 typedef void (*btf_trace_writeback_single_inode_start)(void *, struct inode *, struct writeback_control *, long unsigned int);
23622 
23623 typedef void (*btf_trace_writeback_single_inode)(void *, struct inode *, struct writeback_control *, long unsigned int);
23624 
23625 typedef void (*btf_trace_writeback_lazytime)(void *, struct inode *);
23626 
23627 typedef void (*btf_trace_writeback_lazytime_iput)(void *, struct inode *);
23628 
23629 typedef void (*btf_trace_writeback_dirty_inode_enqueue)(void *, struct inode *);
23630 
23631 typedef void (*btf_trace_sb_mark_inode_writeback)(void *, struct inode *);
23632 
23633 typedef void (*btf_trace_sb_clear_inode_writeback)(void *, struct inode *);
23634 
23635 struct inode_switch_wbs_context {
23636 	struct rcu_work work;
23637 	struct bdi_writeback *new_wb;
23638 	struct inode *inodes[0];
23639 };
23640 
23641 typedef struct ns_common *ns_get_path_helper_t(void *);
23642 
23643 struct ns_get_path_task_args {
23644 	const struct proc_ns_operations *ns_ops;
23645 	struct task_struct *task;
23646 };
23647 
23648 struct file_dedupe_range_info {
23649 	__s64 dest_fd;
23650 	__u64 dest_offset;
23651 	__u64 bytes_deduped;
23652 	__s32 status;
23653 	__u32 reserved;
23654 };
23655 
23656 struct file_dedupe_range {
23657 	__u64 src_offset;
23658 	__u64 src_length;
23659 	__u16 dest_count;
23660 	__u16 reserved1;
23661 	__u32 reserved2;
23662 	struct file_dedupe_range_info info[0];
23663 };
23664 
23665 struct iomap_ops;
23666 
23667 typedef u32 nlink_t;
23668 
23669 typedef int (*proc_write_t)(struct file *, char *, size_t);
23670 
23671 struct proc_dir_entry {
23672 	atomic_t in_use;
23673 	refcount_t refcnt;
23674 	struct list_head pde_openers;
23675 	spinlock_t pde_unload_lock;
23676 	struct completion *pde_unload_completion;
23677 	const struct inode_operations *proc_iops;
23678 	union {
23679 		const struct proc_ops *proc_ops;
23680 		const struct file_operations *proc_dir_ops;
23681 	};
23682 	const struct dentry_operations *proc_dops;
23683 	union {
23684 		const struct seq_operations *seq_ops;
23685 		int (*single_show)(struct seq_file *, void *);
23686 	};
23687 	proc_write_t write;
23688 	void *data;
23689 	unsigned int state_size;
23690 	unsigned int low_ino;
23691 	nlink_t nlink;
23692 	kuid_t uid;
23693 	kgid_t gid;
23694 	loff_t size;
23695 	struct proc_dir_entry *parent;
23696 	struct rb_root subdir;
23697 	struct rb_node subdir_node;
23698 	char *name;
23699 	umode_t mode;
23700 	u8 flags;
23701 	u8 namelen;
23702 	char inline_name[0];
23703 };
23704 
23705 union proc_op {
23706 	int (*proc_get_link)(struct dentry *, struct path *);
23707 	int (*proc_show)(struct seq_file *, struct pid_namespace *, struct pid *, struct task_struct *);
23708 	const char *lsm;
23709 };
23710 
23711 struct proc_inode {
23712 	struct pid *pid;
23713 	unsigned int fd;
23714 	union proc_op op;
23715 	struct proc_dir_entry *pde;
23716 	struct ctl_table_header *sysctl;
23717 	struct ctl_table *sysctl_entry;
23718 	struct hlist_node sibling_inodes;
23719 	const struct proc_ns_operations *ns_ops;
23720 	struct inode vfs_inode;
23721 };
23722 
23723 struct proc_mounts {
23724 	struct mnt_namespace *ns;
23725 	struct path root;
23726 	int (*show)(struct seq_file *, struct vfsmount *);
23727 	struct mount cursor;
23728 };
23729 
23730 struct proc_fs_opts {
23731 	int flag;
23732 	const char *str;
23733 };
23734 
23735 struct inotify_event_info {
23736 	struct fsnotify_event fse;
23737 	u32 mask;
23738 	int wd;
23739 	u32 sync_cookie;
23740 	int name_len;
23741 	char name[0];
23742 };
23743 
23744 struct inotify_inode_mark {
23745 	struct fsnotify_mark fsn_mark;
23746 	int wd;
23747 };
23748 
23749 struct name_snapshot {
23750 	struct qstr name;
23751 	unsigned char inline_name[32];
23752 };
23753 
23754 struct epoll_event {
23755 	__poll_t events;
23756 	__u64 data;
23757 };
23758 
23759 struct epoll_filefd {
23760 	struct file *file;
23761 	int fd;
23762 } __attribute__((packed));
23763 
23764 struct epitem;
23765 
23766 struct eppoll_entry {
23767 	struct eppoll_entry *next;
23768 	struct epitem *base;
23769 	wait_queue_entry_t wait;
23770 	wait_queue_head_t *whead;
23771 };
23772 
23773 struct eventpoll;
23774 
23775 struct epitem {
23776 	union {
23777 		struct rb_node rbn;
23778 		struct callback_head rcu;
23779 	};
23780 	struct list_head rdllink;
23781 	struct epitem *next;
23782 	struct epoll_filefd ffd;
23783 	struct eppoll_entry *pwqlist;
23784 	struct eventpoll *ep;
23785 	struct hlist_node fllink;
23786 	struct wakeup_source *ws;
23787 	struct epoll_event event;
23788 };
23789 
23790 struct eventpoll {
23791 	struct mutex mtx;
23792 	wait_queue_head_t wq;
23793 	wait_queue_head_t poll_wait;
23794 	struct list_head rdllist;
23795 	rwlock_t lock;
23796 	struct rb_root_cached rbr;
23797 	struct epitem *ovflist;
23798 	struct wakeup_source *ws;
23799 	struct user_struct *user;
23800 	struct file *file;
23801 	u64 gen;
23802 	struct hlist_head refs;
23803 	unsigned int napi_id;
23804 };
23805 
23806 struct ep_pqueue {
23807 	poll_table pt;
23808 	struct epitem *epi;
23809 };
23810 
23811 struct epitems_head {
23812 	struct hlist_head epitems;
23813 	struct epitems_head *next;
23814 };
23815 
23816 struct kioctx;
23817 
23818 struct kioctx_table {
23819 	struct callback_head rcu;
23820 	unsigned int nr;
23821 	struct kioctx *table[0];
23822 };
23823 
23824 typedef __kernel_ulong_t aio_context_t;
23825 
23826 enum {
23827 	IOCB_CMD_PREAD = 0,
23828 	IOCB_CMD_PWRITE = 1,
23829 	IOCB_CMD_FSYNC = 2,
23830 	IOCB_CMD_FDSYNC = 3,
23831 	IOCB_CMD_POLL = 5,
23832 	IOCB_CMD_NOOP = 6,
23833 	IOCB_CMD_PREADV = 7,
23834 	IOCB_CMD_PWRITEV = 8,
23835 };
23836 
23837 struct io_event {
23838 	__u64 data;
23839 	__u64 obj;
23840 	__s64 res;
23841 	__s64 res2;
23842 };
23843 
23844 struct iocb {
23845 	__u64 aio_data;
23846 	__u32 aio_key;
23847 	__kernel_rwf_t aio_rw_flags;
23848 	__u16 aio_lio_opcode;
23849 	__s16 aio_reqprio;
23850 	__u32 aio_fildes;
23851 	__u64 aio_buf;
23852 	__u64 aio_nbytes;
23853 	__s64 aio_offset;
23854 	__u64 aio_reserved2;
23855 	__u32 aio_flags;
23856 	__u32 aio_resfd;
23857 };
23858 
23859 typedef int kiocb_cancel_fn(struct kiocb *);
23860 
23861 struct aio_ring {
23862 	unsigned int id;
23863 	unsigned int nr;
23864 	unsigned int head;
23865 	unsigned int tail;
23866 	unsigned int magic;
23867 	unsigned int compat_features;
23868 	unsigned int incompat_features;
23869 	unsigned int header_length;
23870 	struct io_event io_events[0];
23871 };
23872 
23873 struct kioctx_cpu;
23874 
23875 struct ctx_rq_wait;
23876 
23877 struct kioctx {
23878 	struct percpu_ref users;
23879 	atomic_t dead;
23880 	struct percpu_ref reqs;
23881 	long unsigned int user_id;
23882 	struct kioctx_cpu *cpu;
23883 	unsigned int req_batch;
23884 	unsigned int max_reqs;
23885 	unsigned int nr_events;
23886 	long unsigned int mmap_base;
23887 	long unsigned int mmap_size;
23888 	struct page **ring_pages;
23889 	long int nr_pages;
23890 	struct rcu_work free_rwork;
23891 	struct ctx_rq_wait *rq_wait;
23892 	long: 64;
23893 	long: 64;
23894 	long: 64;
23895 	struct {
23896 		atomic_t reqs_available;
23897 		long: 32;
23898 		long: 64;
23899 		long: 64;
23900 		long: 64;
23901 		long: 64;
23902 		long: 64;
23903 		long: 64;
23904 		long: 64;
23905 	};
23906 	struct {
23907 		spinlock_t ctx_lock;
23908 		struct list_head active_reqs;
23909 		long: 64;
23910 		long: 64;
23911 		long: 64;
23912 		long: 64;
23913 		long: 64;
23914 	};
23915 	struct {
23916 		struct mutex ring_lock;
23917 		wait_queue_head_t wait;
23918 		long: 64;
23919 	};
23920 	struct {
23921 		unsigned int tail;
23922 		unsigned int completed_events;
23923 		spinlock_t completion_lock;
23924 		long: 32;
23925 		long: 64;
23926 		long: 64;
23927 		long: 64;
23928 		long: 64;
23929 		long: 64;
23930 		long: 64;
23931 	};
23932 	struct page *internal_pages[8];
23933 	struct file *aio_ring_file;
23934 	unsigned int id;
23935 	long: 32;
23936 	long: 64;
23937 	long: 64;
23938 	long: 64;
23939 	long: 64;
23940 	long: 64;
23941 	long: 64;
23942 };
23943 
23944 struct kioctx_cpu {
23945 	unsigned int reqs_available;
23946 };
23947 
23948 struct ctx_rq_wait {
23949 	struct completion comp;
23950 	atomic_t count;
23951 };
23952 
23953 struct fsync_iocb {
23954 	struct file *file;
23955 	struct work_struct work;
23956 	bool datasync;
23957 	struct cred *creds;
23958 };
23959 
23960 struct poll_iocb {
23961 	struct file *file;
23962 	struct wait_queue_head *head;
23963 	__poll_t events;
23964 	bool cancelled;
23965 	bool work_scheduled;
23966 	bool work_need_resched;
23967 	struct wait_queue_entry wait;
23968 	struct work_struct work;
23969 };
23970 
23971 struct aio_kiocb {
23972 	union {
23973 		struct file *ki_filp;
23974 		struct kiocb rw;
23975 		struct fsync_iocb fsync;
23976 		struct poll_iocb poll;
23977 	};
23978 	struct kioctx *ki_ctx;
23979 	kiocb_cancel_fn *ki_cancel;
23980 	struct io_event ki_res;
23981 	struct list_head ki_list;
23982 	refcount_t ki_refcnt;
23983 	struct eventfd_ctx *ki_eventfd;
23984 };
23985 
23986 struct aio_poll_table {
23987 	struct poll_table_struct pt;
23988 	struct aio_kiocb *iocb;
23989 	bool queued;
23990 	int error;
23991 };
23992 
23993 struct __aio_sigset {
23994 	const sigset_t *sigmask;
23995 	size_t sigsetsize;
23996 };
23997 
23998 struct skcipher_request {
23999 	unsigned int cryptlen;
24000 	u8 *iv;
24001 	struct scatterlist *src;
24002 	struct scatterlist *dst;
24003 	struct crypto_async_request base;
24004 	void *__ctx[0];
24005 };
24006 
24007 struct crypto_skcipher {
24008 	unsigned int reqsize;
24009 	struct crypto_tfm base;
24010 };
24011 
24012 struct skcipher_alg {
24013 	int (*setkey)(struct crypto_skcipher *, const u8 *, unsigned int);
24014 	int (*encrypt)(struct skcipher_request *);
24015 	int (*decrypt)(struct skcipher_request *);
24016 	int (*init)(struct crypto_skcipher *);
24017 	void (*exit)(struct crypto_skcipher *);
24018 	unsigned int min_keysize;
24019 	unsigned int max_keysize;
24020 	unsigned int ivsize;
24021 	unsigned int chunksize;
24022 	unsigned int walksize;
24023 	struct crypto_alg base;
24024 };
24025 
24026 struct blk_crypto_key;
24027 
24028 struct fscrypt_prepared_key {
24029 	struct crypto_skcipher *tfm;
24030 	struct blk_crypto_key *blk_key;
24031 };
24032 
24033 struct fscrypt_policy_v1 {
24034 	__u8 version;
24035 	__u8 contents_encryption_mode;
24036 	__u8 filenames_encryption_mode;
24037 	__u8 flags;
24038 	__u8 master_key_descriptor[8];
24039 };
24040 
24041 struct fscrypt_policy_v2 {
24042 	__u8 version;
24043 	__u8 contents_encryption_mode;
24044 	__u8 filenames_encryption_mode;
24045 	__u8 flags;
24046 	__u8 __reserved[4];
24047 	__u8 master_key_identifier[16];
24048 };
24049 
24050 union fscrypt_policy {
24051 	u8 version;
24052 	struct fscrypt_policy_v1 v1;
24053 	struct fscrypt_policy_v2 v2;
24054 };
24055 
24056 struct fscrypt_mode;
24057 
24058 struct fscrypt_master_key;
24059 
24060 struct fscrypt_direct_key;
24061 
24062 struct fscrypt_info {
24063 	struct fscrypt_prepared_key ci_enc_key;
24064 	bool ci_owns_key;
24065 	bool ci_inlinecrypt;
24066 	struct fscrypt_mode *ci_mode;
24067 	struct inode *ci_inode;
24068 	struct fscrypt_master_key *ci_master_key;
24069 	struct list_head ci_master_key_link;
24070 	struct fscrypt_direct_key *ci_direct_key;
24071 	siphash_key_t ci_dirhash_key;
24072 	bool ci_dirhash_key_initialized;
24073 	union fscrypt_policy ci_policy;
24074 	u8 ci_nonce[16];
24075 	u32 ci_hashed_ino;
24076 };
24077 
24078 struct fscrypt_key_specifier {
24079 	__u32 type;
24080 	__u32 __reserved;
24081 	union {
24082 		__u8 __reserved[32];
24083 		__u8 descriptor[8];
24084 		__u8 identifier[16];
24085 	} u;
24086 };
24087 
24088 struct crypto_shash {
24089 	unsigned int descsize;
24090 	struct crypto_tfm base;
24091 };
24092 
24093 enum blk_crypto_mode_num {
24094 	BLK_ENCRYPTION_MODE_INVALID = 0,
24095 	BLK_ENCRYPTION_MODE_AES_256_XTS = 1,
24096 	BLK_ENCRYPTION_MODE_AES_128_CBC_ESSIV = 2,
24097 	BLK_ENCRYPTION_MODE_ADIANTUM = 3,
24098 	BLK_ENCRYPTION_MODE_SM4_XTS = 4,
24099 	BLK_ENCRYPTION_MODE_MAX = 5,
24100 };
24101 
24102 struct blk_crypto_config {
24103 	enum blk_crypto_mode_num crypto_mode;
24104 	unsigned int data_unit_size;
24105 	unsigned int dun_bytes;
24106 };
24107 
24108 struct blk_crypto_key {
24109 	struct blk_crypto_config crypto_cfg;
24110 	unsigned int data_unit_size_bits;
24111 	unsigned int size;
24112 	u8 raw[64];
24113 };
24114 
24115 struct bio_crypt_ctx {
24116 	const struct blk_crypto_key *bc_key;
24117 	u64 bc_dun[4];
24118 };
24119 
24120 struct fscrypt_context_v1 {
24121 	u8 version;
24122 	u8 contents_encryption_mode;
24123 	u8 filenames_encryption_mode;
24124 	u8 flags;
24125 	u8 master_key_descriptor[8];
24126 	u8 nonce[16];
24127 };
24128 
24129 struct fscrypt_context_v2 {
24130 	u8 version;
24131 	u8 contents_encryption_mode;
24132 	u8 filenames_encryption_mode;
24133 	u8 flags;
24134 	u8 __reserved[4];
24135 	u8 master_key_identifier[16];
24136 	u8 nonce[16];
24137 };
24138 
24139 union fscrypt_context {
24140 	u8 version;
24141 	struct fscrypt_context_v1 v1;
24142 	struct fscrypt_context_v2 v2;
24143 };
24144 
24145 struct fscrypt_mode {
24146 	const char *friendly_name;
24147 	const char *cipher_str;
24148 	int keysize;
24149 	int security_strength;
24150 	int ivsize;
24151 	int logged_cryptoapi_impl;
24152 	int logged_blk_crypto_native;
24153 	int logged_blk_crypto_fallback;
24154 	enum blk_crypto_mode_num blk_crypto_mode;
24155 };
24156 
24157 struct fscrypt_hkdf {
24158 	struct crypto_shash *hmac_tfm;
24159 };
24160 
24161 struct fscrypt_master_key_secret {
24162 	struct fscrypt_hkdf hkdf;
24163 	u32 size;
24164 	u8 raw[64];
24165 };
24166 
24167 struct fscrypt_master_key {
24168 	struct hlist_node mk_node;
24169 	struct rw_semaphore mk_sem;
24170 	refcount_t mk_active_refs;
24171 	refcount_t mk_struct_refs;
24172 	struct callback_head mk_rcu_head;
24173 	struct fscrypt_master_key_secret mk_secret;
24174 	struct fscrypt_key_specifier mk_spec;
24175 	struct key *mk_users;
24176 	struct list_head mk_decrypted_inodes;
24177 	spinlock_t mk_decrypted_inodes_lock;
24178 	struct fscrypt_prepared_key mk_direct_keys[11];
24179 	struct fscrypt_prepared_key mk_iv_ino_lblk_64_keys[11];
24180 	struct fscrypt_prepared_key mk_iv_ino_lblk_32_keys[11];
24181 	siphash_key_t mk_ino_hash_key;
24182 	bool mk_ino_hash_key_initialized;
24183 };
24184 
24185 union fscrypt_iv {
24186 	struct {
24187 		__le64 lblk_num;
24188 		u8 nonce[16];
24189 	};
24190 	u8 raw[32];
24191 	__le64 dun[4];
24192 };
24193 
24194 struct fsverity_hash_alg;
24195 
24196 struct merkle_tree_params {
24197 	struct fsverity_hash_alg *hash_alg;
24198 	const u8 *hashstate;
24199 	unsigned int digest_size;
24200 	unsigned int block_size;
24201 	unsigned int hashes_per_block;
24202 	unsigned int log_blocksize;
24203 	unsigned int log_arity;
24204 	unsigned int num_levels;
24205 	u64 tree_size;
24206 	long unsigned int level0_blocks;
24207 	u64 level_start[8];
24208 };
24209 
24210 struct fsverity_info {
24211 	struct merkle_tree_params tree_params;
24212 	u8 root_hash[64];
24213 	u8 file_digest[64];
24214 	const struct inode *inode;
24215 };
24216 
24217 enum hash_algo {
24218 	HASH_ALGO_MD4 = 0,
24219 	HASH_ALGO_MD5 = 1,
24220 	HASH_ALGO_SHA1 = 2,
24221 	HASH_ALGO_RIPE_MD_160 = 3,
24222 	HASH_ALGO_SHA256 = 4,
24223 	HASH_ALGO_SHA384 = 5,
24224 	HASH_ALGO_SHA512 = 6,
24225 	HASH_ALGO_SHA224 = 7,
24226 	HASH_ALGO_RIPE_MD_128 = 8,
24227 	HASH_ALGO_RIPE_MD_256 = 9,
24228 	HASH_ALGO_RIPE_MD_320 = 10,
24229 	HASH_ALGO_WP_256 = 11,
24230 	HASH_ALGO_WP_384 = 12,
24231 	HASH_ALGO_WP_512 = 13,
24232 	HASH_ALGO_TGR_128 = 14,
24233 	HASH_ALGO_TGR_160 = 15,
24234 	HASH_ALGO_TGR_192 = 16,
24235 	HASH_ALGO_SM3_256 = 17,
24236 	HASH_ALGO_STREEBOG_256 = 18,
24237 	HASH_ALGO_STREEBOG_512 = 19,
24238 	HASH_ALGO__LAST = 20,
24239 };
24240 
24241 struct fsverity_digest {
24242 	__u16 digest_algorithm;
24243 	__u16 digest_size;
24244 	__u8 digest[0];
24245 };
24246 
24247 struct crypto_ahash;
24248 
24249 struct fsverity_hash_alg {
24250 	struct crypto_ahash *tfm;
24251 	const char *name;
24252 	unsigned int digest_size;
24253 	unsigned int block_size;
24254 	mempool_t req_pool;
24255 	enum hash_algo algo_id;
24256 };
24257 
24258 struct ctl_path {
24259 	const char *procname;
24260 };
24261 
24262 struct fsverity_formatted_digest {
24263 	char magic[8];
24264 	__le16 digest_algorithm;
24265 	__le16 digest_size;
24266 	__u8 digest[0];
24267 };
24268 
24269 struct posix_acl_xattr_entry {
24270 	__le16 e_tag;
24271 	__le16 e_perm;
24272 	__le32 e_id;
24273 };
24274 
24275 struct posix_acl_xattr_header {
24276 	__le32 a_version;
24277 };
24278 
24279 struct file_handle {
24280 	__u32 handle_bytes;
24281 	int handle_type;
24282 	unsigned char f_handle[0];
24283 };
24284 
24285 enum fid_type {
24286 	FILEID_ROOT = 0,
24287 	FILEID_INO32_GEN = 1,
24288 	FILEID_INO32_GEN_PARENT = 2,
24289 	FILEID_BTRFS_WITHOUT_PARENT = 77,
24290 	FILEID_BTRFS_WITH_PARENT = 78,
24291 	FILEID_BTRFS_WITH_PARENT_ROOT = 79,
24292 	FILEID_UDF_WITHOUT_PARENT = 81,
24293 	FILEID_UDF_WITH_PARENT = 82,
24294 	FILEID_NILFS_WITHOUT_PARENT = 97,
24295 	FILEID_NILFS_WITH_PARENT = 98,
24296 	FILEID_FAT_WITHOUT_PARENT = 113,
24297 	FILEID_FAT_WITH_PARENT = 114,
24298 	FILEID_LUSTRE = 151,
24299 	FILEID_KERNFS = 254,
24300 	FILEID_INVALID = 255,
24301 };
24302 
24303 struct fid {
24304 	union {
24305 		struct {
24306 			u32 ino;
24307 			u32 gen;
24308 			u32 parent_ino;
24309 			u32 parent_gen;
24310 		} i32;
24311 		struct {
24312 			u32 block;
24313 			u16 partref;
24314 			u16 parent_partref;
24315 			u32 generation;
24316 			u32 parent_block;
24317 			u32 parent_generation;
24318 		} udf;
24319 		__u32 raw[0];
24320 	};
24321 };
24322 
24323 struct dax_device;
24324 
24325 struct iomap_page_ops;
24326 
24327 struct iomap {
24328 	u64 addr;
24329 	loff_t offset;
24330 	u64 length;
24331 	u16 type;
24332 	u16 flags;
24333 	struct block_device *bdev;
24334 	struct dax_device *dax_dev;
24335 	void *inline_data;
24336 	void *private;
24337 	const struct iomap_page_ops *page_ops;
24338 	u64 validity_cookie;
24339 };
24340 
24341 struct iomap_page_ops {
24342 	int (*page_prepare)(struct inode *, loff_t, unsigned int);
24343 	void (*page_done)(struct inode *, loff_t, unsigned int, struct page *);
24344 	bool (*iomap_valid)(struct inode *, const struct iomap *);
24345 };
24346 
24347 struct iomap_ops {
24348 	int (*iomap_begin)(struct inode *, loff_t, loff_t, unsigned int, struct iomap *, struct iomap *);
24349 	int (*iomap_end)(struct inode *, loff_t, loff_t, ssize_t, unsigned int, struct iomap *);
24350 };
24351 
24352 struct iomap_iter {
24353 	struct inode *inode;
24354 	loff_t pos;
24355 	u64 len;
24356 	s64 processed;
24357 	unsigned int flags;
24358 	struct iomap iomap;
24359 	struct iomap srcmap;
24360 	void *private;
24361 };
24362 
24363 struct fiemap_extent;
24364 
24365 struct fiemap_extent_info {
24366 	unsigned int fi_flags;
24367 	unsigned int fi_extents_mapped;
24368 	unsigned int fi_extents_max;
24369 	struct fiemap_extent *fi_extents_start;
24370 };
24371 
24372 struct fiemap_extent {
24373 	__u64 fe_logical;
24374 	__u64 fe_physical;
24375 	__u64 fe_length;
24376 	__u64 fe_reserved64[2];
24377 	__u32 fe_flags;
24378 	__u32 fe_reserved[3];
24379 };
24380 
24381 struct fs_disk_quota {
24382 	__s8 d_version;
24383 	__s8 d_flags;
24384 	__u16 d_fieldmask;
24385 	__u32 d_id;
24386 	__u64 d_blk_hardlimit;
24387 	__u64 d_blk_softlimit;
24388 	__u64 d_ino_hardlimit;
24389 	__u64 d_ino_softlimit;
24390 	__u64 d_bcount;
24391 	__u64 d_icount;
24392 	__s32 d_itimer;
24393 	__s32 d_btimer;
24394 	__u16 d_iwarns;
24395 	__u16 d_bwarns;
24396 	__s8 d_itimer_hi;
24397 	__s8 d_btimer_hi;
24398 	__s8 d_rtbtimer_hi;
24399 	__s8 d_padding2;
24400 	__u64 d_rtb_hardlimit;
24401 	__u64 d_rtb_softlimit;
24402 	__u64 d_rtbcount;
24403 	__s32 d_rtbtimer;
24404 	__u16 d_rtbwarns;
24405 	__s16 d_padding3;
24406 	char d_padding4[8];
24407 };
24408 
24409 struct fs_qfilestat {
24410 	__u64 qfs_ino;
24411 	__u64 qfs_nblks;
24412 	__u32 qfs_nextents;
24413 };
24414 
24415 typedef struct fs_qfilestat fs_qfilestat_t;
24416 
24417 struct fs_quota_stat {
24418 	__s8 qs_version;
24419 	__u16 qs_flags;
24420 	__s8 qs_pad;
24421 	fs_qfilestat_t qs_uquota;
24422 	fs_qfilestat_t qs_gquota;
24423 	__u32 qs_incoredqs;
24424 	__s32 qs_btimelimit;
24425 	__s32 qs_itimelimit;
24426 	__s32 qs_rtbtimelimit;
24427 	__u16 qs_bwarnlimit;
24428 	__u16 qs_iwarnlimit;
24429 };
24430 
24431 struct fs_qfilestatv {
24432 	__u64 qfs_ino;
24433 	__u64 qfs_nblks;
24434 	__u32 qfs_nextents;
24435 	__u32 qfs_pad;
24436 };
24437 
24438 struct fs_quota_statv {
24439 	__s8 qs_version;
24440 	__u8 qs_pad1;
24441 	__u16 qs_flags;
24442 	__u32 qs_incoredqs;
24443 	struct fs_qfilestatv qs_uquota;
24444 	struct fs_qfilestatv qs_gquota;
24445 	struct fs_qfilestatv qs_pquota;
24446 	__s32 qs_btimelimit;
24447 	__s32 qs_itimelimit;
24448 	__s32 qs_rtbtimelimit;
24449 	__u16 qs_bwarnlimit;
24450 	__u16 qs_iwarnlimit;
24451 	__u16 qs_rtbwarnlimit;
24452 	__u16 qs_pad3;
24453 	__u32 qs_pad4;
24454 	__u64 qs_pad2[7];
24455 };
24456 
24457 enum {
24458 	QIF_BLIMITS_B = 0,
24459 	QIF_SPACE_B = 1,
24460 	QIF_ILIMITS_B = 2,
24461 	QIF_INODES_B = 3,
24462 	QIF_BTIME_B = 4,
24463 	QIF_ITIME_B = 5,
24464 };
24465 
24466 struct if_dqblk {
24467 	__u64 dqb_bhardlimit;
24468 	__u64 dqb_bsoftlimit;
24469 	__u64 dqb_curspace;
24470 	__u64 dqb_ihardlimit;
24471 	__u64 dqb_isoftlimit;
24472 	__u64 dqb_curinodes;
24473 	__u64 dqb_btime;
24474 	__u64 dqb_itime;
24475 	__u32 dqb_valid;
24476 };
24477 
24478 struct if_nextdqblk {
24479 	__u64 dqb_bhardlimit;
24480 	__u64 dqb_bsoftlimit;
24481 	__u64 dqb_curspace;
24482 	__u64 dqb_ihardlimit;
24483 	__u64 dqb_isoftlimit;
24484 	__u64 dqb_curinodes;
24485 	__u64 dqb_btime;
24486 	__u64 dqb_itime;
24487 	__u32 dqb_valid;
24488 	__u32 dqb_id;
24489 };
24490 
24491 struct if_dqinfo {
24492 	__u64 dqi_bgrace;
24493 	__u64 dqi_igrace;
24494 	__u32 dqi_flags;
24495 	__u32 dqi_valid;
24496 };
24497 
24498 typedef __kernel_uid32_t qid_t;
24499 
24500 enum {
24501 	_DQUOT_USAGE_ENABLED = 0,
24502 	_DQUOT_LIMITS_ENABLED = 1,
24503 	_DQUOT_SUSPENDED = 2,
24504 	_DQUOT_STATE_FLAGS = 3,
24505 };
24506 
24507 typedef u32 compat_uint_t;
24508 
24509 typedef u64 compat_u64;
24510 
24511 struct compat_if_dqblk {
24512 	compat_u64 dqb_bhardlimit;
24513 	compat_u64 dqb_bsoftlimit;
24514 	compat_u64 dqb_curspace;
24515 	compat_u64 dqb_ihardlimit;
24516 	compat_u64 dqb_isoftlimit;
24517 	compat_u64 dqb_curinodes;
24518 	compat_u64 dqb_btime;
24519 	compat_u64 dqb_itime;
24520 	compat_uint_t dqb_valid;
24521 };
24522 
24523 struct pde_opener {
24524 	struct list_head lh;
24525 	struct file *file;
24526 	bool closing;
24527 	struct completion *c;
24528 };
24529 
24530 enum {
24531 	BIAS = 2147483648,
24532 };
24533 
24534 typedef unsigned int __kernel_uid_t;
24535 
24536 typedef unsigned int __kernel_gid_t;
24537 
24538 struct elf64_phdr {
24539 	Elf64_Word p_type;
24540 	Elf64_Word p_flags;
24541 	Elf64_Off p_offset;
24542 	Elf64_Addr p_vaddr;
24543 	Elf64_Addr p_paddr;
24544 	Elf64_Xword p_filesz;
24545 	Elf64_Xword p_memsz;
24546 	Elf64_Xword p_align;
24547 };
24548 
24549 struct elf64_note {
24550 	Elf64_Word n_namesz;
24551 	Elf64_Word n_descsz;
24552 	Elf64_Word n_type;
24553 };
24554 
24555 struct elf_prpsinfo {
24556 	char pr_state;
24557 	char pr_sname;
24558 	char pr_zomb;
24559 	char pr_nice;
24560 	long unsigned int pr_flag;
24561 	__kernel_uid_t pr_uid;
24562 	__kernel_gid_t pr_gid;
24563 	pid_t pr_pid;
24564 	pid_t pr_ppid;
24565 	pid_t pr_pgrp;
24566 	pid_t pr_sid;
24567 	char pr_fname[16];
24568 	char pr_psargs[80];
24569 };
24570 
24571 enum kcore_type {
24572 	KCORE_TEXT = 0,
24573 	KCORE_VMALLOC = 1,
24574 	KCORE_RAM = 2,
24575 	KCORE_VMEMMAP = 3,
24576 	KCORE_USER = 4,
24577 };
24578 
24579 struct kcore_list {
24580 	struct list_head list;
24581 	long unsigned int addr;
24582 	size_t size;
24583 	int type;
24584 };
24585 
24586 enum kernfs_node_flag {
24587 	KERNFS_ACTIVATED = 16,
24588 	KERNFS_NS = 32,
24589 	KERNFS_HAS_SEQ_SHOW = 64,
24590 	KERNFS_HAS_MMAP = 128,
24591 	KERNFS_LOCKDEP = 256,
24592 	KERNFS_HIDDEN = 512,
24593 	KERNFS_SUICIDAL = 1024,
24594 	KERNFS_SUICIDED = 2048,
24595 	KERNFS_EMPTY_DIR = 4096,
24596 	KERNFS_HAS_RELEASE = 8192,
24597 	KERNFS_REMOVING = 16384,
24598 };
24599 
24600 struct kernfs_root {
24601 	struct kernfs_node *kn;
24602 	unsigned int flags;
24603 	struct idr ino_idr;
24604 	u32 last_id_lowbits;
24605 	u32 id_highbits;
24606 	struct kernfs_syscall_ops *syscall_ops;
24607 	struct list_head supers;
24608 	wait_queue_head_t deactivate_waitq;
24609 	struct rw_semaphore kernfs_rwsem;
24610 };
24611 
24612 struct kernfs_iattrs {
24613 	kuid_t ia_uid;
24614 	kgid_t ia_gid;
24615 	struct timespec64 ia_atime;
24616 	struct timespec64 ia_mtime;
24617 	struct timespec64 ia_ctime;
24618 	struct simple_xattrs xattrs;
24619 	atomic_t nr_user_xattrs;
24620 	atomic_t user_xattr_size;
24621 };
24622 
24623 struct config_group;
24624 
24625 struct config_item_type;
24626 
24627 struct config_item {
24628 	char *ci_name;
24629 	char ci_namebuf[20];
24630 	struct kref ci_kref;
24631 	struct list_head ci_entry;
24632 	struct config_item *ci_parent;
24633 	struct config_group *ci_group;
24634 	const struct config_item_type *ci_type;
24635 	struct dentry *ci_dentry;
24636 };
24637 
24638 struct configfs_subsystem;
24639 
24640 struct config_group {
24641 	struct config_item cg_item;
24642 	struct list_head cg_children;
24643 	struct configfs_subsystem *cg_subsys;
24644 	struct list_head default_groups;
24645 	struct list_head group_entry;
24646 };
24647 
24648 struct configfs_item_operations;
24649 
24650 struct configfs_group_operations;
24651 
24652 struct configfs_attribute;
24653 
24654 struct configfs_bin_attribute;
24655 
24656 struct config_item_type {
24657 	struct module *ct_owner;
24658 	struct configfs_item_operations *ct_item_ops;
24659 	struct configfs_group_operations *ct_group_ops;
24660 	struct configfs_attribute **ct_attrs;
24661 	struct configfs_bin_attribute **ct_bin_attrs;
24662 };
24663 
24664 struct configfs_item_operations {
24665 	void (*release)(struct config_item *);
24666 	int (*allow_link)(struct config_item *, struct config_item *);
24667 	void (*drop_link)(struct config_item *, struct config_item *);
24668 };
24669 
24670 struct configfs_group_operations {
24671 	struct config_item * (*make_item)(struct config_group *, const char *);
24672 	struct config_group * (*make_group)(struct config_group *, const char *);
24673 	void (*disconnect_notify)(struct config_group *, struct config_item *);
24674 	void (*drop_item)(struct config_group *, struct config_item *);
24675 };
24676 
24677 struct configfs_attribute {
24678 	const char *ca_name;
24679 	struct module *ca_owner;
24680 	umode_t ca_mode;
24681 	ssize_t (*show)(struct config_item *, char *);
24682 	ssize_t (*store)(struct config_item *, const char *, size_t);
24683 };
24684 
24685 struct configfs_bin_attribute {
24686 	struct configfs_attribute cb_attr;
24687 	void *cb_private;
24688 	size_t cb_max_size;
24689 	ssize_t (*read)(struct config_item *, void *, size_t);
24690 	ssize_t (*write)(struct config_item *, const void *, size_t);
24691 };
24692 
24693 struct configfs_subsystem {
24694 	struct config_group su_group;
24695 	struct mutex su_mutex;
24696 };
24697 
24698 struct configfs_fragment {
24699 	atomic_t frag_count;
24700 	struct rw_semaphore frag_sem;
24701 	bool frag_dead;
24702 };
24703 
24704 struct configfs_dirent {
24705 	atomic_t s_count;
24706 	int s_dependent_count;
24707 	struct list_head s_sibling;
24708 	struct list_head s_children;
24709 	int s_links;
24710 	void *s_element;
24711 	int s_type;
24712 	umode_t s_mode;
24713 	struct dentry *s_dentry;
24714 	struct iattr *s_iattr;
24715 	struct configfs_fragment *s_frag;
24716 };
24717 
24718 struct getdents_callback {
24719 	struct dir_context ctx;
24720 	char *name;
24721 	u64 ino;
24722 	int found;
24723 	int sequence;
24724 };
24725 
24726 typedef u16 wchar_t;
24727 
24728 struct nls_table {
24729 	const char *charset;
24730 	const char *alias;
24731 	int (*uni2char)(wchar_t, unsigned char *, int);
24732 	int (*char2uni)(const unsigned char *, int, wchar_t *);
24733 	const unsigned char *charset2lower;
24734 	const unsigned char *charset2upper;
24735 	struct module *owner;
24736 	struct nls_table *next;
24737 };
24738 
24739 typedef unsigned int autofs_wqt_t;
24740 
24741 struct autofs_packet_hdr {
24742 	int proto_version;
24743 	int type;
24744 };
24745 
24746 struct autofs_packet_missing {
24747 	struct autofs_packet_hdr hdr;
24748 	autofs_wqt_t wait_queue_token;
24749 	int len;
24750 	char name[256];
24751 };
24752 
24753 struct autofs_packet_expire {
24754 	struct autofs_packet_hdr hdr;
24755 	int len;
24756 	char name[256];
24757 };
24758 
24759 enum autofs_notify {
24760 	NFY_NONE = 0,
24761 	NFY_MOUNT = 1,
24762 	NFY_EXPIRE = 2,
24763 };
24764 
24765 struct autofs_packet_expire_multi {
24766 	struct autofs_packet_hdr hdr;
24767 	autofs_wqt_t wait_queue_token;
24768 	int len;
24769 	char name[256];
24770 };
24771 
24772 union autofs_packet_union {
24773 	struct autofs_packet_hdr hdr;
24774 	struct autofs_packet_missing missing;
24775 	struct autofs_packet_expire expire;
24776 	struct autofs_packet_expire_multi expire_multi;
24777 };
24778 
24779 struct autofs_v5_packet {
24780 	struct autofs_packet_hdr hdr;
24781 	autofs_wqt_t wait_queue_token;
24782 	__u32 dev;
24783 	__u64 ino;
24784 	__u32 uid;
24785 	__u32 gid;
24786 	__u32 pid;
24787 	__u32 tgid;
24788 	__u32 len;
24789 	char name[256];
24790 };
24791 
24792 typedef struct autofs_v5_packet autofs_packet_missing_indirect_t;
24793 
24794 typedef struct autofs_v5_packet autofs_packet_expire_indirect_t;
24795 
24796 typedef struct autofs_v5_packet autofs_packet_missing_direct_t;
24797 
24798 typedef struct autofs_v5_packet autofs_packet_expire_direct_t;
24799 
24800 union autofs_v5_packet_union {
24801 	struct autofs_packet_hdr hdr;
24802 	struct autofs_v5_packet v5_packet;
24803 	autofs_packet_missing_indirect_t missing_indirect;
24804 	autofs_packet_expire_indirect_t expire_indirect;
24805 	autofs_packet_missing_direct_t missing_direct;
24806 	autofs_packet_expire_direct_t expire_direct;
24807 };
24808 
24809 struct autofs_sb_info;
24810 
24811 struct autofs_info {
24812 	struct dentry *dentry;
24813 	int flags;
24814 	struct completion expire_complete;
24815 	struct list_head active;
24816 	struct list_head expiring;
24817 	struct autofs_sb_info *sbi;
24818 	long unsigned int last_used;
24819 	int count;
24820 	kuid_t uid;
24821 	kgid_t gid;
24822 	struct callback_head rcu;
24823 };
24824 
24825 struct autofs_wait_queue;
24826 
24827 struct autofs_sb_info {
24828 	u32 magic;
24829 	int pipefd;
24830 	struct file *pipe;
24831 	struct pid *oz_pgrp;
24832 	int version;
24833 	int sub_version;
24834 	int min_proto;
24835 	int max_proto;
24836 	unsigned int flags;
24837 	long unsigned int exp_timeout;
24838 	unsigned int type;
24839 	struct super_block *sb;
24840 	struct mutex wq_mutex;
24841 	struct mutex pipe_mutex;
24842 	spinlock_t fs_lock;
24843 	struct autofs_wait_queue *queues;
24844 	spinlock_t lookup_lock;
24845 	struct list_head active_list;
24846 	struct list_head expiring_list;
24847 	struct callback_head rcu;
24848 };
24849 
24850 struct autofs_wait_queue {
24851 	wait_queue_head_t queue;
24852 	struct autofs_wait_queue *next;
24853 	autofs_wqt_t wait_queue_token;
24854 	struct qstr name;
24855 	u32 offset;
24856 	u32 dev;
24857 	u64 ino;
24858 	kuid_t uid;
24859 	kgid_t gid;
24860 	pid_t pid;
24861 	pid_t tgid;
24862 	int status;
24863 	unsigned int wait_ctr;
24864 };
24865 
24866 struct debugfs_blob_wrapper {
24867 	void *data;
24868 	long unsigned int size;
24869 };
24870 
24871 struct debugfs_reg32 {
24872 	char *name;
24873 	long unsigned int offset;
24874 };
24875 
24876 struct debugfs_regset32 {
24877 	const struct debugfs_reg32 *regs;
24878 	int nregs;
24879 	void *base;
24880 	struct device *dev;
24881 };
24882 
24883 struct debugfs_u32_array {
24884 	u32 *array;
24885 	u32 n_elements;
24886 };
24887 
24888 struct debugfs_fsdata {
24889 	const struct file_operations *real_fops;
24890 	refcount_t active_users;
24891 	struct completion active_users_drained;
24892 };
24893 
24894 struct debugfs_devm_entry {
24895 	int (*read)(struct seq_file *, void *);
24896 	struct device *dev;
24897 };
24898 
24899 typedef struct {
24900 	__u8 b[16];
24901 } guid_t;
24902 
24903 typedef long unsigned int efi_status_t;
24904 
24905 typedef u16 efi_char16_t;
24906 
24907 typedef guid_t efi_guid_t;
24908 
24909 struct efi_generic_dev_path {
24910 	u8 type;
24911 	u8 sub_type;
24912 	u16 length;
24913 };
24914 
24915 typedef u16 ucs2_char_t;
24916 
24917 struct efi_variable {
24918 	efi_char16_t VariableName[512];
24919 	efi_guid_t VendorGuid;
24920 	long unsigned int DataSize;
24921 	__u8 Data[1024];
24922 	efi_status_t Status;
24923 	__u32 Attributes;
24924 } __attribute__((packed));
24925 
24926 struct efivar_entry {
24927 	struct efi_variable var;
24928 	struct list_head list;
24929 	struct kobject kobj;
24930 };
24931 
24932 struct variable_validate {
24933 	efi_guid_t vendor;
24934 	char *name;
24935 	bool (*validate)(efi_char16_t *, int, u8 *, long unsigned int);
24936 };
24937 
24938 typedef int __kernel_key_t;
24939 
24940 typedef unsigned int __kernel_mode_t;
24941 
24942 typedef __kernel_long_t __kernel_old_time_t;
24943 
24944 typedef __kernel_key_t key_t;
24945 
24946 typedef short unsigned int ushort;
24947 
24948 struct ipc_perm {
24949 	__kernel_key_t key;
24950 	__kernel_uid_t uid;
24951 	__kernel_gid_t gid;
24952 	__kernel_uid_t cuid;
24953 	__kernel_gid_t cgid;
24954 	__kernel_mode_t mode;
24955 	short unsigned int seq;
24956 };
24957 
24958 struct ipc64_perm {
24959 	__kernel_key_t key;
24960 	__kernel_uid32_t uid;
24961 	__kernel_gid32_t gid;
24962 	__kernel_uid32_t cuid;
24963 	__kernel_gid32_t cgid;
24964 	__kernel_mode_t mode;
24965 	unsigned char __pad1[0];
24966 	short unsigned int seq;
24967 	short unsigned int __pad2;
24968 	__kernel_ulong_t __unused1;
24969 	__kernel_ulong_t __unused2;
24970 };
24971 
24972 struct kern_ipc_perm {
24973 	spinlock_t lock;
24974 	bool deleted;
24975 	int id;
24976 	key_t key;
24977 	kuid_t uid;
24978 	kgid_t gid;
24979 	kuid_t cuid;
24980 	kgid_t cgid;
24981 	umode_t mode;
24982 	long unsigned int seq;
24983 	void *security;
24984 	struct rhash_head khtnode;
24985 	struct callback_head rcu;
24986 	refcount_t refcount;
24987 	long: 32;
24988 	long: 64;
24989 	long: 64;
24990 	long: 64;
24991 	long: 64;
24992 	long: 64;
24993 };
24994 
24995 struct sem;
24996 
24997 struct sem_queue;
24998 
24999 struct sem_undo;
25000 
25001 struct semid_ds {
25002 	struct ipc_perm sem_perm;
25003 	__kernel_old_time_t sem_otime;
25004 	__kernel_old_time_t sem_ctime;
25005 	struct sem *sem_base;
25006 	struct sem_queue *sem_pending;
25007 	struct sem_queue **sem_pending_last;
25008 	struct sem_undo *undo;
25009 	short unsigned int sem_nsems;
25010 };
25011 
25012 struct sem {
25013 	int semval;
25014 	struct pid *sempid;
25015 	spinlock_t lock;
25016 	struct list_head pending_alter;
25017 	struct list_head pending_const;
25018 	time64_t sem_otime;
25019 };
25020 
25021 struct sembuf;
25022 
25023 struct sem_queue {
25024 	struct list_head list;
25025 	struct task_struct *sleeper;
25026 	struct sem_undo *undo;
25027 	struct pid *pid;
25028 	int status;
25029 	struct sembuf *sops;
25030 	struct sembuf *blocking;
25031 	int nsops;
25032 	bool alter;
25033 	bool dupsop;
25034 };
25035 
25036 struct sem_undo {
25037 	struct list_head list_proc;
25038 	struct callback_head rcu;
25039 	struct sem_undo_list *ulp;
25040 	struct list_head list_id;
25041 	int semid;
25042 	short int *semadj;
25043 };
25044 
25045 struct semid64_ds {
25046 	struct ipc64_perm sem_perm;
25047 	long int sem_otime;
25048 	long int sem_ctime;
25049 	long unsigned int sem_nsems;
25050 	long unsigned int __unused3;
25051 	long unsigned int __unused4;
25052 };
25053 
25054 struct sembuf {
25055 	short unsigned int sem_num;
25056 	short int sem_op;
25057 	short int sem_flg;
25058 };
25059 
25060 struct seminfo {
25061 	int semmap;
25062 	int semmni;
25063 	int semmns;
25064 	int semmnu;
25065 	int semmsl;
25066 	int semopm;
25067 	int semume;
25068 	int semusz;
25069 	int semvmx;
25070 	int semaem;
25071 };
25072 
25073 struct sem_undo_list {
25074 	refcount_t refcnt;
25075 	spinlock_t lock;
25076 	struct list_head list_proc;
25077 };
25078 
25079 struct ipc_params {
25080 	key_t key;
25081 	int flg;
25082 	union {
25083 		size_t size;
25084 		int nsems;
25085 	} u;
25086 };
25087 
25088 struct ipc_ops {
25089 	int (*getnew)(struct ipc_namespace *, struct ipc_params *);
25090 	int (*associate)(struct kern_ipc_perm *, int);
25091 	int (*more_checks)(struct kern_ipc_perm *, struct ipc_params *);
25092 };
25093 
25094 struct sem_array {
25095 	struct kern_ipc_perm sem_perm;
25096 	time64_t sem_ctime;
25097 	struct list_head pending_alter;
25098 	struct list_head pending_const;
25099 	struct list_head list_id;
25100 	int sem_nsems;
25101 	int complex_count;
25102 	unsigned int use_global_lock;
25103 	long: 32;
25104 	long: 64;
25105 	long: 64;
25106 	long: 64;
25107 	long: 64;
25108 	long: 64;
25109 	long: 64;
25110 	long: 64;
25111 	struct sem sems[0];
25112 };
25113 
25114 struct assoc_array_ops {
25115 	long unsigned int (*get_key_chunk)(const void *, int);
25116 	long unsigned int (*get_object_key_chunk)(const void *, int);
25117 	bool (*compare_object)(const void *, const void *);
25118 	int (*diff_objects)(const void *, const void *);
25119 	void (*free_object)(void *);
25120 };
25121 
25122 enum key_need_perm {
25123 	KEY_NEED_UNSPECIFIED = 0,
25124 	KEY_NEED_VIEW = 1,
25125 	KEY_NEED_READ = 2,
25126 	KEY_NEED_WRITE = 3,
25127 	KEY_NEED_SEARCH = 4,
25128 	KEY_NEED_LINK = 5,
25129 	KEY_NEED_SETATTR = 6,
25130 	KEY_NEED_UNLINK = 7,
25131 	KEY_SYSADMIN_OVERRIDE = 8,
25132 	KEY_AUTHTOKEN_OVERRIDE = 9,
25133 	KEY_DEFER_PERM_CHECK = 10,
25134 };
25135 
25136 struct __key_reference_with_attributes;
25137 
25138 typedef struct __key_reference_with_attributes *key_ref_t;
25139 
25140 enum key_state {
25141 	KEY_IS_UNINSTANTIATED = 0,
25142 	KEY_IS_POSITIVE = 1,
25143 };
25144 
25145 struct key_user {
25146 	struct rb_node node;
25147 	struct mutex cons_lock;
25148 	spinlock_t lock;
25149 	refcount_t usage;
25150 	atomic_t nkeys;
25151 	atomic_t nikeys;
25152 	kuid_t uid;
25153 	int qnkeys;
25154 	int qnbytes;
25155 };
25156 
25157 struct assoc_array_node {
25158 	struct assoc_array_ptr *back_pointer;
25159 	u8 parent_slot;
25160 	struct assoc_array_ptr *slots[16];
25161 	long unsigned int nr_leaves_on_branch;
25162 };
25163 
25164 struct assoc_array_shortcut {
25165 	struct assoc_array_ptr *back_pointer;
25166 	int parent_slot;
25167 	int skip_to_level;
25168 	struct assoc_array_ptr *next_node;
25169 	long unsigned int index_key[0];
25170 };
25171 
25172 struct assoc_array_edit {
25173 	struct callback_head rcu;
25174 	struct assoc_array *array;
25175 	const struct assoc_array_ops *ops;
25176 	const struct assoc_array_ops *ops_for_excised_subtree;
25177 	struct assoc_array_ptr *leaf;
25178 	struct assoc_array_ptr **leaf_p;
25179 	struct assoc_array_ptr *dead_leaf;
25180 	struct assoc_array_ptr *new_meta[3];
25181 	struct assoc_array_ptr *excised_meta[1];
25182 	struct assoc_array_ptr *excised_subtree;
25183 	struct assoc_array_ptr **set_backpointers[16];
25184 	struct assoc_array_ptr *set_backpointers_to;
25185 	struct assoc_array_node *adjust_count_on;
25186 	long int adjust_count_by;
25187 	struct {
25188 		struct assoc_array_ptr **ptr;
25189 		struct assoc_array_ptr *to;
25190 	} set[2];
25191 	struct {
25192 		u8 *p;
25193 		u8 to;
25194 	} set_parent_slot[1];
25195 	u8 segment_cache[17];
25196 };
25197 
25198 enum key_notification_subtype {
25199 	NOTIFY_KEY_INSTANTIATED = 0,
25200 	NOTIFY_KEY_UPDATED = 1,
25201 	NOTIFY_KEY_LINKED = 2,
25202 	NOTIFY_KEY_UNLINKED = 3,
25203 	NOTIFY_KEY_CLEARED = 4,
25204 	NOTIFY_KEY_REVOKED = 5,
25205 	NOTIFY_KEY_INVALIDATED = 6,
25206 	NOTIFY_KEY_SETATTR = 7,
25207 };
25208 
25209 struct keyring_search_context {
25210 	struct keyring_index_key index_key;
25211 	const struct cred *cred;
25212 	struct key_match_data match_data;
25213 	unsigned int flags;
25214 	int (*iterator)(const void *, void *);
25215 	int skipped_ret;
25216 	bool possessed;
25217 	key_ref_t result;
25218 	time64_t now;
25219 };
25220 
25221 struct keyring_read_iterator_context {
25222 	size_t buflen;
25223 	size_t count;
25224 	key_serial_t *buffer;
25225 };
25226 
25227 struct request_key_auth {
25228 	struct callback_head rcu;
25229 	struct key *target_key;
25230 	struct key *dest_keyring;
25231 	const struct cred *cred;
25232 	void *callout_info;
25233 	size_t callout_len;
25234 	pid_t pid;
25235 	char op[8];
25236 };
25237 
25238 struct vfs_cap_data {
25239 	__le32 magic_etc;
25240 	struct {
25241 		__le32 permitted;
25242 		__le32 inheritable;
25243 	} data[2];
25244 };
25245 
25246 struct vfs_ns_cap_data {
25247 	__le32 magic_etc;
25248 	struct {
25249 		__le32 permitted;
25250 		__le32 inheritable;
25251 	} data[2];
25252 	__le32 rootid;
25253 };
25254 
25255 struct cpu_vfs_cap_data {
25256 	__u32 magic_etc;
25257 	kernel_cap_t permitted;
25258 	kernel_cap_t inheritable;
25259 	kuid_t rootid;
25260 };
25261 
25262 struct msg_msg;
25263 
25264 struct sctp_association;
25265 
25266 union security_list_options {
25267 	int (*binder_set_context_mgr)(const struct cred *);
25268 	int (*binder_transaction)(const struct cred *, const struct cred *);
25269 	int (*binder_transfer_binder)(const struct cred *, const struct cred *);
25270 	int (*binder_transfer_file)(const struct cred *, const struct cred *, struct file *);
25271 	int (*ptrace_access_check)(struct task_struct *, unsigned int);
25272 	int (*ptrace_traceme)(struct task_struct *);
25273 	int (*capget)(struct task_struct *, kernel_cap_t *, kernel_cap_t *, kernel_cap_t *);
25274 	int (*capset)(struct cred *, const struct cred *, const kernel_cap_t *, const kernel_cap_t *, const kernel_cap_t *);
25275 	int (*capable)(const struct cred *, struct user_namespace *, int, unsigned int);
25276 	int (*quotactl)(int, int, int, struct super_block *);
25277 	int (*quota_on)(struct dentry *);
25278 	int (*syslog)(int);
25279 	int (*settime)(const struct timespec64 *, const struct timezone *);
25280 	int (*vm_enough_memory)(struct mm_struct *, long int);
25281 	int (*bprm_creds_for_exec)(struct linux_binprm *);
25282 	int (*bprm_creds_from_file)(struct linux_binprm *, struct file *);
25283 	int (*bprm_check_security)(struct linux_binprm *);
25284 	void (*bprm_committing_creds)(struct linux_binprm *);
25285 	void (*bprm_committed_creds)(struct linux_binprm *);
25286 	int (*fs_context_dup)(struct fs_context *, struct fs_context *);
25287 	int (*fs_context_parse_param)(struct fs_context *, struct fs_parameter *);
25288 	int (*sb_alloc_security)(struct super_block *);
25289 	void (*sb_delete)(struct super_block *);
25290 	void (*sb_free_security)(struct super_block *);
25291 	void (*sb_free_mnt_opts)(void *);
25292 	int (*sb_eat_lsm_opts)(char *, void **);
25293 	int (*sb_mnt_opts_compat)(struct super_block *, void *);
25294 	int (*sb_remount)(struct super_block *, void *);
25295 	int (*sb_kern_mount)(struct super_block *);
25296 	int (*sb_show_options)(struct seq_file *, struct super_block *);
25297 	int (*sb_statfs)(struct dentry *);
25298 	int (*sb_mount)(const char *, const struct path *, const char *, long unsigned int, void *);
25299 	int (*sb_umount)(struct vfsmount *, int);
25300 	int (*sb_pivotroot)(const struct path *, const struct path *);
25301 	int (*sb_set_mnt_opts)(struct super_block *, void *, long unsigned int, long unsigned int *);
25302 	int (*sb_clone_mnt_opts)(const struct super_block *, struct super_block *, long unsigned int, long unsigned int *);
25303 	int (*move_mount)(const struct path *, const struct path *);
25304 	int (*dentry_init_security)(struct dentry *, int, const struct qstr *, const char **, void **, u32 *);
25305 	int (*dentry_create_files_as)(struct dentry *, int, struct qstr *, const struct cred *, struct cred *);
25306 	int (*path_unlink)(const struct path *, struct dentry *);
25307 	int (*path_mkdir)(const struct path *, struct dentry *, umode_t);
25308 	int (*path_rmdir)(const struct path *, struct dentry *);
25309 	int (*path_mknod)(const struct path *, struct dentry *, umode_t, unsigned int);
25310 	int (*path_truncate)(const struct path *);
25311 	int (*path_symlink)(const struct path *, struct dentry *, const char *);
25312 	int (*path_link)(struct dentry *, const struct path *, struct dentry *);
25313 	int (*path_rename)(const struct path *, struct dentry *, const struct path *, struct dentry *, unsigned int);
25314 	int (*path_chmod)(const struct path *, umode_t);
25315 	int (*path_chown)(const struct path *, kuid_t, kgid_t);
25316 	int (*path_chroot)(const struct path *);
25317 	int (*path_notify)(const struct path *, u64, unsigned int);
25318 	int (*inode_alloc_security)(struct inode *);
25319 	void (*inode_free_security)(struct inode *);
25320 	int (*inode_init_security)(struct inode *, struct inode *, const struct qstr *, const char **, void **, size_t *);
25321 	int (*inode_init_security_anon)(struct inode *, const struct qstr *, const struct inode *);
25322 	int (*inode_create)(struct inode *, struct dentry *, umode_t);
25323 	int (*inode_link)(struct dentry *, struct inode *, struct dentry *);
25324 	int (*inode_unlink)(struct inode *, struct dentry *);
25325 	int (*inode_symlink)(struct inode *, struct dentry *, const char *);
25326 	int (*inode_mkdir)(struct inode *, struct dentry *, umode_t);
25327 	int (*inode_rmdir)(struct inode *, struct dentry *);
25328 	int (*inode_mknod)(struct inode *, struct dentry *, umode_t, dev_t);
25329 	int (*inode_rename)(struct inode *, struct dentry *, struct inode *, struct dentry *);
25330 	int (*inode_readlink)(struct dentry *);
25331 	int (*inode_follow_link)(struct dentry *, struct inode *, bool);
25332 	int (*inode_permission)(struct inode *, int);
25333 	int (*inode_setattr)(struct dentry *, struct iattr *);
25334 	int (*inode_getattr)(const struct path *);
25335 	int (*inode_setxattr)(struct user_namespace *, struct dentry *, const char *, const void *, size_t, int);
25336 	void (*inode_post_setxattr)(struct dentry *, const char *, const void *, size_t, int);
25337 	int (*inode_getxattr)(struct dentry *, const char *);
25338 	int (*inode_listxattr)(struct dentry *);
25339 	int (*inode_removexattr)(struct user_namespace *, struct dentry *, const char *);
25340 	int (*inode_set_acl)(struct user_namespace *, struct dentry *, const char *, struct posix_acl *);
25341 	int (*inode_get_acl)(struct user_namespace *, struct dentry *, const char *);
25342 	int (*inode_remove_acl)(struct user_namespace *, struct dentry *, const char *);
25343 	int (*inode_need_killpriv)(struct dentry *);
25344 	int (*inode_killpriv)(struct user_namespace *, struct dentry *);
25345 	int (*inode_getsecurity)(struct user_namespace *, struct inode *, const char *, void **, bool);
25346 	int (*inode_setsecurity)(struct inode *, const char *, const void *, size_t, int);
25347 	int (*inode_listsecurity)(struct inode *, char *, size_t);
25348 	void (*inode_getsecid)(struct inode *, u32 *);
25349 	int (*inode_copy_up)(struct dentry *, struct cred **);
25350 	int (*inode_copy_up_xattr)(const char *);
25351 	int (*kernfs_init_security)(struct kernfs_node *, struct kernfs_node *);
25352 	int (*file_permission)(struct file *, int);
25353 	int (*file_alloc_security)(struct file *);
25354 	void (*file_free_security)(struct file *);
25355 	int (*file_ioctl)(struct file *, unsigned int, long unsigned int);
25356 	int (*mmap_addr)(long unsigned int);
25357 	int (*mmap_file)(struct file *, long unsigned int, long unsigned int, long unsigned int);
25358 	int (*file_mprotect)(struct vm_area_struct *, long unsigned int, long unsigned int);
25359 	int (*file_lock)(struct file *, unsigned int);
25360 	int (*file_fcntl)(struct file *, unsigned int, long unsigned int);
25361 	void (*file_set_fowner)(struct file *);
25362 	int (*file_send_sigiotask)(struct task_struct *, struct fown_struct *, int);
25363 	int (*file_receive)(struct file *);
25364 	int (*file_open)(struct file *);
25365 	int (*file_truncate)(struct file *);
25366 	int (*task_alloc)(struct task_struct *, long unsigned int);
25367 	void (*task_free)(struct task_struct *);
25368 	int (*cred_alloc_blank)(struct cred *, gfp_t);
25369 	void (*cred_free)(struct cred *);
25370 	int (*cred_prepare)(struct cred *, const struct cred *, gfp_t);
25371 	void (*cred_transfer)(struct cred *, const struct cred *);
25372 	void (*cred_getsecid)(const struct cred *, u32 *);
25373 	int (*kernel_act_as)(struct cred *, u32);
25374 	int (*kernel_create_files_as)(struct cred *, struct inode *);
25375 	int (*kernel_module_request)(char *);
25376 	int (*kernel_load_data)(enum kernel_load_data_id, bool);
25377 	int (*kernel_post_load_data)(char *, loff_t, enum kernel_load_data_id, char *);
25378 	int (*kernel_read_file)(struct file *, enum kernel_read_file_id, bool);
25379 	int (*kernel_post_read_file)(struct file *, char *, loff_t, enum kernel_read_file_id);
25380 	int (*task_fix_setuid)(struct cred *, const struct cred *, int);
25381 	int (*task_fix_setgid)(struct cred *, const struct cred *, int);
25382 	int (*task_fix_setgroups)(struct cred *, const struct cred *);
25383 	int (*task_setpgid)(struct task_struct *, pid_t);
25384 	int (*task_getpgid)(struct task_struct *);
25385 	int (*task_getsid)(struct task_struct *);
25386 	void (*current_getsecid_subj)(u32 *);
25387 	void (*task_getsecid_obj)(struct task_struct *, u32 *);
25388 	int (*task_setnice)(struct task_struct *, int);
25389 	int (*task_setioprio)(struct task_struct *, int);
25390 	int (*task_getioprio)(struct task_struct *);
25391 	int (*task_prlimit)(const struct cred *, const struct cred *, unsigned int);
25392 	int (*task_setrlimit)(struct task_struct *, unsigned int, struct rlimit *);
25393 	int (*task_setscheduler)(struct task_struct *);
25394 	int (*task_getscheduler)(struct task_struct *);
25395 	int (*task_movememory)(struct task_struct *);
25396 	int (*task_kill)(struct task_struct *, struct kernel_siginfo *, int, const struct cred *);
25397 	int (*task_prctl)(int, long unsigned int, long unsigned int, long unsigned int, long unsigned int);
25398 	void (*task_to_inode)(struct task_struct *, struct inode *);
25399 	int (*userns_create)(const struct cred *);
25400 	int (*ipc_permission)(struct kern_ipc_perm *, short int);
25401 	void (*ipc_getsecid)(struct kern_ipc_perm *, u32 *);
25402 	int (*msg_msg_alloc_security)(struct msg_msg *);
25403 	void (*msg_msg_free_security)(struct msg_msg *);
25404 	int (*msg_queue_alloc_security)(struct kern_ipc_perm *);
25405 	void (*msg_queue_free_security)(struct kern_ipc_perm *);
25406 	int (*msg_queue_associate)(struct kern_ipc_perm *, int);
25407 	int (*msg_queue_msgctl)(struct kern_ipc_perm *, int);
25408 	int (*msg_queue_msgsnd)(struct kern_ipc_perm *, struct msg_msg *, int);
25409 	int (*msg_queue_msgrcv)(struct kern_ipc_perm *, struct msg_msg *, struct task_struct *, long int, int);
25410 	int (*shm_alloc_security)(struct kern_ipc_perm *);
25411 	void (*shm_free_security)(struct kern_ipc_perm *);
25412 	int (*shm_associate)(struct kern_ipc_perm *, int);
25413 	int (*shm_shmctl)(struct kern_ipc_perm *, int);
25414 	int (*shm_shmat)(struct kern_ipc_perm *, char *, int);
25415 	int (*sem_alloc_security)(struct kern_ipc_perm *);
25416 	void (*sem_free_security)(struct kern_ipc_perm *);
25417 	int (*sem_associate)(struct kern_ipc_perm *, int);
25418 	int (*sem_semctl)(struct kern_ipc_perm *, int);
25419 	int (*sem_semop)(struct kern_ipc_perm *, struct sembuf *, unsigned int, int);
25420 	int (*netlink_send)(struct sock *, struct sk_buff *);
25421 	void (*d_instantiate)(struct dentry *, struct inode *);
25422 	int (*getprocattr)(struct task_struct *, const char *, char **);
25423 	int (*setprocattr)(const char *, void *, size_t);
25424 	int (*ismaclabel)(const char *);
25425 	int (*secid_to_secctx)(u32, char **, u32 *);
25426 	int (*secctx_to_secid)(const char *, u32, u32 *);
25427 	void (*release_secctx)(char *, u32);
25428 	void (*inode_invalidate_secctx)(struct inode *);
25429 	int (*inode_notifysecctx)(struct inode *, void *, u32);
25430 	int (*inode_setsecctx)(struct dentry *, void *, u32);
25431 	int (*inode_getsecctx)(struct inode *, void **, u32 *);
25432 	int (*unix_stream_connect)(struct sock *, struct sock *, struct sock *);
25433 	int (*unix_may_send)(struct socket *, struct socket *);
25434 	int (*socket_create)(int, int, int, int);
25435 	int (*socket_post_create)(struct socket *, int, int, int, int);
25436 	int (*socket_socketpair)(struct socket *, struct socket *);
25437 	int (*socket_bind)(struct socket *, struct sockaddr *, int);
25438 	int (*socket_connect)(struct socket *, struct sockaddr *, int);
25439 	int (*socket_listen)(struct socket *, int);
25440 	int (*socket_accept)(struct socket *, struct socket *);
25441 	int (*socket_sendmsg)(struct socket *, struct msghdr *, int);
25442 	int (*socket_recvmsg)(struct socket *, struct msghdr *, int, int);
25443 	int (*socket_getsockname)(struct socket *);
25444 	int (*socket_getpeername)(struct socket *);
25445 	int (*socket_getsockopt)(struct socket *, int, int);
25446 	int (*socket_setsockopt)(struct socket *, int, int);
25447 	int (*socket_shutdown)(struct socket *, int);
25448 	int (*socket_sock_rcv_skb)(struct sock *, struct sk_buff *);
25449 	int (*socket_getpeersec_stream)(struct socket *, sockptr_t, sockptr_t, unsigned int);
25450 	int (*socket_getpeersec_dgram)(struct socket *, struct sk_buff *, u32 *);
25451 	int (*sk_alloc_security)(struct sock *, int, gfp_t);
25452 	void (*sk_free_security)(struct sock *);
25453 	void (*sk_clone_security)(const struct sock *, struct sock *);
25454 	void (*sk_getsecid)(struct sock *, u32 *);
25455 	void (*sock_graft)(struct sock *, struct socket *);
25456 	int (*inet_conn_request)(const struct sock *, struct sk_buff *, struct request_sock *);
25457 	void (*inet_csk_clone)(struct sock *, const struct request_sock *);
25458 	void (*inet_conn_established)(struct sock *, struct sk_buff *);
25459 	int (*secmark_relabel_packet)(u32);
25460 	void (*secmark_refcount_inc)();
25461 	void (*secmark_refcount_dec)();
25462 	void (*req_classify_flow)(const struct request_sock *, struct flowi_common *);
25463 	int (*tun_dev_alloc_security)(void **);
25464 	void (*tun_dev_free_security)(void *);
25465 	int (*tun_dev_create)();
25466 	int (*tun_dev_attach_queue)(void *);
25467 	int (*tun_dev_attach)(struct sock *, void *);
25468 	int (*tun_dev_open)(void *);
25469 	int (*sctp_assoc_request)(struct sctp_association *, struct sk_buff *);
25470 	int (*sctp_bind_connect)(struct sock *, int, struct sockaddr *, int);
25471 	void (*sctp_sk_clone)(struct sctp_association *, struct sock *, struct sock *);
25472 	int (*sctp_assoc_established)(struct sctp_association *, struct sk_buff *);
25473 	int (*key_alloc)(struct key *, const struct cred *, long unsigned int);
25474 	void (*key_free)(struct key *);
25475 	int (*key_permission)(key_ref_t, const struct cred *, enum key_need_perm);
25476 	int (*key_getsecurity)(struct key *, char **);
25477 	int (*audit_rule_init)(u32, u32, char *, void **);
25478 	int (*audit_rule_known)(struct audit_krule *);
25479 	int (*audit_rule_match)(u32, u32, u32, void *);
25480 	void (*audit_rule_free)(void *);
25481 	int (*bpf)(int, union bpf_attr *, unsigned int);
25482 	int (*bpf_map)(struct bpf_map *, fmode_t);
25483 	int (*bpf_prog)(struct bpf_prog *);
25484 	int (*bpf_map_alloc_security)(struct bpf_map *);
25485 	void (*bpf_map_free_security)(struct bpf_map *);
25486 	int (*bpf_prog_alloc_security)(struct bpf_prog_aux *);
25487 	void (*bpf_prog_free_security)(struct bpf_prog_aux *);
25488 	int (*locked_down)(enum lockdown_reason);
25489 	int (*perf_event_open)(struct perf_event_attr *, int);
25490 	int (*perf_event_alloc)(struct perf_event *);
25491 	void (*perf_event_free)(struct perf_event *);
25492 	int (*perf_event_read)(struct perf_event *);
25493 	int (*perf_event_write)(struct perf_event *);
25494 	int (*uring_override_creds)(const struct cred *);
25495 	int (*uring_sqpoll)();
25496 	int (*uring_cmd)(struct io_uring_cmd *);
25497 };
25498 
25499 struct security_hook_heads {
25500 	struct hlist_head binder_set_context_mgr;
25501 	struct hlist_head binder_transaction;
25502 	struct hlist_head binder_transfer_binder;
25503 	struct hlist_head binder_transfer_file;
25504 	struct hlist_head ptrace_access_check;
25505 	struct hlist_head ptrace_traceme;
25506 	struct hlist_head capget;
25507 	struct hlist_head capset;
25508 	struct hlist_head capable;
25509 	struct hlist_head quotactl;
25510 	struct hlist_head quota_on;
25511 	struct hlist_head syslog;
25512 	struct hlist_head settime;
25513 	struct hlist_head vm_enough_memory;
25514 	struct hlist_head bprm_creds_for_exec;
25515 	struct hlist_head bprm_creds_from_file;
25516 	struct hlist_head bprm_check_security;
25517 	struct hlist_head bprm_committing_creds;
25518 	struct hlist_head bprm_committed_creds;
25519 	struct hlist_head fs_context_dup;
25520 	struct hlist_head fs_context_parse_param;
25521 	struct hlist_head sb_alloc_security;
25522 	struct hlist_head sb_delete;
25523 	struct hlist_head sb_free_security;
25524 	struct hlist_head sb_free_mnt_opts;
25525 	struct hlist_head sb_eat_lsm_opts;
25526 	struct hlist_head sb_mnt_opts_compat;
25527 	struct hlist_head sb_remount;
25528 	struct hlist_head sb_kern_mount;
25529 	struct hlist_head sb_show_options;
25530 	struct hlist_head sb_statfs;
25531 	struct hlist_head sb_mount;
25532 	struct hlist_head sb_umount;
25533 	struct hlist_head sb_pivotroot;
25534 	struct hlist_head sb_set_mnt_opts;
25535 	struct hlist_head sb_clone_mnt_opts;
25536 	struct hlist_head move_mount;
25537 	struct hlist_head dentry_init_security;
25538 	struct hlist_head dentry_create_files_as;
25539 	struct hlist_head path_unlink;
25540 	struct hlist_head path_mkdir;
25541 	struct hlist_head path_rmdir;
25542 	struct hlist_head path_mknod;
25543 	struct hlist_head path_truncate;
25544 	struct hlist_head path_symlink;
25545 	struct hlist_head path_link;
25546 	struct hlist_head path_rename;
25547 	struct hlist_head path_chmod;
25548 	struct hlist_head path_chown;
25549 	struct hlist_head path_chroot;
25550 	struct hlist_head path_notify;
25551 	struct hlist_head inode_alloc_security;
25552 	struct hlist_head inode_free_security;
25553 	struct hlist_head inode_init_security;
25554 	struct hlist_head inode_init_security_anon;
25555 	struct hlist_head inode_create;
25556 	struct hlist_head inode_link;
25557 	struct hlist_head inode_unlink;
25558 	struct hlist_head inode_symlink;
25559 	struct hlist_head inode_mkdir;
25560 	struct hlist_head inode_rmdir;
25561 	struct hlist_head inode_mknod;
25562 	struct hlist_head inode_rename;
25563 	struct hlist_head inode_readlink;
25564 	struct hlist_head inode_follow_link;
25565 	struct hlist_head inode_permission;
25566 	struct hlist_head inode_setattr;
25567 	struct hlist_head inode_getattr;
25568 	struct hlist_head inode_setxattr;
25569 	struct hlist_head inode_post_setxattr;
25570 	struct hlist_head inode_getxattr;
25571 	struct hlist_head inode_listxattr;
25572 	struct hlist_head inode_removexattr;
25573 	struct hlist_head inode_set_acl;
25574 	struct hlist_head inode_get_acl;
25575 	struct hlist_head inode_remove_acl;
25576 	struct hlist_head inode_need_killpriv;
25577 	struct hlist_head inode_killpriv;
25578 	struct hlist_head inode_getsecurity;
25579 	struct hlist_head inode_setsecurity;
25580 	struct hlist_head inode_listsecurity;
25581 	struct hlist_head inode_getsecid;
25582 	struct hlist_head inode_copy_up;
25583 	struct hlist_head inode_copy_up_xattr;
25584 	struct hlist_head kernfs_init_security;
25585 	struct hlist_head file_permission;
25586 	struct hlist_head file_alloc_security;
25587 	struct hlist_head file_free_security;
25588 	struct hlist_head file_ioctl;
25589 	struct hlist_head mmap_addr;
25590 	struct hlist_head mmap_file;
25591 	struct hlist_head file_mprotect;
25592 	struct hlist_head file_lock;
25593 	struct hlist_head file_fcntl;
25594 	struct hlist_head file_set_fowner;
25595 	struct hlist_head file_send_sigiotask;
25596 	struct hlist_head file_receive;
25597 	struct hlist_head file_open;
25598 	struct hlist_head file_truncate;
25599 	struct hlist_head task_alloc;
25600 	struct hlist_head task_free;
25601 	struct hlist_head cred_alloc_blank;
25602 	struct hlist_head cred_free;
25603 	struct hlist_head cred_prepare;
25604 	struct hlist_head cred_transfer;
25605 	struct hlist_head cred_getsecid;
25606 	struct hlist_head kernel_act_as;
25607 	struct hlist_head kernel_create_files_as;
25608 	struct hlist_head kernel_module_request;
25609 	struct hlist_head kernel_load_data;
25610 	struct hlist_head kernel_post_load_data;
25611 	struct hlist_head kernel_read_file;
25612 	struct hlist_head kernel_post_read_file;
25613 	struct hlist_head task_fix_setuid;
25614 	struct hlist_head task_fix_setgid;
25615 	struct hlist_head task_fix_setgroups;
25616 	struct hlist_head task_setpgid;
25617 	struct hlist_head task_getpgid;
25618 	struct hlist_head task_getsid;
25619 	struct hlist_head current_getsecid_subj;
25620 	struct hlist_head task_getsecid_obj;
25621 	struct hlist_head task_setnice;
25622 	struct hlist_head task_setioprio;
25623 	struct hlist_head task_getioprio;
25624 	struct hlist_head task_prlimit;
25625 	struct hlist_head task_setrlimit;
25626 	struct hlist_head task_setscheduler;
25627 	struct hlist_head task_getscheduler;
25628 	struct hlist_head task_movememory;
25629 	struct hlist_head task_kill;
25630 	struct hlist_head task_prctl;
25631 	struct hlist_head task_to_inode;
25632 	struct hlist_head userns_create;
25633 	struct hlist_head ipc_permission;
25634 	struct hlist_head ipc_getsecid;
25635 	struct hlist_head msg_msg_alloc_security;
25636 	struct hlist_head msg_msg_free_security;
25637 	struct hlist_head msg_queue_alloc_security;
25638 	struct hlist_head msg_queue_free_security;
25639 	struct hlist_head msg_queue_associate;
25640 	struct hlist_head msg_queue_msgctl;
25641 	struct hlist_head msg_queue_msgsnd;
25642 	struct hlist_head msg_queue_msgrcv;
25643 	struct hlist_head shm_alloc_security;
25644 	struct hlist_head shm_free_security;
25645 	struct hlist_head shm_associate;
25646 	struct hlist_head shm_shmctl;
25647 	struct hlist_head shm_shmat;
25648 	struct hlist_head sem_alloc_security;
25649 	struct hlist_head sem_free_security;
25650 	struct hlist_head sem_associate;
25651 	struct hlist_head sem_semctl;
25652 	struct hlist_head sem_semop;
25653 	struct hlist_head netlink_send;
25654 	struct hlist_head d_instantiate;
25655 	struct hlist_head getprocattr;
25656 	struct hlist_head setprocattr;
25657 	struct hlist_head ismaclabel;
25658 	struct hlist_head secid_to_secctx;
25659 	struct hlist_head secctx_to_secid;
25660 	struct hlist_head release_secctx;
25661 	struct hlist_head inode_invalidate_secctx;
25662 	struct hlist_head inode_notifysecctx;
25663 	struct hlist_head inode_setsecctx;
25664 	struct hlist_head inode_getsecctx;
25665 	struct hlist_head unix_stream_connect;
25666 	struct hlist_head unix_may_send;
25667 	struct hlist_head socket_create;
25668 	struct hlist_head socket_post_create;
25669 	struct hlist_head socket_socketpair;
25670 	struct hlist_head socket_bind;
25671 	struct hlist_head socket_connect;
25672 	struct hlist_head socket_listen;
25673 	struct hlist_head socket_accept;
25674 	struct hlist_head socket_sendmsg;
25675 	struct hlist_head socket_recvmsg;
25676 	struct hlist_head socket_getsockname;
25677 	struct hlist_head socket_getpeername;
25678 	struct hlist_head socket_getsockopt;
25679 	struct hlist_head socket_setsockopt;
25680 	struct hlist_head socket_shutdown;
25681 	struct hlist_head socket_sock_rcv_skb;
25682 	struct hlist_head socket_getpeersec_stream;
25683 	struct hlist_head socket_getpeersec_dgram;
25684 	struct hlist_head sk_alloc_security;
25685 	struct hlist_head sk_free_security;
25686 	struct hlist_head sk_clone_security;
25687 	struct hlist_head sk_getsecid;
25688 	struct hlist_head sock_graft;
25689 	struct hlist_head inet_conn_request;
25690 	struct hlist_head inet_csk_clone;
25691 	struct hlist_head inet_conn_established;
25692 	struct hlist_head secmark_relabel_packet;
25693 	struct hlist_head secmark_refcount_inc;
25694 	struct hlist_head secmark_refcount_dec;
25695 	struct hlist_head req_classify_flow;
25696 	struct hlist_head tun_dev_alloc_security;
25697 	struct hlist_head tun_dev_free_security;
25698 	struct hlist_head tun_dev_create;
25699 	struct hlist_head tun_dev_attach_queue;
25700 	struct hlist_head tun_dev_attach;
25701 	struct hlist_head tun_dev_open;
25702 	struct hlist_head sctp_assoc_request;
25703 	struct hlist_head sctp_bind_connect;
25704 	struct hlist_head sctp_sk_clone;
25705 	struct hlist_head sctp_assoc_established;
25706 	struct hlist_head key_alloc;
25707 	struct hlist_head key_free;
25708 	struct hlist_head key_permission;
25709 	struct hlist_head key_getsecurity;
25710 	struct hlist_head audit_rule_init;
25711 	struct hlist_head audit_rule_known;
25712 	struct hlist_head audit_rule_match;
25713 	struct hlist_head audit_rule_free;
25714 	struct hlist_head bpf;
25715 	struct hlist_head bpf_map;
25716 	struct hlist_head bpf_prog;
25717 	struct hlist_head bpf_map_alloc_security;
25718 	struct hlist_head bpf_map_free_security;
25719 	struct hlist_head bpf_prog_alloc_security;
25720 	struct hlist_head bpf_prog_free_security;
25721 	struct hlist_head locked_down;
25722 	struct hlist_head perf_event_open;
25723 	struct hlist_head perf_event_alloc;
25724 	struct hlist_head perf_event_free;
25725 	struct hlist_head perf_event_read;
25726 	struct hlist_head perf_event_write;
25727 	struct hlist_head uring_override_creds;
25728 	struct hlist_head uring_sqpoll;
25729 	struct hlist_head uring_cmd;
25730 };
25731 
25732 struct security_hook_list {
25733 	struct hlist_node list;
25734 	struct hlist_head *head;
25735 	union security_list_options hook;
25736 	const char *lsm;
25737 };
25738 
25739 struct lsm_blob_sizes {
25740 	int lbs_cred;
25741 	int lbs_file;
25742 	int lbs_inode;
25743 	int lbs_superblock;
25744 	int lbs_ipc;
25745 	int lbs_msg_msg;
25746 	int lbs_task;
25747 };
25748 
25749 enum lsm_order {
25750 	LSM_ORDER_FIRST = -1,
25751 	LSM_ORDER_MUTABLE = 0,
25752 };
25753 
25754 struct lsm_info {
25755 	const char *name;
25756 	enum lsm_order order;
25757 	long unsigned int flags;
25758 	int *enabled;
25759 	int (*init)();
25760 	struct lsm_blob_sizes *blobs;
25761 };
25762 
25763 struct tree_descr {
25764 	const char *name;
25765 	const struct file_operations *ops;
25766 	int mode;
25767 };
25768 
25769 enum lsm_event {
25770 	LSM_POLICY_CHANGE = 0,
25771 };
25772 
25773 struct ethhdr {
25774 	unsigned char h_dest[6];
25775 	unsigned char h_source[6];
25776 	__be16 h_proto;
25777 };
25778 
25779 struct ethtool_drvinfo {
25780 	__u32 cmd;
25781 	char driver[32];
25782 	char version[32];
25783 	char fw_version[32];
25784 	char bus_info[32];
25785 	char erom_version[32];
25786 	char reserved2[12];
25787 	__u32 n_priv_flags;
25788 	__u32 n_stats;
25789 	__u32 testinfo_len;
25790 	__u32 eedump_len;
25791 	__u32 regdump_len;
25792 };
25793 
25794 struct ethtool_wolinfo {
25795 	__u32 cmd;
25796 	__u32 supported;
25797 	__u32 wolopts;
25798 	__u8 sopass[6];
25799 };
25800 
25801 struct ethtool_tunable {
25802 	__u32 cmd;
25803 	__u32 id;
25804 	__u32 type_id;
25805 	__u32 len;
25806 	void *data[0];
25807 };
25808 
25809 struct ethtool_regs {
25810 	__u32 cmd;
25811 	__u32 version;
25812 	__u32 len;
25813 	__u8 data[0];
25814 };
25815 
25816 struct ethtool_eeprom {
25817 	__u32 cmd;
25818 	__u32 magic;
25819 	__u32 offset;
25820 	__u32 len;
25821 	__u8 data[0];
25822 };
25823 
25824 struct ethtool_eee {
25825 	__u32 cmd;
25826 	__u32 supported;
25827 	__u32 advertised;
25828 	__u32 lp_advertised;
25829 	__u32 eee_active;
25830 	__u32 eee_enabled;
25831 	__u32 tx_lpi_enabled;
25832 	__u32 tx_lpi_timer;
25833 	__u32 reserved[2];
25834 };
25835 
25836 struct ethtool_modinfo {
25837 	__u32 cmd;
25838 	__u32 type;
25839 	__u32 eeprom_len;
25840 	__u32 reserved[8];
25841 };
25842 
25843 struct ethtool_coalesce {
25844 	__u32 cmd;
25845 	__u32 rx_coalesce_usecs;
25846 	__u32 rx_max_coalesced_frames;
25847 	__u32 rx_coalesce_usecs_irq;
25848 	__u32 rx_max_coalesced_frames_irq;
25849 	__u32 tx_coalesce_usecs;
25850 	__u32 tx_max_coalesced_frames;
25851 	__u32 tx_coalesce_usecs_irq;
25852 	__u32 tx_max_coalesced_frames_irq;
25853 	__u32 stats_block_coalesce_usecs;
25854 	__u32 use_adaptive_rx_coalesce;
25855 	__u32 use_adaptive_tx_coalesce;
25856 	__u32 pkt_rate_low;
25857 	__u32 rx_coalesce_usecs_low;
25858 	__u32 rx_max_coalesced_frames_low;
25859 	__u32 tx_coalesce_usecs_low;
25860 	__u32 tx_max_coalesced_frames_low;
25861 	__u32 pkt_rate_high;
25862 	__u32 rx_coalesce_usecs_high;
25863 	__u32 rx_max_coalesced_frames_high;
25864 	__u32 tx_coalesce_usecs_high;
25865 	__u32 tx_max_coalesced_frames_high;
25866 	__u32 rate_sample_interval;
25867 };
25868 
25869 struct ethtool_ringparam {
25870 	__u32 cmd;
25871 	__u32 rx_max_pending;
25872 	__u32 rx_mini_max_pending;
25873 	__u32 rx_jumbo_max_pending;
25874 	__u32 tx_max_pending;
25875 	__u32 rx_pending;
25876 	__u32 rx_mini_pending;
25877 	__u32 rx_jumbo_pending;
25878 	__u32 tx_pending;
25879 };
25880 
25881 struct ethtool_channels {
25882 	__u32 cmd;
25883 	__u32 max_rx;
25884 	__u32 max_tx;
25885 	__u32 max_other;
25886 	__u32 max_combined;
25887 	__u32 rx_count;
25888 	__u32 tx_count;
25889 	__u32 other_count;
25890 	__u32 combined_count;
25891 };
25892 
25893 struct ethtool_pauseparam {
25894 	__u32 cmd;
25895 	__u32 autoneg;
25896 	__u32 rx_pause;
25897 	__u32 tx_pause;
25898 };
25899 
25900 enum ethtool_link_ext_state {
25901 	ETHTOOL_LINK_EXT_STATE_AUTONEG = 0,
25902 	ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE = 1,
25903 	ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH = 2,
25904 	ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY = 3,
25905 	ETHTOOL_LINK_EXT_STATE_NO_CABLE = 4,
25906 	ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE = 5,
25907 	ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE = 6,
25908 	ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE = 7,
25909 	ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED = 8,
25910 	ETHTOOL_LINK_EXT_STATE_OVERHEAT = 9,
25911 	ETHTOOL_LINK_EXT_STATE_MODULE = 10,
25912 };
25913 
25914 enum ethtool_link_ext_substate_autoneg {
25915 	ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1,
25916 	ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED = 2,
25917 	ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED = 3,
25918 	ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE = 4,
25919 	ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE = 5,
25920 	ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD = 6,
25921 };
25922 
25923 enum ethtool_link_ext_substate_link_training {
25924 	ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 1,
25925 	ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT = 2,
25926 	ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY = 3,
25927 	ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT = 4,
25928 };
25929 
25930 enum ethtool_link_ext_substate_link_logical_mismatch {
25931 	ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 1,
25932 	ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK = 2,
25933 	ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS = 3,
25934 	ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED = 4,
25935 	ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED = 5,
25936 };
25937 
25938 enum ethtool_link_ext_substate_bad_signal_integrity {
25939 	ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1,
25940 	ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE = 2,
25941 	ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_REFERENCE_CLOCK_LOST = 3,
25942 	ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_ALOS = 4,
25943 };
25944 
25945 enum ethtool_link_ext_substate_cable_issue {
25946 	ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1,
25947 	ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 2,
25948 };
25949 
25950 enum ethtool_link_ext_substate_module {
25951 	ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1,
25952 };
25953 
25954 enum ethtool_module_power_mode_policy {
25955 	ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1,
25956 	ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO = 2,
25957 };
25958 
25959 enum ethtool_module_power_mode {
25960 	ETHTOOL_MODULE_POWER_MODE_LOW = 1,
25961 	ETHTOOL_MODULE_POWER_MODE_HIGH = 2,
25962 };
25963 
25964 struct ethtool_test {
25965 	__u32 cmd;
25966 	__u32 flags;
25967 	__u32 reserved;
25968 	__u32 len;
25969 	__u64 data[0];
25970 };
25971 
25972 struct ethtool_stats {
25973 	__u32 cmd;
25974 	__u32 n_stats;
25975 	__u64 data[0];
25976 };
25977 
25978 struct ethtool_tcpip4_spec {
25979 	__be32 ip4src;
25980 	__be32 ip4dst;
25981 	__be16 psrc;
25982 	__be16 pdst;
25983 	__u8 tos;
25984 };
25985 
25986 struct ethtool_ah_espip4_spec {
25987 	__be32 ip4src;
25988 	__be32 ip4dst;
25989 	__be32 spi;
25990 	__u8 tos;
25991 };
25992 
25993 struct ethtool_usrip4_spec {
25994 	__be32 ip4src;
25995 	__be32 ip4dst;
25996 	__be32 l4_4_bytes;
25997 	__u8 tos;
25998 	__u8 ip_ver;
25999 	__u8 proto;
26000 };
26001 
26002 struct ethtool_tcpip6_spec {
26003 	__be32 ip6src[4];
26004 	__be32 ip6dst[4];
26005 	__be16 psrc;
26006 	__be16 pdst;
26007 	__u8 tclass;
26008 };
26009 
26010 struct ethtool_ah_espip6_spec {
26011 	__be32 ip6src[4];
26012 	__be32 ip6dst[4];
26013 	__be32 spi;
26014 	__u8 tclass;
26015 };
26016 
26017 struct ethtool_usrip6_spec {
26018 	__be32 ip6src[4];
26019 	__be32 ip6dst[4];
26020 	__be32 l4_4_bytes;
26021 	__u8 tclass;
26022 	__u8 l4_proto;
26023 };
26024 
26025 union ethtool_flow_union {
26026 	struct ethtool_tcpip4_spec tcp_ip4_spec;
26027 	struct ethtool_tcpip4_spec udp_ip4_spec;
26028 	struct ethtool_tcpip4_spec sctp_ip4_spec;
26029 	struct ethtool_ah_espip4_spec ah_ip4_spec;
26030 	struct ethtool_ah_espip4_spec esp_ip4_spec;
26031 	struct ethtool_usrip4_spec usr_ip4_spec;
26032 	struct ethtool_tcpip6_spec tcp_ip6_spec;
26033 	struct ethtool_tcpip6_spec udp_ip6_spec;
26034 	struct ethtool_tcpip6_spec sctp_ip6_spec;
26035 	struct ethtool_ah_espip6_spec ah_ip6_spec;
26036 	struct ethtool_ah_espip6_spec esp_ip6_spec;
26037 	struct ethtool_usrip6_spec usr_ip6_spec;
26038 	struct ethhdr ether_spec;
26039 	__u8 hdata[52];
26040 };
26041 
26042 struct ethtool_flow_ext {
26043 	__u8 padding[2];
26044 	unsigned char h_dest[6];
26045 	__be16 vlan_etype;
26046 	__be16 vlan_tci;
26047 	__be32 data[2];
26048 };
26049 
26050 struct ethtool_rx_flow_spec {
26051 	__u32 flow_type;
26052 	union ethtool_flow_union h_u;
26053 	struct ethtool_flow_ext h_ext;
26054 	union ethtool_flow_union m_u;
26055 	struct ethtool_flow_ext m_ext;
26056 	__u64 ring_cookie;
26057 	__u32 location;
26058 };
26059 
26060 struct ethtool_rxnfc {
26061 	__u32 cmd;
26062 	__u32 flow_type;
26063 	__u64 data;
26064 	struct ethtool_rx_flow_spec fs;
26065 	union {
26066 		__u32 rule_cnt;
26067 		__u32 rss_context;
26068 	};
26069 	__u32 rule_locs[0];
26070 };
26071 
26072 struct ethtool_flash {
26073 	__u32 cmd;
26074 	__u32 region;
26075 	char data[128];
26076 };
26077 
26078 struct ethtool_dump {
26079 	__u32 cmd;
26080 	__u32 version;
26081 	__u32 flag;
26082 	__u32 len;
26083 	__u8 data[0];
26084 };
26085 
26086 struct ethtool_ts_info {
26087 	__u32 cmd;
26088 	__u32 so_timestamping;
26089 	__s32 phc_index;
26090 	__u32 tx_types;
26091 	__u32 tx_reserved[3];
26092 	__u32 rx_filters;
26093 	__u32 rx_reserved[3];
26094 };
26095 
26096 struct ethtool_fecparam {
26097 	__u32 cmd;
26098 	__u32 active_fec;
26099 	__u32 fec;
26100 	__u32 reserved;
26101 };
26102 
26103 enum ethtool_link_mode_bit_indices {
26104 	ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0,
26105 	ETHTOOL_LINK_MODE_10baseT_Full_BIT = 1,
26106 	ETHTOOL_LINK_MODE_100baseT_Half_BIT = 2,
26107 	ETHTOOL_LINK_MODE_100baseT_Full_BIT = 3,
26108 	ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 4,
26109 	ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 5,
26110 	ETHTOOL_LINK_MODE_Autoneg_BIT = 6,
26111 	ETHTOOL_LINK_MODE_TP_BIT = 7,
26112 	ETHTOOL_LINK_MODE_AUI_BIT = 8,
26113 	ETHTOOL_LINK_MODE_MII_BIT = 9,
26114 	ETHTOOL_LINK_MODE_FIBRE_BIT = 10,
26115 	ETHTOOL_LINK_MODE_BNC_BIT = 11,
26116 	ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 12,
26117 	ETHTOOL_LINK_MODE_Pause_BIT = 13,
26118 	ETHTOOL_LINK_MODE_Asym_Pause_BIT = 14,
26119 	ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 15,
26120 	ETHTOOL_LINK_MODE_Backplane_BIT = 16,
26121 	ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 17,
26122 	ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 18,
26123 	ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 19,
26124 	ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 20,
26125 	ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 21,
26126 	ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 22,
26127 	ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 23,
26128 	ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 24,
26129 	ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 25,
26130 	ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 26,
26131 	ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 27,
26132 	ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 28,
26133 	ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29,
26134 	ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30,
26135 	ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31,
26136 	ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32,
26137 	ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33,
26138 	ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34,
26139 	ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 35,
26140 	ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 36,
26141 	ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 37,
26142 	ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 38,
26143 	ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39,
26144 	ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 40,
26145 	ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 41,
26146 	ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 42,
26147 	ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 43,
26148 	ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44,
26149 	ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45,
26150 	ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46,
26151 	ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47,
26152 	ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48,
26153 	ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49,
26154 	ETHTOOL_LINK_MODE_FEC_RS_BIT = 50,
26155 	ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51,
26156 	ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 52,
26157 	ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 53,
26158 	ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 54,
26159 	ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 55,
26160 	ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 56,
26161 	ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 57,
26162 	ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 58,
26163 	ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 59,
26164 	ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 60,
26165 	ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 61,
26166 	ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 62,
26167 	ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 63,
26168 	ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64,
26169 	ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65,
26170 	ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66,
26171 	ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67,
26172 	ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68,
26173 	ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 69,
26174 	ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 70,
26175 	ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71,
26176 	ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72,
26177 	ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73,
26178 	ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74,
26179 	ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 75,
26180 	ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 76,
26181 	ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 77,
26182 	ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 78,
26183 	ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 79,
26184 	ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 80,
26185 	ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 81,
26186 	ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82,
26187 	ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 83,
26188 	ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 84,
26189 	ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 85,
26190 	ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 86,
26191 	ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87,
26192 	ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 88,
26193 	ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 89,
26194 	ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90,
26195 	ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91,
26196 	ETHTOOL_LINK_MODE_10baseT1L_Full_BIT = 92,
26197 	ETHTOOL_LINK_MODE_800000baseCR8_Full_BIT = 93,
26198 	ETHTOOL_LINK_MODE_800000baseKR8_Full_BIT = 94,
26199 	ETHTOOL_LINK_MODE_800000baseDR8_Full_BIT = 95,
26200 	ETHTOOL_LINK_MODE_800000baseDR8_2_Full_BIT = 96,
26201 	ETHTOOL_LINK_MODE_800000baseSR8_Full_BIT = 97,
26202 	ETHTOOL_LINK_MODE_800000baseVR8_Full_BIT = 98,
26203 	__ETHTOOL_LINK_MODE_MASK_NBITS = 99,
26204 };
26205 
26206 struct ethtool_link_settings {
26207 	__u32 cmd;
26208 	__u32 speed;
26209 	__u8 duplex;
26210 	__u8 port;
26211 	__u8 phy_address;
26212 	__u8 autoneg;
26213 	__u8 mdio_support;
26214 	__u8 eth_tp_mdix;
26215 	__u8 eth_tp_mdix_ctrl;
26216 	__s8 link_mode_masks_nwords;
26217 	__u8 transceiver;
26218 	__u8 master_slave_cfg;
26219 	__u8 master_slave_state;
26220 	__u8 rate_matching;
26221 	__u32 reserved[7];
26222 	__u32 link_mode_masks[0];
26223 };
26224 
26225 struct kernel_ethtool_ringparam {
26226 	u32 rx_buf_len;
26227 	u8 tcp_data_split;
26228 	u8 tx_push;
26229 	u32 cqe_size;
26230 };
26231 
26232 struct ethtool_link_ext_state_info {
26233 	enum ethtool_link_ext_state link_ext_state;
26234 	union {
26235 		enum ethtool_link_ext_substate_autoneg autoneg;
26236 		enum ethtool_link_ext_substate_link_training link_training;
26237 		enum ethtool_link_ext_substate_link_logical_mismatch link_logical_mismatch;
26238 		enum ethtool_link_ext_substate_bad_signal_integrity bad_signal_integrity;
26239 		enum ethtool_link_ext_substate_cable_issue cable_issue;
26240 		enum ethtool_link_ext_substate_module module;
26241 		u32 __link_ext_substate;
26242 	};
26243 };
26244 
26245 struct ethtool_link_ext_stats {
26246 	u64 link_down_events;
26247 };
26248 
26249 struct ethtool_link_ksettings {
26250 	struct ethtool_link_settings base;
26251 	struct {
26252 		long unsigned int supported[2];
26253 		long unsigned int advertising[2];
26254 		long unsigned int lp_advertising[2];
26255 	} link_modes;
26256 	u32 lanes;
26257 };
26258 
26259 struct kernel_ethtool_coalesce {
26260 	u8 use_cqe_mode_tx;
26261 	u8 use_cqe_mode_rx;
26262 };
26263 
26264 struct ethtool_eth_mac_stats {
26265 	u64 FramesTransmittedOK;
26266 	u64 SingleCollisionFrames;
26267 	u64 MultipleCollisionFrames;
26268 	u64 FramesReceivedOK;
26269 	u64 FrameCheckSequenceErrors;
26270 	u64 AlignmentErrors;
26271 	u64 OctetsTransmittedOK;
26272 	u64 FramesWithDeferredXmissions;
26273 	u64 LateCollisions;
26274 	u64 FramesAbortedDueToXSColls;
26275 	u64 FramesLostDueToIntMACXmitError;
26276 	u64 CarrierSenseErrors;
26277 	u64 OctetsReceivedOK;
26278 	u64 FramesLostDueToIntMACRcvError;
26279 	u64 MulticastFramesXmittedOK;
26280 	u64 BroadcastFramesXmittedOK;
26281 	u64 FramesWithExcessiveDeferral;
26282 	u64 MulticastFramesReceivedOK;
26283 	u64 BroadcastFramesReceivedOK;
26284 	u64 InRangeLengthErrors;
26285 	u64 OutOfRangeLengthField;
26286 	u64 FrameTooLongErrors;
26287 };
26288 
26289 struct ethtool_eth_phy_stats {
26290 	u64 SymbolErrorDuringCarrier;
26291 };
26292 
26293 struct ethtool_eth_ctrl_stats {
26294 	u64 MACControlFramesTransmitted;
26295 	u64 MACControlFramesReceived;
26296 	u64 UnsupportedOpcodesReceived;
26297 };
26298 
26299 struct ethtool_pause_stats {
26300 	u64 tx_pause_frames;
26301 	u64 rx_pause_frames;
26302 };
26303 
26304 struct ethtool_fec_stat {
26305 	u64 total;
26306 	u64 lanes[8];
26307 };
26308 
26309 struct ethtool_fec_stats {
26310 	struct ethtool_fec_stat corrected_blocks;
26311 	struct ethtool_fec_stat uncorrectable_blocks;
26312 	struct ethtool_fec_stat corrected_bits;
26313 };
26314 
26315 struct ethtool_rmon_hist_range {
26316 	u16 low;
26317 	u16 high;
26318 };
26319 
26320 struct ethtool_rmon_stats {
26321 	u64 undersize_pkts;
26322 	u64 oversize_pkts;
26323 	u64 fragments;
26324 	u64 jabbers;
26325 	u64 hist[10];
26326 	u64 hist_tx[10];
26327 };
26328 
26329 struct ethtool_module_eeprom {
26330 	u32 offset;
26331 	u32 length;
26332 	u8 page;
26333 	u8 bank;
26334 	u8 i2c_address;
26335 	u8 *data;
26336 };
26337 
26338 struct ethtool_module_power_mode_params {
26339 	enum ethtool_module_power_mode_policy policy;
26340 	enum ethtool_module_power_mode mode;
26341 };
26342 
26343 enum ib_uverbs_write_cmds {
26344 	IB_USER_VERBS_CMD_GET_CONTEXT = 0,
26345 	IB_USER_VERBS_CMD_QUERY_DEVICE = 1,
26346 	IB_USER_VERBS_CMD_QUERY_PORT = 2,
26347 	IB_USER_VERBS_CMD_ALLOC_PD = 3,
26348 	IB_USER_VERBS_CMD_DEALLOC_PD = 4,
26349 	IB_USER_VERBS_CMD_CREATE_AH = 5,
26350 	IB_USER_VERBS_CMD_MODIFY_AH = 6,
26351 	IB_USER_VERBS_CMD_QUERY_AH = 7,
26352 	IB_USER_VERBS_CMD_DESTROY_AH = 8,
26353 	IB_USER_VERBS_CMD_REG_MR = 9,
26354 	IB_USER_VERBS_CMD_REG_SMR = 10,
26355 	IB_USER_VERBS_CMD_REREG_MR = 11,
26356 	IB_USER_VERBS_CMD_QUERY_MR = 12,
26357 	IB_USER_VERBS_CMD_DEREG_MR = 13,
26358 	IB_USER_VERBS_CMD_ALLOC_MW = 14,
26359 	IB_USER_VERBS_CMD_BIND_MW = 15,
26360 	IB_USER_VERBS_CMD_DEALLOC_MW = 16,
26361 	IB_USER_VERBS_CMD_CREATE_COMP_CHANNEL = 17,
26362 	IB_USER_VERBS_CMD_CREATE_CQ = 18,
26363 	IB_USER_VERBS_CMD_RESIZE_CQ = 19,
26364 	IB_USER_VERBS_CMD_DESTROY_CQ = 20,
26365 	IB_USER_VERBS_CMD_POLL_CQ = 21,
26366 	IB_USER_VERBS_CMD_PEEK_CQ = 22,
26367 	IB_USER_VERBS_CMD_REQ_NOTIFY_CQ = 23,
26368 	IB_USER_VERBS_CMD_CREATE_QP = 24,
26369 	IB_USER_VERBS_CMD_QUERY_QP = 25,
26370 	IB_USER_VERBS_CMD_MODIFY_QP = 26,
26371 	IB_USER_VERBS_CMD_DESTROY_QP = 27,
26372 	IB_USER_VERBS_CMD_POST_SEND = 28,
26373 	IB_USER_VERBS_CMD_POST_RECV = 29,
26374 	IB_USER_VERBS_CMD_ATTACH_MCAST = 30,
26375 	IB_USER_VERBS_CMD_DETACH_MCAST = 31,
26376 	IB_USER_VERBS_CMD_CREATE_SRQ = 32,
26377 	IB_USER_VERBS_CMD_MODIFY_SRQ = 33,
26378 	IB_USER_VERBS_CMD_QUERY_SRQ = 34,
26379 	IB_USER_VERBS_CMD_DESTROY_SRQ = 35,
26380 	IB_USER_VERBS_CMD_POST_SRQ_RECV = 36,
26381 	IB_USER_VERBS_CMD_OPEN_XRCD = 37,
26382 	IB_USER_VERBS_CMD_CLOSE_XRCD = 38,
26383 	IB_USER_VERBS_CMD_CREATE_XSRQ = 39,
26384 	IB_USER_VERBS_CMD_OPEN_QP = 40,
26385 };
26386 
26387 enum ib_uverbs_wc_opcode {
26388 	IB_UVERBS_WC_SEND = 0,
26389 	IB_UVERBS_WC_RDMA_WRITE = 1,
26390 	IB_UVERBS_WC_RDMA_READ = 2,
26391 	IB_UVERBS_WC_COMP_SWAP = 3,
26392 	IB_UVERBS_WC_FETCH_ADD = 4,
26393 	IB_UVERBS_WC_BIND_MW = 5,
26394 	IB_UVERBS_WC_LOCAL_INV = 6,
26395 	IB_UVERBS_WC_TSO = 7,
26396 	IB_UVERBS_WC_FLUSH = 8,
26397 	IB_UVERBS_WC_ATOMIC_WRITE = 9,
26398 };
26399 
26400 enum ib_uverbs_create_qp_mask {
26401 	IB_UVERBS_CREATE_QP_MASK_IND_TABLE = 1,
26402 };
26403 
26404 enum ib_uverbs_wr_opcode {
26405 	IB_UVERBS_WR_RDMA_WRITE = 0,
26406 	IB_UVERBS_WR_RDMA_WRITE_WITH_IMM = 1,
26407 	IB_UVERBS_WR_SEND = 2,
26408 	IB_UVERBS_WR_SEND_WITH_IMM = 3,
26409 	IB_UVERBS_WR_RDMA_READ = 4,
26410 	IB_UVERBS_WR_ATOMIC_CMP_AND_SWP = 5,
26411 	IB_UVERBS_WR_ATOMIC_FETCH_AND_ADD = 6,
26412 	IB_UVERBS_WR_LOCAL_INV = 7,
26413 	IB_UVERBS_WR_BIND_MW = 8,
26414 	IB_UVERBS_WR_SEND_WITH_INV = 9,
26415 	IB_UVERBS_WR_TSO = 10,
26416 	IB_UVERBS_WR_RDMA_READ_WITH_INV = 11,
26417 	IB_UVERBS_WR_MASKED_ATOMIC_CMP_AND_SWP = 12,
26418 	IB_UVERBS_WR_MASKED_ATOMIC_FETCH_AND_ADD = 13,
26419 	IB_UVERBS_WR_FLUSH = 14,
26420 	IB_UVERBS_WR_ATOMIC_WRITE = 15,
26421 };
26422 
26423 enum ib_uverbs_device_cap_flags {
26424 	IB_UVERBS_DEVICE_RESIZE_MAX_WR = 1ULL,
26425 	IB_UVERBS_DEVICE_BAD_PKEY_CNTR = 2ULL,
26426 	IB_UVERBS_DEVICE_BAD_QKEY_CNTR = 4ULL,
26427 	IB_UVERBS_DEVICE_RAW_MULTI = 8ULL,
26428 	IB_UVERBS_DEVICE_AUTO_PATH_MIG = 16ULL,
26429 	IB_UVERBS_DEVICE_CHANGE_PHY_PORT = 32ULL,
26430 	IB_UVERBS_DEVICE_UD_AV_PORT_ENFORCE = 64ULL,
26431 	IB_UVERBS_DEVICE_CURR_QP_STATE_MOD = 128ULL,
26432 	IB_UVERBS_DEVICE_SHUTDOWN_PORT = 256ULL,
26433 	IB_UVERBS_DEVICE_PORT_ACTIVE_EVENT = 1024ULL,
26434 	IB_UVERBS_DEVICE_SYS_IMAGE_GUID = 2048ULL,
26435 	IB_UVERBS_DEVICE_RC_RNR_NAK_GEN = 4096ULL,
26436 	IB_UVERBS_DEVICE_SRQ_RESIZE = 8192ULL,
26437 	IB_UVERBS_DEVICE_N_NOTIFY_CQ = 16384ULL,
26438 	IB_UVERBS_DEVICE_MEM_WINDOW = 131072ULL,
26439 	IB_UVERBS_DEVICE_UD_IP_CSUM = 262144ULL,
26440 	IB_UVERBS_DEVICE_XRC = 1048576ULL,
26441 	IB_UVERBS_DEVICE_MEM_MGT_EXTENSIONS = 2097152ULL,
26442 	IB_UVERBS_DEVICE_MEM_WINDOW_TYPE_2A = 8388608ULL,
26443 	IB_UVERBS_DEVICE_MEM_WINDOW_TYPE_2B = 16777216ULL,
26444 	IB_UVERBS_DEVICE_RC_IP_CSUM = 33554432ULL,
26445 	IB_UVERBS_DEVICE_RAW_IP_CSUM = 67108864ULL,
26446 	IB_UVERBS_DEVICE_MANAGED_FLOW_STEERING = 536870912ULL,
26447 	IB_UVERBS_DEVICE_RAW_SCATTER_FCS = 17179869184ULL,
26448 	IB_UVERBS_DEVICE_PCI_WRITE_END_PADDING = 68719476736ULL,
26449 	IB_UVERBS_DEVICE_FLUSH_GLOBAL = 274877906944ULL,
26450 	IB_UVERBS_DEVICE_FLUSH_PERSISTENT = 549755813888ULL,
26451 	IB_UVERBS_DEVICE_ATOMIC_WRITE = 1099511627776ULL,
26452 };
26453 
26454 enum ib_uverbs_raw_packet_caps {
26455 	IB_UVERBS_RAW_PACKET_CAP_CVLAN_STRIPPING = 1,
26456 	IB_UVERBS_RAW_PACKET_CAP_SCATTER_FCS = 2,
26457 	IB_UVERBS_RAW_PACKET_CAP_IP_CSUM = 4,
26458 	IB_UVERBS_RAW_PACKET_CAP_DELAY_DROP = 8,
26459 };
26460 
26461 enum ib_uverbs_access_flags {
26462 	IB_UVERBS_ACCESS_LOCAL_WRITE = 1,
26463 	IB_UVERBS_ACCESS_REMOTE_WRITE = 2,
26464 	IB_UVERBS_ACCESS_REMOTE_READ = 4,
26465 	IB_UVERBS_ACCESS_REMOTE_ATOMIC = 8,
26466 	IB_UVERBS_ACCESS_MW_BIND = 16,
26467 	IB_UVERBS_ACCESS_ZERO_BASED = 32,
26468 	IB_UVERBS_ACCESS_ON_DEMAND = 64,
26469 	IB_UVERBS_ACCESS_HUGETLB = 128,
26470 	IB_UVERBS_ACCESS_FLUSH_GLOBAL = 256,
26471 	IB_UVERBS_ACCESS_FLUSH_PERSISTENT = 512,
26472 	IB_UVERBS_ACCESS_RELAXED_ORDERING = 1048576,
26473 	IB_UVERBS_ACCESS_OPTIONAL_RANGE = 1072693248,
26474 };
26475 
26476 enum ib_uverbs_srq_type {
26477 	IB_UVERBS_SRQT_BASIC = 0,
26478 	IB_UVERBS_SRQT_XRC = 1,
26479 	IB_UVERBS_SRQT_TM = 2,
26480 };
26481 
26482 enum ib_uverbs_wq_type {
26483 	IB_UVERBS_WQT_RQ = 0,
26484 };
26485 
26486 enum ib_uverbs_wq_flags {
26487 	IB_UVERBS_WQ_FLAGS_CVLAN_STRIPPING = 1,
26488 	IB_UVERBS_WQ_FLAGS_SCATTER_FCS = 2,
26489 	IB_UVERBS_WQ_FLAGS_DELAY_DROP = 4,
26490 	IB_UVERBS_WQ_FLAGS_PCI_WRITE_END_PADDING = 8,
26491 };
26492 
26493 enum ib_uverbs_qp_type {
26494 	IB_UVERBS_QPT_RC = 2,
26495 	IB_UVERBS_QPT_UC = 3,
26496 	IB_UVERBS_QPT_UD = 4,
26497 	IB_UVERBS_QPT_RAW_PACKET = 8,
26498 	IB_UVERBS_QPT_XRC_INI = 9,
26499 	IB_UVERBS_QPT_XRC_TGT = 10,
26500 	IB_UVERBS_QPT_DRIVER = 255,
26501 };
26502 
26503 enum ib_uverbs_qp_create_flags {
26504 	IB_UVERBS_QP_CREATE_BLOCK_MULTICAST_LOOPBACK = 2,
26505 	IB_UVERBS_QP_CREATE_SCATTER_FCS = 256,
26506 	IB_UVERBS_QP_CREATE_CVLAN_STRIPPING = 512,
26507 	IB_UVERBS_QP_CREATE_PCI_WRITE_END_PADDING = 2048,
26508 	IB_UVERBS_QP_CREATE_SQ_SIG_ALL = 4096,
26509 };
26510 
26511 enum ib_uverbs_gid_type {
26512 	IB_UVERBS_GID_TYPE_IB = 0,
26513 	IB_UVERBS_GID_TYPE_ROCE_V1 = 1,
26514 	IB_UVERBS_GID_TYPE_ROCE_V2 = 2,
26515 };
26516 
26517 enum ib_poll_context {
26518 	IB_POLL_SOFTIRQ = 0,
26519 	IB_POLL_WORKQUEUE = 1,
26520 	IB_POLL_UNBOUND_WORKQUEUE = 2,
26521 	IB_POLL_LAST_POOL_TYPE = 2,
26522 	IB_POLL_DIRECT = 3,
26523 };
26524 
26525 struct lsm_network_audit {
26526 	int netif;
26527 	const struct sock *sk;
26528 	u16 family;
26529 	__be16 dport;
26530 	__be16 sport;
26531 	union {
26532 		struct {
26533 			__be32 daddr;
26534 			__be32 saddr;
26535 		} v4;
26536 		struct {
26537 			struct in6_addr daddr;
26538 			struct in6_addr saddr;
26539 		} v6;
26540 	} fam;
26541 };
26542 
26543 struct lsm_ioctlop_audit {
26544 	struct path path;
26545 	u16 cmd;
26546 };
26547 
26548 struct lsm_ibpkey_audit {
26549 	u64 subnet_prefix;
26550 	u16 pkey;
26551 };
26552 
26553 struct lsm_ibendport_audit {
26554 	const char *dev_name;
26555 	u8 port;
26556 };
26557 
26558 struct selinux_state;
26559 
26560 struct selinux_audit_data {
26561 	u32 ssid;
26562 	u32 tsid;
26563 	u16 tclass;
26564 	u32 requested;
26565 	u32 audited;
26566 	u32 denied;
26567 	int result;
26568 	struct selinux_state *state;
26569 };
26570 
26571 struct apparmor_audit_data;
26572 
26573 struct common_audit_data {
26574 	char type;
26575 	union {
26576 		struct path path;
26577 		struct dentry *dentry;
26578 		struct inode *inode;
26579 		struct lsm_network_audit *net;
26580 		int cap;
26581 		int ipc_id;
26582 		struct task_struct *tsk;
26583 		struct {
26584 			key_serial_t key;
26585 			char *key_desc;
26586 		} key_struct;
26587 		char *kmod_name;
26588 		struct lsm_ioctlop_audit *op;
26589 		struct file *file;
26590 		struct lsm_ibpkey_audit *ibpkey;
26591 		struct lsm_ibendport_audit *ibendport;
26592 		int reason;
26593 		const char *anonclass;
26594 	} u;
26595 	union {
26596 		struct selinux_audit_data *selinux_audit_data;
26597 		struct apparmor_audit_data *apparmor_audit_data;
26598 	};
26599 };
26600 
26601 enum {
26602 	POLICYDB_CAP_NETPEER = 0,
26603 	POLICYDB_CAP_OPENPERM = 1,
26604 	POLICYDB_CAP_EXTSOCKCLASS = 2,
26605 	POLICYDB_CAP_ALWAYSNETWORK = 3,
26606 	POLICYDB_CAP_CGROUPSECLABEL = 4,
26607 	POLICYDB_CAP_NNP_NOSUID_TRANSITION = 5,
26608 	POLICYDB_CAP_GENFS_SECLABEL_SYMLINKS = 6,
26609 	POLICYDB_CAP_IOCTL_SKIP_CLOEXEC = 7,
26610 	__POLICYDB_CAP_MAX = 8,
26611 };
26612 
26613 struct selinux_avc;
26614 
26615 struct selinux_policy;
26616 
26617 struct selinux_state {
26618 	bool enforcing;
26619 	bool checkreqprot;
26620 	bool initialized;
26621 	bool policycap[8];
26622 	struct page *status_page;
26623 	struct mutex status_lock;
26624 	struct selinux_avc *avc;
26625 	struct selinux_policy *policy;
26626 	struct mutex policy_mutex;
26627 };
26628 
26629 struct selinux_policy_convert_data;
26630 
26631 struct selinux_load_state {
26632 	struct selinux_policy *policy;
26633 	struct selinux_policy_convert_data *convert_data;
26634 };
26635 
26636 struct av_decision {
26637 	u32 allowed;
26638 	u32 auditallow;
26639 	u32 auditdeny;
26640 	u32 seqno;
26641 	u32 flags;
26642 };
26643 
26644 struct avc_cache_stats {
26645 	unsigned int lookups;
26646 	unsigned int misses;
26647 	unsigned int allocations;
26648 	unsigned int reclaims;
26649 	unsigned int frees;
26650 };
26651 
26652 struct task_security_struct {
26653 	u32 osid;
26654 	u32 sid;
26655 	u32 exec_sid;
26656 	u32 create_sid;
26657 	u32 keycreate_sid;
26658 	u32 sockcreate_sid;
26659 };
26660 
26661 enum label_initialized {
26662 	LABEL_INVALID = 0,
26663 	LABEL_INITIALIZED = 1,
26664 	LABEL_PENDING = 2,
26665 };
26666 
26667 struct inode_security_struct {
26668 	struct inode *inode;
26669 	struct list_head list;
26670 	u32 task_sid;
26671 	u32 sid;
26672 	u16 sclass;
26673 	unsigned char initialized;
26674 	spinlock_t lock;
26675 };
26676 
26677 enum sel_inos {
26678 	SEL_ROOT_INO = 2,
26679 	SEL_LOAD = 3,
26680 	SEL_ENFORCE = 4,
26681 	SEL_CONTEXT = 5,
26682 	SEL_ACCESS = 6,
26683 	SEL_CREATE = 7,
26684 	SEL_RELABEL = 8,
26685 	SEL_USER = 9,
26686 	SEL_POLICYVERS = 10,
26687 	SEL_COMMIT_BOOLS = 11,
26688 	SEL_MLS = 12,
26689 	SEL_DISABLE = 13,
26690 	SEL_MEMBER = 14,
26691 	SEL_CHECKREQPROT = 15,
26692 	SEL_COMPAT_NET = 16,
26693 	SEL_REJECT_UNKNOWN = 17,
26694 	SEL_DENY_UNKNOWN = 18,
26695 	SEL_STATUS = 19,
26696 	SEL_POLICY = 20,
26697 	SEL_VALIDATE_TRANS = 21,
26698 	SEL_INO_NEXT = 22,
26699 };
26700 
26701 struct selinux_fs_info {
26702 	struct dentry *bool_dir;
26703 	unsigned int bool_num;
26704 	char **bool_pending_names;
26705 	int *bool_pending_values;
26706 	struct dentry *class_dir;
26707 	long unsigned int last_class_ino;
26708 	bool policy_opened;
26709 	struct dentry *policycap_dir;
26710 	long unsigned int last_ino;
26711 	struct selinux_state *state;
26712 	struct super_block *sb;
26713 };
26714 
26715 struct policy_load_memory {
26716 	size_t len;
26717 	void *data;
26718 };
26719 
26720 struct netnode_security_struct {
26721 	union {
26722 		__be32 ipv4;
26723 		struct in6_addr ipv6;
26724 	} addr;
26725 	u32 sid;
26726 	u16 family;
26727 };
26728 
26729 struct sel_netnode_bkt {
26730 	unsigned int size;
26731 	struct list_head list;
26732 };
26733 
26734 struct sel_netnode {
26735 	struct netnode_security_struct nsec;
26736 	struct list_head list;
26737 	struct callback_head rcu;
26738 };
26739 
26740 struct hashtab_node {
26741 	void *key;
26742 	void *datum;
26743 	struct hashtab_node *next;
26744 };
26745 
26746 struct hashtab {
26747 	struct hashtab_node **htable;
26748 	u32 size;
26749 	u32 nel;
26750 };
26751 
26752 struct hashtab_info {
26753 	u32 slots_used;
26754 	u32 max_chain_len;
26755 };
26756 
26757 struct hashtab_key_params {
26758 	u32 (*hash)(const void *);
26759 	int (*cmp)(const void *, const void *);
26760 };
26761 
26762 struct symtab {
26763 	struct hashtab table;
26764 	u32 nprim;
26765 };
26766 
26767 struct avtab_node;
26768 
26769 struct avtab {
26770 	struct avtab_node **htable;
26771 	u32 nel;
26772 	u32 nslot;
26773 	u32 mask;
26774 };
26775 
26776 struct ebitmap_node;
26777 
26778 struct ebitmap {
26779 	struct ebitmap_node *node;
26780 	u32 highbit;
26781 };
26782 
26783 struct class_datum;
26784 
26785 struct role_datum;
26786 
26787 struct user_datum;
26788 
26789 struct type_datum;
26790 
26791 struct cond_bool_datum;
26792 
26793 struct cond_node;
26794 
26795 struct role_allow;
26796 
26797 struct ocontext;
26798 
26799 struct genfs;
26800 
26801 struct policydb {
26802 	int mls_enabled;
26803 	struct symtab symtab[8];
26804 	char **sym_val_to_name[8];
26805 	struct class_datum **class_val_to_struct;
26806 	struct role_datum **role_val_to_struct;
26807 	struct user_datum **user_val_to_struct;
26808 	struct type_datum **type_val_to_struct;
26809 	struct avtab te_avtab;
26810 	struct hashtab role_tr;
26811 	struct ebitmap filename_trans_ttypes;
26812 	struct hashtab filename_trans;
26813 	u32 compat_filename_trans_count;
26814 	struct cond_bool_datum **bool_val_to_struct;
26815 	struct avtab te_cond_avtab;
26816 	struct cond_node *cond_list;
26817 	u32 cond_list_len;
26818 	struct role_allow *role_allow;
26819 	struct ocontext *ocontexts[9];
26820 	struct genfs *genfs;
26821 	struct hashtab range_tr;
26822 	struct ebitmap *type_attr_map_array;
26823 	struct ebitmap policycaps;
26824 	struct ebitmap permissive_map;
26825 	size_t len;
26826 	unsigned int policyvers;
26827 	unsigned int reject_unknown: 1;
26828 	unsigned int allow_unknown: 1;
26829 	u16 process_class;
26830 	u32 process_trans_perms;
26831 };
26832 
26833 struct selinux_mapping;
26834 
26835 struct selinux_map {
26836 	struct selinux_mapping *mapping;
26837 	u16 size;
26838 };
26839 
26840 struct sidtab;
26841 
26842 struct selinux_policy {
26843 	struct sidtab *sidtab;
26844 	struct policydb policydb;
26845 	struct selinux_map map;
26846 	u32 latest_granting;
26847 };
26848 
26849 struct extended_perms_data {
26850 	u32 p[8];
26851 };
26852 
26853 struct ebitmap_node {
26854 	struct ebitmap_node *next;
26855 	long unsigned int maps[6];
26856 	u32 startbit;
26857 };
26858 
26859 struct mls_level {
26860 	u32 sens;
26861 	struct ebitmap cat;
26862 };
26863 
26864 struct mls_range {
26865 	struct mls_level level[2];
26866 };
26867 
26868 struct context {
26869 	u32 user;
26870 	u32 role;
26871 	u32 type;
26872 	u32 len;
26873 	struct mls_range range;
26874 	char *str;
26875 };
26876 
26877 struct sidtab_str_cache;
26878 
26879 struct sidtab_entry {
26880 	u32 sid;
26881 	u32 hash;
26882 	struct context context;
26883 	struct sidtab_str_cache *cache;
26884 	struct hlist_node list;
26885 };
26886 
26887 struct sidtab_str_cache {
26888 	struct callback_head rcu_member;
26889 	struct list_head lru_member;
26890 	struct sidtab_entry *parent;
26891 	u32 len;
26892 	char str[0];
26893 };
26894 
26895 struct sidtab_node_inner;
26896 
26897 struct sidtab_node_leaf;
26898 
26899 union sidtab_entry_inner {
26900 	struct sidtab_node_inner *ptr_inner;
26901 	struct sidtab_node_leaf *ptr_leaf;
26902 };
26903 
26904 struct sidtab_node_inner {
26905 	union sidtab_entry_inner entries[2048];
26906 };
26907 
26908 struct sidtab_node_leaf {
26909 	struct sidtab_entry entries[157];
26910 };
26911 
26912 struct sidtab_isid_entry {
26913 	int set;
26914 	struct sidtab_entry entry;
26915 };
26916 
26917 struct convert_context_args;
26918 
26919 struct sidtab_convert_params {
26920 	struct convert_context_args *args;
26921 	struct sidtab *target;
26922 };
26923 
26924 struct convert_context_args {
26925 	struct selinux_state *state;
26926 	struct policydb *oldp;
26927 	struct policydb *newp;
26928 };
26929 
26930 struct sidtab {
26931 	union sidtab_entry_inner roots[4];
26932 	u32 count;
26933 	struct sidtab_convert_params *convert;
26934 	bool frozen;
26935 	spinlock_t lock;
26936 	u32 cache_free_slots;
26937 	struct list_head cache_lru_list;
26938 	spinlock_t cache_lock;
26939 	struct sidtab_isid_entry isids[27];
26940 	struct hlist_head context_to_sid[512];
26941 };
26942 
26943 struct avtab_key {
26944 	u16 source_type;
26945 	u16 target_type;
26946 	u16 target_class;
26947 	u16 specified;
26948 };
26949 
26950 struct avtab_extended_perms {
26951 	u8 specified;
26952 	u8 driver;
26953 	struct extended_perms_data perms;
26954 };
26955 
26956 struct avtab_datum {
26957 	union {
26958 		u32 data;
26959 		struct avtab_extended_perms *xperms;
26960 	} u;
26961 };
26962 
26963 struct avtab_node {
26964 	struct avtab_key key;
26965 	struct avtab_datum datum;
26966 	struct avtab_node *next;
26967 };
26968 
26969 struct type_set;
26970 
26971 struct constraint_expr {
26972 	u32 expr_type;
26973 	u32 attr;
26974 	u32 op;
26975 	struct ebitmap names;
26976 	struct type_set *type_names;
26977 	struct constraint_expr *next;
26978 };
26979 
26980 struct type_set {
26981 	struct ebitmap types;
26982 	struct ebitmap negset;
26983 	u32 flags;
26984 };
26985 
26986 struct constraint_node {
26987 	u32 permissions;
26988 	struct constraint_expr *expr;
26989 	struct constraint_node *next;
26990 };
26991 
26992 struct common_datum {
26993 	u32 value;
26994 	struct symtab permissions;
26995 };
26996 
26997 struct class_datum {
26998 	u32 value;
26999 	char *comkey;
27000 	struct common_datum *comdatum;
27001 	struct symtab permissions;
27002 	struct constraint_node *constraints;
27003 	struct constraint_node *validatetrans;
27004 	char default_user;
27005 	char default_role;
27006 	char default_type;
27007 	char default_range;
27008 };
27009 
27010 struct role_datum {
27011 	u32 value;
27012 	u32 bounds;
27013 	struct ebitmap dominates;
27014 	struct ebitmap types;
27015 };
27016 
27017 struct role_allow {
27018 	u32 role;
27019 	u32 new_role;
27020 	struct role_allow *next;
27021 };
27022 
27023 struct type_datum {
27024 	u32 value;
27025 	u32 bounds;
27026 	unsigned char primary;
27027 	unsigned char attribute;
27028 };
27029 
27030 struct user_datum {
27031 	u32 value;
27032 	u32 bounds;
27033 	struct ebitmap roles;
27034 	struct mls_range range;
27035 	struct mls_level dfltlevel;
27036 };
27037 
27038 struct cond_bool_datum {
27039 	__u32 value;
27040 	int state;
27041 };
27042 
27043 struct ocontext {
27044 	union {
27045 		char *name;
27046 		struct {
27047 			u8 protocol;
27048 			u16 low_port;
27049 			u16 high_port;
27050 		} port;
27051 		struct {
27052 			u32 addr;
27053 			u32 mask;
27054 		} node;
27055 		struct {
27056 			u32 addr[4];
27057 			u32 mask[4];
27058 		} node6;
27059 		struct {
27060 			u64 subnet_prefix;
27061 			u16 low_pkey;
27062 			u16 high_pkey;
27063 		} ibpkey;
27064 		struct {
27065 			char *dev_name;
27066 			u8 port;
27067 		} ibendport;
27068 	} u;
27069 	union {
27070 		u32 sclass;
27071 		u32 behavior;
27072 	} v;
27073 	struct context context[2];
27074 	u32 sid[2];
27075 	struct ocontext *next;
27076 };
27077 
27078 struct genfs {
27079 	char *fstype;
27080 	struct ocontext *head;
27081 	struct genfs *next;
27082 };
27083 
27084 struct selinux_mapping {
27085 	u16 value;
27086 	unsigned int num_perms;
27087 	u32 perms[32];
27088 };
27089 
27090 struct extended_perms_decision {
27091 	u8 used;
27092 	u8 driver;
27093 	struct extended_perms_data *allowed;
27094 	struct extended_perms_data *auditallow;
27095 	struct extended_perms_data *dontaudit;
27096 };
27097 
27098 struct extended_perms {
27099 	u16 len;
27100 	struct extended_perms_data drivers;
27101 };
27102 
27103 struct cond_expr_node;
27104 
27105 struct cond_expr {
27106 	struct cond_expr_node *nodes;
27107 	u32 len;
27108 };
27109 
27110 struct cond_av_list {
27111 	struct avtab_node **nodes;
27112 	u32 len;
27113 };
27114 
27115 struct cond_node {
27116 	int cur_state;
27117 	struct cond_expr expr;
27118 	struct cond_av_list true_list;
27119 	struct cond_av_list false_list;
27120 };
27121 
27122 struct policy_file {
27123 	char *data;
27124 	size_t len;
27125 };
27126 
27127 struct policy_data {
27128 	struct policydb *p;
27129 	void *fp;
27130 };
27131 
27132 struct cond_expr_node {
27133 	u32 expr_type;
27134 	u32 bool;
27135 };
27136 
27137 struct cond_insertf_data {
27138 	struct policydb *p;
27139 	struct avtab_node **dst;
27140 	struct cond_av_list *other;
27141 };
27142 
27143 enum inode_i_mutex_lock_class {
27144 	I_MUTEX_NORMAL = 0,
27145 	I_MUTEX_PARENT = 1,
27146 	I_MUTEX_CHILD = 2,
27147 	I_MUTEX_XATTR = 3,
27148 	I_MUTEX_NONDIR2 = 4,
27149 	I_MUTEX_PARENT2 = 5,
27150 };
27151 
27152 struct ZSTD_DCtx_s;
27153 
27154 typedef struct ZSTD_DCtx_s ZSTD_DCtx;
27155 
27156 typedef void * (*ZSTD_allocFunction)(void *, size_t);
27157 
27158 typedef void (*ZSTD_freeFunction)(void *, void *);
27159 
27160 typedef struct {
27161 	ZSTD_allocFunction customAlloc;
27162 	ZSTD_freeFunction customFree;
27163 	void *opaque;
27164 } ZSTD_customMem;
27165 
27166 typedef ZSTD_DCtx zstd_dctx;
27167 
27168 enum audit_mode {
27169 	AUDIT_NORMAL = 0,
27170 	AUDIT_QUIET_DENIED = 1,
27171 	AUDIT_QUIET = 2,
27172 	AUDIT_NOQUIET = 3,
27173 	AUDIT_ALL = 4,
27174 };
27175 
27176 enum aa_sfs_type {
27177 	AA_SFS_TYPE_BOOLEAN = 0,
27178 	AA_SFS_TYPE_STRING = 1,
27179 	AA_SFS_TYPE_U64 = 2,
27180 	AA_SFS_TYPE_FOPS = 3,
27181 	AA_SFS_TYPE_DIR = 4,
27182 };
27183 
27184 struct aa_sfs_entry {
27185 	const char *name;
27186 	struct dentry *dentry;
27187 	umode_t mode;
27188 	enum aa_sfs_type v_type;
27189 	union {
27190 		bool boolean;
27191 		char *string;
27192 		long unsigned int u64;
27193 		struct aa_sfs_entry *files;
27194 	} v;
27195 	const struct file_operations *file_ops;
27196 };
27197 
27198 enum aafs_ns_type {
27199 	AAFS_NS_DIR = 0,
27200 	AAFS_NS_PROFS = 1,
27201 	AAFS_NS_NS = 2,
27202 	AAFS_NS_RAW_DATA = 3,
27203 	AAFS_NS_LOAD = 4,
27204 	AAFS_NS_REPLACE = 5,
27205 	AAFS_NS_REMOVE = 6,
27206 	AAFS_NS_REVISION = 7,
27207 	AAFS_NS_COUNT = 8,
27208 	AAFS_NS_MAX_COUNT = 9,
27209 	AAFS_NS_SIZE = 10,
27210 	AAFS_NS_MAX_SIZE = 11,
27211 	AAFS_NS_OWNER = 12,
27212 	AAFS_NS_SIZEOF = 13,
27213 };
27214 
27215 enum aafs_prof_type {
27216 	AAFS_PROF_DIR = 0,
27217 	AAFS_PROF_PROFS = 1,
27218 	AAFS_PROF_NAME = 2,
27219 	AAFS_PROF_MODE = 3,
27220 	AAFS_PROF_ATTACH = 4,
27221 	AAFS_PROF_HASH = 5,
27222 	AAFS_PROF_RAW_DATA = 6,
27223 	AAFS_PROF_RAW_HASH = 7,
27224 	AAFS_PROF_RAW_ABI = 8,
27225 	AAFS_PROF_SIZEOF = 9,
27226 };
27227 
27228 struct __una_u32 {
27229 	u32 x;
27230 };
27231 
27232 struct table_header {
27233 	u16 td_id;
27234 	u16 td_flags;
27235 	u32 td_hilen;
27236 	u32 td_lolen;
27237 	char td_data[0];
27238 };
27239 
27240 struct aa_dfa {
27241 	struct kref count;
27242 	u16 flags;
27243 	u32 max_oob;
27244 	struct table_header *tables[8];
27245 };
27246 
27247 struct aa_str_table {
27248 	int size;
27249 	char **table;
27250 };
27251 
27252 struct aa_policy {
27253 	const char *name;
27254 	char *hname;
27255 	struct list_head list;
27256 	struct list_head profiles;
27257 };
27258 
27259 struct aa_labelset {
27260 	rwlock_t lock;
27261 	struct rb_root root;
27262 };
27263 
27264 enum label_flags {
27265 	FLAG_HAT = 1,
27266 	FLAG_UNCONFINED = 2,
27267 	FLAG_NULL = 4,
27268 	FLAG_IX_ON_NAME_ERROR = 8,
27269 	FLAG_IMMUTIBLE = 16,
27270 	FLAG_USER_DEFINED = 32,
27271 	FLAG_NO_LIST_REF = 64,
27272 	FLAG_NS_COUNT = 128,
27273 	FLAG_IN_TREE = 256,
27274 	FLAG_PROFILE = 512,
27275 	FLAG_EXPLICIT = 1024,
27276 	FLAG_STALE = 2048,
27277 	FLAG_RENAMED = 4096,
27278 	FLAG_REVOKED = 8192,
27279 	FLAG_DEBUG1 = 16384,
27280 	FLAG_DEBUG2 = 32768,
27281 };
27282 
27283 struct aa_label;
27284 
27285 struct aa_proxy {
27286 	struct kref count;
27287 	struct aa_label *label;
27288 };
27289 
27290 struct aa_profile;
27291 
27292 struct aa_label {
27293 	struct kref count;
27294 	struct rb_node node;
27295 	struct callback_head rcu;
27296 	struct aa_proxy *proxy;
27297 	char *hname;
27298 	long int flags;
27299 	u32 secid;
27300 	int size;
27301 	struct aa_profile *vec[0];
27302 };
27303 
27304 struct label_it {
27305 	int i;
27306 	int j;
27307 };
27308 
27309 struct aa_perms;
27310 
27311 struct aa_policydb {
27312 	struct aa_dfa *dfa;
27313 	struct {
27314 		struct aa_perms *perms;
27315 		u32 size;
27316 	};
27317 	struct aa_str_table trans;
27318 	unsigned int start[33];
27319 };
27320 
27321 struct aa_attachment {
27322 	const char *xmatch_str;
27323 	struct aa_policydb xmatch;
27324 	unsigned int xmatch_len;
27325 	int xattr_count;
27326 	char **xattrs;
27327 };
27328 
27329 struct aa_ns;
27330 
27331 struct aa_loaddata;
27332 
27333 struct aa_profile {
27334 	struct aa_policy base;
27335 	struct aa_profile *parent;
27336 	struct aa_ns *ns;
27337 	const char *rename;
27338 	enum audit_mode audit;
27339 	long int mode;
27340 	u32 path_flags;
27341 	const char *disconnected;
27342 	struct aa_attachment attach;
27343 	struct list_head rules;
27344 	struct aa_loaddata *rawdata;
27345 	unsigned char *hash;
27346 	char *dirname;
27347 	struct dentry *dents[9];
27348 	struct rhashtable *data;
27349 	struct aa_label label;
27350 };
27351 
27352 struct aa_perms {
27353 	u32 allow;
27354 	u32 deny;
27355 	u32 subtree;
27356 	u32 cond;
27357 	u32 kill;
27358 	u32 complain;
27359 	u32 prompt;
27360 	u32 audit;
27361 	u32 quiet;
27362 	u32 hide;
27363 	u32 xindex;
27364 	u32 tag;
27365 	u32 label;
27366 };
27367 
27368 struct path_cond {
27369 	kuid_t uid;
27370 	umode_t mode;
27371 };
27372 
27373 struct aa_caps {
27374 	kernel_cap_t allow;
27375 	kernel_cap_t audit;
27376 	kernel_cap_t denied;
27377 	kernel_cap_t quiet;
27378 	kernel_cap_t kill;
27379 	kernel_cap_t extended;
27380 };
27381 
27382 struct aa_secmark {
27383 	u8 audit;
27384 	u8 deny;
27385 	u32 secid;
27386 	char *label;
27387 };
27388 
27389 struct aa_rlimit {
27390 	unsigned int mask;
27391 	struct rlimit limits[16];
27392 };
27393 
27394 enum profile_mode {
27395 	APPARMOR_ENFORCE = 0,
27396 	APPARMOR_COMPLAIN = 1,
27397 	APPARMOR_KILL = 2,
27398 	APPARMOR_UNCONFINED = 3,
27399 	APPARMOR_USER = 4,
27400 };
27401 
27402 struct aa_data {
27403 	char *key;
27404 	u32 size;
27405 	char *data;
27406 	struct rhash_head head;
27407 };
27408 
27409 struct aa_ruleset {
27410 	struct list_head list;
27411 	int size;
27412 	struct aa_policydb policy;
27413 	struct aa_policydb file;
27414 	struct aa_caps caps;
27415 	struct aa_rlimit rlimits;
27416 	int secmark_count;
27417 	struct aa_secmark *secmark;
27418 };
27419 
27420 struct aa_ns_acct {
27421 	int max_size;
27422 	int max_count;
27423 	int size;
27424 	int count;
27425 };
27426 
27427 struct aa_ns {
27428 	struct aa_policy base;
27429 	struct aa_ns *parent;
27430 	struct mutex lock;
27431 	struct aa_ns_acct acct;
27432 	struct aa_profile *unconfined;
27433 	struct list_head sub_ns;
27434 	atomic_t uniq_null;
27435 	long int uniq_id;
27436 	int level;
27437 	long int revision;
27438 	wait_queue_head_t wait;
27439 	struct aa_labelset labels;
27440 	struct list_head rawdata_list;
27441 	struct dentry *dents[13];
27442 };
27443 
27444 struct aa_loaddata {
27445 	struct kref count;
27446 	struct list_head list;
27447 	struct work_struct work;
27448 	struct dentry *dents[6];
27449 	struct aa_ns *ns;
27450 	char *name;
27451 	size_t size;
27452 	size_t compressed_size;
27453 	long int revision;
27454 	int abi;
27455 	unsigned char *hash;
27456 	char *data;
27457 };
27458 
27459 enum {
27460 	AAFS_LOADDATA_ABI = 0,
27461 	AAFS_LOADDATA_REVISION = 1,
27462 	AAFS_LOADDATA_HASH = 2,
27463 	AAFS_LOADDATA_DATA = 3,
27464 	AAFS_LOADDATA_COMPRESSED_SIZE = 4,
27465 	AAFS_LOADDATA_DIR = 5,
27466 	AAFS_LOADDATA_NDENTS = 6,
27467 };
27468 
27469 struct rawdata_f_data {
27470 	struct aa_loaddata *loaddata;
27471 };
27472 
27473 struct aa_revision {
27474 	struct aa_ns *ns;
27475 	long int last_read;
27476 };
27477 
27478 struct multi_transaction {
27479 	struct kref count;
27480 	ssize_t size;
27481 	char data[0];
27482 };
27483 
27484 struct apparmor_audit_data {
27485 	int error;
27486 	int type;
27487 	u16 class;
27488 	const char *op;
27489 	struct aa_label *label;
27490 	const char *name;
27491 	const char *info;
27492 	u32 request;
27493 	u32 denied;
27494 	union {
27495 		struct {
27496 			struct aa_label *peer;
27497 			union {
27498 				struct {
27499 					const char *target;
27500 					kuid_t ouid;
27501 				} fs;
27502 				struct {
27503 					int rlim;
27504 					long unsigned int max;
27505 				} rlim;
27506 				struct {
27507 					int signal;
27508 					int unmappedsig;
27509 				};
27510 				struct {
27511 					int type;
27512 					int protocol;
27513 					struct sock *peer_sk;
27514 					void *addr;
27515 					int addrlen;
27516 				} net;
27517 			};
27518 		};
27519 		struct {
27520 			struct aa_profile *profile;
27521 			const char *ns;
27522 			long int pos;
27523 		} iface;
27524 		struct {
27525 			const char *src_name;
27526 			const char *type;
27527 			const char *trans;
27528 			const char *data;
27529 			long unsigned int flags;
27530 		} mnt;
27531 	};
27532 };
27533 
27534 struct counted_str {
27535 	struct kref count;
27536 	char name[0];
27537 };
27538 
27539 enum audit_type {
27540 	AUDIT_APPARMOR_AUDIT = 0,
27541 	AUDIT_APPARMOR_ALLOWED = 1,
27542 	AUDIT_APPARMOR_DENIED = 2,
27543 	AUDIT_APPARMOR_HINT = 3,
27544 	AUDIT_APPARMOR_STATUS = 4,
27545 	AUDIT_APPARMOR_ERROR = 5,
27546 	AUDIT_APPARMOR_KILL = 6,
27547 	AUDIT_APPARMOR_AUTO = 7,
27548 };
27549 
27550 struct ZSTD_CCtx_s;
27551 
27552 typedef struct ZSTD_CCtx_s ZSTD_CCtx;
27553 
27554 typedef enum {
27555 	ZSTD_fast = 1,
27556 	ZSTD_dfast = 2,
27557 	ZSTD_greedy = 3,
27558 	ZSTD_lazy = 4,
27559 	ZSTD_lazy2 = 5,
27560 	ZSTD_btlazy2 = 6,
27561 	ZSTD_btopt = 7,
27562 	ZSTD_btultra = 8,
27563 	ZSTD_btultra2 = 9,
27564 } ZSTD_strategy;
27565 
27566 typedef struct {
27567 	unsigned int windowLog;
27568 	unsigned int chainLog;
27569 	unsigned int hashLog;
27570 	unsigned int searchLog;
27571 	unsigned int minMatch;
27572 	unsigned int targetLength;
27573 	ZSTD_strategy strategy;
27574 } ZSTD_compressionParameters;
27575 
27576 typedef struct {
27577 	int contentSizeFlag;
27578 	int checksumFlag;
27579 	int noDictIDFlag;
27580 } ZSTD_frameParameters;
27581 
27582 typedef struct {
27583 	ZSTD_compressionParameters cParams;
27584 	ZSTD_frameParameters fParams;
27585 } ZSTD_parameters;
27586 
27587 typedef ZSTD_compressionParameters zstd_compression_parameters;
27588 
27589 typedef ZSTD_parameters zstd_parameters;
27590 
27591 typedef ZSTD_CCtx zstd_cctx;
27592 
27593 struct rhlist_head {
27594 	struct rhash_head rhead;
27595 	struct rhlist_head *next;
27596 };
27597 
27598 enum path_flags {
27599 	PATH_IS_DIR = 1,
27600 	PATH_CONNECT_PATH = 4,
27601 	PATH_CHROOT_REL = 8,
27602 	PATH_CHROOT_NSCONNECT = 16,
27603 	PATH_DELEGATE_DELETED = 65536,
27604 	PATH_MEDIATE_DELETED = 131072,
27605 };
27606 
27607 struct aa_load_ent {
27608 	struct list_head list;
27609 	struct aa_profile *new;
27610 	struct aa_profile *old;
27611 	struct aa_profile *rename;
27612 	const char *ns_name;
27613 };
27614 
27615 enum aa_code {
27616 	AA_U8 = 0,
27617 	AA_U16 = 1,
27618 	AA_U32 = 2,
27619 	AA_U64 = 3,
27620 	AA_NAME = 4,
27621 	AA_STRING = 5,
27622 	AA_BLOB = 6,
27623 	AA_STRUCT = 7,
27624 	AA_STRUCTEND = 8,
27625 	AA_LIST = 9,
27626 	AA_LISTEND = 10,
27627 	AA_ARRAY = 11,
27628 	AA_ARRAYEND = 12,
27629 };
27630 
27631 struct aa_ext {
27632 	void *start;
27633 	void *end;
27634 	void *pos;
27635 	u32 version;
27636 };
27637 
27638 struct xa_limit {
27639 	u32 max;
27640 	u32 min;
27641 };
27642 
27643 struct shash_desc {
27644 	struct crypto_shash *tfm;
27645 	void *__ctx[0];
27646 };
27647 
27648 struct shash_alg {
27649 	int (*init)(struct shash_desc *);
27650 	int (*update)(struct shash_desc *, const u8 *, unsigned int);
27651 	int (*final)(struct shash_desc *, u8 *);
27652 	int (*finup)(struct shash_desc *, const u8 *, unsigned int, u8 *);
27653 	int (*digest)(struct shash_desc *, const u8 *, unsigned int, u8 *);
27654 	int (*export)(struct shash_desc *, void *);
27655 	int (*import)(struct shash_desc *, const void *);
27656 	int (*setkey)(struct crypto_shash *, const u8 *, unsigned int);
27657 	int (*init_tfm)(struct crypto_shash *);
27658 	void (*exit_tfm)(struct crypto_shash *);
27659 	unsigned int descsize;
27660 	int: 32;
27661 	unsigned int digestsize;
27662 	unsigned int statesize;
27663 	struct crypto_alg base;
27664 };
27665 
27666 struct crypto_template;
27667 
27668 struct crypto_spawn;
27669 
27670 struct crypto_instance {
27671 	struct crypto_alg alg;
27672 	struct crypto_template *tmpl;
27673 	union {
27674 		struct hlist_node list;
27675 		struct crypto_spawn *spawns;
27676 	};
27677 	void *__ctx[0];
27678 };
27679 
27680 struct crypto_spawn {
27681 	struct list_head list;
27682 	struct crypto_alg *alg;
27683 	union {
27684 		struct crypto_instance *inst;
27685 		struct crypto_spawn *next;
27686 	};
27687 	const struct crypto_type *frontend;
27688 	u32 mask;
27689 	bool dead;
27690 	bool registered;
27691 };
27692 
27693 struct rtattr;
27694 
27695 struct crypto_template {
27696 	struct list_head list;
27697 	struct hlist_head instances;
27698 	struct module *module;
27699 	int (*create)(struct crypto_template *, struct rtattr **);
27700 	char name[128];
27701 };
27702 
27703 struct crypto_cipher {
27704 	struct crypto_tfm base;
27705 };
27706 
27707 struct aead_request {
27708 	struct crypto_async_request base;
27709 	unsigned int assoclen;
27710 	unsigned int cryptlen;
27711 	u8 *iv;
27712 	struct scatterlist *src;
27713 	struct scatterlist *dst;
27714 	void *__ctx[0];
27715 };
27716 
27717 struct crypto_aead;
27718 
27719 struct aead_alg {
27720 	int (*setkey)(struct crypto_aead *, const u8 *, unsigned int);
27721 	int (*setauthsize)(struct crypto_aead *, unsigned int);
27722 	int (*encrypt)(struct aead_request *);
27723 	int (*decrypt)(struct aead_request *);
27724 	int (*init)(struct crypto_aead *);
27725 	void (*exit)(struct crypto_aead *);
27726 	unsigned int ivsize;
27727 	unsigned int maxauthsize;
27728 	unsigned int chunksize;
27729 	struct crypto_alg base;
27730 };
27731 
27732 struct crypto_aead {
27733 	unsigned int authsize;
27734 	unsigned int reqsize;
27735 	struct crypto_tfm base;
27736 };
27737 
27738 struct rtattr {
27739 	short unsigned int rta_len;
27740 	short unsigned int rta_type;
27741 };
27742 
27743 struct scatter_walk {
27744 	struct scatterlist *sg;
27745 	unsigned int offset;
27746 };
27747 
27748 struct crypto_cipher_spawn {
27749 	struct crypto_spawn base;
27750 };
27751 
27752 struct crypto_sync_skcipher {
27753 	struct crypto_skcipher base;
27754 };
27755 
27756 struct skcipher_instance {
27757 	void (*free)(struct skcipher_instance *);
27758 	union {
27759 		struct {
27760 			char head[64];
27761 			struct crypto_instance base;
27762 		} s;
27763 		struct skcipher_alg alg;
27764 	};
27765 };
27766 
27767 struct crypto_skcipher_spawn {
27768 	struct crypto_spawn base;
27769 };
27770 
27771 struct skcipher_walk {
27772 	union {
27773 		struct {
27774 			struct page *page;
27775 			long unsigned int offset;
27776 		} phys;
27777 		struct {
27778 			u8 *page;
27779 			void *addr;
27780 		} virt;
27781 	} src;
27782 	union {
27783 		struct {
27784 			struct page *page;
27785 			long unsigned int offset;
27786 		} phys;
27787 		struct {
27788 			u8 *page;
27789 			void *addr;
27790 		} virt;
27791 	} dst;
27792 	struct scatter_walk in;
27793 	unsigned int nbytes;
27794 	struct scatter_walk out;
27795 	unsigned int total;
27796 	struct list_head buffers;
27797 	u8 *page;
27798 	u8 *buffer;
27799 	u8 *oiv;
27800 	void *iv;
27801 	unsigned int ivsize;
27802 	int flags;
27803 	unsigned int blocksize;
27804 	unsigned int stride;
27805 	unsigned int alignmask;
27806 };
27807 
27808 struct skcipher_ctx_simple {
27809 	struct crypto_cipher *cipher;
27810 };
27811 
27812 enum crypto_attr_type_t {
27813 	CRYPTOCFGA_UNSPEC = 0,
27814 	CRYPTOCFGA_PRIORITY_VAL = 1,
27815 	CRYPTOCFGA_REPORT_LARVAL = 2,
27816 	CRYPTOCFGA_REPORT_HASH = 3,
27817 	CRYPTOCFGA_REPORT_BLKCIPHER = 4,
27818 	CRYPTOCFGA_REPORT_AEAD = 5,
27819 	CRYPTOCFGA_REPORT_COMPRESS = 6,
27820 	CRYPTOCFGA_REPORT_RNG = 7,
27821 	CRYPTOCFGA_REPORT_CIPHER = 8,
27822 	CRYPTOCFGA_REPORT_AKCIPHER = 9,
27823 	CRYPTOCFGA_REPORT_KPP = 10,
27824 	CRYPTOCFGA_REPORT_ACOMP = 11,
27825 	CRYPTOCFGA_STAT_LARVAL = 12,
27826 	CRYPTOCFGA_STAT_HASH = 13,
27827 	CRYPTOCFGA_STAT_BLKCIPHER = 14,
27828 	CRYPTOCFGA_STAT_AEAD = 15,
27829 	CRYPTOCFGA_STAT_COMPRESS = 16,
27830 	CRYPTOCFGA_STAT_RNG = 17,
27831 	CRYPTOCFGA_STAT_CIPHER = 18,
27832 	CRYPTOCFGA_STAT_AKCIPHER = 19,
27833 	CRYPTOCFGA_STAT_KPP = 20,
27834 	CRYPTOCFGA_STAT_ACOMP = 21,
27835 	__CRYPTOCFGA_MAX = 22,
27836 };
27837 
27838 struct crypto_report_blkcipher {
27839 	char type[64];
27840 	char geniv[64];
27841 	unsigned int blocksize;
27842 	unsigned int min_keysize;
27843 	unsigned int max_keysize;
27844 	unsigned int ivsize;
27845 };
27846 
27847 enum {
27848 	SKCIPHER_WALK_PHYS = 1,
27849 	SKCIPHER_WALK_SLOW = 2,
27850 	SKCIPHER_WALK_COPY = 4,
27851 	SKCIPHER_WALK_DIFF = 8,
27852 	SKCIPHER_WALK_SLEEP = 16,
27853 };
27854 
27855 struct skcipher_walk_buffer {
27856 	struct list_head entry;
27857 	struct scatter_walk dst;
27858 	unsigned int len;
27859 	u8 *data;
27860 	u8 buffer[0];
27861 };
27862 
27863 struct dh {
27864 	const void *key;
27865 	const void *p;
27866 	const void *g;
27867 	unsigned int key_size;
27868 	unsigned int p_size;
27869 	unsigned int g_size;
27870 };
27871 
27872 enum {
27873 	CRYPTO_KPP_SECRET_TYPE_UNKNOWN = 0,
27874 	CRYPTO_KPP_SECRET_TYPE_DH = 1,
27875 	CRYPTO_KPP_SECRET_TYPE_ECDH = 2,
27876 };
27877 
27878 struct kpp_secret {
27879 	short unsigned int type;
27880 	short unsigned int len;
27881 };
27882 
27883 enum asn1_class {
27884 	ASN1_UNIV = 0,
27885 	ASN1_APPL = 1,
27886 	ASN1_CONT = 2,
27887 	ASN1_PRIV = 3,
27888 };
27889 
27890 enum asn1_method {
27891 	ASN1_PRIM = 0,
27892 	ASN1_CONS = 1,
27893 };
27894 
27895 enum asn1_tag {
27896 	ASN1_EOC = 0,
27897 	ASN1_BOOL = 1,
27898 	ASN1_INT = 2,
27899 	ASN1_BTS = 3,
27900 	ASN1_OTS = 4,
27901 	ASN1_NULL = 5,
27902 	ASN1_OID = 6,
27903 	ASN1_ODE = 7,
27904 	ASN1_EXT = 8,
27905 	ASN1_REAL = 9,
27906 	ASN1_ENUM = 10,
27907 	ASN1_EPDV = 11,
27908 	ASN1_UTF8STR = 12,
27909 	ASN1_RELOID = 13,
27910 	ASN1_SEQ = 16,
27911 	ASN1_SET = 17,
27912 	ASN1_NUMSTR = 18,
27913 	ASN1_PRNSTR = 19,
27914 	ASN1_TEXSTR = 20,
27915 	ASN1_VIDSTR = 21,
27916 	ASN1_IA5STR = 22,
27917 	ASN1_UNITIM = 23,
27918 	ASN1_GENTIM = 24,
27919 	ASN1_GRASTR = 25,
27920 	ASN1_VISSTR = 26,
27921 	ASN1_GENSTR = 27,
27922 	ASN1_UNISTR = 28,
27923 	ASN1_CHRSTR = 29,
27924 	ASN1_BMPSTR = 30,
27925 	ASN1_LONG_TAG = 31,
27926 };
27927 
27928 typedef int (*asn1_action_t)(void *, size_t, unsigned char, const void *, size_t);
27929 
27930 struct asn1_decoder {
27931 	const unsigned char *machine;
27932 	size_t machlen;
27933 	const asn1_action_t *actions;
27934 };
27935 
27936 enum asn1_opcode {
27937 	ASN1_OP_MATCH = 0,
27938 	ASN1_OP_MATCH_OR_SKIP = 1,
27939 	ASN1_OP_MATCH_ACT = 2,
27940 	ASN1_OP_MATCH_ACT_OR_SKIP = 3,
27941 	ASN1_OP_MATCH_JUMP = 4,
27942 	ASN1_OP_MATCH_JUMP_OR_SKIP = 5,
27943 	ASN1_OP_MATCH_ANY = 8,
27944 	ASN1_OP_MATCH_ANY_OR_SKIP = 9,
27945 	ASN1_OP_MATCH_ANY_ACT = 10,
27946 	ASN1_OP_MATCH_ANY_ACT_OR_SKIP = 11,
27947 	ASN1_OP_COND_MATCH_OR_SKIP = 17,
27948 	ASN1_OP_COND_MATCH_ACT_OR_SKIP = 19,
27949 	ASN1_OP_COND_MATCH_JUMP_OR_SKIP = 21,
27950 	ASN1_OP_COND_MATCH_ANY = 24,
27951 	ASN1_OP_COND_MATCH_ANY_OR_SKIP = 25,
27952 	ASN1_OP_COND_MATCH_ANY_ACT = 26,
27953 	ASN1_OP_COND_MATCH_ANY_ACT_OR_SKIP = 27,
27954 	ASN1_OP_COND_FAIL = 28,
27955 	ASN1_OP_COMPLETE = 29,
27956 	ASN1_OP_ACT = 30,
27957 	ASN1_OP_MAYBE_ACT = 31,
27958 	ASN1_OP_END_SEQ = 32,
27959 	ASN1_OP_END_SET = 33,
27960 	ASN1_OP_END_SEQ_OF = 34,
27961 	ASN1_OP_END_SET_OF = 35,
27962 	ASN1_OP_END_SEQ_ACT = 36,
27963 	ASN1_OP_END_SET_ACT = 37,
27964 	ASN1_OP_END_SEQ_OF_ACT = 38,
27965 	ASN1_OP_END_SET_OF_ACT = 39,
27966 	ASN1_OP_RETURN = 40,
27967 	ASN1_OP__NR = 41,
27968 };
27969 
27970 enum rsapubkey_actions {
27971 	ACT_rsa_get_e = 0,
27972 	ACT_rsa_get_n = 1,
27973 	NR__rsapubkey_actions = 2,
27974 };
27975 
27976 enum rsaprivkey_actions {
27977 	ACT_rsa_get_d = 0,
27978 	ACT_rsa_get_dp = 1,
27979 	ACT_rsa_get_dq = 2,
27980 	ACT_rsa_get_e___2 = 3,
27981 	ACT_rsa_get_n___2 = 4,
27982 	ACT_rsa_get_p = 5,
27983 	ACT_rsa_get_q = 6,
27984 	ACT_rsa_get_qinv = 7,
27985 	NR__rsaprivkey_actions = 8,
27986 };
27987 
27988 typedef long unsigned int mpi_limb_t;
27989 
27990 struct gcry_mpi {
27991 	int alloced;
27992 	int nlimbs;
27993 	int nbits;
27994 	int sign;
27995 	unsigned int flags;
27996 	mpi_limb_t *d;
27997 };
27998 
27999 typedef struct gcry_mpi *MPI;
28000 
28001 struct rsa_key {
28002 	const u8 *n;
28003 	const u8 *e;
28004 	const u8 *d;
28005 	const u8 *p;
28006 	const u8 *q;
28007 	const u8 *dp;
28008 	const u8 *dq;
28009 	const u8 *qinv;
28010 	size_t n_sz;
28011 	size_t e_sz;
28012 	size_t d_sz;
28013 	size_t p_sz;
28014 	size_t q_sz;
28015 	size_t dp_sz;
28016 	size_t dq_sz;
28017 	size_t qinv_sz;
28018 };
28019 
28020 struct akcipher_request {
28021 	struct crypto_async_request base;
28022 	struct scatterlist *src;
28023 	struct scatterlist *dst;
28024 	unsigned int src_len;
28025 	unsigned int dst_len;
28026 	void *__ctx[0];
28027 };
28028 
28029 struct crypto_akcipher {
28030 	unsigned int reqsize;
28031 	struct crypto_tfm base;
28032 };
28033 
28034 struct akcipher_alg {
28035 	int (*sign)(struct akcipher_request *);
28036 	int (*verify)(struct akcipher_request *);
28037 	int (*encrypt)(struct akcipher_request *);
28038 	int (*decrypt)(struct akcipher_request *);
28039 	int (*set_pub_key)(struct crypto_akcipher *, const void *, unsigned int);
28040 	int (*set_priv_key)(struct crypto_akcipher *, const void *, unsigned int);
28041 	unsigned int (*max_size)(struct crypto_akcipher *);
28042 	int (*init)(struct crypto_akcipher *);
28043 	void (*exit)(struct crypto_akcipher *);
28044 	struct crypto_alg base;
28045 };
28046 
28047 struct rsa_mpi_key {
28048 	MPI n;
28049 	MPI e;
28050 	MPI d;
28051 	MPI p;
28052 	MPI q;
28053 	MPI dp;
28054 	MPI dq;
28055 	MPI qinv;
28056 };
28057 
28058 struct crypto_report_comp {
28059 	char type[64];
28060 };
28061 
28062 struct crypto_scomp {
28063 	struct crypto_tfm base;
28064 };
28065 
28066 struct scomp_alg {
28067 	void * (*alloc_ctx)(struct crypto_scomp *);
28068 	void (*free_ctx)(struct crypto_scomp *, void *);
28069 	int (*compress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *);
28070 	int (*decompress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *);
28071 	struct crypto_alg base;
28072 };
28073 
28074 struct scomp_scratch {
28075 	spinlock_t lock;
28076 	void *src;
28077 	void *dst;
28078 };
28079 
28080 struct sha256_state {
28081 	u32 state[8];
28082 	u64 count;
28083 	u8 buf[64];
28084 };
28085 
28086 struct crypto_aes_ctx {
28087 	u32 key_enc[60];
28088 	u32 key_dec[60];
28089 	u32 key_length;
28090 };
28091 
28092 struct rand_data {
28093 	__u64 data;
28094 	__u64 old_data;
28095 	__u64 prev_time;
28096 	__u64 last_delta;
28097 	__s64 last_delta2;
28098 	unsigned int osr;
28099 	unsigned char *mem;
28100 	unsigned int memlocation;
28101 	unsigned int memblocks;
28102 	unsigned int memblocksize;
28103 	unsigned int memaccessloops;
28104 	int rct_count;
28105 	unsigned int apt_observations;
28106 	unsigned int apt_count;
28107 	unsigned int apt_base;
28108 	unsigned int apt_base_set: 1;
28109 	unsigned int health_failure: 1;
28110 };
28111 
28112 typedef long unsigned int cycles_t;
28113 
28114 struct crypto_rng;
28115 
28116 struct rng_alg {
28117 	int (*generate)(struct crypto_rng *, const u8 *, unsigned int, u8 *, unsigned int);
28118 	int (*seed)(struct crypto_rng *, const u8 *, unsigned int);
28119 	void (*set_ent)(struct crypto_rng *, const u8 *, unsigned int);
28120 	unsigned int seedsize;
28121 	struct crypto_alg base;
28122 };
28123 
28124 struct crypto_rng {
28125 	struct crypto_tfm base;
28126 };
28127 
28128 struct rand_data;
28129 
28130 struct jitterentropy {
28131 	spinlock_t jent_lock;
28132 	struct rand_data *entropy_collector;
28133 	unsigned int reset_cnt;
28134 };
28135 
28136 struct asymmetric_key_id;
28137 
28138 struct public_key_signature {
28139 	struct asymmetric_key_id *auth_ids[3];
28140 	u8 *s;
28141 	u8 *digest;
28142 	u32 s_size;
28143 	u32 digest_size;
28144 	const char *pkey_algo;
28145 	const char *hash_algo;
28146 	const char *encoding;
28147 	const void *data;
28148 	unsigned int data_size;
28149 };
28150 
28151 struct asymmetric_key_id {
28152 	short unsigned int len;
28153 	unsigned char data[0];
28154 };
28155 
28156 enum asymmetric_payload_bits {
28157 	asym_crypto = 0,
28158 	asym_subtype = 1,
28159 	asym_key_ids = 2,
28160 	asym_auth = 3,
28161 };
28162 
28163 struct asymmetric_key_ids {
28164 	void *id[3];
28165 };
28166 
28167 enum x509_akid_actions {
28168 	ACT_x509_akid_note_kid = 0,
28169 	ACT_x509_akid_note_name = 1,
28170 	ACT_x509_akid_note_serial = 2,
28171 	ACT_x509_extract_name_segment = 3,
28172 	ACT_x509_note_OID = 4,
28173 	NR__x509_akid_actions = 5,
28174 };
28175 
28176 enum pkcs7_actions {
28177 	ACT_pkcs7_check_content_type = 0,
28178 	ACT_pkcs7_extract_cert = 1,
28179 	ACT_pkcs7_note_OID = 2,
28180 	ACT_pkcs7_note_certificate_list = 3,
28181 	ACT_pkcs7_note_content = 4,
28182 	ACT_pkcs7_note_data = 5,
28183 	ACT_pkcs7_note_signed_info = 6,
28184 	ACT_pkcs7_note_signeddata_version = 7,
28185 	ACT_pkcs7_note_signerinfo_version = 8,
28186 	ACT_pkcs7_sig_note_authenticated_attr = 9,
28187 	ACT_pkcs7_sig_note_digest_algo = 10,
28188 	ACT_pkcs7_sig_note_issuer = 11,
28189 	ACT_pkcs7_sig_note_pkey_algo = 12,
28190 	ACT_pkcs7_sig_note_serial = 13,
28191 	ACT_pkcs7_sig_note_set_of_authattrs = 14,
28192 	ACT_pkcs7_sig_note_signature = 15,
28193 	ACT_pkcs7_sig_note_skid = 16,
28194 	NR__pkcs7_actions = 17,
28195 };
28196 
28197 enum OID {
28198 	OID_id_dsa_with_sha1 = 0,
28199 	OID_id_dsa = 1,
28200 	OID_id_ecPublicKey = 2,
28201 	OID_id_prime192v1 = 3,
28202 	OID_id_prime256v1 = 4,
28203 	OID_id_ecdsa_with_sha1 = 5,
28204 	OID_id_ecdsa_with_sha224 = 6,
28205 	OID_id_ecdsa_with_sha256 = 7,
28206 	OID_id_ecdsa_with_sha384 = 8,
28207 	OID_id_ecdsa_with_sha512 = 9,
28208 	OID_rsaEncryption = 10,
28209 	OID_md2WithRSAEncryption = 11,
28210 	OID_md3WithRSAEncryption = 12,
28211 	OID_md4WithRSAEncryption = 13,
28212 	OID_sha1WithRSAEncryption = 14,
28213 	OID_sha256WithRSAEncryption = 15,
28214 	OID_sha384WithRSAEncryption = 16,
28215 	OID_sha512WithRSAEncryption = 17,
28216 	OID_sha224WithRSAEncryption = 18,
28217 	OID_data = 19,
28218 	OID_signed_data = 20,
28219 	OID_email_address = 21,
28220 	OID_contentType = 22,
28221 	OID_messageDigest = 23,
28222 	OID_signingTime = 24,
28223 	OID_smimeCapabilites = 25,
28224 	OID_smimeAuthenticatedAttrs = 26,
28225 	OID_md2 = 27,
28226 	OID_md4 = 28,
28227 	OID_md5 = 29,
28228 	OID_mskrb5 = 30,
28229 	OID_krb5 = 31,
28230 	OID_krb5u2u = 32,
28231 	OID_msIndirectData = 33,
28232 	OID_msStatementType = 34,
28233 	OID_msSpOpusInfo = 35,
28234 	OID_msPeImageDataObjId = 36,
28235 	OID_msIndividualSPKeyPurpose = 37,
28236 	OID_msOutlookExpress = 38,
28237 	OID_ntlmssp = 39,
28238 	OID_spnego = 40,
28239 	OID_IAKerb = 41,
28240 	OID_PKU2U = 42,
28241 	OID_Scram = 43,
28242 	OID_certAuthInfoAccess = 44,
28243 	OID_sha1 = 45,
28244 	OID_id_ansip384r1 = 46,
28245 	OID_sha256 = 47,
28246 	OID_sha384 = 48,
28247 	OID_sha512 = 49,
28248 	OID_sha224 = 50,
28249 	OID_commonName = 51,
28250 	OID_surname = 52,
28251 	OID_countryName = 53,
28252 	OID_locality = 54,
28253 	OID_stateOrProvinceName = 55,
28254 	OID_organizationName = 56,
28255 	OID_organizationUnitName = 57,
28256 	OID_title = 58,
28257 	OID_description = 59,
28258 	OID_name = 60,
28259 	OID_givenName = 61,
28260 	OID_initials = 62,
28261 	OID_generationalQualifier = 63,
28262 	OID_subjectKeyIdentifier = 64,
28263 	OID_keyUsage = 65,
28264 	OID_subjectAltName = 66,
28265 	OID_issuerAltName = 67,
28266 	OID_basicConstraints = 68,
28267 	OID_crlDistributionPoints = 69,
28268 	OID_certPolicies = 70,
28269 	OID_authorityKeyIdentifier = 71,
28270 	OID_extKeyUsage = 72,
28271 	OID_NetlogonMechanism = 73,
28272 	OID_appleLocalKdcSupported = 74,
28273 	OID_gostCPSignA = 75,
28274 	OID_gostCPSignB = 76,
28275 	OID_gostCPSignC = 77,
28276 	OID_gost2012PKey256 = 78,
28277 	OID_gost2012PKey512 = 79,
28278 	OID_gost2012Digest256 = 80,
28279 	OID_gost2012Digest512 = 81,
28280 	OID_gost2012Signature256 = 82,
28281 	OID_gost2012Signature512 = 83,
28282 	OID_gostTC26Sign256A = 84,
28283 	OID_gostTC26Sign256B = 85,
28284 	OID_gostTC26Sign256C = 86,
28285 	OID_gostTC26Sign256D = 87,
28286 	OID_gostTC26Sign512A = 88,
28287 	OID_gostTC26Sign512B = 89,
28288 	OID_gostTC26Sign512C = 90,
28289 	OID_sm2 = 91,
28290 	OID_sm3 = 92,
28291 	OID_SM2_with_SM3 = 93,
28292 	OID_sm3WithRSAEncryption = 94,
28293 	OID_TPMLoadableKey = 95,
28294 	OID_TPMImportableKey = 96,
28295 	OID_TPMSealedData = 97,
28296 	OID__NR = 98,
28297 };
28298 
28299 struct public_key {
28300 	void *key;
28301 	u32 keylen;
28302 	enum OID algo;
28303 	void *params;
28304 	u32 paramlen;
28305 	bool key_is_private;
28306 	const char *id_type;
28307 	const char *pkey_algo;
28308 };
28309 
28310 struct x509_certificate {
28311 	struct x509_certificate *next;
28312 	struct x509_certificate *signer;
28313 	struct public_key *pub;
28314 	struct public_key_signature *sig;
28315 	char *issuer;
28316 	char *subject;
28317 	struct asymmetric_key_id *id;
28318 	struct asymmetric_key_id *skid;
28319 	time64_t valid_from;
28320 	time64_t valid_to;
28321 	const void *tbs;
28322 	unsigned int tbs_size;
28323 	unsigned int raw_sig_size;
28324 	const void *raw_sig;
28325 	const void *raw_serial;
28326 	unsigned int raw_serial_size;
28327 	unsigned int raw_issuer_size;
28328 	const void *raw_issuer;
28329 	const void *raw_subject;
28330 	unsigned int raw_subject_size;
28331 	unsigned int raw_skid_size;
28332 	const void *raw_skid;
28333 	unsigned int index;
28334 	bool seen;
28335 	bool verified;
28336 	bool self_signed;
28337 	bool unsupported_sig;
28338 	bool blacklisted;
28339 };
28340 
28341 struct pkcs7_signed_info {
28342 	struct pkcs7_signed_info *next;
28343 	struct x509_certificate *signer;
28344 	unsigned int index;
28345 	bool unsupported_crypto;
28346 	bool blacklisted;
28347 	const void *msgdigest;
28348 	unsigned int msgdigest_len;
28349 	unsigned int authattrs_len;
28350 	const void *authattrs;
28351 	long unsigned int aa_set;
28352 	time64_t signing_time;
28353 	struct public_key_signature *sig;
28354 };
28355 
28356 struct pkcs7_message {
28357 	struct x509_certificate *certs;
28358 	struct x509_certificate *crl;
28359 	struct pkcs7_signed_info *signed_infos;
28360 	u8 version;
28361 	bool have_authattrs;
28362 	enum OID data_type;
28363 	size_t data_len;
28364 	size_t data_hdrlen;
28365 	const void *data;
28366 };
28367 
28368 struct asn1_decoder;
28369 
28370 struct pkcs7_parse_context {
28371 	struct pkcs7_message *msg;
28372 	struct pkcs7_signed_info *sinfo;
28373 	struct pkcs7_signed_info **ppsinfo;
28374 	struct x509_certificate *certs;
28375 	struct x509_certificate **ppcerts;
28376 	long unsigned int data;
28377 	enum OID last_oid;
28378 	unsigned int x509_index;
28379 	unsigned int sinfo_index;
28380 	const void *raw_serial;
28381 	unsigned int raw_serial_size;
28382 	unsigned int raw_issuer_size;
28383 	const void *raw_issuer;
28384 	const void *raw_skid;
28385 	unsigned int raw_skid_size;
28386 	bool expect_skid;
28387 };
28388 
28389 struct bvec_iter_all {
28390 	struct bio_vec bv;
28391 	int idx;
28392 	unsigned int done;
28393 };
28394 
28395 struct blkg_iostat {
28396 	u64 bytes[3];
28397 	u64 ios[3];
28398 };
28399 
28400 struct blkg_iostat_set {
28401 	struct u64_stats_sync sync;
28402 	struct blkcg_gq *blkg;
28403 	struct llist_node lnode;
28404 	int lqueued;
28405 	struct blkg_iostat cur;
28406 	struct blkg_iostat last;
28407 };
28408 
28409 struct blkcg;
28410 
28411 struct blkg_policy_data;
28412 
28413 struct blkcg_gq {
28414 	struct request_queue *q;
28415 	struct list_head q_node;
28416 	struct hlist_node blkcg_node;
28417 	struct blkcg *blkcg;
28418 	struct blkcg_gq *parent;
28419 	struct percpu_ref refcnt;
28420 	bool online;
28421 	struct blkg_iostat_set *iostat_cpu;
28422 	struct blkg_iostat_set iostat;
28423 	struct blkg_policy_data *pd[6];
28424 	spinlock_t async_bio_lock;
28425 	struct bio_list async_bios;
28426 	union {
28427 		struct work_struct async_bio_work;
28428 		struct work_struct free_work;
28429 	};
28430 	atomic_t use_delay;
28431 	atomic64_t delay_nsec;
28432 	atomic64_t delay_start;
28433 	u64 last_delay;
28434 	int last_use;
28435 	struct callback_head callback_head;
28436 };
28437 
28438 enum {
28439 	BIO_NO_PAGE_REF = 0,
28440 	BIO_CLONED = 1,
28441 	BIO_BOUNCED = 2,
28442 	BIO_QUIET = 3,
28443 	BIO_CHAIN = 4,
28444 	BIO_REFFED = 5,
28445 	BIO_BPS_THROTTLED = 6,
28446 	BIO_TRACE_COMPLETION = 7,
28447 	BIO_CGROUP_ACCT = 8,
28448 	BIO_QOS_THROTTLED = 9,
28449 	BIO_QOS_MERGED = 10,
28450 	BIO_REMAPPED = 11,
28451 	BIO_ZONE_WRITE_LOCKED = 12,
28452 	BIO_FLAG_LAST = 13,
28453 };
28454 
28455 typedef __u32 blk_mq_req_flags_t;
28456 
28457 enum req_flag_bits {
28458 	__REQ_FAILFAST_DEV = 8,
28459 	__REQ_FAILFAST_TRANSPORT = 9,
28460 	__REQ_FAILFAST_DRIVER = 10,
28461 	__REQ_SYNC = 11,
28462 	__REQ_META = 12,
28463 	__REQ_PRIO = 13,
28464 	__REQ_NOMERGE = 14,
28465 	__REQ_IDLE = 15,
28466 	__REQ_INTEGRITY = 16,
28467 	__REQ_FUA = 17,
28468 	__REQ_PREFLUSH = 18,
28469 	__REQ_RAHEAD = 19,
28470 	__REQ_BACKGROUND = 20,
28471 	__REQ_NOWAIT = 21,
28472 	__REQ_CGROUP_PUNT = 22,
28473 	__REQ_POLLED = 23,
28474 	__REQ_ALLOC_CACHE = 24,
28475 	__REQ_SWAP = 25,
28476 	__REQ_DRV = 26,
28477 	__REQ_NOUNMAP = 27,
28478 	__REQ_NR_BITS = 28,
28479 };
28480 
28481 enum {
28482 	BIOSET_NEED_BVECS = 1,
28483 	BIOSET_NEED_RESCUER = 2,
28484 	BIOSET_PERCPU_CACHE = 4,
28485 };
28486 
28487 struct bio_alloc_cache {
28488 	struct bio *free_list;
28489 	struct bio *free_list_irq;
28490 	unsigned int nr;
28491 	unsigned int nr_irq;
28492 };
28493 
28494 struct sbitmap_word {
28495 	long unsigned int word;
28496 	long: 64;
28497 	long: 64;
28498 	long: 64;
28499 	long: 64;
28500 	long: 64;
28501 	long: 64;
28502 	long: 64;
28503 	long unsigned int cleared;
28504 	long: 64;
28505 	long: 64;
28506 	long: 64;
28507 	long: 64;
28508 	long: 64;
28509 	long: 64;
28510 	long: 64;
28511 };
28512 
28513 struct sbitmap {
28514 	unsigned int depth;
28515 	unsigned int shift;
28516 	unsigned int map_nr;
28517 	bool round_robin;
28518 	struct sbitmap_word *map;
28519 	unsigned int *alloc_hint;
28520 };
28521 
28522 struct sbq_wait_state {
28523 	wait_queue_head_t wait;
28524 	long: 64;
28525 	long: 64;
28526 	long: 64;
28527 	long: 64;
28528 	long: 64;
28529 };
28530 
28531 struct sbitmap_queue {
28532 	struct sbitmap sb;
28533 	unsigned int wake_batch;
28534 	atomic_t wake_index;
28535 	struct sbq_wait_state *ws;
28536 	atomic_t ws_active;
28537 	unsigned int min_shallow_depth;
28538 	atomic_t completion_cnt;
28539 	atomic_t wakeup_cnt;
28540 };
28541 
28542 typedef __u32 req_flags_t;
28543 
28544 enum mq_rq_state {
28545 	MQ_RQ_IDLE = 0,
28546 	MQ_RQ_IN_FLIGHT = 1,
28547 	MQ_RQ_COMPLETE = 2,
28548 };
28549 
28550 enum rq_end_io_ret {
28551 	RQ_END_IO_NONE = 0,
28552 	RQ_END_IO_FREE = 1,
28553 };
28554 
28555 typedef enum rq_end_io_ret rq_end_io_fn(struct request *, blk_status_t);
28556 
28557 struct blk_crypto_keyslot;
28558 
28559 struct request {
28560 	struct request_queue *q;
28561 	struct blk_mq_ctx *mq_ctx;
28562 	struct blk_mq_hw_ctx *mq_hctx;
28563 	blk_opf_t cmd_flags;
28564 	req_flags_t rq_flags;
28565 	int tag;
28566 	int internal_tag;
28567 	unsigned int timeout;
28568 	unsigned int __data_len;
28569 	sector_t __sector;
28570 	struct bio *bio;
28571 	struct bio *biotail;
28572 	union {
28573 		struct list_head queuelist;
28574 		struct request *rq_next;
28575 	};
28576 	struct block_device *part;
28577 	u64 alloc_time_ns;
28578 	u64 start_time_ns;
28579 	u64 io_start_time_ns;
28580 	short unsigned int wbt_flags;
28581 	short unsigned int stats_sectors;
28582 	short unsigned int nr_phys_segments;
28583 	short unsigned int nr_integrity_segments;
28584 	struct bio_crypt_ctx *crypt_ctx;
28585 	struct blk_crypto_keyslot *crypt_keyslot;
28586 	short unsigned int ioprio;
28587 	enum mq_rq_state state;
28588 	atomic_t ref;
28589 	long unsigned int deadline;
28590 	union {
28591 		struct hlist_node hash;
28592 		struct llist_node ipi_list;
28593 	};
28594 	union {
28595 		struct rb_node rb_node;
28596 		struct bio_vec special_vec;
28597 		void *completion_data;
28598 	};
28599 	union {
28600 		struct {
28601 			struct io_cq *icq;
28602 			void *priv[2];
28603 		} elv;
28604 		struct {
28605 			unsigned int seq;
28606 			struct list_head list;
28607 			rq_end_io_fn *saved_end_io;
28608 		} flush;
28609 	};
28610 	union {
28611 		struct __call_single_data csd;
28612 		u64 fifo_time;
28613 	};
28614 	rq_end_io_fn *end_io;
28615 	void *end_io_data;
28616 };
28617 
28618 enum rq_qos_id {
28619 	RQ_QOS_WBT = 0,
28620 	RQ_QOS_LATENCY = 1,
28621 	RQ_QOS_COST = 2,
28622 };
28623 
28624 struct rq_qos_ops;
28625 
28626 struct rq_qos {
28627 	struct rq_qos_ops *ops;
28628 	struct request_queue *q;
28629 	enum rq_qos_id id;
28630 	struct rq_qos *next;
28631 	struct dentry *debugfs_dir;
28632 };
28633 
28634 struct blk_mq_tags {
28635 	unsigned int nr_tags;
28636 	unsigned int nr_reserved_tags;
28637 	atomic_t active_queues;
28638 	struct sbitmap_queue bitmap_tags;
28639 	struct sbitmap_queue breserved_tags;
28640 	struct request **rqs;
28641 	struct request **static_rqs;
28642 	struct list_head page_list;
28643 	spinlock_t lock;
28644 };
28645 
28646 struct blk_trace {
28647 	int trace_state;
28648 	struct rchan *rchan;
28649 	long unsigned int *sequence;
28650 	unsigned char *msg_data;
28651 	u16 act_mask;
28652 	u64 start_lba;
28653 	u64 end_lba;
28654 	u32 pid;
28655 	u32 dev;
28656 	struct dentry *dir;
28657 	struct list_head running_list;
28658 	atomic_t dropped;
28659 };
28660 
28661 struct blk_flush_queue {
28662 	unsigned int flush_pending_idx: 1;
28663 	unsigned int flush_running_idx: 1;
28664 	blk_status_t rq_status;
28665 	long unsigned int flush_pending_since;
28666 	struct list_head flush_queue[2];
28667 	struct list_head flush_data_in_flight;
28668 	struct request *flush_rq;
28669 	spinlock_t mq_flush_lock;
28670 };
28671 
28672 struct blk_mq_queue_map {
28673 	unsigned int *mq_map;
28674 	unsigned int nr_queues;
28675 	unsigned int queue_offset;
28676 };
28677 
28678 struct blk_mq_tag_set {
28679 	struct blk_mq_queue_map map[3];
28680 	unsigned int nr_maps;
28681 	const struct blk_mq_ops *ops;
28682 	unsigned int nr_hw_queues;
28683 	unsigned int queue_depth;
28684 	unsigned int reserved_tags;
28685 	unsigned int cmd_size;
28686 	int numa_node;
28687 	unsigned int timeout;
28688 	unsigned int flags;
28689 	void *driver_data;
28690 	struct blk_mq_tags **tags;
28691 	struct blk_mq_tags *shared_tags;
28692 	struct mutex tag_list_lock;
28693 	struct list_head tag_list;
28694 	struct srcu_struct *srcu;
28695 };
28696 
28697 enum {
28698 	sysctl_hung_task_timeout_secs = 0,
28699 };
28700 
28701 struct blk_mq_hw_ctx {
28702 	struct {
28703 		spinlock_t lock;
28704 		struct list_head dispatch;
28705 		long unsigned int state;
28706 		long: 64;
28707 		long: 64;
28708 		long: 64;
28709 		long: 64;
28710 	};
28711 	struct delayed_work run_work;
28712 	cpumask_var_t cpumask;
28713 	int next_cpu;
28714 	int next_cpu_batch;
28715 	long unsigned int flags;
28716 	void *sched_data;
28717 	struct request_queue *queue;
28718 	struct blk_flush_queue *fq;
28719 	void *driver_data;
28720 	struct sbitmap ctx_map;
28721 	struct blk_mq_ctx *dispatch_from;
28722 	unsigned int dispatch_busy;
28723 	short unsigned int type;
28724 	short unsigned int nr_ctx;
28725 	struct blk_mq_ctx **ctxs;
28726 	spinlock_t dispatch_wait_lock;
28727 	wait_queue_entry_t dispatch_wait;
28728 	atomic_t wait_index;
28729 	struct blk_mq_tags *tags;
28730 	struct blk_mq_tags *sched_tags;
28731 	long unsigned int queued;
28732 	long unsigned int run;
28733 	unsigned int numa_node;
28734 	unsigned int queue_num;
28735 	atomic_t nr_active;
28736 	struct hlist_node cpuhp_online;
28737 	struct hlist_node cpuhp_dead;
28738 	struct kobject kobj;
28739 	struct dentry *debugfs_dir;
28740 	struct dentry *sched_debugfs_dir;
28741 	struct list_head hctx_list;
28742 	long: 64;
28743 	long: 64;
28744 };
28745 
28746 enum hctx_type {
28747 	HCTX_TYPE_DEFAULT = 0,
28748 	HCTX_TYPE_READ = 1,
28749 	HCTX_TYPE_POLL = 2,
28750 	HCTX_MAX_TYPES = 3,
28751 };
28752 
28753 struct blk_mq_queue_data {
28754 	struct request *rq;
28755 	bool last;
28756 };
28757 
28758 enum blktrace_act {
28759 	__BLK_TA_QUEUE = 1,
28760 	__BLK_TA_BACKMERGE = 2,
28761 	__BLK_TA_FRONTMERGE = 3,
28762 	__BLK_TA_GETRQ = 4,
28763 	__BLK_TA_SLEEPRQ = 5,
28764 	__BLK_TA_REQUEUE = 6,
28765 	__BLK_TA_ISSUE = 7,
28766 	__BLK_TA_COMPLETE = 8,
28767 	__BLK_TA_PLUG = 9,
28768 	__BLK_TA_UNPLUG_IO = 10,
28769 	__BLK_TA_UNPLUG_TIMER = 11,
28770 	__BLK_TA_INSERT = 12,
28771 	__BLK_TA_SPLIT = 13,
28772 	__BLK_TA_BOUNCE = 14,
28773 	__BLK_TA_REMAP = 15,
28774 	__BLK_TA_ABORT = 16,
28775 	__BLK_TA_DRV_DATA = 17,
28776 	__BLK_TA_CGROUP = 256,
28777 };
28778 
28779 enum xen_domain_type {
28780 	XEN_NATIVE = 0,
28781 	XEN_PV_DOMAIN = 1,
28782 	XEN_HVM_DOMAIN = 2,
28783 };
28784 
28785 struct blk_mq_debugfs_attr {
28786 	const char *name;
28787 	umode_t mode;
28788 	int (*show)(void *, struct seq_file *);
28789 	ssize_t (*write)(void *, const char *, size_t, loff_t *);
28790 	const struct seq_operations *seq_ops;
28791 };
28792 
28793 struct rq_qos_ops {
28794 	void (*throttle)(struct rq_qos *, struct bio *);
28795 	void (*track)(struct rq_qos *, struct request *, struct bio *);
28796 	void (*merge)(struct rq_qos *, struct request *, struct bio *);
28797 	void (*issue)(struct rq_qos *, struct request *);
28798 	void (*requeue)(struct rq_qos *, struct request *);
28799 	void (*done)(struct rq_qos *, struct request *);
28800 	void (*done_bio)(struct rq_qos *, struct bio *);
28801 	void (*cleanup)(struct rq_qos *, struct bio *);
28802 	void (*queue_depth_changed)(struct rq_qos *);
28803 	void (*exit)(struct rq_qos *);
28804 	const struct blk_mq_debugfs_attr *debugfs_attrs;
28805 };
28806 
28807 enum blkg_iostat_type {
28808 	BLKG_IOSTAT_READ = 0,
28809 	BLKG_IOSTAT_WRITE = 1,
28810 	BLKG_IOSTAT_DISCARD = 2,
28811 	BLKG_IOSTAT_NR = 3,
28812 };
28813 
28814 struct blkcg_policy_data;
28815 
28816 struct blkcg {
28817 	struct cgroup_subsys_state css;
28818 	spinlock_t lock;
28819 	refcount_t online_pin;
28820 	struct xarray blkg_tree;
28821 	struct blkcg_gq *blkg_hint;
28822 	struct hlist_head blkg_list;
28823 	struct blkcg_policy_data *cpd[6];
28824 	struct list_head all_blkcgs_node;
28825 	struct llist_head *lhead;
28826 	struct list_head cgwb_list;
28827 };
28828 
28829 struct blkg_policy_data {
28830 	struct blkcg_gq *blkg;
28831 	int plid;
28832 };
28833 
28834 struct blkcg_policy_data {
28835 	struct blkcg *blkcg;
28836 	int plid;
28837 };
28838 
28839 struct biovec_slab {
28840 	int nr_vecs;
28841 	char *name;
28842 	struct kmem_cache *slab;
28843 };
28844 
28845 struct bio_slab {
28846 	struct kmem_cache *slab;
28847 	unsigned int slab_ref;
28848 	unsigned int slab_size;
28849 	char name[8];
28850 };
28851 
28852 struct blk_stat_callback {
28853 	struct list_head list;
28854 	struct timer_list timer;
28855 	struct blk_rq_stat *cpu_stat;
28856 	int (*bucket_fn)(const struct request *);
28857 	unsigned int buckets;
28858 	struct blk_rq_stat *stat;
28859 	void (*timer_fn)(struct blk_stat_callback *);
28860 	void *data;
28861 	struct callback_head rcu;
28862 };
28863 
28864 enum blk_default_limits {
28865 	BLK_MAX_SEGMENTS = 128,
28866 	BLK_SAFE_MAX_SECTORS = 255,
28867 	BLK_DEF_MAX_SECTORS = 2560,
28868 	BLK_MAX_SEGMENT_SIZE = 65536,
28869 	BLK_SEG_BOUNDARY_MASK = 4294967295,
28870 };
28871 
28872 enum {
28873 	WBT_RWQ_BG = 0,
28874 	WBT_RWQ_KSWAPD = 1,
28875 	WBT_RWQ_DISCARD = 2,
28876 	WBT_NUM_RWQ = 3,
28877 };
28878 
28879 struct disk_stats {
28880 	u64 nsecs[4];
28881 	long unsigned int sectors[4];
28882 	long unsigned int ios[4];
28883 	long unsigned int merges[4];
28884 	long unsigned int io_ticks;
28885 	local_t in_flight[2];
28886 };
28887 
28888 enum stat_group {
28889 	STAT_READ = 0,
28890 	STAT_WRITE = 1,
28891 	STAT_DISCARD = 2,
28892 	STAT_FLUSH = 3,
28893 	NR_STAT_GROUPS = 4,
28894 };
28895 
28896 struct elevator_type;
28897 
28898 struct elevator_queue {
28899 	struct elevator_type *type;
28900 	void *elevator_data;
28901 	struct kobject kobj;
28902 	struct mutex sysfs_lock;
28903 	long unsigned int flags;
28904 	struct hlist_head hash[64];
28905 };
28906 
28907 struct blk_mq_ctxs;
28908 
28909 struct blk_mq_ctx {
28910 	struct {
28911 		spinlock_t lock;
28912 		struct list_head rq_lists[3];
28913 		long: 64;
28914 	};
28915 	unsigned int cpu;
28916 	short unsigned int index_hw[3];
28917 	struct blk_mq_hw_ctx *hctxs[3];
28918 	struct request_queue *queue;
28919 	struct blk_mq_ctxs *ctxs;
28920 	struct kobject kobj;
28921 	long: 64;
28922 };
28923 
28924 struct req_iterator {
28925 	struct bvec_iter iter;
28926 	struct bio *bio;
28927 };
28928 
28929 struct blk_integrity_iter {
28930 	void *prot_buf;
28931 	void *data_buf;
28932 	sector_t seed;
28933 	unsigned int data_size;
28934 	short unsigned int interval;
28935 	unsigned char tuple_size;
28936 	const char *disk_name;
28937 };
28938 
28939 enum elv_merge {
28940 	ELEVATOR_NO_MERGE = 0,
28941 	ELEVATOR_FRONT_MERGE = 1,
28942 	ELEVATOR_BACK_MERGE = 2,
28943 	ELEVATOR_DISCARD_MERGE = 3,
28944 };
28945 
28946 struct blk_mq_alloc_data;
28947 
28948 struct elevator_mq_ops {
28949 	int (*init_sched)(struct request_queue *, struct elevator_type *);
28950 	void (*exit_sched)(struct elevator_queue *);
28951 	int (*init_hctx)(struct blk_mq_hw_ctx *, unsigned int);
28952 	void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int);
28953 	void (*depth_updated)(struct blk_mq_hw_ctx *);
28954 	bool (*allow_merge)(struct request_queue *, struct request *, struct bio *);
28955 	bool (*bio_merge)(struct request_queue *, struct bio *, unsigned int);
28956 	int (*request_merge)(struct request_queue *, struct request **, struct bio *);
28957 	void (*request_merged)(struct request_queue *, struct request *, enum elv_merge);
28958 	void (*requests_merged)(struct request_queue *, struct request *, struct request *);
28959 	void (*limit_depth)(blk_opf_t, struct blk_mq_alloc_data *);
28960 	void (*prepare_request)(struct request *);
28961 	void (*finish_request)(struct request *);
28962 	void (*insert_requests)(struct blk_mq_hw_ctx *, struct list_head *, bool);
28963 	struct request * (*dispatch_request)(struct blk_mq_hw_ctx *);
28964 	bool (*has_work)(struct blk_mq_hw_ctx *);
28965 	void (*completed_request)(struct request *, u64);
28966 	void (*requeue_request)(struct request *);
28967 	struct request * (*former_request)(struct request_queue *, struct request *);
28968 	struct request * (*next_request)(struct request_queue *, struct request *);
28969 	void (*init_icq)(struct io_cq *);
28970 	void (*exit_icq)(struct io_cq *);
28971 };
28972 
28973 struct elv_fs_entry;
28974 
28975 struct elevator_type {
28976 	struct kmem_cache *icq_cache;
28977 	struct elevator_mq_ops ops;
28978 	size_t icq_size;
28979 	size_t icq_align;
28980 	struct elv_fs_entry *elevator_attrs;
28981 	const char *elevator_name;
28982 	const char *elevator_alias;
28983 	const unsigned int elevator_features;
28984 	struct module *elevator_owner;
28985 	const struct blk_mq_debugfs_attr *queue_debugfs_attrs;
28986 	const struct blk_mq_debugfs_attr *hctx_debugfs_attrs;
28987 	char icq_cache_name[22];
28988 	struct list_head list;
28989 };
28990 
28991 struct blk_mq_alloc_data {
28992 	struct request_queue *q;
28993 	blk_mq_req_flags_t flags;
28994 	unsigned int shallow_depth;
28995 	blk_opf_t cmd_flags;
28996 	req_flags_t rq_flags;
28997 	unsigned int nr_tags;
28998 	struct request **cached_rq;
28999 	struct blk_mq_ctx *ctx;
29000 	struct blk_mq_hw_ctx *hctx;
29001 };
29002 
29003 struct elv_fs_entry {
29004 	struct attribute attr;
29005 	ssize_t (*show)(struct elevator_queue *, char *);
29006 	ssize_t (*store)(struct elevator_queue *, const char *, size_t);
29007 };
29008 
29009 struct blk_mq_ctxs {
29010 	struct kobject kobj;
29011 	struct blk_mq_ctx *queue_ctx;
29012 };
29013 
29014 enum blkg_rwstat_type {
29015 	BLKG_RWSTAT_READ = 0,
29016 	BLKG_RWSTAT_WRITE = 1,
29017 	BLKG_RWSTAT_SYNC = 2,
29018 	BLKG_RWSTAT_ASYNC = 3,
29019 	BLKG_RWSTAT_DISCARD = 4,
29020 	BLKG_RWSTAT_NR = 5,
29021 	BLKG_RWSTAT_TOTAL = 5,
29022 };
29023 
29024 enum {
29025 	LIMIT_LOW = 0,
29026 	LIMIT_MAX = 1,
29027 	LIMIT_CNT = 2,
29028 };
29029 
29030 enum bio_merge_status {
29031 	BIO_MERGE_OK = 0,
29032 	BIO_MERGE_NONE = 1,
29033 	BIO_MERGE_FAILED = 2,
29034 };
29035 
29036 typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *);
29037 
29038 struct sbq_wait {
29039 	struct sbitmap_queue *sbq;
29040 	struct wait_queue_entry wait;
29041 };
29042 
29043 typedef bool busy_tag_iter_fn(struct request *, void *);
29044 
29045 enum {
29046 	BLK_MQ_F_SHOULD_MERGE = 1,
29047 	BLK_MQ_F_TAG_QUEUE_SHARED = 2,
29048 	BLK_MQ_F_STACKING = 4,
29049 	BLK_MQ_F_TAG_HCTX_SHARED = 8,
29050 	BLK_MQ_F_BLOCKING = 32,
29051 	BLK_MQ_F_NO_SCHED = 64,
29052 	BLK_MQ_F_NO_SCHED_BY_DEFAULT = 128,
29053 	BLK_MQ_F_ALLOC_POLICY_START_BIT = 8,
29054 	BLK_MQ_F_ALLOC_POLICY_BITS = 1,
29055 	BLK_MQ_S_STOPPED = 0,
29056 	BLK_MQ_S_TAG_ACTIVE = 1,
29057 	BLK_MQ_S_SCHED_RESTART = 2,
29058 	BLK_MQ_S_INACTIVE = 3,
29059 	BLK_MQ_MAX_DEPTH = 10240,
29060 	BLK_MQ_CPU_WORK_BATCH = 8,
29061 };
29062 
29063 enum {
29064 	BLK_MQ_REQ_NOWAIT = 1,
29065 	BLK_MQ_REQ_RESERVED = 2,
29066 	BLK_MQ_REQ_PM = 4,
29067 };
29068 
29069 enum {
29070 	BLK_MQ_UNIQUE_TAG_BITS = 16,
29071 	BLK_MQ_UNIQUE_TAG_MASK = 65535,
29072 };
29073 
29074 enum {
29075 	BLK_MQ_NO_TAG = 4294967295,
29076 	BLK_MQ_TAG_MIN = 1,
29077 	BLK_MQ_TAG_MAX = 4294967294,
29078 };
29079 
29080 struct bt_iter_data {
29081 	struct blk_mq_hw_ctx *hctx;
29082 	struct request_queue *q;
29083 	busy_tag_iter_fn *fn;
29084 	void *data;
29085 	bool reserved;
29086 };
29087 
29088 struct bt_tags_iter_data {
29089 	struct blk_mq_tags *tags;
29090 	busy_tag_iter_fn *fn;
29091 	void *data;
29092 	unsigned int flags;
29093 };
29094 
29095 enum {
29096 	IOPRIO_CLASS_NONE = 0,
29097 	IOPRIO_CLASS_RT = 1,
29098 	IOPRIO_CLASS_BE = 2,
29099 	IOPRIO_CLASS_IDLE = 3,
29100 };
29101 
29102 enum {
29103 	IOPRIO_WHO_PROCESS = 1,
29104 	IOPRIO_WHO_PGRP = 2,
29105 	IOPRIO_WHO_USER = 3,
29106 };
29107 
29108 struct fat_boot_sector {
29109 	__u8 ignored[3];
29110 	__u8 system_id[8];
29111 	__u8 sector_size[2];
29112 	__u8 sec_per_clus;
29113 	__le16 reserved;
29114 	__u8 fats;
29115 	__u8 dir_entries[2];
29116 	__u8 sectors[2];
29117 	__u8 media;
29118 	__le16 fat_length;
29119 	__le16 secs_track;
29120 	__le16 heads;
29121 	__le32 hidden;
29122 	__le32 total_sect;
29123 	union {
29124 		struct {
29125 			__u8 drive_number;
29126 			__u8 state;
29127 			__u8 signature;
29128 			__u8 vol_id[4];
29129 			__u8 vol_label[11];
29130 			__u8 fs_type[8];
29131 		} fat16;
29132 		struct {
29133 			__le32 length;
29134 			__le16 flags;
29135 			__u8 version[2];
29136 			__le32 root_cluster;
29137 			__le16 info_sector;
29138 			__le16 backup_boot;
29139 			__le16 reserved2[6];
29140 			__u8 drive_number;
29141 			__u8 state;
29142 			__u8 signature;
29143 			__u8 vol_id[4];
29144 			__u8 vol_label[11];
29145 			__u8 fs_type[8];
29146 		} fat32;
29147 	};
29148 };
29149 
29150 struct msdos_partition {
29151 	u8 boot_ind;
29152 	u8 head;
29153 	u8 sector;
29154 	u8 cyl;
29155 	u8 sys_ind;
29156 	u8 end_head;
29157 	u8 end_sector;
29158 	u8 end_cyl;
29159 	__le32 start_sect;
29160 	__le32 nr_sects;
29161 };
29162 
29163 enum msdos_sys_ind {
29164 	DOS_EXTENDED_PARTITION = 5,
29165 	LINUX_EXTENDED_PARTITION = 133,
29166 	WIN98_EXTENDED_PARTITION = 15,
29167 	LINUX_DATA_PARTITION = 131,
29168 	LINUX_LVM_PARTITION = 142,
29169 	LINUX_RAID_PARTITION = 253,
29170 	SOLARIS_X86_PARTITION = 130,
29171 	NEW_SOLARIS_X86_PARTITION = 191,
29172 	DM6_AUX1PARTITION = 81,
29173 	DM6_AUX3PARTITION = 83,
29174 	DM6_PARTITION = 84,
29175 	EZD_PARTITION = 85,
29176 	FREEBSD_PARTITION = 165,
29177 	OPENBSD_PARTITION = 166,
29178 	NETBSD_PARTITION = 169,
29179 	BSDI_PARTITION = 183,
29180 	MINIX_PARTITION = 129,
29181 	UNIXWARE_PARTITION = 99,
29182 };
29183 
29184 struct parsed_partitions {
29185 	struct gendisk *disk;
29186 	char name[32];
29187 	struct {
29188 		sector_t from;
29189 		sector_t size;
29190 		int flags;
29191 		bool has_info;
29192 		struct partition_meta_info info;
29193 	} *parts;
29194 	int next;
29195 	int limit;
29196 	bool access_beyond_eod;
29197 	char *pp_buf;
29198 };
29199 
29200 typedef struct {
29201 	struct folio *v;
29202 } Sector;
29203 
29204 struct bsd_partition {
29205 	__le32 p_size;
29206 	__le32 p_offset;
29207 	__le32 p_fsize;
29208 	__u8 p_fstype;
29209 	__u8 p_frag;
29210 	__le16 p_cpg;
29211 };
29212 
29213 struct bsd_disklabel {
29214 	__le32 d_magic;
29215 	__s16 d_type;
29216 	__s16 d_subtype;
29217 	char d_typename[16];
29218 	char d_packname[16];
29219 	__u32 d_secsize;
29220 	__u32 d_nsectors;
29221 	__u32 d_ntracks;
29222 	__u32 d_ncylinders;
29223 	__u32 d_secpercyl;
29224 	__u32 d_secperunit;
29225 	__u16 d_sparespertrack;
29226 	__u16 d_sparespercyl;
29227 	__u32 d_acylinders;
29228 	__u16 d_rpm;
29229 	__u16 d_interleave;
29230 	__u16 d_trackskew;
29231 	__u16 d_cylskew;
29232 	__u32 d_headswitch;
29233 	__u32 d_trkseek;
29234 	__u32 d_flags;
29235 	__u32 d_drivedata[5];
29236 	__u32 d_spare[5];
29237 	__le32 d_magic2;
29238 	__le16 d_checksum;
29239 	__le16 d_npartitions;
29240 	__le32 d_bbsize;
29241 	__le32 d_sbsize;
29242 	struct bsd_partition d_partitions[16];
29243 };
29244 
29245 struct unixware_slice {
29246 	__le16 s_label;
29247 	__le16 s_flags;
29248 	__le32 start_sect;
29249 	__le32 nr_sects;
29250 };
29251 
29252 struct unixware_vtoc {
29253 	__le32 v_magic;
29254 	__le32 v_version;
29255 	char v_name[8];
29256 	__le16 v_nslices;
29257 	__le16 v_unknown1;
29258 	__le32 v_reserved[10];
29259 	struct unixware_slice v_slice[16];
29260 };
29261 
29262 struct unixware_disklabel {
29263 	__le32 d_type;
29264 	__le32 d_magic;
29265 	__le32 d_version;
29266 	char d_serial[12];
29267 	__le32 d_ncylinders;
29268 	__le32 d_ntracks;
29269 	__le32 d_nsectors;
29270 	__le32 d_secsize;
29271 	__le32 d_part_start;
29272 	__le32 d_unknown1[12];
29273 	__le32 d_alt_tbl;
29274 	__le32 d_alt_len;
29275 	__le32 d_phys_cyl;
29276 	__le32 d_phys_trk;
29277 	__le32 d_phys_sec;
29278 	__le32 d_phys_bytes;
29279 	__le32 d_unknown2;
29280 	__le32 d_unknown3;
29281 	__le32 d_pad[8];
29282 	struct unixware_vtoc vtoc;
29283 };
29284 
29285 struct sg_io_v4 {
29286 	__s32 guard;
29287 	__u32 protocol;
29288 	__u32 subprotocol;
29289 	__u32 request_len;
29290 	__u64 request;
29291 	__u64 request_tag;
29292 	__u32 request_attr;
29293 	__u32 request_priority;
29294 	__u32 request_extra;
29295 	__u32 max_response_len;
29296 	__u64 response;
29297 	__u32 dout_iovec_count;
29298 	__u32 dout_xfer_len;
29299 	__u32 din_iovec_count;
29300 	__u32 din_xfer_len;
29301 	__u64 dout_xferp;
29302 	__u64 din_xferp;
29303 	__u32 timeout;
29304 	__u32 flags;
29305 	__u64 usr_ptr;
29306 	__u32 spare_in;
29307 	__u32 driver_status;
29308 	__u32 transport_status;
29309 	__u32 device_status;
29310 	__u32 retry_delay;
29311 	__u32 info;
29312 	__u32 duration;
29313 	__u32 response_len;
29314 	__s32 din_resid;
29315 	__s32 dout_resid;
29316 	__u64 generated_tag;
29317 	__u32 spare_out;
29318 	__u32 padding;
29319 };
29320 
29321 typedef int bsg_sg_io_fn(struct request_queue *, struct sg_io_v4 *, fmode_t, unsigned int);
29322 
29323 struct bsg_device {
29324 	struct request_queue *queue;
29325 	struct device device;
29326 	struct cdev cdev;
29327 	int max_queue;
29328 	unsigned int timeout;
29329 	unsigned int reserved_size;
29330 	bsg_sg_io_fn *sg_io_fn;
29331 };
29332 
29333 struct throtl_service_queue {
29334 	struct throtl_service_queue *parent_sq;
29335 	struct list_head queued[2];
29336 	unsigned int nr_queued[2];
29337 	struct rb_root_cached pending_tree;
29338 	unsigned int nr_pending;
29339 	long unsigned int first_pending_disptime;
29340 	struct timer_list pending_timer;
29341 };
29342 
29343 struct latency_bucket {
29344 	long unsigned int total_latency;
29345 	int samples;
29346 };
29347 
29348 struct avg_latency_bucket {
29349 	long unsigned int latency;
29350 	bool valid;
29351 };
29352 
29353 struct throtl_data {
29354 	struct throtl_service_queue service_queue;
29355 	struct request_queue *queue;
29356 	unsigned int nr_queued[2];
29357 	unsigned int throtl_slice;
29358 	struct work_struct dispatch_work;
29359 	unsigned int limit_index;
29360 	bool limit_valid[2];
29361 	long unsigned int low_upgrade_time;
29362 	long unsigned int low_downgrade_time;
29363 	unsigned int scale;
29364 	struct latency_bucket tmp_buckets[18];
29365 	struct avg_latency_bucket avg_buckets[18];
29366 	struct latency_bucket *latency_buckets[2];
29367 	long unsigned int last_calculate_time;
29368 	long unsigned int filtered_latency;
29369 	bool track_bio_latency;
29370 };
29371 
29372 enum blktrace_cat {
29373 	BLK_TC_READ = 1,
29374 	BLK_TC_WRITE = 2,
29375 	BLK_TC_FLUSH = 4,
29376 	BLK_TC_SYNC = 8,
29377 	BLK_TC_SYNCIO = 8,
29378 	BLK_TC_QUEUE = 16,
29379 	BLK_TC_REQUEUE = 32,
29380 	BLK_TC_ISSUE = 64,
29381 	BLK_TC_COMPLETE = 128,
29382 	BLK_TC_FS = 256,
29383 	BLK_TC_PC = 512,
29384 	BLK_TC_NOTIFY = 1024,
29385 	BLK_TC_AHEAD = 2048,
29386 	BLK_TC_META = 4096,
29387 	BLK_TC_DISCARD = 8192,
29388 	BLK_TC_DRV_DATA = 16384,
29389 	BLK_TC_FUA = 32768,
29390 	BLK_TC_END = 32768,
29391 };
29392 
29393 typedef struct blkcg_policy_data *blkcg_pol_alloc_cpd_fn(gfp_t);
29394 
29395 typedef void blkcg_pol_init_cpd_fn(struct blkcg_policy_data *);
29396 
29397 typedef void blkcg_pol_free_cpd_fn(struct blkcg_policy_data *);
29398 
29399 typedef void blkcg_pol_bind_cpd_fn(struct blkcg_policy_data *);
29400 
29401 typedef struct blkg_policy_data *blkcg_pol_alloc_pd_fn(gfp_t, struct request_queue *, struct blkcg *);
29402 
29403 typedef void blkcg_pol_init_pd_fn(struct blkg_policy_data *);
29404 
29405 typedef void blkcg_pol_online_pd_fn(struct blkg_policy_data *);
29406 
29407 typedef void blkcg_pol_offline_pd_fn(struct blkg_policy_data *);
29408 
29409 typedef void blkcg_pol_free_pd_fn(struct blkg_policy_data *);
29410 
29411 typedef void blkcg_pol_reset_pd_stats_fn(struct blkg_policy_data *);
29412 
29413 typedef void blkcg_pol_stat_pd_fn(struct blkg_policy_data *, struct seq_file *);
29414 
29415 struct blkcg_policy {
29416 	int plid;
29417 	struct cftype *dfl_cftypes;
29418 	struct cftype *legacy_cftypes;
29419 	blkcg_pol_alloc_cpd_fn *cpd_alloc_fn;
29420 	blkcg_pol_init_cpd_fn *cpd_init_fn;
29421 	blkcg_pol_free_cpd_fn *cpd_free_fn;
29422 	blkcg_pol_bind_cpd_fn *cpd_bind_fn;
29423 	blkcg_pol_alloc_pd_fn *pd_alloc_fn;
29424 	blkcg_pol_init_pd_fn *pd_init_fn;
29425 	blkcg_pol_online_pd_fn *pd_online_fn;
29426 	blkcg_pol_offline_pd_fn *pd_offline_fn;
29427 	blkcg_pol_free_pd_fn *pd_free_fn;
29428 	blkcg_pol_reset_pd_stats_fn *pd_reset_stats_fn;
29429 	blkcg_pol_stat_pd_fn *pd_stat_fn;
29430 };
29431 
29432 struct blkg_conf_ctx {
29433 	struct block_device *bdev;
29434 	struct blkcg_gq *blkg;
29435 	char *body;
29436 };
29437 
29438 struct blkg_rwstat {
29439 	struct percpu_counter cpu_cnt[5];
29440 	atomic64_t aux_cnt[5];
29441 };
29442 
29443 struct blkg_rwstat_sample {
29444 	u64 cnt[5];
29445 };
29446 
29447 struct throtl_grp;
29448 
29449 struct throtl_qnode {
29450 	struct list_head node;
29451 	struct bio_list bios;
29452 	struct throtl_grp *tg;
29453 };
29454 
29455 struct throtl_grp {
29456 	struct blkg_policy_data pd;
29457 	struct rb_node rb_node;
29458 	struct throtl_data *td;
29459 	struct throtl_service_queue service_queue;
29460 	struct throtl_qnode qnode_on_self[2];
29461 	struct throtl_qnode qnode_on_parent[2];
29462 	long unsigned int disptime;
29463 	unsigned int flags;
29464 	bool has_rules_bps[2];
29465 	bool has_rules_iops[2];
29466 	uint64_t bps[4];
29467 	uint64_t bps_conf[4];
29468 	unsigned int iops[4];
29469 	unsigned int iops_conf[4];
29470 	uint64_t bytes_disp[2];
29471 	unsigned int io_disp[2];
29472 	long unsigned int last_low_overflow_time[2];
29473 	uint64_t last_bytes_disp[2];
29474 	unsigned int last_io_disp[2];
29475 	uint64_t carryover_bytes[2];
29476 	unsigned int carryover_ios[2];
29477 	long unsigned int last_check_time;
29478 	long unsigned int latency_target;
29479 	long unsigned int latency_target_conf;
29480 	long unsigned int slice_start[2];
29481 	long unsigned int slice_end[2];
29482 	long unsigned int last_finish_time;
29483 	long unsigned int checked_last_finish_time;
29484 	long unsigned int avg_idletime;
29485 	long unsigned int idletime_threshold;
29486 	long unsigned int idletime_threshold_conf;
29487 	unsigned int bio_cnt;
29488 	unsigned int bad_bio_cnt;
29489 	long unsigned int bio_cnt_reset_time;
29490 	struct blkg_rwstat stat_bytes;
29491 	struct blkg_rwstat stat_ios;
29492 };
29493 
29494 enum tg_state_flags {
29495 	THROTL_TG_PENDING = 1,
29496 	THROTL_TG_WAS_EMPTY = 2,
29497 	THROTL_TG_CANCELING = 4,
29498 };
29499 
29500 struct bfq_entity;
29501 
29502 struct bfq_service_tree {
29503 	struct rb_root active;
29504 	struct rb_root idle;
29505 	struct bfq_entity *first_idle;
29506 	struct bfq_entity *last_idle;
29507 	u64 vtime;
29508 	long unsigned int wsum;
29509 };
29510 
29511 struct bfq_sched_data;
29512 
29513 struct bfq_queue;
29514 
29515 struct bfq_entity {
29516 	struct rb_node rb_node;
29517 	bool on_st_or_in_serv;
29518 	u64 start;
29519 	u64 finish;
29520 	struct rb_root *tree;
29521 	u64 min_start;
29522 	int service;
29523 	int budget;
29524 	int allocated;
29525 	int dev_weight;
29526 	int weight;
29527 	int new_weight;
29528 	int orig_weight;
29529 	struct bfq_entity *parent;
29530 	struct bfq_sched_data *my_sched_data;
29531 	struct bfq_sched_data *sched_data;
29532 	int prio_changed;
29533 	bool in_groups_with_pending_reqs;
29534 	struct bfq_queue *last_bfqq_created;
29535 };
29536 
29537 struct bfq_sched_data {
29538 	struct bfq_entity *in_service_entity;
29539 	struct bfq_entity *next_in_service;
29540 	struct bfq_service_tree service_tree[3];
29541 	long unsigned int bfq_class_idle_last_service;
29542 };
29543 
29544 struct bfq_weight_counter {
29545 	unsigned int weight;
29546 	unsigned int num_active;
29547 	struct rb_node weights_node;
29548 };
29549 
29550 struct bfq_ttime {
29551 	u64 last_end_request;
29552 	u64 ttime_total;
29553 	long unsigned int ttime_samples;
29554 	u64 ttime_mean;
29555 };
29556 
29557 struct bfq_data;
29558 
29559 struct bfq_io_cq;
29560 
29561 struct bfq_queue {
29562 	int ref;
29563 	int stable_ref;
29564 	struct bfq_data *bfqd;
29565 	short unsigned int ioprio;
29566 	short unsigned int ioprio_class;
29567 	short unsigned int new_ioprio;
29568 	short unsigned int new_ioprio_class;
29569 	u64 last_serv_time_ns;
29570 	unsigned int inject_limit;
29571 	long unsigned int decrease_time_jif;
29572 	struct bfq_queue *new_bfqq;
29573 	struct rb_node pos_node;
29574 	struct rb_root *pos_root;
29575 	struct rb_root sort_list;
29576 	struct request *next_rq;
29577 	int queued[2];
29578 	int meta_pending;
29579 	struct list_head fifo;
29580 	struct bfq_entity entity;
29581 	struct bfq_weight_counter *weight_counter;
29582 	int max_budget;
29583 	long unsigned int budget_timeout;
29584 	int dispatched;
29585 	long unsigned int flags;
29586 	struct list_head bfqq_list;
29587 	struct bfq_ttime ttime;
29588 	u64 io_start_time;
29589 	u64 tot_idle_time;
29590 	u32 seek_history;
29591 	struct hlist_node burst_list_node;
29592 	sector_t last_request_pos;
29593 	unsigned int requests_within_timer;
29594 	pid_t pid;
29595 	struct bfq_io_cq *bic;
29596 	long unsigned int wr_cur_max_time;
29597 	long unsigned int soft_rt_next_start;
29598 	long unsigned int last_wr_start_finish;
29599 	unsigned int wr_coeff;
29600 	long unsigned int last_idle_bklogged;
29601 	long unsigned int service_from_backlogged;
29602 	long unsigned int service_from_wr;
29603 	long unsigned int wr_start_at_switch_to_srt;
29604 	long unsigned int split_time;
29605 	long unsigned int first_IO_time;
29606 	long unsigned int creation_time;
29607 	struct bfq_queue *waker_bfqq;
29608 	struct bfq_queue *tentative_waker_bfqq;
29609 	unsigned int num_waker_detections;
29610 	u64 waker_detection_started;
29611 	struct hlist_node woken_list_node;
29612 	struct hlist_head woken_list;
29613 };
29614 
29615 struct bfq_group;
29616 
29617 struct bfq_data {
29618 	struct request_queue *queue;
29619 	struct list_head dispatch;
29620 	struct bfq_group *root_group;
29621 	struct rb_root_cached queue_weights_tree;
29622 	unsigned int num_groups_with_pending_reqs;
29623 	unsigned int busy_queues[3];
29624 	int wr_busy_queues;
29625 	int queued;
29626 	int rq_in_driver;
29627 	bool nonrot_with_queueing;
29628 	int max_rq_in_driver;
29629 	int hw_tag_samples;
29630 	int hw_tag;
29631 	int budgets_assigned;
29632 	struct hrtimer idle_slice_timer;
29633 	struct bfq_queue *in_service_queue;
29634 	sector_t last_position;
29635 	sector_t in_serv_last_pos;
29636 	u64 last_completion;
29637 	struct bfq_queue *last_completed_rq_bfqq;
29638 	struct bfq_queue *last_bfqq_created;
29639 	u64 last_empty_occupied_ns;
29640 	bool wait_dispatch;
29641 	struct request *waited_rq;
29642 	bool rqs_injected;
29643 	u64 first_dispatch;
29644 	u64 last_dispatch;
29645 	ktime_t last_budget_start;
29646 	ktime_t last_idling_start;
29647 	long unsigned int last_idling_start_jiffies;
29648 	int peak_rate_samples;
29649 	u32 sequential_samples;
29650 	u64 tot_sectors_dispatched;
29651 	u32 last_rq_max_size;
29652 	u64 delta_from_first;
29653 	u32 peak_rate;
29654 	int bfq_max_budget;
29655 	struct list_head active_list;
29656 	struct list_head idle_list;
29657 	u64 bfq_fifo_expire[2];
29658 	unsigned int bfq_back_penalty;
29659 	unsigned int bfq_back_max;
29660 	u32 bfq_slice_idle;
29661 	int bfq_user_max_budget;
29662 	unsigned int bfq_timeout;
29663 	bool strict_guarantees;
29664 	long unsigned int last_ins_in_burst;
29665 	long unsigned int bfq_burst_interval;
29666 	int burst_size;
29667 	struct bfq_entity *burst_parent_entity;
29668 	long unsigned int bfq_large_burst_thresh;
29669 	bool large_burst;
29670 	struct hlist_head burst_list;
29671 	bool low_latency;
29672 	unsigned int bfq_wr_coeff;
29673 	unsigned int bfq_wr_max_time;
29674 	unsigned int bfq_wr_rt_max_time;
29675 	unsigned int bfq_wr_min_idle_time;
29676 	long unsigned int bfq_wr_min_inter_arr_async;
29677 	unsigned int bfq_wr_max_softrt_rate;
29678 	u64 rate_dur_prod;
29679 	struct bfq_queue oom_bfqq;
29680 	spinlock_t lock;
29681 	struct bfq_io_cq *bio_bic;
29682 	struct bfq_queue *bio_bfqq;
29683 	unsigned int word_depths[4];
29684 	unsigned int full_depth_shift;
29685 };
29686 
29687 struct bfq_io_cq {
29688 	struct io_cq icq;
29689 	struct bfq_queue *bfqq[2];
29690 	int ioprio;
29691 	uint64_t blkcg_serial_nr;
29692 	bool saved_has_short_ttime;
29693 	bool saved_IO_bound;
29694 	u64 saved_io_start_time;
29695 	u64 saved_tot_idle_time;
29696 	bool saved_in_large_burst;
29697 	bool was_in_burst_list;
29698 	unsigned int saved_weight;
29699 	long unsigned int saved_wr_coeff;
29700 	long unsigned int saved_last_wr_start_finish;
29701 	long unsigned int saved_service_from_wr;
29702 	long unsigned int saved_wr_start_at_switch_to_srt;
29703 	unsigned int saved_wr_cur_max_time;
29704 	struct bfq_ttime saved_ttime;
29705 	u64 saved_last_serv_time_ns;
29706 	unsigned int saved_inject_limit;
29707 	long unsigned int saved_decrease_time_jif;
29708 	struct bfq_queue *stable_merge_bfqq;
29709 	bool stably_merged;
29710 	unsigned int requests;
29711 };
29712 
29713 struct bfqg_stats {
29714 	struct blkg_rwstat bytes;
29715 	struct blkg_rwstat ios;
29716 };
29717 
29718 struct bfq_group {
29719 	struct blkg_policy_data pd;
29720 	char blkg_path[128];
29721 	refcount_t ref;
29722 	bool online;
29723 	struct bfq_entity entity;
29724 	struct bfq_sched_data sched_data;
29725 	struct bfq_data *bfqd;
29726 	struct bfq_queue *async_bfqq[16];
29727 	struct bfq_queue *async_idle_bfqq;
29728 	struct bfq_entity *my_entity;
29729 	int active_entities;
29730 	int num_queues_with_pending_reqs;
29731 	struct rb_root rq_pos_tree;
29732 	struct bfqg_stats stats;
29733 };
29734 
29735 enum bfqq_state_flags {
29736 	BFQQF_just_created = 0,
29737 	BFQQF_busy = 1,
29738 	BFQQF_wait_request = 2,
29739 	BFQQF_non_blocking_wait_rq = 3,
29740 	BFQQF_fifo_expire = 4,
29741 	BFQQF_has_short_ttime = 5,
29742 	BFQQF_sync = 6,
29743 	BFQQF_IO_bound = 7,
29744 	BFQQF_in_large_burst = 8,
29745 	BFQQF_softrt_update = 9,
29746 	BFQQF_coop = 10,
29747 	BFQQF_split_coop = 11,
29748 };
29749 
29750 enum bfqq_expiration {
29751 	BFQQE_TOO_IDLE = 0,
29752 	BFQQE_BUDGET_TIMEOUT = 1,
29753 	BFQQE_BUDGET_EXHAUSTED = 2,
29754 	BFQQE_NO_MORE_REQUESTS = 3,
29755 	BFQQE_PREEMPTED = 4,
29756 };
29757 
29758 enum blk_integrity_flags {
29759 	BLK_INTEGRITY_VERIFY = 1,
29760 	BLK_INTEGRITY_GENERATE = 2,
29761 	BLK_INTEGRITY_DEVICE_CAPABLE = 4,
29762 	BLK_INTEGRITY_IP_CHECKSUM = 8,
29763 };
29764 
29765 struct integrity_sysfs_entry {
29766 	struct attribute attr;
29767 	ssize_t (*show)(struct blk_integrity *, char *);
29768 	ssize_t (*store)(struct blk_integrity *, const char *, size_t);
29769 };
29770 
29771 struct irq_poll;
29772 
29773 typedef int irq_poll_fn(struct irq_poll *, int);
29774 
29775 struct irq_poll {
29776 	struct list_head list;
29777 	long unsigned int state;
29778 	int weight;
29779 	irq_poll_fn *poll;
29780 };
29781 
29782 struct rdma_cgroup {
29783 	struct cgroup_subsys_state css;
29784 	struct list_head rpools;
29785 };
29786 
29787 struct rdmacg_device {
29788 	struct list_head dev_node;
29789 	struct list_head rpools;
29790 	char *name;
29791 };
29792 
29793 struct dim_sample {
29794 	ktime_t time;
29795 	u32 pkt_ctr;
29796 	u32 byte_ctr;
29797 	u16 event_ctr;
29798 	u32 comp_ctr;
29799 };
29800 
29801 struct dim_stats {
29802 	int ppms;
29803 	int bpms;
29804 	int epms;
29805 	int cpms;
29806 	int cpe_ratio;
29807 };
29808 
29809 struct dim {
29810 	u8 state;
29811 	struct dim_stats prev_stats;
29812 	struct dim_sample start_sample;
29813 	struct dim_sample measuring_sample;
29814 	struct work_struct work;
29815 	void *priv;
29816 	u8 profile_ix;
29817 	u8 mode;
29818 	u8 tune_state;
29819 	u8 steps_right;
29820 	u8 steps_left;
29821 	u8 tired;
29822 };
29823 
29824 enum rdma_nl_counter_mode {
29825 	RDMA_COUNTER_MODE_NONE = 0,
29826 	RDMA_COUNTER_MODE_AUTO = 1,
29827 	RDMA_COUNTER_MODE_MANUAL = 2,
29828 	RDMA_COUNTER_MODE_MAX = 3,
29829 };
29830 
29831 enum rdma_nl_counter_mask {
29832 	RDMA_COUNTER_MASK_QP_TYPE = 1,
29833 	RDMA_COUNTER_MASK_PID = 2,
29834 };
29835 
29836 enum rdma_restrack_type {
29837 	RDMA_RESTRACK_PD = 0,
29838 	RDMA_RESTRACK_CQ = 1,
29839 	RDMA_RESTRACK_QP = 2,
29840 	RDMA_RESTRACK_CM_ID = 3,
29841 	RDMA_RESTRACK_MR = 4,
29842 	RDMA_RESTRACK_CTX = 5,
29843 	RDMA_RESTRACK_COUNTER = 6,
29844 	RDMA_RESTRACK_SRQ = 7,
29845 	RDMA_RESTRACK_MAX = 8,
29846 };
29847 
29848 struct rdma_restrack_entry {
29849 	bool valid;
29850 	u8 no_track: 1;
29851 	struct kref kref;
29852 	struct completion comp;
29853 	struct task_struct *task;
29854 	const char *kern_name;
29855 	enum rdma_restrack_type type;
29856 	bool user;
29857 	u32 id;
29858 };
29859 
29860 struct rdma_link_ops {
29861 	struct list_head list;
29862 	const char *type;
29863 	int (*newlink)(const char *, struct net_device *);
29864 };
29865 
29866 struct auto_mode_param {
29867 	int qp_type;
29868 };
29869 
29870 struct rdma_counter_mode {
29871 	enum rdma_nl_counter_mode mode;
29872 	enum rdma_nl_counter_mask mask;
29873 	struct auto_mode_param param;
29874 };
29875 
29876 struct rdma_hw_stats;
29877 
29878 struct rdma_port_counter {
29879 	struct rdma_counter_mode mode;
29880 	struct rdma_hw_stats *hstats;
29881 	unsigned int num_counters;
29882 	struct mutex lock;
29883 };
29884 
29885 struct rdma_stat_desc;
29886 
29887 struct rdma_hw_stats {
29888 	struct mutex lock;
29889 	long unsigned int timestamp;
29890 	long unsigned int lifespan;
29891 	const struct rdma_stat_desc *descs;
29892 	long unsigned int *is_disabled;
29893 	int num_counters;
29894 	u64 value[0];
29895 };
29896 
29897 struct ib_device;
29898 
29899 struct rdma_counter {
29900 	struct rdma_restrack_entry res;
29901 	struct ib_device *device;
29902 	uint32_t id;
29903 	struct kref kref;
29904 	struct rdma_counter_mode mode;
29905 	struct mutex lock;
29906 	struct rdma_hw_stats *stats;
29907 	u32 port;
29908 };
29909 
29910 enum rdma_driver_id {
29911 	RDMA_DRIVER_UNKNOWN = 0,
29912 	RDMA_DRIVER_MLX5 = 1,
29913 	RDMA_DRIVER_MLX4 = 2,
29914 	RDMA_DRIVER_CXGB3 = 3,
29915 	RDMA_DRIVER_CXGB4 = 4,
29916 	RDMA_DRIVER_MTHCA = 5,
29917 	RDMA_DRIVER_BNXT_RE = 6,
29918 	RDMA_DRIVER_OCRDMA = 7,
29919 	RDMA_DRIVER_NES = 8,
29920 	RDMA_DRIVER_I40IW = 9,
29921 	RDMA_DRIVER_IRDMA = 9,
29922 	RDMA_DRIVER_VMW_PVRDMA = 10,
29923 	RDMA_DRIVER_QEDR = 11,
29924 	RDMA_DRIVER_HNS = 12,
29925 	RDMA_DRIVER_USNIC = 13,
29926 	RDMA_DRIVER_RXE = 14,
29927 	RDMA_DRIVER_HFI1 = 15,
29928 	RDMA_DRIVER_QIB = 16,
29929 	RDMA_DRIVER_EFA = 17,
29930 	RDMA_DRIVER_SIW = 18,
29931 	RDMA_DRIVER_ERDMA = 19,
29932 	RDMA_DRIVER_MANA = 20,
29933 };
29934 
29935 enum ib_cq_notify_flags {
29936 	IB_CQ_SOLICITED = 1,
29937 	IB_CQ_NEXT_COMP = 2,
29938 	IB_CQ_SOLICITED_MASK = 3,
29939 	IB_CQ_REPORT_MISSED_EVENTS = 4,
29940 };
29941 
29942 enum rdma_link_layer {
29943 	IB_LINK_LAYER_UNSPECIFIED = 0,
29944 	IB_LINK_LAYER_INFINIBAND = 1,
29945 	IB_LINK_LAYER_ETHERNET = 2,
29946 };
29947 
29948 enum rdma_netdev_t {
29949 	RDMA_NETDEV_OPA_VNIC = 0,
29950 	RDMA_NETDEV_IPOIB = 1,
29951 };
29952 
29953 enum ib_srq_attr_mask {
29954 	IB_SRQ_MAX_WR = 1,
29955 	IB_SRQ_LIMIT = 2,
29956 };
29957 
29958 enum ib_mr_type {
29959 	IB_MR_TYPE_MEM_REG = 0,
29960 	IB_MR_TYPE_SG_GAPS = 1,
29961 	IB_MR_TYPE_DM = 2,
29962 	IB_MR_TYPE_USER = 3,
29963 	IB_MR_TYPE_DMA = 4,
29964 	IB_MR_TYPE_INTEGRITY = 5,
29965 };
29966 
29967 enum ib_uverbs_advise_mr_advice {
29968 	IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH = 0,
29969 	IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_WRITE = 1,
29970 	IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_NO_FAULT = 2,
29971 };
29972 
29973 struct uverbs_attr_bundle;
29974 
29975 struct iw_cm_id;
29976 
29977 struct iw_cm_conn_param;
29978 
29979 struct ib_qp;
29980 
29981 struct ib_send_wr;
29982 
29983 struct ib_recv_wr;
29984 
29985 struct ib_cq;
29986 
29987 struct ib_wc;
29988 
29989 struct ib_srq;
29990 
29991 struct ib_grh;
29992 
29993 struct ib_mad;
29994 
29995 struct ib_device_attr;
29996 
29997 struct ib_udata;
29998 
29999 struct ib_device_modify;
30000 
30001 struct ib_port_attr;
30002 
30003 struct ib_port_modify;
30004 
30005 struct ib_port_immutable;
30006 
30007 struct rdma_netdev_alloc_params;
30008 
30009 union ib_gid;
30010 
30011 struct ib_gid_attr;
30012 
30013 struct ib_ucontext;
30014 
30015 struct rdma_user_mmap_entry;
30016 
30017 struct ib_pd;
30018 
30019 struct ib_ah;
30020 
30021 struct rdma_ah_init_attr;
30022 
30023 struct rdma_ah_attr;
30024 
30025 struct ib_srq_init_attr;
30026 
30027 struct ib_srq_attr;
30028 
30029 struct ib_qp_init_attr;
30030 
30031 struct ib_qp_attr;
30032 
30033 struct ib_cq_init_attr;
30034 
30035 struct ib_mr;
30036 
30037 struct ib_sge;
30038 
30039 struct ib_mr_status;
30040 
30041 struct ib_mw;
30042 
30043 struct ib_xrcd;
30044 
30045 struct ib_flow;
30046 
30047 struct ib_flow_attr;
30048 
30049 struct ib_flow_action;
30050 
30051 struct ib_wq;
30052 
30053 struct ib_wq_init_attr;
30054 
30055 struct ib_wq_attr;
30056 
30057 struct ib_rwq_ind_table;
30058 
30059 struct ib_rwq_ind_table_init_attr;
30060 
30061 struct ib_dm;
30062 
30063 struct ib_dm_alloc_attr;
30064 
30065 struct ib_dm_mr_attr;
30066 
30067 struct ib_counters;
30068 
30069 struct ib_counters_read_attr;
30070 
30071 struct rdma_cm_id;
30072 
30073 struct ib_device_ops {
30074 	struct module *owner;
30075 	enum rdma_driver_id driver_id;
30076 	u32 uverbs_abi_ver;
30077 	unsigned int uverbs_no_driver_id_binding: 1;
30078 	const struct attribute_group *device_group;
30079 	const struct attribute_group **port_groups;
30080 	int (*post_send)(struct ib_qp *, const struct ib_send_wr *, const struct ib_send_wr **);
30081 	int (*post_recv)(struct ib_qp *, const struct ib_recv_wr *, const struct ib_recv_wr **);
30082 	void (*drain_rq)(struct ib_qp *);
30083 	void (*drain_sq)(struct ib_qp *);
30084 	int (*poll_cq)(struct ib_cq *, int, struct ib_wc *);
30085 	int (*peek_cq)(struct ib_cq *, int);
30086 	int (*req_notify_cq)(struct ib_cq *, enum ib_cq_notify_flags);
30087 	int (*post_srq_recv)(struct ib_srq *, const struct ib_recv_wr *, const struct ib_recv_wr **);
30088 	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 *);
30089 	int (*query_device)(struct ib_device *, struct ib_device_attr *, struct ib_udata *);
30090 	int (*modify_device)(struct ib_device *, int, struct ib_device_modify *);
30091 	void (*get_dev_fw_str)(struct ib_device *, char *);
30092 	const struct cpumask * (*get_vector_affinity)(struct ib_device *, int);
30093 	int (*query_port)(struct ib_device *, u32, struct ib_port_attr *);
30094 	int (*modify_port)(struct ib_device *, u32, int, struct ib_port_modify *);
30095 	int (*get_port_immutable)(struct ib_device *, u32, struct ib_port_immutable *);
30096 	enum rdma_link_layer (*get_link_layer)(struct ib_device *, u32);
30097 	struct net_device * (*get_netdev)(struct ib_device *, u32);
30098 	struct net_device * (*alloc_rdma_netdev)(struct ib_device *, u32, enum rdma_netdev_t, const char *, unsigned char, void (*)(struct net_device *));
30099 	int (*rdma_netdev_get_params)(struct ib_device *, u32, enum rdma_netdev_t, struct rdma_netdev_alloc_params *);
30100 	int (*query_gid)(struct ib_device *, u32, int, union ib_gid *);
30101 	int (*add_gid)(const struct ib_gid_attr *, void **);
30102 	int (*del_gid)(const struct ib_gid_attr *, void **);
30103 	int (*query_pkey)(struct ib_device *, u32, u16, u16 *);
30104 	int (*alloc_ucontext)(struct ib_ucontext *, struct ib_udata *);
30105 	void (*dealloc_ucontext)(struct ib_ucontext *);
30106 	int (*mmap)(struct ib_ucontext *, struct vm_area_struct *);
30107 	void (*mmap_free)(struct rdma_user_mmap_entry *);
30108 	void (*disassociate_ucontext)(struct ib_ucontext *);
30109 	int (*alloc_pd)(struct ib_pd *, struct ib_udata *);
30110 	int (*dealloc_pd)(struct ib_pd *, struct ib_udata *);
30111 	int (*create_ah)(struct ib_ah *, struct rdma_ah_init_attr *, struct ib_udata *);
30112 	int (*create_user_ah)(struct ib_ah *, struct rdma_ah_init_attr *, struct ib_udata *);
30113 	int (*modify_ah)(struct ib_ah *, struct rdma_ah_attr *);
30114 	int (*query_ah)(struct ib_ah *, struct rdma_ah_attr *);
30115 	int (*destroy_ah)(struct ib_ah *, u32);
30116 	int (*create_srq)(struct ib_srq *, struct ib_srq_init_attr *, struct ib_udata *);
30117 	int (*modify_srq)(struct ib_srq *, struct ib_srq_attr *, enum ib_srq_attr_mask, struct ib_udata *);
30118 	int (*query_srq)(struct ib_srq *, struct ib_srq_attr *);
30119 	int (*destroy_srq)(struct ib_srq *, struct ib_udata *);
30120 	int (*create_qp)(struct ib_qp *, struct ib_qp_init_attr *, struct ib_udata *);
30121 	int (*modify_qp)(struct ib_qp *, struct ib_qp_attr *, int, struct ib_udata *);
30122 	int (*query_qp)(struct ib_qp *, struct ib_qp_attr *, int, struct ib_qp_init_attr *);
30123 	int (*destroy_qp)(struct ib_qp *, struct ib_udata *);
30124 	int (*create_cq)(struct ib_cq *, const struct ib_cq_init_attr *, struct ib_udata *);
30125 	int (*modify_cq)(struct ib_cq *, u16, u16);
30126 	int (*destroy_cq)(struct ib_cq *, struct ib_udata *);
30127 	int (*resize_cq)(struct ib_cq *, int, struct ib_udata *);
30128 	struct ib_mr * (*get_dma_mr)(struct ib_pd *, int);
30129 	struct ib_mr * (*reg_user_mr)(struct ib_pd *, u64, u64, u64, int, struct ib_udata *);
30130 	struct ib_mr * (*reg_user_mr_dmabuf)(struct ib_pd *, u64, u64, u64, int, int, struct ib_udata *);
30131 	struct ib_mr * (*rereg_user_mr)(struct ib_mr *, int, u64, u64, u64, int, struct ib_pd *, struct ib_udata *);
30132 	int (*dereg_mr)(struct ib_mr *, struct ib_udata *);
30133 	struct ib_mr * (*alloc_mr)(struct ib_pd *, enum ib_mr_type, u32);
30134 	struct ib_mr * (*alloc_mr_integrity)(struct ib_pd *, u32, u32);
30135 	int (*advise_mr)(struct ib_pd *, enum ib_uverbs_advise_mr_advice, u32, struct ib_sge *, u32, struct uverbs_attr_bundle *);
30136 	int (*map_mr_sg)(struct ib_mr *, struct scatterlist *, int, unsigned int *);
30137 	int (*check_mr_status)(struct ib_mr *, u32, struct ib_mr_status *);
30138 	int (*alloc_mw)(struct ib_mw *, struct ib_udata *);
30139 	int (*dealloc_mw)(struct ib_mw *);
30140 	int (*attach_mcast)(struct ib_qp *, union ib_gid *, u16);
30141 	int (*detach_mcast)(struct ib_qp *, union ib_gid *, u16);
30142 	int (*alloc_xrcd)(struct ib_xrcd *, struct ib_udata *);
30143 	int (*dealloc_xrcd)(struct ib_xrcd *, struct ib_udata *);
30144 	struct ib_flow * (*create_flow)(struct ib_qp *, struct ib_flow_attr *, struct ib_udata *);
30145 	int (*destroy_flow)(struct ib_flow *);
30146 	int (*destroy_flow_action)(struct ib_flow_action *);
30147 	int (*set_vf_link_state)(struct ib_device *, int, u32, int);
30148 	int (*get_vf_config)(struct ib_device *, int, u32, struct ifla_vf_info *);
30149 	int (*get_vf_stats)(struct ib_device *, int, u32, struct ifla_vf_stats *);
30150 	int (*get_vf_guid)(struct ib_device *, int, u32, struct ifla_vf_guid *, struct ifla_vf_guid *);
30151 	int (*set_vf_guid)(struct ib_device *, int, u32, u64, int);
30152 	struct ib_wq * (*create_wq)(struct ib_pd *, struct ib_wq_init_attr *, struct ib_udata *);
30153 	int (*destroy_wq)(struct ib_wq *, struct ib_udata *);
30154 	int (*modify_wq)(struct ib_wq *, struct ib_wq_attr *, u32, struct ib_udata *);
30155 	int (*create_rwq_ind_table)(struct ib_rwq_ind_table *, struct ib_rwq_ind_table_init_attr *, struct ib_udata *);
30156 	int (*destroy_rwq_ind_table)(struct ib_rwq_ind_table *);
30157 	struct ib_dm * (*alloc_dm)(struct ib_device *, struct ib_ucontext *, struct ib_dm_alloc_attr *, struct uverbs_attr_bundle *);
30158 	int (*dealloc_dm)(struct ib_dm *, struct uverbs_attr_bundle *);
30159 	struct ib_mr * (*reg_dm_mr)(struct ib_pd *, struct ib_dm *, struct ib_dm_mr_attr *, struct uverbs_attr_bundle *);
30160 	int (*create_counters)(struct ib_counters *, struct uverbs_attr_bundle *);
30161 	int (*destroy_counters)(struct ib_counters *);
30162 	int (*read_counters)(struct ib_counters *, struct ib_counters_read_attr *, struct uverbs_attr_bundle *);
30163 	int (*map_mr_sg_pi)(struct ib_mr *, struct scatterlist *, int, unsigned int *, struct scatterlist *, int, unsigned int *);
30164 	struct rdma_hw_stats * (*alloc_hw_device_stats)(struct ib_device *);
30165 	struct rdma_hw_stats * (*alloc_hw_port_stats)(struct ib_device *, u32);
30166 	int (*get_hw_stats)(struct ib_device *, struct rdma_hw_stats *, u32, int);
30167 	int (*modify_hw_stat)(struct ib_device *, u32, unsigned int, bool);
30168 	int (*fill_res_mr_entry)(struct sk_buff *, struct ib_mr *);
30169 	int (*fill_res_mr_entry_raw)(struct sk_buff *, struct ib_mr *);
30170 	int (*fill_res_cq_entry)(struct sk_buff *, struct ib_cq *);
30171 	int (*fill_res_cq_entry_raw)(struct sk_buff *, struct ib_cq *);
30172 	int (*fill_res_qp_entry)(struct sk_buff *, struct ib_qp *);
30173 	int (*fill_res_qp_entry_raw)(struct sk_buff *, struct ib_qp *);
30174 	int (*fill_res_cm_id_entry)(struct sk_buff *, struct rdma_cm_id *);
30175 	int (*enable_driver)(struct ib_device *);
30176 	void (*dealloc_driver)(struct ib_device *);
30177 	void (*iw_add_ref)(struct ib_qp *);
30178 	void (*iw_rem_ref)(struct ib_qp *);
30179 	struct ib_qp * (*iw_get_qp)(struct ib_device *, int);
30180 	int (*iw_connect)(struct iw_cm_id *, struct iw_cm_conn_param *);
30181 	int (*iw_accept)(struct iw_cm_id *, struct iw_cm_conn_param *);
30182 	int (*iw_reject)(struct iw_cm_id *, const void *, u8);
30183 	int (*iw_create_listen)(struct iw_cm_id *, int);
30184 	int (*iw_destroy_listen)(struct iw_cm_id *);
30185 	int (*counter_bind_qp)(struct rdma_counter *, struct ib_qp *);
30186 	int (*counter_unbind_qp)(struct ib_qp *);
30187 	int (*counter_dealloc)(struct rdma_counter *);
30188 	struct rdma_hw_stats * (*counter_alloc_stats)(struct rdma_counter *);
30189 	int (*counter_update_stats)(struct rdma_counter *);
30190 	int (*fill_stat_mr_entry)(struct sk_buff *, struct ib_mr *);
30191 	int (*query_ucontext)(struct ib_ucontext *, struct uverbs_attr_bundle *);
30192 	int (*get_numa_node)(struct ib_device *);
30193 	size_t size_ib_ah;
30194 	size_t size_ib_counters;
30195 	size_t size_ib_cq;
30196 	size_t size_ib_mw;
30197 	size_t size_ib_pd;
30198 	size_t size_ib_qp;
30199 	size_t size_ib_rwq_ind_table;
30200 	size_t size_ib_srq;
30201 	size_t size_ib_ucontext;
30202 	size_t size_ib_xrcd;
30203 };
30204 
30205 struct ib_core_device {
30206 	struct device dev;
30207 	possible_net_t rdma_net;
30208 	struct kobject *ports_kobj;
30209 	struct list_head port_list;
30210 	struct ib_device *owner;
30211 };
30212 
30213 enum ib_atomic_cap {
30214 	IB_ATOMIC_NONE = 0,
30215 	IB_ATOMIC_HCA = 1,
30216 	IB_ATOMIC_GLOB = 2,
30217 };
30218 
30219 struct ib_odp_caps {
30220 	uint64_t general_caps;
30221 	struct {
30222 		uint32_t rc_odp_caps;
30223 		uint32_t uc_odp_caps;
30224 		uint32_t ud_odp_caps;
30225 		uint32_t xrc_odp_caps;
30226 	} per_transport_caps;
30227 };
30228 
30229 struct ib_rss_caps {
30230 	u32 supported_qpts;
30231 	u32 max_rwq_indirection_tables;
30232 	u32 max_rwq_indirection_table_size;
30233 };
30234 
30235 struct ib_tm_caps {
30236 	u32 max_rndv_hdr_size;
30237 	u32 max_num_tags;
30238 	u32 flags;
30239 	u32 max_ops;
30240 	u32 max_sge;
30241 };
30242 
30243 struct ib_cq_caps {
30244 	u16 max_cq_moderation_count;
30245 	u16 max_cq_moderation_period;
30246 };
30247 
30248 struct ib_device_attr {
30249 	u64 fw_ver;
30250 	__be64 sys_image_guid;
30251 	u64 max_mr_size;
30252 	u64 page_size_cap;
30253 	u32 vendor_id;
30254 	u32 vendor_part_id;
30255 	u32 hw_ver;
30256 	int max_qp;
30257 	int max_qp_wr;
30258 	u64 device_cap_flags;
30259 	u64 kernel_cap_flags;
30260 	int max_send_sge;
30261 	int max_recv_sge;
30262 	int max_sge_rd;
30263 	int max_cq;
30264 	int max_cqe;
30265 	int max_mr;
30266 	int max_pd;
30267 	int max_qp_rd_atom;
30268 	int max_ee_rd_atom;
30269 	int max_res_rd_atom;
30270 	int max_qp_init_rd_atom;
30271 	int max_ee_init_rd_atom;
30272 	enum ib_atomic_cap atomic_cap;
30273 	enum ib_atomic_cap masked_atomic_cap;
30274 	int max_ee;
30275 	int max_rdd;
30276 	int max_mw;
30277 	int max_raw_ipv6_qp;
30278 	int max_raw_ethy_qp;
30279 	int max_mcast_grp;
30280 	int max_mcast_qp_attach;
30281 	int max_total_mcast_qp_attach;
30282 	int max_ah;
30283 	int max_srq;
30284 	int max_srq_wr;
30285 	int max_srq_sge;
30286 	unsigned int max_fast_reg_page_list_len;
30287 	unsigned int max_pi_fast_reg_page_list_len;
30288 	u16 max_pkeys;
30289 	u8 local_ca_ack_delay;
30290 	int sig_prot_cap;
30291 	int sig_guard_cap;
30292 	struct ib_odp_caps odp_caps;
30293 	uint64_t timestamp_mask;
30294 	uint64_t hca_core_clock;
30295 	struct ib_rss_caps rss_caps;
30296 	u32 max_wq_type_rq;
30297 	u32 raw_packet_caps;
30298 	struct ib_tm_caps tm_caps;
30299 	struct ib_cq_caps cq_caps;
30300 	u64 max_dm_size;
30301 	u32 max_sgl_rd;
30302 };
30303 
30304 struct hw_stats_device_data;
30305 
30306 struct rdma_restrack_root;
30307 
30308 struct uapi_definition;
30309 
30310 struct ib_port_data;
30311 
30312 struct ib_device {
30313 	struct device *dma_device;
30314 	struct ib_device_ops ops;
30315 	char name[64];
30316 	struct callback_head callback_head;
30317 	struct list_head event_handler_list;
30318 	struct rw_semaphore event_handler_rwsem;
30319 	spinlock_t qp_open_list_lock;
30320 	struct rw_semaphore client_data_rwsem;
30321 	struct xarray client_data;
30322 	struct mutex unregistration_lock;
30323 	rwlock_t cache_lock;
30324 	struct ib_port_data *port_data;
30325 	int num_comp_vectors;
30326 	union {
30327 		struct device dev;
30328 		struct ib_core_device coredev;
30329 	};
30330 	const struct attribute_group *groups[4];
30331 	u64 uverbs_cmd_mask;
30332 	char node_desc[64];
30333 	__be64 node_guid;
30334 	u32 local_dma_lkey;
30335 	u16 is_switch: 1;
30336 	u16 kverbs_provider: 1;
30337 	u16 use_cq_dim: 1;
30338 	u8 node_type;
30339 	u32 phys_port_cnt;
30340 	struct ib_device_attr attrs;
30341 	struct hw_stats_device_data *hw_stats_data;
30342 	struct rdmacg_device cg_device;
30343 	u32 index;
30344 	spinlock_t cq_pools_lock;
30345 	struct list_head cq_pools[3];
30346 	struct rdma_restrack_root *res;
30347 	const struct uapi_definition *driver_def;
30348 	refcount_t refcount;
30349 	struct completion unreg_completion;
30350 	struct work_struct unregistration_work;
30351 	const struct rdma_link_ops *link_ops;
30352 	struct mutex compat_devs_mutex;
30353 	struct xarray compat_devs;
30354 	char iw_ifname[16];
30355 	u32 iw_driver_flags;
30356 	u32 lag_flags;
30357 };
30358 
30359 enum ib_signature_type {
30360 	IB_SIG_TYPE_NONE = 0,
30361 	IB_SIG_TYPE_T10_DIF = 1,
30362 };
30363 
30364 enum ib_t10_dif_bg_type {
30365 	IB_T10DIF_CRC = 0,
30366 	IB_T10DIF_CSUM = 1,
30367 };
30368 
30369 struct ib_t10_dif_domain {
30370 	enum ib_t10_dif_bg_type bg_type;
30371 	u16 pi_interval;
30372 	u16 bg;
30373 	u16 app_tag;
30374 	u32 ref_tag;
30375 	bool ref_remap;
30376 	bool app_escape;
30377 	bool ref_escape;
30378 	u16 apptag_check_mask;
30379 };
30380 
30381 struct ib_sig_domain {
30382 	enum ib_signature_type sig_type;
30383 	union {
30384 		struct ib_t10_dif_domain dif;
30385 	} sig;
30386 };
30387 
30388 struct ib_sig_attrs {
30389 	u8 check_mask;
30390 	struct ib_sig_domain mem;
30391 	struct ib_sig_domain wire;
30392 	int meta_length;
30393 };
30394 
30395 enum ib_sig_err_type {
30396 	IB_SIG_BAD_GUARD = 0,
30397 	IB_SIG_BAD_REFTAG = 1,
30398 	IB_SIG_BAD_APPTAG = 2,
30399 };
30400 
30401 struct ib_sig_err {
30402 	enum ib_sig_err_type err_type;
30403 	u32 expected;
30404 	u32 actual;
30405 	u64 sig_err_offset;
30406 	u32 key;
30407 };
30408 
30409 union ib_gid {
30410 	u8 raw[16];
30411 	struct {
30412 		__be64 subnet_prefix;
30413 		__be64 interface_id;
30414 	} global;
30415 };
30416 
30417 enum ib_gid_type {
30418 	IB_GID_TYPE_IB = 0,
30419 	IB_GID_TYPE_ROCE = 1,
30420 	IB_GID_TYPE_ROCE_UDP_ENCAP = 2,
30421 	IB_GID_TYPE_SIZE = 3,
30422 };
30423 
30424 struct ib_gid_attr {
30425 	struct net_device *ndev;
30426 	struct ib_device *device;
30427 	union ib_gid gid;
30428 	enum ib_gid_type gid_type;
30429 	u16 index;
30430 	u32 port_num;
30431 };
30432 
30433 struct ib_cq_init_attr {
30434 	unsigned int cqe;
30435 	u32 comp_vector;
30436 	u32 flags;
30437 };
30438 
30439 struct ib_dm_mr_attr {
30440 	u64 length;
30441 	u64 offset;
30442 	u32 access_flags;
30443 };
30444 
30445 struct ib_dm_alloc_attr {
30446 	u64 length;
30447 	u32 alignment;
30448 	u32 flags;
30449 };
30450 
30451 enum ib_mtu {
30452 	IB_MTU_256 = 1,
30453 	IB_MTU_512 = 2,
30454 	IB_MTU_1024 = 3,
30455 	IB_MTU_2048 = 4,
30456 	IB_MTU_4096 = 5,
30457 };
30458 
30459 enum ib_port_state {
30460 	IB_PORT_NOP = 0,
30461 	IB_PORT_DOWN = 1,
30462 	IB_PORT_INIT = 2,
30463 	IB_PORT_ARMED = 3,
30464 	IB_PORT_ACTIVE = 4,
30465 	IB_PORT_ACTIVE_DEFER = 5,
30466 };
30467 
30468 struct rdma_stat_desc {
30469 	const char *name;
30470 	unsigned int flags;
30471 	const void *priv;
30472 };
30473 
30474 struct ib_port_attr {
30475 	u64 subnet_prefix;
30476 	enum ib_port_state state;
30477 	enum ib_mtu max_mtu;
30478 	enum ib_mtu active_mtu;
30479 	u32 phys_mtu;
30480 	int gid_tbl_len;
30481 	unsigned int ip_gids: 1;
30482 	u32 port_cap_flags;
30483 	u32 max_msg_sz;
30484 	u32 bad_pkey_cntr;
30485 	u32 qkey_viol_cntr;
30486 	u16 pkey_tbl_len;
30487 	u32 sm_lid;
30488 	u32 lid;
30489 	u8 lmc;
30490 	u8 max_vl_num;
30491 	u8 sm_sl;
30492 	u8 subnet_timeout;
30493 	u8 init_type_reply;
30494 	u8 active_width;
30495 	u16 active_speed;
30496 	u8 phys_state;
30497 	u16 port_cap_flags2;
30498 };
30499 
30500 struct ib_device_modify {
30501 	u64 sys_image_guid;
30502 	char node_desc[64];
30503 };
30504 
30505 struct ib_port_modify {
30506 	u32 set_port_cap_mask;
30507 	u32 clr_port_cap_mask;
30508 	u8 init_type;
30509 };
30510 
30511 enum ib_event_type {
30512 	IB_EVENT_CQ_ERR = 0,
30513 	IB_EVENT_QP_FATAL = 1,
30514 	IB_EVENT_QP_REQ_ERR = 2,
30515 	IB_EVENT_QP_ACCESS_ERR = 3,
30516 	IB_EVENT_COMM_EST = 4,
30517 	IB_EVENT_SQ_DRAINED = 5,
30518 	IB_EVENT_PATH_MIG = 6,
30519 	IB_EVENT_PATH_MIG_ERR = 7,
30520 	IB_EVENT_DEVICE_FATAL = 8,
30521 	IB_EVENT_PORT_ACTIVE = 9,
30522 	IB_EVENT_PORT_ERR = 10,
30523 	IB_EVENT_LID_CHANGE = 11,
30524 	IB_EVENT_PKEY_CHANGE = 12,
30525 	IB_EVENT_SM_CHANGE = 13,
30526 	IB_EVENT_SRQ_ERR = 14,
30527 	IB_EVENT_SRQ_LIMIT_REACHED = 15,
30528 	IB_EVENT_QP_LAST_WQE_REACHED = 16,
30529 	IB_EVENT_CLIENT_REREGISTER = 17,
30530 	IB_EVENT_GID_CHANGE = 18,
30531 	IB_EVENT_WQ_FATAL = 19,
30532 };
30533 
30534 struct ib_ucq_object;
30535 
30536 typedef void (*ib_comp_handler)(struct ib_cq *, void *);
30537 
30538 struct ib_event;
30539 
30540 struct ib_cq {
30541 	struct ib_device *device;
30542 	struct ib_ucq_object *uobject;
30543 	ib_comp_handler comp_handler;
30544 	void (*event_handler)(struct ib_event *, void *);
30545 	void *cq_context;
30546 	int cqe;
30547 	unsigned int cqe_used;
30548 	atomic_t usecnt;
30549 	enum ib_poll_context poll_ctx;
30550 	struct ib_wc *wc;
30551 	struct list_head pool_entry;
30552 	union {
30553 		struct irq_poll iop;
30554 		struct work_struct work;
30555 	};
30556 	struct workqueue_struct *comp_wq;
30557 	struct dim *dim;
30558 	ktime_t timestamp;
30559 	u8 interrupt: 1;
30560 	u8 shared: 1;
30561 	unsigned int comp_vector;
30562 	struct rdma_restrack_entry res;
30563 };
30564 
30565 struct ib_uqp_object;
30566 
30567 enum ib_qp_type {
30568 	IB_QPT_SMI = 0,
30569 	IB_QPT_GSI = 1,
30570 	IB_QPT_RC = 2,
30571 	IB_QPT_UC = 3,
30572 	IB_QPT_UD = 4,
30573 	IB_QPT_RAW_IPV6 = 5,
30574 	IB_QPT_RAW_ETHERTYPE = 6,
30575 	IB_QPT_RAW_PACKET = 8,
30576 	IB_QPT_XRC_INI = 9,
30577 	IB_QPT_XRC_TGT = 10,
30578 	IB_QPT_MAX = 11,
30579 	IB_QPT_DRIVER = 255,
30580 	IB_QPT_RESERVED1 = 4096,
30581 	IB_QPT_RESERVED2 = 4097,
30582 	IB_QPT_RESERVED3 = 4098,
30583 	IB_QPT_RESERVED4 = 4099,
30584 	IB_QPT_RESERVED5 = 4100,
30585 	IB_QPT_RESERVED6 = 4101,
30586 	IB_QPT_RESERVED7 = 4102,
30587 	IB_QPT_RESERVED8 = 4103,
30588 	IB_QPT_RESERVED9 = 4104,
30589 	IB_QPT_RESERVED10 = 4105,
30590 };
30591 
30592 struct ib_qp_security;
30593 
30594 struct ib_qp {
30595 	struct ib_device *device;
30596 	struct ib_pd *pd;
30597 	struct ib_cq *send_cq;
30598 	struct ib_cq *recv_cq;
30599 	spinlock_t mr_lock;
30600 	int mrs_used;
30601 	struct list_head rdma_mrs;
30602 	struct list_head sig_mrs;
30603 	struct ib_srq *srq;
30604 	struct ib_xrcd *xrcd;
30605 	struct list_head xrcd_list;
30606 	atomic_t usecnt;
30607 	struct list_head open_list;
30608 	struct ib_qp *real_qp;
30609 	struct ib_uqp_object *uobject;
30610 	void (*event_handler)(struct ib_event *, void *);
30611 	void *qp_context;
30612 	const struct ib_gid_attr *av_sgid_attr;
30613 	const struct ib_gid_attr *alt_path_sgid_attr;
30614 	u32 qp_num;
30615 	u32 max_write_sge;
30616 	u32 max_read_sge;
30617 	enum ib_qp_type qp_type;
30618 	struct ib_rwq_ind_table *rwq_ind_tbl;
30619 	struct ib_qp_security *qp_sec;
30620 	u32 port;
30621 	bool integrity_en;
30622 	struct rdma_restrack_entry res;
30623 	struct rdma_counter *counter;
30624 };
30625 
30626 struct ib_usrq_object;
30627 
30628 enum ib_srq_type {
30629 	IB_SRQT_BASIC = 0,
30630 	IB_SRQT_XRC = 1,
30631 	IB_SRQT_TM = 2,
30632 };
30633 
30634 struct ib_srq {
30635 	struct ib_device *device;
30636 	struct ib_pd *pd;
30637 	struct ib_usrq_object *uobject;
30638 	void (*event_handler)(struct ib_event *, void *);
30639 	void *srq_context;
30640 	enum ib_srq_type srq_type;
30641 	atomic_t usecnt;
30642 	struct {
30643 		struct ib_cq *cq;
30644 		union {
30645 			struct {
30646 				struct ib_xrcd *xrcd;
30647 				u32 srq_num;
30648 			} xrc;
30649 		};
30650 	} ext;
30651 	struct rdma_restrack_entry res;
30652 };
30653 
30654 struct ib_uwq_object;
30655 
30656 enum ib_wq_state {
30657 	IB_WQS_RESET = 0,
30658 	IB_WQS_RDY = 1,
30659 	IB_WQS_ERR = 2,
30660 };
30661 
30662 enum ib_wq_type {
30663 	IB_WQT_RQ = 0,
30664 };
30665 
30666 struct ib_wq {
30667 	struct ib_device *device;
30668 	struct ib_uwq_object *uobject;
30669 	void *wq_context;
30670 	void (*event_handler)(struct ib_event *, void *);
30671 	struct ib_pd *pd;
30672 	struct ib_cq *cq;
30673 	u32 wq_num;
30674 	enum ib_wq_state state;
30675 	enum ib_wq_type wq_type;
30676 	atomic_t usecnt;
30677 };
30678 
30679 struct ib_event {
30680 	struct ib_device *device;
30681 	union {
30682 		struct ib_cq *cq;
30683 		struct ib_qp *qp;
30684 		struct ib_srq *srq;
30685 		struct ib_wq *wq;
30686 		u32 port_num;
30687 	} element;
30688 	enum ib_event_type event;
30689 };
30690 
30691 struct ib_global_route {
30692 	const struct ib_gid_attr *sgid_attr;
30693 	union ib_gid dgid;
30694 	u32 flow_label;
30695 	u8 sgid_index;
30696 	u8 hop_limit;
30697 	u8 traffic_class;
30698 };
30699 
30700 struct ib_grh {
30701 	__be32 version_tclass_flow;
30702 	__be16 paylen;
30703 	u8 next_hdr;
30704 	u8 hop_limit;
30705 	union ib_gid sgid;
30706 	union ib_gid dgid;
30707 };
30708 
30709 struct ib_mr_status {
30710 	u32 fail_status;
30711 	struct ib_sig_err sig_err;
30712 };
30713 
30714 struct rdma_ah_init_attr {
30715 	struct rdma_ah_attr *ah_attr;
30716 	u32 flags;
30717 	struct net_device *xmit_slave;
30718 };
30719 
30720 enum rdma_ah_attr_type {
30721 	RDMA_AH_ATTR_TYPE_UNDEFINED = 0,
30722 	RDMA_AH_ATTR_TYPE_IB = 1,
30723 	RDMA_AH_ATTR_TYPE_ROCE = 2,
30724 	RDMA_AH_ATTR_TYPE_OPA = 3,
30725 };
30726 
30727 struct ib_ah_attr {
30728 	u16 dlid;
30729 	u8 src_path_bits;
30730 };
30731 
30732 struct roce_ah_attr {
30733 	u8 dmac[6];
30734 };
30735 
30736 struct opa_ah_attr {
30737 	u32 dlid;
30738 	u8 src_path_bits;
30739 	bool make_grd;
30740 };
30741 
30742 struct rdma_ah_attr {
30743 	struct ib_global_route grh;
30744 	u8 sl;
30745 	u8 static_rate;
30746 	u32 port_num;
30747 	u8 ah_flags;
30748 	enum rdma_ah_attr_type type;
30749 	union {
30750 		struct ib_ah_attr ib;
30751 		struct roce_ah_attr roce;
30752 		struct opa_ah_attr opa;
30753 	};
30754 };
30755 
30756 enum ib_wc_status {
30757 	IB_WC_SUCCESS = 0,
30758 	IB_WC_LOC_LEN_ERR = 1,
30759 	IB_WC_LOC_QP_OP_ERR = 2,
30760 	IB_WC_LOC_EEC_OP_ERR = 3,
30761 	IB_WC_LOC_PROT_ERR = 4,
30762 	IB_WC_WR_FLUSH_ERR = 5,
30763 	IB_WC_MW_BIND_ERR = 6,
30764 	IB_WC_BAD_RESP_ERR = 7,
30765 	IB_WC_LOC_ACCESS_ERR = 8,
30766 	IB_WC_REM_INV_REQ_ERR = 9,
30767 	IB_WC_REM_ACCESS_ERR = 10,
30768 	IB_WC_REM_OP_ERR = 11,
30769 	IB_WC_RETRY_EXC_ERR = 12,
30770 	IB_WC_RNR_RETRY_EXC_ERR = 13,
30771 	IB_WC_LOC_RDD_VIOL_ERR = 14,
30772 	IB_WC_REM_INV_RD_REQ_ERR = 15,
30773 	IB_WC_REM_ABORT_ERR = 16,
30774 	IB_WC_INV_EECN_ERR = 17,
30775 	IB_WC_INV_EEC_STATE_ERR = 18,
30776 	IB_WC_FATAL_ERR = 19,
30777 	IB_WC_RESP_TIMEOUT_ERR = 20,
30778 	IB_WC_GENERAL_ERR = 21,
30779 };
30780 
30781 enum ib_wc_opcode {
30782 	IB_WC_SEND = 0,
30783 	IB_WC_RDMA_WRITE = 1,
30784 	IB_WC_RDMA_READ = 2,
30785 	IB_WC_COMP_SWAP = 3,
30786 	IB_WC_FETCH_ADD = 4,
30787 	IB_WC_BIND_MW = 5,
30788 	IB_WC_LOCAL_INV = 6,
30789 	IB_WC_LSO = 7,
30790 	IB_WC_ATOMIC_WRITE = 9,
30791 	IB_WC_REG_MR = 10,
30792 	IB_WC_MASKED_COMP_SWAP = 11,
30793 	IB_WC_MASKED_FETCH_ADD = 12,
30794 	IB_WC_FLUSH = 8,
30795 	IB_WC_RECV = 128,
30796 	IB_WC_RECV_RDMA_WITH_IMM = 129,
30797 };
30798 
30799 struct ib_cqe {
30800 	void (*done)(struct ib_cq *, struct ib_wc *);
30801 };
30802 
30803 struct ib_wc {
30804 	union {
30805 		u64 wr_id;
30806 		struct ib_cqe *wr_cqe;
30807 	};
30808 	enum ib_wc_status status;
30809 	enum ib_wc_opcode opcode;
30810 	u32 vendor_err;
30811 	u32 byte_len;
30812 	struct ib_qp *qp;
30813 	union {
30814 		__be32 imm_data;
30815 		u32 invalidate_rkey;
30816 	} ex;
30817 	u32 src_qp;
30818 	u32 slid;
30819 	int wc_flags;
30820 	u16 pkey_index;
30821 	u8 sl;
30822 	u8 dlid_path_bits;
30823 	u32 port_num;
30824 	u8 smac[6];
30825 	u16 vlan_id;
30826 	u8 network_hdr_type;
30827 };
30828 
30829 struct ib_srq_attr {
30830 	u32 max_wr;
30831 	u32 max_sge;
30832 	u32 srq_limit;
30833 };
30834 
30835 struct ib_xrcd {
30836 	struct ib_device *device;
30837 	atomic_t usecnt;
30838 	struct inode *inode;
30839 	struct rw_semaphore tgt_qps_rwsem;
30840 	struct xarray tgt_qps;
30841 };
30842 
30843 struct ib_srq_init_attr {
30844 	void (*event_handler)(struct ib_event *, void *);
30845 	void *srq_context;
30846 	struct ib_srq_attr attr;
30847 	enum ib_srq_type srq_type;
30848 	struct {
30849 		struct ib_cq *cq;
30850 		union {
30851 			struct {
30852 				struct ib_xrcd *xrcd;
30853 			} xrc;
30854 			struct {
30855 				u32 max_num_tags;
30856 			} tag_matching;
30857 		};
30858 	} ext;
30859 };
30860 
30861 struct ib_qp_cap {
30862 	u32 max_send_wr;
30863 	u32 max_recv_wr;
30864 	u32 max_send_sge;
30865 	u32 max_recv_sge;
30866 	u32 max_inline_data;
30867 	u32 max_rdma_ctxs;
30868 };
30869 
30870 enum ib_sig_type {
30871 	IB_SIGNAL_ALL_WR = 0,
30872 	IB_SIGNAL_REQ_WR = 1,
30873 };
30874 
30875 struct ib_qp_init_attr {
30876 	void (*event_handler)(struct ib_event *, void *);
30877 	void *qp_context;
30878 	struct ib_cq *send_cq;
30879 	struct ib_cq *recv_cq;
30880 	struct ib_srq *srq;
30881 	struct ib_xrcd *xrcd;
30882 	struct ib_qp_cap cap;
30883 	enum ib_sig_type sq_sig_type;
30884 	enum ib_qp_type qp_type;
30885 	u32 create_flags;
30886 	u32 port_num;
30887 	struct ib_rwq_ind_table *rwq_ind_tbl;
30888 	u32 source_qpn;
30889 };
30890 
30891 struct ib_uobject;
30892 
30893 struct ib_rwq_ind_table {
30894 	struct ib_device *device;
30895 	struct ib_uobject *uobject;
30896 	atomic_t usecnt;
30897 	u32 ind_tbl_num;
30898 	u32 log_ind_tbl_size;
30899 	struct ib_wq **ind_tbl;
30900 };
30901 
30902 enum ib_qp_state {
30903 	IB_QPS_RESET = 0,
30904 	IB_QPS_INIT = 1,
30905 	IB_QPS_RTR = 2,
30906 	IB_QPS_RTS = 3,
30907 	IB_QPS_SQD = 4,
30908 	IB_QPS_SQE = 5,
30909 	IB_QPS_ERR = 6,
30910 };
30911 
30912 enum ib_mig_state {
30913 	IB_MIG_MIGRATED = 0,
30914 	IB_MIG_REARM = 1,
30915 	IB_MIG_ARMED = 2,
30916 };
30917 
30918 enum ib_mw_type {
30919 	IB_MW_TYPE_1 = 1,
30920 	IB_MW_TYPE_2 = 2,
30921 };
30922 
30923 struct ib_qp_attr {
30924 	enum ib_qp_state qp_state;
30925 	enum ib_qp_state cur_qp_state;
30926 	enum ib_mtu path_mtu;
30927 	enum ib_mig_state path_mig_state;
30928 	u32 qkey;
30929 	u32 rq_psn;
30930 	u32 sq_psn;
30931 	u32 dest_qp_num;
30932 	int qp_access_flags;
30933 	struct ib_qp_cap cap;
30934 	struct rdma_ah_attr ah_attr;
30935 	struct rdma_ah_attr alt_ah_attr;
30936 	u16 pkey_index;
30937 	u16 alt_pkey_index;
30938 	u8 en_sqd_async_notify;
30939 	u8 sq_draining;
30940 	u8 max_rd_atomic;
30941 	u8 max_dest_rd_atomic;
30942 	u8 min_rnr_timer;
30943 	u32 port_num;
30944 	u8 timeout;
30945 	u8 retry_cnt;
30946 	u8 rnr_retry;
30947 	u32 alt_port_num;
30948 	u8 alt_timeout;
30949 	u32 rate_limit;
30950 	struct net_device *xmit_slave;
30951 };
30952 
30953 enum ib_wr_opcode {
30954 	IB_WR_RDMA_WRITE = 0,
30955 	IB_WR_RDMA_WRITE_WITH_IMM = 1,
30956 	IB_WR_SEND = 2,
30957 	IB_WR_SEND_WITH_IMM = 3,
30958 	IB_WR_RDMA_READ = 4,
30959 	IB_WR_ATOMIC_CMP_AND_SWP = 5,
30960 	IB_WR_ATOMIC_FETCH_AND_ADD = 6,
30961 	IB_WR_BIND_MW = 8,
30962 	IB_WR_LSO = 10,
30963 	IB_WR_SEND_WITH_INV = 9,
30964 	IB_WR_RDMA_READ_WITH_INV = 11,
30965 	IB_WR_LOCAL_INV = 7,
30966 	IB_WR_MASKED_ATOMIC_CMP_AND_SWP = 12,
30967 	IB_WR_MASKED_ATOMIC_FETCH_AND_ADD = 13,
30968 	IB_WR_FLUSH = 14,
30969 	IB_WR_ATOMIC_WRITE = 15,
30970 	IB_WR_REG_MR = 32,
30971 	IB_WR_REG_MR_INTEGRITY = 33,
30972 	IB_WR_RESERVED1 = 240,
30973 	IB_WR_RESERVED2 = 241,
30974 	IB_WR_RESERVED3 = 242,
30975 	IB_WR_RESERVED4 = 243,
30976 	IB_WR_RESERVED5 = 244,
30977 	IB_WR_RESERVED6 = 245,
30978 	IB_WR_RESERVED7 = 246,
30979 	IB_WR_RESERVED8 = 247,
30980 	IB_WR_RESERVED9 = 248,
30981 	IB_WR_RESERVED10 = 249,
30982 };
30983 
30984 struct ib_sge {
30985 	u64 addr;
30986 	u32 length;
30987 	u32 lkey;
30988 };
30989 
30990 struct ib_send_wr {
30991 	struct ib_send_wr *next;
30992 	union {
30993 		u64 wr_id;
30994 		struct ib_cqe *wr_cqe;
30995 	};
30996 	struct ib_sge *sg_list;
30997 	int num_sge;
30998 	enum ib_wr_opcode opcode;
30999 	int send_flags;
31000 	union {
31001 		__be32 imm_data;
31002 		u32 invalidate_rkey;
31003 	} ex;
31004 };
31005 
31006 struct ib_ah {
31007 	struct ib_device *device;
31008 	struct ib_pd *pd;
31009 	struct ib_uobject *uobject;
31010 	const struct ib_gid_attr *sgid_attr;
31011 	enum rdma_ah_attr_type type;
31012 };
31013 
31014 struct ib_mr {
31015 	struct ib_device *device;
31016 	struct ib_pd *pd;
31017 	u32 lkey;
31018 	u32 rkey;
31019 	u64 iova;
31020 	u64 length;
31021 	unsigned int page_size;
31022 	enum ib_mr_type type;
31023 	bool need_inval;
31024 	union {
31025 		struct ib_uobject *uobject;
31026 		struct list_head qp_entry;
31027 	};
31028 	struct ib_dm *dm;
31029 	struct ib_sig_attrs *sig_attrs;
31030 	struct rdma_restrack_entry res;
31031 };
31032 
31033 struct ib_recv_wr {
31034 	struct ib_recv_wr *next;
31035 	union {
31036 		u64 wr_id;
31037 		struct ib_cqe *wr_cqe;
31038 	};
31039 	struct ib_sge *sg_list;
31040 	int num_sge;
31041 };
31042 
31043 struct ib_rdmacg_object {
31044 	struct rdma_cgroup *cg;
31045 };
31046 
31047 struct ib_uverbs_file;
31048 
31049 struct ib_ucontext {
31050 	struct ib_device *device;
31051 	struct ib_uverbs_file *ufile;
31052 	struct ib_rdmacg_object cg_obj;
31053 	struct rdma_restrack_entry res;
31054 	struct xarray mmap_xa;
31055 };
31056 
31057 struct uverbs_api_object;
31058 
31059 struct ib_uobject {
31060 	u64 user_handle;
31061 	struct ib_uverbs_file *ufile;
31062 	struct ib_ucontext *context;
31063 	void *object;
31064 	struct list_head list;
31065 	struct ib_rdmacg_object cg_obj;
31066 	int id;
31067 	struct kref ref;
31068 	atomic_t usecnt;
31069 	struct callback_head rcu;
31070 	const struct uverbs_api_object *uapi_object;
31071 };
31072 
31073 struct ib_udata {
31074 	const void *inbuf;
31075 	void *outbuf;
31076 	size_t inlen;
31077 	size_t outlen;
31078 };
31079 
31080 struct ib_pd {
31081 	u32 local_dma_lkey;
31082 	u32 flags;
31083 	struct ib_device *device;
31084 	struct ib_uobject *uobject;
31085 	atomic_t usecnt;
31086 	u32 unsafe_global_rkey;
31087 	struct ib_mr *__internal_mr;
31088 	struct rdma_restrack_entry res;
31089 };
31090 
31091 struct ib_wq_init_attr {
31092 	void *wq_context;
31093 	enum ib_wq_type wq_type;
31094 	u32 max_wr;
31095 	u32 max_sge;
31096 	struct ib_cq *cq;
31097 	void (*event_handler)(struct ib_event *, void *);
31098 	u32 create_flags;
31099 };
31100 
31101 struct ib_wq_attr {
31102 	enum ib_wq_state wq_state;
31103 	enum ib_wq_state curr_wq_state;
31104 	u32 flags;
31105 	u32 flags_mask;
31106 };
31107 
31108 struct ib_rwq_ind_table_init_attr {
31109 	u32 log_ind_tbl_size;
31110 	struct ib_wq **ind_tbl;
31111 };
31112 
31113 enum port_pkey_state {
31114 	IB_PORT_PKEY_NOT_VALID = 0,
31115 	IB_PORT_PKEY_VALID = 1,
31116 	IB_PORT_PKEY_LISTED = 2,
31117 };
31118 
31119 struct ib_port_pkey {
31120 	enum port_pkey_state state;
31121 	u16 pkey_index;
31122 	u32 port_num;
31123 	struct list_head qp_list;
31124 	struct list_head to_error_list;
31125 	struct ib_qp_security *sec;
31126 };
31127 
31128 struct ib_ports_pkeys;
31129 
31130 struct ib_qp_security {
31131 	struct ib_qp *qp;
31132 	struct ib_device *dev;
31133 	struct mutex mutex;
31134 	struct ib_ports_pkeys *ports_pkeys;
31135 	struct list_head shared_qp_list;
31136 	void *security;
31137 	bool destroying;
31138 	atomic_t error_list_count;
31139 	struct completion error_complete;
31140 	int error_comps_pending;
31141 };
31142 
31143 struct ib_ports_pkeys {
31144 	struct ib_port_pkey main;
31145 	struct ib_port_pkey alt;
31146 };
31147 
31148 struct ib_dm {
31149 	struct ib_device *device;
31150 	u32 length;
31151 	u32 flags;
31152 	struct ib_uobject *uobject;
31153 	atomic_t usecnt;
31154 };
31155 
31156 struct ib_mw {
31157 	struct ib_device *device;
31158 	struct ib_pd *pd;
31159 	struct ib_uobject *uobject;
31160 	u32 rkey;
31161 	enum ib_mw_type type;
31162 };
31163 
31164 enum ib_flow_attr_type {
31165 	IB_FLOW_ATTR_NORMAL = 0,
31166 	IB_FLOW_ATTR_ALL_DEFAULT = 1,
31167 	IB_FLOW_ATTR_MC_DEFAULT = 2,
31168 	IB_FLOW_ATTR_SNIFFER = 3,
31169 };
31170 
31171 enum ib_flow_spec_type {
31172 	IB_FLOW_SPEC_ETH = 32,
31173 	IB_FLOW_SPEC_IB = 34,
31174 	IB_FLOW_SPEC_IPV4 = 48,
31175 	IB_FLOW_SPEC_IPV6 = 49,
31176 	IB_FLOW_SPEC_ESP = 52,
31177 	IB_FLOW_SPEC_TCP = 64,
31178 	IB_FLOW_SPEC_UDP = 65,
31179 	IB_FLOW_SPEC_VXLAN_TUNNEL = 80,
31180 	IB_FLOW_SPEC_GRE = 81,
31181 	IB_FLOW_SPEC_MPLS = 96,
31182 	IB_FLOW_SPEC_INNER = 256,
31183 	IB_FLOW_SPEC_ACTION_TAG = 4096,
31184 	IB_FLOW_SPEC_ACTION_DROP = 4097,
31185 	IB_FLOW_SPEC_ACTION_HANDLE = 4098,
31186 	IB_FLOW_SPEC_ACTION_COUNT = 4099,
31187 };
31188 
31189 struct ib_flow_eth_filter {
31190 	u8 dst_mac[6];
31191 	u8 src_mac[6];
31192 	__be16 ether_type;
31193 	__be16 vlan_tag;
31194 	u8 real_sz[0];
31195 };
31196 
31197 struct ib_flow_spec_eth {
31198 	u32 type;
31199 	u16 size;
31200 	struct ib_flow_eth_filter val;
31201 	struct ib_flow_eth_filter mask;
31202 };
31203 
31204 struct ib_flow_ib_filter {
31205 	__be16 dlid;
31206 	__u8 sl;
31207 	u8 real_sz[0];
31208 };
31209 
31210 struct ib_flow_spec_ib {
31211 	u32 type;
31212 	u16 size;
31213 	struct ib_flow_ib_filter val;
31214 	struct ib_flow_ib_filter mask;
31215 };
31216 
31217 struct ib_flow_ipv4_filter {
31218 	__be32 src_ip;
31219 	__be32 dst_ip;
31220 	u8 proto;
31221 	u8 tos;
31222 	u8 ttl;
31223 	u8 flags;
31224 	u8 real_sz[0];
31225 };
31226 
31227 struct ib_flow_spec_ipv4 {
31228 	u32 type;
31229 	u16 size;
31230 	struct ib_flow_ipv4_filter val;
31231 	struct ib_flow_ipv4_filter mask;
31232 };
31233 
31234 struct ib_flow_ipv6_filter {
31235 	u8 src_ip[16];
31236 	u8 dst_ip[16];
31237 	__be32 flow_label;
31238 	u8 next_hdr;
31239 	u8 traffic_class;
31240 	u8 hop_limit;
31241 	u8 real_sz[0];
31242 };
31243 
31244 struct ib_flow_spec_ipv6 {
31245 	u32 type;
31246 	u16 size;
31247 	struct ib_flow_ipv6_filter val;
31248 	struct ib_flow_ipv6_filter mask;
31249 };
31250 
31251 struct ib_flow_tcp_udp_filter {
31252 	__be16 dst_port;
31253 	__be16 src_port;
31254 	u8 real_sz[0];
31255 };
31256 
31257 struct ib_flow_spec_tcp_udp {
31258 	u32 type;
31259 	u16 size;
31260 	struct ib_flow_tcp_udp_filter val;
31261 	struct ib_flow_tcp_udp_filter mask;
31262 };
31263 
31264 struct ib_flow_tunnel_filter {
31265 	__be32 tunnel_id;
31266 	u8 real_sz[0];
31267 };
31268 
31269 struct ib_flow_spec_tunnel {
31270 	u32 type;
31271 	u16 size;
31272 	struct ib_flow_tunnel_filter val;
31273 	struct ib_flow_tunnel_filter mask;
31274 };
31275 
31276 struct ib_flow_esp_filter {
31277 	__be32 spi;
31278 	__be32 seq;
31279 	u8 real_sz[0];
31280 };
31281 
31282 struct ib_flow_spec_esp {
31283 	u32 type;
31284 	u16 size;
31285 	struct ib_flow_esp_filter val;
31286 	struct ib_flow_esp_filter mask;
31287 };
31288 
31289 struct ib_flow_gre_filter {
31290 	__be16 c_ks_res0_ver;
31291 	__be16 protocol;
31292 	__be32 key;
31293 	u8 real_sz[0];
31294 };
31295 
31296 struct ib_flow_spec_gre {
31297 	u32 type;
31298 	u16 size;
31299 	struct ib_flow_gre_filter val;
31300 	struct ib_flow_gre_filter mask;
31301 };
31302 
31303 struct ib_flow_mpls_filter {
31304 	__be32 tag;
31305 	u8 real_sz[0];
31306 };
31307 
31308 struct ib_flow_spec_mpls {
31309 	u32 type;
31310 	u16 size;
31311 	struct ib_flow_mpls_filter val;
31312 	struct ib_flow_mpls_filter mask;
31313 };
31314 
31315 struct ib_flow_spec_action_tag {
31316 	enum ib_flow_spec_type type;
31317 	u16 size;
31318 	u32 tag_id;
31319 };
31320 
31321 struct ib_flow_spec_action_drop {
31322 	enum ib_flow_spec_type type;
31323 	u16 size;
31324 };
31325 
31326 struct ib_flow_spec_action_handle {
31327 	enum ib_flow_spec_type type;
31328 	u16 size;
31329 	struct ib_flow_action *act;
31330 };
31331 
31332 enum ib_flow_action_type {
31333 	IB_FLOW_ACTION_UNSPECIFIED = 0,
31334 	IB_FLOW_ACTION_ESP = 1,
31335 };
31336 
31337 struct ib_flow_action {
31338 	struct ib_device *device;
31339 	struct ib_uobject *uobject;
31340 	enum ib_flow_action_type type;
31341 	atomic_t usecnt;
31342 };
31343 
31344 struct ib_flow_spec_action_count {
31345 	enum ib_flow_spec_type type;
31346 	u16 size;
31347 	struct ib_counters *counters;
31348 };
31349 
31350 struct ib_counters {
31351 	struct ib_device *device;
31352 	struct ib_uobject *uobject;
31353 	atomic_t usecnt;
31354 };
31355 
31356 union ib_flow_spec {
31357 	struct {
31358 		u32 type;
31359 		u16 size;
31360 	};
31361 	struct ib_flow_spec_eth eth;
31362 	struct ib_flow_spec_ib ib;
31363 	struct ib_flow_spec_ipv4 ipv4;
31364 	struct ib_flow_spec_tcp_udp tcp_udp;
31365 	struct ib_flow_spec_ipv6 ipv6;
31366 	struct ib_flow_spec_tunnel tunnel;
31367 	struct ib_flow_spec_esp esp;
31368 	struct ib_flow_spec_gre gre;
31369 	struct ib_flow_spec_mpls mpls;
31370 	struct ib_flow_spec_action_tag flow_tag;
31371 	struct ib_flow_spec_action_drop drop;
31372 	struct ib_flow_spec_action_handle action;
31373 	struct ib_flow_spec_action_count flow_count;
31374 };
31375 
31376 struct ib_flow_attr {
31377 	enum ib_flow_attr_type type;
31378 	u16 size;
31379 	u16 priority;
31380 	u32 flags;
31381 	u8 num_of_specs;
31382 	u32 port;
31383 	union ib_flow_spec flows[0];
31384 };
31385 
31386 struct ib_flow {
31387 	struct ib_qp *qp;
31388 	struct ib_device *device;
31389 	struct ib_uobject *uobject;
31390 };
31391 
31392 struct ib_pkey_cache;
31393 
31394 struct ib_gid_table;
31395 
31396 struct ib_port_cache {
31397 	u64 subnet_prefix;
31398 	struct ib_pkey_cache *pkey;
31399 	struct ib_gid_table *gid;
31400 	u8 lmc;
31401 	enum ib_port_state port_state;
31402 };
31403 
31404 struct ib_port_immutable {
31405 	int pkey_tbl_len;
31406 	int gid_tbl_len;
31407 	u32 core_cap_flags;
31408 	u32 max_mad_size;
31409 };
31410 
31411 struct ib_port;
31412 
31413 struct ib_port_data {
31414 	struct ib_device *ib_dev;
31415 	struct ib_port_immutable immutable;
31416 	spinlock_t pkey_list_lock;
31417 	spinlock_t netdev_lock;
31418 	struct list_head pkey_list;
31419 	struct ib_port_cache cache;
31420 	struct net_device *netdev;
31421 	netdevice_tracker netdev_tracker;
31422 	struct hlist_node ndev_hash_link;
31423 	struct rdma_port_counter port_counter;
31424 	struct ib_port *sysfs;
31425 };
31426 
31427 struct rdma_netdev_alloc_params {
31428 	size_t sizeof_priv;
31429 	unsigned int txqs;
31430 	unsigned int rxqs;
31431 	void *param;
31432 	int (*initialize_rdma_netdev)(struct ib_device *, u32, struct net_device *, void *);
31433 };
31434 
31435 struct ib_counters_read_attr {
31436 	u64 *counters_buff;
31437 	u32 ncounters;
31438 	u32 flags;
31439 };
31440 
31441 struct rdma_user_mmap_entry {
31442 	struct kref ref;
31443 	struct ib_ucontext *ucontext;
31444 	long unsigned int start_pgoff;
31445 	size_t npages;
31446 	bool driver_removed;
31447 };
31448 
31449 struct ib_mad_hdr {
31450 	u8 base_version;
31451 	u8 mgmt_class;
31452 	u8 class_version;
31453 	u8 method;
31454 	__be16 status;
31455 	__be16 class_specific;
31456 	__be64 tid;
31457 	__be16 attr_id;
31458 	__be16 resv;
31459 	__be32 attr_mod;
31460 };
31461 
31462 struct ib_mad {
31463 	struct ib_mad_hdr mad_hdr;
31464 	u8 data[232];
31465 };
31466 
31467 struct blk_crypto_ll_ops {
31468 	int (*keyslot_program)(struct blk_crypto_profile *, const struct blk_crypto_key *, unsigned int);
31469 	int (*keyslot_evict)(struct blk_crypto_profile *, const struct blk_crypto_key *, unsigned int);
31470 };
31471 
31472 struct blk_crypto_profile {
31473 	struct blk_crypto_ll_ops ll_ops;
31474 	unsigned int max_dun_bytes_supported;
31475 	unsigned int modes_supported[5];
31476 	struct device *dev;
31477 	unsigned int num_slots;
31478 	struct rw_semaphore lock;
31479 	wait_queue_head_t idle_slots_wait_queue;
31480 	struct list_head idle_slots;
31481 	spinlock_t idle_slots_lock;
31482 	struct hlist_head *slot_hashtable;
31483 	unsigned int log_slot_ht_size;
31484 	struct blk_crypto_keyslot *slots;
31485 };
31486 
31487 struct blk_crypto_keyslot {
31488 	atomic_t slot_refs;
31489 	struct list_head idle_slot_node;
31490 	struct hlist_node hash_node;
31491 	const struct blk_crypto_key *key;
31492 	struct blk_crypto_profile *profile;
31493 };
31494 
31495 typedef u32 compat_ulong_t;
31496 
31497 enum sock_type {
31498 	SOCK_STREAM = 1,
31499 	SOCK_DGRAM = 2,
31500 	SOCK_RAW = 3,
31501 	SOCK_RDM = 4,
31502 	SOCK_SEQPACKET = 5,
31503 	SOCK_DCCP = 6,
31504 	SOCK_PACKET = 10,
31505 };
31506 
31507 enum {
31508 	IPPROTO_IP = 0,
31509 	IPPROTO_ICMP = 1,
31510 	IPPROTO_IGMP = 2,
31511 	IPPROTO_IPIP = 4,
31512 	IPPROTO_TCP = 6,
31513 	IPPROTO_EGP = 8,
31514 	IPPROTO_PUP = 12,
31515 	IPPROTO_UDP = 17,
31516 	IPPROTO_IDP = 22,
31517 	IPPROTO_TP = 29,
31518 	IPPROTO_DCCP = 33,
31519 	IPPROTO_IPV6 = 41,
31520 	IPPROTO_RSVP = 46,
31521 	IPPROTO_GRE = 47,
31522 	IPPROTO_ESP = 50,
31523 	IPPROTO_AH = 51,
31524 	IPPROTO_MTP = 92,
31525 	IPPROTO_BEETPH = 94,
31526 	IPPROTO_ENCAP = 98,
31527 	IPPROTO_PIM = 103,
31528 	IPPROTO_COMP = 108,
31529 	IPPROTO_L2TP = 115,
31530 	IPPROTO_SCTP = 132,
31531 	IPPROTO_UDPLITE = 136,
31532 	IPPROTO_MPLS = 137,
31533 	IPPROTO_ETHERNET = 143,
31534 	IPPROTO_RAW = 255,
31535 	IPPROTO_MPTCP = 262,
31536 	IPPROTO_MAX = 263,
31537 };
31538 
31539 typedef void (*task_work_func_t)(struct callback_head *);
31540 
31541 enum {
31542 	IORING_CQE_BUFFER_SHIFT = 16,
31543 };
31544 
31545 struct io_sqring_offsets {
31546 	__u32 head;
31547 	__u32 tail;
31548 	__u32 ring_mask;
31549 	__u32 ring_entries;
31550 	__u32 flags;
31551 	__u32 dropped;
31552 	__u32 array;
31553 	__u32 resv1;
31554 	__u64 resv2;
31555 };
31556 
31557 struct io_cqring_offsets {
31558 	__u32 head;
31559 	__u32 tail;
31560 	__u32 ring_mask;
31561 	__u32 ring_entries;
31562 	__u32 overflow;
31563 	__u32 cqes;
31564 	__u32 flags;
31565 	__u32 resv1;
31566 	__u64 resv2;
31567 };
31568 
31569 struct io_uring_params {
31570 	__u32 sq_entries;
31571 	__u32 cq_entries;
31572 	__u32 flags;
31573 	__u32 sq_thread_cpu;
31574 	__u32 sq_thread_idle;
31575 	__u32 features;
31576 	__u32 wq_fd;
31577 	__u32 resv[3];
31578 	struct io_sqring_offsets sq_off;
31579 	struct io_cqring_offsets cq_off;
31580 };
31581 
31582 struct io_uring_probe_op {
31583 	__u8 op;
31584 	__u8 resv;
31585 	__u16 flags;
31586 	__u32 resv2;
31587 };
31588 
31589 struct io_uring_probe {
31590 	__u8 last_op;
31591 	__u8 ops_len;
31592 	__u16 resv;
31593 	__u32 resv2[3];
31594 	struct io_uring_probe_op ops[0];
31595 };
31596 
31597 struct io_uring_restriction {
31598 	__u16 opcode;
31599 	union {
31600 		__u8 register_op;
31601 		__u8 sqe_op;
31602 		__u8 sqe_flags;
31603 	};
31604 	__u8 resv;
31605 	__u32 resv2[3];
31606 };
31607 
31608 struct io_uring_buf {
31609 	__u64 addr;
31610 	__u32 len;
31611 	__u16 bid;
31612 	__u16 resv;
31613 };
31614 
31615 struct io_uring_buf_ring {
31616 	union {
31617 		struct {
31618 			__u64 resv1;
31619 			__u32 resv2;
31620 			__u16 resv3;
31621 			__u16 tail;
31622 		};
31623 		struct io_uring_buf bufs[0];
31624 	};
31625 };
31626 
31627 enum {
31628 	IORING_RESTRICTION_REGISTER_OP = 0,
31629 	IORING_RESTRICTION_SQE_OP = 1,
31630 	IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2,
31631 	IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3,
31632 	IORING_RESTRICTION_LAST = 4,
31633 };
31634 
31635 struct io_uring_getevents_arg {
31636 	__u64 sigmask;
31637 	__u32 sigmask_sz;
31638 	__u32 pad;
31639 	__u64 ts;
31640 };
31641 
31642 struct io_uring_file_index_range {
31643 	__u32 off;
31644 	__u32 len;
31645 	__u64 resv;
31646 };
31647 
31648 enum io_uring_cmd_flags {
31649 	IO_URING_F_COMPLETE_DEFER = 1,
31650 	IO_URING_F_UNLOCKED = 2,
31651 	IO_URING_F_MULTISHOT = 4,
31652 	IO_URING_F_IOWQ = 8,
31653 	IO_URING_F_NONBLOCK = -2147483648,
31654 	IO_URING_F_SQE128 = 256,
31655 	IO_URING_F_CQE32 = 512,
31656 	IO_URING_F_IOPOLL = 1024,
31657 };
31658 
31659 struct io_rsrc_node {
31660 	struct percpu_ref refs;
31661 	struct list_head node;
31662 	struct list_head rsrc_list;
31663 	struct io_rsrc_data *rsrc_data;
31664 	struct llist_node llist;
31665 	bool done;
31666 };
31667 
31668 struct io_mapped_ubuf {
31669 	u64 ubuf;
31670 	u64 ubuf_end;
31671 	unsigned int nr_bvecs;
31672 	long unsigned int acct_pages;
31673 	struct bio_vec bvec[0];
31674 };
31675 
31676 struct io_buffer_list {
31677 	union {
31678 		struct list_head buf_list;
31679 		struct {
31680 			struct page **buf_pages;
31681 			struct io_uring_buf_ring *buf_ring;
31682 		};
31683 	};
31684 	__u16 bgid;
31685 	__u16 buf_nr_pages;
31686 	__u16 nr_entries;
31687 	__u16 head;
31688 	__u16 mask;
31689 };
31690 
31691 struct io_sq_data {
31692 	refcount_t refs;
31693 	atomic_t park_pending;
31694 	struct mutex lock;
31695 	struct list_head ctx_list;
31696 	struct task_struct *thread;
31697 	struct wait_queue_head wait;
31698 	unsigned int sq_thread_idle;
31699 	int sq_cpu;
31700 	pid_t task_pid;
31701 	pid_t task_tgid;
31702 	long unsigned int state;
31703 	struct completion exited;
31704 };
31705 
31706 struct io_rsrc_put;
31707 
31708 typedef void rsrc_put_fn(struct io_ring_ctx *, struct io_rsrc_put *);
31709 
31710 struct io_rsrc_data {
31711 	struct io_ring_ctx *ctx;
31712 	u64 **tags;
31713 	unsigned int nr;
31714 	rsrc_put_fn *do_put;
31715 	atomic_t refs;
31716 	struct completion done;
31717 	bool quiesce;
31718 };
31719 
31720 enum {
31721 	REQ_F_FIXED_FILE = 1,
31722 	REQ_F_IO_DRAIN = 2,
31723 	REQ_F_LINK = 4,
31724 	REQ_F_HARDLINK = 8,
31725 	REQ_F_FORCE_ASYNC = 16,
31726 	REQ_F_BUFFER_SELECT = 32,
31727 	REQ_F_CQE_SKIP = 64,
31728 	REQ_F_FAIL = 256,
31729 	REQ_F_INFLIGHT = 512,
31730 	REQ_F_CUR_POS = 1024,
31731 	REQ_F_NOWAIT = 2048,
31732 	REQ_F_LINK_TIMEOUT = 4096,
31733 	REQ_F_NEED_CLEANUP = 8192,
31734 	REQ_F_POLLED = 16384,
31735 	REQ_F_BUFFER_SELECTED = 32768,
31736 	REQ_F_BUFFER_RING = 65536,
31737 	REQ_F_REISSUE = 131072,
31738 	REQ_F_SUPPORT_NOWAIT = 1073741824,
31739 	REQ_F_ISREG = 2147483648,
31740 	REQ_F_CREDS = 262144,
31741 	REQ_F_REFCOUNT = 524288,
31742 	REQ_F_ARM_LTIMEOUT = 1048576,
31743 	REQ_F_ASYNC_DATA = 2097152,
31744 	REQ_F_SKIP_LINK_CQES = 4194304,
31745 	REQ_F_SINGLE_POLL = 8388608,
31746 	REQ_F_DOUBLE_POLL = 16777216,
31747 	REQ_F_PARTIAL_IO = 33554432,
31748 	REQ_F_APOLL_MULTISHOT = 134217728,
31749 	REQ_F_CQE32_INIT = 67108864,
31750 	REQ_F_CLEAR_POLLIN = 268435456,
31751 	REQ_F_HASH_LOCKED = 536870912,
31752 };
31753 
31754 struct io_buffer {
31755 	struct list_head list;
31756 	__u64 addr;
31757 	__u32 len;
31758 	__u16 bid;
31759 	__u16 bgid;
31760 };
31761 
31762 struct io_poll {
31763 	struct file *file;
31764 	struct wait_queue_head *head;
31765 	__poll_t events;
31766 	struct wait_queue_entry wait;
31767 };
31768 
31769 struct io_cache_entry {
31770 	struct hlist_node node;
31771 };
31772 
31773 struct async_poll {
31774 	union {
31775 		struct io_poll poll;
31776 		struct io_cache_entry cache;
31777 	};
31778 	struct io_poll *double_poll;
31779 };
31780 
31781 struct io_overflow_cqe {
31782 	struct list_head list;
31783 	struct io_uring_cqe cqe;
31784 };
31785 
31786 struct trace_event_raw_io_uring_create {
31787 	struct trace_entry ent;
31788 	int fd;
31789 	void *ctx;
31790 	u32 sq_entries;
31791 	u32 cq_entries;
31792 	u32 flags;
31793 	char __data[0];
31794 };
31795 
31796 struct trace_event_raw_io_uring_register {
31797 	struct trace_entry ent;
31798 	void *ctx;
31799 	unsigned int opcode;
31800 	unsigned int nr_files;
31801 	unsigned int nr_bufs;
31802 	long int ret;
31803 	char __data[0];
31804 };
31805 
31806 struct trace_event_raw_io_uring_file_get {
31807 	struct trace_entry ent;
31808 	void *ctx;
31809 	void *req;
31810 	u64 user_data;
31811 	int fd;
31812 	char __data[0];
31813 };
31814 
31815 struct trace_event_raw_io_uring_queue_async_work {
31816 	struct trace_entry ent;
31817 	void *ctx;
31818 	void *req;
31819 	u64 user_data;
31820 	u8 opcode;
31821 	unsigned int flags;
31822 	struct io_wq_work *work;
31823 	int rw;
31824 	u32 __data_loc_op_str;
31825 	char __data[0];
31826 };
31827 
31828 struct trace_event_raw_io_uring_defer {
31829 	struct trace_entry ent;
31830 	void *ctx;
31831 	void *req;
31832 	long long unsigned int data;
31833 	u8 opcode;
31834 	u32 __data_loc_op_str;
31835 	char __data[0];
31836 };
31837 
31838 struct trace_event_raw_io_uring_link {
31839 	struct trace_entry ent;
31840 	void *ctx;
31841 	void *req;
31842 	void *target_req;
31843 	char __data[0];
31844 };
31845 
31846 struct trace_event_raw_io_uring_cqring_wait {
31847 	struct trace_entry ent;
31848 	void *ctx;
31849 	int min_events;
31850 	char __data[0];
31851 };
31852 
31853 struct trace_event_raw_io_uring_fail_link {
31854 	struct trace_entry ent;
31855 	void *ctx;
31856 	void *req;
31857 	long long unsigned int user_data;
31858 	u8 opcode;
31859 	void *link;
31860 	u32 __data_loc_op_str;
31861 	char __data[0];
31862 };
31863 
31864 struct trace_event_raw_io_uring_complete {
31865 	struct trace_entry ent;
31866 	void *ctx;
31867 	void *req;
31868 	u64 user_data;
31869 	int res;
31870 	unsigned int cflags;
31871 	u64 extra1;
31872 	u64 extra2;
31873 	char __data[0];
31874 };
31875 
31876 struct trace_event_raw_io_uring_submit_sqe {
31877 	struct trace_entry ent;
31878 	void *ctx;
31879 	void *req;
31880 	long long unsigned int user_data;
31881 	u8 opcode;
31882 	u32 flags;
31883 	bool force_nonblock;
31884 	bool sq_thread;
31885 	u32 __data_loc_op_str;
31886 	char __data[0];
31887 };
31888 
31889 struct trace_event_raw_io_uring_poll_arm {
31890 	struct trace_entry ent;
31891 	void *ctx;
31892 	void *req;
31893 	long long unsigned int user_data;
31894 	u8 opcode;
31895 	int mask;
31896 	int events;
31897 	u32 __data_loc_op_str;
31898 	char __data[0];
31899 };
31900 
31901 struct trace_event_raw_io_uring_task_add {
31902 	struct trace_entry ent;
31903 	void *ctx;
31904 	void *req;
31905 	long long unsigned int user_data;
31906 	u8 opcode;
31907 	int mask;
31908 	u32 __data_loc_op_str;
31909 	char __data[0];
31910 };
31911 
31912 struct trace_event_raw_io_uring_req_failed {
31913 	struct trace_entry ent;
31914 	void *ctx;
31915 	void *req;
31916 	long long unsigned int user_data;
31917 	u8 opcode;
31918 	u8 flags;
31919 	u8 ioprio;
31920 	u64 off;
31921 	u64 addr;
31922 	u32 len;
31923 	u32 op_flags;
31924 	u16 buf_index;
31925 	u16 personality;
31926 	u32 file_index;
31927 	u64 pad1;
31928 	u64 addr3;
31929 	int error;
31930 	u32 __data_loc_op_str;
31931 	char __data[0];
31932 };
31933 
31934 struct trace_event_raw_io_uring_cqe_overflow {
31935 	struct trace_entry ent;
31936 	void *ctx;
31937 	long long unsigned int user_data;
31938 	s32 res;
31939 	u32 cflags;
31940 	void *ocqe;
31941 	char __data[0];
31942 };
31943 
31944 struct trace_event_raw_io_uring_task_work_run {
31945 	struct trace_entry ent;
31946 	void *tctx;
31947 	unsigned int count;
31948 	unsigned int loops;
31949 	char __data[0];
31950 };
31951 
31952 struct trace_event_raw_io_uring_short_write {
31953 	struct trace_entry ent;
31954 	void *ctx;
31955 	u64 fpos;
31956 	u64 wanted;
31957 	u64 got;
31958 	char __data[0];
31959 };
31960 
31961 struct trace_event_raw_io_uring_local_work_run {
31962 	struct trace_entry ent;
31963 	void *ctx;
31964 	int count;
31965 	unsigned int loops;
31966 	char __data[0];
31967 };
31968 
31969 struct trace_event_data_offsets_io_uring_create {};
31970 
31971 struct trace_event_data_offsets_io_uring_register {};
31972 
31973 struct trace_event_data_offsets_io_uring_file_get {};
31974 
31975 struct trace_event_data_offsets_io_uring_queue_async_work {
31976 	u32 op_str;
31977 };
31978 
31979 struct trace_event_data_offsets_io_uring_defer {
31980 	u32 op_str;
31981 };
31982 
31983 struct trace_event_data_offsets_io_uring_link {};
31984 
31985 struct trace_event_data_offsets_io_uring_cqring_wait {};
31986 
31987 struct trace_event_data_offsets_io_uring_fail_link {
31988 	u32 op_str;
31989 };
31990 
31991 struct trace_event_data_offsets_io_uring_complete {};
31992 
31993 struct trace_event_data_offsets_io_uring_submit_sqe {
31994 	u32 op_str;
31995 };
31996 
31997 struct trace_event_data_offsets_io_uring_poll_arm {
31998 	u32 op_str;
31999 };
32000 
32001 struct trace_event_data_offsets_io_uring_task_add {
32002 	u32 op_str;
32003 };
32004 
32005 struct trace_event_data_offsets_io_uring_req_failed {
32006 	u32 op_str;
32007 };
32008 
32009 struct trace_event_data_offsets_io_uring_cqe_overflow {};
32010 
32011 struct trace_event_data_offsets_io_uring_task_work_run {};
32012 
32013 struct trace_event_data_offsets_io_uring_short_write {};
32014 
32015 struct trace_event_data_offsets_io_uring_local_work_run {};
32016 
32017 typedef void (*btf_trace_io_uring_create)(void *, int, void *, u32, u32, u32);
32018 
32019 typedef void (*btf_trace_io_uring_register)(void *, void *, unsigned int, unsigned int, unsigned int, long int);
32020 
32021 typedef void (*btf_trace_io_uring_file_get)(void *, struct io_kiocb *, int);
32022 
32023 typedef void (*btf_trace_io_uring_queue_async_work)(void *, struct io_kiocb *, int);
32024 
32025 typedef void (*btf_trace_io_uring_defer)(void *, struct io_kiocb *);
32026 
32027 typedef void (*btf_trace_io_uring_link)(void *, struct io_kiocb *, struct io_kiocb *);
32028 
32029 typedef void (*btf_trace_io_uring_cqring_wait)(void *, void *, int);
32030 
32031 typedef void (*btf_trace_io_uring_fail_link)(void *, struct io_kiocb *, struct io_kiocb *);
32032 
32033 typedef void (*btf_trace_io_uring_complete)(void *, void *, void *, u64, int, unsigned int, u64, u64);
32034 
32035 typedef void (*btf_trace_io_uring_submit_sqe)(void *, struct io_kiocb *, bool);
32036 
32037 typedef void (*btf_trace_io_uring_poll_arm)(void *, struct io_kiocb *, int, int);
32038 
32039 typedef void (*btf_trace_io_uring_task_add)(void *, struct io_kiocb *, int);
32040 
32041 typedef void (*btf_trace_io_uring_req_failed)(void *, const struct io_uring_sqe *, struct io_kiocb *, int);
32042 
32043 typedef void (*btf_trace_io_uring_cqe_overflow)(void *, void *, long long unsigned int, s32, u32, void *);
32044 
32045 typedef void (*btf_trace_io_uring_task_work_run)(void *, void *, unsigned int, unsigned int);
32046 
32047 typedef void (*btf_trace_io_uring_short_write)(void *, void *, u64, u64, u64);
32048 
32049 typedef void (*btf_trace_io_uring_local_work_run)(void *, void *, int, unsigned int);
32050 
32051 enum {
32052 	IO_WQ_WORK_CANCEL = 1,
32053 	IO_WQ_WORK_HASHED = 2,
32054 	IO_WQ_WORK_UNBOUND = 4,
32055 	IO_WQ_WORK_CONCURRENT = 16,
32056 	IO_WQ_HASH_SHIFT = 24,
32057 };
32058 
32059 enum io_wq_cancel {
32060 	IO_WQ_CANCEL_OK = 0,
32061 	IO_WQ_CANCEL_RUNNING = 1,
32062 	IO_WQ_CANCEL_NOTFOUND = 2,
32063 };
32064 
32065 typedef bool work_cancel_fn(struct io_wq_work *, void *);
32066 
32067 enum {
32068 	IOU_OK = 0,
32069 	IOU_ISSUE_SKIP_COMPLETE = -529,
32070 	IOU_STOP_MULTISHOT = -125,
32071 };
32072 
32073 struct io_op_def {
32074 	unsigned int needs_file: 1;
32075 	unsigned int plug: 1;
32076 	unsigned int hash_reg_file: 1;
32077 	unsigned int unbound_nonreg_file: 1;
32078 	unsigned int pollin: 1;
32079 	unsigned int pollout: 1;
32080 	unsigned int poll_exclusive: 1;
32081 	unsigned int buffer_select: 1;
32082 	unsigned int not_supported: 1;
32083 	unsigned int audit_skip: 1;
32084 	unsigned int ioprio: 1;
32085 	unsigned int iopoll: 1;
32086 	unsigned int iopoll_queue: 1;
32087 	unsigned int manual_alloc: 1;
32088 	short unsigned int async_size;
32089 	const char *name;
32090 	int (*prep)(struct io_kiocb *, const struct io_uring_sqe *);
32091 	int (*issue)(struct io_kiocb *, unsigned int);
32092 	int (*prep_async)(struct io_kiocb *);
32093 	void (*cleanup)(struct io_kiocb *);
32094 	void (*fail)(struct io_kiocb *);
32095 };
32096 
32097 struct io_tctx_node {
32098 	struct list_head ctx_node;
32099 	struct task_struct *task;
32100 	struct io_ring_ctx *ctx;
32101 };
32102 
32103 enum {
32104 	IORING_RSRC_FILE = 0,
32105 	IORING_RSRC_BUFFER = 1,
32106 };
32107 
32108 struct io_rsrc_put {
32109 	struct list_head list;
32110 	u64 tag;
32111 	union {
32112 		void *rsrc;
32113 		struct file *file;
32114 		struct io_mapped_ubuf *buf;
32115 	};
32116 };
32117 
32118 enum {
32119 	IO_APOLL_OK = 0,
32120 	IO_APOLL_ABORTED = 1,
32121 	IO_APOLL_READY = 2,
32122 };
32123 
32124 enum {
32125 	IO_CHECK_CQ_OVERFLOW_BIT = 0,
32126 	IO_CHECK_CQ_DROPPED_BIT = 1,
32127 };
32128 
32129 enum {
32130 	IO_EVENTFD_OP_SIGNAL_BIT = 0,
32131 	IO_EVENTFD_OP_FREE_BIT = 1,
32132 };
32133 
32134 struct io_defer_entry {
32135 	struct list_head list;
32136 	struct io_kiocb *req;
32137 	u32 seq;
32138 };
32139 
32140 struct io_wait_queue {
32141 	struct wait_queue_entry wq;
32142 	struct io_ring_ctx *ctx;
32143 	unsigned int cq_tail;
32144 	unsigned int nr_timeouts;
32145 };
32146 
32147 struct io_tctx_exit {
32148 	struct callback_head task_work;
32149 	struct completion completion;
32150 	struct io_ring_ctx *ctx;
32151 };
32152 
32153 struct io_task_cancel {
32154 	struct task_struct *task;
32155 	bool all;
32156 };
32157 
32158 struct creds;
32159 
32160 struct io_epoll {
32161 	struct file *file;
32162 	int epfd;
32163 	int op;
32164 	int fd;
32165 	struct epoll_event event;
32166 };
32167 
32168 enum {
32169 	IORING_MSG_DATA = 0,
32170 	IORING_MSG_SEND_FD = 1,
32171 };
32172 
32173 struct io_msg {
32174 	struct file *file;
32175 	struct file *src_file;
32176 	struct callback_head tw;
32177 	u64 user_data;
32178 	u32 len;
32179 	u32 cmd;
32180 	u32 src_fd;
32181 	u32 dst_fd;
32182 	u32 flags;
32183 };
32184 
32185 struct io_uring_rsrc_update {
32186 	__u32 offset;
32187 	__u32 resv;
32188 	__u64 data;
32189 };
32190 
32191 typedef struct io_wq_work *free_work_fn(struct io_wq_work *);
32192 
32193 typedef void io_wq_work_fn(struct io_wq_work *);
32194 
32195 struct io_wq_data {
32196 	struct io_wq_hash *hash;
32197 	struct task_struct *task;
32198 	io_wq_work_fn *do_work;
32199 	free_work_fn *free_work;
32200 };
32201 
32202 struct io_uring_buf_reg {
32203 	__u64 ring_addr;
32204 	__u32 ring_entries;
32205 	__u16 bgid;
32206 	__u16 pad;
32207 	__u64 resv[3];
32208 };
32209 
32210 struct io_provide_buf {
32211 	struct file *file;
32212 	__u64 addr;
32213 	__u32 len;
32214 	__u32 bgid;
32215 	__u16 nbufs;
32216 	__u16 bid;
32217 };
32218 
32219 enum {
32220 	SKBFL_ZEROCOPY_ENABLE = 1,
32221 	SKBFL_SHARED_FRAG = 2,
32222 	SKBFL_PURE_ZEROCOPY = 4,
32223 	SKBFL_DONT_ORPHAN = 8,
32224 	SKBFL_MANAGED_FRAG_REFS = 16,
32225 };
32226 
32227 struct io_notif_data {
32228 	struct file *file;
32229 	struct ubuf_info uarg;
32230 	long unsigned int account_pages;
32231 	bool zc_report;
32232 	bool zc_used;
32233 	bool zc_copied;
32234 };
32235 
32236 struct sg_table {
32237 	struct scatterlist *sgl;
32238 	unsigned int nents;
32239 	unsigned int orig_nents;
32240 };
32241 
32242 struct sg_append_table {
32243 	struct sg_table sgt;
32244 	struct scatterlist *prv;
32245 	unsigned int total_nents;
32246 };
32247 
32248 typedef struct scatterlist *sg_alloc_fn(unsigned int, gfp_t);
32249 
32250 typedef void sg_free_fn(struct scatterlist *, unsigned int);
32251 
32252 struct sg_page_iter {
32253 	struct scatterlist *sg;
32254 	unsigned int sg_pgoffset;
32255 	unsigned int __nents;
32256 	int __pg_advance;
32257 };
32258 
32259 struct sg_dma_page_iter {
32260 	struct sg_page_iter base;
32261 };
32262 
32263 struct sg_mapping_iter {
32264 	struct page *page;
32265 	void *addr;
32266 	size_t length;
32267 	size_t consumed;
32268 	struct sg_page_iter piter;
32269 	unsigned int __offset;
32270 	unsigned int __remaining;
32271 	unsigned int __flags;
32272 };
32273 
32274 struct reciprocal_value_adv {
32275 	u32 m;
32276 	u8 sh;
32277 	u8 exp;
32278 	bool is_wide_m;
32279 };
32280 
32281 enum blake2s_lengths {
32282 	BLAKE2S_BLOCK_SIZE = 64,
32283 	BLAKE2S_HASH_SIZE = 32,
32284 	BLAKE2S_KEY_SIZE = 32,
32285 	BLAKE2S_128_HASH_SIZE = 16,
32286 	BLAKE2S_160_HASH_SIZE = 20,
32287 	BLAKE2S_224_HASH_SIZE = 28,
32288 	BLAKE2S_256_HASH_SIZE = 32,
32289 };
32290 
32291 struct blake2s_state {
32292 	u32 h[8];
32293 	u32 t[2];
32294 	u32 f[2];
32295 	u8 buf[64];
32296 	unsigned int buflen;
32297 	unsigned int outlen;
32298 };
32299 
32300 enum blake2s_iv {
32301 	BLAKE2S_IV0 = 1779033703,
32302 	BLAKE2S_IV1 = 3144134277,
32303 	BLAKE2S_IV2 = 1013904242,
32304 	BLAKE2S_IV3 = 2773480762,
32305 	BLAKE2S_IV4 = 1359893119,
32306 	BLAKE2S_IV5 = 2600822924,
32307 	BLAKE2S_IV6 = 528734635,
32308 	BLAKE2S_IV7 = 1541459225,
32309 };
32310 
32311 struct pci_device_id {
32312 	__u32 vendor;
32313 	__u32 device;
32314 	__u32 subvendor;
32315 	__u32 subdevice;
32316 	__u32 class;
32317 	__u32 class_mask;
32318 	kernel_ulong_t driver_data;
32319 	__u32 override_only;
32320 };
32321 
32322 struct pci_bus;
32323 
32324 struct hotplug_slot;
32325 
32326 struct pci_slot {
32327 	struct pci_bus *bus;
32328 	struct list_head list;
32329 	struct hotplug_slot *hotplug;
32330 	unsigned char number;
32331 	struct kobject kobj;
32332 };
32333 
32334 struct pci_dev;
32335 
32336 struct pci_ops;
32337 
32338 struct pci_bus {
32339 	struct list_head node;
32340 	struct pci_bus *parent;
32341 	struct list_head children;
32342 	struct list_head devices;
32343 	struct pci_dev *self;
32344 	struct list_head slots;
32345 	struct resource *resource[4];
32346 	struct list_head resources;
32347 	struct resource busn_res;
32348 	struct pci_ops *ops;
32349 	void *sysdata;
32350 	struct proc_dir_entry *procdir;
32351 	unsigned char number;
32352 	unsigned char primary;
32353 	unsigned char max_bus_speed;
32354 	unsigned char cur_bus_speed;
32355 	int domain_nr;
32356 	char name[48];
32357 	short unsigned int bridge_ctl;
32358 	pci_bus_flags_t bus_flags;
32359 	struct device *bridge;
32360 	struct device dev;
32361 	struct bin_attribute *legacy_io;
32362 	struct bin_attribute *legacy_mem;
32363 	unsigned int is_added: 1;
32364 	unsigned int unsafe_warn: 1;
32365 };
32366 
32367 typedef int pci_power_t;
32368 
32369 struct pci_vpd {
32370 	struct mutex lock;
32371 	unsigned int len;
32372 	u8 cap;
32373 };
32374 
32375 struct aer_stats;
32376 
32377 struct rcec_ea;
32378 
32379 struct pci_driver;
32380 
32381 struct pci_sriov;
32382 
32383 struct pci_dev {
32384 	struct list_head bus_list;
32385 	struct pci_bus *bus;
32386 	struct pci_bus *subordinate;
32387 	void *sysdata;
32388 	struct proc_dir_entry *procent;
32389 	struct pci_slot *slot;
32390 	unsigned int devfn;
32391 	short unsigned int vendor;
32392 	short unsigned int device;
32393 	short unsigned int subsystem_vendor;
32394 	short unsigned int subsystem_device;
32395 	unsigned int class;
32396 	u8 revision;
32397 	u8 hdr_type;
32398 	u16 aer_cap;
32399 	struct aer_stats *aer_stats;
32400 	struct rcec_ea *rcec_ea;
32401 	struct pci_dev *rcec;
32402 	u32 devcap;
32403 	u8 pcie_cap;
32404 	u8 msi_cap;
32405 	u8 msix_cap;
32406 	u8 pcie_mpss: 3;
32407 	u8 rom_base_reg;
32408 	u8 pin;
32409 	u16 pcie_flags_reg;
32410 	long unsigned int *dma_alias_mask;
32411 	struct pci_driver *driver;
32412 	u64 dma_mask;
32413 	struct device_dma_parameters dma_parms;
32414 	pci_power_t current_state;
32415 	unsigned int imm_ready: 1;
32416 	u8 pm_cap;
32417 	unsigned int pme_support: 5;
32418 	unsigned int pme_poll: 1;
32419 	unsigned int d1_support: 1;
32420 	unsigned int d2_support: 1;
32421 	unsigned int no_d1d2: 1;
32422 	unsigned int no_d3cold: 1;
32423 	unsigned int bridge_d3: 1;
32424 	unsigned int d3cold_allowed: 1;
32425 	unsigned int mmio_always_on: 1;
32426 	unsigned int wakeup_prepared: 1;
32427 	unsigned int skip_bus_pm: 1;
32428 	unsigned int ignore_hotplug: 1;
32429 	unsigned int hotplug_user_indicators: 1;
32430 	unsigned int clear_retrain_link: 1;
32431 	unsigned int d3hot_delay;
32432 	unsigned int d3cold_delay;
32433 	unsigned int pasid_no_tlp: 1;
32434 	unsigned int eetlp_prefix_path: 1;
32435 	pci_channel_state_t error_state;
32436 	struct device dev;
32437 	int cfg_size;
32438 	unsigned int irq;
32439 	struct resource resource[17];
32440 	struct resource driver_exclusive_resource;
32441 	bool match_driver;
32442 	unsigned int transparent: 1;
32443 	unsigned int io_window: 1;
32444 	unsigned int pref_window: 1;
32445 	unsigned int pref_64_window: 1;
32446 	unsigned int multifunction: 1;
32447 	unsigned int is_busmaster: 1;
32448 	unsigned int no_msi: 1;
32449 	unsigned int no_64bit_msi: 1;
32450 	unsigned int block_cfg_access: 1;
32451 	unsigned int broken_parity_status: 1;
32452 	unsigned int irq_reroute_variant: 2;
32453 	unsigned int msi_enabled: 1;
32454 	unsigned int msix_enabled: 1;
32455 	unsigned int ari_enabled: 1;
32456 	unsigned int ats_enabled: 1;
32457 	unsigned int pasid_enabled: 1;
32458 	unsigned int pri_enabled: 1;
32459 	unsigned int is_managed: 1;
32460 	unsigned int is_msi_managed: 1;
32461 	unsigned int needs_freset: 1;
32462 	unsigned int state_saved: 1;
32463 	unsigned int is_physfn: 1;
32464 	unsigned int is_virtfn: 1;
32465 	unsigned int is_hotplug_bridge: 1;
32466 	unsigned int shpc_managed: 1;
32467 	unsigned int is_thunderbolt: 1;
32468 	unsigned int untrusted: 1;
32469 	unsigned int external_facing: 1;
32470 	unsigned int broken_intx_masking: 1;
32471 	unsigned int io_window_1k: 1;
32472 	unsigned int irq_managed: 1;
32473 	unsigned int non_compliant_bars: 1;
32474 	unsigned int is_probed: 1;
32475 	unsigned int link_active_reporting: 1;
32476 	unsigned int no_vf_scan: 1;
32477 	unsigned int no_command_memory: 1;
32478 	unsigned int rom_bar_overlap: 1;
32479 	pci_dev_flags_t dev_flags;
32480 	atomic_t enable_cnt;
32481 	u32 saved_config_space[16];
32482 	struct hlist_head saved_cap_space;
32483 	int rom_attr_enabled;
32484 	struct bin_attribute *res_attr[17];
32485 	struct bin_attribute *res_attr_wc[17];
32486 	unsigned int broken_cmd_compl: 1;
32487 	void *msix_base;
32488 	raw_spinlock_t msi_lock;
32489 	struct pci_vpd vpd;
32490 	union {
32491 		struct pci_sriov *sriov;
32492 		struct pci_dev *physfn;
32493 	};
32494 	u16 ats_cap;
32495 	u8 ats_stu;
32496 	u16 acs_cap;
32497 	phys_addr_t rom;
32498 	size_t romlen;
32499 	const char *driver_override;
32500 	long unsigned int priv_flags;
32501 	u8 reset_methods[7];
32502 };
32503 
32504 struct pci_dynids {
32505 	spinlock_t lock;
32506 	struct list_head list;
32507 };
32508 
32509 struct pci_error_handlers;
32510 
32511 struct pci_driver {
32512 	struct list_head node;
32513 	const char *name;
32514 	const struct pci_device_id *id_table;
32515 	int (*probe)(struct pci_dev *, const struct pci_device_id *);
32516 	void (*remove)(struct pci_dev *);
32517 	int (*suspend)(struct pci_dev *, pm_message_t);
32518 	int (*resume)(struct pci_dev *);
32519 	void (*shutdown)(struct pci_dev *);
32520 	int (*sriov_configure)(struct pci_dev *, int);
32521 	int (*sriov_set_msix_vec_count)(struct pci_dev *, int);
32522 	u32 (*sriov_get_vf_total_msix)(struct pci_dev *);
32523 	const struct pci_error_handlers *err_handler;
32524 	const struct attribute_group **groups;
32525 	const struct attribute_group **dev_groups;
32526 	struct device_driver driver;
32527 	struct pci_dynids dynids;
32528 	bool driver_managed_dma;
32529 };
32530 
32531 struct pci_ops {
32532 	int (*add_bus)(struct pci_bus *);
32533 	void (*remove_bus)(struct pci_bus *);
32534 	void * (*map_bus)(struct pci_bus *, unsigned int, int);
32535 	int (*read)(struct pci_bus *, unsigned int, int, int, u32 *);
32536 	int (*write)(struct pci_bus *, unsigned int, int, int, u32);
32537 };
32538 
32539 struct pci_error_handlers {
32540 	pci_ers_result_t (*error_detected)(struct pci_dev *, pci_channel_state_t);
32541 	pci_ers_result_t (*mmio_enabled)(struct pci_dev *);
32542 	pci_ers_result_t (*slot_reset)(struct pci_dev *);
32543 	void (*reset_prepare)(struct pci_dev *);
32544 	void (*reset_done)(struct pci_dev *);
32545 	void (*resume)(struct pci_dev *);
32546 	void (*cor_error_detected)(struct pci_dev *);
32547 };
32548 
32549 enum devm_ioremap_type {
32550 	DEVM_IOREMAP = 0,
32551 	DEVM_IOREMAP_UC = 1,
32552 	DEVM_IOREMAP_WC = 2,
32553 	DEVM_IOREMAP_NP = 3,
32554 };
32555 
32556 struct pcim_iomap_devres {
32557 	void *table[6];
32558 };
32559 
32560 struct arch_io_reserve_memtype_wc_devres {
32561 	resource_size_t start;
32562 	resource_size_t size;
32563 };
32564 
32565 typedef u8 uint8_t;
32566 
32567 struct xxh32_state {
32568 	uint32_t total_len_32;
32569 	uint32_t large_len;
32570 	uint32_t v1;
32571 	uint32_t v2;
32572 	uint32_t v3;
32573 	uint32_t v4;
32574 	uint32_t mem32[4];
32575 	uint32_t memsize;
32576 };
32577 
32578 struct xxh64_state {
32579 	uint64_t total_len;
32580 	uint64_t v1;
32581 	uint64_t v2;
32582 	uint64_t v3;
32583 	uint64_t v4;
32584 	uint64_t mem64[4];
32585 	uint32_t memsize;
32586 };
32587 
32588 typedef u16 uint16_t;
32589 
32590 typedef struct {
32591 	const uint8_t *externalDict;
32592 	size_t extDictSize;
32593 	const uint8_t *prefixEnd;
32594 	size_t prefixSize;
32595 } LZ4_streamDecode_t_internal;
32596 
32597 typedef union {
32598 	long long unsigned int table[4];
32599 	LZ4_streamDecode_t_internal internal_donotuse;
32600 } LZ4_streamDecode_t;
32601 
32602 typedef uint8_t BYTE;
32603 
32604 typedef uint16_t U16;
32605 
32606 typedef uint32_t U32;
32607 
32608 typedef uint64_t U64;
32609 
32610 typedef uintptr_t uptrval;
32611 
32612 typedef enum {
32613 	noDict = 0,
32614 	withPrefix64k = 1,
32615 	usingExtDict = 2,
32616 } dict_directive;
32617 
32618 typedef enum {
32619 	endOnOutputSize = 0,
32620 	endOnInputSize = 1,
32621 } endCondition_directive;
32622 
32623 typedef enum {
32624 	decode_full_block = 0,
32625 	partial_decode = 1,
32626 } earlyEnd_directive;
32627 
32628 typedef s16 int16_t;
32629 
32630 typedef uint8_t U8;
32631 
32632 typedef int16_t S16;
32633 
32634 typedef size_t HUF_CElt;
32635 
32636 typedef enum {
32637 	HUF_repeat_none = 0,
32638 	HUF_repeat_check = 1,
32639 	HUF_repeat_valid = 2,
32640 } HUF_repeat;
32641 
32642 typedef enum {
32643 	set_basic = 0,
32644 	set_rle = 1,
32645 	set_compressed = 2,
32646 	set_repeat = 3,
32647 } symbolEncodingType_e;
32648 
32649 typedef struct {
32650 	HUF_CElt CTable[257];
32651 	HUF_repeat repeatMode;
32652 } ZSTD_hufCTables_t;
32653 
32654 typedef struct {
32655 	U32 offset;
32656 	U32 litLength;
32657 	U32 matchLength;
32658 } rawSeq;
32659 
32660 typedef struct {
32661 	rawSeq *seq;
32662 	size_t pos;
32663 	size_t posInSequence;
32664 	size_t size;
32665 	size_t capacity;
32666 } rawSeqStore_t;
32667 
32668 typedef __kernel_long_t __kernel_ptrdiff_t;
32669 
32670 typedef __kernel_ptrdiff_t ptrdiff_t;
32671 
32672 typedef unsigned int FSE_CTable;
32673 
32674 typedef struct {
32675 	size_t bitContainer;
32676 	unsigned int bitPos;
32677 	char *startPtr;
32678 	char *ptr;
32679 	char *endPtr;
32680 } BIT_CStream_t;
32681 
32682 typedef enum {
32683 	FSE_repeat_none = 0,
32684 	FSE_repeat_check = 1,
32685 	FSE_repeat_valid = 2,
32686 } FSE_repeat;
32687 
32688 typedef struct {
32689 	ptrdiff_t value;
32690 	const void *stateTable;
32691 	const void *symbolTT;
32692 	unsigned int stateLog;
32693 } FSE_CState_t;
32694 
32695 typedef struct {
32696 	int deltaFindState;
32697 	U32 deltaNbBits;
32698 } FSE_symbolCompressionTransform;
32699 
32700 struct seqDef_s {
32701 	U32 offBase;
32702 	U16 litLength;
32703 	U16 mlBase;
32704 };
32705 
32706 typedef struct seqDef_s seqDef;
32707 
32708 typedef enum {
32709 	ZSTD_defaultDisallowed = 0,
32710 	ZSTD_defaultAllowed = 1,
32711 } ZSTD_defaultPolicy_e;
32712 
32713 typedef struct {
32714 	S16 norm[53];
32715 	U32 wksp[285];
32716 } ZSTD_BuildCTableWksp;
32717 
32718 typedef enum {
32719 	ZSTD_ps_auto = 0,
32720 	ZSTD_ps_enable = 1,
32721 	ZSTD_ps_disable = 2,
32722 } ZSTD_paramSwitch_e;
32723 
32724 typedef enum {
32725 	ZSTD_no_overlap = 0,
32726 	ZSTD_overlap_src_before_dst = 1,
32727 } ZSTD_overlap_e;
32728 
32729 typedef enum {
32730 	ZSTD_llt_none = 0,
32731 	ZSTD_llt_literalLength = 1,
32732 	ZSTD_llt_matchLength = 2,
32733 } ZSTD_longLengthType_e;
32734 
32735 typedef struct {
32736 	seqDef *sequencesStart;
32737 	seqDef *sequences;
32738 	BYTE *litStart;
32739 	BYTE *lit;
32740 	BYTE *llCode;
32741 	BYTE *mlCode;
32742 	BYTE *ofCode;
32743 	size_t maxNbSeq;
32744 	size_t maxNbLit;
32745 	ZSTD_longLengthType_e longLengthType;
32746 	U32 longLengthPos;
32747 } seqStore_t;
32748 
32749 typedef struct {
32750 	FSE_CTable offcodeCTable[193];
32751 	FSE_CTable matchlengthCTable[363];
32752 	FSE_CTable litlengthCTable[329];
32753 	FSE_repeat offcode_repeatMode;
32754 	FSE_repeat matchlength_repeatMode;
32755 	FSE_repeat litlength_repeatMode;
32756 } ZSTD_fseCTables_t;
32757 
32758 typedef struct {
32759 	ZSTD_hufCTables_t huf;
32760 	ZSTD_fseCTables_t fse;
32761 } ZSTD_entropyCTables_t;
32762 
32763 typedef struct {
32764 	U32 off;
32765 	U32 len;
32766 } ZSTD_match_t;
32767 
32768 typedef struct {
32769 	int price;
32770 	U32 off;
32771 	U32 mlen;
32772 	U32 litlen;
32773 	U32 rep[3];
32774 } ZSTD_optimal_t;
32775 
32776 typedef enum {
32777 	zop_dynamic = 0,
32778 	zop_predef = 1,
32779 } ZSTD_OptPrice_e;
32780 
32781 typedef struct {
32782 	unsigned int *litFreq;
32783 	unsigned int *litLengthFreq;
32784 	unsigned int *matchLengthFreq;
32785 	unsigned int *offCodeFreq;
32786 	ZSTD_match_t *matchTable;
32787 	ZSTD_optimal_t *priceTable;
32788 	U32 litSum;
32789 	U32 litLengthSum;
32790 	U32 matchLengthSum;
32791 	U32 offCodeSum;
32792 	U32 litSumBasePrice;
32793 	U32 litLengthSumBasePrice;
32794 	U32 matchLengthSumBasePrice;
32795 	U32 offCodeSumBasePrice;
32796 	ZSTD_OptPrice_e priceType;
32797 	const ZSTD_entropyCTables_t *symbolCosts;
32798 	ZSTD_paramSwitch_e literalCompressionMode;
32799 } optState_t;
32800 
32801 typedef struct {
32802 	const BYTE *nextSrc;
32803 	const BYTE *base;
32804 	const BYTE *dictBase;
32805 	U32 dictLimit;
32806 	U32 lowLimit;
32807 	U32 nbOverflowCorrections;
32808 } ZSTD_window_t;
32809 
32810 struct ZSTD_matchState_t;
32811 
32812 typedef struct ZSTD_matchState_t ZSTD_matchState_t;
32813 
32814 struct ZSTD_matchState_t {
32815 	ZSTD_window_t window;
32816 	U32 loadedDictEnd;
32817 	U32 nextToUpdate;
32818 	U32 hashLog3;
32819 	U32 rowHashLog;
32820 	U16 *tagTable;
32821 	U32 hashCache[8];
32822 	U32 *hashTable;
32823 	U32 *hashTable3;
32824 	U32 *chainTable;
32825 	U32 forceNonContiguous;
32826 	int dedicatedDictSearch;
32827 	optState_t opt;
32828 	const ZSTD_matchState_t *dictMatchState;
32829 	ZSTD_compressionParameters cParams;
32830 	const rawSeqStore_t *ldmSeqStore;
32831 };
32832 
32833 typedef enum {
32834 	ZSTD_dtlm_fast = 0,
32835 	ZSTD_dtlm_full = 1,
32836 } ZSTD_dictTableLoadMethod_e;
32837 
32838 typedef enum {
32839 	ZSTD_noDict = 0,
32840 	ZSTD_extDict = 1,
32841 	ZSTD_dictMatchState = 2,
32842 	ZSTD_dedicatedDictSearch = 3,
32843 } ZSTD_dictMode_e;
32844 
32845 struct repcodes_s {
32846 	U32 rep[3];
32847 };
32848 
32849 typedef struct repcodes_s repcodes_t;
32850 
32851 typedef U32 (*ZSTD_getAllMatchesFn)(ZSTD_match_t *, ZSTD_matchState_t *, U32 *, const BYTE *, const BYTE *, const U32 *, const U32, const U32);
32852 
32853 typedef struct {
32854 	rawSeqStore_t seqStore;
32855 	U32 startPosInBlock;
32856 	U32 endPosInBlock;
32857 	U32 offset;
32858 } ZSTD_optLdm_t;
32859 
32860 typedef struct {
32861 	size_t bitContainer;
32862 	unsigned int bitsConsumed;
32863 	const char *ptr;
32864 	const char *start;
32865 	const char *limitPtr;
32866 } BIT_DStream_t;
32867 
32868 typedef enum {
32869 	BIT_DStream_unfinished = 0,
32870 	BIT_DStream_endOfBuffer = 1,
32871 	BIT_DStream_completed = 2,
32872 	BIT_DStream_overflow = 3,
32873 } BIT_DStream_status;
32874 
32875 typedef U32 HUF_DTable;
32876 
32877 typedef struct {
32878 	U16 nextState;
32879 	BYTE nbAdditionalBits;
32880 	BYTE nbBits;
32881 	U32 baseValue;
32882 } ZSTD_seqSymbol;
32883 
32884 typedef struct {
32885 	ZSTD_seqSymbol LLTable[513];
32886 	ZSTD_seqSymbol OFTable[257];
32887 	ZSTD_seqSymbol MLTable[513];
32888 	HUF_DTable hufTable[4097];
32889 	U32 rep[3];
32890 	U32 workspace[157];
32891 } ZSTD_entropyDTables_t;
32892 
32893 typedef enum {
32894 	ZSTD_frame = 0,
32895 	ZSTD_skippableFrame = 1,
32896 } ZSTD_frameType_e;
32897 
32898 typedef struct {
32899 	long long unsigned int frameContentSize;
32900 	long long unsigned int windowSize;
32901 	unsigned int blockSizeMax;
32902 	ZSTD_frameType_e frameType;
32903 	unsigned int headerSize;
32904 	unsigned int dictID;
32905 	unsigned int checksumFlag;
32906 } ZSTD_frameHeader;
32907 
32908 typedef enum {
32909 	bt_raw = 0,
32910 	bt_rle = 1,
32911 	bt_compressed = 2,
32912 	bt_reserved = 3,
32913 } blockType_e;
32914 
32915 typedef enum {
32916 	ZSTDds_getFrameHeaderSize = 0,
32917 	ZSTDds_decodeFrameHeader = 1,
32918 	ZSTDds_decodeBlockHeader = 2,
32919 	ZSTDds_decompressBlock = 3,
32920 	ZSTDds_decompressLastBlock = 4,
32921 	ZSTDds_checkChecksum = 5,
32922 	ZSTDds_decodeSkippableHeader = 6,
32923 	ZSTDds_skipFrame = 7,
32924 } ZSTD_dStage;
32925 
32926 typedef enum {
32927 	ZSTD_f_zstd1 = 0,
32928 	ZSTD_f_zstd1_magicless = 1,
32929 } ZSTD_format_e;
32930 
32931 typedef enum {
32932 	ZSTD_d_validateChecksum = 0,
32933 	ZSTD_d_ignoreChecksum = 1,
32934 } ZSTD_forceIgnoreChecksum_e;
32935 
32936 typedef enum {
32937 	ZSTD_use_indefinitely = -1,
32938 	ZSTD_dont_use = 0,
32939 	ZSTD_use_once = 1,
32940 } ZSTD_dictUses_e;
32941 
32942 struct ZSTD_DDict_s;
32943 
32944 typedef struct ZSTD_DDict_s ZSTD_DDict;
32945 
32946 typedef struct {
32947 	const ZSTD_DDict **ddictPtrTable;
32948 	size_t ddictPtrTableSize;
32949 	size_t ddictPtrCount;
32950 } ZSTD_DDictHashSet;
32951 
32952 typedef enum {
32953 	ZSTD_rmd_refSingleDDict = 0,
32954 	ZSTD_rmd_refMultipleDDicts = 1,
32955 } ZSTD_refMultipleDDicts_e;
32956 
32957 typedef enum {
32958 	zdss_init = 0,
32959 	zdss_loadHeader = 1,
32960 	zdss_read = 2,
32961 	zdss_load = 3,
32962 	zdss_flush = 4,
32963 } ZSTD_dStreamStage;
32964 
32965 typedef enum {
32966 	ZSTD_bm_buffered = 0,
32967 	ZSTD_bm_stable = 1,
32968 } ZSTD_bufferMode_e;
32969 
32970 struct ZSTD_outBuffer_s {
32971 	void *dst;
32972 	size_t size;
32973 	size_t pos;
32974 };
32975 
32976 typedef struct ZSTD_outBuffer_s ZSTD_outBuffer;
32977 
32978 typedef enum {
32979 	ZSTD_not_in_dst = 0,
32980 	ZSTD_in_dst = 1,
32981 	ZSTD_split = 2,
32982 } ZSTD_litLocation_e;
32983 
32984 struct ZSTD_DCtx_s {
32985 	const ZSTD_seqSymbol *LLTptr;
32986 	const ZSTD_seqSymbol *MLTptr;
32987 	const ZSTD_seqSymbol *OFTptr;
32988 	const HUF_DTable *HUFptr;
32989 	ZSTD_entropyDTables_t entropy;
32990 	U32 workspace[640];
32991 	const void *previousDstEnd;
32992 	const void *prefixStart;
32993 	const void *virtualStart;
32994 	const void *dictEnd;
32995 	size_t expected;
32996 	ZSTD_frameHeader fParams;
32997 	U64 processedCSize;
32998 	U64 decodedSize;
32999 	blockType_e bType;
33000 	ZSTD_dStage stage;
33001 	U32 litEntropy;
33002 	U32 fseEntropy;
33003 	struct xxh64_state xxhState;
33004 	size_t headerSize;
33005 	ZSTD_format_e format;
33006 	ZSTD_forceIgnoreChecksum_e forceIgnoreChecksum;
33007 	U32 validateChecksum;
33008 	const BYTE *litPtr;
33009 	ZSTD_customMem customMem;
33010 	size_t litSize;
33011 	size_t rleSize;
33012 	size_t staticSize;
33013 	ZSTD_DDict *ddictLocal;
33014 	const ZSTD_DDict *ddict;
33015 	U32 dictID;
33016 	int ddictIsCold;
33017 	ZSTD_dictUses_e dictUses;
33018 	ZSTD_DDictHashSet *ddictSet;
33019 	ZSTD_refMultipleDDicts_e refMultipleDDicts;
33020 	ZSTD_dStreamStage streamStage;
33021 	char *inBuff;
33022 	size_t inBuffSize;
33023 	size_t inPos;
33024 	size_t maxWindowSize;
33025 	char *outBuff;
33026 	size_t outBuffSize;
33027 	size_t outStart;
33028 	size_t outEnd;
33029 	size_t lhSize;
33030 	U32 hostageByte;
33031 	int noForwardProgress;
33032 	ZSTD_bufferMode_e outBufferMode;
33033 	ZSTD_outBuffer expectedOutBuffer;
33034 	BYTE *litBuffer;
33035 	const BYTE *litBufferEnd;
33036 	ZSTD_litLocation_e litBufferLocation;
33037 	BYTE litExtraBuffer[65568];
33038 	BYTE headerBuffer[18];
33039 	size_t oversizedDuration;
33040 };
33041 
33042 typedef struct ZSTD_DCtx_s ZSTD_DCtx___2;
33043 
33044 struct ZSTD_DDict_s {
33045 	void *dictBuffer;
33046 	const void *dictContent;
33047 	size_t dictSize;
33048 	ZSTD_entropyDTables_t entropy;
33049 	U32 dictID;
33050 	U32 entropyPresent;
33051 	ZSTD_customMem cMem;
33052 };
33053 
33054 typedef struct {
33055 	blockType_e blockType;
33056 	U32 lastBlock;
33057 	U32 origSize;
33058 } blockProperties_t;
33059 
33060 typedef struct {
33061 	U32 fastMode;
33062 	U32 tableLog;
33063 } ZSTD_seqSymbol_header;
33064 
33065 typedef enum {
33066 	not_streaming = 0,
33067 	is_streaming = 1,
33068 } streaming_operation;
33069 
33070 typedef struct {
33071 	size_t litLength;
33072 	size_t matchLength;
33073 	size_t offset;
33074 } seq_t;
33075 
33076 typedef struct {
33077 	size_t state;
33078 	const ZSTD_seqSymbol *table;
33079 } ZSTD_fseState;
33080 
33081 typedef struct {
33082 	BIT_DStream_t DStream;
33083 	ZSTD_fseState stateLL;
33084 	ZSTD_fseState stateOffb;
33085 	ZSTD_fseState stateML;
33086 	size_t prevOffset[3];
33087 } seqState_t;
33088 
33089 typedef enum {
33090 	ZSTD_lo_isRegularOffset = 0,
33091 	ZSTD_lo_isLongOffset = 1,
33092 } ZSTD_longOffset_e;
33093 
33094 typedef enum {
33095 	ZSTD_error_no_error = 0,
33096 	ZSTD_error_GENERIC = 1,
33097 	ZSTD_error_prefix_unknown = 10,
33098 	ZSTD_error_version_unsupported = 12,
33099 	ZSTD_error_frameParameter_unsupported = 14,
33100 	ZSTD_error_frameParameter_windowTooLarge = 16,
33101 	ZSTD_error_corruption_detected = 20,
33102 	ZSTD_error_checksum_wrong = 22,
33103 	ZSTD_error_dictionary_corrupted = 30,
33104 	ZSTD_error_dictionary_wrong = 32,
33105 	ZSTD_error_dictionaryCreation_failed = 34,
33106 	ZSTD_error_parameter_unsupported = 40,
33107 	ZSTD_error_parameter_outOfBound = 42,
33108 	ZSTD_error_tableLog_tooLarge = 44,
33109 	ZSTD_error_maxSymbolValue_tooLarge = 46,
33110 	ZSTD_error_maxSymbolValue_tooSmall = 48,
33111 	ZSTD_error_stage_wrong = 60,
33112 	ZSTD_error_init_missing = 62,
33113 	ZSTD_error_memory_allocation = 64,
33114 	ZSTD_error_workSpace_tooSmall = 66,
33115 	ZSTD_error_dstSize_tooSmall = 70,
33116 	ZSTD_error_srcSize_wrong = 72,
33117 	ZSTD_error_dstBuffer_null = 74,
33118 	ZSTD_error_frameIndex_tooLarge = 100,
33119 	ZSTD_error_seekableIO = 102,
33120 	ZSTD_error_dstBuffer_wrong = 104,
33121 	ZSTD_error_srcBuffer_wrong = 105,
33122 	ZSTD_error_maxCode = 120,
33123 } ZSTD_ErrorCode;
33124 
33125 typedef ZSTD_ErrorCode ERR_enum;
33126 
33127 struct module_version_attribute {
33128 	struct module_attribute mattr;
33129 	const char *module_name;
33130 	const char *version;
33131 };
33132 
33133 enum xz_mode {
33134 	XZ_SINGLE = 0,
33135 	XZ_PREALLOC = 1,
33136 	XZ_DYNALLOC = 2,
33137 };
33138 
33139 enum xz_ret {
33140 	XZ_OK = 0,
33141 	XZ_STREAM_END = 1,
33142 	XZ_UNSUPPORTED_CHECK = 2,
33143 	XZ_MEM_ERROR = 3,
33144 	XZ_MEMLIMIT_ERROR = 4,
33145 	XZ_FORMAT_ERROR = 5,
33146 	XZ_OPTIONS_ERROR = 6,
33147 	XZ_DATA_ERROR = 7,
33148 	XZ_BUF_ERROR = 8,
33149 };
33150 
33151 struct xz_buf {
33152 	const uint8_t *in;
33153 	size_t in_pos;
33154 	size_t in_size;
33155 	uint8_t *out;
33156 	size_t out_pos;
33157 	size_t out_size;
33158 };
33159 
33160 struct xz_dec_microlzma;
33161 
33162 struct xz_dec;
33163 
33164 enum auditsc_class_t {
33165 	AUDITSC_NATIVE = 0,
33166 	AUDITSC_COMPAT = 1,
33167 	AUDITSC_OPEN = 2,
33168 	AUDITSC_OPENAT = 3,
33169 	AUDITSC_SOCKETCALL = 4,
33170 	AUDITSC_EXECVE = 5,
33171 	AUDITSC_OPENAT2 = 6,
33172 	AUDITSC_NVALS = 7,
33173 };
33174 
33175 struct seccomp_data {
33176 	int nr;
33177 	__u32 arch;
33178 	__u64 instruction_pointer;
33179 	__u64 args[6];
33180 };
33181 
33182 struct syscall_info {
33183 	__u64 sp;
33184 	struct seccomp_data data;
33185 };
33186 
33187 struct cpu_rmap {
33188 	struct kref refcount;
33189 	u16 size;
33190 	u16 used;
33191 	void **obj;
33192 	struct {
33193 		u16 index;
33194 		u16 dist;
33195 	} near[0];
33196 };
33197 
33198 struct irq_glue {
33199 	struct irq_affinity_notify notify;
33200 	struct cpu_rmap *rmap;
33201 	u16 index;
33202 };
33203 
33204 typedef mpi_limb_t *mpi_ptr_t;
33205 
33206 typedef int mpi_size_t;
33207 
33208 typedef mpi_limb_t UWtype;
33209 
33210 typedef unsigned int UHWtype;
33211 
33212 enum gcry_mpi_constants {
33213 	MPI_C_ZERO = 0,
33214 	MPI_C_ONE = 1,
33215 	MPI_C_TWO = 2,
33216 	MPI_C_THREE = 3,
33217 	MPI_C_FOUR = 4,
33218 	MPI_C_EIGHT = 5,
33219 };
33220 
33221 struct word_at_a_time {
33222 	const long unsigned int one_bits;
33223 	const long unsigned int high_bits;
33224 };
33225 
33226 struct sg_pool {
33227 	size_t size;
33228 	char *name;
33229 	struct kmem_cache *slab;
33230 	mempool_t *pool;
33231 };
33232 
33233 struct xbc_node {
33234 	uint16_t next;
33235 	uint16_t child;
33236 	uint16_t parent;
33237 	uint16_t data;
33238 };
33239 
33240 struct font_desc {
33241 	int idx;
33242 	const char *name;
33243 	unsigned int width;
33244 	unsigned int height;
33245 	unsigned int charcount;
33246 	const void *data;
33247 	int pref;
33248 };
33249 
33250 struct font_data {
33251 	unsigned int extra[4];
33252 	const unsigned char data[0];
33253 };
33254 
33255 typedef long int word_type;
33256 
33257 struct DWstruct {
33258 	int low;
33259 	int high;
33260 };
33261 
33262 typedef union {
33263 	struct DWstruct s;
33264 	long long int ll;
33265 } DWunion;
33266 
33267 typedef int (*of_init_fn_2)(struct device_node *, struct device_node *);
33268 
33269 enum {
33270 	IRQCHIP_FWNODE_REAL = 0,
33271 	IRQCHIP_FWNODE_NAMED = 1,
33272 	IRQCHIP_FWNODE_NAMED_ID = 2,
33273 };
33274 
33275 struct acpi_subtable_header {
33276 	u8 type;
33277 	u8 length;
33278 };
33279 
33280 struct acpi_madt_lio_pic {
33281 	struct acpi_subtable_header header;
33282 	u8 version;
33283 	u64 address;
33284 	u16 size;
33285 	u8 cascade[2];
33286 	u32 cascade_map[2];
33287 } __attribute__((packed));
33288 
33289 struct acpi_madt_eio_pic {
33290 	struct acpi_subtable_header header;
33291 	u8 version;
33292 	u8 cascade;
33293 	u8 node;
33294 	u64 node_map;
33295 } __attribute__((packed));
33296 
33297 struct acpi_table_header {
33298 	char signature[4];
33299 	u32 length;
33300 	u8 revision;
33301 	u8 checksum;
33302 	char oem_id[6];
33303 	char oem_table_id[8];
33304 	u32 oem_revision;
33305 	char asl_compiler_id[4];
33306 	u32 asl_compiler_revision;
33307 };
33308 
33309 struct acpi_cedt_header {
33310 	u8 type;
33311 	u8 reserved;
33312 	u16 length;
33313 };
33314 
33315 struct acpi_hmat_structure {
33316 	u16 type;
33317 	u16 reserved;
33318 	u32 length;
33319 };
33320 
33321 enum acpi_madt_type {
33322 	ACPI_MADT_TYPE_LOCAL_APIC = 0,
33323 	ACPI_MADT_TYPE_IO_APIC = 1,
33324 	ACPI_MADT_TYPE_INTERRUPT_OVERRIDE = 2,
33325 	ACPI_MADT_TYPE_NMI_SOURCE = 3,
33326 	ACPI_MADT_TYPE_LOCAL_APIC_NMI = 4,
33327 	ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE = 5,
33328 	ACPI_MADT_TYPE_IO_SAPIC = 6,
33329 	ACPI_MADT_TYPE_LOCAL_SAPIC = 7,
33330 	ACPI_MADT_TYPE_INTERRUPT_SOURCE = 8,
33331 	ACPI_MADT_TYPE_LOCAL_X2APIC = 9,
33332 	ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10,
33333 	ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11,
33334 	ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12,
33335 	ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13,
33336 	ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14,
33337 	ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15,
33338 	ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16,
33339 	ACPI_MADT_TYPE_CORE_PIC = 17,
33340 	ACPI_MADT_TYPE_LIO_PIC = 18,
33341 	ACPI_MADT_TYPE_HT_PIC = 19,
33342 	ACPI_MADT_TYPE_EIO_PIC = 20,
33343 	ACPI_MADT_TYPE_MSI_PIC = 21,
33344 	ACPI_MADT_TYPE_BIO_PIC = 22,
33345 	ACPI_MADT_TYPE_LPC_PIC = 23,
33346 	ACPI_MADT_TYPE_RESERVED = 24,
33347 	ACPI_MADT_TYPE_OEM_RESERVED = 128,
33348 };
33349 
33350 enum acpi_madt_core_pic_version {
33351 	ACPI_MADT_CORE_PIC_VERSION_NONE = 0,
33352 	ACPI_MADT_CORE_PIC_VERSION_V1 = 1,
33353 	ACPI_MADT_CORE_PIC_VERSION_RESERVED = 2,
33354 };
33355 
33356 struct acpi_prmt_module_header {
33357 	u16 revision;
33358 	u16 length;
33359 };
33360 
33361 enum acpi_irq_model_id {
33362 	ACPI_IRQ_MODEL_PIC = 0,
33363 	ACPI_IRQ_MODEL_IOAPIC = 1,
33364 	ACPI_IRQ_MODEL_IOSAPIC = 2,
33365 	ACPI_IRQ_MODEL_PLATFORM = 3,
33366 	ACPI_IRQ_MODEL_GIC = 4,
33367 	ACPI_IRQ_MODEL_LPIC = 5,
33368 	ACPI_IRQ_MODEL_COUNT = 6,
33369 };
33370 
33371 union acpi_subtable_headers {
33372 	struct acpi_subtable_header common;
33373 	struct acpi_hmat_structure hmat;
33374 	struct acpi_prmt_module_header prmt;
33375 	struct acpi_cedt_header cedt;
33376 };
33377 
33378 typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *);
33379 
33380 typedef int (*acpi_tbl_entry_handler)(union acpi_subtable_headers *, const long unsigned int);
33381 
33382 struct acpi_probe_entry;
33383 
33384 typedef bool (*acpi_probe_entry_validate_subtbl)(struct acpi_subtable_header *, struct acpi_probe_entry *);
33385 
33386 struct acpi_probe_entry {
33387 	__u8 id[5];
33388 	__u8 type;
33389 	acpi_probe_entry_validate_subtbl subtable_valid;
33390 	union {
33391 		acpi_tbl_table_handler probe_table;
33392 		acpi_tbl_entry_handler probe_subtbl;
33393 	};
33394 	kernel_ulong_t driver_data;
33395 };
33396 
33397 typedef int (*of_irq_init_cb_t)(struct device_node *, struct device_node *);
33398 
33399 struct acpi_madt_lpc_pic {
33400 	struct acpi_subtable_header header;
33401 	u8 version;
33402 	u64 address;
33403 	u16 size;
33404 	u8 cascade;
33405 } __attribute__((packed));
33406 
33407 struct acpi_madt_bio_pic {
33408 	struct acpi_subtable_header header;
33409 	u8 version;
33410 	u64 address;
33411 	u16 size;
33412 	u16 id;
33413 	u16 gsi_base;
33414 } __attribute__((packed));
33415 
33416 enum {
33417 	IRQCHIP_SET_TYPE_MASKED = 1,
33418 	IRQCHIP_EOI_IF_HANDLED = 2,
33419 	IRQCHIP_MASK_ON_SUSPEND = 4,
33420 	IRQCHIP_ONOFFLINE_ENABLED = 8,
33421 	IRQCHIP_SKIP_SET_WAKE = 16,
33422 	IRQCHIP_ONESHOT_SAFE = 32,
33423 	IRQCHIP_EOI_THREADED = 64,
33424 	IRQCHIP_SUPPORTS_LEVEL_MSI = 128,
33425 	IRQCHIP_SUPPORTS_NMI = 256,
33426 	IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND = 512,
33427 	IRQCHIP_AFFINITY_PRE_STARTUP = 1024,
33428 	IRQCHIP_IMMUTABLE = 2048,
33429 };
33430 
33431 struct pch_pic {
33432 	void *base;
33433 	struct irq_domain *pic_domain;
33434 	u32 ht_vec_base;
33435 	raw_spinlock_t pic_lock;
33436 	u32 vec_count;
33437 	u32 gsi_base;
33438 	u32 saved_vec_en[2];
33439 	u32 saved_vec_pol[2];
33440 	u32 saved_vec_edge[2];
33441 };
33442 
33443 struct of_phandle_args {
33444 	struct device_node *np;
33445 	int args_count;
33446 	uint32_t args[16];
33447 };
33448 
33449 enum {
33450 	IRQ_DOMAIN_FLAG_HIERARCHY = 1,
33451 	IRQ_DOMAIN_NAME_ALLOCATED = 2,
33452 	IRQ_DOMAIN_FLAG_IPI_PER_CPU = 4,
33453 	IRQ_DOMAIN_FLAG_IPI_SINGLE = 8,
33454 	IRQ_DOMAIN_FLAG_MSI = 16,
33455 	IRQ_DOMAIN_FLAG_MSI_REMAP = 32,
33456 	IRQ_DOMAIN_FLAG_NO_MAP = 64,
33457 	IRQ_DOMAIN_FLAG_MSI_PARENT = 256,
33458 	IRQ_DOMAIN_FLAG_MSI_DEVICE = 512,
33459 	IRQ_DOMAIN_FLAG_NONCORE = 65536,
33460 };
33461 
33462 enum pin_config_param {
33463 	PIN_CONFIG_BIAS_BUS_HOLD = 0,
33464 	PIN_CONFIG_BIAS_DISABLE = 1,
33465 	PIN_CONFIG_BIAS_HIGH_IMPEDANCE = 2,
33466 	PIN_CONFIG_BIAS_PULL_DOWN = 3,
33467 	PIN_CONFIG_BIAS_PULL_PIN_DEFAULT = 4,
33468 	PIN_CONFIG_BIAS_PULL_UP = 5,
33469 	PIN_CONFIG_DRIVE_OPEN_DRAIN = 6,
33470 	PIN_CONFIG_DRIVE_OPEN_SOURCE = 7,
33471 	PIN_CONFIG_DRIVE_PUSH_PULL = 8,
33472 	PIN_CONFIG_DRIVE_STRENGTH = 9,
33473 	PIN_CONFIG_DRIVE_STRENGTH_UA = 10,
33474 	PIN_CONFIG_INPUT_DEBOUNCE = 11,
33475 	PIN_CONFIG_INPUT_ENABLE = 12,
33476 	PIN_CONFIG_INPUT_SCHMITT = 13,
33477 	PIN_CONFIG_INPUT_SCHMITT_ENABLE = 14,
33478 	PIN_CONFIG_MODE_LOW_POWER = 15,
33479 	PIN_CONFIG_MODE_PWM = 16,
33480 	PIN_CONFIG_OUTPUT = 17,
33481 	PIN_CONFIG_OUTPUT_ENABLE = 18,
33482 	PIN_CONFIG_OUTPUT_IMPEDANCE_OHMS = 19,
33483 	PIN_CONFIG_PERSIST_STATE = 20,
33484 	PIN_CONFIG_POWER_SOURCE = 21,
33485 	PIN_CONFIG_SKEW_DELAY = 22,
33486 	PIN_CONFIG_SLEEP_HARDWARE_STATE = 23,
33487 	PIN_CONFIG_SLEW_RATE = 24,
33488 	PIN_CONFIG_END = 127,
33489 	PIN_CONFIG_MAX = 255,
33490 };
33491 
33492 struct gpio_chip;
33493 
33494 union gpio_irq_fwspec;
33495 
33496 struct gpio_irq_chip {
33497 	struct irq_chip *chip;
33498 	struct irq_domain *domain;
33499 	const struct irq_domain_ops *domain_ops;
33500 	struct fwnode_handle *fwnode;
33501 	struct irq_domain *parent_domain;
33502 	int (*child_to_parent_hwirq)(struct gpio_chip *, unsigned int, unsigned int, unsigned int *, unsigned int *);
33503 	int (*populate_parent_alloc_arg)(struct gpio_chip *, union gpio_irq_fwspec *, unsigned int, unsigned int);
33504 	unsigned int (*child_offset_to_irq)(struct gpio_chip *, unsigned int);
33505 	struct irq_domain_ops child_irq_domain_ops;
33506 	irq_flow_handler_t handler;
33507 	unsigned int default_type;
33508 	struct lock_class_key *lock_key;
33509 	struct lock_class_key *request_key;
33510 	irq_flow_handler_t parent_handler;
33511 	union {
33512 		void *parent_handler_data;
33513 		void **parent_handler_data_array;
33514 	};
33515 	unsigned int num_parents;
33516 	unsigned int *parents;
33517 	unsigned int *map;
33518 	bool threaded;
33519 	bool per_parent_data;
33520 	bool initialized;
33521 	int (*init_hw)(struct gpio_chip *);
33522 	void (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
33523 	long unsigned int *valid_mask;
33524 	unsigned int first;
33525 	void (*irq_enable)(struct irq_data *);
33526 	void (*irq_disable)(struct irq_data *);
33527 	void (*irq_unmask)(struct irq_data *);
33528 	void (*irq_mask)(struct irq_data *);
33529 };
33530 
33531 struct gpio_device;
33532 
33533 struct gpio_chip {
33534 	const char *label;
33535 	struct gpio_device *gpiodev;
33536 	struct device *parent;
33537 	struct fwnode_handle *fwnode;
33538 	struct module *owner;
33539 	int (*request)(struct gpio_chip *, unsigned int);
33540 	void (*free)(struct gpio_chip *, unsigned int);
33541 	int (*get_direction)(struct gpio_chip *, unsigned int);
33542 	int (*direction_input)(struct gpio_chip *, unsigned int);
33543 	int (*direction_output)(struct gpio_chip *, unsigned int, int);
33544 	int (*get)(struct gpio_chip *, unsigned int);
33545 	int (*get_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
33546 	void (*set)(struct gpio_chip *, unsigned int, int);
33547 	void (*set_multiple)(struct gpio_chip *, long unsigned int *, long unsigned int *);
33548 	int (*set_config)(struct gpio_chip *, unsigned int, long unsigned int);
33549 	int (*to_irq)(struct gpio_chip *, unsigned int);
33550 	void (*dbg_show)(struct seq_file *, struct gpio_chip *);
33551 	int (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int);
33552 	int (*add_pin_ranges)(struct gpio_chip *);
33553 	int (*en_hw_timestamp)(struct gpio_chip *, u32, long unsigned int);
33554 	int (*dis_hw_timestamp)(struct gpio_chip *, u32, long unsigned int);
33555 	int base;
33556 	u16 ngpio;
33557 	u16 offset;
33558 	const char * const *names;
33559 	bool can_sleep;
33560 	struct gpio_irq_chip irq;
33561 	long unsigned int *valid_mask;
33562 	struct device_node *of_node;
33563 	unsigned int of_gpio_n_cells;
33564 	int (*of_xlate)(struct gpio_chip *, const struct of_phandle_args *, u32 *);
33565 	int (*of_gpio_ranges_fallback)(struct gpio_chip *, struct device_node *);
33566 };
33567 
33568 struct msi_alloc_info {
33569 	struct msi_desc *desc;
33570 	irq_hw_number_t hwirq;
33571 	long unsigned int flags;
33572 	union {
33573 		long unsigned int ul;
33574 		void *ptr;
33575 	} scratchpad[2];
33576 };
33577 
33578 typedef struct msi_alloc_info msi_alloc_info_t;
33579 
33580 union gpio_irq_fwspec {
33581 	struct irq_fwspec fwspec;
33582 	msi_alloc_info_t msiinfo;
33583 };
33584 
33585 struct gpio_desc;
33586 
33587 struct gpio_device {
33588 	struct device dev;
33589 	struct cdev chrdev;
33590 	int id;
33591 	struct device *mockdev;
33592 	struct module *owner;
33593 	struct gpio_chip *chip;
33594 	struct gpio_desc *descs;
33595 	int base;
33596 	u16 ngpio;
33597 	const char *label;
33598 	void *data;
33599 	struct list_head list;
33600 	struct blocking_notifier_head notifier;
33601 	struct rw_semaphore sem;
33602 };
33603 
33604 struct gpio_array;
33605 
33606 struct gpio_descs {
33607 	struct gpio_array *info;
33608 	unsigned int ndescs;
33609 	struct gpio_desc *desc[0];
33610 };
33611 
33612 struct gpio_array {
33613 	struct gpio_desc **desc;
33614 	unsigned int size;
33615 	struct gpio_chip *chip;
33616 	long unsigned int *get_mask;
33617 	long unsigned int *set_mask;
33618 	long unsigned int invert_mask[0];
33619 };
33620 
33621 struct gpio_desc {
33622 	struct gpio_device *gdev;
33623 	long unsigned int flags;
33624 	const char *label;
33625 	const char *name;
33626 	struct device_node *hog;
33627 	unsigned int debounce_period_us;
33628 };
33629 
33630 enum gpiod_flags {
33631 	GPIOD_ASIS = 0,
33632 	GPIOD_IN = 1,
33633 	GPIOD_OUT_LOW = 3,
33634 	GPIOD_OUT_HIGH = 7,
33635 	GPIOD_OUT_LOW_OPEN_DRAIN = 11,
33636 	GPIOD_OUT_HIGH_OPEN_DRAIN = 15,
33637 };
33638 
33639 enum gpio_lookup_flags {
33640 	GPIO_ACTIVE_HIGH = 0,
33641 	GPIO_ACTIVE_LOW = 1,
33642 	GPIO_OPEN_DRAIN = 2,
33643 	GPIO_OPEN_SOURCE = 4,
33644 	GPIO_PERSISTENT = 0,
33645 	GPIO_TRANSITORY = 8,
33646 	GPIO_PULL_UP = 16,
33647 	GPIO_PULL_DOWN = 32,
33648 	GPIO_PULL_DISABLE = 64,
33649 	GPIO_LOOKUP_FLAGS_DEFAULT = 0,
33650 };
33651 
33652 struct gpiod_lookup {
33653 	const char *key;
33654 	u16 chip_hwnum;
33655 	const char *con_id;
33656 	unsigned int idx;
33657 	long unsigned int flags;
33658 };
33659 
33660 struct gpiod_lookup_table {
33661 	struct list_head list;
33662 	const char *dev_id;
33663 	struct gpiod_lookup table[0];
33664 };
33665 
33666 struct gpiod_hog {
33667 	struct list_head list;
33668 	const char *chip_label;
33669 	u16 chip_hwnum;
33670 	const char *line_name;
33671 	long unsigned int lflags;
33672 	int dflags;
33673 };
33674 
33675 enum {
33676 	GPIOLINE_CHANGED_REQUESTED = 1,
33677 	GPIOLINE_CHANGED_RELEASED = 2,
33678 	GPIOLINE_CHANGED_CONFIG = 3,
33679 };
33680 
33681 struct trace_event_raw_gpio_direction {
33682 	struct trace_entry ent;
33683 	unsigned int gpio;
33684 	int in;
33685 	int err;
33686 	char __data[0];
33687 };
33688 
33689 struct trace_event_raw_gpio_value {
33690 	struct trace_entry ent;
33691 	unsigned int gpio;
33692 	int get;
33693 	int value;
33694 	char __data[0];
33695 };
33696 
33697 struct trace_event_data_offsets_gpio_direction {};
33698 
33699 struct trace_event_data_offsets_gpio_value {};
33700 
33701 typedef void (*btf_trace_gpio_direction)(void *, unsigned int, int, int);
33702 
33703 typedef void (*btf_trace_gpio_value)(void *, unsigned int, int, int);
33704 
33705 enum dev_prop_type {
33706 	DEV_PROP_U8 = 0,
33707 	DEV_PROP_U16 = 1,
33708 	DEV_PROP_U32 = 2,
33709 	DEV_PROP_U64 = 3,
33710 	DEV_PROP_STRING = 4,
33711 	DEV_PROP_REF = 5,
33712 };
33713 
33714 struct property_entry;
33715 
33716 struct software_node {
33717 	const char *name;
33718 	const struct software_node *parent;
33719 	const struct property_entry *properties;
33720 };
33721 
33722 struct property_entry {
33723 	const char *name;
33724 	size_t length;
33725 	bool is_inline;
33726 	enum dev_prop_type type;
33727 	union {
33728 		const void *pointer;
33729 		union {
33730 			u8 u8_data[8];
33731 			u16 u16_data[4];
33732 			u32 u32_data[2];
33733 			u64 u64_data[1];
33734 			const char *str[1];
33735 		} value;
33736 	};
33737 };
33738 
33739 enum pwm_polarity {
33740 	PWM_POLARITY_NORMAL = 0,
33741 	PWM_POLARITY_INVERSED = 1,
33742 };
33743 
33744 struct pwm_args {
33745 	u64 period;
33746 	enum pwm_polarity polarity;
33747 };
33748 
33749 enum {
33750 	PWMF_REQUESTED = 1,
33751 	PWMF_EXPORTED = 2,
33752 };
33753 
33754 struct pwm_state {
33755 	u64 period;
33756 	u64 duty_cycle;
33757 	enum pwm_polarity polarity;
33758 	bool enabled;
33759 	bool usage_power;
33760 };
33761 
33762 struct pwm_chip;
33763 
33764 struct pwm_device {
33765 	const char *label;
33766 	long unsigned int flags;
33767 	unsigned int hwpwm;
33768 	unsigned int pwm;
33769 	struct pwm_chip *chip;
33770 	void *chip_data;
33771 	struct pwm_args args;
33772 	struct pwm_state state;
33773 	struct pwm_state last;
33774 };
33775 
33776 struct pwm_ops;
33777 
33778 struct pwm_chip {
33779 	struct device *dev;
33780 	const struct pwm_ops *ops;
33781 	int base;
33782 	unsigned int npwm;
33783 	struct pwm_device * (*of_xlate)(struct pwm_chip *, const struct of_phandle_args *);
33784 	unsigned int of_pwm_n_cells;
33785 	struct list_head list;
33786 	struct pwm_device *pwms;
33787 };
33788 
33789 struct pwm_capture {
33790 	unsigned int period;
33791 	unsigned int duty_cycle;
33792 };
33793 
33794 struct pwm_ops {
33795 	int (*request)(struct pwm_chip *, struct pwm_device *);
33796 	void (*free)(struct pwm_chip *, struct pwm_device *);
33797 	int (*capture)(struct pwm_chip *, struct pwm_device *, struct pwm_capture *, long unsigned int);
33798 	int (*apply)(struct pwm_chip *, struct pwm_device *, const struct pwm_state *);
33799 	int (*get_state)(struct pwm_chip *, struct pwm_device *, struct pwm_state *);
33800 	struct module *owner;
33801 };
33802 
33803 struct pwm_export {
33804 	struct device child;
33805 	struct pwm_device *pwm;
33806 	struct mutex lock;
33807 	struct pwm_state suspend;
33808 };
33809 
33810 struct pci_sriov {
33811 	int pos;
33812 	int nres;
33813 	u32 cap;
33814 	u16 ctrl;
33815 	u16 total_VFs;
33816 	u16 initial_VFs;
33817 	u16 num_VFs;
33818 	u16 offset;
33819 	u16 stride;
33820 	u16 vf_device;
33821 	u32 pgsz;
33822 	u8 link;
33823 	u8 max_VF_buses;
33824 	u16 driver_max_VFs;
33825 	struct pci_dev *dev;
33826 	struct pci_dev *self;
33827 	u32 class;
33828 	u8 hdr_type;
33829 	u16 subsystem_vendor;
33830 	u16 subsystem_device;
33831 	resource_size_t barsz[6];
33832 	bool drivers_autoprobe;
33833 };
33834 
33835 struct rcec_ea {
33836 	u8 nextbusn;
33837 	u8 lastbusn;
33838 	u32 bitmap;
33839 };
33840 
33841 struct pci_bus_resource {
33842 	struct list_head list;
33843 	struct resource *res;
33844 	unsigned int flags;
33845 };
33846 
33847 typedef u64 pci_bus_addr_t;
33848 
33849 struct pci_bus_region {
33850 	pci_bus_addr_t start;
33851 	pci_bus_addr_t end;
33852 };
33853 
33854 enum pci_fixup_pass {
33855 	pci_fixup_early = 0,
33856 	pci_fixup_header = 1,
33857 	pci_fixup_final = 2,
33858 	pci_fixup_enable = 3,
33859 	pci_fixup_resume = 4,
33860 	pci_fixup_suspend = 5,
33861 	pci_fixup_resume_early = 6,
33862 	pci_fixup_suspend_late = 7,
33863 };
33864 
33865 struct dmi_strmatch {
33866 	unsigned char slot: 7;
33867 	unsigned char exact_match: 1;
33868 	char substr[79];
33869 };
33870 
33871 struct dmi_system_id {
33872 	int (*callback)(const struct dmi_system_id *);
33873 	const char *ident;
33874 	struct dmi_strmatch matches[4];
33875 	void *driver_data;
33876 };
33877 
33878 struct bus_attribute {
33879 	struct attribute attr;
33880 	ssize_t (*show)(struct bus_type *, char *);
33881 	ssize_t (*store)(struct bus_type *, const char *, size_t);
33882 };
33883 
33884 struct msi_dev_domain {
33885 	struct xarray store;
33886 	struct irq_domain *domain;
33887 };
33888 
33889 struct platform_msi_priv_data;
33890 
33891 struct msi_device_data {
33892 	long unsigned int properties;
33893 	struct platform_msi_priv_data *platform_data;
33894 	struct mutex mutex;
33895 	struct msi_dev_domain __domains[2];
33896 	long unsigned int __iter_idx;
33897 };
33898 
33899 typedef u64 acpi_io_address;
33900 
33901 typedef void *acpi_handle;
33902 
33903 typedef u32 acpi_object_type;
33904 
33905 union acpi_object {
33906 	acpi_object_type type;
33907 	struct {
33908 		acpi_object_type type;
33909 		u64 value;
33910 	} integer;
33911 	struct {
33912 		acpi_object_type type;
33913 		u32 length;
33914 		char *pointer;
33915 	} string;
33916 	struct {
33917 		acpi_object_type type;
33918 		u32 length;
33919 		u8 *pointer;
33920 	} buffer;
33921 	struct {
33922 		acpi_object_type type;
33923 		u32 count;
33924 		union acpi_object *elements;
33925 	} package;
33926 	struct {
33927 		acpi_object_type type;
33928 		acpi_object_type actual_type;
33929 		acpi_handle handle;
33930 	} reference;
33931 	struct {
33932 		acpi_object_type type;
33933 		u32 proc_id;
33934 		acpi_io_address pblk_address;
33935 		u32 pblk_length;
33936 	} processor;
33937 	struct {
33938 		acpi_object_type type;
33939 		u32 system_level;
33940 		u32 resource_order;
33941 	} power_resource;
33942 };
33943 
33944 struct acpi_device;
33945 
33946 struct acpi_hotplug_profile {
33947 	struct kobject kobj;
33948 	int (*scan_dependent)(struct acpi_device *);
33949 	void (*notify_online)(struct acpi_device *);
33950 	bool enabled: 1;
33951 	bool demand_offline: 1;
33952 };
33953 
33954 struct acpi_device_status {
33955 	u32 present: 1;
33956 	u32 enabled: 1;
33957 	u32 show_in_ui: 1;
33958 	u32 functional: 1;
33959 	u32 battery_present: 1;
33960 	u32 reserved: 27;
33961 };
33962 
33963 struct acpi_device_flags {
33964 	u32 dynamic_status: 1;
33965 	u32 removable: 1;
33966 	u32 ejectable: 1;
33967 	u32 power_manageable: 1;
33968 	u32 match_driver: 1;
33969 	u32 initialized: 1;
33970 	u32 visited: 1;
33971 	u32 hotplug_notify: 1;
33972 	u32 is_dock_station: 1;
33973 	u32 of_compatible_ok: 1;
33974 	u32 coherent_dma: 1;
33975 	u32 cca_seen: 1;
33976 	u32 enumeration_by_parent: 1;
33977 	u32 honor_deps: 1;
33978 	u32 reserved: 18;
33979 };
33980 
33981 typedef char acpi_bus_id[8];
33982 
33983 struct acpi_pnp_type {
33984 	u32 hardware_id: 1;
33985 	u32 bus_address: 1;
33986 	u32 platform_id: 1;
33987 	u32 backlight: 1;
33988 	u32 reserved: 28;
33989 };
33990 
33991 typedef u64 acpi_bus_address;
33992 
33993 typedef char acpi_device_name[40];
33994 
33995 typedef char acpi_device_class[20];
33996 
33997 struct acpi_device_pnp {
33998 	acpi_bus_id bus_id;
33999 	int instance_no;
34000 	struct acpi_pnp_type type;
34001 	acpi_bus_address bus_address;
34002 	char *unique_id;
34003 	struct list_head ids;
34004 	acpi_device_name device_name;
34005 	acpi_device_class device_class;
34006 	union acpi_object *str_obj;
34007 };
34008 
34009 struct acpi_device_power_flags {
34010 	u32 explicit_get: 1;
34011 	u32 power_resources: 1;
34012 	u32 inrush_current: 1;
34013 	u32 power_removed: 1;
34014 	u32 ignore_parent: 1;
34015 	u32 dsw_present: 1;
34016 	u32 reserved: 26;
34017 };
34018 
34019 struct acpi_device_power_state {
34020 	struct {
34021 		u8 valid: 1;
34022 		u8 explicit_set: 1;
34023 		u8 reserved: 6;
34024 	} flags;
34025 	int power;
34026 	int latency;
34027 	struct list_head resources;
34028 };
34029 
34030 struct acpi_device_power {
34031 	int state;
34032 	struct acpi_device_power_flags flags;
34033 	struct acpi_device_power_state states[5];
34034 	u8 state_for_enumeration;
34035 };
34036 
34037 struct acpi_device_wakeup_flags {
34038 	u8 valid: 1;
34039 	u8 notifier_present: 1;
34040 };
34041 
34042 struct acpi_device_wakeup_context {
34043 	void (*func)(struct acpi_device_wakeup_context *);
34044 	struct device *dev;
34045 };
34046 
34047 struct acpi_device_wakeup {
34048 	acpi_handle gpe_device;
34049 	u64 gpe_number;
34050 	u64 sleep_state;
34051 	struct list_head resources;
34052 	struct acpi_device_wakeup_flags flags;
34053 	struct acpi_device_wakeup_context context;
34054 	struct wakeup_source *ws;
34055 	int prepare_count;
34056 	int enable_count;
34057 };
34058 
34059 struct acpi_device_perf_flags {
34060 	u8 reserved: 8;
34061 };
34062 
34063 struct acpi_device_perf_state;
34064 
34065 struct acpi_device_perf {
34066 	int state;
34067 	struct acpi_device_perf_flags flags;
34068 	int state_count;
34069 	struct acpi_device_perf_state *states;
34070 };
34071 
34072 struct acpi_device_dir {
34073 	struct proc_dir_entry *entry;
34074 };
34075 
34076 struct acpi_device_data {
34077 	const union acpi_object *pointer;
34078 	struct list_head properties;
34079 	const union acpi_object *of_compatible;
34080 	struct list_head subnodes;
34081 };
34082 
34083 struct acpi_scan_handler;
34084 
34085 struct acpi_hotplug_context;
34086 
34087 struct acpi_gpio_mapping;
34088 
34089 struct acpi_device {
34090 	u32 pld_crc;
34091 	int device_type;
34092 	acpi_handle handle;
34093 	struct fwnode_handle fwnode;
34094 	struct list_head wakeup_list;
34095 	struct list_head del_list;
34096 	struct acpi_device_status status;
34097 	struct acpi_device_flags flags;
34098 	struct acpi_device_pnp pnp;
34099 	struct acpi_device_power power;
34100 	struct acpi_device_wakeup wakeup;
34101 	struct acpi_device_perf performance;
34102 	struct acpi_device_dir dir;
34103 	struct acpi_device_data data;
34104 	struct acpi_scan_handler *handler;
34105 	struct acpi_hotplug_context *hp;
34106 	const struct acpi_gpio_mapping *driver_gpios;
34107 	void *driver_data;
34108 	struct device dev;
34109 	unsigned int physical_node_count;
34110 	unsigned int dep_unmet;
34111 	struct list_head physical_node_list;
34112 	struct mutex physical_node_lock;
34113 	void (*remove)(struct acpi_device *);
34114 };
34115 
34116 struct acpi_scan_handler {
34117 	const struct acpi_device_id *ids;
34118 	struct list_head list_node;
34119 	bool (*match)(const char *, const struct acpi_device_id **);
34120 	int (*attach)(struct acpi_device *, const struct acpi_device_id *);
34121 	void (*detach)(struct acpi_device *);
34122 	void (*bind)(struct device *);
34123 	void (*unbind)(struct device *);
34124 	struct acpi_hotplug_profile hotplug;
34125 };
34126 
34127 struct acpi_hotplug_context {
34128 	struct acpi_device *self;
34129 	int (*notify)(struct acpi_device *, u32);
34130 	void (*uevent)(struct acpi_device *, u32);
34131 	void (*fixup)(struct acpi_device *);
34132 };
34133 
34134 struct acpi_device_perf_state {
34135 	struct {
34136 		u8 valid: 1;
34137 		u8 reserved: 7;
34138 	} flags;
34139 	u8 power;
34140 	u8 performance;
34141 	int latency;
34142 };
34143 
34144 struct acpi_gpio_params;
34145 
34146 struct acpi_gpio_mapping {
34147 	const char *name;
34148 	const struct acpi_gpio_params *data;
34149 	unsigned int size;
34150 	unsigned int quirks;
34151 };
34152 
34153 enum msi_domain_ids {
34154 	MSI_DEFAULT_DOMAIN = 0,
34155 	MSI_SECONDARY_DOMAIN = 1,
34156 	MSI_MAX_DEVICE_IRQDOMAINS = 2,
34157 };
34158 
34159 union msi_instance_cookie {
34160 	u64 value;
34161 	void *ptr;
34162 };
34163 
34164 struct arch_msi_msg_addr_lo {
34165 	u32 address_lo;
34166 };
34167 
34168 typedef struct arch_msi_msg_addr_lo arch_msi_msg_addr_lo_t;
34169 
34170 struct arch_msi_msg_addr_hi {
34171 	u32 address_hi;
34172 };
34173 
34174 typedef struct arch_msi_msg_addr_hi arch_msi_msg_addr_hi_t;
34175 
34176 struct arch_msi_msg_data {
34177 	u32 data;
34178 };
34179 
34180 typedef struct arch_msi_msg_data arch_msi_msg_data_t;
34181 
34182 struct msi_msg {
34183 	union {
34184 		u32 address_lo;
34185 		arch_msi_msg_addr_lo_t arch_addr_lo;
34186 	};
34187 	union {
34188 		u32 address_hi;
34189 		arch_msi_msg_addr_hi_t arch_addr_hi;
34190 	};
34191 	union {
34192 		u32 data;
34193 		arch_msi_msg_data_t arch_data;
34194 	};
34195 };
34196 
34197 struct pci_msi_desc {
34198 	union {
34199 		u32 msi_mask;
34200 		u32 msix_ctrl;
34201 	};
34202 	struct {
34203 		u8 is_msix: 1;
34204 		u8 multiple: 3;
34205 		u8 multi_cap: 3;
34206 		u8 can_mask: 1;
34207 		u8 is_64: 1;
34208 		u8 is_virtual: 1;
34209 		unsigned int default_irq;
34210 	} msi_attrib;
34211 	union {
34212 		u8 mask_pos;
34213 		void *mask_base;
34214 	};
34215 };
34216 
34217 union msi_domain_cookie {
34218 	u64 value;
34219 	void *ptr;
34220 	void *iobase;
34221 };
34222 
34223 struct msi_desc_data {
34224 	union msi_domain_cookie dcookie;
34225 	union msi_instance_cookie icookie;
34226 };
34227 
34228 struct msi_desc {
34229 	unsigned int irq;
34230 	unsigned int nvec_used;
34231 	struct device *dev;
34232 	struct msi_msg msg;
34233 	struct irq_affinity_desc *affinity;
34234 	struct device_attribute *sysfs_attrs;
34235 	void (*write_msi_msg)(struct msi_desc *, void *);
34236 	void *write_msi_msg_data;
34237 	u16 msi_index;
34238 	union {
34239 		struct pci_msi_desc pci;
34240 		struct msi_desc_data data;
34241 	};
34242 };
34243 
34244 struct msi_domain_ops {
34245 	irq_hw_number_t (*get_hwirq)(struct msi_domain_info *, msi_alloc_info_t *);
34246 	int (*msi_init)(struct irq_domain *, struct msi_domain_info *, unsigned int, irq_hw_number_t, msi_alloc_info_t *);
34247 	void (*msi_free)(struct irq_domain *, struct msi_domain_info *, unsigned int);
34248 	int (*msi_prepare)(struct irq_domain *, struct device *, int, msi_alloc_info_t *);
34249 	void (*prepare_desc)(struct irq_domain *, msi_alloc_info_t *, struct msi_desc *);
34250 	void (*set_desc)(msi_alloc_info_t *, struct msi_desc *);
34251 	int (*domain_alloc_irqs)(struct irq_domain *, struct device *, int);
34252 	void (*domain_free_irqs)(struct irq_domain *, struct device *);
34253 	void (*msi_post_free)(struct irq_domain *, struct device *);
34254 };
34255 
34256 struct msi_domain_info {
34257 	u32 flags;
34258 	enum irq_domain_bus_token bus_token;
34259 	unsigned int hwsize;
34260 	struct msi_domain_ops *ops;
34261 	struct irq_chip *chip;
34262 	void *chip_data;
34263 	irq_flow_handler_t handler;
34264 	void *handler_data;
34265 	const char *handler_name;
34266 	void *data;
34267 };
34268 
34269 struct hotplug_slot_ops;
34270 
34271 struct hotplug_slot {
34272 	const struct hotplug_slot_ops *ops;
34273 	struct list_head slot_list;
34274 	struct pci_slot *pci_slot;
34275 	struct module *owner;
34276 	const char *mod_name;
34277 };
34278 
34279 enum {
34280 	pci_channel_io_normal = 1,
34281 	pci_channel_io_frozen = 2,
34282 	pci_channel_io_perm_failure = 3,
34283 };
34284 
34285 enum pcie_reset_state {
34286 	pcie_deassert_reset = 1,
34287 	pcie_warm_reset = 2,
34288 	pcie_hot_reset = 3,
34289 };
34290 
34291 enum pci_dev_flags {
34292 	PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG = 1,
34293 	PCI_DEV_FLAGS_NO_D3 = 2,
34294 	PCI_DEV_FLAGS_ASSIGNED = 4,
34295 	PCI_DEV_FLAGS_ACS_ENABLED_QUIRK = 8,
34296 	PCI_DEV_FLAG_PCIE_BRIDGE_ALIAS = 32,
34297 	PCI_DEV_FLAGS_NO_BUS_RESET = 64,
34298 	PCI_DEV_FLAGS_NO_PM_RESET = 128,
34299 	PCI_DEV_FLAGS_VPD_REF_F0 = 256,
34300 	PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT = 512,
34301 	PCI_DEV_FLAGS_NO_FLR_RESET = 1024,
34302 	PCI_DEV_FLAGS_NO_RELAXED_ORDERING = 2048,
34303 	PCI_DEV_FLAGS_HAS_MSI_MASKING = 4096,
34304 };
34305 
34306 enum pci_bus_flags {
34307 	PCI_BUS_FLAGS_NO_MSI = 1,
34308 	PCI_BUS_FLAGS_NO_MMRBC = 2,
34309 	PCI_BUS_FLAGS_NO_AERSID = 4,
34310 	PCI_BUS_FLAGS_NO_EXTCFG = 8,
34311 };
34312 
34313 enum pcie_link_width {
34314 	PCIE_LNK_WIDTH_RESRV = 0,
34315 	PCIE_LNK_X1 = 1,
34316 	PCIE_LNK_X2 = 2,
34317 	PCIE_LNK_X4 = 4,
34318 	PCIE_LNK_X8 = 8,
34319 	PCIE_LNK_X12 = 12,
34320 	PCIE_LNK_X16 = 16,
34321 	PCIE_LNK_X32 = 32,
34322 	PCIE_LNK_WIDTH_UNKNOWN = 255,
34323 };
34324 
34325 enum pci_bus_speed {
34326 	PCI_SPEED_33MHz = 0,
34327 	PCI_SPEED_66MHz = 1,
34328 	PCI_SPEED_66MHz_PCIX = 2,
34329 	PCI_SPEED_100MHz_PCIX = 3,
34330 	PCI_SPEED_133MHz_PCIX = 4,
34331 	PCI_SPEED_66MHz_PCIX_ECC = 5,
34332 	PCI_SPEED_100MHz_PCIX_ECC = 6,
34333 	PCI_SPEED_133MHz_PCIX_ECC = 7,
34334 	PCI_SPEED_66MHz_PCIX_266 = 9,
34335 	PCI_SPEED_100MHz_PCIX_266 = 10,
34336 	PCI_SPEED_133MHz_PCIX_266 = 11,
34337 	AGP_UNKNOWN = 12,
34338 	AGP_1X = 13,
34339 	AGP_2X = 14,
34340 	AGP_4X = 15,
34341 	AGP_8X = 16,
34342 	PCI_SPEED_66MHz_PCIX_533 = 17,
34343 	PCI_SPEED_100MHz_PCIX_533 = 18,
34344 	PCI_SPEED_133MHz_PCIX_533 = 19,
34345 	PCIE_SPEED_2_5GT = 20,
34346 	PCIE_SPEED_5_0GT = 21,
34347 	PCIE_SPEED_8_0GT = 22,
34348 	PCIE_SPEED_16_0GT = 23,
34349 	PCIE_SPEED_32_0GT = 24,
34350 	PCIE_SPEED_64_0GT = 25,
34351 	PCI_SPEED_UNKNOWN = 255,
34352 };
34353 
34354 struct pci_host_bridge {
34355 	struct device dev;
34356 	struct pci_bus *bus;
34357 	struct pci_ops *ops;
34358 	struct pci_ops *child_ops;
34359 	void *sysdata;
34360 	int busnr;
34361 	int domain_nr;
34362 	struct list_head windows;
34363 	struct list_head dma_ranges;
34364 	u8 (*swizzle_irq)(struct pci_dev *, u8 *);
34365 	int (*map_irq)(const struct pci_dev *, u8, u8);
34366 	void (*release_fn)(struct pci_host_bridge *);
34367 	void *release_data;
34368 	unsigned int ignore_reset_delay: 1;
34369 	unsigned int no_ext_tags: 1;
34370 	unsigned int no_inc_mrrs: 1;
34371 	unsigned int native_aer: 1;
34372 	unsigned int native_pcie_hotplug: 1;
34373 	unsigned int native_shpc_hotplug: 1;
34374 	unsigned int native_pme: 1;
34375 	unsigned int native_ltr: 1;
34376 	unsigned int native_dpc: 1;
34377 	unsigned int preserve_config: 1;
34378 	unsigned int size_windows: 1;
34379 	unsigned int msi_domain: 1;
34380 	resource_size_t (*align_resource)(struct pci_dev *, const struct resource *, resource_size_t, resource_size_t, resource_size_t);
34381 	long: 64;
34382 	long: 64;
34383 	long: 64;
34384 	long: 64;
34385 	long: 64;
34386 	long unsigned int private[0];
34387 };
34388 
34389 enum {
34390 	PCI_REASSIGN_ALL_RSRC = 1,
34391 	PCI_REASSIGN_ALL_BUS = 2,
34392 	PCI_PROBE_ONLY = 4,
34393 	PCI_CAN_SKIP_ISA_ALIGN = 8,
34394 	PCI_ENABLE_PROC_DOMAINS = 16,
34395 	PCI_COMPAT_DOMAIN_0 = 32,
34396 	PCI_SCAN_ALL_PCIE_DEVS = 64,
34397 };
34398 
34399 enum pcie_bus_config_types {
34400 	PCIE_BUS_TUNE_OFF = 0,
34401 	PCIE_BUS_DEFAULT = 1,
34402 	PCIE_BUS_SAFE = 2,
34403 	PCIE_BUS_PERFORMANCE = 3,
34404 	PCIE_BUS_PEER2PEER = 4,
34405 };
34406 
34407 typedef int (*arch_set_vga_state_t)(struct pci_dev *, bool, unsigned int, u32);
34408 
34409 struct hotplug_slot_ops {
34410 	int (*enable_slot)(struct hotplug_slot *);
34411 	int (*disable_slot)(struct hotplug_slot *);
34412 	int (*set_attention_status)(struct hotplug_slot *, u8);
34413 	int (*hardware_test)(struct hotplug_slot *, u32);
34414 	int (*get_power_status)(struct hotplug_slot *, u8 *);
34415 	int (*get_attention_status)(struct hotplug_slot *, u8 *);
34416 	int (*get_latch_status)(struct hotplug_slot *, u8 *);
34417 	int (*get_adapter_status)(struct hotplug_slot *, u8 *);
34418 	int (*reset_slot)(struct hotplug_slot *, bool);
34419 };
34420 
34421 struct pci_cap_saved_data {
34422 	u16 cap_nr;
34423 	bool cap_extended;
34424 	unsigned int size;
34425 	u32 data[0];
34426 };
34427 
34428 struct pci_cap_saved_state {
34429 	struct hlist_node next;
34430 	struct pci_cap_saved_data cap;
34431 };
34432 
34433 struct pci_reset_fn_method {
34434 	int (*reset_fn)(struct pci_dev *, bool);
34435 	char *name;
34436 };
34437 
34438 struct pci_pme_device {
34439 	struct list_head list;
34440 	struct pci_dev *dev;
34441 };
34442 
34443 struct pci_saved_state {
34444 	u32 config_space[16];
34445 	struct pci_cap_saved_data cap[0];
34446 };
34447 
34448 struct pci_devres {
34449 	unsigned int enabled: 1;
34450 	unsigned int pinned: 1;
34451 	unsigned int orig_intx: 1;
34452 	unsigned int restore_intx: 1;
34453 	unsigned int mwi: 1;
34454 	u32 region_mask;
34455 };
34456 
34457 struct irq_affinity {
34458 	unsigned int pre_vectors;
34459 	unsigned int post_vectors;
34460 	unsigned int nr_sets;
34461 	unsigned int set_size[4];
34462 	void (*calc_sets)(struct irq_affinity *, unsigned int);
34463 	void *priv;
34464 };
34465 
34466 struct msix_entry {
34467 	u32 vector;
34468 	u16 entry;
34469 };
34470 
34471 enum msi_desc_filter {
34472 	MSI_DESC_ALL = 0,
34473 	MSI_DESC_NOTASSOCIATED = 1,
34474 	MSI_DESC_ASSOCIATED = 2,
34475 };
34476 
34477 enum {
34478 	MSI_FLAG_USE_DEF_DOM_OPS = 1,
34479 	MSI_FLAG_USE_DEF_CHIP_OPS = 2,
34480 	MSI_FLAG_ACTIVATE_EARLY = 4,
34481 	MSI_FLAG_MUST_REACTIVATE = 8,
34482 	MSI_FLAG_DEV_SYSFS = 16,
34483 	MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS = 32,
34484 	MSI_FLAG_FREE_MSI_DESCS = 64,
34485 	MSI_FLAG_NOMASK_QUIRK = 128,
34486 	MSI_GENERIC_FLAGS_MASK = 65535,
34487 	MSI_DOMAIN_FLAGS_MASK = 4294901760,
34488 	MSI_FLAG_MULTI_PCI_MSI = 65536,
34489 	MSI_FLAG_PCI_MSIX = 131072,
34490 	MSI_FLAG_LEVEL_CAPABLE = 262144,
34491 	MSI_FLAG_MSIX_CONTIGUOUS = 524288,
34492 	MSI_FLAG_PCI_MSIX_ALLOC_DYN = 1048576,
34493 	MSI_FLAG_PCI_IMS = 2097152,
34494 };
34495 
34496 enum support_mode {
34497 	ALLOW_LEGACY = 0,
34498 	DENY_LEGACY = 1,
34499 };
34500 
34501 enum pci_ers_result {
34502 	PCI_ERS_RESULT_NONE = 1,
34503 	PCI_ERS_RESULT_CAN_RECOVER = 2,
34504 	PCI_ERS_RESULT_NEED_RESET = 3,
34505 	PCI_ERS_RESULT_DISCONNECT = 4,
34506 	PCI_ERS_RESULT_RECOVERED = 5,
34507 	PCI_ERS_RESULT_NO_AER_DRIVER = 6,
34508 };
34509 
34510 struct pcie_device {
34511 	int irq;
34512 	struct pci_dev *port;
34513 	u32 service;
34514 	void *priv_data;
34515 	struct device device;
34516 };
34517 
34518 struct pcie_port_service_driver {
34519 	const char *name;
34520 	int (*probe)(struct pcie_device *);
34521 	void (*remove)(struct pcie_device *);
34522 	int (*suspend)(struct pcie_device *);
34523 	int (*resume_noirq)(struct pcie_device *);
34524 	int (*resume)(struct pcie_device *);
34525 	int (*runtime_suspend)(struct pcie_device *);
34526 	int (*runtime_resume)(struct pcie_device *);
34527 	int (*slot_reset)(struct pcie_device *);
34528 	int port_type;
34529 	u32 service;
34530 	struct device_driver driver;
34531 };
34532 
34533 struct portdrv_service_data {
34534 	struct pcie_port_service_driver *drv;
34535 	struct device *dev;
34536 	u32 service;
34537 };
34538 
34539 typedef int (*pcie_callback_t)(struct pcie_device *);
34540 
34541 enum pci_mmap_state {
34542 	pci_mmap_io = 0,
34543 	pci_mmap_mem = 1,
34544 };
34545 
34546 enum pci_mmap_api {
34547 	PCI_MMAP_SYSFS = 0,
34548 	PCI_MMAP_PROCFS = 1,
34549 };
34550 
34551 struct pci_filp_private {
34552 	enum pci_mmap_state mmap_state;
34553 	int write_combine;
34554 };
34555 
34556 struct controller {
34557 	struct pcie_device *pcie;
34558 	u32 slot_cap;
34559 	unsigned int inband_presence_disabled: 1;
34560 	u16 slot_ctrl;
34561 	struct mutex ctrl_lock;
34562 	long unsigned int cmd_started;
34563 	unsigned int cmd_busy: 1;
34564 	wait_queue_head_t queue;
34565 	atomic_t pending_events;
34566 	unsigned int notification_enabled: 1;
34567 	unsigned int power_fault_detected;
34568 	struct task_struct *poll_thread;
34569 	u8 state;
34570 	struct mutex state_lock;
34571 	struct delayed_work button_work;
34572 	struct hotplug_slot hotplug_slot;
34573 	struct rw_semaphore reset_lock;
34574 	unsigned int depth;
34575 	unsigned int ist_running;
34576 	int request_result;
34577 	wait_queue_head_t requester;
34578 };
34579 
34580 struct controller___2;
34581 
34582 struct hpc_ops;
34583 
34584 struct slot {
34585 	u8 bus;
34586 	u8 device;
34587 	u16 status;
34588 	u32 number;
34589 	u8 is_a_board;
34590 	u8 state;
34591 	u8 attention_save;
34592 	u8 presence_save;
34593 	u8 latch_save;
34594 	u8 pwr_save;
34595 	struct controller___2 *ctrl;
34596 	const struct hpc_ops *hpc_ops;
34597 	struct hotplug_slot hotplug_slot;
34598 	struct list_head slot_list;
34599 	struct delayed_work work;
34600 	struct mutex lock;
34601 	struct workqueue_struct *wq;
34602 	u8 hp_slot;
34603 };
34604 
34605 struct controller___2 {
34606 	struct mutex crit_sect;
34607 	struct mutex cmd_lock;
34608 	int num_slots;
34609 	int slot_num_inc;
34610 	struct pci_dev *pci_dev;
34611 	struct list_head slot_list;
34612 	const struct hpc_ops *hpc_ops;
34613 	wait_queue_head_t queue;
34614 	u8 slot_device_offset;
34615 	u32 pcix_misc2_reg;
34616 	u32 first_slot;
34617 	u32 cap_offset;
34618 	long unsigned int mmio_base;
34619 	long unsigned int mmio_size;
34620 	void *creg;
34621 	struct timer_list poll_timer;
34622 };
34623 
34624 struct hpc_ops {
34625 	int (*power_on_slot)(struct slot *);
34626 	int (*slot_enable)(struct slot *);
34627 	int (*slot_disable)(struct slot *);
34628 	int (*set_bus_speed_mode)(struct slot *, enum pci_bus_speed);
34629 	int (*get_power_status)(struct slot *, u8 *);
34630 	int (*get_attention_status)(struct slot *, u8 *);
34631 	int (*set_attention_status)(struct slot *, u8);
34632 	int (*get_latch_status)(struct slot *, u8 *);
34633 	int (*get_adapter_status)(struct slot *, u8 *);
34634 	int (*get_adapter_speed)(struct slot *, enum pci_bus_speed *);
34635 	int (*get_prog_int)(struct slot *, u8 *);
34636 	int (*query_power_fault)(struct slot *);
34637 	void (*green_led_on)(struct slot *);
34638 	void (*green_led_off)(struct slot *);
34639 	void (*green_led_blink)(struct slot *);
34640 	void (*release_ctlr)(struct controller___2 *);
34641 	int (*check_cmd_status)(struct controller___2 *);
34642 };
34643 
34644 enum ctrl_offsets {
34645 	BASE_OFFSET = 0,
34646 	SLOT_AVAIL1 = 4,
34647 	SLOT_AVAIL2 = 8,
34648 	SLOT_CONFIG = 12,
34649 	SEC_BUS_CONFIG = 16,
34650 	MSI_CTRL = 18,
34651 	PROG_INTERFACE = 19,
34652 	CMD = 20,
34653 	CMD_STATUS = 22,
34654 	INTR_LOC = 24,
34655 	SERR_LOC = 28,
34656 	SERR_INTR_ENABLE = 32,
34657 	SLOT1 = 36,
34658 };
34659 
34660 struct pci_config_window;
34661 
34662 struct pci_ecam_ops {
34663 	unsigned int bus_shift;
34664 	struct pci_ops pci_ops;
34665 	int (*init)(struct pci_config_window *);
34666 };
34667 
34668 struct pci_config_window {
34669 	struct resource res;
34670 	struct resource busr;
34671 	unsigned int bus_shift;
34672 	void *priv;
34673 	const struct pci_ecam_ops *ops;
34674 	union {
34675 		void *win;
34676 		void **winp;
34677 	};
34678 	struct device *parent;
34679 };
34680 
34681 struct rio_device_id {
34682 	__u16 did;
34683 	__u16 vid;
34684 	__u16 asm_did;
34685 	__u16 asm_vid;
34686 };
34687 
34688 struct rio_switch_ops;
34689 
34690 struct rio_dev;
34691 
34692 struct rio_switch {
34693 	struct list_head node;
34694 	u8 *route_table;
34695 	u32 port_ok;
34696 	struct rio_switch_ops *ops;
34697 	spinlock_t lock;
34698 	struct rio_dev *nextdev[0];
34699 };
34700 
34701 struct rio_mport;
34702 
34703 struct rio_switch_ops {
34704 	struct module *owner;
34705 	int (*add_entry)(struct rio_mport *, u16, u8, u16, u16, u8);
34706 	int (*get_entry)(struct rio_mport *, u16, u8, u16, u16, u8 *);
34707 	int (*clr_table)(struct rio_mport *, u16, u8, u16);
34708 	int (*set_domain)(struct rio_mport *, u16, u8, u8);
34709 	int (*get_domain)(struct rio_mport *, u16, u8, u8 *);
34710 	int (*em_init)(struct rio_dev *);
34711 	int (*em_handle)(struct rio_dev *, u8);
34712 };
34713 
34714 struct rio_net;
34715 
34716 struct rio_driver;
34717 
34718 union rio_pw_msg;
34719 
34720 struct rio_dev {
34721 	struct list_head global_list;
34722 	struct list_head net_list;
34723 	struct rio_net *net;
34724 	bool do_enum;
34725 	u16 did;
34726 	u16 vid;
34727 	u32 device_rev;
34728 	u16 asm_did;
34729 	u16 asm_vid;
34730 	u16 asm_rev;
34731 	u16 efptr;
34732 	u32 pef;
34733 	u32 swpinfo;
34734 	u32 src_ops;
34735 	u32 dst_ops;
34736 	u32 comp_tag;
34737 	u32 phys_efptr;
34738 	u32 phys_rmap;
34739 	u32 em_efptr;
34740 	u64 dma_mask;
34741 	struct rio_driver *driver;
34742 	struct device dev;
34743 	struct resource riores[16];
34744 	int (*pwcback)(struct rio_dev *, union rio_pw_msg *, int);
34745 	u16 destid;
34746 	u8 hopcount;
34747 	struct rio_dev *prev;
34748 	atomic_t state;
34749 	struct rio_switch rswitch[0];
34750 };
34751 
34752 struct rio_msg {
34753 	struct resource *res;
34754 	void (*mcback)(struct rio_mport *, void *, int, int);
34755 };
34756 
34757 struct rio_ops;
34758 
34759 struct rio_scan;
34760 
34761 struct rio_mport {
34762 	struct list_head dbells;
34763 	struct list_head pwrites;
34764 	struct list_head node;
34765 	struct list_head nnode;
34766 	struct rio_net *net;
34767 	struct mutex lock;
34768 	struct resource iores;
34769 	struct resource riores[16];
34770 	struct rio_msg inb_msg[4];
34771 	struct rio_msg outb_msg[4];
34772 	int host_deviceid;
34773 	struct rio_ops *ops;
34774 	unsigned char id;
34775 	unsigned char index;
34776 	unsigned int sys_size;
34777 	u32 phys_efptr;
34778 	u32 phys_rmap;
34779 	unsigned char name[40];
34780 	struct device dev;
34781 	void *priv;
34782 	struct rio_scan *nscan;
34783 	atomic_t state;
34784 	unsigned int pwe_refcnt;
34785 };
34786 
34787 struct rio_net {
34788 	struct list_head node;
34789 	struct list_head devices;
34790 	struct list_head switches;
34791 	struct list_head mports;
34792 	struct rio_mport *hport;
34793 	unsigned char id;
34794 	struct device dev;
34795 	void *enum_data;
34796 	void (*release)(struct rio_net *);
34797 };
34798 
34799 struct rio_driver {
34800 	struct list_head node;
34801 	char *name;
34802 	const struct rio_device_id *id_table;
34803 	int (*probe)(struct rio_dev *, const struct rio_device_id *);
34804 	void (*remove)(struct rio_dev *);
34805 	void (*shutdown)(struct rio_dev *);
34806 	int (*suspend)(struct rio_dev *, u32);
34807 	int (*resume)(struct rio_dev *);
34808 	int (*enable_wake)(struct rio_dev *, u32, int);
34809 	struct device_driver driver;
34810 };
34811 
34812 union rio_pw_msg {
34813 	struct {
34814 		u32 comptag;
34815 		u32 errdetect;
34816 		u32 is_port;
34817 		u32 ltlerrdet;
34818 		u32 padding[12];
34819 	} em;
34820 	u32 raw[16];
34821 };
34822 
34823 struct rio_mport_attr;
34824 
34825 struct rio_ops {
34826 	int (*lcread)(struct rio_mport *, int, u32, int, u32 *);
34827 	int (*lcwrite)(struct rio_mport *, int, u32, int, u32);
34828 	int (*cread)(struct rio_mport *, int, u16, u8, u32, int, u32 *);
34829 	int (*cwrite)(struct rio_mport *, int, u16, u8, u32, int, u32);
34830 	int (*dsend)(struct rio_mport *, int, u16, u16);
34831 	int (*pwenable)(struct rio_mport *, int);
34832 	int (*open_outb_mbox)(struct rio_mport *, void *, int, int);
34833 	void (*close_outb_mbox)(struct rio_mport *, int);
34834 	int (*open_inb_mbox)(struct rio_mport *, void *, int, int);
34835 	void (*close_inb_mbox)(struct rio_mport *, int);
34836 	int (*add_outb_message)(struct rio_mport *, struct rio_dev *, int, void *, size_t);
34837 	int (*add_inb_buffer)(struct rio_mport *, int, void *);
34838 	void * (*get_inb_message)(struct rio_mport *, int);
34839 	int (*map_inb)(struct rio_mport *, dma_addr_t, u64, u64, u32);
34840 	void (*unmap_inb)(struct rio_mport *, dma_addr_t);
34841 	int (*query_mport)(struct rio_mport *, struct rio_mport_attr *);
34842 	int (*map_outb)(struct rio_mport *, u16, u64, u32, u32, dma_addr_t *);
34843 	void (*unmap_outb)(struct rio_mport *, u16, u64);
34844 };
34845 
34846 struct rio_scan {
34847 	struct module *owner;
34848 	int (*enumerate)(struct rio_mport *, u32);
34849 	int (*discover)(struct rio_mport *, u32);
34850 };
34851 
34852 struct rio_mport_attr {
34853 	int flags;
34854 	int link_speed;
34855 	int link_width;
34856 	int dma_max_sge;
34857 	int dma_max_size;
34858 	int dma_align;
34859 };
34860 
34861 struct rio_dbell {
34862 	struct list_head node;
34863 	struct resource *res;
34864 	void (*dinb)(struct rio_mport *, void *, u16, u16, u16);
34865 	void *dev_id;
34866 };
34867 
34868 enum rio_link_speed {
34869 	RIO_LINK_DOWN = 0,
34870 	RIO_LINK_125 = 1,
34871 	RIO_LINK_250 = 2,
34872 	RIO_LINK_312 = 3,
34873 	RIO_LINK_500 = 4,
34874 	RIO_LINK_625 = 5,
34875 };
34876 
34877 struct kfifo {
34878 	union {
34879 		struct __kfifo kfifo;
34880 		unsigned char *type;
34881 		const unsigned char *const_type;
34882 		char (*rectype)[0];
34883 		void *ptr;
34884 		const void *ptr_const;
34885 	};
34886 	unsigned char buf[0];
34887 };
34888 
34889 struct tsi721_dma_desc {
34890 	__le32 type_id;
34891 	__le32 bcount;
34892 	union {
34893 		__le32 raddr_lo;
34894 		__le32 next_lo;
34895 	};
34896 	union {
34897 		__le32 raddr_hi;
34898 		__le32 next_hi;
34899 	};
34900 	union {
34901 		struct {
34902 			__le32 bufptr_lo;
34903 			__le32 bufptr_hi;
34904 			__le32 s_dist;
34905 			__le32 s_size;
34906 		} t1;
34907 		__le32 data[4];
34908 		u32 reserved[4];
34909 	};
34910 };
34911 
34912 struct tsi721_imsg_desc {
34913 	__le32 type_id;
34914 	__le32 msg_info;
34915 	__le32 bufptr_lo;
34916 	__le32 bufptr_hi;
34917 	u32 reserved[12];
34918 };
34919 
34920 struct tsi721_omsg_desc {
34921 	__le32 type_id;
34922 	__le32 msg_info;
34923 	union {
34924 		__le32 bufptr_lo;
34925 		__le32 next_lo;
34926 	};
34927 	union {
34928 		__le32 bufptr_hi;
34929 		__le32 next_hi;
34930 	};
34931 };
34932 
34933 enum dma_dtype {
34934 	DTYPE1 = 1,
34935 	DTYPE2 = 2,
34936 	DTYPE3 = 3,
34937 	DTYPE4 = 4,
34938 	DTYPE5 = 5,
34939 	DTYPE6 = 6,
34940 };
34941 
34942 enum dma_rtype {
34943 	NREAD = 0,
34944 	LAST_NWRITE_R = 1,
34945 	ALL_NWRITE = 2,
34946 	ALL_NWRITE_R = 3,
34947 	MAINT_RD = 4,
34948 	MAINT_WR = 5,
34949 };
34950 
34951 struct tsi721_bdma_maint {
34952 	int ch_id;
34953 	int bd_num;
34954 	void *bd_base;
34955 	dma_addr_t bd_phys;
34956 	void *sts_base;
34957 	dma_addr_t sts_phys;
34958 	int sts_size;
34959 };
34960 
34961 struct tsi721_imsg_ring {
34962 	u32 size;
34963 	void *buf_base;
34964 	dma_addr_t buf_phys;
34965 	void *imfq_base;
34966 	dma_addr_t imfq_phys;
34967 	void *imd_base;
34968 	dma_addr_t imd_phys;
34969 	void *imq_base[512];
34970 	u32 rx_slot;
34971 	void *dev_id;
34972 	u32 fq_wrptr;
34973 	u32 desc_rdptr;
34974 	spinlock_t lock;
34975 };
34976 
34977 struct tsi721_omsg_ring {
34978 	u32 size;
34979 	void *omd_base;
34980 	dma_addr_t omd_phys;
34981 	void *omq_base[512];
34982 	dma_addr_t omq_phys[512];
34983 	void *sts_base;
34984 	dma_addr_t sts_phys;
34985 	u32 sts_size;
34986 	u32 sts_rdptr;
34987 	u32 tx_slot;
34988 	void *dev_id;
34989 	u32 wr_count;
34990 	spinlock_t lock;
34991 };
34992 
34993 enum tsi721_flags {
34994 	TSI721_USING_MSI = 1,
34995 	TSI721_USING_MSIX = 2,
34996 	TSI721_IMSGID_SET = 4,
34997 };
34998 
34999 enum tsi721_msix_vect {
35000 	TSI721_VECT_IDB = 0,
35001 	TSI721_VECT_PWRX = 1,
35002 	TSI721_VECT_OMB0_DONE = 2,
35003 	TSI721_VECT_OMB1_DONE = 3,
35004 	TSI721_VECT_OMB2_DONE = 4,
35005 	TSI721_VECT_OMB3_DONE = 5,
35006 	TSI721_VECT_OMB0_INT = 6,
35007 	TSI721_VECT_OMB1_INT = 7,
35008 	TSI721_VECT_OMB2_INT = 8,
35009 	TSI721_VECT_OMB3_INT = 9,
35010 	TSI721_VECT_IMB0_RCV = 10,
35011 	TSI721_VECT_IMB1_RCV = 11,
35012 	TSI721_VECT_IMB2_RCV = 12,
35013 	TSI721_VECT_IMB3_RCV = 13,
35014 	TSI721_VECT_IMB0_INT = 14,
35015 	TSI721_VECT_IMB1_INT = 15,
35016 	TSI721_VECT_IMB2_INT = 16,
35017 	TSI721_VECT_IMB3_INT = 17,
35018 	TSI721_VECT_MAX = 18,
35019 };
35020 
35021 struct msix_irq {
35022 	u16 vector;
35023 	char irq_name[64];
35024 };
35025 
35026 struct tsi721_ib_win_mapping {
35027 	struct list_head node;
35028 	dma_addr_t lstart;
35029 };
35030 
35031 struct tsi721_ib_win {
35032 	u64 rstart;
35033 	u32 size;
35034 	dma_addr_t lstart;
35035 	bool active;
35036 	bool xlat;
35037 	struct list_head mappings;
35038 };
35039 
35040 struct tsi721_obw_bar {
35041 	u64 base;
35042 	u64 size;
35043 	u64 free;
35044 };
35045 
35046 struct tsi721_ob_win {
35047 	u64 base;
35048 	u32 size;
35049 	u16 destid;
35050 	u64 rstart;
35051 	bool active;
35052 	struct tsi721_obw_bar *pbar;
35053 };
35054 
35055 struct tsi721_device {
35056 	struct pci_dev *pdev;
35057 	struct rio_mport mport;
35058 	u32 flags;
35059 	void *regs;
35060 	struct msix_irq msix[18];
35061 	void *odb_base;
35062 	void *idb_base;
35063 	dma_addr_t idb_dma;
35064 	struct work_struct idb_work;
35065 	u32 db_discard_count;
35066 	struct work_struct pw_work;
35067 	struct kfifo pw_fifo;
35068 	spinlock_t pw_fifo_lock;
35069 	u32 pw_discard_count;
35070 	struct tsi721_bdma_maint mdma;
35071 	int imsg_init[8];
35072 	struct tsi721_imsg_ring imsg_ring[8];
35073 	int omsg_init[4];
35074 	struct tsi721_omsg_ring omsg_ring[4];
35075 	struct tsi721_ib_win ib_win[8];
35076 	int ibwin_cnt;
35077 	struct tsi721_obw_bar p2r_bar[2];
35078 	struct tsi721_ob_win ob_win[8];
35079 	int obwin_cnt;
35080 };
35081 
35082 enum con_scroll {
35083 	SM_UP = 0,
35084 	SM_DOWN = 1,
35085 };
35086 
35087 enum vc_intensity {
35088 	VCI_HALF_BRIGHT = 0,
35089 	VCI_NORMAL = 1,
35090 	VCI_BOLD = 2,
35091 	VCI_MASK = 3,
35092 };
35093 
35094 struct vc_data;
35095 
35096 struct console_font;
35097 
35098 struct consw {
35099 	struct module *owner;
35100 	const char * (*con_startup)();
35101 	void (*con_init)(struct vc_data *, int);
35102 	void (*con_deinit)(struct vc_data *);
35103 	void (*con_clear)(struct vc_data *, int, int, int, int);
35104 	void (*con_putc)(struct vc_data *, int, int, int);
35105 	void (*con_putcs)(struct vc_data *, const short unsigned int *, int, int, int);
35106 	void (*con_cursor)(struct vc_data *, int);
35107 	bool (*con_scroll)(struct vc_data *, unsigned int, unsigned int, enum con_scroll, unsigned int);
35108 	int (*con_switch)(struct vc_data *);
35109 	int (*con_blank)(struct vc_data *, int, int);
35110 	int (*con_font_set)(struct vc_data *, struct console_font *, unsigned int);
35111 	int (*con_font_get)(struct vc_data *, struct console_font *);
35112 	int (*con_font_default)(struct vc_data *, struct console_font *, char *);
35113 	int (*con_resize)(struct vc_data *, unsigned int, unsigned int, unsigned int);
35114 	void (*con_set_palette)(struct vc_data *, const unsigned char *);
35115 	void (*con_scrolldelta)(struct vc_data *, int);
35116 	int (*con_set_origin)(struct vc_data *);
35117 	void (*con_save_screen)(struct vc_data *);
35118 	u8 (*con_build_attr)(struct vc_data *, u8, enum vc_intensity, bool, bool, bool, bool);
35119 	void (*con_invert_region)(struct vc_data *, u16 *, int);
35120 	u16 * (*con_screen_pos)(const struct vc_data *, int);
35121 	long unsigned int (*con_getxy)(struct vc_data *, long unsigned int, int *, int *);
35122 	void (*con_flush_scrollback)(struct vc_data *);
35123 	int (*con_debug_enter)(struct vc_data *);
35124 	int (*con_debug_leave)(struct vc_data *);
35125 };
35126 
35127 struct vc_state {
35128 	unsigned int x;
35129 	unsigned int y;
35130 	unsigned char color;
35131 	unsigned char Gx_charset[2];
35132 	unsigned int charset: 1;
35133 	enum vc_intensity intensity;
35134 	bool italic;
35135 	bool underline;
35136 	bool blink;
35137 	bool reverse;
35138 };
35139 
35140 struct console_font {
35141 	unsigned int width;
35142 	unsigned int height;
35143 	unsigned int charcount;
35144 	unsigned char *data;
35145 };
35146 
35147 struct vt_mode {
35148 	char mode;
35149 	char waitv;
35150 	short int relsig;
35151 	short int acqsig;
35152 	short int frsig;
35153 };
35154 
35155 struct uni_pagedict;
35156 
35157 struct uni_screen;
35158 
35159 struct vc_data {
35160 	struct tty_port port;
35161 	struct vc_state state;
35162 	struct vc_state saved_state;
35163 	short unsigned int vc_num;
35164 	unsigned int vc_cols;
35165 	unsigned int vc_rows;
35166 	unsigned int vc_size_row;
35167 	unsigned int vc_scan_lines;
35168 	unsigned int vc_cell_height;
35169 	long unsigned int vc_origin;
35170 	long unsigned int vc_scr_end;
35171 	long unsigned int vc_visible_origin;
35172 	unsigned int vc_top;
35173 	unsigned int vc_bottom;
35174 	const struct consw *vc_sw;
35175 	short unsigned int *vc_screenbuf;
35176 	unsigned int vc_screenbuf_size;
35177 	unsigned char vc_mode;
35178 	unsigned char vc_attr;
35179 	unsigned char vc_def_color;
35180 	unsigned char vc_ulcolor;
35181 	unsigned char vc_itcolor;
35182 	unsigned char vc_halfcolor;
35183 	unsigned int vc_cursor_type;
35184 	short unsigned int vc_complement_mask;
35185 	short unsigned int vc_s_complement_mask;
35186 	long unsigned int vc_pos;
35187 	short unsigned int vc_hi_font_mask;
35188 	struct console_font vc_font;
35189 	short unsigned int vc_video_erase_char;
35190 	unsigned int vc_state;
35191 	unsigned int vc_npar;
35192 	unsigned int vc_par[16];
35193 	struct vt_mode vt_mode;
35194 	struct pid *vt_pid;
35195 	int vt_newvt;
35196 	wait_queue_head_t paste_wait;
35197 	unsigned int vc_disp_ctrl: 1;
35198 	unsigned int vc_toggle_meta: 1;
35199 	unsigned int vc_decscnm: 1;
35200 	unsigned int vc_decom: 1;
35201 	unsigned int vc_decawm: 1;
35202 	unsigned int vc_deccm: 1;
35203 	unsigned int vc_decim: 1;
35204 	unsigned int vc_priv: 3;
35205 	unsigned int vc_need_wrap: 1;
35206 	unsigned int vc_can_do_color: 1;
35207 	unsigned int vc_report_mouse: 2;
35208 	unsigned char vc_utf: 1;
35209 	unsigned char vc_utf_count;
35210 	int vc_utf_char;
35211 	long unsigned int vc_tab_stop[4];
35212 	unsigned char vc_palette[48];
35213 	short unsigned int *vc_translate;
35214 	unsigned int vc_resize_user;
35215 	unsigned int vc_bell_pitch;
35216 	unsigned int vc_bell_duration;
35217 	short unsigned int vc_cur_blink_ms;
35218 	struct vc_data **vc_display_fg;
35219 	struct uni_pagedict *uni_pagedict;
35220 	struct uni_pagedict **uni_pagedict_loc;
35221 	struct uni_screen *vc_uni_screen;
35222 };
35223 
35224 struct vc {
35225 	struct vc_data *d;
35226 	struct work_struct SAK_work;
35227 };
35228 
35229 struct vgastate {
35230 	void *vgabase;
35231 	long unsigned int membase;
35232 	__u32 memsize;
35233 	__u32 flags;
35234 	__u32 depth;
35235 	__u32 num_attr;
35236 	__u32 num_crtc;
35237 	__u32 num_gfx;
35238 	__u32 num_seq;
35239 	void *vidstate;
35240 };
35241 
35242 struct fb_fix_screeninfo {
35243 	char id[16];
35244 	long unsigned int smem_start;
35245 	__u32 smem_len;
35246 	__u32 type;
35247 	__u32 type_aux;
35248 	__u32 visual;
35249 	__u16 xpanstep;
35250 	__u16 ypanstep;
35251 	__u16 ywrapstep;
35252 	__u32 line_length;
35253 	long unsigned int mmio_start;
35254 	__u32 mmio_len;
35255 	__u32 accel;
35256 	__u16 capabilities;
35257 	__u16 reserved[2];
35258 };
35259 
35260 struct fb_bitfield {
35261 	__u32 offset;
35262 	__u32 length;
35263 	__u32 msb_right;
35264 };
35265 
35266 struct fb_var_screeninfo {
35267 	__u32 xres;
35268 	__u32 yres;
35269 	__u32 xres_virtual;
35270 	__u32 yres_virtual;
35271 	__u32 xoffset;
35272 	__u32 yoffset;
35273 	__u32 bits_per_pixel;
35274 	__u32 grayscale;
35275 	struct fb_bitfield red;
35276 	struct fb_bitfield green;
35277 	struct fb_bitfield blue;
35278 	struct fb_bitfield transp;
35279 	__u32 nonstd;
35280 	__u32 activate;
35281 	__u32 height;
35282 	__u32 width;
35283 	__u32 accel_flags;
35284 	__u32 pixclock;
35285 	__u32 left_margin;
35286 	__u32 right_margin;
35287 	__u32 upper_margin;
35288 	__u32 lower_margin;
35289 	__u32 hsync_len;
35290 	__u32 vsync_len;
35291 	__u32 sync;
35292 	__u32 vmode;
35293 	__u32 rotate;
35294 	__u32 colorspace;
35295 	__u32 reserved[4];
35296 };
35297 
35298 struct fb_cmap {
35299 	__u32 start;
35300 	__u32 len;
35301 	__u16 *red;
35302 	__u16 *green;
35303 	__u16 *blue;
35304 	__u16 *transp;
35305 };
35306 
35307 struct fb_copyarea {
35308 	__u32 dx;
35309 	__u32 dy;
35310 	__u32 width;
35311 	__u32 height;
35312 	__u32 sx;
35313 	__u32 sy;
35314 };
35315 
35316 struct fb_fillrect {
35317 	__u32 dx;
35318 	__u32 dy;
35319 	__u32 width;
35320 	__u32 height;
35321 	__u32 color;
35322 	__u32 rop;
35323 };
35324 
35325 struct fb_image {
35326 	__u32 dx;
35327 	__u32 dy;
35328 	__u32 width;
35329 	__u32 height;
35330 	__u32 fg_color;
35331 	__u32 bg_color;
35332 	__u8 depth;
35333 	const char *data;
35334 	struct fb_cmap cmap;
35335 };
35336 
35337 struct fbcurpos {
35338 	__u16 x;
35339 	__u16 y;
35340 };
35341 
35342 struct fb_cursor {
35343 	__u16 set;
35344 	__u16 enable;
35345 	__u16 rop;
35346 	const char *mask;
35347 	struct fbcurpos hot;
35348 	struct fb_image image;
35349 };
35350 
35351 enum backlight_type {
35352 	BACKLIGHT_RAW = 1,
35353 	BACKLIGHT_PLATFORM = 2,
35354 	BACKLIGHT_FIRMWARE = 3,
35355 	BACKLIGHT_TYPE_MAX = 4,
35356 };
35357 
35358 enum backlight_scale {
35359 	BACKLIGHT_SCALE_UNKNOWN = 0,
35360 	BACKLIGHT_SCALE_LINEAR = 1,
35361 	BACKLIGHT_SCALE_NON_LINEAR = 2,
35362 };
35363 
35364 struct backlight_device;
35365 
35366 struct fb_info;
35367 
35368 struct backlight_ops {
35369 	unsigned int options;
35370 	int (*update_status)(struct backlight_device *);
35371 	int (*get_brightness)(struct backlight_device *);
35372 	int (*check_fb)(struct backlight_device *, struct fb_info *);
35373 };
35374 
35375 struct backlight_properties {
35376 	int brightness;
35377 	int max_brightness;
35378 	int power;
35379 	int fb_blank;
35380 	enum backlight_type type;
35381 	unsigned int state;
35382 	enum backlight_scale scale;
35383 };
35384 
35385 struct backlight_device {
35386 	struct backlight_properties props;
35387 	struct mutex update_lock;
35388 	struct mutex ops_lock;
35389 	const struct backlight_ops *ops;
35390 	struct notifier_block fb_notif;
35391 	struct list_head entry;
35392 	struct device dev;
35393 	bool fb_bl_on[32];
35394 	int use_count;
35395 };
35396 
35397 struct fb_chroma {
35398 	__u32 redx;
35399 	__u32 greenx;
35400 	__u32 bluex;
35401 	__u32 whitex;
35402 	__u32 redy;
35403 	__u32 greeny;
35404 	__u32 bluey;
35405 	__u32 whitey;
35406 };
35407 
35408 struct fb_videomode;
35409 
35410 struct fb_monspecs {
35411 	struct fb_chroma chroma;
35412 	struct fb_videomode *modedb;
35413 	__u8 manufacturer[4];
35414 	__u8 monitor[14];
35415 	__u8 serial_no[14];
35416 	__u8 ascii[14];
35417 	__u32 modedb_len;
35418 	__u32 model;
35419 	__u32 serial;
35420 	__u32 year;
35421 	__u32 week;
35422 	__u32 hfmin;
35423 	__u32 hfmax;
35424 	__u32 dclkmin;
35425 	__u32 dclkmax;
35426 	__u16 input;
35427 	__u16 dpms;
35428 	__u16 signal;
35429 	__u16 vfmin;
35430 	__u16 vfmax;
35431 	__u16 gamma;
35432 	__u16 gtf: 1;
35433 	__u16 misc;
35434 	__u8 version;
35435 	__u8 revision;
35436 	__u8 max_x;
35437 	__u8 max_y;
35438 };
35439 
35440 struct fb_pixmap {
35441 	u8 *addr;
35442 	u32 size;
35443 	u32 offset;
35444 	u32 buf_align;
35445 	u32 scan_align;
35446 	u32 access_align;
35447 	u32 flags;
35448 	u32 blit_x;
35449 	u32 blit_y;
35450 	void (*writeio)(struct fb_info *, void *, void *, unsigned int);
35451 	void (*readio)(struct fb_info *, void *, void *, unsigned int);
35452 };
35453 
35454 struct fb_deferred_io_pageref;
35455 
35456 struct fb_deferred_io;
35457 
35458 struct fb_ops;
35459 
35460 struct apertures_struct;
35461 
35462 struct fb_info {
35463 	refcount_t count;
35464 	int node;
35465 	int flags;
35466 	int fbcon_rotate_hint;
35467 	struct mutex lock;
35468 	struct mutex mm_lock;
35469 	struct fb_var_screeninfo var;
35470 	struct fb_fix_screeninfo fix;
35471 	struct fb_monspecs monspecs;
35472 	struct fb_pixmap pixmap;
35473 	struct fb_pixmap sprite;
35474 	struct fb_cmap cmap;
35475 	struct list_head modelist;
35476 	struct fb_videomode *mode;
35477 	struct backlight_device *bl_dev;
35478 	struct mutex bl_curve_mutex;
35479 	u8 bl_curve[128];
35480 	struct delayed_work deferred_work;
35481 	long unsigned int npagerefs;
35482 	struct fb_deferred_io_pageref *pagerefs;
35483 	struct fb_deferred_io *fbdefio;
35484 	const struct fb_ops *fbops;
35485 	struct device *device;
35486 	struct device *dev;
35487 	int class_flag;
35488 	union {
35489 		char *screen_base;
35490 		char *screen_buffer;
35491 	};
35492 	long unsigned int screen_size;
35493 	void *pseudo_palette;
35494 	u32 state;
35495 	void *fbcon_par;
35496 	void *par;
35497 	struct apertures_struct *apertures;
35498 	bool skip_vt_switch;
35499 };
35500 
35501 struct fb_videomode {
35502 	const char *name;
35503 	u32 refresh;
35504 	u32 xres;
35505 	u32 yres;
35506 	u32 pixclock;
35507 	u32 left_margin;
35508 	u32 right_margin;
35509 	u32 upper_margin;
35510 	u32 lower_margin;
35511 	u32 hsync_len;
35512 	u32 vsync_len;
35513 	u32 sync;
35514 	u32 vmode;
35515 	u32 flag;
35516 };
35517 
35518 struct fb_blit_caps {
35519 	u32 x;
35520 	u32 y;
35521 	u32 len;
35522 	u32 flags;
35523 };
35524 
35525 struct fb_deferred_io_pageref {
35526 	struct page *page;
35527 	long unsigned int offset;
35528 	struct list_head list;
35529 };
35530 
35531 struct fb_deferred_io {
35532 	long unsigned int delay;
35533 	bool sort_pagereflist;
35534 	struct mutex lock;
35535 	struct list_head pagereflist;
35536 	void (*first_io)(struct fb_info *);
35537 	void (*deferred_io)(struct fb_info *, struct list_head *);
35538 };
35539 
35540 struct fb_ops {
35541 	struct module *owner;
35542 	int (*fb_open)(struct fb_info *, int);
35543 	int (*fb_release)(struct fb_info *, int);
35544 	ssize_t (*fb_read)(struct fb_info *, char *, size_t, loff_t *);
35545 	ssize_t (*fb_write)(struct fb_info *, const char *, size_t, loff_t *);
35546 	int (*fb_check_var)(struct fb_var_screeninfo *, struct fb_info *);
35547 	int (*fb_set_par)(struct fb_info *);
35548 	int (*fb_setcolreg)(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, struct fb_info *);
35549 	int (*fb_setcmap)(struct fb_cmap *, struct fb_info *);
35550 	int (*fb_blank)(int, struct fb_info *);
35551 	int (*fb_pan_display)(struct fb_var_screeninfo *, struct fb_info *);
35552 	void (*fb_fillrect)(struct fb_info *, const struct fb_fillrect *);
35553 	void (*fb_copyarea)(struct fb_info *, const struct fb_copyarea *);
35554 	void (*fb_imageblit)(struct fb_info *, const struct fb_image *);
35555 	int (*fb_cursor)(struct fb_info *, struct fb_cursor *);
35556 	int (*fb_sync)(struct fb_info *);
35557 	int (*fb_ioctl)(struct fb_info *, unsigned int, long unsigned int);
35558 	int (*fb_compat_ioctl)(struct fb_info *, unsigned int, long unsigned int);
35559 	int (*fb_mmap)(struct fb_info *, struct vm_area_struct *);
35560 	void (*fb_get_caps)(struct fb_info *, struct fb_blit_caps *, struct fb_var_screeninfo *);
35561 	void (*fb_destroy)(struct fb_info *);
35562 	int (*fb_debug_enter)(struct fb_info *);
35563 	int (*fb_debug_leave)(struct fb_info *);
35564 };
35565 
35566 struct aperture {
35567 	resource_size_t base;
35568 	resource_size_t size;
35569 };
35570 
35571 struct apertures_struct {
35572 	unsigned int count;
35573 	struct aperture ranges[0];
35574 };
35575 
35576 struct dmt_videomode {
35577 	u32 dmt_id;
35578 	u32 std_2byte_code;
35579 	u32 cvt_3byte_code;
35580 	const struct fb_videomode *mode;
35581 };
35582 
35583 struct broken_edid {
35584 	u8 manufacturer[4];
35585 	u32 model;
35586 	u32 fix;
35587 };
35588 
35589 struct __fb_timings {
35590 	u32 dclk;
35591 	u32 hfreq;
35592 	u32 vfreq;
35593 	u32 hactive;
35594 	u32 vactive;
35595 	u32 hblank;
35596 	u32 vblank;
35597 	u32 htotal;
35598 	u32 vtotal;
35599 };
35600 
35601 struct fb_cvt_data {
35602 	u32 xres;
35603 	u32 yres;
35604 	u32 refresh;
35605 	u32 f_refresh;
35606 	u32 pixclock;
35607 	u32 hperiod;
35608 	u32 hblank;
35609 	u32 hfreq;
35610 	u32 htotal;
35611 	u32 vtotal;
35612 	u32 vsync;
35613 	u32 hsync;
35614 	u32 h_front_porch;
35615 	u32 h_back_porch;
35616 	u32 v_front_porch;
35617 	u32 v_back_porch;
35618 	u32 h_margin;
35619 	u32 v_margin;
35620 	u32 interlace;
35621 	u32 aspect_ratio;
35622 	u32 active_pixels;
35623 	u32 flags;
35624 	u32 status;
35625 };
35626 
35627 typedef unsigned char u_char;
35628 
35629 typedef short unsigned int u_short;
35630 
35631 struct fbcon_display {
35632 	const u_char *fontdata;
35633 	int userfont;
35634 	u_short inverse;
35635 	short int yscroll;
35636 	int vrows;
35637 	int cursor_shape;
35638 	int con_rotate;
35639 	u32 xres_virtual;
35640 	u32 yres_virtual;
35641 	u32 height;
35642 	u32 width;
35643 	u32 bits_per_pixel;
35644 	u32 grayscale;
35645 	u32 nonstd;
35646 	u32 accel_flags;
35647 	u32 rotate;
35648 	struct fb_bitfield red;
35649 	struct fb_bitfield green;
35650 	struct fb_bitfield blue;
35651 	struct fb_bitfield transp;
35652 	const struct fb_videomode *mode;
35653 };
35654 
35655 struct fbcon_ops {
35656 	void (*bmove)(struct vc_data *, struct fb_info *, int, int, int, int, int, int);
35657 	void (*clear)(struct vc_data *, struct fb_info *, int, int, int, int);
35658 	void (*putcs)(struct vc_data *, struct fb_info *, const short unsigned int *, int, int, int, int, int);
35659 	void (*clear_margins)(struct vc_data *, struct fb_info *, int, int);
35660 	void (*cursor)(struct vc_data *, struct fb_info *, int, int, int);
35661 	int (*update_start)(struct fb_info *);
35662 	int (*rotate_font)(struct fb_info *, struct vc_data *);
35663 	struct fb_var_screeninfo var;
35664 	struct delayed_work cursor_work;
35665 	struct fb_cursor cursor_state;
35666 	struct fbcon_display *p;
35667 	struct fb_info *info;
35668 	int currcon;
35669 	int cur_blink_jiffies;
35670 	int cursor_flash;
35671 	int cursor_reset;
35672 	int blank_state;
35673 	int graphics;
35674 	int save_graphics;
35675 	bool initialized;
35676 	int rotate;
35677 	int cur_rotate;
35678 	char *cursor_data;
35679 	u8 *fontbuffer;
35680 	u8 *fontdata;
35681 	u8 *cursor_src;
35682 	u32 cursor_size;
35683 	u32 fd_size;
35684 };
35685 
35686 struct platform_device_id {
35687 	char name[20];
35688 	kernel_ulong_t driver_data;
35689 };
35690 
35691 struct pdev_archdata {};
35692 
35693 typedef u8 efi_bool_t;
35694 
35695 typedef struct {
35696 	u64 signature;
35697 	u32 revision;
35698 	u32 headersize;
35699 	u32 crc32;
35700 	u32 reserved;
35701 } efi_table_hdr_t;
35702 
35703 typedef struct {
35704 	u32 type;
35705 	u32 pad;
35706 	u64 phys_addr;
35707 	u64 virt_addr;
35708 	u64 num_pages;
35709 	u64 attribute;
35710 } efi_memory_desc_t;
35711 
35712 typedef struct {
35713 	efi_guid_t guid;
35714 	u32 headersize;
35715 	u32 flags;
35716 	u32 imagesize;
35717 } efi_capsule_header_t;
35718 
35719 typedef struct {
35720 	u16 year;
35721 	u8 month;
35722 	u8 day;
35723 	u8 hour;
35724 	u8 minute;
35725 	u8 second;
35726 	u8 pad1;
35727 	u32 nanosecond;
35728 	s16 timezone;
35729 	u8 daylight;
35730 	u8 pad2;
35731 } efi_time_t;
35732 
35733 typedef struct {
35734 	u32 resolution;
35735 	u32 accuracy;
35736 	u8 sets_to_zero;
35737 } efi_time_cap_t;
35738 
35739 typedef struct {
35740 	efi_table_hdr_t hdr;
35741 	u32 get_time;
35742 	u32 set_time;
35743 	u32 get_wakeup_time;
35744 	u32 set_wakeup_time;
35745 	u32 set_virtual_address_map;
35746 	u32 convert_pointer;
35747 	u32 get_variable;
35748 	u32 get_next_variable;
35749 	u32 set_variable;
35750 	u32 get_next_high_mono_count;
35751 	u32 reset_system;
35752 	u32 update_capsule;
35753 	u32 query_capsule_caps;
35754 	u32 query_variable_info;
35755 } efi_runtime_services_32_t;
35756 
35757 typedef efi_status_t efi_get_time_t(efi_time_t *, efi_time_cap_t *);
35758 
35759 typedef efi_status_t efi_set_time_t(efi_time_t *);
35760 
35761 typedef efi_status_t efi_get_wakeup_time_t(efi_bool_t *, efi_bool_t *, efi_time_t *);
35762 
35763 typedef efi_status_t efi_set_wakeup_time_t(efi_bool_t, efi_time_t *);
35764 
35765 typedef efi_status_t efi_get_variable_t(efi_char16_t *, efi_guid_t *, u32 *, long unsigned int *, void *);
35766 
35767 typedef efi_status_t efi_get_next_variable_t(long unsigned int *, efi_char16_t *, efi_guid_t *);
35768 
35769 typedef efi_status_t efi_set_variable_t(efi_char16_t *, efi_guid_t *, u32, long unsigned int, void *);
35770 
35771 typedef efi_status_t efi_get_next_high_mono_count_t(u32 *);
35772 
35773 typedef void efi_reset_system_t(int, efi_status_t, long unsigned int, efi_char16_t *);
35774 
35775 typedef efi_status_t efi_set_virtual_address_map_t(long unsigned int, long unsigned int, u32, efi_memory_desc_t *);
35776 
35777 typedef efi_status_t efi_query_variable_info_t(u32, u64 *, u64 *, u64 *);
35778 
35779 typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t **, long unsigned int, long unsigned int);
35780 
35781 typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **, long unsigned int, u64 *, int *);
35782 
35783 typedef union {
35784 	struct {
35785 		efi_table_hdr_t hdr;
35786 		efi_get_time_t *get_time;
35787 		efi_set_time_t *set_time;
35788 		efi_get_wakeup_time_t *get_wakeup_time;
35789 		efi_set_wakeup_time_t *set_wakeup_time;
35790 		efi_set_virtual_address_map_t *set_virtual_address_map;
35791 		void *convert_pointer;
35792 		efi_get_variable_t *get_variable;
35793 		efi_get_next_variable_t *get_next_variable;
35794 		efi_set_variable_t *set_variable;
35795 		efi_get_next_high_mono_count_t *get_next_high_mono_count;
35796 		efi_reset_system_t *reset_system;
35797 		efi_update_capsule_t *update_capsule;
35798 		efi_query_capsule_caps_t *query_capsule_caps;
35799 		efi_query_variable_info_t *query_variable_info;
35800 	};
35801 	efi_runtime_services_32_t mixed_mode;
35802 } efi_runtime_services_t;
35803 
35804 struct efi_memory_map {
35805 	phys_addr_t phys_map;
35806 	void *map;
35807 	void *map_end;
35808 	int nr_map;
35809 	long unsigned int desc_version;
35810 	long unsigned int desc_size;
35811 	long unsigned int flags;
35812 };
35813 
35814 struct efi {
35815 	const efi_runtime_services_t *runtime;
35816 	unsigned int runtime_version;
35817 	unsigned int runtime_supported_mask;
35818 	long unsigned int acpi;
35819 	long unsigned int acpi20;
35820 	long unsigned int smbios;
35821 	long unsigned int smbios3;
35822 	long unsigned int esrt;
35823 	long unsigned int tpm_log;
35824 	long unsigned int tpm_final_log;
35825 	long unsigned int mokvar_table;
35826 	long unsigned int coco_secret;
35827 	efi_get_time_t *get_time;
35828 	efi_set_time_t *set_time;
35829 	efi_get_wakeup_time_t *get_wakeup_time;
35830 	efi_set_wakeup_time_t *set_wakeup_time;
35831 	efi_get_variable_t *get_variable;
35832 	efi_get_next_variable_t *get_next_variable;
35833 	efi_set_variable_t *set_variable;
35834 	efi_set_variable_t *set_variable_nonblocking;
35835 	efi_query_variable_info_t *query_variable_info;
35836 	efi_query_variable_info_t *query_variable_info_nonblocking;
35837 	efi_update_capsule_t *update_capsule;
35838 	efi_query_capsule_caps_t *query_capsule_caps;
35839 	efi_get_next_high_mono_count_t *get_next_high_mono_count;
35840 	efi_reset_system_t *reset_system;
35841 	struct efi_memory_map memmap;
35842 	long unsigned int flags;
35843 };
35844 
35845 struct pci_fixup {
35846 	u16 vendor;
35847 	u16 device;
35848 	u32 class;
35849 	unsigned int class_shift;
35850 	void (*hook)(struct pci_dev *);
35851 };
35852 
35853 struct mfd_cell;
35854 
35855 struct platform_device {
35856 	const char *name;
35857 	int id;
35858 	bool id_auto;
35859 	struct device dev;
35860 	u64 platform_dma_mask;
35861 	struct device_dma_parameters dma_parms;
35862 	u32 num_resources;
35863 	struct resource *resource;
35864 	const struct platform_device_id *id_entry;
35865 	const char *driver_override;
35866 	struct mfd_cell *mfd_cell;
35867 	struct pdev_archdata archdata;
35868 };
35869 
35870 struct platform_driver {
35871 	int (*probe)(struct platform_device *);
35872 	int (*remove)(struct platform_device *);
35873 	void (*shutdown)(struct platform_device *);
35874 	int (*suspend)(struct platform_device *, pm_message_t);
35875 	int (*resume)(struct platform_device *);
35876 	struct device_driver driver;
35877 	const struct platform_device_id *id_table;
35878 	bool prevent_deferred_probe;
35879 	bool driver_managed_dma;
35880 };
35881 
35882 enum drm_panel_orientation {
35883 	DRM_MODE_PANEL_ORIENTATION_UNKNOWN = -1,
35884 	DRM_MODE_PANEL_ORIENTATION_NORMAL = 0,
35885 	DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP = 1,
35886 	DRM_MODE_PANEL_ORIENTATION_LEFT_UP = 2,
35887 	DRM_MODE_PANEL_ORIENTATION_RIGHT_UP = 3,
35888 };
35889 
35890 struct semaphore {
35891 	raw_spinlock_t lock;
35892 	unsigned int count;
35893 	struct list_head wait_list;
35894 };
35895 
35896 typedef u64 acpi_size;
35897 
35898 typedef u32 acpi_status;
35899 
35900 typedef char *acpi_string;
35901 
35902 typedef u8 acpi_adr_space_type;
35903 
35904 struct acpi_predefined_names {
35905 	const char *name;
35906 	u8 type;
35907 	char *val;
35908 };
35909 
35910 typedef u32 (*acpi_osd_handler)(void *);
35911 
35912 typedef void (*acpi_osd_exec_callback)(void *);
35913 
35914 struct acpi_pci_id {
35915 	u16 segment;
35916 	u16 bus;
35917 	u16 device;
35918 	u16 function;
35919 };
35920 
35921 struct acpi_generic_address {
35922 	u8 space_id;
35923 	u8 bit_width;
35924 	u8 bit_offset;
35925 	u8 access_width;
35926 	u64 address;
35927 } __attribute__((packed));
35928 
35929 struct acpi_table_fadt {
35930 	struct acpi_table_header header;
35931 	u32 facs;
35932 	u32 dsdt;
35933 	u8 model;
35934 	u8 preferred_profile;
35935 	u16 sci_interrupt;
35936 	u32 smi_command;
35937 	u8 acpi_enable;
35938 	u8 acpi_disable;
35939 	u8 s4_bios_request;
35940 	u8 pstate_control;
35941 	u32 pm1a_event_block;
35942 	u32 pm1b_event_block;
35943 	u32 pm1a_control_block;
35944 	u32 pm1b_control_block;
35945 	u32 pm2_control_block;
35946 	u32 pm_timer_block;
35947 	u32 gpe0_block;
35948 	u32 gpe1_block;
35949 	u8 pm1_event_length;
35950 	u8 pm1_control_length;
35951 	u8 pm2_control_length;
35952 	u8 pm_timer_length;
35953 	u8 gpe0_block_length;
35954 	u8 gpe1_block_length;
35955 	u8 gpe1_base;
35956 	u8 cst_control;
35957 	u16 c2_latency;
35958 	u16 c3_latency;
35959 	u16 flush_size;
35960 	u16 flush_stride;
35961 	u8 duty_offset;
35962 	u8 duty_width;
35963 	u8 day_alarm;
35964 	u8 month_alarm;
35965 	u8 century;
35966 	u16 boot_flags;
35967 	u8 reserved;
35968 	u32 flags;
35969 	struct acpi_generic_address reset_register;
35970 	u8 reset_value;
35971 	u16 arm_boot_flags;
35972 	u8 minor_revision;
35973 	u64 Xfacs;
35974 	u64 Xdsdt;
35975 	struct acpi_generic_address xpm1a_event_block;
35976 	struct acpi_generic_address xpm1b_event_block;
35977 	struct acpi_generic_address xpm1a_control_block;
35978 	struct acpi_generic_address xpm1b_control_block;
35979 	struct acpi_generic_address xpm2_control_block;
35980 	struct acpi_generic_address xpm_timer_block;
35981 	struct acpi_generic_address xgpe0_block;
35982 	struct acpi_generic_address xgpe1_block;
35983 	struct acpi_generic_address sleep_control;
35984 	struct acpi_generic_address sleep_status;
35985 	u64 hypervisor_id;
35986 } __attribute__((packed));
35987 
35988 typedef enum {
35989 	OSL_GLOBAL_LOCK_HANDLER = 0,
35990 	OSL_NOTIFY_HANDLER = 1,
35991 	OSL_GPE_HANDLER = 2,
35992 	OSL_DEBUGGER_MAIN_THREAD = 3,
35993 	OSL_DEBUGGER_EXEC_THREAD = 4,
35994 	OSL_EC_POLL_HANDLER = 5,
35995 	OSL_EC_BURST_HANDLER = 6,
35996 } acpi_execute_type;
35997 
35998 struct acpi_gpio_params {
35999 	unsigned int crs_entry_index;
36000 	unsigned int line_index;
36001 	bool active_low;
36002 };
36003 
36004 struct acpi_os_dpc {
36005 	acpi_osd_exec_callback function;
36006 	void *context;
36007 	struct work_struct work;
36008 };
36009 
36010 struct acpi_ioremap {
36011 	struct list_head list;
36012 	void *virt;
36013 	acpi_physical_address phys;
36014 	acpi_size size;
36015 	union {
36016 		long unsigned int refcount;
36017 		struct rcu_work rwork;
36018 	} track;
36019 };
36020 
36021 struct acpi_hp_work {
36022 	struct work_struct work;
36023 	struct acpi_device *adev;
36024 	u32 src;
36025 };
36026 
36027 struct acpi_wakeup_handler {
36028 	struct list_head list_node;
36029 	bool (*wakeup)(void *);
36030 	void *context;
36031 };
36032 
36033 struct acpi_device_physical_node {
36034 	unsigned int node_id;
36035 	struct list_head node;
36036 	struct device *dev;
36037 	bool put_online: 1;
36038 };
36039 
36040 struct resource_win {
36041 	struct resource res;
36042 	resource_size_t offset;
36043 };
36044 
36045 typedef acpi_status (*acpi_walk_callback)(acpi_handle, u32, void *, void **);
36046 
36047 struct acpi_resource_irq {
36048 	u8 descriptor_length;
36049 	u8 triggering;
36050 	u8 polarity;
36051 	u8 shareable;
36052 	u8 wake_capable;
36053 	u8 interrupt_count;
36054 	u8 interrupts[1];
36055 };
36056 
36057 struct acpi_resource_dma {
36058 	u8 type;
36059 	u8 bus_master;
36060 	u8 transfer;
36061 	u8 channel_count;
36062 	u8 channels[1];
36063 };
36064 
36065 struct acpi_resource_start_dependent {
36066 	u8 descriptor_length;
36067 	u8 compatibility_priority;
36068 	u8 performance_robustness;
36069 };
36070 
36071 struct acpi_resource_io {
36072 	u8 io_decode;
36073 	u8 alignment;
36074 	u8 address_length;
36075 	u16 minimum;
36076 	u16 maximum;
36077 } __attribute__((packed));
36078 
36079 struct acpi_resource_fixed_io {
36080 	u16 address;
36081 	u8 address_length;
36082 } __attribute__((packed));
36083 
36084 struct acpi_resource_fixed_dma {
36085 	u16 request_lines;
36086 	u16 channels;
36087 	u8 width;
36088 } __attribute__((packed));
36089 
36090 struct acpi_resource_vendor {
36091 	u16 byte_length;
36092 	u8 byte_data[1];
36093 } __attribute__((packed));
36094 
36095 struct acpi_resource_vendor_typed {
36096 	u16 byte_length;
36097 	u8 uuid_subtype;
36098 	u8 uuid[16];
36099 	u8 byte_data[1];
36100 };
36101 
36102 struct acpi_resource_end_tag {
36103 	u8 checksum;
36104 };
36105 
36106 struct acpi_resource_memory24 {
36107 	u8 write_protect;
36108 	u16 minimum;
36109 	u16 maximum;
36110 	u16 alignment;
36111 	u16 address_length;
36112 } __attribute__((packed));
36113 
36114 struct acpi_resource_memory32 {
36115 	u8 write_protect;
36116 	u32 minimum;
36117 	u32 maximum;
36118 	u32 alignment;
36119 	u32 address_length;
36120 } __attribute__((packed));
36121 
36122 struct acpi_resource_fixed_memory32 {
36123 	u8 write_protect;
36124 	u32 address;
36125 	u32 address_length;
36126 } __attribute__((packed));
36127 
36128 struct acpi_memory_attribute {
36129 	u8 write_protect;
36130 	u8 caching;
36131 	u8 range_type;
36132 	u8 translation;
36133 };
36134 
36135 struct acpi_io_attribute {
36136 	u8 range_type;
36137 	u8 translation;
36138 	u8 translation_type;
36139 	u8 reserved1;
36140 };
36141 
36142 union acpi_resource_attribute {
36143 	struct acpi_memory_attribute mem;
36144 	struct acpi_io_attribute io;
36145 	u8 type_specific;
36146 };
36147 
36148 struct acpi_resource_label {
36149 	u16 string_length;
36150 	char *string_ptr;
36151 } __attribute__((packed));
36152 
36153 struct acpi_resource_source {
36154 	u8 index;
36155 	u16 string_length;
36156 	char *string_ptr;
36157 } __attribute__((packed));
36158 
36159 struct acpi_address16_attribute {
36160 	u16 granularity;
36161 	u16 minimum;
36162 	u16 maximum;
36163 	u16 translation_offset;
36164 	u16 address_length;
36165 };
36166 
36167 struct acpi_address32_attribute {
36168 	u32 granularity;
36169 	u32 minimum;
36170 	u32 maximum;
36171 	u32 translation_offset;
36172 	u32 address_length;
36173 };
36174 
36175 struct acpi_address64_attribute {
36176 	u64 granularity;
36177 	u64 minimum;
36178 	u64 maximum;
36179 	u64 translation_offset;
36180 	u64 address_length;
36181 };
36182 
36183 struct acpi_resource_address {
36184 	u8 resource_type;
36185 	u8 producer_consumer;
36186 	u8 decode;
36187 	u8 min_address_fixed;
36188 	u8 max_address_fixed;
36189 	union acpi_resource_attribute info;
36190 };
36191 
36192 struct acpi_resource_address16 {
36193 	u8 resource_type;
36194 	u8 producer_consumer;
36195 	u8 decode;
36196 	u8 min_address_fixed;
36197 	u8 max_address_fixed;
36198 	union acpi_resource_attribute info;
36199 	struct acpi_address16_attribute address;
36200 	struct acpi_resource_source resource_source;
36201 } __attribute__((packed));
36202 
36203 struct acpi_resource_address32 {
36204 	u8 resource_type;
36205 	u8 producer_consumer;
36206 	u8 decode;
36207 	u8 min_address_fixed;
36208 	u8 max_address_fixed;
36209 	union acpi_resource_attribute info;
36210 	struct acpi_address32_attribute address;
36211 	struct acpi_resource_source resource_source;
36212 } __attribute__((packed));
36213 
36214 struct acpi_resource_address64 {
36215 	u8 resource_type;
36216 	u8 producer_consumer;
36217 	u8 decode;
36218 	u8 min_address_fixed;
36219 	u8 max_address_fixed;
36220 	union acpi_resource_attribute info;
36221 	struct acpi_address64_attribute address;
36222 	struct acpi_resource_source resource_source;
36223 } __attribute__((packed));
36224 
36225 struct acpi_resource_extended_address64 {
36226 	u8 resource_type;
36227 	u8 producer_consumer;
36228 	u8 decode;
36229 	u8 min_address_fixed;
36230 	u8 max_address_fixed;
36231 	union acpi_resource_attribute info;
36232 	u8 revision_ID;
36233 	struct acpi_address64_attribute address;
36234 	u64 type_specific;
36235 } __attribute__((packed));
36236 
36237 struct acpi_resource_extended_irq {
36238 	u8 producer_consumer;
36239 	u8 triggering;
36240 	u8 polarity;
36241 	u8 shareable;
36242 	u8 wake_capable;
36243 	u8 interrupt_count;
36244 	struct acpi_resource_source resource_source;
36245 	u32 interrupts[1];
36246 } __attribute__((packed));
36247 
36248 struct acpi_resource_generic_register {
36249 	u8 space_id;
36250 	u8 bit_width;
36251 	u8 bit_offset;
36252 	u8 access_size;
36253 	u64 address;
36254 } __attribute__((packed));
36255 
36256 struct acpi_resource_gpio {
36257 	u8 revision_id;
36258 	u8 connection_type;
36259 	u8 producer_consumer;
36260 	u8 pin_config;
36261 	u8 shareable;
36262 	u8 wake_capable;
36263 	u8 io_restriction;
36264 	u8 triggering;
36265 	u8 polarity;
36266 	u16 drive_strength;
36267 	u16 debounce_timeout;
36268 	u16 pin_table_length;
36269 	u16 vendor_length;
36270 	struct acpi_resource_source resource_source;
36271 	u16 *pin_table;
36272 	u8 *vendor_data;
36273 } __attribute__((packed));
36274 
36275 struct acpi_resource_common_serialbus {
36276 	u8 revision_id;
36277 	u8 type;
36278 	u8 producer_consumer;
36279 	u8 slave_mode;
36280 	u8 connection_sharing;
36281 	u8 type_revision_id;
36282 	u16 type_data_length;
36283 	u16 vendor_length;
36284 	struct acpi_resource_source resource_source;
36285 	u8 *vendor_data;
36286 } __attribute__((packed));
36287 
36288 struct acpi_resource_i2c_serialbus {
36289 	u8 revision_id;
36290 	u8 type;
36291 	u8 producer_consumer;
36292 	u8 slave_mode;
36293 	u8 connection_sharing;
36294 	u8 type_revision_id;
36295 	u16 type_data_length;
36296 	u16 vendor_length;
36297 	struct acpi_resource_source resource_source;
36298 	u8 *vendor_data;
36299 	u8 access_mode;
36300 	u16 slave_address;
36301 	u32 connection_speed;
36302 } __attribute__((packed));
36303 
36304 struct acpi_resource_spi_serialbus {
36305 	u8 revision_id;
36306 	u8 type;
36307 	u8 producer_consumer;
36308 	u8 slave_mode;
36309 	u8 connection_sharing;
36310 	u8 type_revision_id;
36311 	u16 type_data_length;
36312 	u16 vendor_length;
36313 	struct acpi_resource_source resource_source;
36314 	u8 *vendor_data;
36315 	u8 wire_mode;
36316 	u8 device_polarity;
36317 	u8 data_bit_length;
36318 	u8 clock_phase;
36319 	u8 clock_polarity;
36320 	u16 device_selection;
36321 	u32 connection_speed;
36322 } __attribute__((packed));
36323 
36324 struct acpi_resource_uart_serialbus {
36325 	u8 revision_id;
36326 	u8 type;
36327 	u8 producer_consumer;
36328 	u8 slave_mode;
36329 	u8 connection_sharing;
36330 	u8 type_revision_id;
36331 	u16 type_data_length;
36332 	u16 vendor_length;
36333 	struct acpi_resource_source resource_source;
36334 	u8 *vendor_data;
36335 	u8 endian;
36336 	u8 data_bits;
36337 	u8 stop_bits;
36338 	u8 flow_control;
36339 	u8 parity;
36340 	u8 lines_enabled;
36341 	u16 rx_fifo_size;
36342 	u16 tx_fifo_size;
36343 	u32 default_baud_rate;
36344 } __attribute__((packed));
36345 
36346 struct acpi_resource_csi2_serialbus {
36347 	u8 revision_id;
36348 	u8 type;
36349 	u8 producer_consumer;
36350 	u8 slave_mode;
36351 	u8 connection_sharing;
36352 	u8 type_revision_id;
36353 	u16 type_data_length;
36354 	u16 vendor_length;
36355 	struct acpi_resource_source resource_source;
36356 	u8 *vendor_data;
36357 	u8 local_port_instance;
36358 	u8 phy_type;
36359 } __attribute__((packed));
36360 
36361 struct acpi_resource_pin_function {
36362 	u8 revision_id;
36363 	u8 pin_config;
36364 	u8 shareable;
36365 	u16 function_number;
36366 	u16 pin_table_length;
36367 	u16 vendor_length;
36368 	struct acpi_resource_source resource_source;
36369 	u16 *pin_table;
36370 	u8 *vendor_data;
36371 } __attribute__((packed));
36372 
36373 struct acpi_resource_pin_config {
36374 	u8 revision_id;
36375 	u8 producer_consumer;
36376 	u8 shareable;
36377 	u8 pin_config_type;
36378 	u32 pin_config_value;
36379 	u16 pin_table_length;
36380 	u16 vendor_length;
36381 	struct acpi_resource_source resource_source;
36382 	u16 *pin_table;
36383 	u8 *vendor_data;
36384 } __attribute__((packed));
36385 
36386 struct acpi_resource_pin_group {
36387 	u8 revision_id;
36388 	u8 producer_consumer;
36389 	u16 pin_table_length;
36390 	u16 vendor_length;
36391 	u16 *pin_table;
36392 	struct acpi_resource_label resource_label;
36393 	u8 *vendor_data;
36394 } __attribute__((packed));
36395 
36396 struct acpi_resource_pin_group_function {
36397 	u8 revision_id;
36398 	u8 producer_consumer;
36399 	u8 shareable;
36400 	u16 function_number;
36401 	u16 vendor_length;
36402 	struct acpi_resource_source resource_source;
36403 	struct acpi_resource_label resource_source_label;
36404 	u8 *vendor_data;
36405 } __attribute__((packed));
36406 
36407 struct acpi_resource_pin_group_config {
36408 	u8 revision_id;
36409 	u8 producer_consumer;
36410 	u8 shareable;
36411 	u8 pin_config_type;
36412 	u32 pin_config_value;
36413 	u16 vendor_length;
36414 	struct acpi_resource_source resource_source;
36415 	struct acpi_resource_label resource_source_label;
36416 	u8 *vendor_data;
36417 } __attribute__((packed));
36418 
36419 union acpi_resource_data {
36420 	struct acpi_resource_irq irq;
36421 	struct acpi_resource_dma dma;
36422 	struct acpi_resource_start_dependent start_dpf;
36423 	struct acpi_resource_io io;
36424 	struct acpi_resource_fixed_io fixed_io;
36425 	struct acpi_resource_fixed_dma fixed_dma;
36426 	struct acpi_resource_vendor vendor;
36427 	struct acpi_resource_vendor_typed vendor_typed;
36428 	struct acpi_resource_end_tag end_tag;
36429 	struct acpi_resource_memory24 memory24;
36430 	struct acpi_resource_memory32 memory32;
36431 	struct acpi_resource_fixed_memory32 fixed_memory32;
36432 	struct acpi_resource_address16 address16;
36433 	struct acpi_resource_address32 address32;
36434 	struct acpi_resource_address64 address64;
36435 	struct acpi_resource_extended_address64 ext_address64;
36436 	struct acpi_resource_extended_irq extended_irq;
36437 	struct acpi_resource_generic_register generic_reg;
36438 	struct acpi_resource_gpio gpio;
36439 	struct acpi_resource_i2c_serialbus i2c_serial_bus;
36440 	struct acpi_resource_spi_serialbus spi_serial_bus;
36441 	struct acpi_resource_uart_serialbus uart_serial_bus;
36442 	struct acpi_resource_csi2_serialbus csi2_serial_bus;
36443 	struct acpi_resource_common_serialbus common_serial_bus;
36444 	struct acpi_resource_pin_function pin_function;
36445 	struct acpi_resource_pin_config pin_config;
36446 	struct acpi_resource_pin_group pin_group;
36447 	struct acpi_resource_pin_group_function pin_group_function;
36448 	struct acpi_resource_pin_group_config pin_group_config;
36449 	struct acpi_resource_address address;
36450 };
36451 
36452 struct acpi_resource {
36453 	u32 type;
36454 	u32 length;
36455 	union acpi_resource_data data;
36456 } __attribute__((packed));
36457 
36458 typedef acpi_status (*acpi_walk_resource_callback)(struct acpi_resource *, void *);
36459 
36460 struct irq_override_cmp {
36461 	const struct dmi_system_id *system;
36462 	unsigned char irq;
36463 	unsigned char triggering;
36464 	unsigned char polarity;
36465 	unsigned char shareable;
36466 	bool override;
36467 };
36468 
36469 struct res_proc_context {
36470 	struct list_head *list;
36471 	int (*preproc)(struct acpi_resource *, void *);
36472 	void *preproc_data;
36473 	int count;
36474 	int error;
36475 };
36476 
36477 struct acpi_object_list {
36478 	u32 count;
36479 	union acpi_object *pointer;
36480 };
36481 
36482 struct acpi_buffer {
36483 	acpi_size length;
36484 	void *pointer;
36485 };
36486 
36487 enum acpi_bridge_type {
36488 	ACPI_BRIDGE_TYPE_PCIE = 1,
36489 	ACPI_BRIDGE_TYPE_CXL = 2,
36490 };
36491 
36492 struct acpi_pci_root {
36493 	struct acpi_device *device;
36494 	struct pci_bus *bus;
36495 	u16 segment;
36496 	int bridge_type;
36497 	struct resource secondary;
36498 	u32 osc_support_set;
36499 	u32 osc_control_set;
36500 	u32 osc_ext_support_set;
36501 	u32 osc_ext_control_set;
36502 	phys_addr_t mcfg_addr;
36503 };
36504 
36505 struct acpi_osc_context {
36506 	char *uuid_str;
36507 	int rev;
36508 	struct acpi_buffer cap;
36509 	struct acpi_buffer ret;
36510 };
36511 
36512 struct acpi_pci_root_ops;
36513 
36514 struct acpi_pci_root_info {
36515 	struct acpi_pci_root *root;
36516 	struct acpi_device *bridge;
36517 	struct acpi_pci_root_ops *ops;
36518 	struct list_head resources;
36519 	char name[16];
36520 };
36521 
36522 struct acpi_pci_root_ops {
36523 	struct pci_ops *pci_ops;
36524 	int (*init_info)(struct acpi_pci_root_info *);
36525 	void (*release_info)(struct acpi_pci_root_info *);
36526 	int (*prepare_resources)(struct acpi_pci_root_info *);
36527 };
36528 
36529 struct pci_osc_bit_struct {
36530 	u32 bit;
36531 	char *desc;
36532 };
36533 
36534 struct acpi_bus_event {
36535 	struct list_head node;
36536 	acpi_device_class device_class;
36537 	acpi_bus_id bus_id;
36538 	u32 type;
36539 	u32 data;
36540 };
36541 
36542 struct scm_creds {
36543 	u32 pid;
36544 	kuid_t uid;
36545 	kgid_t gid;
36546 };
36547 
36548 struct netlink_skb_parms {
36549 	struct scm_creds creds;
36550 	__u32 portid;
36551 	__u32 dst_group;
36552 	__u32 flags;
36553 	struct sock *sk;
36554 	bool nsid_is_set;
36555 	int nsid;
36556 };
36557 
36558 struct genlmsghdr {
36559 	__u8 cmd;
36560 	__u8 version;
36561 	__u16 reserved;
36562 };
36563 
36564 struct genl_multicast_group {
36565 	char name[16];
36566 	u8 flags;
36567 };
36568 
36569 struct genl_split_ops;
36570 
36571 struct genl_info;
36572 
36573 struct genl_ops;
36574 
36575 struct genl_small_ops;
36576 
36577 struct genl_family {
36578 	unsigned int hdrsize;
36579 	char name[16];
36580 	unsigned int version;
36581 	unsigned int maxattr;
36582 	u8 netnsok: 1;
36583 	u8 parallel_ops: 1;
36584 	u8 n_ops;
36585 	u8 n_small_ops;
36586 	u8 n_split_ops;
36587 	u8 n_mcgrps;
36588 	u8 resv_start_op;
36589 	const struct nla_policy *policy;
36590 	int (*pre_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *);
36591 	void (*post_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *);
36592 	const struct genl_ops *ops;
36593 	const struct genl_small_ops *small_ops;
36594 	const struct genl_split_ops *split_ops;
36595 	const struct genl_multicast_group *mcgrps;
36596 	struct module *module;
36597 	int id;
36598 	unsigned int mcgrp_offset;
36599 };
36600 
36601 struct genl_split_ops {
36602 	union {
36603 		struct {
36604 			int (*pre_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *);
36605 			int (*doit)(struct sk_buff *, struct genl_info *);
36606 			void (*post_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *);
36607 		};
36608 		struct {
36609 			int (*start)(struct netlink_callback *);
36610 			int (*dumpit)(struct sk_buff *, struct netlink_callback *);
36611 			int (*done)(struct netlink_callback *);
36612 		};
36613 	};
36614 	const struct nla_policy *policy;
36615 	unsigned int maxattr;
36616 	u8 cmd;
36617 	u8 internal_flags;
36618 	u8 flags;
36619 	u8 validate;
36620 };
36621 
36622 struct genl_info {
36623 	u32 snd_seq;
36624 	u32 snd_portid;
36625 	struct nlmsghdr *nlhdr;
36626 	struct genlmsghdr *genlhdr;
36627 	void *userhdr;
36628 	struct nlattr **attrs;
36629 	possible_net_t _net;
36630 	void *user_ptr[2];
36631 	struct netlink_ext_ack *extack;
36632 };
36633 
36634 struct genl_ops {
36635 	int (*doit)(struct sk_buff *, struct genl_info *);
36636 	int (*start)(struct netlink_callback *);
36637 	int (*dumpit)(struct sk_buff *, struct netlink_callback *);
36638 	int (*done)(struct netlink_callback *);
36639 	const struct nla_policy *policy;
36640 	unsigned int maxattr;
36641 	u8 cmd;
36642 	u8 internal_flags;
36643 	u8 flags;
36644 	u8 validate;
36645 };
36646 
36647 struct genl_small_ops {
36648 	int (*doit)(struct sk_buff *, struct genl_info *);
36649 	int (*dumpit)(struct sk_buff *, struct netlink_callback *);
36650 	u8 cmd;
36651 	u8 internal_flags;
36652 	u8 flags;
36653 	u8 validate;
36654 };
36655 
36656 struct acpi_genl_event {
36657 	acpi_device_class device_class;
36658 	char bus_id[15];
36659 	u32 type;
36660 	u32 data;
36661 };
36662 
36663 enum {
36664 	ACPI_GENL_ATTR_UNSPEC = 0,
36665 	ACPI_GENL_ATTR_EVENT = 1,
36666 	__ACPI_GENL_ATTR_MAX = 2,
36667 };
36668 
36669 enum {
36670 	ACPI_GENL_CMD_UNSPEC = 0,
36671 	ACPI_GENL_CMD_EVENT = 1,
36672 	__ACPI_GENL_CMD_MAX = 2,
36673 };
36674 
36675 struct acpi_lpat {
36676 	int temp;
36677 	int raw;
36678 };
36679 
36680 struct acpi_lpat_conversion_table {
36681 	struct acpi_lpat *lpat;
36682 	int lpat_count;
36683 };
36684 
36685 typedef u16 acpi_owner_id;
36686 
36687 typedef u32 (*acpi_gpe_handler)(acpi_handle, u32, void *);
36688 
36689 typedef void (*acpi_notify_handler)(acpi_handle, u32, void *);
36690 
36691 typedef void (*acpi_object_handler)(acpi_handle, void *);
36692 
36693 typedef acpi_status (*acpi_adr_space_handler)(u32, acpi_physical_address, u32, u64 *, void *, void *);
36694 
36695 typedef acpi_status (*acpi_adr_space_setup)(acpi_handle, u32, void *, void **);
36696 
36697 union acpi_name_union {
36698 	u32 integer;
36699 	char ascii[4];
36700 };
36701 
36702 union acpi_operand_object;
36703 
36704 struct acpi_namespace_node {
36705 	union acpi_operand_object *object;
36706 	u8 descriptor_type;
36707 	u8 type;
36708 	u16 flags;
36709 	union acpi_name_union name;
36710 	struct acpi_namespace_node *parent;
36711 	struct acpi_namespace_node *child;
36712 	struct acpi_namespace_node *peer;
36713 	acpi_owner_id owner_id;
36714 };
36715 
36716 struct acpi_object_common {
36717 	union acpi_operand_object *next_object;
36718 	u8 descriptor_type;
36719 	u8 type;
36720 	u16 reference_count;
36721 	u8 flags;
36722 };
36723 
36724 struct acpi_object_integer {
36725 	union acpi_operand_object *next_object;
36726 	u8 descriptor_type;
36727 	u8 type;
36728 	u16 reference_count;
36729 	u8 flags;
36730 	u8 fill[3];
36731 	u64 value;
36732 };
36733 
36734 struct acpi_object_string {
36735 	union acpi_operand_object *next_object;
36736 	u8 descriptor_type;
36737 	u8 type;
36738 	u16 reference_count;
36739 	u8 flags;
36740 	char *pointer;
36741 	u32 length;
36742 };
36743 
36744 struct acpi_object_buffer {
36745 	union acpi_operand_object *next_object;
36746 	u8 descriptor_type;
36747 	u8 type;
36748 	u16 reference_count;
36749 	u8 flags;
36750 	u8 *pointer;
36751 	u32 length;
36752 	u32 aml_length;
36753 	u8 *aml_start;
36754 	struct acpi_namespace_node *node;
36755 };
36756 
36757 struct acpi_object_package {
36758 	union acpi_operand_object *next_object;
36759 	u8 descriptor_type;
36760 	u8 type;
36761 	u16 reference_count;
36762 	u8 flags;
36763 	struct acpi_namespace_node *node;
36764 	union acpi_operand_object **elements;
36765 	u8 *aml_start;
36766 	u32 aml_length;
36767 	u32 count;
36768 };
36769 
36770 struct acpi_object_event {
36771 	union acpi_operand_object *next_object;
36772 	u8 descriptor_type;
36773 	u8 type;
36774 	u16 reference_count;
36775 	u8 flags;
36776 	void *os_semaphore;
36777 };
36778 
36779 struct acpi_walk_state;
36780 
36781 typedef acpi_status (*acpi_internal_method)(struct acpi_walk_state *);
36782 
36783 struct acpi_object_method {
36784 	union acpi_operand_object *next_object;
36785 	u8 descriptor_type;
36786 	u8 type;
36787 	u16 reference_count;
36788 	u8 flags;
36789 	u8 info_flags;
36790 	u8 param_count;
36791 	u8 sync_level;
36792 	union acpi_operand_object *mutex;
36793 	union acpi_operand_object *node;
36794 	u8 *aml_start;
36795 	union {
36796 		acpi_internal_method implementation;
36797 		union acpi_operand_object *handler;
36798 	} dispatch;
36799 	u32 aml_length;
36800 	acpi_owner_id owner_id;
36801 	u8 thread_count;
36802 };
36803 
36804 struct acpi_thread_state;
36805 
36806 struct acpi_object_mutex {
36807 	union acpi_operand_object *next_object;
36808 	u8 descriptor_type;
36809 	u8 type;
36810 	u16 reference_count;
36811 	u8 flags;
36812 	u8 sync_level;
36813 	u16 acquisition_depth;
36814 	void *os_mutex;
36815 	u64 thread_id;
36816 	struct acpi_thread_state *owner_thread;
36817 	union acpi_operand_object *prev;
36818 	union acpi_operand_object *next;
36819 	struct acpi_namespace_node *node;
36820 	u8 original_sync_level;
36821 };
36822 
36823 struct acpi_object_region {
36824 	union acpi_operand_object *next_object;
36825 	u8 descriptor_type;
36826 	u8 type;
36827 	u16 reference_count;
36828 	u8 flags;
36829 	u8 space_id;
36830 	struct acpi_namespace_node *node;
36831 	union acpi_operand_object *handler;
36832 	union acpi_operand_object *next;
36833 	acpi_physical_address address;
36834 	u32 length;
36835 	void *pointer;
36836 };
36837 
36838 struct acpi_object_notify_common {
36839 	union acpi_operand_object *next_object;
36840 	u8 descriptor_type;
36841 	u8 type;
36842 	u16 reference_count;
36843 	u8 flags;
36844 	union acpi_operand_object *notify_list[2];
36845 	union acpi_operand_object *handler;
36846 };
36847 
36848 struct acpi_gpe_block_info;
36849 
36850 struct acpi_object_device {
36851 	union acpi_operand_object *next_object;
36852 	u8 descriptor_type;
36853 	u8 type;
36854 	u16 reference_count;
36855 	u8 flags;
36856 	union acpi_operand_object *notify_list[2];
36857 	union acpi_operand_object *handler;
36858 	struct acpi_gpe_block_info *gpe_block;
36859 };
36860 
36861 struct acpi_object_power_resource {
36862 	union acpi_operand_object *next_object;
36863 	u8 descriptor_type;
36864 	u8 type;
36865 	u16 reference_count;
36866 	u8 flags;
36867 	union acpi_operand_object *notify_list[2];
36868 	union acpi_operand_object *handler;
36869 	u32 system_level;
36870 	u32 resource_order;
36871 };
36872 
36873 struct acpi_object_processor {
36874 	union acpi_operand_object *next_object;
36875 	u8 descriptor_type;
36876 	u8 type;
36877 	u16 reference_count;
36878 	u8 flags;
36879 	u8 proc_id;
36880 	u8 length;
36881 	union acpi_operand_object *notify_list[2];
36882 	union acpi_operand_object *handler;
36883 	acpi_io_address address;
36884 };
36885 
36886 struct acpi_object_thermal_zone {
36887 	union acpi_operand_object *next_object;
36888 	u8 descriptor_type;
36889 	u8 type;
36890 	u16 reference_count;
36891 	u8 flags;
36892 	union acpi_operand_object *notify_list[2];
36893 	union acpi_operand_object *handler;
36894 };
36895 
36896 struct acpi_object_field_common {
36897 	union acpi_operand_object *next_object;
36898 	u8 descriptor_type;
36899 	u8 type;
36900 	u16 reference_count;
36901 	u8 flags;
36902 	u8 field_flags;
36903 	u8 attribute;
36904 	u8 access_byte_width;
36905 	struct acpi_namespace_node *node;
36906 	u32 bit_length;
36907 	u32 base_byte_offset;
36908 	u32 value;
36909 	u8 start_field_bit_offset;
36910 	u8 access_length;
36911 	union acpi_operand_object *region_obj;
36912 };
36913 
36914 struct acpi_object_region_field {
36915 	union acpi_operand_object *next_object;
36916 	u8 descriptor_type;
36917 	u8 type;
36918 	u16 reference_count;
36919 	u8 flags;
36920 	u8 field_flags;
36921 	u8 attribute;
36922 	u8 access_byte_width;
36923 	struct acpi_namespace_node *node;
36924 	u32 bit_length;
36925 	u32 base_byte_offset;
36926 	u32 value;
36927 	u8 start_field_bit_offset;
36928 	u8 access_length;
36929 	u16 resource_length;
36930 	union acpi_operand_object *region_obj;
36931 	u8 *resource_buffer;
36932 	u16 pin_number_index;
36933 	u8 *internal_pcc_buffer;
36934 };
36935 
36936 struct acpi_object_buffer_field {
36937 	union acpi_operand_object *next_object;
36938 	u8 descriptor_type;
36939 	u8 type;
36940 	u16 reference_count;
36941 	u8 flags;
36942 	u8 field_flags;
36943 	u8 attribute;
36944 	u8 access_byte_width;
36945 	struct acpi_namespace_node *node;
36946 	u32 bit_length;
36947 	u32 base_byte_offset;
36948 	u32 value;
36949 	u8 start_field_bit_offset;
36950 	u8 access_length;
36951 	u8 is_create_field;
36952 	union acpi_operand_object *buffer_obj;
36953 };
36954 
36955 struct acpi_object_bank_field {
36956 	union acpi_operand_object *next_object;
36957 	u8 descriptor_type;
36958 	u8 type;
36959 	u16 reference_count;
36960 	u8 flags;
36961 	u8 field_flags;
36962 	u8 attribute;
36963 	u8 access_byte_width;
36964 	struct acpi_namespace_node *node;
36965 	u32 bit_length;
36966 	u32 base_byte_offset;
36967 	u32 value;
36968 	u8 start_field_bit_offset;
36969 	u8 access_length;
36970 	union acpi_operand_object *region_obj;
36971 	union acpi_operand_object *bank_obj;
36972 };
36973 
36974 struct acpi_object_index_field {
36975 	union acpi_operand_object *next_object;
36976 	u8 descriptor_type;
36977 	u8 type;
36978 	u16 reference_count;
36979 	u8 flags;
36980 	u8 field_flags;
36981 	u8 attribute;
36982 	u8 access_byte_width;
36983 	struct acpi_namespace_node *node;
36984 	u32 bit_length;
36985 	u32 base_byte_offset;
36986 	u32 value;
36987 	u8 start_field_bit_offset;
36988 	u8 access_length;
36989 	union acpi_operand_object *index_obj;
36990 	union acpi_operand_object *data_obj;
36991 };
36992 
36993 struct acpi_object_notify_handler {
36994 	union acpi_operand_object *next_object;
36995 	u8 descriptor_type;
36996 	u8 type;
36997 	u16 reference_count;
36998 	u8 flags;
36999 	struct acpi_namespace_node *node;
37000 	u32 handler_type;
37001 	acpi_notify_handler handler;
37002 	void *context;
37003 	union acpi_operand_object *next[2];
37004 };
37005 
37006 struct acpi_object_addr_handler {
37007 	union acpi_operand_object *next_object;
37008 	u8 descriptor_type;
37009 	u8 type;
37010 	u16 reference_count;
37011 	u8 flags;
37012 	u8 space_id;
37013 	u8 handler_flags;
37014 	acpi_adr_space_handler handler;
37015 	struct acpi_namespace_node *node;
37016 	void *context;
37017 	void *context_mutex;
37018 	acpi_adr_space_setup setup;
37019 	union acpi_operand_object *region_list;
37020 	union acpi_operand_object *next;
37021 };
37022 
37023 struct acpi_object_reference {
37024 	union acpi_operand_object *next_object;
37025 	u8 descriptor_type;
37026 	u8 type;
37027 	u16 reference_count;
37028 	u8 flags;
37029 	u8 class;
37030 	u8 target_type;
37031 	u8 resolved;
37032 	void *object;
37033 	struct acpi_namespace_node *node;
37034 	union acpi_operand_object **where;
37035 	u8 *index_pointer;
37036 	u8 *aml;
37037 	u32 value;
37038 };
37039 
37040 struct acpi_object_extra {
37041 	union acpi_operand_object *next_object;
37042 	u8 descriptor_type;
37043 	u8 type;
37044 	u16 reference_count;
37045 	u8 flags;
37046 	struct acpi_namespace_node *method_REG;
37047 	struct acpi_namespace_node *scope_node;
37048 	void *region_context;
37049 	u8 *aml_start;
37050 	u32 aml_length;
37051 };
37052 
37053 struct acpi_object_data {
37054 	union acpi_operand_object *next_object;
37055 	u8 descriptor_type;
37056 	u8 type;
37057 	u16 reference_count;
37058 	u8 flags;
37059 	acpi_object_handler handler;
37060 	void *pointer;
37061 };
37062 
37063 struct acpi_object_cache_list {
37064 	union acpi_operand_object *next_object;
37065 	u8 descriptor_type;
37066 	u8 type;
37067 	u16 reference_count;
37068 	u8 flags;
37069 	union acpi_operand_object *next;
37070 };
37071 
37072 union acpi_operand_object {
37073 	struct acpi_object_common common;
37074 	struct acpi_object_integer integer;
37075 	struct acpi_object_string string;
37076 	struct acpi_object_buffer buffer;
37077 	struct acpi_object_package package;
37078 	struct acpi_object_event event;
37079 	struct acpi_object_method method;
37080 	struct acpi_object_mutex mutex;
37081 	struct acpi_object_region region;
37082 	struct acpi_object_notify_common common_notify;
37083 	struct acpi_object_device device;
37084 	struct acpi_object_power_resource power_resource;
37085 	struct acpi_object_processor processor;
37086 	struct acpi_object_thermal_zone thermal_zone;
37087 	struct acpi_object_field_common common_field;
37088 	struct acpi_object_region_field field;
37089 	struct acpi_object_buffer_field buffer_field;
37090 	struct acpi_object_bank_field bank_field;
37091 	struct acpi_object_index_field index_field;
37092 	struct acpi_object_notify_handler notify;
37093 	struct acpi_object_addr_handler address_space;
37094 	struct acpi_object_reference reference;
37095 	struct acpi_object_extra extra;
37096 	struct acpi_object_data data;
37097 	struct acpi_object_cache_list cache;
37098 	struct acpi_namespace_node node;
37099 };
37100 
37101 union acpi_parse_object;
37102 
37103 union acpi_generic_state;
37104 
37105 struct acpi_parse_state {
37106 	u8 *aml_start;
37107 	u8 *aml;
37108 	u8 *aml_end;
37109 	u8 *pkg_start;
37110 	u8 *pkg_end;
37111 	union acpi_parse_object *start_op;
37112 	struct acpi_namespace_node *start_node;
37113 	union acpi_generic_state *scope;
37114 	union acpi_parse_object *start_scope;
37115 	u32 aml_size;
37116 };
37117 
37118 typedef acpi_status (*acpi_parse_downwards)(struct acpi_walk_state *, union acpi_parse_object **);
37119 
37120 typedef acpi_status (*acpi_parse_upwards)(struct acpi_walk_state *);
37121 
37122 struct acpi_opcode_info;
37123 
37124 struct acpi_walk_state {
37125 	struct acpi_walk_state *next;
37126 	u8 descriptor_type;
37127 	u8 walk_type;
37128 	u16 opcode;
37129 	u8 next_op_info;
37130 	u8 num_operands;
37131 	u8 operand_index;
37132 	acpi_owner_id owner_id;
37133 	u8 last_predicate;
37134 	u8 current_result;
37135 	u8 return_used;
37136 	u8 scope_depth;
37137 	u8 pass_number;
37138 	u8 namespace_override;
37139 	u8 result_size;
37140 	u8 result_count;
37141 	u8 *aml;
37142 	u32 arg_types;
37143 	u32 method_breakpoint;
37144 	u32 user_breakpoint;
37145 	u32 parse_flags;
37146 	struct acpi_parse_state parser_state;
37147 	u32 prev_arg_types;
37148 	u32 arg_count;
37149 	u16 method_nesting_depth;
37150 	u8 method_is_nested;
37151 	struct acpi_namespace_node arguments[7];
37152 	struct acpi_namespace_node local_variables[8];
37153 	union acpi_operand_object *operands[9];
37154 	union acpi_operand_object **params;
37155 	u8 *aml_last_while;
37156 	union acpi_operand_object **caller_return_desc;
37157 	union acpi_generic_state *control_state;
37158 	struct acpi_namespace_node *deferred_node;
37159 	union acpi_operand_object *implicit_return_obj;
37160 	struct acpi_namespace_node *method_call_node;
37161 	union acpi_parse_object *method_call_op;
37162 	union acpi_operand_object *method_desc;
37163 	struct acpi_namespace_node *method_node;
37164 	char *method_pathname;
37165 	union acpi_parse_object *op;
37166 	const struct acpi_opcode_info *op_info;
37167 	union acpi_parse_object *origin;
37168 	union acpi_operand_object *result_obj;
37169 	union acpi_generic_state *results;
37170 	union acpi_operand_object *return_desc;
37171 	union acpi_generic_state *scope_info;
37172 	union acpi_parse_object *prev_op;
37173 	union acpi_parse_object *next_op;
37174 	struct acpi_thread_state *thread;
37175 	acpi_parse_downwards descending_callback;
37176 	acpi_parse_upwards ascending_callback;
37177 };
37178 
37179 struct acpi_gpe_handler_info {
37180 	acpi_gpe_handler address;
37181 	void *context;
37182 	struct acpi_namespace_node *method_node;
37183 	u8 original_flags;
37184 	u8 originally_enabled;
37185 };
37186 
37187 struct acpi_gpe_notify_info {
37188 	struct acpi_namespace_node *device_node;
37189 	struct acpi_gpe_notify_info *next;
37190 };
37191 
37192 union acpi_gpe_dispatch_info {
37193 	struct acpi_namespace_node *method_node;
37194 	struct acpi_gpe_handler_info *handler;
37195 	struct acpi_gpe_notify_info *notify_list;
37196 };
37197 
37198 struct acpi_gpe_register_info;
37199 
37200 struct acpi_gpe_event_info {
37201 	union acpi_gpe_dispatch_info dispatch;
37202 	struct acpi_gpe_register_info *register_info;
37203 	u8 flags;
37204 	u8 gpe_number;
37205 	u8 runtime_count;
37206 	u8 disable_for_dispatch;
37207 };
37208 
37209 struct acpi_gpe_address {
37210 	u8 space_id;
37211 	u64 address;
37212 };
37213 
37214 struct acpi_gpe_register_info {
37215 	struct acpi_gpe_address status_address;
37216 	struct acpi_gpe_address enable_address;
37217 	u16 base_gpe_number;
37218 	u8 enable_for_wake;
37219 	u8 enable_for_run;
37220 	u8 mask_for_run;
37221 	u8 enable_mask;
37222 };
37223 
37224 struct acpi_gpe_xrupt_info;
37225 
37226 struct acpi_gpe_block_info {
37227 	struct acpi_namespace_node *node;
37228 	struct acpi_gpe_block_info *previous;
37229 	struct acpi_gpe_block_info *next;
37230 	struct acpi_gpe_xrupt_info *xrupt_block;
37231 	struct acpi_gpe_register_info *register_info;
37232 	struct acpi_gpe_event_info *event_info;
37233 	u64 address;
37234 	u32 register_count;
37235 	u16 gpe_count;
37236 	u16 block_base_number;
37237 	u8 space_id;
37238 	u8 initialized;
37239 };
37240 
37241 struct acpi_gpe_xrupt_info {
37242 	struct acpi_gpe_xrupt_info *previous;
37243 	struct acpi_gpe_xrupt_info *next;
37244 	struct acpi_gpe_block_info *gpe_block_list_head;
37245 	u32 interrupt_number;
37246 };
37247 
37248 struct acpi_common_state {
37249 	void *next;
37250 	u8 descriptor_type;
37251 	u8 flags;
37252 	u16 value;
37253 	u16 state;
37254 };
37255 
37256 struct acpi_update_state {
37257 	void *next;
37258 	u8 descriptor_type;
37259 	u8 flags;
37260 	u16 value;
37261 	u16 state;
37262 	union acpi_operand_object *object;
37263 };
37264 
37265 struct acpi_pkg_state {
37266 	void *next;
37267 	u8 descriptor_type;
37268 	u8 flags;
37269 	u16 value;
37270 	u16 state;
37271 	u32 index;
37272 	union acpi_operand_object *source_object;
37273 	union acpi_operand_object *dest_object;
37274 	struct acpi_walk_state *walk_state;
37275 	void *this_target_obj;
37276 	u32 num_packages;
37277 };
37278 
37279 struct acpi_control_state {
37280 	void *next;
37281 	u8 descriptor_type;
37282 	u8 flags;
37283 	u16 value;
37284 	u16 state;
37285 	u16 opcode;
37286 	union acpi_parse_object *predicate_op;
37287 	u8 *aml_predicate_start;
37288 	u8 *package_end;
37289 	u64 loop_timeout;
37290 };
37291 
37292 union acpi_parse_value {
37293 	u64 integer;
37294 	u32 size;
37295 	char *string;
37296 	u8 *buffer;
37297 	char *name;
37298 	union acpi_parse_object *arg;
37299 };
37300 
37301 struct acpi_parse_obj_common {
37302 	union acpi_parse_object *parent;
37303 	u8 descriptor_type;
37304 	u8 flags;
37305 	u16 aml_opcode;
37306 	u8 *aml;
37307 	union acpi_parse_object *next;
37308 	struct acpi_namespace_node *node;
37309 	union acpi_parse_value value;
37310 	u8 arg_list_length;
37311 };
37312 
37313 struct acpi_parse_obj_named {
37314 	union acpi_parse_object *parent;
37315 	u8 descriptor_type;
37316 	u8 flags;
37317 	u16 aml_opcode;
37318 	u8 *aml;
37319 	union acpi_parse_object *next;
37320 	struct acpi_namespace_node *node;
37321 	union acpi_parse_value value;
37322 	u8 arg_list_length;
37323 	char *path;
37324 	u8 *data;
37325 	u32 length;
37326 	u32 name;
37327 };
37328 
37329 struct acpi_parse_obj_asl {
37330 	union acpi_parse_object *parent;
37331 	u8 descriptor_type;
37332 	u8 flags;
37333 	u16 aml_opcode;
37334 	u8 *aml;
37335 	union acpi_parse_object *next;
37336 	struct acpi_namespace_node *node;
37337 	union acpi_parse_value value;
37338 	u8 arg_list_length;
37339 	union acpi_parse_object *child;
37340 	union acpi_parse_object *parent_method;
37341 	char *filename;
37342 	u8 file_changed;
37343 	char *parent_filename;
37344 	char *external_name;
37345 	char *namepath;
37346 	char name_seg[4];
37347 	u32 extra_value;
37348 	u32 column;
37349 	u32 line_number;
37350 	u32 logical_line_number;
37351 	u32 logical_byte_offset;
37352 	u32 end_line;
37353 	u32 end_logical_line;
37354 	u32 acpi_btype;
37355 	u32 aml_length;
37356 	u32 aml_subtree_length;
37357 	u32 final_aml_length;
37358 	u32 final_aml_offset;
37359 	u32 compile_flags;
37360 	u16 parse_opcode;
37361 	u8 aml_opcode_length;
37362 	u8 aml_pkg_len_bytes;
37363 	u8 extra;
37364 	char parse_op_name[20];
37365 };
37366 
37367 union acpi_parse_object {
37368 	struct acpi_parse_obj_common common;
37369 	struct acpi_parse_obj_named named;
37370 	struct acpi_parse_obj_asl asl;
37371 };
37372 
37373 struct acpi_scope_state {
37374 	void *next;
37375 	u8 descriptor_type;
37376 	u8 flags;
37377 	u16 value;
37378 	u16 state;
37379 	struct acpi_namespace_node *node;
37380 };
37381 
37382 struct acpi_pscope_state {
37383 	void *next;
37384 	u8 descriptor_type;
37385 	u8 flags;
37386 	u16 value;
37387 	u16 state;
37388 	u32 arg_count;
37389 	union acpi_parse_object *op;
37390 	u8 *arg_end;
37391 	u8 *pkg_end;
37392 	u32 arg_list;
37393 };
37394 
37395 struct acpi_thread_state {
37396 	void *next;
37397 	u8 descriptor_type;
37398 	u8 flags;
37399 	u16 value;
37400 	u16 state;
37401 	u8 current_sync_level;
37402 	struct acpi_walk_state *walk_state_list;
37403 	union acpi_operand_object *acquired_mutex_list;
37404 	u64 thread_id;
37405 };
37406 
37407 struct acpi_result_values {
37408 	void *next;
37409 	u8 descriptor_type;
37410 	u8 flags;
37411 	u16 value;
37412 	u16 state;
37413 	union acpi_operand_object *obj_desc[8];
37414 };
37415 
37416 struct acpi_global_notify_handler {
37417 	acpi_notify_handler handler;
37418 	void *context;
37419 };
37420 
37421 struct acpi_notify_info {
37422 	void *next;
37423 	u8 descriptor_type;
37424 	u8 flags;
37425 	u16 value;
37426 	u16 state;
37427 	u8 handler_list_id;
37428 	struct acpi_namespace_node *node;
37429 	union acpi_operand_object *handler_list_head;
37430 	struct acpi_global_notify_handler *global;
37431 };
37432 
37433 union acpi_generic_state {
37434 	struct acpi_common_state common;
37435 	struct acpi_control_state control;
37436 	struct acpi_update_state update;
37437 	struct acpi_scope_state scope;
37438 	struct acpi_pscope_state parse_scope;
37439 	struct acpi_pkg_state pkg;
37440 	struct acpi_thread_state thread;
37441 	struct acpi_result_values results;
37442 	struct acpi_notify_info notify;
37443 };
37444 
37445 struct acpi_opcode_info {
37446 	u32 parse_args;
37447 	u32 runtime_args;
37448 	u16 flags;
37449 	u8 object_type;
37450 	u8 class;
37451 	u8 type;
37452 };
37453 
37454 typedef u32 acpi_name;
37455 
37456 typedef acpi_status (*acpi_exception_handler)(acpi_status, acpi_name, u16, u32, void *);
37457 
37458 struct acpi_name_info {
37459 	char name[4];
37460 	u16 argument_list;
37461 	u8 expected_btypes;
37462 } __attribute__((packed));
37463 
37464 struct acpi_package_info {
37465 	u8 type;
37466 	u8 object_type1;
37467 	u8 count1;
37468 	u8 object_type2;
37469 	u8 count2;
37470 	u16 reserved;
37471 } __attribute__((packed));
37472 
37473 struct acpi_package_info2 {
37474 	u8 type;
37475 	u8 count;
37476 	u8 object_type[4];
37477 	u8 reserved;
37478 };
37479 
37480 struct acpi_package_info3 {
37481 	u8 type;
37482 	u8 count;
37483 	u8 object_type[2];
37484 	u8 tail_object_type;
37485 	u16 reserved;
37486 } __attribute__((packed));
37487 
37488 struct acpi_package_info4 {
37489 	u8 type;
37490 	u8 object_type1;
37491 	u8 count1;
37492 	u8 sub_object_types;
37493 	u8 pkg_count;
37494 	u16 reserved;
37495 } __attribute__((packed));
37496 
37497 union acpi_predefined_info {
37498 	struct acpi_name_info info;
37499 	struct acpi_package_info ret_info;
37500 	struct acpi_package_info2 ret_info2;
37501 	struct acpi_package_info3 ret_info3;
37502 	struct acpi_package_info4 ret_info4;
37503 };
37504 
37505 struct acpi_evaluate_info {
37506 	struct acpi_namespace_node *prefix_node;
37507 	const char *relative_pathname;
37508 	union acpi_operand_object **parameters;
37509 	struct acpi_namespace_node *node;
37510 	union acpi_operand_object *obj_desc;
37511 	char *full_pathname;
37512 	const union acpi_predefined_info *predefined;
37513 	union acpi_operand_object *return_object;
37514 	union acpi_operand_object *parent_package;
37515 	u32 return_flags;
37516 	u32 return_btype;
37517 	u16 param_count;
37518 	u16 node_flags;
37519 	u8 pass_number;
37520 	u8 return_object_type;
37521 	u8 flags;
37522 };
37523 
37524 typedef enum {
37525 	ACPI_IMODE_LOAD_PASS1 = 1,
37526 	ACPI_IMODE_LOAD_PASS2 = 2,
37527 	ACPI_IMODE_EXECUTE = 3,
37528 } acpi_interpreter_mode;
37529 
37530 typedef void (*acpi_gbl_event_handler)(u32, acpi_handle, u32, void *);
37531 
37532 typedef u32 (*acpi_event_handler)(void *);
37533 
37534 struct acpi_pnp_device_id {
37535 	u32 length;
37536 	char *string;
37537 };
37538 
37539 struct acpi_pnp_device_id_list {
37540 	u32 count;
37541 	u32 list_size;
37542 	struct acpi_pnp_device_id ids[0];
37543 };
37544 
37545 struct acpi_mem_mapping {
37546 	acpi_physical_address physical_address;
37547 	u8 *logical_address;
37548 	acpi_size length;
37549 	struct acpi_mem_mapping *next_mm;
37550 };
37551 
37552 struct acpi_mem_space_context {
37553 	u32 length;
37554 	acpi_physical_address address;
37555 	struct acpi_mem_mapping *cur_mm;
37556 	struct acpi_mem_mapping *first_mm;
37557 };
37558 
37559 struct acpi_data_table_space_context {
37560 	void *pointer;
37561 };
37562 
37563 typedef u32 acpi_event_status;
37564 
37565 typedef u32 acpi_mutex_handle;
37566 
37567 struct acpi_gpe_device_info {
37568 	u32 index;
37569 	u32 next_block_base_index;
37570 	acpi_status status;
37571 	struct acpi_namespace_node *gpe_device;
37572 };
37573 
37574 typedef acpi_status (*acpi_gpe_callback)(struct acpi_gpe_xrupt_info *, struct acpi_gpe_block_info *, void *);
37575 
37576 enum {
37577 	ACPI_REFCLASS_LOCAL = 0,
37578 	ACPI_REFCLASS_ARG = 1,
37579 	ACPI_REFCLASS_REFOF = 2,
37580 	ACPI_REFCLASS_INDEX = 3,
37581 	ACPI_REFCLASS_TABLE = 4,
37582 	ACPI_REFCLASS_NAME = 5,
37583 	ACPI_REFCLASS_DEBUG = 6,
37584 	ACPI_REFCLASS_MAX = 6,
37585 };
37586 
37587 struct acpi_common_descriptor {
37588 	void *common_pointer;
37589 	u8 descriptor_type;
37590 };
37591 
37592 union acpi_descriptor {
37593 	struct acpi_common_descriptor common;
37594 	union acpi_operand_object object;
37595 	struct acpi_namespace_node node;
37596 	union acpi_parse_object op;
37597 };
37598 
37599 struct acpi_create_field_info {
37600 	struct acpi_namespace_node *region_node;
37601 	struct acpi_namespace_node *field_node;
37602 	struct acpi_namespace_node *register_node;
37603 	struct acpi_namespace_node *data_register_node;
37604 	struct acpi_namespace_node *connection_node;
37605 	u8 *resource_buffer;
37606 	u32 bank_value;
37607 	u32 field_bit_position;
37608 	u32 field_bit_length;
37609 	u16 resource_length;
37610 	u16 pin_number_index;
37611 	u8 field_flags;
37612 	u8 attribute;
37613 	u8 field_type;
37614 	u8 access_length;
37615 };
37616 
37617 enum {
37618 	AML_FIELD_ACCESS_ANY = 0,
37619 	AML_FIELD_ACCESS_BYTE = 1,
37620 	AML_FIELD_ACCESS_WORD = 2,
37621 	AML_FIELD_ACCESS_DWORD = 3,
37622 	AML_FIELD_ACCESS_QWORD = 4,
37623 	AML_FIELD_ACCESS_BUFFER = 5,
37624 };
37625 
37626 enum {
37627 	AML_FIELD_ATTRIB_QUICK = 2,
37628 	AML_FIELD_ATTRIB_SEND_RECEIVE = 4,
37629 	AML_FIELD_ATTRIB_BYTE = 6,
37630 	AML_FIELD_ATTRIB_WORD = 8,
37631 	AML_FIELD_ATTRIB_BLOCK = 10,
37632 	AML_FIELD_ATTRIB_BYTES = 11,
37633 	AML_FIELD_ATTRIB_PROCESS_CALL = 12,
37634 	AML_FIELD_ATTRIB_BLOCK_PROCESS_CALL = 13,
37635 	AML_FIELD_ATTRIB_RAW_BYTES = 14,
37636 	AML_FIELD_ATTRIB_RAW_PROCESS_BYTES = 15,
37637 };
37638 
37639 struct acpi_port_info {
37640 	char *name;
37641 	u16 start;
37642 	u16 end;
37643 	u8 osi_dependency;
37644 };
37645 
37646 struct acpi_pci_device {
37647 	acpi_handle device;
37648 	struct acpi_pci_device *next;
37649 };
37650 
37651 struct acpi_table_desc {
37652 	acpi_physical_address address;
37653 	struct acpi_table_header *pointer;
37654 	u32 length;
37655 	union acpi_name_union signature;
37656 	acpi_owner_id owner_id;
37657 	u8 flags;
37658 	u16 validation_count;
37659 };
37660 
37661 struct acpi_table_list {
37662 	struct acpi_table_desc *tables;
37663 	u32 current_table_count;
37664 	u32 max_table_count;
37665 	u8 flags;
37666 };
37667 
37668 enum acpi_return_package_types {
37669 	ACPI_PTYPE1_FIXED = 1,
37670 	ACPI_PTYPE1_VAR = 2,
37671 	ACPI_PTYPE1_OPTION = 3,
37672 	ACPI_PTYPE2 = 4,
37673 	ACPI_PTYPE2_COUNT = 5,
37674 	ACPI_PTYPE2_PKG_COUNT = 6,
37675 	ACPI_PTYPE2_FIXED = 7,
37676 	ACPI_PTYPE2_MIN = 8,
37677 	ACPI_PTYPE2_REV_FIXED = 9,
37678 	ACPI_PTYPE2_FIX_VAR = 10,
37679 	ACPI_PTYPE2_VAR_VAR = 11,
37680 	ACPI_PTYPE2_UUID_PAIR = 12,
37681 	ACPI_PTYPE_CUSTOM = 13,
37682 };
37683 
37684 struct acpi_rw_lock {
37685 	void *writer_mutex;
37686 	void *reader_mutex;
37687 	u32 num_readers;
37688 };
37689 
37690 struct acpi_get_devices_info {
37691 	acpi_walk_callback user_function;
37692 	void *context;
37693 	const char *hid;
37694 };
37695 
37696 struct aml_resource_small_header {
37697 	u8 descriptor_type;
37698 };
37699 
37700 struct aml_resource_irq {
37701 	u8 descriptor_type;
37702 	u16 irq_mask;
37703 	u8 flags;
37704 } __attribute__((packed));
37705 
37706 struct aml_resource_dma {
37707 	u8 descriptor_type;
37708 	u8 dma_channel_mask;
37709 	u8 flags;
37710 };
37711 
37712 struct aml_resource_start_dependent {
37713 	u8 descriptor_type;
37714 	u8 flags;
37715 };
37716 
37717 struct aml_resource_end_dependent {
37718 	u8 descriptor_type;
37719 };
37720 
37721 struct aml_resource_io {
37722 	u8 descriptor_type;
37723 	u8 flags;
37724 	u16 minimum;
37725 	u16 maximum;
37726 	u8 alignment;
37727 	u8 address_length;
37728 };
37729 
37730 struct aml_resource_fixed_io {
37731 	u8 descriptor_type;
37732 	u16 address;
37733 	u8 address_length;
37734 } __attribute__((packed));
37735 
37736 struct aml_resource_vendor_small {
37737 	u8 descriptor_type;
37738 };
37739 
37740 struct aml_resource_end_tag {
37741 	u8 descriptor_type;
37742 	u8 checksum;
37743 };
37744 
37745 struct aml_resource_fixed_dma {
37746 	u8 descriptor_type;
37747 	u16 request_lines;
37748 	u16 channels;
37749 	u8 width;
37750 } __attribute__((packed));
37751 
37752 struct aml_resource_large_header {
37753 	u8 descriptor_type;
37754 	u16 resource_length;
37755 } __attribute__((packed));
37756 
37757 struct aml_resource_memory24 {
37758 	u8 descriptor_type;
37759 	u16 resource_length;
37760 	u8 flags;
37761 	u16 minimum;
37762 	u16 maximum;
37763 	u16 alignment;
37764 	u16 address_length;
37765 } __attribute__((packed));
37766 
37767 struct aml_resource_vendor_large {
37768 	u8 descriptor_type;
37769 	u16 resource_length;
37770 } __attribute__((packed));
37771 
37772 struct aml_resource_memory32 {
37773 	u8 descriptor_type;
37774 	u16 resource_length;
37775 	u8 flags;
37776 	u32 minimum;
37777 	u32 maximum;
37778 	u32 alignment;
37779 	u32 address_length;
37780 } __attribute__((packed));
37781 
37782 struct aml_resource_fixed_memory32 {
37783 	u8 descriptor_type;
37784 	u16 resource_length;
37785 	u8 flags;
37786 	u32 address;
37787 	u32 address_length;
37788 } __attribute__((packed));
37789 
37790 struct aml_resource_address {
37791 	u8 descriptor_type;
37792 	u16 resource_length;
37793 	u8 resource_type;
37794 	u8 flags;
37795 	u8 specific_flags;
37796 } __attribute__((packed));
37797 
37798 struct aml_resource_extended_address64 {
37799 	u8 descriptor_type;
37800 	u16 resource_length;
37801 	u8 resource_type;
37802 	u8 flags;
37803 	u8 specific_flags;
37804 	u8 revision_ID;
37805 	u8 reserved;
37806 	u64 granularity;
37807 	u64 minimum;
37808 	u64 maximum;
37809 	u64 translation_offset;
37810 	u64 address_length;
37811 	u64 type_specific;
37812 } __attribute__((packed));
37813 
37814 struct aml_resource_address64 {
37815 	u8 descriptor_type;
37816 	u16 resource_length;
37817 	u8 resource_type;
37818 	u8 flags;
37819 	u8 specific_flags;
37820 	u64 granularity;
37821 	u64 minimum;
37822 	u64 maximum;
37823 	u64 translation_offset;
37824 	u64 address_length;
37825 } __attribute__((packed));
37826 
37827 struct aml_resource_address32 {
37828 	u8 descriptor_type;
37829 	u16 resource_length;
37830 	u8 resource_type;
37831 	u8 flags;
37832 	u8 specific_flags;
37833 	u32 granularity;
37834 	u32 minimum;
37835 	u32 maximum;
37836 	u32 translation_offset;
37837 	u32 address_length;
37838 } __attribute__((packed));
37839 
37840 struct aml_resource_address16 {
37841 	u8 descriptor_type;
37842 	u16 resource_length;
37843 	u8 resource_type;
37844 	u8 flags;
37845 	u8 specific_flags;
37846 	u16 granularity;
37847 	u16 minimum;
37848 	u16 maximum;
37849 	u16 translation_offset;
37850 	u16 address_length;
37851 } __attribute__((packed));
37852 
37853 struct aml_resource_extended_irq {
37854 	u8 descriptor_type;
37855 	u16 resource_length;
37856 	u8 flags;
37857 	u8 interrupt_count;
37858 	u32 interrupts[1];
37859 } __attribute__((packed));
37860 
37861 struct aml_resource_generic_register {
37862 	u8 descriptor_type;
37863 	u16 resource_length;
37864 	u8 address_space_id;
37865 	u8 bit_width;
37866 	u8 bit_offset;
37867 	u8 access_size;
37868 	u64 address;
37869 } __attribute__((packed));
37870 
37871 struct aml_resource_gpio {
37872 	u8 descriptor_type;
37873 	u16 resource_length;
37874 	u8 revision_id;
37875 	u8 connection_type;
37876 	u16 flags;
37877 	u16 int_flags;
37878 	u8 pin_config;
37879 	u16 drive_strength;
37880 	u16 debounce_timeout;
37881 	u16 pin_table_offset;
37882 	u8 res_source_index;
37883 	u16 res_source_offset;
37884 	u16 vendor_offset;
37885 	u16 vendor_length;
37886 } __attribute__((packed));
37887 
37888 struct aml_resource_common_serialbus {
37889 	u8 descriptor_type;
37890 	u16 resource_length;
37891 	u8 revision_id;
37892 	u8 res_source_index;
37893 	u8 type;
37894 	u8 flags;
37895 	u16 type_specific_flags;
37896 	u8 type_revision_id;
37897 	u16 type_data_length;
37898 } __attribute__((packed));
37899 
37900 struct aml_resource_csi2_serialbus {
37901 	u8 descriptor_type;
37902 	u16 resource_length;
37903 	u8 revision_id;
37904 	u8 res_source_index;
37905 	u8 type;
37906 	u8 flags;
37907 	u16 type_specific_flags;
37908 	u8 type_revision_id;
37909 	u16 type_data_length;
37910 } __attribute__((packed));
37911 
37912 struct aml_resource_i2c_serialbus {
37913 	u8 descriptor_type;
37914 	u16 resource_length;
37915 	u8 revision_id;
37916 	u8 res_source_index;
37917 	u8 type;
37918 	u8 flags;
37919 	u16 type_specific_flags;
37920 	u8 type_revision_id;
37921 	u16 type_data_length;
37922 	u32 connection_speed;
37923 	u16 slave_address;
37924 } __attribute__((packed));
37925 
37926 struct aml_resource_spi_serialbus {
37927 	u8 descriptor_type;
37928 	u16 resource_length;
37929 	u8 revision_id;
37930 	u8 res_source_index;
37931 	u8 type;
37932 	u8 flags;
37933 	u16 type_specific_flags;
37934 	u8 type_revision_id;
37935 	u16 type_data_length;
37936 	u32 connection_speed;
37937 	u8 data_bit_length;
37938 	u8 clock_phase;
37939 	u8 clock_polarity;
37940 	u16 device_selection;
37941 } __attribute__((packed));
37942 
37943 struct aml_resource_uart_serialbus {
37944 	u8 descriptor_type;
37945 	u16 resource_length;
37946 	u8 revision_id;
37947 	u8 res_source_index;
37948 	u8 type;
37949 	u8 flags;
37950 	u16 type_specific_flags;
37951 	u8 type_revision_id;
37952 	u16 type_data_length;
37953 	u32 default_baud_rate;
37954 	u16 rx_fifo_size;
37955 	u16 tx_fifo_size;
37956 	u8 parity;
37957 	u8 lines_enabled;
37958 } __attribute__((packed));
37959 
37960 struct aml_resource_pin_function {
37961 	u8 descriptor_type;
37962 	u16 resource_length;
37963 	u8 revision_id;
37964 	u16 flags;
37965 	u8 pin_config;
37966 	u16 function_number;
37967 	u16 pin_table_offset;
37968 	u8 res_source_index;
37969 	u16 res_source_offset;
37970 	u16 vendor_offset;
37971 	u16 vendor_length;
37972 } __attribute__((packed));
37973 
37974 struct aml_resource_pin_config {
37975 	u8 descriptor_type;
37976 	u16 resource_length;
37977 	u8 revision_id;
37978 	u16 flags;
37979 	u8 pin_config_type;
37980 	u32 pin_config_value;
37981 	u16 pin_table_offset;
37982 	u8 res_source_index;
37983 	u16 res_source_offset;
37984 	u16 vendor_offset;
37985 	u16 vendor_length;
37986 } __attribute__((packed));
37987 
37988 struct aml_resource_pin_group {
37989 	u8 descriptor_type;
37990 	u16 resource_length;
37991 	u8 revision_id;
37992 	u16 flags;
37993 	u16 pin_table_offset;
37994 	u16 label_offset;
37995 	u16 vendor_offset;
37996 	u16 vendor_length;
37997 } __attribute__((packed));
37998 
37999 struct aml_resource_pin_group_function {
38000 	u8 descriptor_type;
38001 	u16 resource_length;
38002 	u8 revision_id;
38003 	u16 flags;
38004 	u16 function_number;
38005 	u8 res_source_index;
38006 	u16 res_source_offset;
38007 	u16 res_source_label_offset;
38008 	u16 vendor_offset;
38009 	u16 vendor_length;
38010 } __attribute__((packed));
38011 
38012 struct aml_resource_pin_group_config {
38013 	u8 descriptor_type;
38014 	u16 resource_length;
38015 	u8 revision_id;
38016 	u16 flags;
38017 	u8 pin_config_type;
38018 	u32 pin_config_value;
38019 	u8 res_source_index;
38020 	u16 res_source_offset;
38021 	u16 res_source_label_offset;
38022 	u16 vendor_offset;
38023 	u16 vendor_length;
38024 } __attribute__((packed));
38025 
38026 union aml_resource {
38027 	u8 descriptor_type;
38028 	struct aml_resource_small_header small_header;
38029 	struct aml_resource_large_header large_header;
38030 	struct aml_resource_irq irq;
38031 	struct aml_resource_dma dma;
38032 	struct aml_resource_start_dependent start_dpf;
38033 	struct aml_resource_end_dependent end_dpf;
38034 	struct aml_resource_io io;
38035 	struct aml_resource_fixed_io fixed_io;
38036 	struct aml_resource_fixed_dma fixed_dma;
38037 	struct aml_resource_vendor_small vendor_small;
38038 	struct aml_resource_end_tag end_tag;
38039 	struct aml_resource_memory24 memory24;
38040 	struct aml_resource_generic_register generic_reg;
38041 	struct aml_resource_vendor_large vendor_large;
38042 	struct aml_resource_memory32 memory32;
38043 	struct aml_resource_fixed_memory32 fixed_memory32;
38044 	struct aml_resource_address16 address16;
38045 	struct aml_resource_address32 address32;
38046 	struct aml_resource_address64 address64;
38047 	struct aml_resource_extended_address64 ext_address64;
38048 	struct aml_resource_extended_irq extended_irq;
38049 	struct aml_resource_gpio gpio;
38050 	struct aml_resource_i2c_serialbus i2c_serial_bus;
38051 	struct aml_resource_spi_serialbus spi_serial_bus;
38052 	struct aml_resource_uart_serialbus uart_serial_bus;
38053 	struct aml_resource_csi2_serialbus csi2_serial_bus;
38054 	struct aml_resource_common_serialbus common_serial_bus;
38055 	struct aml_resource_pin_function pin_function;
38056 	struct aml_resource_pin_config pin_config;
38057 	struct aml_resource_pin_group pin_group;
38058 	struct aml_resource_pin_group_function pin_group_function;
38059 	struct aml_resource_pin_group_config pin_group_config;
38060 	struct aml_resource_address address;
38061 	u32 dword_item;
38062 	u16 word_item;
38063 	u8 byte_item;
38064 };
38065 
38066 struct acpi_rsconvert_info {
38067 	u8 opcode;
38068 	u8 resource_offset;
38069 	u8 aml_offset;
38070 	u8 value;
38071 };
38072 
38073 enum {
38074 	ACPI_RSC_INITGET = 0,
38075 	ACPI_RSC_INITSET = 1,
38076 	ACPI_RSC_FLAGINIT = 2,
38077 	ACPI_RSC_1BITFLAG = 3,
38078 	ACPI_RSC_2BITFLAG = 4,
38079 	ACPI_RSC_3BITFLAG = 5,
38080 	ACPI_RSC_6BITFLAG = 6,
38081 	ACPI_RSC_ADDRESS = 7,
38082 	ACPI_RSC_BITMASK = 8,
38083 	ACPI_RSC_BITMASK16 = 9,
38084 	ACPI_RSC_COUNT = 10,
38085 	ACPI_RSC_COUNT16 = 11,
38086 	ACPI_RSC_COUNT_GPIO_PIN = 12,
38087 	ACPI_RSC_COUNT_GPIO_RES = 13,
38088 	ACPI_RSC_COUNT_GPIO_VEN = 14,
38089 	ACPI_RSC_COUNT_SERIAL_RES = 15,
38090 	ACPI_RSC_COUNT_SERIAL_VEN = 16,
38091 	ACPI_RSC_DATA8 = 17,
38092 	ACPI_RSC_EXIT_EQ = 18,
38093 	ACPI_RSC_EXIT_LE = 19,
38094 	ACPI_RSC_EXIT_NE = 20,
38095 	ACPI_RSC_LENGTH = 21,
38096 	ACPI_RSC_MOVE_GPIO_PIN = 22,
38097 	ACPI_RSC_MOVE_GPIO_RES = 23,
38098 	ACPI_RSC_MOVE_SERIAL_RES = 24,
38099 	ACPI_RSC_MOVE_SERIAL_VEN = 25,
38100 	ACPI_RSC_MOVE8 = 26,
38101 	ACPI_RSC_MOVE16 = 27,
38102 	ACPI_RSC_MOVE32 = 28,
38103 	ACPI_RSC_MOVE64 = 29,
38104 	ACPI_RSC_SET8 = 30,
38105 	ACPI_RSC_SOURCE = 31,
38106 	ACPI_RSC_SOURCEX = 32,
38107 };
38108 
38109 typedef acpi_status (*acpi_table_handler)(u32, void *, void *);
38110 
38111 struct acpi_table_rsdp {
38112 	char signature[8];
38113 	u8 checksum;
38114 	char oem_id[6];
38115 	u8 revision;
38116 	u32 rsdt_physical_address;
38117 	u32 length;
38118 	u64 xsdt_physical_address;
38119 	u8 extended_checksum;
38120 	u8 reserved[3];
38121 } __attribute__((packed));
38122 
38123 struct acpi_table_facs {
38124 	char signature[4];
38125 	u32 length;
38126 	u32 hardware_signature;
38127 	u32 firmware_waking_vector;
38128 	u32 global_lock;
38129 	u32 flags;
38130 	u64 xfirmware_waking_vector;
38131 	u8 version;
38132 	u8 reserved[3];
38133 	u32 ospm_flags;
38134 	u8 reserved1[24];
38135 };
38136 
38137 struct acpi_address_range {
38138 	struct acpi_address_range *next;
38139 	struct acpi_namespace_node *region_node;
38140 	acpi_physical_address start_address;
38141 	acpi_physical_address end_address;
38142 };
38143 
38144 struct acpi_exception_info {
38145 	char *name;
38146 };
38147 
38148 typedef acpi_status (*acpi_pkg_callback)(u8, union acpi_operand_object *, union acpi_generic_state *, void *);
38149 
38150 struct input_id {
38151 	__u16 bustype;
38152 	__u16 vendor;
38153 	__u16 product;
38154 	__u16 version;
38155 };
38156 
38157 struct input_absinfo {
38158 	__s32 value;
38159 	__s32 minimum;
38160 	__s32 maximum;
38161 	__s32 fuzz;
38162 	__s32 flat;
38163 	__s32 resolution;
38164 };
38165 
38166 struct input_keymap_entry {
38167 	__u8 flags;
38168 	__u8 len;
38169 	__u16 index;
38170 	__u32 keycode;
38171 	__u8 scancode[32];
38172 };
38173 
38174 struct ff_replay {
38175 	__u16 length;
38176 	__u16 delay;
38177 };
38178 
38179 struct ff_trigger {
38180 	__u16 button;
38181 	__u16 interval;
38182 };
38183 
38184 struct ff_envelope {
38185 	__u16 attack_length;
38186 	__u16 attack_level;
38187 	__u16 fade_length;
38188 	__u16 fade_level;
38189 };
38190 
38191 struct ff_constant_effect {
38192 	__s16 level;
38193 	struct ff_envelope envelope;
38194 };
38195 
38196 struct ff_ramp_effect {
38197 	__s16 start_level;
38198 	__s16 end_level;
38199 	struct ff_envelope envelope;
38200 };
38201 
38202 struct ff_condition_effect {
38203 	__u16 right_saturation;
38204 	__u16 left_saturation;
38205 	__s16 right_coeff;
38206 	__s16 left_coeff;
38207 	__u16 deadband;
38208 	__s16 center;
38209 };
38210 
38211 struct ff_periodic_effect {
38212 	__u16 waveform;
38213 	__u16 period;
38214 	__s16 magnitude;
38215 	__s16 offset;
38216 	__u16 phase;
38217 	struct ff_envelope envelope;
38218 	__u32 custom_len;
38219 	__s16 *custom_data;
38220 };
38221 
38222 struct ff_rumble_effect {
38223 	__u16 strong_magnitude;
38224 	__u16 weak_magnitude;
38225 };
38226 
38227 struct ff_effect {
38228 	__u16 type;
38229 	__s16 id;
38230 	__u16 direction;
38231 	struct ff_trigger trigger;
38232 	struct ff_replay replay;
38233 	union {
38234 		struct ff_constant_effect constant;
38235 		struct ff_ramp_effect ramp;
38236 		struct ff_periodic_effect periodic;
38237 		struct ff_condition_effect condition[2];
38238 		struct ff_rumble_effect rumble;
38239 	} u;
38240 };
38241 
38242 struct input_device_id {
38243 	kernel_ulong_t flags;
38244 	__u16 bustype;
38245 	__u16 vendor;
38246 	__u16 product;
38247 	__u16 version;
38248 	kernel_ulong_t evbit[1];
38249 	kernel_ulong_t keybit[12];
38250 	kernel_ulong_t relbit[1];
38251 	kernel_ulong_t absbit[1];
38252 	kernel_ulong_t mscbit[1];
38253 	kernel_ulong_t ledbit[1];
38254 	kernel_ulong_t sndbit[1];
38255 	kernel_ulong_t ffbit[2];
38256 	kernel_ulong_t swbit[1];
38257 	kernel_ulong_t propbit[1];
38258 	kernel_ulong_t driver_info;
38259 };
38260 
38261 struct input_value {
38262 	__u16 type;
38263 	__u16 code;
38264 	__s32 value;
38265 };
38266 
38267 enum input_clock_type {
38268 	INPUT_CLK_REAL = 0,
38269 	INPUT_CLK_MONO = 1,
38270 	INPUT_CLK_BOOT = 2,
38271 	INPUT_CLK_MAX = 3,
38272 };
38273 
38274 struct ff_device;
38275 
38276 struct input_dev_poller;
38277 
38278 struct input_mt;
38279 
38280 struct input_handle;
38281 
38282 struct input_dev {
38283 	const char *name;
38284 	const char *phys;
38285 	const char *uniq;
38286 	struct input_id id;
38287 	long unsigned int propbit[1];
38288 	long unsigned int evbit[1];
38289 	long unsigned int keybit[12];
38290 	long unsigned int relbit[1];
38291 	long unsigned int absbit[1];
38292 	long unsigned int mscbit[1];
38293 	long unsigned int ledbit[1];
38294 	long unsigned int sndbit[1];
38295 	long unsigned int ffbit[2];
38296 	long unsigned int swbit[1];
38297 	unsigned int hint_events_per_packet;
38298 	unsigned int keycodemax;
38299 	unsigned int keycodesize;
38300 	void *keycode;
38301 	int (*setkeycode)(struct input_dev *, const struct input_keymap_entry *, unsigned int *);
38302 	int (*getkeycode)(struct input_dev *, struct input_keymap_entry *);
38303 	struct ff_device *ff;
38304 	struct input_dev_poller *poller;
38305 	unsigned int repeat_key;
38306 	struct timer_list timer;
38307 	int rep[2];
38308 	struct input_mt *mt;
38309 	struct input_absinfo *absinfo;
38310 	long unsigned int key[12];
38311 	long unsigned int led[1];
38312 	long unsigned int snd[1];
38313 	long unsigned int sw[1];
38314 	int (*open)(struct input_dev *);
38315 	void (*close)(struct input_dev *);
38316 	int (*flush)(struct input_dev *, struct file *);
38317 	int (*event)(struct input_dev *, unsigned int, unsigned int, int);
38318 	struct input_handle *grab;
38319 	spinlock_t event_lock;
38320 	struct mutex mutex;
38321 	unsigned int users;
38322 	bool going_away;
38323 	struct device dev;
38324 	struct list_head h_list;
38325 	struct list_head node;
38326 	unsigned int num_vals;
38327 	unsigned int max_vals;
38328 	struct input_value *vals;
38329 	bool devres_managed;
38330 	ktime_t timestamp[3];
38331 	bool inhibited;
38332 };
38333 
38334 struct ff_device {
38335 	int (*upload)(struct input_dev *, struct ff_effect *, struct ff_effect *);
38336 	int (*erase)(struct input_dev *, int);
38337 	int (*playback)(struct input_dev *, int, int);
38338 	void (*set_gain)(struct input_dev *, u16);
38339 	void (*set_autocenter)(struct input_dev *, u16);
38340 	void (*destroy)(struct ff_device *);
38341 	void *private;
38342 	long unsigned int ffbit[2];
38343 	struct mutex mutex;
38344 	int max_effects;
38345 	struct ff_effect *effects;
38346 	struct file *effect_owners[0];
38347 };
38348 
38349 struct input_handler;
38350 
38351 struct input_handle {
38352 	void *private;
38353 	int open;
38354 	const char *name;
38355 	struct input_dev *dev;
38356 	struct input_handler *handler;
38357 	struct list_head d_node;
38358 	struct list_head h_node;
38359 };
38360 
38361 struct input_handler {
38362 	void *private;
38363 	void (*event)(struct input_handle *, unsigned int, unsigned int, int);
38364 	void (*events)(struct input_handle *, const struct input_value *, unsigned int);
38365 	bool (*filter)(struct input_handle *, unsigned int, unsigned int, int);
38366 	bool (*match)(struct input_handler *, struct input_dev *);
38367 	int (*connect)(struct input_handler *, struct input_dev *, const struct input_device_id *);
38368 	void (*disconnect)(struct input_handle *);
38369 	void (*start)(struct input_handle *);
38370 	bool legacy_minors;
38371 	int minor;
38372 	const char *name;
38373 	const struct input_device_id *id_table;
38374 	struct list_head h_list;
38375 	struct list_head node;
38376 };
38377 
38378 typedef int (*acpi_op_add)(struct acpi_device *);
38379 
38380 typedef void (*acpi_op_remove)(struct acpi_device *);
38381 
38382 typedef void (*acpi_op_notify)(struct acpi_device *, u32);
38383 
38384 struct acpi_device_ops {
38385 	acpi_op_add add;
38386 	acpi_op_remove remove;
38387 	acpi_op_notify notify;
38388 };
38389 
38390 struct acpi_driver {
38391 	char name[80];
38392 	char class[80];
38393 	const struct acpi_device_id *ids;
38394 	unsigned int flags;
38395 	struct acpi_device_ops ops;
38396 	struct device_driver drv;
38397 	struct module *owner;
38398 };
38399 
38400 enum {
38401 	ACPI_BUTTON_LID_INIT_IGNORE = 0,
38402 	ACPI_BUTTON_LID_INIT_OPEN = 1,
38403 	ACPI_BUTTON_LID_INIT_METHOD = 2,
38404 	ACPI_BUTTON_LID_INIT_DISABLED = 3,
38405 };
38406 
38407 struct acpi_button {
38408 	unsigned int type;
38409 	struct input_dev *input;
38410 	char phys[32];
38411 	long unsigned int pushed;
38412 	int last_state;
38413 	ktime_t last_time;
38414 	bool suspended;
38415 	bool lid_state_initialized;
38416 };
38417 
38418 struct pnp_device_id {
38419 	__u8 id[8];
38420 	kernel_ulong_t driver_data;
38421 };
38422 
38423 struct pnp_card_device_id {
38424 	__u8 id[8];
38425 	kernel_ulong_t driver_data;
38426 	struct {
38427 		__u8 id[8];
38428 	} devs[8];
38429 };
38430 
38431 struct pnp_protocol;
38432 
38433 struct pnp_id;
38434 
38435 struct pnp_card {
38436 	struct device dev;
38437 	unsigned char number;
38438 	struct list_head global_list;
38439 	struct list_head protocol_list;
38440 	struct list_head devices;
38441 	struct pnp_protocol *protocol;
38442 	struct pnp_id *id;
38443 	char name[50];
38444 	unsigned char pnpver;
38445 	unsigned char productver;
38446 	unsigned int serial;
38447 	unsigned char checksum;
38448 	struct proc_dir_entry *procdir;
38449 };
38450 
38451 struct pnp_dev;
38452 
38453 struct pnp_protocol {
38454 	struct list_head protocol_list;
38455 	char *name;
38456 	int (*get)(struct pnp_dev *);
38457 	int (*set)(struct pnp_dev *);
38458 	int (*disable)(struct pnp_dev *);
38459 	bool (*can_wakeup)(struct pnp_dev *);
38460 	int (*suspend)(struct pnp_dev *, pm_message_t);
38461 	int (*resume)(struct pnp_dev *);
38462 	unsigned char number;
38463 	struct device dev;
38464 	struct list_head cards;
38465 	struct list_head devices;
38466 };
38467 
38468 struct pnp_id {
38469 	char id[8];
38470 	struct pnp_id *next;
38471 };
38472 
38473 struct pnp_card_driver;
38474 
38475 struct pnp_card_link {
38476 	struct pnp_card *card;
38477 	struct pnp_card_driver *driver;
38478 	void *driver_data;
38479 	pm_message_t pm_state;
38480 };
38481 
38482 struct pnp_driver {
38483 	const char *name;
38484 	const struct pnp_device_id *id_table;
38485 	unsigned int flags;
38486 	int (*probe)(struct pnp_dev *, const struct pnp_device_id *);
38487 	void (*remove)(struct pnp_dev *);
38488 	void (*shutdown)(struct pnp_dev *);
38489 	int (*suspend)(struct pnp_dev *, pm_message_t);
38490 	int (*resume)(struct pnp_dev *);
38491 	struct device_driver driver;
38492 };
38493 
38494 struct pnp_card_driver {
38495 	struct list_head global_list;
38496 	char *name;
38497 	const struct pnp_card_device_id *id_table;
38498 	unsigned int flags;
38499 	int (*probe)(struct pnp_card_link *, const struct pnp_card_device_id *);
38500 	void (*remove)(struct pnp_card_link *);
38501 	int (*suspend)(struct pnp_card_link *, pm_message_t);
38502 	int (*resume)(struct pnp_card_link *);
38503 	struct pnp_driver link;
38504 };
38505 
38506 struct pnp_dev {
38507 	struct device dev;
38508 	u64 dma_mask;
38509 	unsigned int number;
38510 	int status;
38511 	struct list_head global_list;
38512 	struct list_head protocol_list;
38513 	struct list_head card_list;
38514 	struct list_head rdev_list;
38515 	struct pnp_protocol *protocol;
38516 	struct pnp_card *card;
38517 	struct pnp_driver *driver;
38518 	struct pnp_card_link *card_link;
38519 	struct pnp_id *id;
38520 	int active;
38521 	int capabilities;
38522 	unsigned int num_dependent_sets;
38523 	struct list_head resources;
38524 	struct list_head options;
38525 	char name[50];
38526 	int flags;
38527 	struct proc_dir_entry *procent;
38528 	void *data;
38529 };
38530 
38531 enum acpi_backlight_type {
38532 	acpi_backlight_undef = -1,
38533 	acpi_backlight_none = 0,
38534 	acpi_backlight_video = 1,
38535 	acpi_backlight_vendor = 2,
38536 	acpi_backlight_native = 3,
38537 	acpi_backlight_nvidia_wmi_ec = 4,
38538 	acpi_backlight_apple_gmux = 5,
38539 };
38540 
38541 typedef u32 phys_cpuid_t;
38542 
38543 struct cpuidle_state_usage {
38544 	long long unsigned int disable;
38545 	long long unsigned int usage;
38546 	u64 time_ns;
38547 	long long unsigned int above;
38548 	long long unsigned int below;
38549 	long long unsigned int rejected;
38550 	long long unsigned int s2idle_usage;
38551 	long long unsigned int s2idle_time;
38552 };
38553 
38554 struct cpuidle_device;
38555 
38556 struct cpuidle_driver;
38557 
38558 struct cpuidle_state {
38559 	char name[16];
38560 	char desc[32];
38561 	s64 exit_latency_ns;
38562 	s64 target_residency_ns;
38563 	unsigned int flags;
38564 	unsigned int exit_latency;
38565 	int power_usage;
38566 	unsigned int target_residency;
38567 	int (*enter)(struct cpuidle_device *, struct cpuidle_driver *, int);
38568 	int (*enter_dead)(struct cpuidle_device *, int);
38569 	int (*enter_s2idle)(struct cpuidle_device *, struct cpuidle_driver *, int);
38570 };
38571 
38572 struct cpuidle_state_kobj;
38573 
38574 struct cpuidle_driver_kobj;
38575 
38576 struct cpuidle_device_kobj;
38577 
38578 struct cpuidle_device {
38579 	unsigned int registered: 1;
38580 	unsigned int enabled: 1;
38581 	unsigned int poll_time_limit: 1;
38582 	unsigned int cpu;
38583 	ktime_t next_hrtimer;
38584 	int last_state_idx;
38585 	u64 last_residency_ns;
38586 	u64 poll_limit_ns;
38587 	u64 forced_idle_latency_limit_ns;
38588 	struct cpuidle_state_usage states_usage[10];
38589 	struct cpuidle_state_kobj *kobjs[10];
38590 	struct cpuidle_driver_kobj *kobj_driver;
38591 	struct cpuidle_device_kobj *kobj_dev;
38592 	struct list_head device_list;
38593 };
38594 
38595 struct cpuidle_driver {
38596 	const char *name;
38597 	struct module *owner;
38598 	unsigned int bctimer: 1;
38599 	struct cpuidle_state states[10];
38600 	int state_count;
38601 	int safe_state_index;
38602 	struct cpumask *cpumask;
38603 	const char *governor;
38604 };
38605 
38606 struct thermal_cooling_device_ops;
38607 
38608 struct thermal_cooling_device {
38609 	int id;
38610 	char *type;
38611 	long unsigned int max_state;
38612 	struct device device;
38613 	struct device_node *np;
38614 	void *devdata;
38615 	void *stats;
38616 	const struct thermal_cooling_device_ops *ops;
38617 	bool updated;
38618 	struct mutex lock;
38619 	struct list_head thermal_instances;
38620 	struct list_head node;
38621 };
38622 
38623 struct thermal_cooling_device_ops {
38624 	int (*get_max_state)(struct thermal_cooling_device *, long unsigned int *);
38625 	int (*get_cur_state)(struct thermal_cooling_device *, long unsigned int *);
38626 	int (*set_cur_state)(struct thermal_cooling_device *, long unsigned int);
38627 	int (*get_requested_power)(struct thermal_cooling_device *, u32 *);
38628 	int (*state2power)(struct thermal_cooling_device *, long unsigned int, u32 *);
38629 	int (*power2state)(struct thermal_cooling_device *, u32, long unsigned int *);
38630 };
38631 
38632 struct acpi_power_register {
38633 	u8 descriptor;
38634 	u16 length;
38635 	u8 space_id;
38636 	u8 bit_width;
38637 	u8 bit_offset;
38638 	u8 access_size;
38639 	u64 address;
38640 } __attribute__((packed));
38641 
38642 struct acpi_processor_cx {
38643 	u8 valid;
38644 	u8 type;
38645 	u32 address;
38646 	u8 entry_method;
38647 	u8 index;
38648 	u32 latency;
38649 	u8 bm_sts_skip;
38650 	char desc[32];
38651 };
38652 
38653 struct acpi_lpi_state {
38654 	u32 min_residency;
38655 	u32 wake_latency;
38656 	u32 flags;
38657 	u32 arch_flags;
38658 	u32 res_cnt_freq;
38659 	u32 enable_parent_state;
38660 	u64 address;
38661 	u8 index;
38662 	u8 entry_method;
38663 	char desc[32];
38664 };
38665 
38666 struct acpi_processor_power {
38667 	int count;
38668 	union {
38669 		struct acpi_processor_cx states[8];
38670 		struct acpi_lpi_state lpi_states[8];
38671 	};
38672 	int timer_broadcast_on_state;
38673 };
38674 
38675 struct acpi_psd_package {
38676 	u64 num_entries;
38677 	u64 revision;
38678 	u64 domain;
38679 	u64 coord_type;
38680 	u64 num_processors;
38681 };
38682 
38683 struct acpi_pct_register {
38684 	u8 descriptor;
38685 	u16 length;
38686 	u8 space_id;
38687 	u8 bit_width;
38688 	u8 bit_offset;
38689 	u8 reserved;
38690 	u64 address;
38691 } __attribute__((packed));
38692 
38693 struct acpi_processor_px {
38694 	u64 core_frequency;
38695 	u64 power;
38696 	u64 transition_latency;
38697 	u64 bus_master_latency;
38698 	u64 control;
38699 	u64 status;
38700 };
38701 
38702 struct acpi_processor_performance {
38703 	unsigned int state;
38704 	unsigned int platform_limit;
38705 	struct acpi_pct_register control_register;
38706 	struct acpi_pct_register status_register;
38707 	short: 16;
38708 	unsigned int state_count;
38709 	int: 32;
38710 	struct acpi_processor_px *states;
38711 	struct acpi_psd_package domain_info;
38712 	cpumask_var_t shared_cpu_map;
38713 	unsigned int shared_type;
38714 	int: 32;
38715 } __attribute__((packed));
38716 
38717 struct acpi_tsd_package {
38718 	u64 num_entries;
38719 	u64 revision;
38720 	u64 domain;
38721 	u64 coord_type;
38722 	u64 num_processors;
38723 };
38724 
38725 struct acpi_processor_tx_tss {
38726 	u64 freqpercentage;
38727 	u64 power;
38728 	u64 transition_latency;
38729 	u64 control;
38730 	u64 status;
38731 };
38732 
38733 struct acpi_processor_tx {
38734 	u16 power;
38735 	u16 performance;
38736 };
38737 
38738 struct acpi_processor;
38739 
38740 struct acpi_processor_throttling {
38741 	unsigned int state;
38742 	unsigned int platform_limit;
38743 	struct acpi_pct_register control_register;
38744 	struct acpi_pct_register status_register;
38745 	short: 16;
38746 	unsigned int state_count;
38747 	int: 32;
38748 	struct acpi_processor_tx_tss *states_tss;
38749 	struct acpi_tsd_package domain_info;
38750 	cpumask_var_t shared_cpu_map;
38751 	int (*acpi_processor_get_throttling)(struct acpi_processor *);
38752 	int (*acpi_processor_set_throttling)(struct acpi_processor *, int, bool);
38753 	u32 address;
38754 	u8 duty_offset;
38755 	u8 duty_width;
38756 	u8 tsd_valid_flag;
38757 	char: 8;
38758 	unsigned int shared_type;
38759 	struct acpi_processor_tx states[16];
38760 	int: 32;
38761 } __attribute__((packed));
38762 
38763 struct acpi_processor_flags {
38764 	u8 power: 1;
38765 	u8 performance: 1;
38766 	u8 throttling: 1;
38767 	u8 limit: 1;
38768 	u8 bm_control: 1;
38769 	u8 bm_check: 1;
38770 	u8 has_cst: 1;
38771 	u8 has_lpi: 1;
38772 	u8 power_setup_done: 1;
38773 	u8 bm_rld_set: 1;
38774 	u8 need_hotplug_init: 1;
38775 };
38776 
38777 struct acpi_processor_lx {
38778 	int px;
38779 	int tx;
38780 };
38781 
38782 struct acpi_processor_limit {
38783 	struct acpi_processor_lx state;
38784 	struct acpi_processor_lx thermal;
38785 	struct acpi_processor_lx user;
38786 };
38787 
38788 struct acpi_processor {
38789 	acpi_handle handle;
38790 	u32 acpi_id;
38791 	phys_cpuid_t phys_id;
38792 	u32 id;
38793 	u32 pblk;
38794 	int performance_platform_limit;
38795 	int throttling_platform_limit;
38796 	struct acpi_processor_flags flags;
38797 	struct acpi_processor_power power;
38798 	struct acpi_processor_performance *performance;
38799 	struct acpi_processor_throttling throttling;
38800 	struct acpi_processor_limit limit;
38801 	struct thermal_cooling_device *cdev;
38802 	struct device *dev;
38803 	struct freq_qos_request perflib_req;
38804 	struct freq_qos_request thermal_req;
38805 };
38806 
38807 struct acpi_lpi_states_array {
38808 	unsigned int size;
38809 	unsigned int composite_states_size;
38810 	struct acpi_lpi_state *entries;
38811 	struct acpi_lpi_state *composite_states[8];
38812 };
38813 
38814 enum acpi_cedt_type {
38815 	ACPI_CEDT_TYPE_CHBS = 0,
38816 	ACPI_CEDT_TYPE_CFMWS = 1,
38817 	ACPI_CEDT_TYPE_CXIMS = 2,
38818 	ACPI_CEDT_TYPE_RDPAS = 3,
38819 	ACPI_CEDT_TYPE_RESERVED = 4,
38820 };
38821 
38822 struct acpi_cedt_cfmws {
38823 	struct acpi_cedt_header header;
38824 	u32 reserved1;
38825 	u64 base_hpa;
38826 	u64 window_size;
38827 	u8 interleave_ways;
38828 	u8 interleave_arithmetic;
38829 	u16 reserved2;
38830 	u32 granularity;
38831 	u16 restrictions;
38832 	u16 qtg_id;
38833 	u32 interleave_targets[0];
38834 } __attribute__((packed));
38835 
38836 struct acpi_table_slit {
38837 	struct acpi_table_header header;
38838 	u64 locality_count;
38839 	u8 entry[1];
38840 } __attribute__((packed));
38841 
38842 struct acpi_table_srat {
38843 	struct acpi_table_header header;
38844 	u32 table_revision;
38845 	u64 reserved;
38846 };
38847 
38848 enum acpi_srat_type {
38849 	ACPI_SRAT_TYPE_CPU_AFFINITY = 0,
38850 	ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1,
38851 	ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2,
38852 	ACPI_SRAT_TYPE_GICC_AFFINITY = 3,
38853 	ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4,
38854 	ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5,
38855 	ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY = 6,
38856 	ACPI_SRAT_TYPE_RESERVED = 7,
38857 };
38858 
38859 struct acpi_srat_cpu_affinity {
38860 	struct acpi_subtable_header header;
38861 	u8 proximity_domain_lo;
38862 	u8 apic_id;
38863 	u32 flags;
38864 	u8 local_sapic_eid;
38865 	u8 proximity_domain_hi[3];
38866 	u32 clock_domain;
38867 };
38868 
38869 struct acpi_srat_mem_affinity {
38870 	struct acpi_subtable_header header;
38871 	u32 proximity_domain;
38872 	u16 reserved;
38873 	u64 base_address;
38874 	u64 length;
38875 	u32 reserved1;
38876 	u32 flags;
38877 	u64 reserved2;
38878 } __attribute__((packed));
38879 
38880 struct acpi_srat_x2apic_cpu_affinity {
38881 	struct acpi_subtable_header header;
38882 	u16 reserved;
38883 	u32 proximity_domain;
38884 	u32 apic_id;
38885 	u32 flags;
38886 	u32 clock_domain;
38887 	u32 reserved2;
38888 };
38889 
38890 struct acpi_srat_gicc_affinity {
38891 	struct acpi_subtable_header header;
38892 	u32 proximity_domain;
38893 	u32 acpi_processor_uid;
38894 	u32 flags;
38895 	u32 clock_domain;
38896 } __attribute__((packed));
38897 
38898 struct acpi_srat_generic_affinity {
38899 	struct acpi_subtable_header header;
38900 	u8 reserved;
38901 	u8 device_handle_type;
38902 	u32 proximity_domain;
38903 	u8 device_handle[16];
38904 	u32 flags;
38905 	u32 reserved1;
38906 };
38907 
38908 typedef int (*acpi_tbl_entry_handler_arg)(union acpi_subtable_headers *, void *, const long unsigned int);
38909 
38910 struct acpi_subtable_proc {
38911 	int id;
38912 	acpi_tbl_entry_handler handler;
38913 	acpi_tbl_entry_handler_arg handler_arg;
38914 	void *arg;
38915 	int count;
38916 };
38917 
38918 struct acpi_table_spcr {
38919 	struct acpi_table_header header;
38920 	u8 interface_type;
38921 	u8 reserved[3];
38922 	struct acpi_generic_address serial_port;
38923 	u8 interrupt_type;
38924 	u8 pc_interrupt;
38925 	u32 interrupt;
38926 	u8 baud_rate;
38927 	u8 parity;
38928 	u8 stop_bits;
38929 	u8 flow_control;
38930 	u8 terminal_type;
38931 	u8 reserved1;
38932 	u16 pci_device_id;
38933 	u16 pci_vendor_id;
38934 	u8 pci_bus;
38935 	u8 pci_device;
38936 	u8 pci_function;
38937 	u32 pci_flags;
38938 	u8 pci_segment;
38939 	u32 reserved2;
38940 } __attribute__((packed));
38941 
38942 struct serial_icounter_struct {
38943 	int cts;
38944 	int dsr;
38945 	int rng;
38946 	int dcd;
38947 	int rx;
38948 	int tx;
38949 	int frame;
38950 	int overrun;
38951 	int parity;
38952 	int brk;
38953 	int buf_overrun;
38954 	int reserved[9];
38955 };
38956 
38957 struct serial_struct {
38958 	int type;
38959 	int line;
38960 	unsigned int port;
38961 	int irq;
38962 	int flags;
38963 	int xmit_fifo_size;
38964 	int custom_divisor;
38965 	int baud_base;
38966 	short unsigned int close_delay;
38967 	char io_type;
38968 	char reserved_char[1];
38969 	int hub6;
38970 	short unsigned int closing_wait;
38971 	short unsigned int closing_wait2;
38972 	unsigned char *iomem_base;
38973 	short unsigned int iomem_reg_shift;
38974 	unsigned int port_high;
38975 	long unsigned int iomap_base;
38976 };
38977 
38978 struct pnp_port {
38979 	resource_size_t min;
38980 	resource_size_t max;
38981 	resource_size_t align;
38982 	resource_size_t size;
38983 	unsigned char flags;
38984 };
38985 
38986 typedef struct {
38987 	long unsigned int bits[4];
38988 } pnp_irq_mask_t;
38989 
38990 struct pnp_irq {
38991 	pnp_irq_mask_t map;
38992 	unsigned char flags;
38993 };
38994 
38995 struct pnp_dma {
38996 	unsigned char map;
38997 	unsigned char flags;
38998 };
38999 
39000 struct pnp_mem {
39001 	resource_size_t min;
39002 	resource_size_t max;
39003 	resource_size_t align;
39004 	resource_size_t size;
39005 	unsigned char flags;
39006 };
39007 
39008 struct pnp_option {
39009 	struct list_head list;
39010 	unsigned int flags;
39011 	long unsigned int type;
39012 	union {
39013 		struct pnp_port port;
39014 		struct pnp_irq irq;
39015 		struct pnp_dma dma;
39016 		struct pnp_mem mem;
39017 	} u;
39018 };
39019 
39020 struct pnp_resource {
39021 	struct list_head list;
39022 	struct resource res;
39023 };
39024 
39025 struct acpi_hardware_id {
39026 	struct list_head list;
39027 	const char *id;
39028 };
39029 
39030 struct clk;
39031 
39032 struct clk_hw;
39033 
39034 struct clk_lookup {
39035 	struct list_head node;
39036 	const char *dev_id;
39037 	const char *con_id;
39038 	struct clk *clk;
39039 	struct clk_hw *clk_hw;
39040 };
39041 
39042 struct clk_core;
39043 
39044 struct clk_init_data;
39045 
39046 struct clk_hw {
39047 	struct clk_core *core;
39048 	struct clk *clk;
39049 	const struct clk_init_data *init;
39050 };
39051 
39052 struct clk_rate_request {
39053 	struct clk_core *core;
39054 	long unsigned int rate;
39055 	long unsigned int min_rate;
39056 	long unsigned int max_rate;
39057 	long unsigned int best_parent_rate;
39058 	struct clk_hw *best_parent_hw;
39059 };
39060 
39061 struct clk_duty {
39062 	unsigned int num;
39063 	unsigned int den;
39064 };
39065 
39066 struct clk_ops {
39067 	int (*prepare)(struct clk_hw *);
39068 	void (*unprepare)(struct clk_hw *);
39069 	int (*is_prepared)(struct clk_hw *);
39070 	void (*unprepare_unused)(struct clk_hw *);
39071 	int (*enable)(struct clk_hw *);
39072 	void (*disable)(struct clk_hw *);
39073 	int (*is_enabled)(struct clk_hw *);
39074 	void (*disable_unused)(struct clk_hw *);
39075 	int (*save_context)(struct clk_hw *);
39076 	void (*restore_context)(struct clk_hw *);
39077 	long unsigned int (*recalc_rate)(struct clk_hw *, long unsigned int);
39078 	long int (*round_rate)(struct clk_hw *, long unsigned int, long unsigned int *);
39079 	int (*determine_rate)(struct clk_hw *, struct clk_rate_request *);
39080 	int (*set_parent)(struct clk_hw *, u8);
39081 	u8 (*get_parent)(struct clk_hw *);
39082 	int (*set_rate)(struct clk_hw *, long unsigned int, long unsigned int);
39083 	int (*set_rate_and_parent)(struct clk_hw *, long unsigned int, long unsigned int, u8);
39084 	long unsigned int (*recalc_accuracy)(struct clk_hw *, long unsigned int);
39085 	int (*get_phase)(struct clk_hw *);
39086 	int (*set_phase)(struct clk_hw *, int);
39087 	int (*get_duty_cycle)(struct clk_hw *, struct clk_duty *);
39088 	int (*set_duty_cycle)(struct clk_hw *, struct clk_duty *);
39089 	int (*init)(struct clk_hw *);
39090 	void (*terminate)(struct clk_hw *);
39091 	void (*debug_init)(struct clk_hw *, struct dentry *);
39092 };
39093 
39094 struct clk_parent_data {
39095 	const struct clk_hw *hw;
39096 	const char *fw_name;
39097 	const char *name;
39098 	int index;
39099 };
39100 
39101 struct clk_init_data {
39102 	const char *name;
39103 	const struct clk_ops *ops;
39104 	const char * const *parent_names;
39105 	const struct clk_parent_data *parent_data;
39106 	const struct clk_hw **parent_hws;
39107 	u8 num_parents;
39108 	long unsigned int flags;
39109 };
39110 
39111 struct clk_lookup_alloc {
39112 	struct clk_lookup cl;
39113 	char dev_id[20];
39114 	char con_id[16];
39115 };
39116 
39117 typedef void (*of_init_fn_1)(struct device_node *);
39118 
39119 struct clk_fixed_rate {
39120 	struct clk_hw hw;
39121 	long unsigned int fixed_rate;
39122 	long unsigned int fixed_accuracy;
39123 	long unsigned int flags;
39124 };
39125 
39126 struct clk_mux {
39127 	struct clk_hw hw;
39128 	void *reg;
39129 	const u32 *table;
39130 	u32 mask;
39131 	u8 shift;
39132 	u8 flags;
39133 	spinlock_t *lock;
39134 };
39135 
39136 struct clk {
39137 	struct clk_core *core;
39138 	struct device *dev;
39139 	const char *dev_id;
39140 	const char *con_id;
39141 	long unsigned int min_rate;
39142 	long unsigned int max_rate;
39143 	unsigned int exclusive_count;
39144 	struct hlist_node clks_node;
39145 };
39146 
39147 struct virtio_device_id {
39148 	__u32 device;
39149 	__u32 vendor;
39150 };
39151 
39152 struct vringh_config_ops;
39153 
39154 struct virtio_config_ops;
39155 
39156 struct virtio_device {
39157 	int index;
39158 	bool failed;
39159 	bool config_enabled;
39160 	bool config_change_pending;
39161 	spinlock_t config_lock;
39162 	spinlock_t vqs_list_lock;
39163 	struct device dev;
39164 	struct virtio_device_id id;
39165 	const struct virtio_config_ops *config;
39166 	const struct vringh_config_ops *vringh_config;
39167 	struct list_head vqs;
39168 	u64 features;
39169 	void *priv;
39170 };
39171 
39172 struct virtqueue;
39173 
39174 typedef void vq_callback_t(struct virtqueue *);
39175 
39176 struct irq_affinity;
39177 
39178 struct virtio_shm_region;
39179 
39180 struct virtio_config_ops {
39181 	void (*get)(struct virtio_device *, unsigned int, void *, unsigned int);
39182 	void (*set)(struct virtio_device *, unsigned int, const void *, unsigned int);
39183 	u32 (*generation)(struct virtio_device *);
39184 	u8 (*get_status)(struct virtio_device *);
39185 	void (*set_status)(struct virtio_device *, u8);
39186 	void (*reset)(struct virtio_device *);
39187 	int (*find_vqs)(struct virtio_device *, unsigned int, struct virtqueue **, vq_callback_t **, const char * const *, const bool *, struct irq_affinity *);
39188 	void (*del_vqs)(struct virtio_device *);
39189 	void (*synchronize_cbs)(struct virtio_device *);
39190 	u64 (*get_features)(struct virtio_device *);
39191 	int (*finalize_features)(struct virtio_device *);
39192 	const char * (*bus_name)(struct virtio_device *);
39193 	int (*set_vq_affinity)(struct virtqueue *, const struct cpumask *);
39194 	const struct cpumask * (*get_vq_affinity)(struct virtio_device *, int);
39195 	bool (*get_shm_region)(struct virtio_device *, struct virtio_shm_region *, u8);
39196 	int (*disable_vq_and_reset)(struct virtqueue *);
39197 	int (*enable_vq_after_reset)(struct virtqueue *);
39198 };
39199 
39200 struct linear_range {
39201 	unsigned int min;
39202 	unsigned int min_sel;
39203 	unsigned int max_sel;
39204 	unsigned int step;
39205 };
39206 
39207 typedef int suspend_state_t;
39208 
39209 struct regulator_dev;
39210 
39211 struct regulator_ops {
39212 	int (*list_voltage)(struct regulator_dev *, unsigned int);
39213 	int (*set_voltage)(struct regulator_dev *, int, int, unsigned int *);
39214 	int (*map_voltage)(struct regulator_dev *, int, int);
39215 	int (*set_voltage_sel)(struct regulator_dev *, unsigned int);
39216 	int (*get_voltage)(struct regulator_dev *);
39217 	int (*get_voltage_sel)(struct regulator_dev *);
39218 	int (*set_current_limit)(struct regulator_dev *, int, int);
39219 	int (*get_current_limit)(struct regulator_dev *);
39220 	int (*set_input_current_limit)(struct regulator_dev *, int);
39221 	int (*set_over_current_protection)(struct regulator_dev *, int, int, bool);
39222 	int (*set_over_voltage_protection)(struct regulator_dev *, int, int, bool);
39223 	int (*set_under_voltage_protection)(struct regulator_dev *, int, int, bool);
39224 	int (*set_thermal_protection)(struct regulator_dev *, int, int, bool);
39225 	int (*set_active_discharge)(struct regulator_dev *, bool);
39226 	int (*enable)(struct regulator_dev *);
39227 	int (*disable)(struct regulator_dev *);
39228 	int (*is_enabled)(struct regulator_dev *);
39229 	int (*set_mode)(struct regulator_dev *, unsigned int);
39230 	unsigned int (*get_mode)(struct regulator_dev *);
39231 	int (*get_error_flags)(struct regulator_dev *, unsigned int *);
39232 	int (*enable_time)(struct regulator_dev *);
39233 	int (*set_ramp_delay)(struct regulator_dev *, int);
39234 	int (*set_voltage_time)(struct regulator_dev *, int, int);
39235 	int (*set_voltage_time_sel)(struct regulator_dev *, unsigned int, unsigned int);
39236 	int (*set_soft_start)(struct regulator_dev *);
39237 	int (*get_status)(struct regulator_dev *);
39238 	unsigned int (*get_optimum_mode)(struct regulator_dev *, int, int, int);
39239 	int (*set_load)(struct regulator_dev *, int);
39240 	int (*set_bypass)(struct regulator_dev *, bool);
39241 	int (*get_bypass)(struct regulator_dev *, bool *);
39242 	int (*set_suspend_voltage)(struct regulator_dev *, int);
39243 	int (*set_suspend_enable)(struct regulator_dev *);
39244 	int (*set_suspend_disable)(struct regulator_dev *);
39245 	int (*set_suspend_mode)(struct regulator_dev *, unsigned int);
39246 	int (*resume)(struct regulator_dev *);
39247 	int (*set_pull_down)(struct regulator_dev *);
39248 };
39249 
39250 struct regulator_coupler;
39251 
39252 struct coupling_desc {
39253 	struct regulator_dev **coupled_rdevs;
39254 	struct regulator_coupler *coupler;
39255 	int n_resolved;
39256 	int n_coupled;
39257 };
39258 
39259 struct regmap;
39260 
39261 struct regulator_desc;
39262 
39263 struct regulation_constraints;
39264 
39265 struct regulator;
39266 
39267 struct regulator_enable_gpio;
39268 
39269 struct regulator_dev {
39270 	const struct regulator_desc *desc;
39271 	int exclusive;
39272 	u32 use_count;
39273 	u32 open_count;
39274 	u32 bypass_count;
39275 	struct list_head list;
39276 	struct list_head consumer_list;
39277 	struct coupling_desc coupling_desc;
39278 	struct blocking_notifier_head notifier;
39279 	struct ww_mutex mutex;
39280 	struct task_struct *mutex_owner;
39281 	int ref_cnt;
39282 	struct module *owner;
39283 	struct device dev;
39284 	struct regulation_constraints *constraints;
39285 	struct regulator *supply;
39286 	const char *supply_name;
39287 	struct regmap *regmap;
39288 	struct delayed_work disable_work;
39289 	void *reg_data;
39290 	struct dentry *debugfs;
39291 	struct regulator_enable_gpio *ena_pin;
39292 	unsigned int ena_gpio_state: 1;
39293 	unsigned int is_switch: 1;
39294 	ktime_t last_off;
39295 	int cached_err;
39296 	bool use_cached_err;
39297 	spinlock_t err_lock;
39298 };
39299 
39300 enum regulator_type {
39301 	REGULATOR_VOLTAGE = 0,
39302 	REGULATOR_CURRENT = 1,
39303 };
39304 
39305 struct regulator_config;
39306 
39307 struct regulator_desc {
39308 	const char *name;
39309 	const char *supply_name;
39310 	const char *of_match;
39311 	bool of_match_full_name;
39312 	const char *regulators_node;
39313 	int (*of_parse_cb)(struct device_node *, const struct regulator_desc *, struct regulator_config *);
39314 	int id;
39315 	unsigned int continuous_voltage_range: 1;
39316 	unsigned int n_voltages;
39317 	unsigned int n_current_limits;
39318 	const struct regulator_ops *ops;
39319 	int irq;
39320 	enum regulator_type type;
39321 	struct module *owner;
39322 	unsigned int min_uV;
39323 	unsigned int uV_step;
39324 	unsigned int linear_min_sel;
39325 	int fixed_uV;
39326 	unsigned int ramp_delay;
39327 	int min_dropout_uV;
39328 	const struct linear_range *linear_ranges;
39329 	const unsigned int *linear_range_selectors;
39330 	int n_linear_ranges;
39331 	const unsigned int *volt_table;
39332 	const unsigned int *curr_table;
39333 	unsigned int vsel_range_reg;
39334 	unsigned int vsel_range_mask;
39335 	unsigned int vsel_reg;
39336 	unsigned int vsel_mask;
39337 	unsigned int vsel_step;
39338 	unsigned int csel_reg;
39339 	unsigned int csel_mask;
39340 	unsigned int apply_reg;
39341 	unsigned int apply_bit;
39342 	unsigned int enable_reg;
39343 	unsigned int enable_mask;
39344 	unsigned int enable_val;
39345 	unsigned int disable_val;
39346 	bool enable_is_inverted;
39347 	unsigned int bypass_reg;
39348 	unsigned int bypass_mask;
39349 	unsigned int bypass_val_on;
39350 	unsigned int bypass_val_off;
39351 	unsigned int active_discharge_on;
39352 	unsigned int active_discharge_off;
39353 	unsigned int active_discharge_mask;
39354 	unsigned int active_discharge_reg;
39355 	unsigned int soft_start_reg;
39356 	unsigned int soft_start_mask;
39357 	unsigned int soft_start_val_on;
39358 	unsigned int pull_down_reg;
39359 	unsigned int pull_down_mask;
39360 	unsigned int pull_down_val_on;
39361 	unsigned int ramp_reg;
39362 	unsigned int ramp_mask;
39363 	const unsigned int *ramp_delay_table;
39364 	unsigned int n_ramp_values;
39365 	unsigned int enable_time;
39366 	unsigned int off_on_delay;
39367 	unsigned int poll_enabled_time;
39368 	unsigned int (*of_map_mode)(unsigned int);
39369 };
39370 
39371 struct gpio_desc;
39372 
39373 struct regulator_init_data;
39374 
39375 struct regulator_config {
39376 	struct device *dev;
39377 	const struct regulator_init_data *init_data;
39378 	void *driver_data;
39379 	struct device_node *of_node;
39380 	struct regmap *regmap;
39381 	struct gpio_desc *ena_gpiod;
39382 };
39383 
39384 struct regulator_state {
39385 	int uV;
39386 	int min_uV;
39387 	int max_uV;
39388 	unsigned int mode;
39389 	int enabled;
39390 	bool changeable;
39391 };
39392 
39393 struct notification_limit {
39394 	int prot;
39395 	int err;
39396 	int warn;
39397 };
39398 
39399 struct regulation_constraints {
39400 	const char *name;
39401 	int min_uV;
39402 	int max_uV;
39403 	int uV_offset;
39404 	int min_uA;
39405 	int max_uA;
39406 	int ilim_uA;
39407 	int system_load;
39408 	u32 *max_spread;
39409 	int max_uV_step;
39410 	unsigned int valid_modes_mask;
39411 	unsigned int valid_ops_mask;
39412 	int input_uV;
39413 	struct regulator_state state_disk;
39414 	struct regulator_state state_mem;
39415 	struct regulator_state state_standby;
39416 	struct notification_limit over_curr_limits;
39417 	struct notification_limit over_voltage_limits;
39418 	struct notification_limit under_voltage_limits;
39419 	struct notification_limit temp_limits;
39420 	suspend_state_t initial_state;
39421 	unsigned int initial_mode;
39422 	unsigned int ramp_delay;
39423 	unsigned int settling_time;
39424 	unsigned int settling_time_up;
39425 	unsigned int settling_time_down;
39426 	unsigned int enable_time;
39427 	unsigned int active_discharge;
39428 	unsigned int always_on: 1;
39429 	unsigned int boot_on: 1;
39430 	unsigned int apply_uV: 1;
39431 	unsigned int ramp_disable: 1;
39432 	unsigned int soft_start: 1;
39433 	unsigned int pull_down: 1;
39434 	unsigned int over_current_protection: 1;
39435 	unsigned int over_current_detection: 1;
39436 	unsigned int over_voltage_detection: 1;
39437 	unsigned int under_voltage_detection: 1;
39438 	unsigned int over_temp_detection: 1;
39439 };
39440 
39441 struct regulator_consumer_supply;
39442 
39443 struct regulator_init_data {
39444 	const char *supply_regulator;
39445 	struct regulation_constraints constraints;
39446 	int num_consumer_supplies;
39447 	struct regulator_consumer_supply *consumer_supplies;
39448 	int (*regulator_init)(void *);
39449 	void *driver_data;
39450 };
39451 
39452 struct regulator_consumer_supply {
39453 	const char *dev_name;
39454 	const char *supply;
39455 };
39456 
39457 struct regulator_voltage {
39458 	int min_uV;
39459 	int max_uV;
39460 };
39461 
39462 struct regulator {
39463 	struct device *dev;
39464 	struct list_head list;
39465 	unsigned int always_on: 1;
39466 	unsigned int bypass: 1;
39467 	unsigned int device_link: 1;
39468 	int uA_load;
39469 	unsigned int enable_count;
39470 	unsigned int deferred_disables;
39471 	struct regulator_voltage voltage[5];
39472 	const char *supply_name;
39473 	struct device_attribute dev_attr;
39474 	struct regulator_dev *rdev;
39475 	struct dentry *debugfs;
39476 };
39477 
39478 struct regulator_err_state {
39479 	struct regulator_dev *rdev;
39480 	long unsigned int notifs;
39481 	long unsigned int errors;
39482 	int possible_errs;
39483 };
39484 
39485 struct regulator_irq_data {
39486 	struct regulator_err_state *states;
39487 	int num_states;
39488 	void *data;
39489 	long int opaque;
39490 };
39491 
39492 struct regulator_irq_desc {
39493 	const char *name;
39494 	int fatal_cnt;
39495 	int reread_ms;
39496 	int irq_off_ms;
39497 	bool skip_off;
39498 	bool high_prio;
39499 	void *data;
39500 	int (*die)(struct regulator_irq_data *);
39501 	int (*map_event)(int, struct regulator_irq_data *, long unsigned int *);
39502 	int (*renable)(struct regulator_irq_data *);
39503 };
39504 
39505 enum {
39506 	REGULATOR_ERROR_CLEARED = 0,
39507 	REGULATOR_FAILED_RETRY = 1,
39508 	REGULATOR_ERROR_ON = 2,
39509 };
39510 
39511 struct regulator_irq {
39512 	struct regulator_irq_data rdata;
39513 	struct regulator_irq_desc desc;
39514 	int irq;
39515 	int retry_cnt;
39516 	struct delayed_work isr_work;
39517 };
39518 
39519 struct n_tty_data {
39520 	size_t read_head;
39521 	size_t commit_head;
39522 	size_t canon_head;
39523 	size_t echo_head;
39524 	size_t echo_commit;
39525 	size_t echo_mark;
39526 	long unsigned int char_map[4];
39527 	long unsigned int overrun_time;
39528 	int num_overrun;
39529 	bool no_room;
39530 	unsigned char lnext: 1;
39531 	unsigned char erasing: 1;
39532 	unsigned char raw: 1;
39533 	unsigned char real_raw: 1;
39534 	unsigned char icanon: 1;
39535 	unsigned char push: 1;
39536 	char read_buf[4096];
39537 	long unsigned int read_flags[64];
39538 	unsigned char echo_buf[4096];
39539 	size_t read_tail;
39540 	size_t line_start;
39541 	size_t lookahead_count;
39542 	unsigned int column;
39543 	unsigned int canon_column;
39544 	size_t echo_tail;
39545 	struct mutex atomic_read_lock;
39546 	struct mutex output_lock;
39547 };
39548 
39549 enum {
39550 	ERASE = 0,
39551 	WERASE = 1,
39552 	KILL = 2,
39553 };
39554 
39555 struct unipair {
39556 	short unsigned int unicode;
39557 	short unsigned int fontpos;
39558 };
39559 
39560 struct unimapdesc {
39561 	short unsigned int entry_ct;
39562 	struct unipair *entries;
39563 };
39564 
39565 struct kbentry {
39566 	unsigned char kb_table;
39567 	unsigned char kb_index;
39568 	short unsigned int kb_value;
39569 };
39570 
39571 struct kbsentry {
39572 	unsigned char kb_func;
39573 	unsigned char kb_string[512];
39574 };
39575 
39576 struct kbkeycode {
39577 	unsigned int scancode;
39578 	unsigned int keycode;
39579 };
39580 
39581 struct kbd_repeat {
39582 	int delay;
39583 	int period;
39584 };
39585 
39586 struct console_font_op {
39587 	unsigned int op;
39588 	unsigned int flags;
39589 	unsigned int width;
39590 	unsigned int height;
39591 	unsigned int charcount;
39592 	unsigned char *data;
39593 };
39594 
39595 struct vt_stat {
39596 	short unsigned int v_active;
39597 	short unsigned int v_signal;
39598 	short unsigned int v_state;
39599 };
39600 
39601 struct vt_sizes {
39602 	short unsigned int v_rows;
39603 	short unsigned int v_cols;
39604 	short unsigned int v_scrollsize;
39605 };
39606 
39607 struct vt_consize {
39608 	short unsigned int v_rows;
39609 	short unsigned int v_cols;
39610 	short unsigned int v_vlin;
39611 	short unsigned int v_clin;
39612 	short unsigned int v_vcol;
39613 	short unsigned int v_ccol;
39614 };
39615 
39616 struct vt_event {
39617 	unsigned int event;
39618 	unsigned int oldev;
39619 	unsigned int newev;
39620 	unsigned int pad[4];
39621 };
39622 
39623 struct vt_setactivate {
39624 	unsigned int console;
39625 	struct vt_mode mode;
39626 };
39627 
39628 struct vt_spawn_console {
39629 	spinlock_t lock;
39630 	struct pid *pid;
39631 	int sig;
39632 };
39633 
39634 struct vt_event_wait {
39635 	struct list_head list;
39636 	struct vt_event event;
39637 	int done;
39638 };
39639 
39640 enum translation_map {
39641 	LAT1_MAP = 0,
39642 	GRAF_MAP = 1,
39643 	IBMPC_MAP = 2,
39644 	USER_MAP = 3,
39645 	FIRST_MAP = 0,
39646 	LAST_MAP = 3,
39647 };
39648 
39649 struct uni_pagedict {
39650 	u16 **uni_pgdir[32];
39651 	long unsigned int refcount;
39652 	long unsigned int sum;
39653 	unsigned char *inverse_translations[4];
39654 	u16 *inverse_trans_unicode;
39655 };
39656 
39657 struct serial_rs485 {
39658 	__u32 flags;
39659 	__u32 delay_rts_before_send;
39660 	__u32 delay_rts_after_send;
39661 	union {
39662 		__u32 padding[5];
39663 		struct {
39664 			__u8 addr_recv;
39665 			__u8 addr_dest;
39666 			__u8 padding0[2];
39667 			__u32 padding1[4];
39668 		};
39669 	};
39670 };
39671 
39672 struct serial_iso7816 {
39673 	__u32 flags;
39674 	__u32 tg;
39675 	__u32 sc_fi;
39676 	__u32 sc_di;
39677 	__u32 clk;
39678 	__u32 reserved[5];
39679 };
39680 
39681 struct circ_buf {
39682 	char *buf;
39683 	int head;
39684 	int tail;
39685 };
39686 
39687 struct uart_port;
39688 
39689 struct uart_ops {
39690 	unsigned int (*tx_empty)(struct uart_port *);
39691 	void (*set_mctrl)(struct uart_port *, unsigned int);
39692 	unsigned int (*get_mctrl)(struct uart_port *);
39693 	void (*stop_tx)(struct uart_port *);
39694 	void (*start_tx)(struct uart_port *);
39695 	void (*throttle)(struct uart_port *);
39696 	void (*unthrottle)(struct uart_port *);
39697 	void (*send_xchar)(struct uart_port *, char);
39698 	void (*stop_rx)(struct uart_port *);
39699 	void (*start_rx)(struct uart_port *);
39700 	void (*enable_ms)(struct uart_port *);
39701 	void (*break_ctl)(struct uart_port *, int);
39702 	int (*startup)(struct uart_port *);
39703 	void (*shutdown)(struct uart_port *);
39704 	void (*flush_buffer)(struct uart_port *);
39705 	void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *);
39706 	void (*set_ldisc)(struct uart_port *, struct ktermios *);
39707 	void (*pm)(struct uart_port *, unsigned int, unsigned int);
39708 	const char * (*type)(struct uart_port *);
39709 	void (*release_port)(struct uart_port *);
39710 	int (*request_port)(struct uart_port *);
39711 	void (*config_port)(struct uart_port *, int);
39712 	int (*verify_port)(struct uart_port *, struct serial_struct *);
39713 	int (*ioctl)(struct uart_port *, unsigned int, long unsigned int);
39714 };
39715 
39716 struct uart_icount {
39717 	__u32 cts;
39718 	__u32 dsr;
39719 	__u32 rng;
39720 	__u32 dcd;
39721 	__u32 rx;
39722 	__u32 tx;
39723 	__u32 frame;
39724 	__u32 overrun;
39725 	__u32 parity;
39726 	__u32 brk;
39727 	__u32 buf_overrun;
39728 };
39729 
39730 typedef u64 upf_t;
39731 
39732 typedef unsigned int upstat_t;
39733 
39734 struct uart_state;
39735 
39736 struct uart_port {
39737 	spinlock_t lock;
39738 	long unsigned int iobase;
39739 	unsigned char *membase;
39740 	unsigned int (*serial_in)(struct uart_port *, int);
39741 	void (*serial_out)(struct uart_port *, int, int);
39742 	void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *);
39743 	void (*set_ldisc)(struct uart_port *, struct ktermios *);
39744 	unsigned int (*get_mctrl)(struct uart_port *);
39745 	void (*set_mctrl)(struct uart_port *, unsigned int);
39746 	unsigned int (*get_divisor)(struct uart_port *, unsigned int, unsigned int *);
39747 	void (*set_divisor)(struct uart_port *, unsigned int, unsigned int, unsigned int);
39748 	int (*startup)(struct uart_port *);
39749 	void (*shutdown)(struct uart_port *);
39750 	void (*throttle)(struct uart_port *);
39751 	void (*unthrottle)(struct uart_port *);
39752 	int (*handle_irq)(struct uart_port *);
39753 	void (*pm)(struct uart_port *, unsigned int, unsigned int);
39754 	void (*handle_break)(struct uart_port *);
39755 	int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *);
39756 	int (*iso7816_config)(struct uart_port *, struct serial_iso7816 *);
39757 	unsigned int irq;
39758 	long unsigned int irqflags;
39759 	unsigned int uartclk;
39760 	unsigned int fifosize;
39761 	unsigned char x_char;
39762 	unsigned char regshift;
39763 	unsigned char iotype;
39764 	unsigned char quirks;
39765 	unsigned int read_status_mask;
39766 	unsigned int ignore_status_mask;
39767 	struct uart_state *state;
39768 	struct uart_icount icount;
39769 	struct console *cons;
39770 	upf_t flags;
39771 	upstat_t status;
39772 	int hw_stopped;
39773 	unsigned int mctrl;
39774 	unsigned int frame_time;
39775 	unsigned int type;
39776 	const struct uart_ops *ops;
39777 	unsigned int custom_divisor;
39778 	unsigned int line;
39779 	unsigned int minor;
39780 	resource_size_t mapbase;
39781 	resource_size_t mapsize;
39782 	struct device *dev;
39783 	long unsigned int sysrq;
39784 	unsigned int sysrq_ch;
39785 	unsigned char has_sysrq;
39786 	unsigned char sysrq_seq;
39787 	unsigned char hub6;
39788 	unsigned char suspended;
39789 	unsigned char console_reinit;
39790 	const char *name;
39791 	struct attribute_group *attr_group;
39792 	const struct attribute_group **tty_groups;
39793 	struct serial_rs485 rs485;
39794 	struct serial_rs485 rs485_supported;
39795 	struct gpio_desc *rs485_term_gpio;
39796 	struct serial_iso7816 iso7816;
39797 	void *private_data;
39798 };
39799 
39800 enum uart_pm_state {
39801 	UART_PM_STATE_ON = 0,
39802 	UART_PM_STATE_OFF = 3,
39803 	UART_PM_STATE_UNDEFINED = 4,
39804 };
39805 
39806 struct uart_state {
39807 	struct tty_port port;
39808 	enum uart_pm_state pm_state;
39809 	struct circ_buf xmit;
39810 	atomic_t refcount;
39811 	wait_queue_head_t remove_wait;
39812 	struct uart_port *uart_port;
39813 };
39814 
39815 struct uart_driver {
39816 	struct module *owner;
39817 	const char *driver_name;
39818 	const char *dev_name;
39819 	int major;
39820 	int minor;
39821 	int nr;
39822 	struct console *cons;
39823 	struct uart_state *state;
39824 	struct tty_driver *tty_driver;
39825 };
39826 
39827 struct uart_match {
39828 	struct uart_port *port;
39829 	struct uart_driver *driver;
39830 };
39831 
39832 struct uart_8250_port;
39833 
39834 struct uart_8250_ops {
39835 	int (*setup_irq)(struct uart_8250_port *);
39836 	void (*release_irq)(struct uart_8250_port *);
39837 	void (*setup_timer)(struct uart_8250_port *);
39838 };
39839 
39840 struct mctrl_gpios;
39841 
39842 struct uart_8250_dma;
39843 
39844 struct uart_8250_em485;
39845 
39846 struct uart_8250_port {
39847 	struct uart_port port;
39848 	struct timer_list timer;
39849 	struct list_head list;
39850 	u32 capabilities;
39851 	short unsigned int bugs;
39852 	bool fifo_bug;
39853 	unsigned int tx_loadsz;
39854 	unsigned char acr;
39855 	unsigned char fcr;
39856 	unsigned char ier;
39857 	unsigned char lcr;
39858 	unsigned char mcr;
39859 	unsigned char cur_iotype;
39860 	unsigned int rpm_tx_active;
39861 	unsigned char canary;
39862 	unsigned char probe;
39863 	struct mctrl_gpios *gpios;
39864 	u16 lsr_saved_flags;
39865 	u16 lsr_save_mask;
39866 	unsigned char msr_saved_flags;
39867 	struct uart_8250_dma *dma;
39868 	const struct uart_8250_ops *ops;
39869 	int (*dl_read)(struct uart_8250_port *);
39870 	void (*dl_write)(struct uart_8250_port *, int);
39871 	struct uart_8250_em485 *em485;
39872 	void (*rs485_start_tx)(struct uart_8250_port *);
39873 	void (*rs485_stop_tx)(struct uart_8250_port *);
39874 	struct delayed_work overrun_backoff;
39875 	u32 overrun_backoff_time_ms;
39876 };
39877 
39878 struct uart_8250_em485 {
39879 	struct hrtimer start_tx_timer;
39880 	struct hrtimer stop_tx_timer;
39881 	struct hrtimer *active_timer;
39882 	struct uart_8250_port *port;
39883 	unsigned int tx_stopped: 1;
39884 };
39885 
39886 struct dma_chan;
39887 
39888 typedef bool (*dma_filter_fn)(struct dma_chan *, void *);
39889 
39890 enum dma_transfer_direction {
39891 	DMA_MEM_TO_MEM = 0,
39892 	DMA_MEM_TO_DEV = 1,
39893 	DMA_DEV_TO_MEM = 2,
39894 	DMA_DEV_TO_DEV = 3,
39895 	DMA_TRANS_NONE = 4,
39896 };
39897 
39898 enum dma_slave_buswidth {
39899 	DMA_SLAVE_BUSWIDTH_UNDEFINED = 0,
39900 	DMA_SLAVE_BUSWIDTH_1_BYTE = 1,
39901 	DMA_SLAVE_BUSWIDTH_2_BYTES = 2,
39902 	DMA_SLAVE_BUSWIDTH_3_BYTES = 3,
39903 	DMA_SLAVE_BUSWIDTH_4_BYTES = 4,
39904 	DMA_SLAVE_BUSWIDTH_8_BYTES = 8,
39905 	DMA_SLAVE_BUSWIDTH_16_BYTES = 16,
39906 	DMA_SLAVE_BUSWIDTH_32_BYTES = 32,
39907 	DMA_SLAVE_BUSWIDTH_64_BYTES = 64,
39908 	DMA_SLAVE_BUSWIDTH_128_BYTES = 128,
39909 };
39910 
39911 struct dma_slave_config {
39912 	enum dma_transfer_direction direction;
39913 	phys_addr_t src_addr;
39914 	phys_addr_t dst_addr;
39915 	enum dma_slave_buswidth src_addr_width;
39916 	enum dma_slave_buswidth dst_addr_width;
39917 	u32 src_maxburst;
39918 	u32 dst_maxburst;
39919 	u32 src_port_window_size;
39920 	u32 dst_port_window_size;
39921 	bool device_fc;
39922 	void *peripheral_config;
39923 	size_t peripheral_size;
39924 };
39925 
39926 typedef s32 dma_cookie_t;
39927 
39928 struct uart_8250_dma {
39929 	int (*tx_dma)(struct uart_8250_port *);
39930 	int (*rx_dma)(struct uart_8250_port *);
39931 	void (*prepare_tx_dma)(struct uart_8250_port *);
39932 	void (*prepare_rx_dma)(struct uart_8250_port *);
39933 	dma_filter_fn fn;
39934 	void *rx_param;
39935 	void *tx_param;
39936 	struct dma_slave_config rxconf;
39937 	struct dma_slave_config txconf;
39938 	struct dma_chan *rxchan;
39939 	struct dma_chan *txchan;
39940 	phys_addr_t rx_dma_addr;
39941 	phys_addr_t tx_dma_addr;
39942 	dma_addr_t rx_addr;
39943 	dma_addr_t tx_addr;
39944 	dma_cookie_t rx_cookie;
39945 	dma_cookie_t tx_cookie;
39946 	void *rx_buf;
39947 	size_t rx_size;
39948 	size_t tx_size;
39949 	unsigned char tx_running;
39950 	unsigned char tx_err;
39951 	unsigned char rx_running;
39952 };
39953 
39954 enum dma_status {
39955 	DMA_COMPLETE = 0,
39956 	DMA_IN_PROGRESS = 1,
39957 	DMA_PAUSED = 2,
39958 	DMA_ERROR = 3,
39959 	DMA_OUT_OF_ORDER = 4,
39960 };
39961 
39962 enum dma_transaction_type {
39963 	DMA_MEMCPY = 0,
39964 	DMA_XOR = 1,
39965 	DMA_PQ = 2,
39966 	DMA_XOR_VAL = 3,
39967 	DMA_PQ_VAL = 4,
39968 	DMA_MEMSET = 5,
39969 	DMA_MEMSET_SG = 6,
39970 	DMA_INTERRUPT = 7,
39971 	DMA_PRIVATE = 8,
39972 	DMA_ASYNC_TX = 9,
39973 	DMA_SLAVE = 10,
39974 	DMA_CYCLIC = 11,
39975 	DMA_INTERLEAVE = 12,
39976 	DMA_COMPLETION_NO_ORDER = 13,
39977 	DMA_REPEAT = 14,
39978 	DMA_LOAD_EOT = 15,
39979 	DMA_TX_TYPE_END = 16,
39980 };
39981 
39982 struct data_chunk {
39983 	size_t size;
39984 	size_t icg;
39985 	size_t dst_icg;
39986 	size_t src_icg;
39987 };
39988 
39989 struct dma_interleaved_template {
39990 	dma_addr_t src_start;
39991 	dma_addr_t dst_start;
39992 	enum dma_transfer_direction dir;
39993 	bool src_inc;
39994 	bool dst_inc;
39995 	bool src_sgl;
39996 	bool dst_sgl;
39997 	size_t numf;
39998 	size_t frame_size;
39999 	struct data_chunk sgl[0];
40000 };
40001 
40002 enum dma_ctrl_flags {
40003 	DMA_PREP_INTERRUPT = 1,
40004 	DMA_CTRL_ACK = 2,
40005 	DMA_PREP_PQ_DISABLE_P = 4,
40006 	DMA_PREP_PQ_DISABLE_Q = 8,
40007 	DMA_PREP_CONTINUE = 16,
40008 	DMA_PREP_FENCE = 32,
40009 	DMA_CTRL_REUSE = 64,
40010 	DMA_PREP_CMD = 128,
40011 	DMA_PREP_REPEAT = 256,
40012 	DMA_PREP_LOAD_EOT = 512,
40013 };
40014 
40015 enum sum_check_bits {
40016 	SUM_CHECK_P = 0,
40017 	SUM_CHECK_Q = 1,
40018 };
40019 
40020 enum sum_check_flags {
40021 	SUM_CHECK_P_RESULT = 1,
40022 	SUM_CHECK_Q_RESULT = 2,
40023 };
40024 
40025 typedef struct {
40026 	long unsigned int bits[1];
40027 } dma_cap_mask_t;
40028 
40029 enum dma_desc_metadata_mode {
40030 	DESC_METADATA_NONE = 0,
40031 	DESC_METADATA_CLIENT = 1,
40032 	DESC_METADATA_ENGINE = 2,
40033 };
40034 
40035 struct dma_chan_percpu {
40036 	long unsigned int memcpy_count;
40037 	long unsigned int bytes_transferred;
40038 };
40039 
40040 struct dma_router {
40041 	struct device *dev;
40042 	void (*route_free)(struct device *, void *);
40043 };
40044 
40045 struct dma_device;
40046 
40047 struct dma_chan_dev;
40048 
40049 struct dma_chan {
40050 	struct dma_device *device;
40051 	struct device *slave;
40052 	dma_cookie_t cookie;
40053 	dma_cookie_t completed_cookie;
40054 	int chan_id;
40055 	struct dma_chan_dev *dev;
40056 	const char *name;
40057 	char *dbg_client_name;
40058 	struct list_head device_node;
40059 	struct dma_chan_percpu *local;
40060 	int client_count;
40061 	int table_count;
40062 	struct dma_router *router;
40063 	void *route_data;
40064 	void *private;
40065 };
40066 
40067 struct dma_slave_map;
40068 
40069 struct dma_filter {
40070 	dma_filter_fn fn;
40071 	int mapcnt;
40072 	const struct dma_slave_map *map;
40073 };
40074 
40075 enum dmaengine_alignment {
40076 	DMAENGINE_ALIGN_1_BYTE = 0,
40077 	DMAENGINE_ALIGN_2_BYTES = 1,
40078 	DMAENGINE_ALIGN_4_BYTES = 2,
40079 	DMAENGINE_ALIGN_8_BYTES = 3,
40080 	DMAENGINE_ALIGN_16_BYTES = 4,
40081 	DMAENGINE_ALIGN_32_BYTES = 5,
40082 	DMAENGINE_ALIGN_64_BYTES = 6,
40083 	DMAENGINE_ALIGN_128_BYTES = 7,
40084 	DMAENGINE_ALIGN_256_BYTES = 8,
40085 };
40086 
40087 enum dma_residue_granularity {
40088 	DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0,
40089 	DMA_RESIDUE_GRANULARITY_SEGMENT = 1,
40090 	DMA_RESIDUE_GRANULARITY_BURST = 2,
40091 };
40092 
40093 struct dma_async_tx_descriptor;
40094 
40095 struct dma_slave_caps;
40096 
40097 struct dma_tx_state;
40098 
40099 struct dma_device {
40100 	struct kref ref;
40101 	unsigned int chancnt;
40102 	unsigned int privatecnt;
40103 	struct list_head channels;
40104 	struct list_head global_node;
40105 	struct dma_filter filter;
40106 	dma_cap_mask_t cap_mask;
40107 	enum dma_desc_metadata_mode desc_metadata_modes;
40108 	short unsigned int max_xor;
40109 	short unsigned int max_pq;
40110 	enum dmaengine_alignment copy_align;
40111 	enum dmaengine_alignment xor_align;
40112 	enum dmaengine_alignment pq_align;
40113 	enum dmaengine_alignment fill_align;
40114 	int dev_id;
40115 	struct device *dev;
40116 	struct module *owner;
40117 	struct ida chan_ida;
40118 	u32 src_addr_widths;
40119 	u32 dst_addr_widths;
40120 	u32 directions;
40121 	u32 min_burst;
40122 	u32 max_burst;
40123 	u32 max_sg_burst;
40124 	bool descriptor_reuse;
40125 	enum dma_residue_granularity residue_granularity;
40126 	int (*device_alloc_chan_resources)(struct dma_chan *);
40127 	int (*device_router_config)(struct dma_chan *);
40128 	void (*device_free_chan_resources)(struct dma_chan *);
40129 	struct dma_async_tx_descriptor * (*device_prep_dma_memcpy)(struct dma_chan *, dma_addr_t, dma_addr_t, size_t, long unsigned int);
40130 	struct dma_async_tx_descriptor * (*device_prep_dma_xor)(struct dma_chan *, dma_addr_t, dma_addr_t *, unsigned int, size_t, long unsigned int);
40131 	struct dma_async_tx_descriptor * (*device_prep_dma_xor_val)(struct dma_chan *, dma_addr_t *, unsigned int, size_t, enum sum_check_flags *, long unsigned int);
40132 	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, long unsigned int);
40133 	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 *, long unsigned int);
40134 	struct dma_async_tx_descriptor * (*device_prep_dma_memset)(struct dma_chan *, dma_addr_t, int, size_t, long unsigned int);
40135 	struct dma_async_tx_descriptor * (*device_prep_dma_memset_sg)(struct dma_chan *, struct scatterlist *, unsigned int, int, long unsigned int);
40136 	struct dma_async_tx_descriptor * (*device_prep_dma_interrupt)(struct dma_chan *, long unsigned int);
40137 	struct dma_async_tx_descriptor * (*device_prep_slave_sg)(struct dma_chan *, struct scatterlist *, unsigned int, enum dma_transfer_direction, long unsigned int, void *);
40138 	struct dma_async_tx_descriptor * (*device_prep_dma_cyclic)(struct dma_chan *, dma_addr_t, size_t, size_t, enum dma_transfer_direction, long unsigned int);
40139 	struct dma_async_tx_descriptor * (*device_prep_interleaved_dma)(struct dma_chan *, struct dma_interleaved_template *, long unsigned int);
40140 	struct dma_async_tx_descriptor * (*device_prep_dma_imm_data)(struct dma_chan *, dma_addr_t, u64, long unsigned int);
40141 	void (*device_caps)(struct dma_chan *, struct dma_slave_caps *);
40142 	int (*device_config)(struct dma_chan *, struct dma_slave_config *);
40143 	int (*device_pause)(struct dma_chan *);
40144 	int (*device_resume)(struct dma_chan *);
40145 	int (*device_terminate_all)(struct dma_chan *);
40146 	void (*device_synchronize)(struct dma_chan *);
40147 	enum dma_status (*device_tx_status)(struct dma_chan *, dma_cookie_t, struct dma_tx_state *);
40148 	void (*device_issue_pending)(struct dma_chan *);
40149 	void (*device_release)(struct dma_device *);
40150 	void (*dbg_summary_show)(struct seq_file *, struct dma_device *);
40151 	struct dentry *dbg_dev_root;
40152 };
40153 
40154 struct dma_chan_dev {
40155 	struct dma_chan *chan;
40156 	struct device device;
40157 	int dev_id;
40158 	bool chan_dma_dev;
40159 };
40160 
40161 struct dma_slave_caps {
40162 	u32 src_addr_widths;
40163 	u32 dst_addr_widths;
40164 	u32 directions;
40165 	u32 min_burst;
40166 	u32 max_burst;
40167 	u32 max_sg_burst;
40168 	bool cmd_pause;
40169 	bool cmd_resume;
40170 	bool cmd_terminate;
40171 	enum dma_residue_granularity residue_granularity;
40172 	bool descriptor_reuse;
40173 };
40174 
40175 typedef void (*dma_async_tx_callback)(void *);
40176 
40177 enum dmaengine_tx_result {
40178 	DMA_TRANS_NOERROR = 0,
40179 	DMA_TRANS_READ_FAILED = 1,
40180 	DMA_TRANS_WRITE_FAILED = 2,
40181 	DMA_TRANS_ABORTED = 3,
40182 };
40183 
40184 struct dmaengine_result {
40185 	enum dmaengine_tx_result result;
40186 	u32 residue;
40187 };
40188 
40189 typedef void (*dma_async_tx_callback_result)(void *, const struct dmaengine_result *);
40190 
40191 struct dmaengine_unmap_data {
40192 	u8 map_cnt;
40193 	u8 to_cnt;
40194 	u8 from_cnt;
40195 	u8 bidi_cnt;
40196 	struct device *dev;
40197 	struct kref kref;
40198 	size_t len;
40199 	dma_addr_t addr[0];
40200 };
40201 
40202 struct dma_descriptor_metadata_ops {
40203 	int (*attach)(struct dma_async_tx_descriptor *, void *, size_t);
40204 	void * (*get_ptr)(struct dma_async_tx_descriptor *, size_t *, size_t *);
40205 	int (*set_len)(struct dma_async_tx_descriptor *, size_t);
40206 };
40207 
40208 struct dma_async_tx_descriptor {
40209 	dma_cookie_t cookie;
40210 	enum dma_ctrl_flags flags;
40211 	dma_addr_t phys;
40212 	struct dma_chan *chan;
40213 	dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor *);
40214 	int (*desc_free)(struct dma_async_tx_descriptor *);
40215 	dma_async_tx_callback callback;
40216 	dma_async_tx_callback_result callback_result;
40217 	void *callback_param;
40218 	struct dmaengine_unmap_data *unmap;
40219 	enum dma_desc_metadata_mode desc_metadata_mode;
40220 	struct dma_descriptor_metadata_ops *metadata_ops;
40221 };
40222 
40223 struct dma_tx_state {
40224 	dma_cookie_t last;
40225 	dma_cookie_t used;
40226 	u32 residue;
40227 	u32 in_flight_bytes;
40228 };
40229 
40230 struct dma_slave_map {
40231 	const char *devname;
40232 	const char *slave;
40233 	void *param;
40234 };
40235 
40236 struct earlycon_device {
40237 	struct console *con;
40238 	struct uart_port port;
40239 	char options[16];
40240 	unsigned int baud;
40241 };
40242 
40243 struct earlycon_id {
40244 	char name[15];
40245 	char name_term;
40246 	char compatible[128];
40247 	int (*setup)(struct earlycon_device *, const char *);
40248 };
40249 
40250 struct splice_desc {
40251 	size_t total_len;
40252 	unsigned int len;
40253 	unsigned int flags;
40254 	union {
40255 		void *userptr;
40256 		struct file *file;
40257 		void *data;
40258 	} u;
40259 	loff_t pos;
40260 	loff_t *opos;
40261 	size_t num_spliced;
40262 	bool need_wakeup;
40263 };
40264 
40265 typedef int splice_actor(struct pipe_inode_info *, struct pipe_buffer *, struct splice_desc *);
40266 
40267 struct memdev {
40268 	const char *name;
40269 	umode_t mode;
40270 	const struct file_operations *fops;
40271 	fmode_t fmode;
40272 };
40273 
40274 struct trace_event_raw_iommu_group_event {
40275 	struct trace_entry ent;
40276 	int gid;
40277 	u32 __data_loc_device;
40278 	char __data[0];
40279 };
40280 
40281 struct trace_event_raw_iommu_device_event {
40282 	struct trace_entry ent;
40283 	u32 __data_loc_device;
40284 	char __data[0];
40285 };
40286 
40287 struct trace_event_raw_map {
40288 	struct trace_entry ent;
40289 	u64 iova;
40290 	u64 paddr;
40291 	size_t size;
40292 	char __data[0];
40293 };
40294 
40295 struct trace_event_raw_unmap {
40296 	struct trace_entry ent;
40297 	u64 iova;
40298 	size_t size;
40299 	size_t unmapped_size;
40300 	char __data[0];
40301 };
40302 
40303 struct trace_event_raw_iommu_error {
40304 	struct trace_entry ent;
40305 	u32 __data_loc_device;
40306 	u32 __data_loc_driver;
40307 	u64 iova;
40308 	int flags;
40309 	char __data[0];
40310 };
40311 
40312 struct trace_event_data_offsets_iommu_group_event {
40313 	u32 device;
40314 };
40315 
40316 struct trace_event_data_offsets_iommu_device_event {
40317 	u32 device;
40318 };
40319 
40320 struct trace_event_data_offsets_map {};
40321 
40322 struct trace_event_data_offsets_unmap {};
40323 
40324 struct trace_event_data_offsets_iommu_error {
40325 	u32 device;
40326 	u32 driver;
40327 };
40328 
40329 typedef void (*btf_trace_add_device_to_group)(void *, int, struct device *);
40330 
40331 typedef void (*btf_trace_remove_device_from_group)(void *, int, struct device *);
40332 
40333 typedef void (*btf_trace_attach_device_to_domain)(void *, struct device *);
40334 
40335 typedef void (*btf_trace_detach_device_from_domain)(void *, struct device *);
40336 
40337 typedef void (*btf_trace_map)(void *, long unsigned int, phys_addr_t, size_t);
40338 
40339 typedef void (*btf_trace_unmap)(void *, long unsigned int, size_t, size_t);
40340 
40341 typedef void (*btf_trace_io_page_fault)(void *, struct device *, long unsigned int, int);
40342 
40343 struct dma_fence_ops;
40344 
40345 struct dma_fence {
40346 	spinlock_t *lock;
40347 	const struct dma_fence_ops *ops;
40348 	union {
40349 		struct list_head cb_list;
40350 		ktime_t timestamp;
40351 		struct callback_head rcu;
40352 	};
40353 	u64 context;
40354 	u64 seqno;
40355 	long unsigned int flags;
40356 	struct kref refcount;
40357 	int error;
40358 };
40359 
40360 struct dma_fence_ops {
40361 	bool use_64bit_seqno;
40362 	const char * (*get_driver_name)(struct dma_fence *);
40363 	const char * (*get_timeline_name)(struct dma_fence *);
40364 	bool (*enable_signaling)(struct dma_fence *);
40365 	bool (*signaled)(struct dma_fence *);
40366 	long int (*wait)(struct dma_fence *, bool, long int);
40367 	void (*release)(struct dma_fence *);
40368 	void (*fence_value_str)(struct dma_fence *, char *, int);
40369 	void (*timeline_value_str)(struct dma_fence *, char *, int);
40370 };
40371 
40372 typedef u32 depot_stack_handle_t;
40373 
40374 struct drm_modeset_lock;
40375 
40376 struct drm_modeset_acquire_ctx {
40377 	struct ww_acquire_ctx ww_ctx;
40378 	struct drm_modeset_lock *contended;
40379 	depot_stack_handle_t stack_depot;
40380 	struct list_head locked;
40381 	bool trylock_only;
40382 	bool interruptible;
40383 };
40384 
40385 struct drm_modeset_lock {
40386 	struct ww_mutex mutex;
40387 	struct list_head head;
40388 };
40389 
40390 struct drm_object_properties;
40391 
40392 struct drm_mode_object {
40393 	uint32_t id;
40394 	uint32_t type;
40395 	struct drm_object_properties *properties;
40396 	struct kref refcount;
40397 	void (*free_cb)(struct kref *);
40398 };
40399 
40400 struct drm_property;
40401 
40402 struct drm_object_properties {
40403 	int count;
40404 	struct drm_property *properties[24];
40405 	uint64_t values[24];
40406 };
40407 
40408 struct drm_device;
40409 
40410 struct drm_property {
40411 	struct list_head head;
40412 	struct drm_mode_object base;
40413 	uint32_t flags;
40414 	char name[32];
40415 	uint32_t num_values;
40416 	uint64_t *values;
40417 	struct drm_device *dev;
40418 	struct list_head enum_list;
40419 };
40420 
40421 enum hdmi_picture_aspect {
40422 	HDMI_PICTURE_ASPECT_NONE = 0,
40423 	HDMI_PICTURE_ASPECT_4_3 = 1,
40424 	HDMI_PICTURE_ASPECT_16_9 = 2,
40425 	HDMI_PICTURE_ASPECT_64_27 = 3,
40426 	HDMI_PICTURE_ASPECT_256_135 = 4,
40427 	HDMI_PICTURE_ASPECT_RESERVED = 5,
40428 };
40429 
40430 struct hdr_static_metadata {
40431 	__u8 eotf;
40432 	__u8 metadata_type;
40433 	__u16 max_cll;
40434 	__u16 max_fall;
40435 	__u16 min_cll;
40436 };
40437 
40438 struct hdr_sink_metadata {
40439 	__u32 metadata_type;
40440 	union {
40441 		struct hdr_static_metadata hdmi_type1;
40442 	};
40443 };
40444 
40445 typedef unsigned int drm_magic_t;
40446 
40447 struct drm_clip_rect {
40448 	short unsigned int x1;
40449 	short unsigned int y1;
40450 	short unsigned int x2;
40451 	short unsigned int y2;
40452 };
40453 
40454 struct drm_event {
40455 	__u32 type;
40456 	__u32 length;
40457 };
40458 
40459 struct drm_event_vblank {
40460 	struct drm_event base;
40461 	__u64 user_data;
40462 	__u32 tv_sec;
40463 	__u32 tv_usec;
40464 	__u32 sequence;
40465 	__u32 crtc_id;
40466 };
40467 
40468 struct drm_event_crtc_sequence {
40469 	struct drm_event base;
40470 	__u64 user_data;
40471 	__s64 time_ns;
40472 	__u64 sequence;
40473 };
40474 
40475 enum drm_mode_subconnector {
40476 	DRM_MODE_SUBCONNECTOR_Automatic = 0,
40477 	DRM_MODE_SUBCONNECTOR_Unknown = 0,
40478 	DRM_MODE_SUBCONNECTOR_VGA = 1,
40479 	DRM_MODE_SUBCONNECTOR_DVID = 3,
40480 	DRM_MODE_SUBCONNECTOR_DVIA = 4,
40481 	DRM_MODE_SUBCONNECTOR_Composite = 5,
40482 	DRM_MODE_SUBCONNECTOR_SVIDEO = 6,
40483 	DRM_MODE_SUBCONNECTOR_Component = 8,
40484 	DRM_MODE_SUBCONNECTOR_SCART = 9,
40485 	DRM_MODE_SUBCONNECTOR_DisplayPort = 10,
40486 	DRM_MODE_SUBCONNECTOR_HDMIA = 11,
40487 	DRM_MODE_SUBCONNECTOR_Native = 15,
40488 	DRM_MODE_SUBCONNECTOR_Wireless = 18,
40489 };
40490 
40491 struct drm_mode_fb_cmd2 {
40492 	__u32 fb_id;
40493 	__u32 width;
40494 	__u32 height;
40495 	__u32 pixel_format;
40496 	__u32 flags;
40497 	__u32 handles[4];
40498 	__u32 pitches[4];
40499 	__u32 offsets[4];
40500 	__u64 modifier[4];
40501 };
40502 
40503 struct drm_mode_create_dumb {
40504 	__u32 height;
40505 	__u32 width;
40506 	__u32 bpp;
40507 	__u32 flags;
40508 	__u32 handle;
40509 	__u32 pitch;
40510 	__u64 size;
40511 };
40512 
40513 struct drm_mode_rect {
40514 	__s32 x1;
40515 	__s32 y1;
40516 	__s32 x2;
40517 	__s32 y2;
40518 };
40519 
40520 enum drm_connector_force {
40521 	DRM_FORCE_UNSPECIFIED = 0,
40522 	DRM_FORCE_OFF = 1,
40523 	DRM_FORCE_ON = 2,
40524 	DRM_FORCE_ON_DIGITAL = 3,
40525 };
40526 
40527 enum drm_connector_status {
40528 	connector_status_connected = 1,
40529 	connector_status_disconnected = 2,
40530 	connector_status_unknown = 3,
40531 };
40532 
40533 enum drm_connector_registration_state {
40534 	DRM_CONNECTOR_INITIALIZING = 0,
40535 	DRM_CONNECTOR_REGISTERED = 1,
40536 	DRM_CONNECTOR_UNREGISTERED = 2,
40537 };
40538 
40539 enum subpixel_order {
40540 	SubPixelUnknown = 0,
40541 	SubPixelHorizontalRGB = 1,
40542 	SubPixelHorizontalBGR = 2,
40543 	SubPixelVerticalRGB = 3,
40544 	SubPixelVerticalBGR = 4,
40545 	SubPixelNone = 5,
40546 };
40547 
40548 struct drm_scrambling {
40549 	bool supported;
40550 	bool low_rates;
40551 };
40552 
40553 struct drm_scdc {
40554 	bool supported;
40555 	bool read_request;
40556 	struct drm_scrambling scrambling;
40557 };
40558 
40559 struct drm_hdmi_dsc_cap {
40560 	bool v_1p2;
40561 	bool native_420;
40562 	bool all_bpp;
40563 	u8 bpc_supported;
40564 	u8 max_slices;
40565 	int clk_per_slice;
40566 	u8 max_lanes;
40567 	u8 max_frl_rate_per_lane;
40568 	u8 total_chunk_kbytes;
40569 };
40570 
40571 struct drm_hdmi_info {
40572 	struct drm_scdc scdc;
40573 	long unsigned int y420_vdb_modes[4];
40574 	long unsigned int y420_cmdb_modes[4];
40575 	u64 y420_cmdb_map;
40576 	u8 y420_dc_modes;
40577 	u8 max_frl_rate_per_lane;
40578 	u8 max_lanes;
40579 	struct drm_hdmi_dsc_cap dsc_cap;
40580 };
40581 
40582 enum drm_link_status {
40583 	DRM_LINK_STATUS_GOOD = 0,
40584 	DRM_LINK_STATUS_BAD = 1,
40585 };
40586 
40587 struct drm_monitor_range_info {
40588 	u16 min_vfreq;
40589 	u16 max_vfreq;
40590 };
40591 
40592 struct drm_luminance_range_info {
40593 	u32 min_luminance;
40594 	u32 max_luminance;
40595 };
40596 
40597 enum drm_privacy_screen_status {
40598 	PRIVACY_SCREEN_DISABLED = 0,
40599 	PRIVACY_SCREEN_ENABLED = 1,
40600 	PRIVACY_SCREEN_DISABLED_LOCKED = 2,
40601 	PRIVACY_SCREEN_ENABLED_LOCKED = 3,
40602 };
40603 
40604 struct drm_display_info {
40605 	unsigned int width_mm;
40606 	unsigned int height_mm;
40607 	unsigned int bpc;
40608 	enum subpixel_order subpixel_order;
40609 	int panel_orientation;
40610 	u32 color_formats;
40611 	const u32 *bus_formats;
40612 	unsigned int num_bus_formats;
40613 	u32 bus_flags;
40614 	int max_tmds_clock;
40615 	bool dvi_dual;
40616 	bool is_hdmi;
40617 	bool has_hdmi_infoframe;
40618 	bool rgb_quant_range_selectable;
40619 	u8 edid_hdmi_rgb444_dc_modes;
40620 	u8 edid_hdmi_ycbcr444_dc_modes;
40621 	u8 cea_rev;
40622 	struct drm_hdmi_info hdmi;
40623 	bool non_desktop;
40624 	struct drm_monitor_range_info monitor_range;
40625 	struct drm_luminance_range_info luminance_range;
40626 	u8 mso_stream_count;
40627 	u8 mso_pixel_overlap;
40628 	u32 max_dsc_bpp;
40629 };
40630 
40631 struct drm_connector_tv_margins {
40632 	unsigned int bottom;
40633 	unsigned int left;
40634 	unsigned int right;
40635 	unsigned int top;
40636 };
40637 
40638 struct drm_tv_connector_state {
40639 	enum drm_mode_subconnector select_subconnector;
40640 	enum drm_mode_subconnector subconnector;
40641 	struct drm_connector_tv_margins margins;
40642 	unsigned int mode;
40643 	unsigned int brightness;
40644 	unsigned int contrast;
40645 	unsigned int flicker_reduction;
40646 	unsigned int overscan;
40647 	unsigned int saturation;
40648 	unsigned int hue;
40649 };
40650 
40651 struct drm_connector;
40652 
40653 struct drm_crtc;
40654 
40655 struct drm_encoder;
40656 
40657 struct drm_atomic_state;
40658 
40659 struct drm_crtc_commit;
40660 
40661 struct drm_writeback_job;
40662 
40663 struct drm_property_blob;
40664 
40665 struct drm_connector_state {
40666 	struct drm_connector *connector;
40667 	struct drm_crtc *crtc;
40668 	struct drm_encoder *best_encoder;
40669 	enum drm_link_status link_status;
40670 	struct drm_atomic_state *state;
40671 	struct drm_crtc_commit *commit;
40672 	struct drm_tv_connector_state tv;
40673 	bool self_refresh_aware;
40674 	enum hdmi_picture_aspect picture_aspect_ratio;
40675 	unsigned int content_type;
40676 	unsigned int hdcp_content_type;
40677 	unsigned int scaling_mode;
40678 	unsigned int content_protection;
40679 	u32 colorspace;
40680 	struct drm_writeback_job *writeback_job;
40681 	u8 max_requested_bpc;
40682 	u8 max_bpc;
40683 	enum drm_privacy_screen_status privacy_screen_sw_state;
40684 	struct drm_property_blob *hdr_output_metadata;
40685 };
40686 
40687 struct drm_privacy_screen;
40688 
40689 struct drm_cmdline_mode {
40690 	char name[32];
40691 	bool specified;
40692 	bool refresh_specified;
40693 	bool bpp_specified;
40694 	unsigned int pixel_clock;
40695 	int xres;
40696 	int yres;
40697 	int bpp;
40698 	int refresh;
40699 	bool rb;
40700 	bool interlace;
40701 	bool cvt;
40702 	bool margins;
40703 	enum drm_connector_force force;
40704 	unsigned int rotation_reflection;
40705 	enum drm_panel_orientation panel_orientation;
40706 	struct drm_connector_tv_margins tv_margins;
40707 };
40708 
40709 struct drm_connector_funcs;
40710 
40711 struct drm_connector_helper_funcs;
40712 
40713 struct drm_edid;
40714 
40715 struct i2c_adapter;
40716 
40717 struct drm_tile_group;
40718 
40719 struct drm_connector {
40720 	struct drm_device *dev;
40721 	struct device *kdev;
40722 	struct device_attribute *attr;
40723 	struct fwnode_handle *fwnode;
40724 	struct list_head head;
40725 	struct list_head global_connector_list_entry;
40726 	struct drm_mode_object base;
40727 	char *name;
40728 	struct mutex mutex;
40729 	unsigned int index;
40730 	int connector_type;
40731 	int connector_type_id;
40732 	bool interlace_allowed;
40733 	bool doublescan_allowed;
40734 	bool stereo_allowed;
40735 	bool ycbcr_420_allowed;
40736 	enum drm_connector_registration_state registration_state;
40737 	struct list_head modes;
40738 	enum drm_connector_status status;
40739 	struct list_head probed_modes;
40740 	struct drm_display_info display_info;
40741 	const struct drm_connector_funcs *funcs;
40742 	struct drm_property_blob *edid_blob_ptr;
40743 	struct drm_object_properties properties;
40744 	struct drm_property *scaling_mode_property;
40745 	struct drm_property *vrr_capable_property;
40746 	struct drm_property *colorspace_property;
40747 	struct drm_property_blob *path_blob_ptr;
40748 	struct drm_property *max_bpc_property;
40749 	struct drm_privacy_screen *privacy_screen;
40750 	struct notifier_block privacy_screen_notifier;
40751 	struct drm_property *privacy_screen_sw_state_property;
40752 	struct drm_property *privacy_screen_hw_state_property;
40753 	uint8_t polled;
40754 	int dpms;
40755 	const struct drm_connector_helper_funcs *helper_private;
40756 	struct drm_cmdline_mode cmdline_mode;
40757 	enum drm_connector_force force;
40758 	const struct drm_edid *edid_override;
40759 	struct mutex edid_override_mutex;
40760 	u64 epoch_counter;
40761 	u32 possible_encoders;
40762 	struct drm_encoder *encoder;
40763 	uint8_t eld[128];
40764 	bool latency_present[2];
40765 	int video_latency[2];
40766 	int audio_latency[2];
40767 	struct i2c_adapter *ddc;
40768 	int null_edid_counter;
40769 	unsigned int bad_edid_counter;
40770 	bool edid_corrupt;
40771 	u8 real_edid_checksum;
40772 	struct dentry *debugfs_entry;
40773 	struct drm_connector_state *state;
40774 	struct drm_property_blob *tile_blob_ptr;
40775 	bool has_tile;
40776 	struct drm_tile_group *tile_group;
40777 	bool tile_is_single_monitor;
40778 	uint8_t num_h_tile;
40779 	uint8_t num_v_tile;
40780 	uint8_t tile_h_loc;
40781 	uint8_t tile_v_loc;
40782 	uint16_t tile_h_size;
40783 	uint16_t tile_v_size;
40784 	struct llist_node free_node;
40785 	struct hdr_sink_metadata hdr_sink_metadata;
40786 };
40787 
40788 enum drm_mode_status {
40789 	MODE_OK = 0,
40790 	MODE_HSYNC = 1,
40791 	MODE_VSYNC = 2,
40792 	MODE_H_ILLEGAL = 3,
40793 	MODE_V_ILLEGAL = 4,
40794 	MODE_BAD_WIDTH = 5,
40795 	MODE_NOMODE = 6,
40796 	MODE_NO_INTERLACE = 7,
40797 	MODE_NO_DBLESCAN = 8,
40798 	MODE_NO_VSCAN = 9,
40799 	MODE_MEM = 10,
40800 	MODE_VIRTUAL_X = 11,
40801 	MODE_VIRTUAL_Y = 12,
40802 	MODE_MEM_VIRT = 13,
40803 	MODE_NOCLOCK = 14,
40804 	MODE_CLOCK_HIGH = 15,
40805 	MODE_CLOCK_LOW = 16,
40806 	MODE_CLOCK_RANGE = 17,
40807 	MODE_BAD_HVALUE = 18,
40808 	MODE_BAD_VVALUE = 19,
40809 	MODE_BAD_VSCAN = 20,
40810 	MODE_HSYNC_NARROW = 21,
40811 	MODE_HSYNC_WIDE = 22,
40812 	MODE_HBLANK_NARROW = 23,
40813 	MODE_HBLANK_WIDE = 24,
40814 	MODE_VSYNC_NARROW = 25,
40815 	MODE_VSYNC_WIDE = 26,
40816 	MODE_VBLANK_NARROW = 27,
40817 	MODE_VBLANK_WIDE = 28,
40818 	MODE_PANEL = 29,
40819 	MODE_INTERLACE_WIDTH = 30,
40820 	MODE_ONE_WIDTH = 31,
40821 	MODE_ONE_HEIGHT = 32,
40822 	MODE_ONE_SIZE = 33,
40823 	MODE_NO_REDUCED = 34,
40824 	MODE_NO_STEREO = 35,
40825 	MODE_NO_420 = 36,
40826 	MODE_STALE = -3,
40827 	MODE_BAD = -2,
40828 	MODE_ERROR = -1,
40829 };
40830 
40831 struct drm_display_mode {
40832 	int clock;
40833 	u16 hdisplay;
40834 	u16 hsync_start;
40835 	u16 hsync_end;
40836 	u16 htotal;
40837 	u16 hskew;
40838 	u16 vdisplay;
40839 	u16 vsync_start;
40840 	u16 vsync_end;
40841 	u16 vtotal;
40842 	u16 vscan;
40843 	u32 flags;
40844 	int crtc_clock;
40845 	u16 crtc_hdisplay;
40846 	u16 crtc_hblank_start;
40847 	u16 crtc_hblank_end;
40848 	u16 crtc_hsync_start;
40849 	u16 crtc_hsync_end;
40850 	u16 crtc_htotal;
40851 	u16 crtc_hskew;
40852 	u16 crtc_vdisplay;
40853 	u16 crtc_vblank_start;
40854 	u16 crtc_vblank_end;
40855 	u16 crtc_vsync_start;
40856 	u16 crtc_vsync_end;
40857 	u16 crtc_vtotal;
40858 	u16 width_mm;
40859 	u16 height_mm;
40860 	u8 type;
40861 	bool expose_to_userspace;
40862 	struct list_head head;
40863 	char name[32];
40864 	enum drm_mode_status status;
40865 	enum hdmi_picture_aspect picture_aspect_ratio;
40866 };
40867 
40868 struct drm_crtc_crc_entry;
40869 
40870 struct drm_crtc_crc {
40871 	spinlock_t lock;
40872 	const char *source;
40873 	bool opened;
40874 	bool overflow;
40875 	struct drm_crtc_crc_entry *entries;
40876 	int head;
40877 	int tail;
40878 	size_t values_cnt;
40879 	wait_queue_head_t wq;
40880 };
40881 
40882 struct drm_self_refresh_data;
40883 
40884 struct drm_plane;
40885 
40886 struct drm_crtc_funcs;
40887 
40888 struct drm_crtc_helper_funcs;
40889 
40890 struct drm_crtc_state;
40891 
40892 struct drm_crtc {
40893 	struct drm_device *dev;
40894 	struct device_node *port;
40895 	struct list_head head;
40896 	char *name;
40897 	struct drm_modeset_lock mutex;
40898 	struct drm_mode_object base;
40899 	struct drm_plane *primary;
40900 	struct drm_plane *cursor;
40901 	unsigned int index;
40902 	int cursor_x;
40903 	int cursor_y;
40904 	bool enabled;
40905 	struct drm_display_mode mode;
40906 	struct drm_display_mode hwmode;
40907 	int x;
40908 	int y;
40909 	const struct drm_crtc_funcs *funcs;
40910 	uint32_t gamma_size;
40911 	uint16_t *gamma_store;
40912 	const struct drm_crtc_helper_funcs *helper_private;
40913 	struct drm_object_properties properties;
40914 	struct drm_property *scaling_filter_property;
40915 	struct drm_crtc_state *state;
40916 	struct list_head commit_list;
40917 	spinlock_t commit_lock;
40918 	struct dentry *debugfs_entry;
40919 	struct drm_crtc_crc crc;
40920 	unsigned int fence_context;
40921 	spinlock_t fence_lock;
40922 	long unsigned int fence_seqno;
40923 	char timeline_name[32];
40924 	struct drm_self_refresh_data *self_refresh_data;
40925 };
40926 
40927 struct drm_encoder_funcs;
40928 
40929 struct drm_encoder_helper_funcs;
40930 
40931 struct drm_encoder {
40932 	struct drm_device *dev;
40933 	struct list_head head;
40934 	struct drm_mode_object base;
40935 	char *name;
40936 	int encoder_type;
40937 	unsigned int index;
40938 	uint32_t possible_crtcs;
40939 	uint32_t possible_clones;
40940 	struct drm_crtc *crtc;
40941 	struct list_head bridge_chain;
40942 	const struct drm_encoder_funcs *funcs;
40943 	const struct drm_encoder_helper_funcs *helper_private;
40944 };
40945 
40946 struct __drm_planes_state;
40947 
40948 struct __drm_crtcs_state;
40949 
40950 struct __drm_connnectors_state;
40951 
40952 struct __drm_private_objs_state;
40953 
40954 struct drm_atomic_state {
40955 	struct kref ref;
40956 	struct drm_device *dev;
40957 	bool allow_modeset: 1;
40958 	bool legacy_cursor_update: 1;
40959 	bool async_update: 1;
40960 	bool duplicated: 1;
40961 	struct __drm_planes_state *planes;
40962 	struct __drm_crtcs_state *crtcs;
40963 	int num_connector;
40964 	struct __drm_connnectors_state *connectors;
40965 	int num_private_objs;
40966 	struct __drm_private_objs_state *private_objs;
40967 	struct drm_modeset_acquire_ctx *acquire_ctx;
40968 	struct drm_crtc_commit *fake_commit;
40969 	struct work_struct commit_work;
40970 };
40971 
40972 struct drm_pending_vblank_event;
40973 
40974 struct drm_crtc_commit {
40975 	struct drm_crtc *crtc;
40976 	struct kref ref;
40977 	struct completion flip_done;
40978 	struct completion hw_done;
40979 	struct completion cleanup_done;
40980 	struct list_head commit_entry;
40981 	struct drm_pending_vblank_event *event;
40982 	bool abort_completion;
40983 };
40984 
40985 struct drm_writeback_connector;
40986 
40987 struct drm_framebuffer;
40988 
40989 struct drm_writeback_job {
40990 	struct drm_writeback_connector *connector;
40991 	bool prepared;
40992 	struct work_struct cleanup_work;
40993 	struct list_head list_entry;
40994 	struct drm_framebuffer *fb;
40995 	struct dma_fence *out_fence;
40996 	void *priv;
40997 };
40998 
40999 struct drm_property_blob {
41000 	struct drm_mode_object base;
41001 	struct drm_device *dev;
41002 	struct list_head head_global;
41003 	struct list_head head_file;
41004 	size_t length;
41005 	void *data;
41006 };
41007 
41008 struct drm_printer;
41009 
41010 struct drm_connector_funcs {
41011 	int (*dpms)(struct drm_connector *, int);
41012 	void (*reset)(struct drm_connector *);
41013 	enum drm_connector_status (*detect)(struct drm_connector *, bool);
41014 	void (*force)(struct drm_connector *);
41015 	int (*fill_modes)(struct drm_connector *, uint32_t, uint32_t);
41016 	int (*set_property)(struct drm_connector *, struct drm_property *, uint64_t);
41017 	int (*late_register)(struct drm_connector *);
41018 	void (*early_unregister)(struct drm_connector *);
41019 	void (*destroy)(struct drm_connector *);
41020 	struct drm_connector_state * (*atomic_duplicate_state)(struct drm_connector *);
41021 	void (*atomic_destroy_state)(struct drm_connector *, struct drm_connector_state *);
41022 	int (*atomic_set_property)(struct drm_connector *, struct drm_connector_state *, struct drm_property *, uint64_t);
41023 	int (*atomic_get_property)(struct drm_connector *, const struct drm_connector_state *, struct drm_property *, uint64_t *);
41024 	void (*atomic_print_state)(struct drm_printer *, const struct drm_connector_state *);
41025 	void (*oob_hotplug_event)(struct drm_connector *);
41026 	void (*debugfs_init)(struct drm_connector *, struct dentry *);
41027 };
41028 
41029 struct drm_printer {
41030 	void (*printfn)(struct drm_printer *, struct va_format *);
41031 	void (*puts)(struct drm_printer *, const char *);
41032 	void *arg;
41033 	const char *prefix;
41034 };
41035 
41036 struct drm_mode_config_funcs;
41037 
41038 struct drm_mode_config_helper_funcs;
41039 
41040 struct drm_mode_config {
41041 	struct mutex mutex;
41042 	struct drm_modeset_lock connection_mutex;
41043 	struct drm_modeset_acquire_ctx *acquire_ctx;
41044 	struct mutex idr_mutex;
41045 	struct idr object_idr;
41046 	struct idr tile_idr;
41047 	struct mutex fb_lock;
41048 	int num_fb;
41049 	struct list_head fb_list;
41050 	spinlock_t connector_list_lock;
41051 	int num_connector;
41052 	struct ida connector_ida;
41053 	struct list_head connector_list;
41054 	struct llist_head connector_free_list;
41055 	struct work_struct connector_free_work;
41056 	int num_encoder;
41057 	struct list_head encoder_list;
41058 	int num_total_plane;
41059 	struct list_head plane_list;
41060 	int num_crtc;
41061 	struct list_head crtc_list;
41062 	struct list_head property_list;
41063 	struct list_head privobj_list;
41064 	int min_width;
41065 	int min_height;
41066 	int max_width;
41067 	int max_height;
41068 	const struct drm_mode_config_funcs *funcs;
41069 	bool poll_enabled;
41070 	bool poll_running;
41071 	bool delayed_event;
41072 	struct delayed_work output_poll_work;
41073 	struct mutex blob_lock;
41074 	struct list_head property_blob_list;
41075 	struct drm_property *edid_property;
41076 	struct drm_property *dpms_property;
41077 	struct drm_property *path_property;
41078 	struct drm_property *tile_property;
41079 	struct drm_property *link_status_property;
41080 	struct drm_property *plane_type_property;
41081 	struct drm_property *prop_src_x;
41082 	struct drm_property *prop_src_y;
41083 	struct drm_property *prop_src_w;
41084 	struct drm_property *prop_src_h;
41085 	struct drm_property *prop_crtc_x;
41086 	struct drm_property *prop_crtc_y;
41087 	struct drm_property *prop_crtc_w;
41088 	struct drm_property *prop_crtc_h;
41089 	struct drm_property *prop_fb_id;
41090 	struct drm_property *prop_in_fence_fd;
41091 	struct drm_property *prop_out_fence_ptr;
41092 	struct drm_property *prop_crtc_id;
41093 	struct drm_property *prop_fb_damage_clips;
41094 	struct drm_property *prop_active;
41095 	struct drm_property *prop_mode_id;
41096 	struct drm_property *prop_vrr_enabled;
41097 	struct drm_property *dvi_i_subconnector_property;
41098 	struct drm_property *dvi_i_select_subconnector_property;
41099 	struct drm_property *dp_subconnector_property;
41100 	struct drm_property *tv_subconnector_property;
41101 	struct drm_property *tv_select_subconnector_property;
41102 	struct drm_property *tv_mode_property;
41103 	struct drm_property *tv_left_margin_property;
41104 	struct drm_property *tv_right_margin_property;
41105 	struct drm_property *tv_top_margin_property;
41106 	struct drm_property *tv_bottom_margin_property;
41107 	struct drm_property *tv_brightness_property;
41108 	struct drm_property *tv_contrast_property;
41109 	struct drm_property *tv_flicker_reduction_property;
41110 	struct drm_property *tv_overscan_property;
41111 	struct drm_property *tv_saturation_property;
41112 	struct drm_property *tv_hue_property;
41113 	struct drm_property *scaling_mode_property;
41114 	struct drm_property *aspect_ratio_property;
41115 	struct drm_property *content_type_property;
41116 	struct drm_property *degamma_lut_property;
41117 	struct drm_property *degamma_lut_size_property;
41118 	struct drm_property *ctm_property;
41119 	struct drm_property *gamma_lut_property;
41120 	struct drm_property *gamma_lut_size_property;
41121 	struct drm_property *suggested_x_property;
41122 	struct drm_property *suggested_y_property;
41123 	struct drm_property *non_desktop_property;
41124 	struct drm_property *panel_orientation_property;
41125 	struct drm_property *writeback_fb_id_property;
41126 	struct drm_property *writeback_pixel_formats_property;
41127 	struct drm_property *writeback_out_fence_ptr_property;
41128 	struct drm_property *hdr_output_metadata_property;
41129 	struct drm_property *content_protection_property;
41130 	struct drm_property *hdcp_content_type_property;
41131 	uint32_t preferred_depth;
41132 	uint32_t prefer_shadow;
41133 	bool prefer_shadow_fbdev;
41134 	bool quirk_addfb_prefer_xbgr_30bpp;
41135 	bool quirk_addfb_prefer_host_byte_order;
41136 	bool async_page_flip;
41137 	bool fb_modifiers_not_supported;
41138 	bool normalize_zpos;
41139 	struct drm_property *modifiers_property;
41140 	uint32_t cursor_width;
41141 	uint32_t cursor_height;
41142 	struct drm_atomic_state *suspend_state;
41143 	const struct drm_mode_config_helper_funcs *helper_private;
41144 };
41145 
41146 struct drm_vram_mm;
41147 
41148 enum switch_power_state {
41149 	DRM_SWITCH_POWER_ON = 0,
41150 	DRM_SWITCH_POWER_OFF = 1,
41151 	DRM_SWITCH_POWER_CHANGING = 2,
41152 	DRM_SWITCH_POWER_DYNAMIC_OFF = 3,
41153 };
41154 
41155 struct drm_fb_helper;
41156 
41157 struct drm_driver;
41158 
41159 struct drm_minor;
41160 
41161 struct drm_master;
41162 
41163 struct drm_vblank_crtc;
41164 
41165 struct drm_vma_offset_manager;
41166 
41167 struct drm_device {
41168 	int if_version;
41169 	struct kref ref;
41170 	struct device *dev;
41171 	struct {
41172 		struct list_head resources;
41173 		void *final_kfree;
41174 		spinlock_t lock;
41175 	} managed;
41176 	const struct drm_driver *driver;
41177 	void *dev_private;
41178 	struct drm_minor *primary;
41179 	struct drm_minor *render;
41180 	struct drm_minor *accel;
41181 	bool registered;
41182 	struct drm_master *master;
41183 	u32 driver_features;
41184 	bool unplugged;
41185 	struct inode *anon_inode;
41186 	char *unique;
41187 	struct mutex struct_mutex;
41188 	struct mutex master_mutex;
41189 	atomic_t open_count;
41190 	struct mutex filelist_mutex;
41191 	struct list_head filelist;
41192 	struct list_head filelist_internal;
41193 	struct mutex clientlist_mutex;
41194 	struct list_head clientlist;
41195 	bool vblank_disable_immediate;
41196 	struct drm_vblank_crtc *vblank;
41197 	spinlock_t vblank_time_lock;
41198 	spinlock_t vbl_lock;
41199 	u32 max_vblank_count;
41200 	struct list_head vblank_event_list;
41201 	spinlock_t event_lock;
41202 	unsigned int num_crtcs;
41203 	struct drm_mode_config mode_config;
41204 	struct mutex object_name_lock;
41205 	struct idr object_name_idr;
41206 	struct drm_vma_offset_manager *vma_offset_manager;
41207 	struct drm_vram_mm *vram_mm;
41208 	enum switch_power_state switch_power_state;
41209 	struct drm_fb_helper *fb_helper;
41210 };
41211 
41212 struct drm_connector_helper_funcs {
41213 	int (*get_modes)(struct drm_connector *);
41214 	int (*detect_ctx)(struct drm_connector *, struct drm_modeset_acquire_ctx *, bool);
41215 	enum drm_mode_status (*mode_valid)(struct drm_connector *, struct drm_display_mode *);
41216 	int (*mode_valid_ctx)(struct drm_connector *, struct drm_display_mode *, struct drm_modeset_acquire_ctx *, enum drm_mode_status *);
41217 	struct drm_encoder * (*best_encoder)(struct drm_connector *);
41218 	struct drm_encoder * (*atomic_best_encoder)(struct drm_connector *, struct drm_atomic_state *);
41219 	int (*atomic_check)(struct drm_connector *, struct drm_atomic_state *);
41220 	void (*atomic_commit)(struct drm_connector *, struct drm_atomic_state *);
41221 	int (*prepare_writeback_job)(struct drm_writeback_connector *, struct drm_writeback_job *);
41222 	void (*cleanup_writeback_job)(struct drm_writeback_connector *, struct drm_writeback_job *);
41223 };
41224 
41225 struct edid;
41226 
41227 struct drm_edid {
41228 	size_t size;
41229 	const struct edid *edid;
41230 };
41231 
41232 struct drm_tile_group {
41233 	struct kref refcount;
41234 	struct drm_device *dev;
41235 	int id;
41236 	u8 group_data[8];
41237 };
41238 
41239 struct drm_connector_list_iter {
41240 	struct drm_device *dev;
41241 	struct drm_connector *conn;
41242 };
41243 
41244 struct drm_prime_file_private {
41245 	struct mutex lock;
41246 	struct rb_root dmabufs;
41247 	struct rb_root handles;
41248 };
41249 
41250 struct drm_file {
41251 	bool authenticated;
41252 	bool stereo_allowed;
41253 	bool universal_planes;
41254 	bool atomic;
41255 	bool aspect_ratio_allowed;
41256 	bool writeback_connectors;
41257 	bool was_master;
41258 	bool is_master;
41259 	struct drm_master *master;
41260 	spinlock_t master_lookup_lock;
41261 	struct pid *pid;
41262 	drm_magic_t magic;
41263 	struct list_head lhead;
41264 	struct drm_minor *minor;
41265 	struct idr object_idr;
41266 	spinlock_t table_lock;
41267 	struct idr syncobj_idr;
41268 	spinlock_t syncobj_table_lock;
41269 	struct file *filp;
41270 	void *driver_priv;
41271 	struct list_head fbs;
41272 	struct mutex fbs_lock;
41273 	struct list_head blobs;
41274 	wait_queue_head_t event_wait;
41275 	struct list_head pending_event_list;
41276 	struct list_head event_list;
41277 	int event_space;
41278 	struct mutex event_read_lock;
41279 	struct drm_prime_file_private prime;
41280 };
41281 
41282 struct drm_master {
41283 	struct kref refcount;
41284 	struct drm_device *dev;
41285 	char *unique;
41286 	int unique_len;
41287 	struct idr magic_map;
41288 	void *driver_priv;
41289 	struct drm_master *lessor;
41290 	int lessee_id;
41291 	struct list_head lessee_list;
41292 	struct list_head lessees;
41293 	struct idr leases;
41294 	struct idr lessee_idr;
41295 };
41296 
41297 struct drm_format_info;
41298 
41299 struct drm_mode_config_funcs {
41300 	struct drm_framebuffer * (*fb_create)(struct drm_device *, struct drm_file *, const struct drm_mode_fb_cmd2 *);
41301 	const struct drm_format_info * (*get_format_info)(const struct drm_mode_fb_cmd2 *);
41302 	void (*output_poll_changed)(struct drm_device *);
41303 	enum drm_mode_status (*mode_valid)(struct drm_device *, const struct drm_display_mode *);
41304 	int (*atomic_check)(struct drm_device *, struct drm_atomic_state *);
41305 	int (*atomic_commit)(struct drm_device *, struct drm_atomic_state *, bool);
41306 	struct drm_atomic_state * (*atomic_state_alloc)(struct drm_device *);
41307 	void (*atomic_state_clear)(struct drm_atomic_state *);
41308 	void (*atomic_state_free)(struct drm_atomic_state *);
41309 };
41310 
41311 struct drm_framebuffer_funcs;
41312 
41313 struct drm_gem_object;
41314 
41315 struct drm_framebuffer {
41316 	struct drm_device *dev;
41317 	struct list_head head;
41318 	struct drm_mode_object base;
41319 	char comm[16];
41320 	const struct drm_format_info *format;
41321 	const struct drm_framebuffer_funcs *funcs;
41322 	unsigned int pitches[4];
41323 	unsigned int offsets[4];
41324 	uint64_t modifier;
41325 	unsigned int width;
41326 	unsigned int height;
41327 	int flags;
41328 	int hot_x;
41329 	int hot_y;
41330 	struct list_head filp_head;
41331 	struct drm_gem_object *obj[4];
41332 };
41333 
41334 struct drm_format_info {
41335 	u32 format;
41336 	u8 depth;
41337 	u8 num_planes;
41338 	union {
41339 		u8 cpp[4];
41340 		u8 char_per_block[4];
41341 	};
41342 	u8 block_w[4];
41343 	u8 block_h[4];
41344 	u8 hsub;
41345 	u8 vsub;
41346 	bool has_alpha;
41347 	bool is_yuv;
41348 	bool is_color_indexed;
41349 };
41350 
41351 struct drm_mode_config_helper_funcs {
41352 	void (*atomic_commit_tail)(struct drm_atomic_state *);
41353 	int (*atomic_commit_setup)(struct drm_atomic_state *);
41354 };
41355 
41356 struct dma_buf;
41357 
41358 struct dma_buf_attachment;
41359 
41360 struct drm_ioctl_desc;
41361 
41362 struct drm_driver {
41363 	int (*load)(struct drm_device *, long unsigned int);
41364 	int (*open)(struct drm_device *, struct drm_file *);
41365 	void (*postclose)(struct drm_device *, struct drm_file *);
41366 	void (*lastclose)(struct drm_device *);
41367 	void (*unload)(struct drm_device *);
41368 	void (*release)(struct drm_device *);
41369 	void (*master_set)(struct drm_device *, struct drm_file *, bool);
41370 	void (*master_drop)(struct drm_device *, struct drm_file *);
41371 	void (*debugfs_init)(struct drm_minor *);
41372 	struct drm_gem_object * (*gem_create_object)(struct drm_device *, size_t);
41373 	int (*prime_handle_to_fd)(struct drm_device *, struct drm_file *, uint32_t, uint32_t, int *);
41374 	int (*prime_fd_to_handle)(struct drm_device *, struct drm_file *, int, uint32_t *);
41375 	struct drm_gem_object * (*gem_prime_import)(struct drm_device *, struct dma_buf *);
41376 	struct drm_gem_object * (*gem_prime_import_sg_table)(struct drm_device *, struct dma_buf_attachment *, struct sg_table *);
41377 	int (*gem_prime_mmap)(struct drm_gem_object *, struct vm_area_struct *);
41378 	int (*dumb_create)(struct drm_file *, struct drm_device *, struct drm_mode_create_dumb *);
41379 	int (*dumb_map_offset)(struct drm_file *, struct drm_device *, uint32_t, uint64_t *);
41380 	int (*dumb_destroy)(struct drm_file *, struct drm_device *, uint32_t);
41381 	int major;
41382 	int minor;
41383 	int patchlevel;
41384 	char *name;
41385 	char *desc;
41386 	char *date;
41387 	u32 driver_features;
41388 	const struct drm_ioctl_desc *ioctls;
41389 	int num_ioctls;
41390 	const struct file_operations *fops;
41391 };
41392 
41393 struct drm_minor {
41394 	int index;
41395 	int type;
41396 	struct device *kdev;
41397 	struct drm_device *dev;
41398 	struct dentry *debugfs_root;
41399 	struct list_head debugfs_list;
41400 	struct mutex debugfs_lock;
41401 };
41402 
41403 struct drm_vblank_crtc {
41404 	struct drm_device *dev;
41405 	wait_queue_head_t queue;
41406 	struct timer_list disable_timer;
41407 	seqlock_t seqlock;
41408 	atomic64_t count;
41409 	ktime_t time;
41410 	atomic_t refcount;
41411 	u32 last;
41412 	u32 max_vblank_count;
41413 	unsigned int inmodeset;
41414 	unsigned int pipe;
41415 	int framedur_ns;
41416 	int linedur_ns;
41417 	struct drm_display_mode hwmode;
41418 	bool enabled;
41419 	struct kthread_worker *worker;
41420 	struct list_head pending_work;
41421 	wait_queue_head_t work_wait_queue;
41422 };
41423 
41424 enum drm_color_encoding {
41425 	DRM_COLOR_YCBCR_BT601 = 0,
41426 	DRM_COLOR_YCBCR_BT709 = 1,
41427 	DRM_COLOR_YCBCR_BT2020 = 2,
41428 	DRM_COLOR_ENCODING_MAX = 3,
41429 };
41430 
41431 enum drm_color_range {
41432 	DRM_COLOR_YCBCR_LIMITED_RANGE = 0,
41433 	DRM_COLOR_YCBCR_FULL_RANGE = 1,
41434 	DRM_COLOR_RANGE_MAX = 2,
41435 };
41436 
41437 struct drm_rect {
41438 	int x1;
41439 	int y1;
41440 	int x2;
41441 	int y2;
41442 };
41443 
41444 enum drm_scaling_filter {
41445 	DRM_SCALING_FILTER_DEFAULT = 0,
41446 	DRM_SCALING_FILTER_NEAREST_NEIGHBOR = 1,
41447 };
41448 
41449 struct drm_plane_state {
41450 	struct drm_plane *plane;
41451 	struct drm_crtc *crtc;
41452 	struct drm_framebuffer *fb;
41453 	struct dma_fence *fence;
41454 	int32_t crtc_x;
41455 	int32_t crtc_y;
41456 	uint32_t crtc_w;
41457 	uint32_t crtc_h;
41458 	uint32_t src_x;
41459 	uint32_t src_y;
41460 	uint32_t src_h;
41461 	uint32_t src_w;
41462 	u16 alpha;
41463 	uint16_t pixel_blend_mode;
41464 	unsigned int rotation;
41465 	unsigned int zpos;
41466 	unsigned int normalized_zpos;
41467 	enum drm_color_encoding color_encoding;
41468 	enum drm_color_range color_range;
41469 	struct drm_property_blob *fb_damage_clips;
41470 	struct drm_rect src;
41471 	struct drm_rect dst;
41472 	bool visible;
41473 	enum drm_scaling_filter scaling_filter;
41474 	struct drm_crtc_commit *commit;
41475 	struct drm_atomic_state *state;
41476 };
41477 
41478 enum drm_plane_type {
41479 	DRM_PLANE_TYPE_OVERLAY = 0,
41480 	DRM_PLANE_TYPE_PRIMARY = 1,
41481 	DRM_PLANE_TYPE_CURSOR = 2,
41482 };
41483 
41484 struct drm_plane_funcs;
41485 
41486 struct drm_plane_helper_funcs;
41487 
41488 struct drm_plane {
41489 	struct drm_device *dev;
41490 	struct list_head head;
41491 	char *name;
41492 	struct drm_modeset_lock mutex;
41493 	struct drm_mode_object base;
41494 	uint32_t possible_crtcs;
41495 	uint32_t *format_types;
41496 	unsigned int format_count;
41497 	bool format_default;
41498 	uint64_t *modifiers;
41499 	unsigned int modifier_count;
41500 	struct drm_crtc *crtc;
41501 	struct drm_framebuffer *fb;
41502 	struct drm_framebuffer *old_fb;
41503 	const struct drm_plane_funcs *funcs;
41504 	struct drm_object_properties properties;
41505 	enum drm_plane_type type;
41506 	unsigned int index;
41507 	const struct drm_plane_helper_funcs *helper_private;
41508 	struct drm_plane_state *state;
41509 	struct drm_property *alpha_property;
41510 	struct drm_property *zpos_property;
41511 	struct drm_property *rotation_property;
41512 	struct drm_property *blend_mode_property;
41513 	struct drm_property *color_encoding_property;
41514 	struct drm_property *color_range_property;
41515 	struct drm_property *scaling_filter_property;
41516 };
41517 
41518 struct drm_plane_funcs {
41519 	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 *);
41520 	int (*disable_plane)(struct drm_plane *, struct drm_modeset_acquire_ctx *);
41521 	void (*destroy)(struct drm_plane *);
41522 	void (*reset)(struct drm_plane *);
41523 	int (*set_property)(struct drm_plane *, struct drm_property *, uint64_t);
41524 	struct drm_plane_state * (*atomic_duplicate_state)(struct drm_plane *);
41525 	void (*atomic_destroy_state)(struct drm_plane *, struct drm_plane_state *);
41526 	int (*atomic_set_property)(struct drm_plane *, struct drm_plane_state *, struct drm_property *, uint64_t);
41527 	int (*atomic_get_property)(struct drm_plane *, const struct drm_plane_state *, struct drm_property *, uint64_t *);
41528 	int (*late_register)(struct drm_plane *);
41529 	void (*early_unregister)(struct drm_plane *);
41530 	void (*atomic_print_state)(struct drm_printer *, const struct drm_plane_state *);
41531 	bool (*format_mod_supported)(struct drm_plane *, uint32_t, uint64_t);
41532 };
41533 
41534 struct drm_plane_helper_funcs {
41535 	int (*prepare_fb)(struct drm_plane *, struct drm_plane_state *);
41536 	void (*cleanup_fb)(struct drm_plane *, struct drm_plane_state *);
41537 	int (*begin_fb_access)(struct drm_plane *, struct drm_plane_state *);
41538 	void (*end_fb_access)(struct drm_plane *, struct drm_plane_state *);
41539 	int (*atomic_check)(struct drm_plane *, struct drm_atomic_state *);
41540 	void (*atomic_update)(struct drm_plane *, struct drm_atomic_state *);
41541 	void (*atomic_disable)(struct drm_plane *, struct drm_atomic_state *);
41542 	int (*atomic_async_check)(struct drm_plane *, struct drm_atomic_state *);
41543 	void (*atomic_async_update)(struct drm_plane *, struct drm_atomic_state *);
41544 };
41545 
41546 struct drm_crtc_crc_entry {
41547 	bool has_frame_counter;
41548 	uint32_t frame;
41549 	uint32_t crcs[10];
41550 };
41551 
41552 struct drm_crtc_state {
41553 	struct drm_crtc *crtc;
41554 	bool enable;
41555 	bool active;
41556 	bool planes_changed: 1;
41557 	bool mode_changed: 1;
41558 	bool active_changed: 1;
41559 	bool connectors_changed: 1;
41560 	bool zpos_changed: 1;
41561 	bool color_mgmt_changed: 1;
41562 	bool no_vblank: 1;
41563 	u32 plane_mask;
41564 	u32 connector_mask;
41565 	u32 encoder_mask;
41566 	struct drm_display_mode adjusted_mode;
41567 	struct drm_display_mode mode;
41568 	struct drm_property_blob *mode_blob;
41569 	struct drm_property_blob *degamma_lut;
41570 	struct drm_property_blob *ctm;
41571 	struct drm_property_blob *gamma_lut;
41572 	u32 target_vblank;
41573 	bool async_flip;
41574 	bool vrr_enabled;
41575 	bool self_refresh_active;
41576 	enum drm_scaling_filter scaling_filter;
41577 	struct drm_pending_vblank_event *event;
41578 	struct drm_crtc_commit *commit;
41579 	struct drm_atomic_state *state;
41580 };
41581 
41582 struct drm_pending_event {
41583 	struct completion *completion;
41584 	void (*completion_release)(struct completion *);
41585 	struct drm_event *event;
41586 	struct dma_fence *fence;
41587 	struct drm_file *file_priv;
41588 	struct list_head link;
41589 	struct list_head pending_link;
41590 };
41591 
41592 struct drm_pending_vblank_event {
41593 	struct drm_pending_event base;
41594 	unsigned int pipe;
41595 	u64 sequence;
41596 	union {
41597 		struct drm_event base;
41598 		struct drm_event_vblank vbl;
41599 		struct drm_event_crtc_sequence seq;
41600 	} event;
41601 };
41602 
41603 struct drm_mode_set;
41604 
41605 struct drm_crtc_funcs {
41606 	void (*reset)(struct drm_crtc *);
41607 	int (*cursor_set)(struct drm_crtc *, struct drm_file *, uint32_t, uint32_t, uint32_t);
41608 	int (*cursor_set2)(struct drm_crtc *, struct drm_file *, uint32_t, uint32_t, uint32_t, int32_t, int32_t);
41609 	int (*cursor_move)(struct drm_crtc *, int, int);
41610 	int (*gamma_set)(struct drm_crtc *, u16 *, u16 *, u16 *, uint32_t, struct drm_modeset_acquire_ctx *);
41611 	void (*destroy)(struct drm_crtc *);
41612 	int (*set_config)(struct drm_mode_set *, struct drm_modeset_acquire_ctx *);
41613 	int (*page_flip)(struct drm_crtc *, struct drm_framebuffer *, struct drm_pending_vblank_event *, uint32_t, struct drm_modeset_acquire_ctx *);
41614 	int (*page_flip_target)(struct drm_crtc *, struct drm_framebuffer *, struct drm_pending_vblank_event *, uint32_t, uint32_t, struct drm_modeset_acquire_ctx *);
41615 	int (*set_property)(struct drm_crtc *, struct drm_property *, uint64_t);
41616 	struct drm_crtc_state * (*atomic_duplicate_state)(struct drm_crtc *);
41617 	void (*atomic_destroy_state)(struct drm_crtc *, struct drm_crtc_state *);
41618 	int (*atomic_set_property)(struct drm_crtc *, struct drm_crtc_state *, struct drm_property *, uint64_t);
41619 	int (*atomic_get_property)(struct drm_crtc *, const struct drm_crtc_state *, struct drm_property *, uint64_t *);
41620 	int (*late_register)(struct drm_crtc *);
41621 	void (*early_unregister)(struct drm_crtc *);
41622 	int (*set_crc_source)(struct drm_crtc *, const char *);
41623 	int (*verify_crc_source)(struct drm_crtc *, const char *, size_t *);
41624 	const char * const * (*get_crc_sources)(struct drm_crtc *, size_t *);
41625 	void (*atomic_print_state)(struct drm_printer *, const struct drm_crtc_state *);
41626 	u32 (*get_vblank_counter)(struct drm_crtc *);
41627 	int (*enable_vblank)(struct drm_crtc *);
41628 	void (*disable_vblank)(struct drm_crtc *);
41629 	bool (*get_vblank_timestamp)(struct drm_crtc *, int *, ktime_t *, bool);
41630 };
41631 
41632 struct drm_mode_set {
41633 	struct drm_framebuffer *fb;
41634 	struct drm_crtc *crtc;
41635 	struct drm_display_mode *mode;
41636 	uint32_t x;
41637 	uint32_t y;
41638 	struct drm_connector **connectors;
41639 	size_t num_connectors;
41640 };
41641 
41642 enum mode_set_atomic;
41643 
41644 struct drm_crtc_helper_funcs {
41645 	void (*dpms)(struct drm_crtc *, int);
41646 	void (*prepare)(struct drm_crtc *);
41647 	void (*commit)(struct drm_crtc *);
41648 	enum drm_mode_status (*mode_valid)(struct drm_crtc *, const struct drm_display_mode *);
41649 	bool (*mode_fixup)(struct drm_crtc *, const struct drm_display_mode *, struct drm_display_mode *);
41650 	int (*mode_set)(struct drm_crtc *, struct drm_display_mode *, struct drm_display_mode *, int, int, struct drm_framebuffer *);
41651 	void (*mode_set_nofb)(struct drm_crtc *);
41652 	int (*mode_set_base)(struct drm_crtc *, int, int, struct drm_framebuffer *);
41653 	int (*mode_set_base_atomic)(struct drm_crtc *, struct drm_framebuffer *, int, int, enum mode_set_atomic);
41654 	void (*disable)(struct drm_crtc *);
41655 	int (*atomic_check)(struct drm_crtc *, struct drm_atomic_state *);
41656 	void (*atomic_begin)(struct drm_crtc *, struct drm_atomic_state *);
41657 	void (*atomic_flush)(struct drm_crtc *, struct drm_atomic_state *);
41658 	void (*atomic_enable)(struct drm_crtc *, struct drm_atomic_state *);
41659 	void (*atomic_disable)(struct drm_crtc *, struct drm_atomic_state *);
41660 	bool (*get_scanout_position)(struct drm_crtc *, bool, int *, int *, ktime_t *, ktime_t *, const struct drm_display_mode *);
41661 };
41662 
41663 struct __drm_planes_state {
41664 	struct drm_plane *ptr;
41665 	struct drm_plane_state *state;
41666 	struct drm_plane_state *old_state;
41667 	struct drm_plane_state *new_state;
41668 };
41669 
41670 struct __drm_crtcs_state {
41671 	struct drm_crtc *ptr;
41672 	struct drm_crtc_state *state;
41673 	struct drm_crtc_state *old_state;
41674 	struct drm_crtc_state *new_state;
41675 	struct drm_crtc_commit *commit;
41676 	s32 *out_fence_ptr;
41677 	u64 last_vblank_count;
41678 };
41679 
41680 struct __drm_connnectors_state {
41681 	struct drm_connector *ptr;
41682 	struct drm_connector_state *state;
41683 	struct drm_connector_state *old_state;
41684 	struct drm_connector_state *new_state;
41685 	s32 *out_fence_ptr;
41686 };
41687 
41688 struct drm_private_state;
41689 
41690 struct drm_private_obj;
41691 
41692 struct drm_private_state_funcs {
41693 	struct drm_private_state * (*atomic_duplicate_state)(struct drm_private_obj *);
41694 	void (*atomic_destroy_state)(struct drm_private_obj *, struct drm_private_state *);
41695 	void (*atomic_print_state)(struct drm_printer *, const struct drm_private_state *);
41696 };
41697 
41698 struct drm_private_state {
41699 	struct drm_atomic_state *state;
41700 	struct drm_private_obj *obj;
41701 };
41702 
41703 struct drm_private_obj {
41704 	struct list_head head;
41705 	struct drm_modeset_lock lock;
41706 	struct drm_private_state *state;
41707 	const struct drm_private_state_funcs *funcs;
41708 };
41709 
41710 struct __drm_private_objs_state {
41711 	struct drm_private_obj *ptr;
41712 	struct drm_private_state *state;
41713 	struct drm_private_state *old_state;
41714 	struct drm_private_state *new_state;
41715 };
41716 
41717 struct drm_bus_cfg {
41718 	u32 format;
41719 	u32 flags;
41720 };
41721 
41722 struct drm_bridge;
41723 
41724 struct drm_bridge_state {
41725 	struct drm_private_state base;
41726 	struct drm_bridge *bridge;
41727 	struct drm_bus_cfg input_bus_cfg;
41728 	struct drm_bus_cfg output_bus_cfg;
41729 };
41730 
41731 enum drm_bridge_ops {
41732 	DRM_BRIDGE_OP_DETECT = 1,
41733 	DRM_BRIDGE_OP_EDID = 2,
41734 	DRM_BRIDGE_OP_HPD = 4,
41735 	DRM_BRIDGE_OP_MODES = 8,
41736 };
41737 
41738 struct drm_bridge_timings;
41739 
41740 struct drm_bridge_funcs;
41741 
41742 struct drm_bridge {
41743 	struct drm_private_obj base;
41744 	struct drm_device *dev;
41745 	struct drm_encoder *encoder;
41746 	struct list_head chain_node;
41747 	struct device_node *of_node;
41748 	struct list_head list;
41749 	const struct drm_bridge_timings *timings;
41750 	const struct drm_bridge_funcs *funcs;
41751 	void *driver_private;
41752 	enum drm_bridge_ops ops;
41753 	int type;
41754 	bool interlace_allowed;
41755 	struct i2c_adapter *ddc;
41756 	struct mutex hpd_mutex;
41757 	void (*hpd_cb)(void *, enum drm_connector_status);
41758 	void *hpd_data;
41759 };
41760 
41761 struct drm_encoder_funcs {
41762 	void (*reset)(struct drm_encoder *);
41763 	void (*destroy)(struct drm_encoder *);
41764 	int (*late_register)(struct drm_encoder *);
41765 	void (*early_unregister)(struct drm_encoder *);
41766 };
41767 
41768 struct drm_encoder_helper_funcs {
41769 	void (*dpms)(struct drm_encoder *, int);
41770 	enum drm_mode_status (*mode_valid)(struct drm_encoder *, const struct drm_display_mode *);
41771 	bool (*mode_fixup)(struct drm_encoder *, const struct drm_display_mode *, struct drm_display_mode *);
41772 	void (*prepare)(struct drm_encoder *);
41773 	void (*commit)(struct drm_encoder *);
41774 	void (*mode_set)(struct drm_encoder *, struct drm_display_mode *, struct drm_display_mode *);
41775 	void (*atomic_mode_set)(struct drm_encoder *, struct drm_crtc_state *, struct drm_connector_state *);
41776 	enum drm_connector_status (*detect)(struct drm_encoder *, struct drm_connector *);
41777 	void (*atomic_disable)(struct drm_encoder *, struct drm_atomic_state *);
41778 	void (*atomic_enable)(struct drm_encoder *, struct drm_atomic_state *);
41779 	void (*disable)(struct drm_encoder *);
41780 	void (*enable)(struct drm_encoder *);
41781 	int (*atomic_check)(struct drm_encoder *, struct drm_crtc_state *, struct drm_connector_state *);
41782 };
41783 
41784 enum drm_bridge_attach_flags {
41785 	DRM_BRIDGE_ATTACH_NO_CONNECTOR = 1,
41786 };
41787 
41788 struct edid;
41789 
41790 struct drm_bridge_funcs {
41791 	int (*attach)(struct drm_bridge *, enum drm_bridge_attach_flags);
41792 	void (*detach)(struct drm_bridge *);
41793 	enum drm_mode_status (*mode_valid)(struct drm_bridge *, const struct drm_display_info *, const struct drm_display_mode *);
41794 	bool (*mode_fixup)(struct drm_bridge *, const struct drm_display_mode *, struct drm_display_mode *);
41795 	void (*disable)(struct drm_bridge *);
41796 	void (*post_disable)(struct drm_bridge *);
41797 	void (*mode_set)(struct drm_bridge *, const struct drm_display_mode *, const struct drm_display_mode *);
41798 	void (*pre_enable)(struct drm_bridge *);
41799 	void (*enable)(struct drm_bridge *);
41800 	void (*atomic_pre_enable)(struct drm_bridge *, struct drm_bridge_state *);
41801 	void (*atomic_enable)(struct drm_bridge *, struct drm_bridge_state *);
41802 	void (*atomic_disable)(struct drm_bridge *, struct drm_bridge_state *);
41803 	void (*atomic_post_disable)(struct drm_bridge *, struct drm_bridge_state *);
41804 	struct drm_bridge_state * (*atomic_duplicate_state)(struct drm_bridge *);
41805 	void (*atomic_destroy_state)(struct drm_bridge *, struct drm_bridge_state *);
41806 	u32 * (*atomic_get_output_bus_fmts)(struct drm_bridge *, struct drm_bridge_state *, struct drm_crtc_state *, struct drm_connector_state *, unsigned int *);
41807 	u32 * (*atomic_get_input_bus_fmts)(struct drm_bridge *, struct drm_bridge_state *, struct drm_crtc_state *, struct drm_connector_state *, u32, unsigned int *);
41808 	int (*atomic_check)(struct drm_bridge *, struct drm_bridge_state *, struct drm_crtc_state *, struct drm_connector_state *);
41809 	struct drm_bridge_state * (*atomic_reset)(struct drm_bridge *);
41810 	enum drm_connector_status (*detect)(struct drm_bridge *);
41811 	int (*get_modes)(struct drm_bridge *, struct drm_connector *);
41812 	struct edid * (*get_edid)(struct drm_bridge *, struct drm_connector *);
41813 	void (*hpd_notify)(struct drm_bridge *, enum drm_connector_status);
41814 	void (*hpd_enable)(struct drm_bridge *);
41815 	void (*hpd_disable)(struct drm_bridge *);
41816 	void (*debugfs_init)(struct drm_bridge *, struct dentry *);
41817 };
41818 
41819 struct drm_bridge_timings {
41820 	u32 input_bus_flags;
41821 	u32 setup_time_ps;
41822 	u32 hold_time_ps;
41823 	bool dual_link;
41824 };
41825 
41826 struct drm_info_list {
41827 	const char *name;
41828 	int (*show)(struct seq_file *, void *);
41829 	u32 driver_features;
41830 	void *data;
41831 };
41832 
41833 struct drm_info_node {
41834 	struct drm_minor *minor;
41835 	const struct drm_info_list *info_ent;
41836 	struct list_head list;
41837 	struct dentry *dent;
41838 };
41839 
41840 enum drm_driver_feature {
41841 	DRIVER_GEM = 1,
41842 	DRIVER_MODESET = 2,
41843 	DRIVER_RENDER = 8,
41844 	DRIVER_ATOMIC = 16,
41845 	DRIVER_SYNCOBJ = 32,
41846 	DRIVER_SYNCOBJ_TIMELINE = 64,
41847 	DRIVER_COMPUTE_ACCEL = 128,
41848 	DRIVER_USE_AGP = 33554432,
41849 	DRIVER_LEGACY = 67108864,
41850 	DRIVER_PCI_DMA = 134217728,
41851 	DRIVER_SG = 268435456,
41852 	DRIVER_HAVE_DMA = 536870912,
41853 	DRIVER_HAVE_IRQ = 1073741824,
41854 	DRIVER_KMS_LEGACY_CONTEXT = 2147483648,
41855 };
41856 
41857 enum drm_ioctl_flags {
41858 	DRM_AUTH = 1,
41859 	DRM_MASTER = 2,
41860 	DRM_ROOT_ONLY = 4,
41861 	DRM_UNLOCKED = 16,
41862 	DRM_RENDER_ALLOW = 32,
41863 };
41864 
41865 typedef int drm_ioctl_t(struct drm_device *, void *, struct drm_file *);
41866 
41867 struct drm_ioctl_desc {
41868 	unsigned int cmd;
41869 	enum drm_ioctl_flags flags;
41870 	drm_ioctl_t *func;
41871 	const char *name;
41872 };
41873 
41874 struct drm_framebuffer_funcs {
41875 	void (*destroy)(struct drm_framebuffer *);
41876 	int (*create_handle)(struct drm_framebuffer *, struct drm_file *, unsigned int *);
41877 	int (*dirty)(struct drm_framebuffer *, struct drm_file *, unsigned int, unsigned int, struct drm_clip_rect *, unsigned int);
41878 };
41879 
41880 enum drm_debug_category {
41881 	DRM_UT_CORE = 0,
41882 	DRM_UT_DRIVER = 1,
41883 	DRM_UT_KMS = 2,
41884 	DRM_UT_PRIME = 3,
41885 	DRM_UT_ATOMIC = 4,
41886 	DRM_UT_VBL = 5,
41887 	DRM_UT_STATE = 6,
41888 	DRM_UT_LEASE = 7,
41889 	DRM_UT_DP = 8,
41890 	DRM_UT_DRMRES = 9,
41891 };
41892 
41893 struct drm_writeback_connector {
41894 	struct drm_connector base;
41895 	struct drm_encoder encoder;
41896 	struct drm_property_blob *pixel_formats_blob_ptr;
41897 	spinlock_t job_lock;
41898 	struct list_head job_queue;
41899 	unsigned int fence_context;
41900 	spinlock_t fence_lock;
41901 	long unsigned int fence_seqno;
41902 	char timeline_name[32];
41903 };
41904 
41905 struct drm_mode_modeinfo {
41906 	__u32 clock;
41907 	__u16 hdisplay;
41908 	__u16 hsync_start;
41909 	__u16 hsync_end;
41910 	__u16 htotal;
41911 	__u16 hskew;
41912 	__u16 vdisplay;
41913 	__u16 vsync_start;
41914 	__u16 vsync_end;
41915 	__u16 vtotal;
41916 	__u16 vscan;
41917 	__u32 vrefresh;
41918 	__u32 flags;
41919 	__u32 type;
41920 	char name[32];
41921 };
41922 
41923 struct drm_mode_get_connector {
41924 	__u64 encoders_ptr;
41925 	__u64 modes_ptr;
41926 	__u64 props_ptr;
41927 	__u64 prop_values_ptr;
41928 	__u32 count_modes;
41929 	__u32 count_props;
41930 	__u32 count_encoders;
41931 	__u32 encoder_id;
41932 	__u32 connector_id;
41933 	__u32 connector_type;
41934 	__u32 connector_type_id;
41935 	__u32 connection;
41936 	__u32 mm_width;
41937 	__u32 mm_height;
41938 	__u32 subpixel;
41939 	__u32 pad;
41940 };
41941 
41942 struct drm_mode_connector_set_property {
41943 	__u64 value;
41944 	__u32 prop_id;
41945 	__u32 connector_id;
41946 };
41947 
41948 struct drm_mode_obj_set_property {
41949 	__u64 value;
41950 	__u32 prop_id;
41951 	__u32 obj_id;
41952 	__u32 obj_type;
41953 };
41954 
41955 struct i2c_algorithm;
41956 
41957 struct i2c_lock_operations;
41958 
41959 struct i2c_bus_recovery_info;
41960 
41961 struct i2c_adapter_quirks;
41962 
41963 struct i2c_adapter {
41964 	struct module *owner;
41965 	unsigned int class;
41966 	const struct i2c_algorithm *algo;
41967 	void *algo_data;
41968 	const struct i2c_lock_operations *lock_ops;
41969 	struct rt_mutex bus_lock;
41970 	struct rt_mutex mux_lock;
41971 	int timeout;
41972 	int retries;
41973 	struct device dev;
41974 	long unsigned int locked_flags;
41975 	int nr;
41976 	char name[48];
41977 	struct completion dev_released;
41978 	struct mutex userspace_clients_lock;
41979 	struct list_head userspace_clients;
41980 	struct i2c_bus_recovery_info *bus_recovery_info;
41981 	const struct i2c_adapter_quirks *quirks;
41982 	struct irq_domain *host_notify_domain;
41983 	struct regulator *bus_regulator;
41984 };
41985 
41986 struct drm_prop_enum_list {
41987 	int type;
41988 	const char *name;
41989 };
41990 
41991 typedef void (*drmres_release_t)(struct drm_device *, void *);
41992 
41993 struct display_timing;
41994 
41995 struct drm_panel;
41996 
41997 struct drm_panel_funcs {
41998 	int (*prepare)(struct drm_panel *);
41999 	int (*enable)(struct drm_panel *);
42000 	int (*disable)(struct drm_panel *);
42001 	int (*unprepare)(struct drm_panel *);
42002 	int (*get_modes)(struct drm_panel *, struct drm_connector *);
42003 	enum drm_panel_orientation (*get_orientation)(struct drm_panel *);
42004 	int (*get_timings)(struct drm_panel *, unsigned int, struct display_timing *);
42005 	void (*debugfs_init)(struct drm_panel *, struct dentry *);
42006 };
42007 
42008 struct drm_panel {
42009 	struct device *dev;
42010 	struct backlight_device *backlight;
42011 	const struct drm_panel_funcs *funcs;
42012 	int connector_type;
42013 	struct list_head list;
42014 };
42015 
42016 struct i2c_msg {
42017 	__u16 addr;
42018 	__u16 flags;
42019 	__u16 len;
42020 	__u8 *buf;
42021 };
42022 
42023 union i2c_smbus_data {
42024 	__u8 byte;
42025 	__u16 word;
42026 	__u8 block[34];
42027 };
42028 
42029 struct i2c_algorithm {
42030 	int (*master_xfer)(struct i2c_adapter *, struct i2c_msg *, int);
42031 	int (*master_xfer_atomic)(struct i2c_adapter *, struct i2c_msg *, int);
42032 	int (*smbus_xfer)(struct i2c_adapter *, u16, short unsigned int, char, u8, int, union i2c_smbus_data *);
42033 	int (*smbus_xfer_atomic)(struct i2c_adapter *, u16, short unsigned int, char, u8, int, union i2c_smbus_data *);
42034 	u32 (*functionality)(struct i2c_adapter *);
42035 };
42036 
42037 struct i2c_lock_operations {
42038 	void (*lock_bus)(struct i2c_adapter *, unsigned int);
42039 	int (*trylock_bus)(struct i2c_adapter *, unsigned int);
42040 	void (*unlock_bus)(struct i2c_adapter *, unsigned int);
42041 };
42042 
42043 struct pinctrl;
42044 
42045 struct pinctrl_state;
42046 
42047 struct i2c_bus_recovery_info {
42048 	int (*recover_bus)(struct i2c_adapter *);
42049 	int (*get_scl)(struct i2c_adapter *);
42050 	void (*set_scl)(struct i2c_adapter *, int);
42051 	int (*get_sda)(struct i2c_adapter *);
42052 	void (*set_sda)(struct i2c_adapter *, int);
42053 	int (*get_bus_free)(struct i2c_adapter *);
42054 	void (*prepare_recovery)(struct i2c_adapter *);
42055 	void (*unprepare_recovery)(struct i2c_adapter *);
42056 	struct gpio_desc *scl_gpiod;
42057 	struct gpio_desc *sda_gpiod;
42058 	struct pinctrl *pinctrl;
42059 	struct pinctrl_state *pins_default;
42060 	struct pinctrl_state *pins_gpio;
42061 };
42062 
42063 struct i2c_adapter_quirks {
42064 	u64 flags;
42065 	int max_num_msgs;
42066 	u16 max_write_len;
42067 	u16 max_read_len;
42068 	u16 max_comb_1st_msg_len;
42069 	u16 max_comb_2nd_msg_len;
42070 };
42071 
42072 struct drm_conn_prop_enum_list {
42073 	int type;
42074 	const char *name;
42075 	struct ida ida;
42076 };
42077 
42078 struct drm_mode_get_encoder {
42079 	__u32 encoder_id;
42080 	__u32 encoder_type;
42081 	__u32 crtc_id;
42082 	__u32 possible_crtcs;
42083 	__u32 possible_clones;
42084 };
42085 
42086 struct iosys_map {
42087 	union {
42088 		void *vaddr_iomem;
42089 		void *vaddr;
42090 	};
42091 	bool is_iomem;
42092 };
42093 
42094 struct radix_tree_preload {
42095 	local_lock_t lock;
42096 	unsigned int nr;
42097 	struct xa_node *nodes;
42098 };
42099 
42100 struct dma_fence_cb;
42101 
42102 typedef void (*dma_fence_func_t)(struct dma_fence *, struct dma_fence_cb *);
42103 
42104 struct dma_fence_cb {
42105 	struct list_head node;
42106 	dma_fence_func_t func;
42107 };
42108 
42109 struct dma_buf_ops {
42110 	bool cache_sgt_mapping;
42111 	int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
42112 	void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
42113 	int (*pin)(struct dma_buf_attachment *);
42114 	void (*unpin)(struct dma_buf_attachment *);
42115 	struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
42116 	void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
42117 	void (*release)(struct dma_buf *);
42118 	int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
42119 	int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
42120 	int (*mmap)(struct dma_buf *, struct vm_area_struct *);
42121 	int (*vmap)(struct dma_buf *, struct iosys_map *);
42122 	void (*vunmap)(struct dma_buf *, struct iosys_map *);
42123 };
42124 
42125 struct dma_buf_poll_cb_t {
42126 	struct dma_fence_cb cb;
42127 	wait_queue_head_t *poll;
42128 	__poll_t active;
42129 };
42130 
42131 struct dma_resv;
42132 
42133 struct dma_buf {
42134 	size_t size;
42135 	struct file *file;
42136 	struct list_head attachments;
42137 	const struct dma_buf_ops *ops;
42138 	unsigned int vmapping_counter;
42139 	struct iosys_map vmap_ptr;
42140 	const char *exp_name;
42141 	const char *name;
42142 	spinlock_t name_lock;
42143 	struct module *owner;
42144 	struct list_head list_node;
42145 	void *priv;
42146 	struct dma_resv *resv;
42147 	wait_queue_head_t poll;
42148 	struct dma_buf_poll_cb_t cb_in;
42149 	struct dma_buf_poll_cb_t cb_out;
42150 };
42151 
42152 struct dma_buf_attach_ops;
42153 
42154 struct dma_buf_attachment {
42155 	struct dma_buf *dmabuf;
42156 	struct device *dev;
42157 	struct list_head node;
42158 	struct sg_table *sgt;
42159 	enum dma_data_direction dir;
42160 	bool peer2peer;
42161 	const struct dma_buf_attach_ops *importer_ops;
42162 	void *importer_priv;
42163 	void *priv;
42164 };
42165 
42166 struct dma_resv_list;
42167 
42168 struct dma_resv {
42169 	struct ww_mutex lock;
42170 	struct dma_resv_list *fences;
42171 };
42172 
42173 struct dma_buf_attach_ops {
42174 	bool allow_peer2peer;
42175 	void (*move_notify)(struct dma_buf_attachment *);
42176 };
42177 
42178 struct drm_gem_close {
42179 	__u32 handle;
42180 	__u32 pad;
42181 };
42182 
42183 struct drm_gem_flink {
42184 	__u32 handle;
42185 	__u32 name;
42186 };
42187 
42188 struct drm_gem_open {
42189 	__u32 name;
42190 	__u32 handle;
42191 	__u64 size;
42192 };
42193 
42194 struct ww_class {
42195 	atomic_long_t stamp;
42196 	struct lock_class_key acquire_key;
42197 	struct lock_class_key mutex_key;
42198 	const char *acquire_name;
42199 	const char *mutex_name;
42200 	unsigned int is_wait_die;
42201 };
42202 
42203 struct drm_mm;
42204 
42205 struct drm_mm_node {
42206 	long unsigned int color;
42207 	u64 start;
42208 	u64 size;
42209 	struct drm_mm *mm;
42210 	struct list_head node_list;
42211 	struct list_head hole_stack;
42212 	struct rb_node rb;
42213 	struct rb_node rb_hole_size;
42214 	struct rb_node rb_hole_addr;
42215 	u64 __subtree_last;
42216 	u64 hole_size;
42217 	u64 subtree_max_hole;
42218 	long unsigned int flags;
42219 };
42220 
42221 struct drm_mm {
42222 	void (*color_adjust)(const struct drm_mm_node *, long unsigned int, u64 *, u64 *);
42223 	struct list_head hole_stack;
42224 	struct drm_mm_node head_node;
42225 	struct rb_root_cached interval_tree;
42226 	struct rb_root_cached holes_size;
42227 	struct rb_root holes_addr;
42228 	long unsigned int scan_active;
42229 };
42230 
42231 struct drm_vma_offset_manager {
42232 	rwlock_t vm_lock;
42233 	struct drm_mm vm_addr_space_mm;
42234 };
42235 
42236 struct drm_vma_offset_node {
42237 	rwlock_t vm_lock;
42238 	struct drm_mm_node vm_node;
42239 	struct rb_root vm_files;
42240 	void *driver_private;
42241 };
42242 
42243 struct drm_gem_object_funcs;
42244 
42245 struct drm_gem_lru;
42246 
42247 struct drm_gem_object {
42248 	struct kref refcount;
42249 	unsigned int handle_count;
42250 	struct drm_device *dev;
42251 	struct file *filp;
42252 	struct drm_vma_offset_node vma_node;
42253 	size_t size;
42254 	int name;
42255 	struct dma_buf *dma_buf;
42256 	struct dma_buf_attachment *import_attach;
42257 	struct dma_resv *resv;
42258 	struct dma_resv _resv;
42259 	const struct drm_gem_object_funcs *funcs;
42260 	struct list_head lru_node;
42261 	struct drm_gem_lru *lru;
42262 };
42263 
42264 enum dma_resv_usage {
42265 	DMA_RESV_USAGE_KERNEL = 0,
42266 	DMA_RESV_USAGE_WRITE = 1,
42267 	DMA_RESV_USAGE_READ = 2,
42268 	DMA_RESV_USAGE_BOOKKEEP = 3,
42269 };
42270 
42271 struct drm_gem_object_funcs {
42272 	void (*free)(struct drm_gem_object *);
42273 	int (*open)(struct drm_gem_object *, struct drm_file *);
42274 	void (*close)(struct drm_gem_object *, struct drm_file *);
42275 	void (*print_info)(struct drm_printer *, unsigned int, const struct drm_gem_object *);
42276 	struct dma_buf * (*export)(struct drm_gem_object *, int);
42277 	int (*pin)(struct drm_gem_object *);
42278 	void (*unpin)(struct drm_gem_object *);
42279 	struct sg_table * (*get_sg_table)(struct drm_gem_object *);
42280 	int (*vmap)(struct drm_gem_object *, struct iosys_map *);
42281 	void (*vunmap)(struct drm_gem_object *, struct iosys_map *);
42282 	int (*mmap)(struct drm_gem_object *, struct vm_area_struct *);
42283 	const struct vm_operations_struct *vm_ops;
42284 };
42285 
42286 struct drm_gem_lru {
42287 	struct mutex *lock;
42288 	long int count;
42289 	struct list_head list;
42290 };
42291 
42292 struct drm_mode_card_res {
42293 	__u64 fb_id_ptr;
42294 	__u64 crtc_id_ptr;
42295 	__u64 connector_id_ptr;
42296 	__u64 encoder_id_ptr;
42297 	__u32 count_fbs;
42298 	__u32 count_crtcs;
42299 	__u32 count_connectors;
42300 	__u32 count_encoders;
42301 	__u32 min_width;
42302 	__u32 max_width;
42303 	__u32 min_height;
42304 	__u32 max_height;
42305 };
42306 
42307 struct drm_mode_set_plane {
42308 	__u32 plane_id;
42309 	__u32 crtc_id;
42310 	__u32 fb_id;
42311 	__u32 flags;
42312 	__s32 crtc_x;
42313 	__s32 crtc_y;
42314 	__u32 crtc_w;
42315 	__u32 crtc_h;
42316 	__u32 src_x;
42317 	__u32 src_y;
42318 	__u32 src_h;
42319 	__u32 src_w;
42320 };
42321 
42322 struct drm_mode_get_plane {
42323 	__u32 plane_id;
42324 	__u32 crtc_id;
42325 	__u32 fb_id;
42326 	__u32 possible_crtcs;
42327 	__u32 gamma_size;
42328 	__u32 count_format_types;
42329 	__u64 format_type_ptr;
42330 };
42331 
42332 struct drm_mode_get_plane_res {
42333 	__u64 plane_id_ptr;
42334 	__u32 count_planes;
42335 };
42336 
42337 struct drm_mode_cursor {
42338 	__u32 flags;
42339 	__u32 crtc_id;
42340 	__s32 x;
42341 	__s32 y;
42342 	__u32 width;
42343 	__u32 height;
42344 	__u32 handle;
42345 };
42346 
42347 struct drm_mode_cursor2 {
42348 	__u32 flags;
42349 	__u32 crtc_id;
42350 	__s32 x;
42351 	__s32 y;
42352 	__u32 width;
42353 	__u32 height;
42354 	__u32 handle;
42355 	__s32 hot_x;
42356 	__s32 hot_y;
42357 };
42358 
42359 struct drm_mode_crtc_page_flip_target {
42360 	__u32 crtc_id;
42361 	__u32 fb_id;
42362 	__u32 flags;
42363 	__u32 sequence;
42364 	__u64 user_data;
42365 };
42366 
42367 struct drm_format_modifier_blob {
42368 	__u32 version;
42369 	__u32 flags;
42370 	__u32 count_formats;
42371 	__u32 formats_offset;
42372 	__u32 count_modifiers;
42373 	__u32 modifiers_offset;
42374 };
42375 
42376 struct drm_format_modifier {
42377 	__u64 formats;
42378 	__u32 offset;
42379 	__u32 pad;
42380 	__u64 modifier;
42381 };
42382 
42383 struct dma_fence_unwrap {
42384 	struct dma_fence *chain;
42385 	struct dma_fence *array;
42386 	unsigned int index;
42387 };
42388 
42389 enum dma_fence_flag_bits {
42390 	DMA_FENCE_FLAG_SIGNALED_BIT = 0,
42391 	DMA_FENCE_FLAG_TIMESTAMP_BIT = 1,
42392 	DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT = 2,
42393 	DMA_FENCE_FLAG_USER_BITS = 3,
42394 };
42395 
42396 struct sync_file {
42397 	struct file *file;
42398 	char user_name[32];
42399 	struct list_head sync_file_list;
42400 	wait_queue_head_t wq;
42401 	long unsigned int flags;
42402 	struct dma_fence *fence;
42403 	struct dma_fence_cb cb;
42404 };
42405 
42406 struct drm_syncobj_create {
42407 	__u32 handle;
42408 	__u32 flags;
42409 };
42410 
42411 struct drm_syncobj_destroy {
42412 	__u32 handle;
42413 	__u32 pad;
42414 };
42415 
42416 struct drm_syncobj_handle {
42417 	__u32 handle;
42418 	__u32 flags;
42419 	__s32 fd;
42420 	__u32 pad;
42421 };
42422 
42423 struct drm_syncobj_transfer {
42424 	__u32 src_handle;
42425 	__u32 dst_handle;
42426 	__u64 src_point;
42427 	__u64 dst_point;
42428 	__u32 flags;
42429 	__u32 pad;
42430 };
42431 
42432 struct drm_syncobj_wait {
42433 	__u64 handles;
42434 	__s64 timeout_nsec;
42435 	__u32 count_handles;
42436 	__u32 flags;
42437 	__u32 first_signaled;
42438 	__u32 pad;
42439 };
42440 
42441 struct drm_syncobj_timeline_wait {
42442 	__u64 handles;
42443 	__u64 points;
42444 	__s64 timeout_nsec;
42445 	__u32 count_handles;
42446 	__u32 flags;
42447 	__u32 first_signaled;
42448 	__u32 pad;
42449 };
42450 
42451 struct drm_syncobj_array {
42452 	__u64 handles;
42453 	__u32 count_handles;
42454 	__u32 pad;
42455 };
42456 
42457 struct drm_syncobj_timeline_array {
42458 	__u64 handles;
42459 	__u64 points;
42460 	__u32 count_handles;
42461 	__u32 flags;
42462 };
42463 
42464 struct dma_fence_chain {
42465 	struct dma_fence base;
42466 	struct dma_fence *prev;
42467 	u64 prev_seqno;
42468 	struct dma_fence *fence;
42469 	union {
42470 		struct dma_fence_cb cb;
42471 		struct irq_work work;
42472 	};
42473 	spinlock_t lock;
42474 };
42475 
42476 struct drm_syncobj {
42477 	struct kref refcount;
42478 	struct dma_fence *fence;
42479 	struct list_head cb_list;
42480 	spinlock_t lock;
42481 	struct file *file;
42482 };
42483 
42484 struct syncobj_wait_entry {
42485 	struct list_head node;
42486 	struct task_struct *task;
42487 	struct dma_fence *fence;
42488 	struct dma_fence_cb fence_cb;
42489 	u64 point;
42490 };
42491 
42492 struct component_ops {
42493 	int (*bind)(struct device *, struct device *, void *);
42494 	void (*unbind)(struct device *, struct device *, void *);
42495 };
42496 
42497 struct component_master_ops {
42498 	int (*bind)(struct device *);
42499 	void (*unbind)(struct device *);
42500 };
42501 
42502 struct component;
42503 
42504 struct component_match_array {
42505 	void *data;
42506 	int (*compare)(struct device *, void *);
42507 	int (*compare_typed)(struct device *, int, void *);
42508 	void (*release)(struct device *, void *);
42509 	struct component *component;
42510 	bool duplicate;
42511 };
42512 
42513 struct aggregate_device;
42514 
42515 struct component {
42516 	struct list_head node;
42517 	struct aggregate_device *adev;
42518 	bool bound;
42519 	const struct component_ops *ops;
42520 	int subcomponent;
42521 	struct device *dev;
42522 };
42523 
42524 struct component_match {
42525 	size_t alloc;
42526 	size_t num;
42527 	struct component_match_array *compare;
42528 };
42529 
42530 struct aggregate_device {
42531 	struct list_head node;
42532 	bool bound;
42533 	const struct component_master_ops *ops;
42534 	struct device *parent;
42535 	struct component_match *match;
42536 };
42537 
42538 struct klist_node;
42539 
42540 struct klist {
42541 	spinlock_t k_lock;
42542 	struct list_head k_list;
42543 	void (*get)(struct klist_node *);
42544 	void (*put)(struct klist_node *);
42545 };
42546 
42547 struct klist_node {
42548 	void *n_klist;
42549 	struct list_head n_node;
42550 	struct kref n_ref;
42551 };
42552 
42553 struct wake_irq {
42554 	struct device *dev;
42555 	unsigned int status;
42556 	int irq;
42557 	const char *name;
42558 };
42559 
42560 struct subsys_private {
42561 	struct kset subsys;
42562 	struct kset *devices_kset;
42563 	struct list_head interfaces;
42564 	struct mutex mutex;
42565 	struct kset *drivers_kset;
42566 	struct klist klist_devices;
42567 	struct klist klist_drivers;
42568 	struct blocking_notifier_head bus_notifier;
42569 	unsigned int drivers_autoprobe: 1;
42570 	struct bus_type *bus;
42571 	struct kset glue_dirs;
42572 	struct class *class;
42573 };
42574 
42575 struct driver_private {
42576 	struct kobject kobj;
42577 	struct klist klist_devices;
42578 	struct klist_node knode_bus;
42579 	struct module_kobject *mkobj;
42580 	struct device_driver *driver;
42581 };
42582 
42583 struct device_private {
42584 	struct klist klist_children;
42585 	struct klist_node knode_parent;
42586 	struct klist_node knode_driver;
42587 	struct klist_node knode_bus;
42588 	struct klist_node knode_class;
42589 	struct list_head deferred_probe;
42590 	struct device_driver *async_driver;
42591 	char *deferred_probe_reason;
42592 	struct device *device;
42593 	u8 dead: 1;
42594 };
42595 
42596 struct iopf_device_param;
42597 
42598 struct iommu_fault_param;
42599 
42600 struct iommu_fwspec;
42601 
42602 struct dev_iommu {
42603 	struct mutex lock;
42604 	struct iommu_fault_param *fault_param;
42605 	struct iopf_device_param *iopf_param;
42606 	struct iommu_fwspec *fwspec;
42607 	struct iommu_device *iommu_dev;
42608 	void *priv;
42609 	u32 max_pasids;
42610 };
42611 
42612 struct platform_device_info {
42613 	struct device *parent;
42614 	struct fwnode_handle *fwnode;
42615 	bool of_node_reused;
42616 	const char *name;
42617 	int id;
42618 	const struct resource *res;
42619 	unsigned int num_res;
42620 	const void *data;
42621 	size_t size_data;
42622 	u64 dma_mask;
42623 	const struct property_entry *properties;
42624 };
42625 
42626 struct iommu_fault_unrecoverable {
42627 	__u32 reason;
42628 	__u32 flags;
42629 	__u32 pasid;
42630 	__u32 perm;
42631 	__u64 addr;
42632 	__u64 fetch_addr;
42633 };
42634 
42635 struct iommu_fault_page_request {
42636 	__u32 flags;
42637 	__u32 pasid;
42638 	__u32 grpid;
42639 	__u32 perm;
42640 	__u64 addr;
42641 	__u64 private_data[2];
42642 };
42643 
42644 struct iommu_fault {
42645 	__u32 type;
42646 	__u32 padding;
42647 	union {
42648 		struct iommu_fault_unrecoverable event;
42649 		struct iommu_fault_page_request prm;
42650 		__u8 padding2[56];
42651 	};
42652 };
42653 
42654 enum iommu_page_response_code {
42655 	IOMMU_PAGE_RESP_SUCCESS = 0,
42656 	IOMMU_PAGE_RESP_INVALID = 1,
42657 	IOMMU_PAGE_RESP_FAILURE = 2,
42658 };
42659 
42660 struct iommu_page_response {
42661 	__u32 argsz;
42662 	__u32 version;
42663 	__u32 flags;
42664 	__u32 pasid;
42665 	__u32 grpid;
42666 	__u32 code;
42667 };
42668 
42669 typedef int (*iommu_fault_handler_t)(struct iommu_domain *, struct device *, long unsigned int, int, void *);
42670 
42671 struct iommu_domain_geometry {
42672 	dma_addr_t aperture_start;
42673 	dma_addr_t aperture_end;
42674 	bool force_aperture;
42675 };
42676 
42677 struct iommu_dma_cookie;
42678 
42679 struct iommu_domain {
42680 	unsigned int type;
42681 	const struct iommu_domain_ops *ops;
42682 	long unsigned int pgsize_bitmap;
42683 	struct iommu_domain_geometry geometry;
42684 	struct iommu_dma_cookie *iova_cookie;
42685 	enum iommu_page_response_code (*iopf_handler)(struct iommu_fault *, void *);
42686 	void *fault_data;
42687 	union {
42688 		struct {
42689 			iommu_fault_handler_t handler;
42690 			void *handler_token;
42691 		};
42692 		struct {
42693 			struct mm_struct *mm;
42694 			int users;
42695 		};
42696 	};
42697 };
42698 
42699 typedef int (*iommu_dev_fault_handler_t)(struct iommu_fault *, void *);
42700 
42701 struct iommu_iotlb_gather;
42702 
42703 struct iommu_domain_ops {
42704 	int (*attach_dev)(struct iommu_domain *, struct device *);
42705 	void (*detach_dev)(struct iommu_domain *, struct device *);
42706 	int (*set_dev_pasid)(struct iommu_domain *, struct device *, ioasid_t);
42707 	int (*map)(struct iommu_domain *, long unsigned int, phys_addr_t, size_t, int, gfp_t);
42708 	int (*map_pages)(struct iommu_domain *, long unsigned int, phys_addr_t, size_t, size_t, int, gfp_t, size_t *);
42709 	size_t (*unmap)(struct iommu_domain *, long unsigned int, size_t, struct iommu_iotlb_gather *);
42710 	size_t (*unmap_pages)(struct iommu_domain *, long unsigned int, size_t, size_t, struct iommu_iotlb_gather *);
42711 	void (*flush_iotlb_all)(struct iommu_domain *);
42712 	void (*iotlb_sync_map)(struct iommu_domain *, long unsigned int, size_t);
42713 	void (*iotlb_sync)(struct iommu_domain *, struct iommu_iotlb_gather *);
42714 	phys_addr_t (*iova_to_phys)(struct iommu_domain *, dma_addr_t);
42715 	bool (*enforce_cache_coherency)(struct iommu_domain *);
42716 	int (*enable_nesting)(struct iommu_domain *);
42717 	int (*set_pgtable_quirks)(struct iommu_domain *, long unsigned int);
42718 	void (*free)(struct iommu_domain *);
42719 };
42720 
42721 struct iommu_iotlb_gather {
42722 	long unsigned int start;
42723 	long unsigned int end;
42724 	size_t pgsize;
42725 	struct list_head freelist;
42726 	bool queued;
42727 };
42728 
42729 struct iommu_device {
42730 	struct list_head list;
42731 	const struct iommu_ops *ops;
42732 	struct fwnode_handle *fwnode;
42733 	struct device *dev;
42734 	u32 max_pasids;
42735 };
42736 
42737 struct iommu_fault_event {
42738 	struct iommu_fault fault;
42739 	struct list_head list;
42740 };
42741 
42742 struct iommu_fault_param {
42743 	iommu_dev_fault_handler_t handler;
42744 	void *data;
42745 	struct list_head faults;
42746 	struct mutex lock;
42747 };
42748 
42749 struct iommu_fwspec {
42750 	const struct iommu_ops *ops;
42751 	struct fwnode_handle *iommu_fwnode;
42752 	u32 flags;
42753 	unsigned int num_ids;
42754 	u32 ids[0];
42755 };
42756 
42757 struct irq_affinity_devres {
42758 	unsigned int count;
42759 	unsigned int irq[0];
42760 };
42761 
42762 struct platform_object {
42763 	struct platform_device pdev;
42764 	char name[0];
42765 };
42766 
42767 struct klist_iter {
42768 	struct klist *i_klist;
42769 	struct klist_node *i_cur;
42770 };
42771 
42772 struct attribute_container {
42773 	struct list_head node;
42774 	struct klist containers;
42775 	struct class *class;
42776 	const struct attribute_group *grp;
42777 	struct device_attribute **attrs;
42778 	int (*match)(struct attribute_container *, struct device *);
42779 	long unsigned int flags;
42780 };
42781 
42782 struct internal_container {
42783 	struct klist_node node;
42784 	struct attribute_container *cont;
42785 	struct device classdev;
42786 };
42787 
42788 struct container_dev {
42789 	struct device dev;
42790 	int (*offline)(struct container_dev *);
42791 };
42792 
42793 struct req {
42794 	struct req *next;
42795 	struct completion done;
42796 	int err;
42797 	const char *name;
42798 	umode_t mode;
42799 	kuid_t uid;
42800 	kgid_t gid;
42801 	struct device *dev;
42802 };
42803 
42804 enum regcache_type {
42805 	REGCACHE_NONE = 0,
42806 	REGCACHE_RBTREE = 1,
42807 	REGCACHE_COMPRESSED = 2,
42808 	REGCACHE_FLAT = 3,
42809 };
42810 
42811 struct reg_default {
42812 	unsigned int reg;
42813 	unsigned int def;
42814 };
42815 
42816 struct reg_sequence {
42817 	unsigned int reg;
42818 	unsigned int def;
42819 	unsigned int delay_us;
42820 };
42821 
42822 enum regmap_endian {
42823 	REGMAP_ENDIAN_DEFAULT = 0,
42824 	REGMAP_ENDIAN_BIG = 1,
42825 	REGMAP_ENDIAN_LITTLE = 2,
42826 	REGMAP_ENDIAN_NATIVE = 3,
42827 };
42828 
42829 struct regmap_range {
42830 	unsigned int range_min;
42831 	unsigned int range_max;
42832 };
42833 
42834 struct regmap_access_table {
42835 	const struct regmap_range *yes_ranges;
42836 	unsigned int n_yes_ranges;
42837 	const struct regmap_range *no_ranges;
42838 	unsigned int n_no_ranges;
42839 };
42840 
42841 typedef void (*regmap_lock)(void *);
42842 
42843 typedef void (*regmap_unlock)(void *);
42844 
42845 struct regmap_range_cfg;
42846 
42847 struct regmap_config {
42848 	const char *name;
42849 	int reg_bits;
42850 	int reg_stride;
42851 	int reg_downshift;
42852 	unsigned int reg_base;
42853 	int pad_bits;
42854 	int val_bits;
42855 	bool (*writeable_reg)(struct device *, unsigned int);
42856 	bool (*readable_reg)(struct device *, unsigned int);
42857 	bool (*volatile_reg)(struct device *, unsigned int);
42858 	bool (*precious_reg)(struct device *, unsigned int);
42859 	bool (*writeable_noinc_reg)(struct device *, unsigned int);
42860 	bool (*readable_noinc_reg)(struct device *, unsigned int);
42861 	bool disable_locking;
42862 	regmap_lock lock;
42863 	regmap_unlock unlock;
42864 	void *lock_arg;
42865 	int (*reg_read)(void *, unsigned int, unsigned int *);
42866 	int (*reg_write)(void *, unsigned int, unsigned int);
42867 	int (*reg_update_bits)(void *, unsigned int, unsigned int, unsigned int);
42868 	int (*read)(void *, const void *, size_t, void *, size_t);
42869 	int (*write)(void *, const void *, size_t);
42870 	size_t max_raw_read;
42871 	size_t max_raw_write;
42872 	bool fast_io;
42873 	bool io_port;
42874 	unsigned int max_register;
42875 	const struct regmap_access_table *wr_table;
42876 	const struct regmap_access_table *rd_table;
42877 	const struct regmap_access_table *volatile_table;
42878 	const struct regmap_access_table *precious_table;
42879 	const struct regmap_access_table *wr_noinc_table;
42880 	const struct regmap_access_table *rd_noinc_table;
42881 	const struct reg_default *reg_defaults;
42882 	unsigned int num_reg_defaults;
42883 	enum regcache_type cache_type;
42884 	const void *reg_defaults_raw;
42885 	unsigned int num_reg_defaults_raw;
42886 	long unsigned int read_flag_mask;
42887 	long unsigned int write_flag_mask;
42888 	bool zero_flag_mask;
42889 	bool use_single_read;
42890 	bool use_single_write;
42891 	bool use_relaxed_mmio;
42892 	bool can_multi_write;
42893 	enum regmap_endian reg_format_endian;
42894 	enum regmap_endian val_format_endian;
42895 	const struct regmap_range_cfg *ranges;
42896 	unsigned int num_ranges;
42897 	bool use_hwlock;
42898 	bool use_raw_spinlock;
42899 	unsigned int hwlock_id;
42900 	unsigned int hwlock_mode;
42901 	bool can_sleep;
42902 };
42903 
42904 struct regmap_range_cfg {
42905 	const char *name;
42906 	unsigned int range_min;
42907 	unsigned int range_max;
42908 	unsigned int selector_reg;
42909 	unsigned int selector_mask;
42910 	int selector_shift;
42911 	unsigned int window_start;
42912 	unsigned int window_len;
42913 };
42914 
42915 typedef int (*regmap_hw_write)(void *, const void *, size_t);
42916 
42917 typedef int (*regmap_hw_gather_write)(void *, const void *, size_t, const void *, size_t);
42918 
42919 struct regmap_async;
42920 
42921 typedef int (*regmap_hw_async_write)(void *, const void *, size_t, const void *, size_t, struct regmap_async *);
42922 
42923 struct regmap;
42924 
42925 struct regmap_async {
42926 	struct list_head list;
42927 	struct regmap *map;
42928 	void *work_buf;
42929 };
42930 
42931 typedef int (*regmap_hw_read)(void *, const void *, size_t, void *, size_t);
42932 
42933 typedef int (*regmap_hw_reg_read)(void *, unsigned int, unsigned int *);
42934 
42935 typedef int (*regmap_hw_reg_noinc_read)(void *, unsigned int, void *, size_t);
42936 
42937 typedef int (*regmap_hw_reg_write)(void *, unsigned int, unsigned int);
42938 
42939 typedef int (*regmap_hw_reg_noinc_write)(void *, unsigned int, const void *, size_t);
42940 
42941 typedef int (*regmap_hw_reg_update_bits)(void *, unsigned int, unsigned int, unsigned int);
42942 
42943 typedef struct regmap_async * (*regmap_hw_async_alloc)();
42944 
42945 typedef void (*regmap_hw_free_context)(void *);
42946 
42947 struct regmap_bus {
42948 	bool fast_io;
42949 	regmap_hw_write write;
42950 	regmap_hw_gather_write gather_write;
42951 	regmap_hw_async_write async_write;
42952 	regmap_hw_reg_write reg_write;
42953 	regmap_hw_reg_noinc_write reg_noinc_write;
42954 	regmap_hw_reg_update_bits reg_update_bits;
42955 	regmap_hw_read read;
42956 	regmap_hw_reg_read reg_read;
42957 	regmap_hw_reg_noinc_read reg_noinc_read;
42958 	regmap_hw_free_context free_context;
42959 	regmap_hw_async_alloc async_alloc;
42960 	u8 read_flag_mask;
42961 	enum regmap_endian reg_format_endian_default;
42962 	enum regmap_endian val_format_endian_default;
42963 	size_t max_raw_read;
42964 	size_t max_raw_write;
42965 	bool free_on_exit;
42966 };
42967 
42968 struct regmap_format {
42969 	size_t buf_size;
42970 	size_t reg_bytes;
42971 	size_t pad_bytes;
42972 	size_t reg_downshift;
42973 	size_t val_bytes;
42974 	void (*format_write)(struct regmap *, unsigned int, unsigned int);
42975 	void (*format_reg)(void *, unsigned int, unsigned int);
42976 	void (*format_val)(void *, unsigned int, unsigned int);
42977 	unsigned int (*parse_val)(const void *);
42978 	void (*parse_inplace)(void *);
42979 };
42980 
42981 struct hwspinlock;
42982 
42983 struct regcache_ops;
42984 
42985 struct regmap {
42986 	union {
42987 		struct mutex mutex;
42988 		struct {
42989 			spinlock_t spinlock;
42990 			long unsigned int spinlock_flags;
42991 		};
42992 		struct {
42993 			raw_spinlock_t raw_spinlock;
42994 			long unsigned int raw_spinlock_flags;
42995 		};
42996 	};
42997 	regmap_lock lock;
42998 	regmap_unlock unlock;
42999 	void *lock_arg;
43000 	gfp_t alloc_flags;
43001 	unsigned int reg_base;
43002 	struct device *dev;
43003 	void *work_buf;
43004 	struct regmap_format format;
43005 	const struct regmap_bus *bus;
43006 	void *bus_context;
43007 	const char *name;
43008 	bool async;
43009 	spinlock_t async_lock;
43010 	wait_queue_head_t async_waitq;
43011 	struct list_head async_list;
43012 	struct list_head async_free;
43013 	int async_ret;
43014 	bool debugfs_disable;
43015 	struct dentry *debugfs;
43016 	const char *debugfs_name;
43017 	unsigned int debugfs_reg_len;
43018 	unsigned int debugfs_val_len;
43019 	unsigned int debugfs_tot_len;
43020 	struct list_head debugfs_off_cache;
43021 	struct mutex cache_lock;
43022 	unsigned int max_register;
43023 	bool (*writeable_reg)(struct device *, unsigned int);
43024 	bool (*readable_reg)(struct device *, unsigned int);
43025 	bool (*volatile_reg)(struct device *, unsigned int);
43026 	bool (*precious_reg)(struct device *, unsigned int);
43027 	bool (*writeable_noinc_reg)(struct device *, unsigned int);
43028 	bool (*readable_noinc_reg)(struct device *, unsigned int);
43029 	const struct regmap_access_table *wr_table;
43030 	const struct regmap_access_table *rd_table;
43031 	const struct regmap_access_table *volatile_table;
43032 	const struct regmap_access_table *precious_table;
43033 	const struct regmap_access_table *wr_noinc_table;
43034 	const struct regmap_access_table *rd_noinc_table;
43035 	int (*reg_read)(void *, unsigned int, unsigned int *);
43036 	int (*reg_write)(void *, unsigned int, unsigned int);
43037 	int (*reg_update_bits)(void *, unsigned int, unsigned int, unsigned int);
43038 	int (*read)(void *, const void *, size_t, void *, size_t);
43039 	int (*write)(void *, const void *, size_t);
43040 	bool defer_caching;
43041 	long unsigned int read_flag_mask;
43042 	long unsigned int write_flag_mask;
43043 	int reg_shift;
43044 	int reg_stride;
43045 	int reg_stride_order;
43046 	const struct regcache_ops *cache_ops;
43047 	enum regcache_type cache_type;
43048 	unsigned int cache_size_raw;
43049 	unsigned int cache_word_size;
43050 	unsigned int num_reg_defaults;
43051 	unsigned int num_reg_defaults_raw;
43052 	bool cache_only;
43053 	bool cache_bypass;
43054 	bool cache_free;
43055 	struct reg_default *reg_defaults;
43056 	const void *reg_defaults_raw;
43057 	void *cache;
43058 	bool cache_dirty;
43059 	bool no_sync_defaults;
43060 	struct reg_sequence *patch;
43061 	int patch_regs;
43062 	bool use_single_read;
43063 	bool use_single_write;
43064 	bool can_multi_write;
43065 	size_t max_raw_read;
43066 	size_t max_raw_write;
43067 	struct rb_root range_tree;
43068 	void *selector_work_buf;
43069 	struct hwspinlock *hwlock;
43070 	bool can_sleep;
43071 };
43072 
43073 struct regcache_ops {
43074 	const char *name;
43075 	enum regcache_type type;
43076 	int (*init)(struct regmap *);
43077 	int (*exit)(struct regmap *);
43078 	void (*debugfs_init)(struct regmap *);
43079 	int (*read)(struct regmap *, unsigned int, unsigned int *);
43080 	int (*write)(struct regmap *, unsigned int, unsigned int);
43081 	int (*sync)(struct regmap *, unsigned int, unsigned int);
43082 	int (*drop)(struct regmap *, unsigned int, unsigned int);
43083 };
43084 
43085 struct regmap_debugfs_off_cache {
43086 	struct list_head list;
43087 	off_t min;
43088 	off_t max;
43089 	unsigned int base_reg;
43090 	unsigned int max_reg;
43091 };
43092 
43093 struct regmap_range_node {
43094 	struct rb_node node;
43095 	const char *name;
43096 	struct regmap *map;
43097 	unsigned int range_min;
43098 	unsigned int range_max;
43099 	unsigned int selector_reg;
43100 	unsigned int selector_mask;
43101 	int selector_shift;
43102 	unsigned int window_start;
43103 	unsigned int window_len;
43104 };
43105 
43106 struct regmap_debugfs_node {
43107 	struct regmap *map;
43108 	struct list_head link;
43109 };
43110 
43111 typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *);
43112 
43113 struct platform_msi_priv_data {
43114 	struct device *dev;
43115 	void *host_data;
43116 	msi_alloc_info_t arg;
43117 	irq_write_msi_msg_t write_msg;
43118 	int devid;
43119 };
43120 
43121 struct dma_buf_export_info {
43122 	const char *exp_name;
43123 	struct module *owner;
43124 	const struct dma_buf_ops *ops;
43125 	size_t size;
43126 	int flags;
43127 	struct dma_resv *resv;
43128 	void *priv;
43129 };
43130 
43131 struct dma_resv_iter {
43132 	struct dma_resv *obj;
43133 	enum dma_resv_usage usage;
43134 	struct dma_fence *fence;
43135 	enum dma_resv_usage fence_usage;
43136 	unsigned int index;
43137 	struct dma_resv_list *fences;
43138 	unsigned int num_fences;
43139 	bool is_restarted;
43140 };
43141 
43142 struct dma_buf_sync {
43143 	__u64 flags;
43144 };
43145 
43146 struct dma_buf_export_sync_file {
43147 	__u32 flags;
43148 	__s32 fd;
43149 };
43150 
43151 struct dma_buf_import_sync_file {
43152 	__u32 flags;
43153 	__s32 fd;
43154 };
43155 
43156 struct dma_buf_list {
43157 	struct list_head head;
43158 	struct mutex lock;
43159 };
43160 
43161 struct dma_resv_list {
43162 	struct callback_head rcu;
43163 	u32 num_fences;
43164 	u32 max_fences;
43165 	struct dma_fence *table[0];
43166 };
43167 
43168 struct dma_fence_array {
43169 	struct dma_fence base;
43170 	spinlock_t lock;
43171 	unsigned int num_fences;
43172 	atomic_t num_pending;
43173 	struct dma_fence **fences;
43174 	struct irq_work work;
43175 };
43176 
43177 enum scsi_host_status {
43178 	DID_OK = 0,
43179 	DID_NO_CONNECT = 1,
43180 	DID_BUS_BUSY = 2,
43181 	DID_TIME_OUT = 3,
43182 	DID_BAD_TARGET = 4,
43183 	DID_ABORT = 5,
43184 	DID_PARITY = 6,
43185 	DID_ERROR = 7,
43186 	DID_RESET = 8,
43187 	DID_BAD_INTR = 9,
43188 	DID_PASSTHROUGH = 10,
43189 	DID_SOFT_ERROR = 11,
43190 	DID_IMM_RETRY = 12,
43191 	DID_REQUEUE = 13,
43192 	DID_TRANSPORT_DISRUPTED = 14,
43193 	DID_TRANSPORT_FAILFAST = 15,
43194 	DID_TRANSPORT_MARGINAL = 20,
43195 };
43196 
43197 enum scsi_disposition {
43198 	NEEDS_RETRY = 8193,
43199 	SUCCESS = 8194,
43200 	FAILED = 8195,
43201 	QUEUED = 8196,
43202 	SOFT_ERROR = 8197,
43203 	ADD_TO_MLQUEUE = 8198,
43204 	TIMEOUT_ERROR = 8199,
43205 	SCSI_RETURN_NOT_HANDLED = 8200,
43206 	FAST_IO_FAIL = 8201,
43207 };
43208 
43209 enum scsi_device_event {
43210 	SDEV_EVT_MEDIA_CHANGE = 1,
43211 	SDEV_EVT_INQUIRY_CHANGE_REPORTED = 2,
43212 	SDEV_EVT_CAPACITY_CHANGE_REPORTED = 3,
43213 	SDEV_EVT_SOFT_THRESHOLD_REACHED_REPORTED = 4,
43214 	SDEV_EVT_MODE_PARAMETER_CHANGE_REPORTED = 5,
43215 	SDEV_EVT_LUN_CHANGE_REPORTED = 6,
43216 	SDEV_EVT_ALUA_STATE_CHANGE_REPORTED = 7,
43217 	SDEV_EVT_POWER_ON_RESET_OCCURRED = 8,
43218 	SDEV_EVT_FIRST = 1,
43219 	SDEV_EVT_LAST = 8,
43220 	SDEV_EVT_MAXBITS = 9,
43221 };
43222 
43223 struct value_name_pair;
43224 
43225 struct sa_name_list {
43226 	int opcode;
43227 	const struct value_name_pair *arr;
43228 	int arr_sz;
43229 };
43230 
43231 struct value_name_pair {
43232 	int value;
43233 	const char *name;
43234 };
43235 
43236 struct error_info {
43237 	short unsigned int code12;
43238 	short unsigned int size;
43239 };
43240 
43241 struct error_info2 {
43242 	unsigned char code1;
43243 	unsigned char code2_min;
43244 	unsigned char code2_max;
43245 	const char *str;
43246 	const char *fmt;
43247 };
43248 
43249 enum sam_status {
43250 	SAM_STAT_GOOD = 0,
43251 	SAM_STAT_CHECK_CONDITION = 2,
43252 	SAM_STAT_CONDITION_MET = 4,
43253 	SAM_STAT_BUSY = 8,
43254 	SAM_STAT_INTERMEDIATE = 16,
43255 	SAM_STAT_INTERMEDIATE_CONDITION_MET = 20,
43256 	SAM_STAT_RESERVATION_CONFLICT = 24,
43257 	SAM_STAT_COMMAND_TERMINATED = 34,
43258 	SAM_STAT_TASK_SET_FULL = 40,
43259 	SAM_STAT_ACA_ACTIVE = 48,
43260 	SAM_STAT_TASK_ABORTED = 64,
43261 };
43262 
43263 struct scsi_lun {
43264 	__u8 scsi_lun[8];
43265 };
43266 
43267 struct scsi_sense_hdr {
43268 	u8 response_code;
43269 	u8 sense_key;
43270 	u8 asc;
43271 	u8 ascq;
43272 	u8 byte4;
43273 	u8 byte5;
43274 	u8 byte6;
43275 	u8 additional_length;
43276 };
43277 
43278 enum scsi_timeouts {
43279 	SCSI_DEFAULT_EH_TIMEOUT = 2500,
43280 };
43281 
43282 typedef __u64 blist_flags_t;
43283 
43284 enum scsi_device_state {
43285 	SDEV_CREATED = 1,
43286 	SDEV_RUNNING = 2,
43287 	SDEV_CANCEL = 3,
43288 	SDEV_DEL = 4,
43289 	SDEV_QUIESCE = 5,
43290 	SDEV_OFFLINE = 6,
43291 	SDEV_TRANSPORT_OFFLINE = 7,
43292 	SDEV_BLOCK = 8,
43293 	SDEV_CREATED_BLOCK = 9,
43294 };
43295 
43296 enum scsi_scan_mode {
43297 	SCSI_SCAN_INITIAL = 0,
43298 	SCSI_SCAN_RESCAN = 1,
43299 	SCSI_SCAN_MANUAL = 2,
43300 };
43301 
43302 struct scsi_vpd {
43303 	struct callback_head rcu;
43304 	int len;
43305 	unsigned char data[0];
43306 };
43307 
43308 struct bsg_device;
43309 
43310 struct Scsi_Host;
43311 
43312 struct scsi_target;
43313 
43314 struct scsi_device_handler;
43315 
43316 struct scsi_device {
43317 	struct Scsi_Host *host;
43318 	struct request_queue *request_queue;
43319 	struct list_head siblings;
43320 	struct list_head same_target_siblings;
43321 	struct sbitmap budget_map;
43322 	atomic_t device_blocked;
43323 	atomic_t restarts;
43324 	spinlock_t list_lock;
43325 	struct list_head starved_entry;
43326 	short unsigned int queue_depth;
43327 	short unsigned int max_queue_depth;
43328 	short unsigned int last_queue_full_depth;
43329 	short unsigned int last_queue_full_count;
43330 	long unsigned int last_queue_full_time;
43331 	long unsigned int queue_ramp_up_period;
43332 	long unsigned int last_queue_ramp_up;
43333 	unsigned int id;
43334 	unsigned int channel;
43335 	u64 lun;
43336 	unsigned int manufacturer;
43337 	unsigned int sector_size;
43338 	void *hostdata;
43339 	unsigned char type;
43340 	char scsi_level;
43341 	char inq_periph_qual;
43342 	struct mutex inquiry_mutex;
43343 	unsigned char inquiry_len;
43344 	unsigned char *inquiry;
43345 	const char *vendor;
43346 	const char *model;
43347 	const char *rev;
43348 	struct scsi_vpd *vpd_pg0;
43349 	struct scsi_vpd *vpd_pg83;
43350 	struct scsi_vpd *vpd_pg80;
43351 	struct scsi_vpd *vpd_pg89;
43352 	struct scsi_vpd *vpd_pgb0;
43353 	struct scsi_vpd *vpd_pgb1;
43354 	struct scsi_vpd *vpd_pgb2;
43355 	struct scsi_target *sdev_target;
43356 	blist_flags_t sdev_bflags;
43357 	unsigned int eh_timeout;
43358 	unsigned int removable: 1;
43359 	unsigned int changed: 1;
43360 	unsigned int busy: 1;
43361 	unsigned int lockable: 1;
43362 	unsigned int locked: 1;
43363 	unsigned int borken: 1;
43364 	unsigned int disconnect: 1;
43365 	unsigned int soft_reset: 1;
43366 	unsigned int sdtr: 1;
43367 	unsigned int wdtr: 1;
43368 	unsigned int ppr: 1;
43369 	unsigned int tagged_supported: 1;
43370 	unsigned int simple_tags: 1;
43371 	unsigned int was_reset: 1;
43372 	unsigned int expecting_cc_ua: 1;
43373 	unsigned int use_10_for_rw: 1;
43374 	unsigned int use_10_for_ms: 1;
43375 	unsigned int set_dbd_for_ms: 1;
43376 	unsigned int no_report_opcodes: 1;
43377 	unsigned int no_write_same: 1;
43378 	unsigned int use_16_for_rw: 1;
43379 	unsigned int use_16_for_sync: 1;
43380 	unsigned int skip_ms_page_8: 1;
43381 	unsigned int skip_ms_page_3f: 1;
43382 	unsigned int skip_vpd_pages: 1;
43383 	unsigned int try_vpd_pages: 1;
43384 	unsigned int use_192_bytes_for_3f: 1;
43385 	unsigned int no_start_on_add: 1;
43386 	unsigned int allow_restart: 1;
43387 	unsigned int manage_start_stop: 1;
43388 	unsigned int start_stop_pwr_cond: 1;
43389 	unsigned int no_uld_attach: 1;
43390 	unsigned int select_no_atn: 1;
43391 	unsigned int fix_capacity: 1;
43392 	unsigned int guess_capacity: 1;
43393 	unsigned int retry_hwerror: 1;
43394 	unsigned int last_sector_bug: 1;
43395 	unsigned int no_read_disc_info: 1;
43396 	unsigned int no_read_capacity_16: 1;
43397 	unsigned int try_rc_10_first: 1;
43398 	unsigned int security_supported: 1;
43399 	unsigned int is_visible: 1;
43400 	unsigned int wce_default_on: 1;
43401 	unsigned int no_dif: 1;
43402 	unsigned int broken_fua: 1;
43403 	unsigned int lun_in_cdb: 1;
43404 	unsigned int unmap_limit_for_ws: 1;
43405 	unsigned int rpm_autosuspend: 1;
43406 	unsigned int ignore_media_change: 1;
43407 	unsigned int silence_suspend: 1;
43408 	unsigned int queue_stopped;
43409 	bool offline_already;
43410 	atomic_t disk_events_disable_depth;
43411 	long unsigned int supported_events[1];
43412 	long unsigned int pending_events[1];
43413 	struct list_head event_list;
43414 	struct work_struct event_work;
43415 	unsigned int max_device_blocked;
43416 	atomic_t iorequest_cnt;
43417 	atomic_t iodone_cnt;
43418 	atomic_t ioerr_cnt;
43419 	atomic_t iotmo_cnt;
43420 	struct device sdev_gendev;
43421 	struct device sdev_dev;
43422 	struct work_struct requeue_work;
43423 	struct scsi_device_handler *handler;
43424 	void *handler_data;
43425 	size_t dma_drain_len;
43426 	void *dma_drain_buf;
43427 	unsigned int sg_timeout;
43428 	unsigned int sg_reserved_size;
43429 	struct bsg_device *bsg_dev;
43430 	unsigned char access_state;
43431 	struct mutex state_mutex;
43432 	enum scsi_device_state sdev_state;
43433 	struct task_struct *quiesced_by;
43434 	long unsigned int sdev_data[0];
43435 };
43436 
43437 enum scsi_host_state {
43438 	SHOST_CREATED = 1,
43439 	SHOST_RUNNING = 2,
43440 	SHOST_CANCEL = 3,
43441 	SHOST_DEL = 4,
43442 	SHOST_RECOVERY = 5,
43443 	SHOST_CANCEL_RECOVERY = 6,
43444 	SHOST_DEL_RECOVERY = 7,
43445 };
43446 
43447 struct scsi_host_template;
43448 
43449 struct scsi_transport_template;
43450 
43451 struct Scsi_Host {
43452 	struct list_head __devices;
43453 	struct list_head __targets;
43454 	struct list_head starved_list;
43455 	spinlock_t default_lock;
43456 	spinlock_t *host_lock;
43457 	struct mutex scan_mutex;
43458 	struct list_head eh_abort_list;
43459 	struct list_head eh_cmd_q;
43460 	struct task_struct *ehandler;
43461 	struct completion *eh_action;
43462 	wait_queue_head_t host_wait;
43463 	struct scsi_host_template *hostt;
43464 	struct scsi_transport_template *transportt;
43465 	struct kref tagset_refcnt;
43466 	struct completion tagset_freed;
43467 	struct blk_mq_tag_set tag_set;
43468 	atomic_t host_blocked;
43469 	unsigned int host_failed;
43470 	unsigned int host_eh_scheduled;
43471 	unsigned int host_no;
43472 	int eh_deadline;
43473 	long unsigned int last_reset;
43474 	unsigned int max_channel;
43475 	unsigned int max_id;
43476 	u64 max_lun;
43477 	unsigned int unique_id;
43478 	short unsigned int max_cmd_len;
43479 	int this_id;
43480 	int can_queue;
43481 	short int cmd_per_lun;
43482 	short unsigned int sg_tablesize;
43483 	short unsigned int sg_prot_tablesize;
43484 	unsigned int max_sectors;
43485 	unsigned int opt_sectors;
43486 	unsigned int max_segment_size;
43487 	long unsigned int dma_boundary;
43488 	long unsigned int virt_boundary_mask;
43489 	unsigned int nr_hw_queues;
43490 	unsigned int nr_maps;
43491 	unsigned int active_mode: 2;
43492 	unsigned int host_self_blocked: 1;
43493 	unsigned int reverse_ordering: 1;
43494 	unsigned int tmf_in_progress: 1;
43495 	unsigned int async_scan: 1;
43496 	unsigned int eh_noresume: 1;
43497 	unsigned int no_write_same: 1;
43498 	unsigned int host_tagset: 1;
43499 	unsigned int short_inquiry: 1;
43500 	unsigned int no_scsi2_lun_in_cdb: 1;
43501 	char work_q_name[20];
43502 	struct workqueue_struct *work_q;
43503 	struct workqueue_struct *tmf_work_q;
43504 	unsigned int max_host_blocked;
43505 	unsigned int prot_capabilities;
43506 	unsigned char prot_guard_type;
43507 	long unsigned int base;
43508 	long unsigned int io_port;
43509 	unsigned char n_io_port;
43510 	unsigned char dma_channel;
43511 	unsigned int irq;
43512 	enum scsi_host_state shost_state;
43513 	struct device shost_gendev;
43514 	struct device shost_dev;
43515 	void *shost_data;
43516 	struct device *dma_dev;
43517 	long unsigned int hostdata[0];
43518 };
43519 
43520 enum scsi_target_state {
43521 	STARGET_CREATED = 1,
43522 	STARGET_RUNNING = 2,
43523 	STARGET_REMOVE = 3,
43524 	STARGET_CREATED_REMOVE = 4,
43525 	STARGET_DEL = 5,
43526 };
43527 
43528 struct scsi_target {
43529 	struct scsi_device *starget_sdev_user;
43530 	struct list_head siblings;
43531 	struct list_head devices;
43532 	struct device dev;
43533 	struct kref reap_ref;
43534 	unsigned int channel;
43535 	unsigned int id;
43536 	unsigned int create: 1;
43537 	unsigned int single_lun: 1;
43538 	unsigned int pdt_1f_for_no_lun: 1;
43539 	unsigned int no_report_luns: 1;
43540 	unsigned int expecting_lun_change: 1;
43541 	atomic_t target_busy;
43542 	atomic_t target_blocked;
43543 	unsigned int can_queue;
43544 	unsigned int max_target_blocked;
43545 	char scsi_level;
43546 	enum scsi_target_state state;
43547 	void *hostdata;
43548 	long unsigned int starget_data[0];
43549 };
43550 
43551 typedef void (*activate_complete)(void *, int);
43552 
43553 struct scsi_device_handler {
43554 	struct list_head list;
43555 	struct module *module;
43556 	const char *name;
43557 	enum scsi_disposition (*check_sense)(struct scsi_device *, struct scsi_sense_hdr *);
43558 	int (*attach)(struct scsi_device *);
43559 	void (*detach)(struct scsi_device *);
43560 	int (*activate)(struct scsi_device *, activate_complete, void *);
43561 	blk_status_t (*prep_fn)(struct scsi_device *, struct request *);
43562 	int (*set_params)(struct scsi_device *, const char *);
43563 	void (*rescan)(struct scsi_device *);
43564 };
43565 
43566 struct scsi_data_buffer {
43567 	struct sg_table table;
43568 	unsigned int length;
43569 };
43570 
43571 enum scsi_cmnd_submitter {
43572 	SUBMITTED_BY_BLOCK_LAYER = 0,
43573 	SUBMITTED_BY_SCSI_ERROR_HANDLER = 1,
43574 	SUBMITTED_BY_SCSI_RESET_IOCTL = 2,
43575 };
43576 
43577 struct scsi_cmnd {
43578 	struct scsi_device *device;
43579 	struct list_head eh_entry;
43580 	struct delayed_work abort_work;
43581 	struct callback_head rcu;
43582 	int eh_eflags;
43583 	int budget_token;
43584 	long unsigned int jiffies_at_alloc;
43585 	int retries;
43586 	int allowed;
43587 	unsigned char prot_op;
43588 	unsigned char prot_type;
43589 	unsigned char prot_flags;
43590 	enum scsi_cmnd_submitter submitter;
43591 	short unsigned int cmd_len;
43592 	enum dma_data_direction sc_data_direction;
43593 	unsigned char cmnd[32];
43594 	struct scsi_data_buffer sdb;
43595 	struct scsi_data_buffer *prot_sdb;
43596 	unsigned int underflow;
43597 	unsigned int transfersize;
43598 	unsigned int resid_len;
43599 	unsigned int sense_len;
43600 	unsigned char *sense_buffer;
43601 	int flags;
43602 	long unsigned int state;
43603 	unsigned int extra_len;
43604 	unsigned char *host_scribble;
43605 	int result;
43606 };
43607 
43608 struct scsi_driver {
43609 	struct device_driver gendrv;
43610 	void (*rescan)(struct device *);
43611 	blk_status_t (*init_command)(struct scsi_cmnd *);
43612 	void (*uninit_command)(struct scsi_cmnd *);
43613 	int (*done)(struct scsi_cmnd *);
43614 	int (*eh_action)(struct scsi_cmnd *, int);
43615 	void (*eh_reset)(struct scsi_cmnd *);
43616 };
43617 
43618 enum scsi_timeout_action {
43619 	SCSI_EH_DONE = 0,
43620 	SCSI_EH_RESET_TIMER = 1,
43621 	SCSI_EH_NOT_HANDLED = 2,
43622 };
43623 
43624 struct scsi_host_template {
43625 	unsigned int cmd_size;
43626 	int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
43627 	void (*commit_rqs)(struct Scsi_Host *, u16);
43628 	struct module *module;
43629 	const char *name;
43630 	const char * (*info)(struct Scsi_Host *);
43631 	int (*ioctl)(struct scsi_device *, unsigned int, void *);
43632 	int (*init_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
43633 	int (*exit_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
43634 	int (*eh_abort_handler)(struct scsi_cmnd *);
43635 	int (*eh_device_reset_handler)(struct scsi_cmnd *);
43636 	int (*eh_target_reset_handler)(struct scsi_cmnd *);
43637 	int (*eh_bus_reset_handler)(struct scsi_cmnd *);
43638 	int (*eh_host_reset_handler)(struct scsi_cmnd *);
43639 	int (*slave_alloc)(struct scsi_device *);
43640 	int (*slave_configure)(struct scsi_device *);
43641 	void (*slave_destroy)(struct scsi_device *);
43642 	int (*target_alloc)(struct scsi_target *);
43643 	void (*target_destroy)(struct scsi_target *);
43644 	int (*scan_finished)(struct Scsi_Host *, long unsigned int);
43645 	void (*scan_start)(struct Scsi_Host *);
43646 	int (*change_queue_depth)(struct scsi_device *, int);
43647 	void (*map_queues)(struct Scsi_Host *);
43648 	int (*mq_poll)(struct Scsi_Host *, unsigned int);
43649 	bool (*dma_need_drain)(struct request *);
43650 	int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
43651 	void (*unlock_native_capacity)(struct scsi_device *);
43652 	int (*show_info)(struct seq_file *, struct Scsi_Host *);
43653 	int (*write_info)(struct Scsi_Host *, char *, int);
43654 	enum scsi_timeout_action (*eh_timed_out)(struct scsi_cmnd *);
43655 	bool (*eh_should_retry_cmd)(struct scsi_cmnd *);
43656 	int (*host_reset)(struct Scsi_Host *, int);
43657 	const char *proc_name;
43658 	int can_queue;
43659 	int this_id;
43660 	short unsigned int sg_tablesize;
43661 	short unsigned int sg_prot_tablesize;
43662 	unsigned int max_sectors;
43663 	unsigned int max_segment_size;
43664 	long unsigned int dma_boundary;
43665 	long unsigned int virt_boundary_mask;
43666 	short int cmd_per_lun;
43667 	int tag_alloc_policy;
43668 	unsigned int track_queue_depth: 1;
43669 	unsigned int supported_mode: 2;
43670 	unsigned int emulated: 1;
43671 	unsigned int skip_settle_delay: 1;
43672 	unsigned int no_write_same: 1;
43673 	unsigned int host_tagset: 1;
43674 	unsigned int max_host_blocked;
43675 	const struct attribute_group **shost_groups;
43676 	const struct attribute_group **sdev_groups;
43677 	u64 vendor_id;
43678 	int rpm_autosuspend_delay;
43679 };
43680 
43681 struct transport_container {
43682 	struct attribute_container ac;
43683 	const struct attribute_group *statistics;
43684 };
43685 
43686 struct scsi_transport_template {
43687 	struct transport_container host_attrs;
43688 	struct transport_container target_attrs;
43689 	struct transport_container device_attrs;
43690 	int (*user_scan)(struct Scsi_Host *, uint, uint, u64);
43691 	int device_size;
43692 	int device_private_offset;
43693 	int target_size;
43694 	int target_private_offset;
43695 	int host_size;
43696 	unsigned int create_work_queue: 1;
43697 	void (*eh_strategy_handler)(struct Scsi_Host *);
43698 };
43699 
43700 struct async_scan_data {
43701 	struct list_head list;
43702 	struct Scsi_Host *shost;
43703 	struct completion prev_finished;
43704 };
43705 
43706 struct cdrom_device_ops;
43707 
43708 struct cdrom_device_info {
43709 	const struct cdrom_device_ops *ops;
43710 	struct list_head list;
43711 	struct gendisk *disk;
43712 	void *handle;
43713 	int mask;
43714 	int speed;
43715 	int capacity;
43716 	unsigned int options: 30;
43717 	unsigned int mc_flags: 2;
43718 	unsigned int vfs_events;
43719 	unsigned int ioctl_events;
43720 	int use_count;
43721 	char name[20];
43722 	__u8 sanyo_slot: 2;
43723 	__u8 keeplocked: 1;
43724 	__u8 reserved: 5;
43725 	int cdda_method;
43726 	__u8 last_sense;
43727 	__u8 media_written;
43728 	short unsigned int mmc3_profile;
43729 	int for_data;
43730 	int (*exit)(struct cdrom_device_info *);
43731 	int mrw_mode_page;
43732 	__s64 last_media_change_ms;
43733 };
43734 
43735 enum sas_oob_mode {
43736 	OOB_NOT_CONNECTED = 0,
43737 	SATA_OOB_MODE = 1,
43738 	SAS_OOB_MODE = 2,
43739 };
43740 
43741 enum sas_device_type {
43742 	SAS_PHY_UNUSED = 0,
43743 	SAS_END_DEVICE = 1,
43744 	SAS_EDGE_EXPANDER_DEVICE = 2,
43745 	SAS_FANOUT_EXPANDER_DEVICE = 3,
43746 	SAS_HA = 4,
43747 	SAS_SATA_DEV = 5,
43748 	SAS_SATA_PM = 7,
43749 	SAS_SATA_PM_PORT = 8,
43750 	SAS_SATA_PENDING = 9,
43751 };
43752 
43753 enum sas_protocol {
43754 	SAS_PROTOCOL_NONE = 0,
43755 	SAS_PROTOCOL_SATA = 1,
43756 	SAS_PROTOCOL_SMP = 2,
43757 	SAS_PROTOCOL_STP = 4,
43758 	SAS_PROTOCOL_SSP = 8,
43759 	SAS_PROTOCOL_ALL = 14,
43760 	SAS_PROTOCOL_STP_ALL = 5,
43761 	SAS_PROTOCOL_INTERNAL_ABORT = 16,
43762 };
43763 
43764 enum phy_func {
43765 	PHY_FUNC_NOP = 0,
43766 	PHY_FUNC_LINK_RESET = 1,
43767 	PHY_FUNC_HARD_RESET = 2,
43768 	PHY_FUNC_DISABLE = 3,
43769 	PHY_FUNC_CLEAR_ERROR_LOG = 5,
43770 	PHY_FUNC_CLEAR_AFFIL = 6,
43771 	PHY_FUNC_TX_SATA_PS_SIGNAL = 7,
43772 	PHY_FUNC_RELEASE_SPINUP_HOLD = 16,
43773 	PHY_FUNC_SET_LINK_RATE = 17,
43774 	PHY_FUNC_GET_EVENTS = 18,
43775 };
43776 
43777 enum sas_open_rej_reason {
43778 	SAS_OREJ_UNKNOWN = 0,
43779 	SAS_OREJ_BAD_DEST = 1,
43780 	SAS_OREJ_CONN_RATE = 2,
43781 	SAS_OREJ_EPROTO = 3,
43782 	SAS_OREJ_RESV_AB0 = 4,
43783 	SAS_OREJ_RESV_AB1 = 5,
43784 	SAS_OREJ_RESV_AB2 = 6,
43785 	SAS_OREJ_RESV_AB3 = 7,
43786 	SAS_OREJ_WRONG_DEST = 8,
43787 	SAS_OREJ_STP_NORES = 9,
43788 	SAS_OREJ_NO_DEST = 10,
43789 	SAS_OREJ_PATH_BLOCKED = 11,
43790 	SAS_OREJ_RSVD_CONT0 = 12,
43791 	SAS_OREJ_RSVD_CONT1 = 13,
43792 	SAS_OREJ_RSVD_INIT0 = 14,
43793 	SAS_OREJ_RSVD_INIT1 = 15,
43794 	SAS_OREJ_RSVD_STOP0 = 16,
43795 	SAS_OREJ_RSVD_STOP1 = 17,
43796 	SAS_OREJ_RSVD_RETRY = 18,
43797 };
43798 
43799 struct dev_to_host_fis {
43800 	u8 fis_type;
43801 	u8 flags;
43802 	u8 status;
43803 	u8 error;
43804 	u8 lbal;
43805 	union {
43806 		u8 lbam;
43807 		u8 byte_count_low;
43808 	};
43809 	union {
43810 		u8 lbah;
43811 		u8 byte_count_high;
43812 	};
43813 	u8 device;
43814 	u8 lbal_exp;
43815 	u8 lbam_exp;
43816 	u8 lbah_exp;
43817 	u8 _r_a;
43818 	union {
43819 		u8 sector_count;
43820 		u8 interrupt_reason;
43821 	};
43822 	u8 sector_count_exp;
43823 	u8 _r_b;
43824 	u8 _r_c;
43825 	u32 _r_d;
43826 };
43827 
43828 struct host_to_dev_fis {
43829 	u8 fis_type;
43830 	u8 flags;
43831 	u8 command;
43832 	u8 features;
43833 	u8 lbal;
43834 	union {
43835 		u8 lbam;
43836 		u8 byte_count_low;
43837 	};
43838 	union {
43839 		u8 lbah;
43840 		u8 byte_count_high;
43841 	};
43842 	u8 device;
43843 	u8 lbal_exp;
43844 	u8 lbam_exp;
43845 	u8 lbah_exp;
43846 	u8 features_exp;
43847 	union {
43848 		u8 sector_count;
43849 		u8 interrupt_reason;
43850 	};
43851 	u8 sector_count_exp;
43852 	u8 _r_a;
43853 	u8 control;
43854 	u32 _r_b;
43855 };
43856 
43857 struct report_phy_sata_resp {
43858 	u8 _r_a[5];
43859 	u8 phy_id;
43860 	u8 _r_b;
43861 	u8 affil_valid: 1;
43862 	u8 affil_supp: 1;
43863 	u8 _r_c: 6;
43864 	u32 _r_d;
43865 	u8 stp_sas_addr[8];
43866 	struct dev_to_host_fis fis;
43867 	u32 _r_e;
43868 	u8 affil_stp_ini_addr[8];
43869 	__be32 crc;
43870 };
43871 
43872 struct smp_rps_resp {
43873 	u8 frame_type;
43874 	u8 function;
43875 	u8 result;
43876 	u8 reserved;
43877 	struct report_phy_sata_resp rps;
43878 };
43879 
43880 struct bsg_buffer {
43881 	unsigned int payload_len;
43882 	int sg_cnt;
43883 	struct scatterlist *sg_list;
43884 };
43885 
43886 struct bsg_job {
43887 	struct device *dev;
43888 	struct kref kref;
43889 	unsigned int timeout;
43890 	void *request;
43891 	void *reply;
43892 	unsigned int request_len;
43893 	unsigned int reply_len;
43894 	struct bsg_buffer request_payload;
43895 	struct bsg_buffer reply_payload;
43896 	int result;
43897 	unsigned int reply_payload_rcv_len;
43898 	struct request *bidi_rq;
43899 	struct bio *bidi_bio;
43900 	void *dd_data;
43901 };
43902 
43903 enum sas_linkrate {
43904 	SAS_LINK_RATE_UNKNOWN = 0,
43905 	SAS_PHY_DISABLED = 1,
43906 	SAS_PHY_RESET_PROBLEM = 2,
43907 	SAS_SATA_SPINUP_HOLD = 3,
43908 	SAS_SATA_PORT_SELECTOR = 4,
43909 	SAS_PHY_RESET_IN_PROGRESS = 5,
43910 	SAS_LINK_RATE_1_5_GBPS = 8,
43911 	SAS_LINK_RATE_G1 = 8,
43912 	SAS_LINK_RATE_3_0_GBPS = 9,
43913 	SAS_LINK_RATE_G2 = 9,
43914 	SAS_LINK_RATE_6_0_GBPS = 10,
43915 	SAS_LINK_RATE_12_0_GBPS = 11,
43916 	SAS_LINK_RATE_22_5_GBPS = 12,
43917 	SAS_LINK_RATE_FAILED = 16,
43918 	SAS_PHY_VIRTUAL = 17,
43919 };
43920 
43921 struct sas_identify {
43922 	enum sas_device_type device_type;
43923 	enum sas_protocol initiator_port_protocols;
43924 	enum sas_protocol target_port_protocols;
43925 	u64 sas_address;
43926 	u8 phy_identifier;
43927 };
43928 
43929 struct sas_phy {
43930 	struct device dev;
43931 	int number;
43932 	int enabled;
43933 	struct sas_identify identify;
43934 	enum sas_linkrate negotiated_linkrate;
43935 	enum sas_linkrate minimum_linkrate_hw;
43936 	enum sas_linkrate minimum_linkrate;
43937 	enum sas_linkrate maximum_linkrate_hw;
43938 	enum sas_linkrate maximum_linkrate;
43939 	u32 invalid_dword_count;
43940 	u32 running_disparity_error_count;
43941 	u32 loss_of_dword_sync_count;
43942 	u32 phy_reset_problem_count;
43943 	struct list_head port_siblings;
43944 	void *hostdata;
43945 };
43946 
43947 struct sas_rphy {
43948 	struct device dev;
43949 	struct sas_identify identify;
43950 	struct list_head list;
43951 	struct request_queue *q;
43952 	u32 scsi_target_id;
43953 };
43954 
43955 struct sas_port {
43956 	struct device dev;
43957 	int port_identifier;
43958 	int num_phys;
43959 	unsigned int is_backlink: 1;
43960 	struct sas_rphy *rphy;
43961 	struct mutex phy_list_mutex;
43962 	struct list_head phy_list;
43963 	struct list_head del_list;
43964 };
43965 
43966 struct sas_phy_linkrates {
43967 	enum sas_linkrate maximum_linkrate;
43968 	enum sas_linkrate minimum_linkrate;
43969 };
43970 
43971 struct sas_function_template {
43972 	int (*get_linkerrors)(struct sas_phy *);
43973 	int (*get_enclosure_identifier)(struct sas_rphy *, u64 *);
43974 	int (*get_bay_identifier)(struct sas_rphy *);
43975 	int (*phy_reset)(struct sas_phy *, int);
43976 	int (*phy_enable)(struct sas_phy *, int);
43977 	int (*phy_setup)(struct sas_phy *);
43978 	void (*phy_release)(struct sas_phy *);
43979 	int (*set_phy_speed)(struct sas_phy *, struct sas_phy_linkrates *);
43980 	void (*smp_handler)(struct bsg_job *, struct Scsi_Host *, struct sas_rphy *);
43981 };
43982 
43983 enum {
43984 	ATA_MAX_DEVICES = 2,
43985 	ATA_MAX_PRD = 256,
43986 	ATA_SECT_SIZE = 512,
43987 	ATA_MAX_SECTORS_128 = 128,
43988 	ATA_MAX_SECTORS = 256,
43989 	ATA_MAX_SECTORS_1024 = 1024,
43990 	ATA_MAX_SECTORS_LBA48 = 65535,
43991 	ATA_MAX_SECTORS_TAPE = 65535,
43992 	ATA_MAX_TRIM_RNUM = 64,
43993 	ATA_ID_WORDS = 256,
43994 	ATA_ID_CONFIG = 0,
43995 	ATA_ID_CYLS = 1,
43996 	ATA_ID_HEADS = 3,
43997 	ATA_ID_SECTORS = 6,
43998 	ATA_ID_SERNO = 10,
43999 	ATA_ID_BUF_SIZE = 21,
44000 	ATA_ID_FW_REV = 23,
44001 	ATA_ID_PROD = 27,
44002 	ATA_ID_MAX_MULTSECT = 47,
44003 	ATA_ID_DWORD_IO = 48,
44004 	ATA_ID_TRUSTED = 48,
44005 	ATA_ID_CAPABILITY = 49,
44006 	ATA_ID_OLD_PIO_MODES = 51,
44007 	ATA_ID_OLD_DMA_MODES = 52,
44008 	ATA_ID_FIELD_VALID = 53,
44009 	ATA_ID_CUR_CYLS = 54,
44010 	ATA_ID_CUR_HEADS = 55,
44011 	ATA_ID_CUR_SECTORS = 56,
44012 	ATA_ID_MULTSECT = 59,
44013 	ATA_ID_LBA_CAPACITY = 60,
44014 	ATA_ID_SWDMA_MODES = 62,
44015 	ATA_ID_MWDMA_MODES = 63,
44016 	ATA_ID_PIO_MODES = 64,
44017 	ATA_ID_EIDE_DMA_MIN = 65,
44018 	ATA_ID_EIDE_DMA_TIME = 66,
44019 	ATA_ID_EIDE_PIO = 67,
44020 	ATA_ID_EIDE_PIO_IORDY = 68,
44021 	ATA_ID_ADDITIONAL_SUPP = 69,
44022 	ATA_ID_QUEUE_DEPTH = 75,
44023 	ATA_ID_SATA_CAPABILITY = 76,
44024 	ATA_ID_SATA_CAPABILITY_2 = 77,
44025 	ATA_ID_FEATURE_SUPP = 78,
44026 	ATA_ID_MAJOR_VER = 80,
44027 	ATA_ID_COMMAND_SET_1 = 82,
44028 	ATA_ID_COMMAND_SET_2 = 83,
44029 	ATA_ID_CFSSE = 84,
44030 	ATA_ID_CFS_ENABLE_1 = 85,
44031 	ATA_ID_CFS_ENABLE_2 = 86,
44032 	ATA_ID_CSF_DEFAULT = 87,
44033 	ATA_ID_UDMA_MODES = 88,
44034 	ATA_ID_HW_CONFIG = 93,
44035 	ATA_ID_SPG = 98,
44036 	ATA_ID_LBA_CAPACITY_2 = 100,
44037 	ATA_ID_SECTOR_SIZE = 106,
44038 	ATA_ID_WWN = 108,
44039 	ATA_ID_LOGICAL_SECTOR_SIZE = 117,
44040 	ATA_ID_COMMAND_SET_3 = 119,
44041 	ATA_ID_COMMAND_SET_4 = 120,
44042 	ATA_ID_LAST_LUN = 126,
44043 	ATA_ID_DLF = 128,
44044 	ATA_ID_CSFO = 129,
44045 	ATA_ID_CFA_POWER = 160,
44046 	ATA_ID_CFA_KEY_MGMT = 162,
44047 	ATA_ID_CFA_MODES = 163,
44048 	ATA_ID_DATA_SET_MGMT = 169,
44049 	ATA_ID_SCT_CMD_XPORT = 206,
44050 	ATA_ID_ROT_SPEED = 217,
44051 	ATA_ID_PIO4 = 2,
44052 	ATA_ID_SERNO_LEN = 20,
44053 	ATA_ID_FW_REV_LEN = 8,
44054 	ATA_ID_PROD_LEN = 40,
44055 	ATA_ID_WWN_LEN = 8,
44056 	ATA_PCI_CTL_OFS = 2,
44057 	ATA_PIO0 = 1,
44058 	ATA_PIO1 = 3,
44059 	ATA_PIO2 = 7,
44060 	ATA_PIO3 = 15,
44061 	ATA_PIO4 = 31,
44062 	ATA_PIO5 = 63,
44063 	ATA_PIO6 = 127,
44064 	ATA_PIO4_ONLY = 16,
44065 	ATA_SWDMA0 = 1,
44066 	ATA_SWDMA1 = 3,
44067 	ATA_SWDMA2 = 7,
44068 	ATA_SWDMA2_ONLY = 4,
44069 	ATA_MWDMA0 = 1,
44070 	ATA_MWDMA1 = 3,
44071 	ATA_MWDMA2 = 7,
44072 	ATA_MWDMA3 = 15,
44073 	ATA_MWDMA4 = 31,
44074 	ATA_MWDMA12_ONLY = 6,
44075 	ATA_MWDMA2_ONLY = 4,
44076 	ATA_UDMA0 = 1,
44077 	ATA_UDMA1 = 3,
44078 	ATA_UDMA2 = 7,
44079 	ATA_UDMA3 = 15,
44080 	ATA_UDMA4 = 31,
44081 	ATA_UDMA5 = 63,
44082 	ATA_UDMA6 = 127,
44083 	ATA_UDMA7 = 255,
44084 	ATA_UDMA24_ONLY = 20,
44085 	ATA_UDMA_MASK_40C = 7,
44086 	ATA_PRD_SZ = 8,
44087 	ATA_PRD_TBL_SZ = 2048,
44088 	ATA_PRD_EOT = -2147483648,
44089 	ATA_DMA_TABLE_OFS = 4,
44090 	ATA_DMA_STATUS = 2,
44091 	ATA_DMA_CMD = 0,
44092 	ATA_DMA_WR = 8,
44093 	ATA_DMA_START = 1,
44094 	ATA_DMA_INTR = 4,
44095 	ATA_DMA_ERR = 2,
44096 	ATA_DMA_ACTIVE = 1,
44097 	ATA_HOB = 128,
44098 	ATA_NIEN = 2,
44099 	ATA_LBA = 64,
44100 	ATA_DEV1 = 16,
44101 	ATA_DEVICE_OBS = 160,
44102 	ATA_DEVCTL_OBS = 8,
44103 	ATA_BUSY = 128,
44104 	ATA_DRDY = 64,
44105 	ATA_DF = 32,
44106 	ATA_DSC = 16,
44107 	ATA_DRQ = 8,
44108 	ATA_CORR = 4,
44109 	ATA_SENSE = 2,
44110 	ATA_ERR = 1,
44111 	ATA_SRST = 4,
44112 	ATA_ICRC = 128,
44113 	ATA_BBK = 128,
44114 	ATA_UNC = 64,
44115 	ATA_MC = 32,
44116 	ATA_IDNF = 16,
44117 	ATA_MCR = 8,
44118 	ATA_ABORTED = 4,
44119 	ATA_TRK0NF = 2,
44120 	ATA_AMNF = 1,
44121 	ATAPI_LFS = 240,
44122 	ATAPI_EOM = 2,
44123 	ATAPI_ILI = 1,
44124 	ATAPI_IO = 2,
44125 	ATAPI_COD = 1,
44126 	ATA_REG_DATA = 0,
44127 	ATA_REG_ERR = 1,
44128 	ATA_REG_NSECT = 2,
44129 	ATA_REG_LBAL = 3,
44130 	ATA_REG_LBAM = 4,
44131 	ATA_REG_LBAH = 5,
44132 	ATA_REG_DEVICE = 6,
44133 	ATA_REG_STATUS = 7,
44134 	ATA_REG_FEATURE = 1,
44135 	ATA_REG_CMD = 7,
44136 	ATA_REG_BYTEL = 4,
44137 	ATA_REG_BYTEH = 5,
44138 	ATA_REG_DEVSEL = 6,
44139 	ATA_REG_IRQ = 2,
44140 	ATA_CMD_DEV_RESET = 8,
44141 	ATA_CMD_CHK_POWER = 229,
44142 	ATA_CMD_STANDBY = 226,
44143 	ATA_CMD_IDLE = 227,
44144 	ATA_CMD_EDD = 144,
44145 	ATA_CMD_DOWNLOAD_MICRO = 146,
44146 	ATA_CMD_DOWNLOAD_MICRO_DMA = 147,
44147 	ATA_CMD_NOP = 0,
44148 	ATA_CMD_FLUSH = 231,
44149 	ATA_CMD_FLUSH_EXT = 234,
44150 	ATA_CMD_ID_ATA = 236,
44151 	ATA_CMD_ID_ATAPI = 161,
44152 	ATA_CMD_SERVICE = 162,
44153 	ATA_CMD_READ = 200,
44154 	ATA_CMD_READ_EXT = 37,
44155 	ATA_CMD_READ_QUEUED = 38,
44156 	ATA_CMD_READ_STREAM_EXT = 43,
44157 	ATA_CMD_READ_STREAM_DMA_EXT = 42,
44158 	ATA_CMD_WRITE = 202,
44159 	ATA_CMD_WRITE_EXT = 53,
44160 	ATA_CMD_WRITE_QUEUED = 54,
44161 	ATA_CMD_WRITE_STREAM_EXT = 59,
44162 	ATA_CMD_WRITE_STREAM_DMA_EXT = 58,
44163 	ATA_CMD_WRITE_FUA_EXT = 61,
44164 	ATA_CMD_WRITE_QUEUED_FUA_EXT = 62,
44165 	ATA_CMD_FPDMA_READ = 96,
44166 	ATA_CMD_FPDMA_WRITE = 97,
44167 	ATA_CMD_NCQ_NON_DATA = 99,
44168 	ATA_CMD_FPDMA_SEND = 100,
44169 	ATA_CMD_FPDMA_RECV = 101,
44170 	ATA_CMD_PIO_READ = 32,
44171 	ATA_CMD_PIO_READ_EXT = 36,
44172 	ATA_CMD_PIO_WRITE = 48,
44173 	ATA_CMD_PIO_WRITE_EXT = 52,
44174 	ATA_CMD_READ_MULTI = 196,
44175 	ATA_CMD_READ_MULTI_EXT = 41,
44176 	ATA_CMD_WRITE_MULTI = 197,
44177 	ATA_CMD_WRITE_MULTI_EXT = 57,
44178 	ATA_CMD_WRITE_MULTI_FUA_EXT = 206,
44179 	ATA_CMD_SET_FEATURES = 239,
44180 	ATA_CMD_SET_MULTI = 198,
44181 	ATA_CMD_PACKET = 160,
44182 	ATA_CMD_VERIFY = 64,
44183 	ATA_CMD_VERIFY_EXT = 66,
44184 	ATA_CMD_WRITE_UNCORR_EXT = 69,
44185 	ATA_CMD_STANDBYNOW1 = 224,
44186 	ATA_CMD_IDLEIMMEDIATE = 225,
44187 	ATA_CMD_SLEEP = 230,
44188 	ATA_CMD_INIT_DEV_PARAMS = 145,
44189 	ATA_CMD_READ_NATIVE_MAX = 248,
44190 	ATA_CMD_READ_NATIVE_MAX_EXT = 39,
44191 	ATA_CMD_SET_MAX = 249,
44192 	ATA_CMD_SET_MAX_EXT = 55,
44193 	ATA_CMD_READ_LOG_EXT = 47,
44194 	ATA_CMD_WRITE_LOG_EXT = 63,
44195 	ATA_CMD_READ_LOG_DMA_EXT = 71,
44196 	ATA_CMD_WRITE_LOG_DMA_EXT = 87,
44197 	ATA_CMD_TRUSTED_NONDATA = 91,
44198 	ATA_CMD_TRUSTED_RCV = 92,
44199 	ATA_CMD_TRUSTED_RCV_DMA = 93,
44200 	ATA_CMD_TRUSTED_SND = 94,
44201 	ATA_CMD_TRUSTED_SND_DMA = 95,
44202 	ATA_CMD_PMP_READ = 228,
44203 	ATA_CMD_PMP_READ_DMA = 233,
44204 	ATA_CMD_PMP_WRITE = 232,
44205 	ATA_CMD_PMP_WRITE_DMA = 235,
44206 	ATA_CMD_CONF_OVERLAY = 177,
44207 	ATA_CMD_SEC_SET_PASS = 241,
44208 	ATA_CMD_SEC_UNLOCK = 242,
44209 	ATA_CMD_SEC_ERASE_PREP = 243,
44210 	ATA_CMD_SEC_ERASE_UNIT = 244,
44211 	ATA_CMD_SEC_FREEZE_LOCK = 245,
44212 	ATA_CMD_SEC_DISABLE_PASS = 246,
44213 	ATA_CMD_CONFIG_STREAM = 81,
44214 	ATA_CMD_SMART = 176,
44215 	ATA_CMD_MEDIA_LOCK = 222,
44216 	ATA_CMD_MEDIA_UNLOCK = 223,
44217 	ATA_CMD_DSM = 6,
44218 	ATA_CMD_CHK_MED_CRD_TYP = 209,
44219 	ATA_CMD_CFA_REQ_EXT_ERR = 3,
44220 	ATA_CMD_CFA_WRITE_NE = 56,
44221 	ATA_CMD_CFA_TRANS_SECT = 135,
44222 	ATA_CMD_CFA_ERASE = 192,
44223 	ATA_CMD_CFA_WRITE_MULT_NE = 205,
44224 	ATA_CMD_REQ_SENSE_DATA = 11,
44225 	ATA_CMD_SANITIZE_DEVICE = 180,
44226 	ATA_CMD_ZAC_MGMT_IN = 74,
44227 	ATA_CMD_ZAC_MGMT_OUT = 159,
44228 	ATA_CMD_RESTORE = 16,
44229 	ATA_SUBCMD_FPDMA_RECV_RD_LOG_DMA_EXT = 1,
44230 	ATA_SUBCMD_FPDMA_RECV_ZAC_MGMT_IN = 2,
44231 	ATA_SUBCMD_FPDMA_SEND_DSM = 0,
44232 	ATA_SUBCMD_FPDMA_SEND_WR_LOG_DMA_EXT = 2,
44233 	ATA_SUBCMD_NCQ_NON_DATA_ABORT_QUEUE = 0,
44234 	ATA_SUBCMD_NCQ_NON_DATA_SET_FEATURES = 5,
44235 	ATA_SUBCMD_NCQ_NON_DATA_ZERO_EXT = 6,
44236 	ATA_SUBCMD_NCQ_NON_DATA_ZAC_MGMT_OUT = 7,
44237 	ATA_SUBCMD_ZAC_MGMT_IN_REPORT_ZONES = 0,
44238 	ATA_SUBCMD_ZAC_MGMT_OUT_CLOSE_ZONE = 1,
44239 	ATA_SUBCMD_ZAC_MGMT_OUT_FINISH_ZONE = 2,
44240 	ATA_SUBCMD_ZAC_MGMT_OUT_OPEN_ZONE = 3,
44241 	ATA_SUBCMD_ZAC_MGMT_OUT_RESET_WRITE_POINTER = 4,
44242 	ATA_LOG_DIRECTORY = 0,
44243 	ATA_LOG_SATA_NCQ = 16,
44244 	ATA_LOG_NCQ_NON_DATA = 18,
44245 	ATA_LOG_NCQ_SEND_RECV = 19,
44246 	ATA_LOG_IDENTIFY_DEVICE = 48,
44247 	ATA_LOG_CONCURRENT_POSITIONING_RANGES = 71,
44248 	ATA_LOG_SECURITY = 6,
44249 	ATA_LOG_SATA_SETTINGS = 8,
44250 	ATA_LOG_ZONED_INFORMATION = 9,
44251 	ATA_LOG_DEVSLP_OFFSET = 48,
44252 	ATA_LOG_DEVSLP_SIZE = 8,
44253 	ATA_LOG_DEVSLP_MDAT = 0,
44254 	ATA_LOG_DEVSLP_MDAT_MASK = 31,
44255 	ATA_LOG_DEVSLP_DETO = 1,
44256 	ATA_LOG_DEVSLP_VALID = 7,
44257 	ATA_LOG_DEVSLP_VALID_MASK = 128,
44258 	ATA_LOG_NCQ_PRIO_OFFSET = 9,
44259 	ATA_LOG_NCQ_SEND_RECV_SUBCMDS_OFFSET = 0,
44260 	ATA_LOG_NCQ_SEND_RECV_SUBCMDS_DSM = 1,
44261 	ATA_LOG_NCQ_SEND_RECV_DSM_OFFSET = 4,
44262 	ATA_LOG_NCQ_SEND_RECV_DSM_TRIM = 1,
44263 	ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET = 8,
44264 	ATA_LOG_NCQ_SEND_RECV_RD_LOG_SUPPORTED = 1,
44265 	ATA_LOG_NCQ_SEND_RECV_WR_LOG_OFFSET = 12,
44266 	ATA_LOG_NCQ_SEND_RECV_WR_LOG_SUPPORTED = 1,
44267 	ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OFFSET = 16,
44268 	ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OUT_SUPPORTED = 1,
44269 	ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_IN_SUPPORTED = 2,
44270 	ATA_LOG_NCQ_SEND_RECV_SIZE = 20,
44271 	ATA_LOG_NCQ_NON_DATA_SUBCMDS_OFFSET = 0,
44272 	ATA_LOG_NCQ_NON_DATA_ABORT_OFFSET = 0,
44273 	ATA_LOG_NCQ_NON_DATA_ABORT_NCQ = 1,
44274 	ATA_LOG_NCQ_NON_DATA_ABORT_ALL = 2,
44275 	ATA_LOG_NCQ_NON_DATA_ABORT_STREAMING = 4,
44276 	ATA_LOG_NCQ_NON_DATA_ABORT_NON_STREAMING = 8,
44277 	ATA_LOG_NCQ_NON_DATA_ABORT_SELECTED = 16,
44278 	ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OFFSET = 28,
44279 	ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OUT = 1,
44280 	ATA_LOG_NCQ_NON_DATA_SIZE = 64,
44281 	ATA_CMD_READ_LONG = 34,
44282 	ATA_CMD_READ_LONG_ONCE = 35,
44283 	ATA_CMD_WRITE_LONG = 50,
44284 	ATA_CMD_WRITE_LONG_ONCE = 51,
44285 	SETFEATURES_XFER = 3,
44286 	XFER_UDMA_7 = 71,
44287 	XFER_UDMA_6 = 70,
44288 	XFER_UDMA_5 = 69,
44289 	XFER_UDMA_4 = 68,
44290 	XFER_UDMA_3 = 67,
44291 	XFER_UDMA_2 = 66,
44292 	XFER_UDMA_1 = 65,
44293 	XFER_UDMA_0 = 64,
44294 	XFER_MW_DMA_4 = 36,
44295 	XFER_MW_DMA_3 = 35,
44296 	XFER_MW_DMA_2 = 34,
44297 	XFER_MW_DMA_1 = 33,
44298 	XFER_MW_DMA_0 = 32,
44299 	XFER_SW_DMA_2 = 18,
44300 	XFER_SW_DMA_1 = 17,
44301 	XFER_SW_DMA_0 = 16,
44302 	XFER_PIO_6 = 14,
44303 	XFER_PIO_5 = 13,
44304 	XFER_PIO_4 = 12,
44305 	XFER_PIO_3 = 11,
44306 	XFER_PIO_2 = 10,
44307 	XFER_PIO_1 = 9,
44308 	XFER_PIO_0 = 8,
44309 	XFER_PIO_SLOW = 0,
44310 	SETFEATURES_WC_ON = 2,
44311 	SETFEATURES_WC_OFF = 130,
44312 	SETFEATURES_RA_ON = 170,
44313 	SETFEATURES_RA_OFF = 85,
44314 	SETFEATURES_AAM_ON = 66,
44315 	SETFEATURES_AAM_OFF = 194,
44316 	SETFEATURES_SPINUP = 7,
44317 	SETFEATURES_SPINUP_TIMEOUT = 30000,
44318 	SETFEATURES_SATA_ENABLE = 16,
44319 	SETFEATURES_SATA_DISABLE = 144,
44320 	SATA_FPDMA_OFFSET = 1,
44321 	SATA_FPDMA_AA = 2,
44322 	SATA_DIPM = 3,
44323 	SATA_FPDMA_IN_ORDER = 4,
44324 	SATA_AN = 5,
44325 	SATA_SSP = 6,
44326 	SATA_DEVSLP = 9,
44327 	SETFEATURE_SENSE_DATA = 195,
44328 	ATA_SET_MAX_ADDR = 0,
44329 	ATA_SET_MAX_PASSWD = 1,
44330 	ATA_SET_MAX_LOCK = 2,
44331 	ATA_SET_MAX_UNLOCK = 3,
44332 	ATA_SET_MAX_FREEZE_LOCK = 4,
44333 	ATA_SET_MAX_PASSWD_DMA = 5,
44334 	ATA_SET_MAX_UNLOCK_DMA = 6,
44335 	ATA_DCO_RESTORE = 192,
44336 	ATA_DCO_FREEZE_LOCK = 193,
44337 	ATA_DCO_IDENTIFY = 194,
44338 	ATA_DCO_SET = 195,
44339 	ATA_SMART_ENABLE = 216,
44340 	ATA_SMART_READ_VALUES = 208,
44341 	ATA_SMART_READ_THRESHOLDS = 209,
44342 	ATA_DSM_TRIM = 1,
44343 	ATA_SMART_LBAM_PASS = 79,
44344 	ATA_SMART_LBAH_PASS = 194,
44345 	ATAPI_PKT_DMA = 1,
44346 	ATAPI_DMADIR = 4,
44347 	ATAPI_CDB_LEN = 16,
44348 	SATA_PMP_MAX_PORTS = 15,
44349 	SATA_PMP_CTRL_PORT = 15,
44350 	SATA_PMP_GSCR_DWORDS = 128,
44351 	SATA_PMP_GSCR_PROD_ID = 0,
44352 	SATA_PMP_GSCR_REV = 1,
44353 	SATA_PMP_GSCR_PORT_INFO = 2,
44354 	SATA_PMP_GSCR_ERROR = 32,
44355 	SATA_PMP_GSCR_ERROR_EN = 33,
44356 	SATA_PMP_GSCR_FEAT = 64,
44357 	SATA_PMP_GSCR_FEAT_EN = 96,
44358 	SATA_PMP_PSCR_STATUS = 0,
44359 	SATA_PMP_PSCR_ERROR = 1,
44360 	SATA_PMP_PSCR_CONTROL = 2,
44361 	SATA_PMP_FEAT_BIST = 1,
44362 	SATA_PMP_FEAT_PMREQ = 2,
44363 	SATA_PMP_FEAT_DYNSSC = 4,
44364 	SATA_PMP_FEAT_NOTIFY = 8,
44365 	ATA_CBL_NONE = 0,
44366 	ATA_CBL_PATA40 = 1,
44367 	ATA_CBL_PATA80 = 2,
44368 	ATA_CBL_PATA40_SHORT = 3,
44369 	ATA_CBL_PATA_UNK = 4,
44370 	ATA_CBL_PATA_IGN = 5,
44371 	ATA_CBL_SATA = 6,
44372 	SCR_STATUS = 0,
44373 	SCR_ERROR = 1,
44374 	SCR_CONTROL = 2,
44375 	SCR_ACTIVE = 3,
44376 	SCR_NOTIFICATION = 4,
44377 	SERR_DATA_RECOVERED = 1,
44378 	SERR_COMM_RECOVERED = 2,
44379 	SERR_DATA = 256,
44380 	SERR_PERSISTENT = 512,
44381 	SERR_PROTOCOL = 1024,
44382 	SERR_INTERNAL = 2048,
44383 	SERR_PHYRDY_CHG = 65536,
44384 	SERR_PHY_INT_ERR = 131072,
44385 	SERR_COMM_WAKE = 262144,
44386 	SERR_10B_8B_ERR = 524288,
44387 	SERR_DISPARITY = 1048576,
44388 	SERR_CRC = 2097152,
44389 	SERR_HANDSHAKE = 4194304,
44390 	SERR_LINK_SEQ_ERR = 8388608,
44391 	SERR_TRANS_ST_ERROR = 16777216,
44392 	SERR_UNRECOG_FIS = 33554432,
44393 	SERR_DEV_XCHG = 67108864,
44394 };
44395 
44396 struct ata_bmdma_prd {
44397 	__le32 addr;
44398 	__le32 flags_len;
44399 };
44400 
44401 struct cdrom_msf0 {
44402 	__u8 minute;
44403 	__u8 second;
44404 	__u8 frame;
44405 };
44406 
44407 union cdrom_addr {
44408 	struct cdrom_msf0 msf;
44409 	int lba;
44410 };
44411 
44412 struct cdrom_multisession {
44413 	union cdrom_addr addr;
44414 	__u8 xa_flag;
44415 	__u8 addr_format;
44416 };
44417 
44418 struct cdrom_mcn {
44419 	__u8 medium_catalog_number[14];
44420 };
44421 
44422 struct packet_command {
44423 	unsigned char cmd[12];
44424 	unsigned char *buffer;
44425 	unsigned int buflen;
44426 	int stat;
44427 	struct scsi_sense_hdr *sshdr;
44428 	unsigned char data_direction;
44429 	int quiet;
44430 	int timeout;
44431 	void *reserved[1];
44432 };
44433 
44434 struct cdrom_device_ops {
44435 	int (*open)(struct cdrom_device_info *, int);
44436 	void (*release)(struct cdrom_device_info *);
44437 	int (*drive_status)(struct cdrom_device_info *, int);
44438 	unsigned int (*check_events)(struct cdrom_device_info *, unsigned int, int);
44439 	int (*tray_move)(struct cdrom_device_info *, int);
44440 	int (*lock_door)(struct cdrom_device_info *, int);
44441 	int (*select_speed)(struct cdrom_device_info *, int);
44442 	int (*get_last_session)(struct cdrom_device_info *, struct cdrom_multisession *);
44443 	int (*get_mcn)(struct cdrom_device_info *, struct cdrom_mcn *);
44444 	int (*reset)(struct cdrom_device_info *);
44445 	int (*audio_ioctl)(struct cdrom_device_info *, unsigned int, void *);
44446 	int (*generic_packet)(struct cdrom_device_info *, struct packet_command *);
44447 	int (*read_cdda_bpc)(struct cdrom_device_info *, void *, u32, u32, u8 *);
44448 	const int capability;
44449 };
44450 
44451 enum {
44452 	LIBATA_MAX_PRD = 128,
44453 	LIBATA_DUMB_MAX_PRD = 64,
44454 	ATA_DEF_QUEUE = 1,
44455 	ATA_MAX_QUEUE = 32,
44456 	ATA_TAG_INTERNAL = 32,
44457 	ATA_SHORT_PAUSE = 16,
44458 	ATAPI_MAX_DRAIN = 16384,
44459 	ATA_ALL_DEVICES = 3,
44460 	ATA_SHT_EMULATED = 1,
44461 	ATA_SHT_THIS_ID = -1,
44462 	ATA_TFLAG_LBA48 = 1,
44463 	ATA_TFLAG_ISADDR = 2,
44464 	ATA_TFLAG_DEVICE = 4,
44465 	ATA_TFLAG_WRITE = 8,
44466 	ATA_TFLAG_LBA = 16,
44467 	ATA_TFLAG_FUA = 32,
44468 	ATA_TFLAG_POLLING = 64,
44469 	ATA_DFLAG_LBA = 1,
44470 	ATA_DFLAG_LBA48 = 2,
44471 	ATA_DFLAG_CDB_INTR = 4,
44472 	ATA_DFLAG_NCQ = 8,
44473 	ATA_DFLAG_FLUSH_EXT = 16,
44474 	ATA_DFLAG_ACPI_PENDING = 32,
44475 	ATA_DFLAG_ACPI_FAILED = 64,
44476 	ATA_DFLAG_AN = 128,
44477 	ATA_DFLAG_TRUSTED = 256,
44478 	ATA_DFLAG_DMADIR = 1024,
44479 	ATA_DFLAG_CFG_MASK = 4095,
44480 	ATA_DFLAG_PIO = 4096,
44481 	ATA_DFLAG_NCQ_OFF = 8192,
44482 	ATA_DFLAG_SLEEPING = 32768,
44483 	ATA_DFLAG_DUBIOUS_XFER = 65536,
44484 	ATA_DFLAG_NO_UNLOAD = 131072,
44485 	ATA_DFLAG_UNLOCK_HPA = 262144,
44486 	ATA_DFLAG_NCQ_SEND_RECV = 524288,
44487 	ATA_DFLAG_NCQ_PRIO = 1048576,
44488 	ATA_DFLAG_NCQ_PRIO_ENABLED = 2097152,
44489 	ATA_DFLAG_INIT_MASK = 16777215,
44490 	ATA_DFLAG_DETACH = 16777216,
44491 	ATA_DFLAG_DETACHED = 33554432,
44492 	ATA_DFLAG_DA = 67108864,
44493 	ATA_DFLAG_DEVSLP = 134217728,
44494 	ATA_DFLAG_ACPI_DISABLED = 268435456,
44495 	ATA_DFLAG_D_SENSE = 536870912,
44496 	ATA_DFLAG_ZAC = 1073741824,
44497 	ATA_DFLAG_FEATURES_MASK = 202899712,
44498 	ATA_DEV_UNKNOWN = 0,
44499 	ATA_DEV_ATA = 1,
44500 	ATA_DEV_ATA_UNSUP = 2,
44501 	ATA_DEV_ATAPI = 3,
44502 	ATA_DEV_ATAPI_UNSUP = 4,
44503 	ATA_DEV_PMP = 5,
44504 	ATA_DEV_PMP_UNSUP = 6,
44505 	ATA_DEV_SEMB = 7,
44506 	ATA_DEV_SEMB_UNSUP = 8,
44507 	ATA_DEV_ZAC = 9,
44508 	ATA_DEV_ZAC_UNSUP = 10,
44509 	ATA_DEV_NONE = 11,
44510 	ATA_LFLAG_NO_HRST = 2,
44511 	ATA_LFLAG_NO_SRST = 4,
44512 	ATA_LFLAG_ASSUME_ATA = 8,
44513 	ATA_LFLAG_ASSUME_SEMB = 16,
44514 	ATA_LFLAG_ASSUME_CLASS = 24,
44515 	ATA_LFLAG_NO_RETRY = 32,
44516 	ATA_LFLAG_DISABLED = 64,
44517 	ATA_LFLAG_SW_ACTIVITY = 128,
44518 	ATA_LFLAG_NO_LPM = 256,
44519 	ATA_LFLAG_RST_ONCE = 512,
44520 	ATA_LFLAG_CHANGED = 1024,
44521 	ATA_LFLAG_NO_DEBOUNCE_DELAY = 2048,
44522 	ATA_FLAG_SLAVE_POSS = 1,
44523 	ATA_FLAG_SATA = 2,
44524 	ATA_FLAG_NO_LPM = 4,
44525 	ATA_FLAG_NO_LOG_PAGE = 32,
44526 	ATA_FLAG_NO_ATAPI = 64,
44527 	ATA_FLAG_PIO_DMA = 128,
44528 	ATA_FLAG_PIO_LBA48 = 256,
44529 	ATA_FLAG_PIO_POLLING = 512,
44530 	ATA_FLAG_NCQ = 1024,
44531 	ATA_FLAG_NO_POWEROFF_SPINDOWN = 2048,
44532 	ATA_FLAG_NO_HIBERNATE_SPINDOWN = 4096,
44533 	ATA_FLAG_DEBUGMSG = 8192,
44534 	ATA_FLAG_FPDMA_AA = 16384,
44535 	ATA_FLAG_IGN_SIMPLEX = 32768,
44536 	ATA_FLAG_NO_IORDY = 65536,
44537 	ATA_FLAG_ACPI_SATA = 131072,
44538 	ATA_FLAG_AN = 262144,
44539 	ATA_FLAG_PMP = 524288,
44540 	ATA_FLAG_FPDMA_AUX = 1048576,
44541 	ATA_FLAG_EM = 2097152,
44542 	ATA_FLAG_SW_ACTIVITY = 4194304,
44543 	ATA_FLAG_NO_DIPM = 8388608,
44544 	ATA_FLAG_SAS_HOST = 16777216,
44545 	ATA_PFLAG_EH_PENDING = 1,
44546 	ATA_PFLAG_EH_IN_PROGRESS = 2,
44547 	ATA_PFLAG_FROZEN = 4,
44548 	ATA_PFLAG_RECOVERED = 8,
44549 	ATA_PFLAG_LOADING = 16,
44550 	ATA_PFLAG_SCSI_HOTPLUG = 64,
44551 	ATA_PFLAG_INITIALIZING = 128,
44552 	ATA_PFLAG_RESETTING = 256,
44553 	ATA_PFLAG_UNLOADING = 512,
44554 	ATA_PFLAG_UNLOADED = 1024,
44555 	ATA_PFLAG_SUSPENDED = 131072,
44556 	ATA_PFLAG_PM_PENDING = 262144,
44557 	ATA_PFLAG_INIT_GTM_VALID = 524288,
44558 	ATA_PFLAG_PIO32 = 1048576,
44559 	ATA_PFLAG_PIO32CHANGE = 2097152,
44560 	ATA_PFLAG_EXTERNAL = 4194304,
44561 	ATA_QCFLAG_ACTIVE = 1,
44562 	ATA_QCFLAG_DMAMAP = 2,
44563 	ATA_QCFLAG_IO = 8,
44564 	ATA_QCFLAG_RESULT_TF = 16,
44565 	ATA_QCFLAG_CLEAR_EXCL = 32,
44566 	ATA_QCFLAG_QUIET = 64,
44567 	ATA_QCFLAG_RETRY = 128,
44568 	ATA_QCFLAG_FAILED = 65536,
44569 	ATA_QCFLAG_SENSE_VALID = 131072,
44570 	ATA_QCFLAG_EH_SCHEDULED = 262144,
44571 	ATA_HOST_SIMPLEX = 1,
44572 	ATA_HOST_STARTED = 2,
44573 	ATA_HOST_PARALLEL_SCAN = 4,
44574 	ATA_HOST_IGNORE_ATA = 8,
44575 	ATA_TMOUT_BOOT = 30000,
44576 	ATA_TMOUT_BOOT_QUICK = 7000,
44577 	ATA_TMOUT_INTERNAL_QUICK = 5000,
44578 	ATA_TMOUT_MAX_PARK = 30000,
44579 	ATA_TMOUT_FF_WAIT_LONG = 2000,
44580 	ATA_TMOUT_FF_WAIT = 800,
44581 	ATA_WAIT_AFTER_RESET = 150,
44582 	ATA_TMOUT_PMP_SRST_WAIT = 5000,
44583 	ATA_TMOUT_SPURIOUS_PHY = 10000,
44584 	BUS_UNKNOWN = 0,
44585 	BUS_DMA = 1,
44586 	BUS_IDLE = 2,
44587 	BUS_NOINTR = 3,
44588 	BUS_NODATA = 4,
44589 	BUS_TIMER = 5,
44590 	BUS_PIO = 6,
44591 	BUS_EDD = 7,
44592 	BUS_IDENTIFY = 8,
44593 	BUS_PACKET = 9,
44594 	PORT_UNKNOWN = 0,
44595 	PORT_ENABLED = 1,
44596 	PORT_DISABLED = 2,
44597 	ATA_NR_PIO_MODES = 7,
44598 	ATA_NR_MWDMA_MODES = 5,
44599 	ATA_NR_UDMA_MODES = 8,
44600 	ATA_SHIFT_PIO = 0,
44601 	ATA_SHIFT_MWDMA = 7,
44602 	ATA_SHIFT_UDMA = 12,
44603 	ATA_SHIFT_PRIO = 6,
44604 	ATA_PRIO_HIGH = 2,
44605 	ATA_DMA_PAD_SZ = 4,
44606 	ATA_ERING_SIZE = 32,
44607 	ATA_DEFER_LINK = 1,
44608 	ATA_DEFER_PORT = 2,
44609 	ATA_EH_DESC_LEN = 80,
44610 	ATA_EH_REVALIDATE = 1,
44611 	ATA_EH_SOFTRESET = 2,
44612 	ATA_EH_HARDRESET = 4,
44613 	ATA_EH_RESET = 6,
44614 	ATA_EH_ENABLE_LINK = 8,
44615 	ATA_EH_PARK = 32,
44616 	ATA_EH_PERDEV_MASK = 33,
44617 	ATA_EH_ALL_ACTIONS = 15,
44618 	ATA_EHI_HOTPLUGGED = 1,
44619 	ATA_EHI_NO_AUTOPSY = 4,
44620 	ATA_EHI_QUIET = 8,
44621 	ATA_EHI_NO_RECOVERY = 16,
44622 	ATA_EHI_DID_SOFTRESET = 65536,
44623 	ATA_EHI_DID_HARDRESET = 131072,
44624 	ATA_EHI_PRINTINFO = 262144,
44625 	ATA_EHI_SETMODE = 524288,
44626 	ATA_EHI_POST_SETMODE = 1048576,
44627 	ATA_EHI_DID_RESET = 196608,
44628 	ATA_EHI_TO_SLAVE_MASK = 12,
44629 	ATA_EH_MAX_TRIES = 5,
44630 	ATA_LINK_RESUME_TRIES = 5,
44631 	ATA_PROBE_MAX_TRIES = 3,
44632 	ATA_EH_DEV_TRIES = 3,
44633 	ATA_EH_PMP_TRIES = 5,
44634 	ATA_EH_PMP_LINK_TRIES = 3,
44635 	SATA_PMP_RW_TIMEOUT = 3000,
44636 	ATA_EH_CMD_TIMEOUT_TABLE_SIZE = 7,
44637 	ATA_HORKAGE_DIAGNOSTIC = 1,
44638 	ATA_HORKAGE_NODMA = 2,
44639 	ATA_HORKAGE_NONCQ = 4,
44640 	ATA_HORKAGE_MAX_SEC_128 = 8,
44641 	ATA_HORKAGE_BROKEN_HPA = 16,
44642 	ATA_HORKAGE_DISABLE = 32,
44643 	ATA_HORKAGE_HPA_SIZE = 64,
44644 	ATA_HORKAGE_IVB = 256,
44645 	ATA_HORKAGE_STUCK_ERR = 512,
44646 	ATA_HORKAGE_BRIDGE_OK = 1024,
44647 	ATA_HORKAGE_ATAPI_MOD16_DMA = 2048,
44648 	ATA_HORKAGE_FIRMWARE_WARN = 4096,
44649 	ATA_HORKAGE_1_5_GBPS = 8192,
44650 	ATA_HORKAGE_NOSETXFER = 16384,
44651 	ATA_HORKAGE_BROKEN_FPDMA_AA = 32768,
44652 	ATA_HORKAGE_DUMP_ID = 65536,
44653 	ATA_HORKAGE_MAX_SEC_LBA48 = 131072,
44654 	ATA_HORKAGE_ATAPI_DMADIR = 262144,
44655 	ATA_HORKAGE_NO_NCQ_TRIM = 524288,
44656 	ATA_HORKAGE_NOLPM = 1048576,
44657 	ATA_HORKAGE_WD_BROKEN_LPM = 2097152,
44658 	ATA_HORKAGE_ZERO_AFTER_TRIM = 4194304,
44659 	ATA_HORKAGE_NO_DMA_LOG = 8388608,
44660 	ATA_HORKAGE_NOTRIM = 16777216,
44661 	ATA_HORKAGE_MAX_SEC_1024 = 33554432,
44662 	ATA_HORKAGE_MAX_TRIM_128M = 67108864,
44663 	ATA_HORKAGE_NO_NCQ_ON_ATI = 134217728,
44664 	ATA_HORKAGE_NO_ID_DEV_LOG = 268435456,
44665 	ATA_HORKAGE_NO_LOG_DIR = 536870912,
44666 	ATA_DMA_MASK_ATA = 1,
44667 	ATA_DMA_MASK_ATAPI = 2,
44668 	ATA_DMA_MASK_CFA = 4,
44669 	ATAPI_READ = 0,
44670 	ATAPI_WRITE = 1,
44671 	ATAPI_READ_CD = 2,
44672 	ATAPI_PASS_THRU = 3,
44673 	ATAPI_MISC = 4,
44674 	ATA_TIMING_SETUP = 1,
44675 	ATA_TIMING_ACT8B = 2,
44676 	ATA_TIMING_REC8B = 4,
44677 	ATA_TIMING_CYC8B = 8,
44678 	ATA_TIMING_8BIT = 14,
44679 	ATA_TIMING_ACTIVE = 16,
44680 	ATA_TIMING_RECOVER = 32,
44681 	ATA_TIMING_DMACK_HOLD = 64,
44682 	ATA_TIMING_CYCLE = 128,
44683 	ATA_TIMING_UDMA = 256,
44684 	ATA_TIMING_ALL = 511,
44685 	ATA_ACPI_FILTER_SETXFER = 1,
44686 	ATA_ACPI_FILTER_LOCK = 2,
44687 	ATA_ACPI_FILTER_DIPM = 4,
44688 	ATA_ACPI_FILTER_FPDMA_OFFSET = 8,
44689 	ATA_ACPI_FILTER_FPDMA_AA = 16,
44690 	ATA_ACPI_FILTER_DEFAULT = 7,
44691 };
44692 
44693 enum ata_completion_errors {
44694 	AC_ERR_OK = 0,
44695 	AC_ERR_DEV = 1,
44696 	AC_ERR_HSM = 2,
44697 	AC_ERR_TIMEOUT = 4,
44698 	AC_ERR_MEDIA = 8,
44699 	AC_ERR_ATA_BUS = 16,
44700 	AC_ERR_HOST_BUS = 32,
44701 	AC_ERR_SYSTEM = 64,
44702 	AC_ERR_INVALID = 128,
44703 	AC_ERR_OTHER = 256,
44704 	AC_ERR_NODEV_HINT = 512,
44705 	AC_ERR_NCQ = 1024,
44706 };
44707 
44708 enum ata_lpm_policy {
44709 	ATA_LPM_UNKNOWN = 0,
44710 	ATA_LPM_MAX_POWER = 1,
44711 	ATA_LPM_MED_POWER = 2,
44712 	ATA_LPM_MED_POWER_WITH_DIPM = 3,
44713 	ATA_LPM_MIN_POWER_WITH_PARTIAL = 4,
44714 	ATA_LPM_MIN_POWER = 5,
44715 };
44716 
44717 struct ata_queued_cmd;
44718 
44719 typedef void (*ata_qc_cb_t)(struct ata_queued_cmd *);
44720 
44721 struct ata_taskfile {
44722 	long unsigned int flags;
44723 	u8 protocol;
44724 	u8 ctl;
44725 	u8 hob_feature;
44726 	u8 hob_nsect;
44727 	u8 hob_lbal;
44728 	u8 hob_lbam;
44729 	u8 hob_lbah;
44730 	union {
44731 		u8 error;
44732 		u8 feature;
44733 	};
44734 	u8 nsect;
44735 	u8 lbal;
44736 	u8 lbam;
44737 	u8 lbah;
44738 	u8 device;
44739 	union {
44740 		u8 status;
44741 		u8 command;
44742 	};
44743 	u32 auxiliary;
44744 };
44745 
44746 struct ata_port;
44747 
44748 struct ata_device;
44749 
44750 struct ata_queued_cmd {
44751 	struct ata_port *ap;
44752 	struct ata_device *dev;
44753 	struct scsi_cmnd *scsicmd;
44754 	void (*scsidone)(struct scsi_cmnd *);
44755 	struct ata_taskfile tf;
44756 	u8 cdb[16];
44757 	long unsigned int flags;
44758 	unsigned int tag;
44759 	unsigned int hw_tag;
44760 	unsigned int n_elem;
44761 	unsigned int orig_n_elem;
44762 	int dma_dir;
44763 	unsigned int sect_size;
44764 	unsigned int nbytes;
44765 	unsigned int extrabytes;
44766 	unsigned int curbytes;
44767 	struct scatterlist sgent;
44768 	struct scatterlist *sg;
44769 	struct scatterlist *cursg;
44770 	unsigned int cursg_ofs;
44771 	unsigned int err_mask;
44772 	struct ata_taskfile result_tf;
44773 	ata_qc_cb_t complete_fn;
44774 	void *private_data;
44775 	void *lldd_task;
44776 };
44777 
44778 struct ata_link;
44779 
44780 typedef int (*ata_prereset_fn_t)(struct ata_link *, long unsigned int);
44781 
44782 struct ata_eh_info {
44783 	struct ata_device *dev;
44784 	u32 serror;
44785 	unsigned int err_mask;
44786 	unsigned int action;
44787 	unsigned int dev_action[2];
44788 	unsigned int flags;
44789 	unsigned int probe_mask;
44790 	char desc[80];
44791 	int desc_len;
44792 };
44793 
44794 struct ata_eh_context {
44795 	struct ata_eh_info i;
44796 	int tries[2];
44797 	int cmd_timeout_idx[14];
44798 	unsigned int classes[2];
44799 	unsigned int did_probe_mask;
44800 	unsigned int unloaded_mask;
44801 	unsigned int saved_ncq_enabled;
44802 	u8 saved_xfer_mode[2];
44803 	long unsigned int last_reset;
44804 };
44805 
44806 struct ata_ering_entry {
44807 	unsigned int eflags;
44808 	unsigned int err_mask;
44809 	u64 timestamp;
44810 };
44811 
44812 struct ata_ering {
44813 	int cursor;
44814 	struct ata_ering_entry ring[32];
44815 };
44816 
44817 struct ata_cpr_log;
44818 
44819 struct ata_device {
44820 	struct ata_link *link;
44821 	unsigned int devno;
44822 	unsigned int horkage;
44823 	long unsigned int flags;
44824 	struct scsi_device *sdev;
44825 	void *private_data;
44826 	union acpi_object *gtf_cache;
44827 	unsigned int gtf_filter;
44828 	struct device tdev;
44829 	u64 n_sectors;
44830 	u64 n_native_sectors;
44831 	unsigned int class;
44832 	long unsigned int unpark_deadline;
44833 	u8 pio_mode;
44834 	u8 dma_mode;
44835 	u8 xfer_mode;
44836 	unsigned int xfer_shift;
44837 	unsigned int multi_count;
44838 	unsigned int max_sectors;
44839 	unsigned int cdb_len;
44840 	unsigned int pio_mask;
44841 	unsigned int mwdma_mask;
44842 	unsigned int udma_mask;
44843 	u16 cylinders;
44844 	u16 heads;
44845 	u16 sectors;
44846 	long: 16;
44847 	long: 64;
44848 	long: 64;
44849 	long: 64;
44850 	long: 64;
44851 	union {
44852 		u16 id[256];
44853 		u32 gscr[128];
44854 	};
44855 	u8 devslp_timing[8];
44856 	u8 ncq_send_recv_cmds[20];
44857 	u8 ncq_non_data_cmds[64];
44858 	u32 zac_zoned_cap;
44859 	u32 zac_zones_optimal_open;
44860 	u32 zac_zones_optimal_nonseq;
44861 	u32 zac_zones_max_open;
44862 	struct ata_cpr_log *cpr_log;
44863 	int spdn_cnt;
44864 	struct ata_ering ering;
44865 	long: 64;
44866 	long: 64;
44867 	long: 64;
44868 	long: 64;
44869 	long: 64;
44870 	long: 64;
44871 	long: 64;
44872 };
44873 
44874 struct ata_link {
44875 	struct ata_port *ap;
44876 	int pmp;
44877 	struct device tdev;
44878 	unsigned int active_tag;
44879 	u32 sactive;
44880 	unsigned int flags;
44881 	u32 saved_scontrol;
44882 	unsigned int hw_sata_spd_limit;
44883 	unsigned int sata_spd_limit;
44884 	unsigned int sata_spd;
44885 	enum ata_lpm_policy lpm_policy;
44886 	struct ata_eh_info eh_info;
44887 	struct ata_eh_context eh_context;
44888 	long: 64;
44889 	long: 64;
44890 	long: 64;
44891 	long: 64;
44892 	struct ata_device device[2];
44893 	long unsigned int last_lpm_change;
44894 	long: 64;
44895 	long: 64;
44896 	long: 64;
44897 	long: 64;
44898 	long: 64;
44899 	long: 64;
44900 	long: 64;
44901 };
44902 
44903 typedef int (*ata_reset_fn_t)(struct ata_link *, unsigned int *, long unsigned int);
44904 
44905 typedef void (*ata_postreset_fn_t)(struct ata_link *, unsigned int *);
44906 
44907 enum sw_activity {
44908 	OFF = 0,
44909 	BLINK_ON = 1,
44910 	BLINK_OFF = 2,
44911 };
44912 
44913 struct ata_ioports {
44914 	void *cmd_addr;
44915 	void *data_addr;
44916 	void *error_addr;
44917 	void *feature_addr;
44918 	void *nsect_addr;
44919 	void *lbal_addr;
44920 	void *lbam_addr;
44921 	void *lbah_addr;
44922 	void *device_addr;
44923 	void *status_addr;
44924 	void *command_addr;
44925 	void *altstatus_addr;
44926 	void *ctl_addr;
44927 	void *bmdma_addr;
44928 	void *scr_addr;
44929 };
44930 
44931 struct ata_port_operations;
44932 
44933 struct ata_host {
44934 	spinlock_t lock;
44935 	struct device *dev;
44936 	void * const *iomap;
44937 	unsigned int n_ports;
44938 	unsigned int n_tags;
44939 	void *private_data;
44940 	struct ata_port_operations *ops;
44941 	long unsigned int flags;
44942 	struct kref kref;
44943 	struct mutex eh_mutex;
44944 	struct task_struct *eh_owner;
44945 	struct ata_port *simplex_claimed;
44946 	struct ata_port *ports[0];
44947 };
44948 
44949 struct ata_port_operations {
44950 	int (*qc_defer)(struct ata_queued_cmd *);
44951 	int (*check_atapi_dma)(struct ata_queued_cmd *);
44952 	enum ata_completion_errors (*qc_prep)(struct ata_queued_cmd *);
44953 	unsigned int (*qc_issue)(struct ata_queued_cmd *);
44954 	bool (*qc_fill_rtf)(struct ata_queued_cmd *);
44955 	int (*cable_detect)(struct ata_port *);
44956 	unsigned int (*mode_filter)(struct ata_device *, unsigned int);
44957 	void (*set_piomode)(struct ata_port *, struct ata_device *);
44958 	void (*set_dmamode)(struct ata_port *, struct ata_device *);
44959 	int (*set_mode)(struct ata_link *, struct ata_device **);
44960 	unsigned int (*read_id)(struct ata_device *, struct ata_taskfile *, __le16 *);
44961 	void (*dev_config)(struct ata_device *);
44962 	void (*freeze)(struct ata_port *);
44963 	void (*thaw)(struct ata_port *);
44964 	ata_prereset_fn_t prereset;
44965 	ata_reset_fn_t softreset;
44966 	ata_reset_fn_t hardreset;
44967 	ata_postreset_fn_t postreset;
44968 	ata_prereset_fn_t pmp_prereset;
44969 	ata_reset_fn_t pmp_softreset;
44970 	ata_reset_fn_t pmp_hardreset;
44971 	ata_postreset_fn_t pmp_postreset;
44972 	void (*error_handler)(struct ata_port *);
44973 	void (*lost_interrupt)(struct ata_port *);
44974 	void (*post_internal_cmd)(struct ata_queued_cmd *);
44975 	void (*sched_eh)(struct ata_port *);
44976 	void (*end_eh)(struct ata_port *);
44977 	int (*scr_read)(struct ata_link *, unsigned int, u32 *);
44978 	int (*scr_write)(struct ata_link *, unsigned int, u32);
44979 	void (*pmp_attach)(struct ata_port *);
44980 	void (*pmp_detach)(struct ata_port *);
44981 	int (*set_lpm)(struct ata_link *, enum ata_lpm_policy, unsigned int);
44982 	int (*port_suspend)(struct ata_port *, pm_message_t);
44983 	int (*port_resume)(struct ata_port *);
44984 	int (*port_start)(struct ata_port *);
44985 	void (*port_stop)(struct ata_port *);
44986 	void (*host_stop)(struct ata_host *);
44987 	void (*sff_dev_select)(struct ata_port *, unsigned int);
44988 	void (*sff_set_devctl)(struct ata_port *, u8);
44989 	u8 (*sff_check_status)(struct ata_port *);
44990 	u8 (*sff_check_altstatus)(struct ata_port *);
44991 	void (*sff_tf_load)(struct ata_port *, const struct ata_taskfile *);
44992 	void (*sff_tf_read)(struct ata_port *, struct ata_taskfile *);
44993 	void (*sff_exec_command)(struct ata_port *, const struct ata_taskfile *);
44994 	unsigned int (*sff_data_xfer)(struct ata_queued_cmd *, unsigned char *, unsigned int, int);
44995 	void (*sff_irq_on)(struct ata_port *);
44996 	bool (*sff_irq_check)(struct ata_port *);
44997 	void (*sff_irq_clear)(struct ata_port *);
44998 	void (*sff_drain_fifo)(struct ata_queued_cmd *);
44999 	void (*bmdma_setup)(struct ata_queued_cmd *);
45000 	void (*bmdma_start)(struct ata_queued_cmd *);
45001 	void (*bmdma_stop)(struct ata_queued_cmd *);
45002 	u8 (*bmdma_status)(struct ata_port *);
45003 	ssize_t (*em_show)(struct ata_port *, char *);
45004 	ssize_t (*em_store)(struct ata_port *, const char *, size_t);
45005 	ssize_t (*sw_activity_show)(struct ata_device *, char *);
45006 	ssize_t (*sw_activity_store)(struct ata_device *, enum sw_activity);
45007 	ssize_t (*transmit_led_message)(struct ata_port *, u32, ssize_t);
45008 	void (*phy_reset)(struct ata_port *);
45009 	void (*eng_timeout)(struct ata_port *);
45010 	const struct ata_port_operations *inherits;
45011 };
45012 
45013 struct ata_port_stats {
45014 	long unsigned int unhandled_irq;
45015 	long unsigned int idle_irq;
45016 	long unsigned int rw_reqbuf;
45017 };
45018 
45019 struct ata_acpi_drive {
45020 	u32 pio;
45021 	u32 dma;
45022 };
45023 
45024 struct ata_acpi_gtm {
45025 	struct ata_acpi_drive drive[2];
45026 	u32 flags;
45027 };
45028 
45029 struct ata_port {
45030 	struct Scsi_Host *scsi_host;
45031 	struct ata_port_operations *ops;
45032 	spinlock_t *lock;
45033 	long unsigned int flags;
45034 	unsigned int pflags;
45035 	unsigned int print_id;
45036 	unsigned int local_port_no;
45037 	unsigned int port_no;
45038 	struct ata_ioports ioaddr;
45039 	u8 ctl;
45040 	u8 last_ctl;
45041 	struct ata_link *sff_pio_task_link;
45042 	struct delayed_work sff_pio_task;
45043 	struct ata_bmdma_prd *bmdma_prd;
45044 	dma_addr_t bmdma_prd_dma;
45045 	unsigned int pio_mask;
45046 	unsigned int mwdma_mask;
45047 	unsigned int udma_mask;
45048 	unsigned int cbl;
45049 	struct ata_queued_cmd qcmd[33];
45050 	u64 qc_active;
45051 	int nr_active_links;
45052 	long: 32;
45053 	long: 64;
45054 	long: 64;
45055 	long: 64;
45056 	struct ata_link link;
45057 	struct ata_link *slave_link;
45058 	int nr_pmp_links;
45059 	struct ata_link *pmp_link;
45060 	struct ata_link *excl_link;
45061 	struct ata_port_stats stats;
45062 	struct ata_host *host;
45063 	struct device *dev;
45064 	struct device tdev;
45065 	struct mutex scsi_scan_mutex;
45066 	struct delayed_work hotplug_task;
45067 	struct work_struct scsi_rescan_task;
45068 	unsigned int hsm_task_state;
45069 	struct list_head eh_done_q;
45070 	wait_queue_head_t eh_wait_q;
45071 	int eh_tries;
45072 	struct completion park_req_pending;
45073 	pm_message_t pm_mesg;
45074 	enum ata_lpm_policy target_lpm_policy;
45075 	struct timer_list fastdrain_timer;
45076 	unsigned int fastdrain_cnt;
45077 	async_cookie_t cookie;
45078 	int em_message_type;
45079 	void *private_data;
45080 	struct ata_acpi_gtm __acpi_init_gtm;
45081 	int: 32;
45082 	u8 sector_buf[512];
45083 };
45084 
45085 struct ata_cpr {
45086 	u8 num;
45087 	u8 num_storage_elements;
45088 	u64 start_lba;
45089 	u64 num_lbas;
45090 };
45091 
45092 struct ata_cpr_log {
45093 	u8 nr_cpr;
45094 	struct ata_cpr cpr[0];
45095 };
45096 
45097 enum sas_class {
45098 	SAS = 0,
45099 	EXPANDER = 1,
45100 };
45101 
45102 enum sas_phy_role {
45103 	PHY_ROLE_NONE = 0,
45104 	PHY_ROLE_TARGET = 64,
45105 	PHY_ROLE_INITIATOR = 128,
45106 };
45107 
45108 enum sas_phy_type {
45109 	PHY_TYPE_PHYSICAL = 0,
45110 	PHY_TYPE_VIRTUAL = 1,
45111 };
45112 
45113 enum port_event {
45114 	PORTE_BYTES_DMAED = 0,
45115 	PORTE_BROADCAST_RCVD = 1,
45116 	PORTE_LINK_RESET_ERR = 2,
45117 	PORTE_TIMER_EVENT = 3,
45118 	PORTE_HARD_RESET = 4,
45119 	PORT_NUM_EVENTS = 5,
45120 };
45121 
45122 enum phy_event {
45123 	PHYE_LOSS_OF_SIGNAL = 0,
45124 	PHYE_OOB_DONE = 1,
45125 	PHYE_OOB_ERROR = 2,
45126 	PHYE_SPINUP_HOLD = 3,
45127 	PHYE_RESUME_TIMEOUT = 4,
45128 	PHYE_SHUTDOWN = 5,
45129 	PHY_NUM_EVENTS = 6,
45130 };
45131 
45132 enum discover_event {
45133 	DISCE_DISCOVER_DOMAIN = 0,
45134 	DISCE_REVALIDATE_DOMAIN = 1,
45135 	DISCE_SUSPEND = 2,
45136 	DISCE_RESUME = 3,
45137 	DISC_NUM_EVENTS = 4,
45138 };
45139 
45140 enum routing_attribute {
45141 	DIRECT_ROUTING = 0,
45142 	SUBTRACTIVE_ROUTING = 1,
45143 	TABLE_ROUTING = 2,
45144 };
45145 
45146 enum ex_phy_state {
45147 	PHY_EMPTY = 0,
45148 	PHY_VACANT = 1,
45149 	PHY_NOT_PRESENT = 2,
45150 	PHY_DEVICE_DISCOVERED = 3,
45151 };
45152 
45153 struct ex_phy {
45154 	int phy_id;
45155 	enum ex_phy_state phy_state;
45156 	enum sas_device_type attached_dev_type;
45157 	enum sas_linkrate linkrate;
45158 	u8 attached_sata_host: 1;
45159 	u8 attached_sata_dev: 1;
45160 	u8 attached_sata_ps: 1;
45161 	enum sas_protocol attached_tproto;
45162 	enum sas_protocol attached_iproto;
45163 	u8 attached_sas_addr[8];
45164 	u8 attached_phy_id;
45165 	int phy_change_count;
45166 	enum routing_attribute routing_attr;
45167 	u8 virtual: 1;
45168 	int last_da_index;
45169 	struct sas_phy *phy;
45170 	struct sas_port *port;
45171 };
45172 
45173 struct expander_device {
45174 	struct list_head children;
45175 	int ex_change_count;
45176 	u16 max_route_indexes;
45177 	u8 num_phys;
45178 	u8 t2t_supp: 1;
45179 	u8 configuring: 1;
45180 	u8 conf_route_table: 1;
45181 	u8 enclosure_logical_id[8];
45182 	struct ex_phy *ex_phy;
45183 	struct sas_port *parent_port;
45184 	struct mutex cmd_mutex;
45185 };
45186 
45187 struct sata_device {
45188 	unsigned int class;
45189 	u8 port_no;
45190 	struct ata_port *ap;
45191 	struct ata_host *ata_host;
45192 	long: 64;
45193 	long: 64;
45194 	long: 64;
45195 	long: 64;
45196 	long: 64;
45197 	struct smp_rps_resp rps_resp;
45198 	u8 fis[24];
45199 	long: 32;
45200 	long: 64;
45201 	long: 64;
45202 	long: 64;
45203 	long: 64;
45204 	long: 64;
45205 };
45206 
45207 struct ssp_device {
45208 	struct list_head eh_list_node;
45209 	struct scsi_lun reset_lun;
45210 };
45211 
45212 struct asd_sas_port;
45213 
45214 struct domain_device {
45215 	spinlock_t done_lock;
45216 	enum sas_device_type dev_type;
45217 	enum sas_linkrate linkrate;
45218 	enum sas_linkrate min_linkrate;
45219 	enum sas_linkrate max_linkrate;
45220 	int pathways;
45221 	struct domain_device *parent;
45222 	struct list_head siblings;
45223 	struct asd_sas_port *port;
45224 	struct sas_phy *phy;
45225 	struct list_head dev_list_node;
45226 	struct list_head disco_list_node;
45227 	enum sas_protocol iproto;
45228 	enum sas_protocol tproto;
45229 	struct sas_rphy *rphy;
45230 	u8 sas_addr[8];
45231 	u8 hashed_sas_addr[3];
45232 	u8 frame_rcvd[32];
45233 	long: 40;
45234 	long: 64;
45235 	long: 64;
45236 	long: 64;
45237 	long: 64;
45238 	union {
45239 		struct expander_device ex_dev;
45240 		struct sata_device sata_dev;
45241 		struct ssp_device ssp_dev;
45242 	};
45243 	void *lldd_dev;
45244 	long unsigned int state;
45245 	struct kref kref;
45246 	long: 32;
45247 	long: 64;
45248 	long: 64;
45249 	long: 64;
45250 	long: 64;
45251 	long: 64;
45252 };
45253 
45254 struct sas_work {
45255 	struct list_head drain_node;
45256 	struct work_struct work;
45257 };
45258 
45259 struct sas_discovery_event {
45260 	struct sas_work work;
45261 	struct asd_sas_port *port;
45262 };
45263 
45264 struct sas_discovery {
45265 	struct sas_discovery_event disc_work[4];
45266 	long unsigned int pending;
45267 	u8 fanout_sas_addr[8];
45268 	u8 eeds_a[8];
45269 	u8 eeds_b[8];
45270 	int max_level;
45271 };
45272 
45273 struct sas_ha_struct;
45274 
45275 struct asd_sas_port {
45276 	struct sas_discovery disc;
45277 	struct domain_device *port_dev;
45278 	spinlock_t dev_list_lock;
45279 	struct list_head dev_list;
45280 	struct list_head disco_list;
45281 	struct list_head destroy_list;
45282 	struct list_head sas_port_del_list;
45283 	enum sas_linkrate linkrate;
45284 	struct sas_work work;
45285 	int suspended;
45286 	int id;
45287 	enum sas_class class;
45288 	u8 sas_addr[8];
45289 	u8 attached_sas_addr[8];
45290 	enum sas_protocol iproto;
45291 	enum sas_protocol tproto;
45292 	enum sas_oob_mode oob_mode;
45293 	spinlock_t phy_list_lock;
45294 	struct list_head phy_list;
45295 	int num_phys;
45296 	u32 phy_mask;
45297 	struct sas_ha_struct *ha;
45298 	struct sas_port *port;
45299 	void *lldd_port;
45300 };
45301 
45302 struct scsi_core {
45303 	struct Scsi_Host *shost;
45304 };
45305 
45306 struct asd_sas_phy;
45307 
45308 struct sas_ha_struct {
45309 	struct list_head defer_q;
45310 	struct mutex drain_mutex;
45311 	long unsigned int state;
45312 	spinlock_t lock;
45313 	int eh_active;
45314 	wait_queue_head_t eh_wait_q;
45315 	struct list_head eh_dev_q;
45316 	struct mutex disco_mutex;
45317 	struct scsi_core core;
45318 	char *sas_ha_name;
45319 	struct device *dev;
45320 	struct module *lldd_module;
45321 	struct workqueue_struct *event_q;
45322 	struct workqueue_struct *disco_q;
45323 	u8 *sas_addr;
45324 	u8 hashed_sas_addr[3];
45325 	spinlock_t phy_port_lock;
45326 	struct asd_sas_phy **sas_phy;
45327 	struct asd_sas_port **sas_port;
45328 	int num_phys;
45329 	int strict_wide_ports;
45330 	void *lldd_ha;
45331 	struct list_head eh_done_q;
45332 	struct list_head eh_ata_q;
45333 	int event_thres;
45334 };
45335 
45336 struct asd_sas_event {
45337 	struct sas_work work;
45338 	struct asd_sas_phy *phy;
45339 	int event;
45340 };
45341 
45342 struct asd_sas_phy {
45343 	atomic_t event_nr;
45344 	int in_shutdown;
45345 	int error;
45346 	int suspended;
45347 	struct sas_phy *phy;
45348 	int enabled;
45349 	int id;
45350 	enum sas_class class;
45351 	enum sas_protocol iproto;
45352 	enum sas_protocol tproto;
45353 	enum sas_phy_type type;
45354 	enum sas_phy_role role;
45355 	enum sas_oob_mode oob_mode;
45356 	enum sas_linkrate linkrate;
45357 	u8 *sas_addr;
45358 	u8 attached_sas_addr[8];
45359 	spinlock_t frame_rcvd_lock;
45360 	u8 *frame_rcvd;
45361 	int frame_rcvd_size;
45362 	spinlock_t sas_prim_lock;
45363 	u32 sas_prim;
45364 	struct list_head port_phy_el;
45365 	struct asd_sas_port *port;
45366 	struct sas_ha_struct *ha;
45367 	void *lldd_phy;
45368 };
45369 
45370 enum service_response {
45371 	SAS_TASK_COMPLETE = 0,
45372 	SAS_TASK_UNDELIVERED = -1,
45373 };
45374 
45375 enum exec_status {
45376 	SAS_SAM_STAT_GOOD = 0,
45377 	SAS_SAM_STAT_BUSY = 8,
45378 	SAS_SAM_STAT_TASK_ABORTED = 64,
45379 	SAS_SAM_STAT_CHECK_CONDITION = 2,
45380 	SAS_DEV_NO_RESPONSE = 128,
45381 	SAS_DATA_UNDERRUN = 129,
45382 	SAS_DATA_OVERRUN = 130,
45383 	SAS_INTERRUPTED = 131,
45384 	SAS_QUEUE_FULL = 132,
45385 	SAS_DEVICE_UNKNOWN = 133,
45386 	SAS_OPEN_REJECT = 134,
45387 	SAS_OPEN_TO = 135,
45388 	SAS_PROTO_RESPONSE = 136,
45389 	SAS_PHY_DOWN = 137,
45390 	SAS_NAK_R_ERR = 138,
45391 	SAS_PENDING = 139,
45392 	SAS_ABORTED_TASK = 140,
45393 };
45394 
45395 struct task_status_struct {
45396 	enum service_response resp;
45397 	enum exec_status stat;
45398 	int buf_valid_size;
45399 	u8 buf[96];
45400 	u32 residual;
45401 	enum sas_open_rej_reason open_rej_reason;
45402 };
45403 
45404 struct sas_ata_task {
45405 	struct host_to_dev_fis fis;
45406 	u8 atapi_packet[16];
45407 	u8 retry_count;
45408 	u8 dma_xfer: 1;
45409 	u8 use_ncq: 1;
45410 	u8 set_affil_pol: 1;
45411 	u8 stp_affil_pol: 1;
45412 	u8 device_control_reg_update: 1;
45413 	bool force_phy;
45414 	int force_phy_id;
45415 };
45416 
45417 enum sas_internal_abort {
45418 	SAS_INTERNAL_ABORT_SINGLE = 0,
45419 	SAS_INTERNAL_ABORT_DEV = 1,
45420 };
45421 
45422 struct sas_internal_abort_task {
45423 	enum sas_internal_abort type;
45424 	unsigned int qid;
45425 	u16 tag;
45426 };
45427 
45428 struct sas_smp_task {
45429 	struct scatterlist smp_req;
45430 	struct scatterlist smp_resp;
45431 };
45432 
45433 enum task_attribute {
45434 	TASK_ATTR_SIMPLE = 0,
45435 	TASK_ATTR_HOQ = 1,
45436 	TASK_ATTR_ORDERED = 2,
45437 	TASK_ATTR_ACA = 4,
45438 };
45439 
45440 struct sas_ssp_task {
45441 	u8 retry_count;
45442 	u8 LUN[8];
45443 	u8 enable_first_burst: 1;
45444 	enum task_attribute task_attr;
45445 	u8 task_prio;
45446 	struct scsi_cmnd *cmd;
45447 };
45448 
45449 struct sas_tmf_task {
45450 	u8 tmf;
45451 	u16 tag_of_task_to_be_managed;
45452 };
45453 
45454 struct sas_task_slow;
45455 
45456 struct sas_task {
45457 	struct domain_device *dev;
45458 	spinlock_t task_state_lock;
45459 	unsigned int task_state_flags;
45460 	enum sas_protocol task_proto;
45461 	union {
45462 		struct sas_ata_task ata_task;
45463 		struct sas_smp_task smp_task;
45464 		struct sas_ssp_task ssp_task;
45465 		struct sas_internal_abort_task abort_task;
45466 	};
45467 	struct scatterlist *scatter;
45468 	int num_scatter;
45469 	u32 total_xfer_len;
45470 	u8 data_dir: 2;
45471 	struct task_status_struct task_status;
45472 	void (*task_done)(struct sas_task *);
45473 	void *lldd_task;
45474 	void *uldd_task;
45475 	struct sas_task_slow *slow_task;
45476 	struct sas_tmf_task *tmf;
45477 };
45478 
45479 struct sas_task_slow {
45480 	struct timer_list timer;
45481 	struct completion completion;
45482 	struct sas_task *task;
45483 };
45484 
45485 struct sas_domain_function_template {
45486 	void (*lldd_port_formed)(struct asd_sas_phy *);
45487 	void (*lldd_port_deformed)(struct asd_sas_phy *);
45488 	int (*lldd_dev_found)(struct domain_device *);
45489 	void (*lldd_dev_gone)(struct domain_device *);
45490 	int (*lldd_execute_task)(struct sas_task *, gfp_t);
45491 	int (*lldd_abort_task)(struct sas_task *);
45492 	int (*lldd_abort_task_set)(struct domain_device *, u8 *);
45493 	int (*lldd_clear_task_set)(struct domain_device *, u8 *);
45494 	int (*lldd_I_T_nexus_reset)(struct domain_device *);
45495 	int (*lldd_ata_check_ready)(struct domain_device *);
45496 	void (*lldd_ata_set_dmamode)(struct domain_device *);
45497 	int (*lldd_lu_reset)(struct domain_device *, u8 *);
45498 	int (*lldd_query_task)(struct sas_task *);
45499 	void (*lldd_tmf_exec_complete)(struct domain_device *);
45500 	void (*lldd_tmf_aborted)(struct sas_task *);
45501 	bool (*lldd_abort_timeout)(struct sas_task *, void *);
45502 	int (*lldd_clear_nexus_port)(struct asd_sas_port *);
45503 	int (*lldd_clear_nexus_ha)(struct sas_ha_struct *);
45504 	int (*lldd_control_phy)(struct asd_sas_phy *, enum phy_func, void *);
45505 	int (*lldd_write_gpio)(struct sas_ha_struct *, u8, u8, u8, u8 *);
45506 };
45507 
45508 struct sas_internal {
45509 	struct scsi_transport_template t;
45510 	struct sas_function_template *f;
45511 	struct sas_domain_function_template *dft;
45512 	struct device_attribute private_host_attrs[0];
45513 	struct device_attribute private_phy_attrs[17];
45514 	struct device_attribute private_port_attrs[1];
45515 	struct device_attribute private_rphy_attrs[8];
45516 	struct device_attribute private_end_dev_attrs[5];
45517 	struct device_attribute private_expander_attrs[7];
45518 	struct transport_container phy_attr_cont;
45519 	struct transport_container port_attr_cont;
45520 	struct transport_container rphy_attr_cont;
45521 	struct transport_container end_dev_attr_cont;
45522 	struct transport_container expander_attr_cont;
45523 	struct device_attribute *host_attrs[1];
45524 	struct device_attribute *phy_attrs[18];
45525 	struct device_attribute *port_attrs[2];
45526 	struct device_attribute *rphy_attrs[9];
45527 	struct device_attribute *end_dev_attrs[6];
45528 	struct device_attribute *expander_attrs[8];
45529 };
45530 
45531 struct report_general_resp {
45532 	__be16 change_count;
45533 	__be16 route_indexes;
45534 	u8 _r_a;
45535 	u8 num_phys;
45536 	u8 conf_route_table: 1;
45537 	u8 configuring: 1;
45538 	u8 config_others: 1;
45539 	u8 orej_retry_supp: 1;
45540 	u8 stp_cont_awt: 1;
45541 	u8 self_config: 1;
45542 	u8 zone_config: 1;
45543 	u8 t2t_supp: 1;
45544 	u8 _r_c;
45545 	u8 enclosure_logical_id[8];
45546 	u8 _r_d[12];
45547 };
45548 
45549 struct discover_resp {
45550 	u8 _r_a[5];
45551 	u8 phy_id;
45552 	__be16 _r_b;
45553 	u8 _r_c: 4;
45554 	u8 attached_dev_type: 3;
45555 	u8 _r_d: 1;
45556 	u8 linkrate: 4;
45557 	u8 _r_e: 4;
45558 	u8 attached_sata_host: 1;
45559 	u8 iproto: 3;
45560 	u8 _r_f: 4;
45561 	u8 attached_sata_dev: 1;
45562 	u8 tproto: 3;
45563 	u8 _r_g: 3;
45564 	u8 attached_sata_ps: 1;
45565 	u8 sas_addr[8];
45566 	u8 attached_sas_addr[8];
45567 	u8 attached_phy_id;
45568 	u8 _r_h[7];
45569 	u8 hmin_linkrate: 4;
45570 	u8 pmin_linkrate: 4;
45571 	u8 hmax_linkrate: 4;
45572 	u8 pmax_linkrate: 4;
45573 	u8 change_count;
45574 	u8 pptv: 4;
45575 	u8 _r_i: 3;
45576 	u8 virtual: 1;
45577 	u8 routing_attr: 4;
45578 	u8 _r_j: 4;
45579 	u8 conn_type;
45580 	u8 conn_el_index;
45581 	u8 conn_phy_link;
45582 	u8 _r_k[8];
45583 };
45584 
45585 struct smp_rg_resp {
45586 	u8 frame_type;
45587 	u8 function;
45588 	u8 result;
45589 	u8 reserved;
45590 	struct report_general_resp rg;
45591 };
45592 
45593 struct smp_disc_resp {
45594 	u8 frame_type;
45595 	u8 function;
45596 	u8 result;
45597 	u8 reserved;
45598 	struct discover_resp disc;
45599 };
45600 
45601 struct sas_expander_device {
45602 	int level;
45603 	int next_port_id;
45604 	char vendor_id[9];
45605 	char product_id[17];
45606 	char product_rev[5];
45607 	char component_vendor_id[9];
45608 	u16 component_id;
45609 	u8 component_revision_id;
45610 	struct sas_rphy rphy;
45611 };
45612 
45613 enum {
45614 	SAS_DEV_GONE = 0,
45615 	SAS_DEV_FOUND = 1,
45616 	SAS_DEV_DESTROY = 2,
45617 	SAS_DEV_EH_PENDING = 3,
45618 	SAS_DEV_LU_RESET = 4,
45619 	SAS_DEV_RESET = 5,
45620 };
45621 
45622 enum sas_ha_state {
45623 	SAS_HA_REGISTERED = 0,
45624 	SAS_HA_DRAINING = 1,
45625 	SAS_HA_ATA_EH_ACTIVE = 2,
45626 	SAS_HA_FROZEN = 3,
45627 	SAS_HA_RESUMING = 4,
45628 };
45629 
45630 typedef s8 int8_t;
45631 
45632 struct driver_attribute {
45633 	struct attribute attr;
45634 	ssize_t (*show)(struct device_driver *, char *);
45635 	ssize_t (*store)(struct device_driver *, const char *, size_t);
45636 };
45637 
45638 struct tasklet_struct {
45639 	struct tasklet_struct *next;
45640 	long unsigned int state;
45641 	atomic_t count;
45642 	bool use_callback;
45643 	union {
45644 		void (*func)(long unsigned int);
45645 		void (*callback)(struct tasklet_struct *);
45646 	};
45647 	long unsigned int data;
45648 };
45649 
45650 enum {
45651 	TASKLET_STATE_SCHED = 0,
45652 	TASKLET_STATE_RUN = 1,
45653 };
45654 
45655 typedef u32 compat_size_t;
45656 
45657 struct compat_iovec {
45658 	compat_uptr_t iov_base;
45659 	compat_size_t iov_len;
45660 };
45661 
45662 struct RAID_CONTEXT {
45663 	u8 type: 4;
45664 	u8 nseg: 4;
45665 	u8 resvd0;
45666 	__le16 timeout_value;
45667 	u8 reg_lock_flags;
45668 	u8 resvd1;
45669 	__le16 virtual_disk_tgt_id;
45670 	__le64 reg_lock_row_lba;
45671 	__le32 reg_lock_length;
45672 	__le16 next_lmid;
45673 	u8 ex_status;
45674 	u8 status;
45675 	u8 raid_flags;
45676 	u8 num_sge;
45677 	__le16 config_seq_num;
45678 	u8 span_arm;
45679 	u8 priority;
45680 	u8 num_sge_ext;
45681 	u8 resvd2;
45682 };
45683 
45684 struct RAID_CONTEXT_G35 {
45685 	u16 nseg_type;
45686 	u16 timeout_value;
45687 	u16 routing_flags;
45688 	u16 virtual_disk_tgt_id;
45689 	__le64 reg_lock_row_lba;
45690 	u32 reg_lock_length;
45691 	union {
45692 		u16 rmw_op_index;
45693 		u16 peer_smid;
45694 		u16 r56_arm_map;
45695 	} flow_specific;
45696 	u8 ex_status;
45697 	u8 status;
45698 	u8 raid_flags;
45699 	u8 span_arm;
45700 	u16 config_seq_num;
45701 	union {
45702 		struct {
45703 			u16 num_sge: 12;
45704 			u16 reserved: 3;
45705 			u16 stream_detected: 1;
45706 		} bits;
45707 		u8 bytes[2];
45708 	} u;
45709 	u8 resvd2[2];
45710 };
45711 
45712 union RAID_CONTEXT_UNION {
45713 	struct RAID_CONTEXT raid_context;
45714 	struct RAID_CONTEXT_G35 raid_context_g35;
45715 };
45716 
45717 struct MPI2_SGE_SIMPLE_UNION {
45718 	__le32 FlagsLength;
45719 	union {
45720 		__le32 Address32;
45721 		__le64 Address64;
45722 	} u;
45723 };
45724 
45725 struct MPI2_SCSI_IO_CDB_EEDP32 {
45726 	u8 CDB[20];
45727 	__be32 PrimaryReferenceTag;
45728 	__be16 PrimaryApplicationTag;
45729 	__be16 PrimaryApplicationTagMask;
45730 	__le32 TransferLength;
45731 };
45732 
45733 struct MPI2_SGE_CHAIN_UNION {
45734 	__le16 Length;
45735 	u8 NextChainOffset;
45736 	u8 Flags;
45737 	union {
45738 		__le32 Address32;
45739 		__le64 Address64;
45740 	} u;
45741 };
45742 
45743 struct MPI2_IEEE_SGE_SIMPLE32 {
45744 	__le32 Address;
45745 	__le32 FlagsLength;
45746 };
45747 
45748 struct MPI2_IEEE_SGE_CHAIN32 {
45749 	__le32 Address;
45750 	__le32 FlagsLength;
45751 };
45752 
45753 struct MPI2_IEEE_SGE_SIMPLE64 {
45754 	__le64 Address;
45755 	__le32 Length;
45756 	__le16 Reserved1;
45757 	u8 Reserved2;
45758 	u8 Flags;
45759 };
45760 
45761 struct MPI2_IEEE_SGE_CHAIN64 {
45762 	__le64 Address;
45763 	__le32 Length;
45764 	__le16 Reserved1;
45765 	u8 Reserved2;
45766 	u8 Flags;
45767 };
45768 
45769 union MPI2_IEEE_SGE_SIMPLE_UNION {
45770 	struct MPI2_IEEE_SGE_SIMPLE32 Simple32;
45771 	struct MPI2_IEEE_SGE_SIMPLE64 Simple64;
45772 };
45773 
45774 union MPI2_IEEE_SGE_CHAIN_UNION {
45775 	struct MPI2_IEEE_SGE_CHAIN32 Chain32;
45776 	struct MPI2_IEEE_SGE_CHAIN64 Chain64;
45777 };
45778 
45779 union MPI2_SGE_IO_UNION {
45780 	struct MPI2_SGE_SIMPLE_UNION MpiSimple;
45781 	struct MPI2_SGE_CHAIN_UNION MpiChain;
45782 	union MPI2_IEEE_SGE_SIMPLE_UNION IeeeSimple;
45783 	union MPI2_IEEE_SGE_CHAIN_UNION IeeeChain;
45784 };
45785 
45786 union MPI2_SCSI_IO_CDB_UNION {
45787 	u8 CDB32[32];
45788 	struct MPI2_SCSI_IO_CDB_EEDP32 EEDP32;
45789 	struct MPI2_SGE_SIMPLE_UNION SGE;
45790 };
45791 
45792 struct MPI2_RAID_SCSI_IO_REQUEST {
45793 	__le16 DevHandle;
45794 	u8 ChainOffset;
45795 	u8 Function;
45796 	__le16 Reserved1;
45797 	u8 Reserved2;
45798 	u8 MsgFlags;
45799 	u8 VP_ID;
45800 	u8 VF_ID;
45801 	__le16 Reserved3;
45802 	__le32 SenseBufferLowAddress;
45803 	__le16 SGLFlags;
45804 	u8 SenseBufferLength;
45805 	u8 Reserved4;
45806 	u8 SGLOffset0;
45807 	u8 SGLOffset1;
45808 	u8 SGLOffset2;
45809 	u8 SGLOffset3;
45810 	__le32 SkipCount;
45811 	__le32 DataLength;
45812 	__le32 BidirectionalDataLength;
45813 	__le16 IoFlags;
45814 	__le16 EEDPFlags;
45815 	__le32 EEDPBlockSize;
45816 	__le32 SecondaryReferenceTag;
45817 	__le16 SecondaryApplicationTag;
45818 	__le16 ApplicationTagTranslationMask;
45819 	u8 LUN[8];
45820 	__le32 Control;
45821 	union MPI2_SCSI_IO_CDB_UNION CDB;
45822 	union RAID_CONTEXT_UNION RaidContext;
45823 	union MPI2_SGE_IO_UNION SGL;
45824 };
45825 
45826 struct MEGASAS_RAID_MFA_IO_REQUEST_DESCRIPTOR {
45827 	u32 RequestFlags: 8;
45828 	u32 MessageAddress1: 24;
45829 	u32 MessageAddress2;
45830 };
45831 
45832 struct MPI2_DEFAULT_REQUEST_DESCRIPTOR {
45833 	u8 RequestFlags;
45834 	u8 MSIxIndex;
45835 	__le16 SMID;
45836 	__le16 LMID;
45837 	__le16 DescriptorTypeDependent;
45838 };
45839 
45840 struct MPI2_HIGH_PRIORITY_REQUEST_DESCRIPTOR {
45841 	u8 RequestFlags;
45842 	u8 MSIxIndex;
45843 	__le16 SMID;
45844 	__le16 LMID;
45845 	__le16 Reserved1;
45846 };
45847 
45848 struct MPI2_SCSI_IO_REQUEST_DESCRIPTOR {
45849 	u8 RequestFlags;
45850 	u8 MSIxIndex;
45851 	__le16 SMID;
45852 	__le16 LMID;
45853 	__le16 DevHandle;
45854 };
45855 
45856 struct MPI2_SCSI_TARGET_REQUEST_DESCRIPTOR {
45857 	u8 RequestFlags;
45858 	u8 MSIxIndex;
45859 	__le16 SMID;
45860 	__le16 LMID;
45861 	__le16 IoIndex;
45862 };
45863 
45864 struct MPI2_RAID_ACCEL_REQUEST_DESCRIPTOR {
45865 	u8 RequestFlags;
45866 	u8 MSIxIndex;
45867 	__le16 SMID;
45868 	__le16 LMID;
45869 	__le16 Reserved;
45870 };
45871 
45872 union MEGASAS_REQUEST_DESCRIPTOR_UNION {
45873 	struct MPI2_DEFAULT_REQUEST_DESCRIPTOR Default;
45874 	struct MPI2_HIGH_PRIORITY_REQUEST_DESCRIPTOR HighPriority;
45875 	struct MPI2_SCSI_IO_REQUEST_DESCRIPTOR SCSIIO;
45876 	struct MPI2_SCSI_TARGET_REQUEST_DESCRIPTOR SCSITarget;
45877 	struct MPI2_RAID_ACCEL_REQUEST_DESCRIPTOR RAIDAccelerator;
45878 	struct MEGASAS_RAID_MFA_IO_REQUEST_DESCRIPTOR MFAIo;
45879 	union {
45880 		struct {
45881 			__le32 low;
45882 			__le32 high;
45883 		} u;
45884 		__le64 Words;
45885 	};
45886 };
45887 
45888 struct MPI2_DEFAULT_REPLY_DESCRIPTOR {
45889 	u8 ReplyFlags;
45890 	u8 MSIxIndex;
45891 	__le16 DescriptorTypeDependent1;
45892 	__le32 DescriptorTypeDependent2;
45893 };
45894 
45895 struct MPI2_ADDRESS_REPLY_DESCRIPTOR {
45896 	u8 ReplyFlags;
45897 	u8 MSIxIndex;
45898 	__le16 SMID;
45899 	__le32 ReplyFrameAddress;
45900 };
45901 
45902 struct MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR {
45903 	u8 ReplyFlags;
45904 	u8 MSIxIndex;
45905 	__le16 SMID;
45906 	__le16 TaskTag;
45907 	__le16 Reserved1;
45908 };
45909 
45910 struct MPI2_TARGETASSIST_SUCCESS_REPLY_DESCRIPTOR {
45911 	u8 ReplyFlags;
45912 	u8 MSIxIndex;
45913 	__le16 SMID;
45914 	u8 SequenceNumber;
45915 	u8 Reserved1;
45916 	__le16 IoIndex;
45917 };
45918 
45919 struct MPI2_TARGET_COMMAND_BUFFER_REPLY_DESCRIPTOR {
45920 	u8 ReplyFlags;
45921 	u8 MSIxIndex;
45922 	u8 VP_ID;
45923 	u8 Flags;
45924 	__le16 InitiatorDevHandle;
45925 	__le16 IoIndex;
45926 };
45927 
45928 struct MPI2_RAID_ACCELERATOR_SUCCESS_REPLY_DESCRIPTOR {
45929 	u8 ReplyFlags;
45930 	u8 MSIxIndex;
45931 	__le16 SMID;
45932 	__le32 Reserved;
45933 };
45934 
45935 union MPI2_REPLY_DESCRIPTORS_UNION {
45936 	struct MPI2_DEFAULT_REPLY_DESCRIPTOR Default;
45937 	struct MPI2_ADDRESS_REPLY_DESCRIPTOR AddressReply;
45938 	struct MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR SCSIIOSuccess;
45939 	struct MPI2_TARGETASSIST_SUCCESS_REPLY_DESCRIPTOR TargetAssistSuccess;
45940 	struct MPI2_TARGET_COMMAND_BUFFER_REPLY_DESCRIPTOR TargetCommandBuffer;
45941 	struct MPI2_RAID_ACCELERATOR_SUCCESS_REPLY_DESCRIPTOR RAIDAcceleratorSuccess;
45942 	__le64 Words;
45943 };
45944 
45945 struct MPI2_IOC_INIT_REQUEST {
45946 	u8 WhoInit;
45947 	u8 Reserved1;
45948 	u8 ChainOffset;
45949 	u8 Function;
45950 	__le16 Reserved2;
45951 	u8 Reserved3;
45952 	u8 MsgFlags;
45953 	u8 VP_ID;
45954 	u8 VF_ID;
45955 	__le16 Reserved4;
45956 	__le16 MsgVersion;
45957 	__le16 HeaderVersion;
45958 	u32 Reserved5;
45959 	__le16 Reserved6;
45960 	u8 HostPageSize;
45961 	u8 HostMSIxVectors;
45962 	__le16 Reserved8;
45963 	__le16 SystemRequestFrameSize;
45964 	__le16 ReplyDescriptorPostQueueDepth;
45965 	__le16 ReplyFreeQueueDepth;
45966 	__le32 SenseBufferAddressHigh;
45967 	__le32 SystemReplyAddressHigh;
45968 	__le64 SystemRequestFrameBaseAddress;
45969 	__le64 ReplyDescriptorPostQueueAddress;
45970 	__le64 ReplyFreeQueueAddress;
45971 	__le64 TimeStamp;
45972 };
45973 
45974 struct MR_DEV_HANDLE_INFO {
45975 	__le16 curDevHdl;
45976 	u8 validHandles;
45977 	u8 interfaceType;
45978 	__le16 devHandle[2];
45979 };
45980 
45981 struct MR_ARRAY_INFO {
45982 	__le16 pd[32];
45983 };
45984 
45985 struct MR_QUAD_ELEMENT {
45986 	__le64 logStart;
45987 	__le64 logEnd;
45988 	__le64 offsetInSpan;
45989 	__le32 diff;
45990 	__le32 reserved1;
45991 };
45992 
45993 struct MR_SPAN_INFO {
45994 	__le32 noElements;
45995 	__le32 reserved1;
45996 	struct MR_QUAD_ELEMENT quad[8];
45997 };
45998 
45999 struct MR_LD_SPAN {
46000 	__le64 startBlk;
46001 	__le64 numBlks;
46002 	__le16 arrayRef;
46003 	u8 spanRowSize;
46004 	u8 spanRowDataSize;
46005 	u8 reserved[4];
46006 };
46007 
46008 struct MR_SPAN_BLOCK_INFO {
46009 	__le64 num_rows;
46010 	struct MR_LD_SPAN span;
46011 	struct MR_SPAN_INFO block_span_info;
46012 };
46013 
46014 struct MR_CPU_AFFINITY_MASK {
46015 	union {
46016 		struct {
46017 			u8 hw_path: 1;
46018 			u8 cpu0: 1;
46019 			u8 cpu1: 1;
46020 			u8 cpu2: 1;
46021 			u8 cpu3: 1;
46022 			u8 reserved: 3;
46023 		};
46024 		u8 core_mask;
46025 	};
46026 };
46027 
46028 struct MR_IO_AFFINITY {
46029 	union {
46030 		struct {
46031 			struct MR_CPU_AFFINITY_MASK pdRead;
46032 			struct MR_CPU_AFFINITY_MASK pdWrite;
46033 			struct MR_CPU_AFFINITY_MASK ldRead;
46034 			struct MR_CPU_AFFINITY_MASK ldWrite;
46035 		};
46036 		u32 word;
46037 	};
46038 	u8 maxCores;
46039 	u8 reserved[3];
46040 };
46041 
46042 struct MR_LD_RAID {
46043 	struct {
46044 		u32 fpCapable: 1;
46045 		u32 ra_capable: 1;
46046 		u32 reserved5: 2;
46047 		u32 ldPiMode: 4;
46048 		u32 pdPiMode: 4;
46049 		u32 encryptionType: 8;
46050 		u32 fpWriteCapable: 1;
46051 		u32 fpReadCapable: 1;
46052 		u32 fpWriteAcrossStripe: 1;
46053 		u32 fpReadAcrossStripe: 1;
46054 		u32 fpNonRWCapable: 1;
46055 		u32 tmCapable: 1;
46056 		u32 fpBypassRegionLock: 1;
46057 		u32 disable_coalescing: 1;
46058 		u32 fp_rmw_capable: 1;
46059 		u32 fp_cache_bypass_capable: 1;
46060 		u32 reserved4: 2;
46061 	} capability;
46062 	__le32 reserved6;
46063 	__le64 size;
46064 	u8 spanDepth;
46065 	u8 level;
46066 	u8 stripeShift;
46067 	u8 rowSize;
46068 	u8 rowDataSize;
46069 	u8 writeMode;
46070 	u8 PRL;
46071 	u8 SRL;
46072 	__le16 targetId;
46073 	u8 ldState;
46074 	u8 regTypeReqOnWrite;
46075 	u8 modFactor;
46076 	u8 regTypeReqOnRead;
46077 	__le16 seqNum;
46078 	struct {
46079 		u32 ldSyncRequired: 1;
46080 		u32 regTypeReqOnReadIsValid: 1;
46081 		u32 isEPD: 1;
46082 		u32 enableSLDOnAllRWIOs: 1;
46083 		u32 reserved: 28;
46084 	} flags;
46085 	u8 LUN[8];
46086 	u8 fpIoTimeoutForLd;
46087 	u8 ld_accept_priority_type;
46088 	u8 reserved2[2];
46089 	u32 logical_block_length;
46090 	struct {
46091 		u32 ld_pi_exp: 4;
46092 		u32 ld_logical_block_exp: 4;
46093 		u32 reserved1: 24;
46094 	};
46095 	struct MR_IO_AFFINITY cpuAffinity;
46096 	u8 reserved3[64];
46097 };
46098 
46099 struct MR_LD_SPAN_MAP {
46100 	struct MR_LD_RAID ldRaid;
46101 	u8 dataArmMap[32];
46102 	struct MR_SPAN_BLOCK_INFO spanBlock[8];
46103 };
46104 
46105 struct MR_FW_RAID_MAP {
46106 	__le32 totalSize;
46107 	union {
46108 		struct {
46109 			__le32 maxLd;
46110 			__le32 maxSpanDepth;
46111 			__le32 maxRowSize;
46112 			__le32 maxPdCount;
46113 			__le32 maxArrays;
46114 		} validationInfo;
46115 		__le32 version[5];
46116 	};
46117 	__le32 ldCount;
46118 	__le32 Reserved1;
46119 	u8 ldTgtIdToLd[128];
46120 	u8 fpPdIoTimeoutSec;
46121 	u8 reserved2[7];
46122 	struct MR_ARRAY_INFO arMapInfo[128];
46123 	struct MR_DEV_HANDLE_INFO devHndlInfo[256];
46124 	struct MR_LD_SPAN_MAP ldSpanMap[0];
46125 };
46126 
46127 enum MR_RAID_MAP_DESC_TYPE {
46128 	RAID_MAP_DESC_TYPE_DEVHDL_INFO = 0,
46129 	RAID_MAP_DESC_TYPE_TGTID_INFO = 1,
46130 	RAID_MAP_DESC_TYPE_ARRAY_INFO = 2,
46131 	RAID_MAP_DESC_TYPE_SPAN_INFO = 3,
46132 	RAID_MAP_DESC_TYPE_COUNT = 4,
46133 };
46134 
46135 struct MR_RAID_MAP_DESC_TABLE {
46136 	u32 raid_map_desc_type;
46137 	u32 raid_map_desc_offset;
46138 	u32 raid_map_desc_buffer_size;
46139 	u32 raid_map_desc_elements;
46140 };
46141 
46142 struct MR_FW_RAID_MAP_DYNAMIC {
46143 	u32 raid_map_size;
46144 	u32 desc_table_offset;
46145 	u32 desc_table_size;
46146 	u32 desc_table_num_elements;
46147 	u64 reserved1;
46148 	u32 reserved2[3];
46149 	u8 fp_pd_io_timeout_sec;
46150 	u8 reserved3[3];
46151 	u32 rmw_fp_seq_num;
46152 	u16 ld_count;
46153 	u16 ar_count;
46154 	u16 span_count;
46155 	u16 reserved4[3];
46156 	union {
46157 		struct {
46158 			struct MR_DEV_HANDLE_INFO *dev_hndl_info;
46159 			u16 *ld_tgt_id_to_ld;
46160 			struct MR_ARRAY_INFO *ar_map_info;
46161 			struct MR_LD_SPAN_MAP *ld_span_map;
46162 		};
46163 		u64 ptr_structure_size[4];
46164 	};
46165 	struct MR_RAID_MAP_DESC_TABLE raid_map_desc_table[4];
46166 	u32 raid_map_desc_data[0];
46167 };
46168 
46169 struct megasas_instance;
46170 
46171 struct megasas_cmd_fusion {
46172 	struct MPI2_RAID_SCSI_IO_REQUEST *io_request;
46173 	dma_addr_t io_request_phys_addr;
46174 	union MPI2_SGE_IO_UNION *sg_frame;
46175 	dma_addr_t sg_frame_phys_addr;
46176 	u8 *sense;
46177 	dma_addr_t sense_phys_addr;
46178 	struct list_head list;
46179 	struct scsi_cmnd *scmd;
46180 	struct megasas_instance *instance;
46181 	u8 retry_for_fw_reset;
46182 	union MEGASAS_REQUEST_DESCRIPTOR_UNION *request_desc;
46183 	u32 sync_cmd_idx;
46184 	u32 index;
46185 	u8 pd_r1_lb;
46186 	struct completion done;
46187 	u8 pd_interface;
46188 	u16 r1_alt_dev_handle;
46189 	bool cmd_completed;
46190 };
46191 
46192 struct megasas_pd_list {
46193 	u16 tid;
46194 	u8 driveType;
46195 	u8 driveState;
46196 };
46197 
46198 struct dma_pool;
46199 
46200 struct megasas_irq_context {
46201 	char name[32];
46202 	struct megasas_instance *instance;
46203 	u32 MSIxIndex;
46204 	u32 os_irq;
46205 	struct irq_poll irqpoll;
46206 	bool irq_poll_scheduled;
46207 	bool irq_line_enable;
46208 	atomic_t in_used;
46209 };
46210 
46211 struct MR_DRV_SYSTEM_INFO;
46212 
46213 struct MR_LD_VF_AFFILIATION;
46214 
46215 struct MR_LD_VF_AFFILIATION_111;
46216 
46217 struct MR_CTRL_HB_HOST_MEM;
46218 
46219 struct MR_PD_INFO;
46220 
46221 struct MR_TARGET_PROPERTIES;
46222 
46223 struct MR_PD_LIST;
46224 
46225 struct megasas_ctrl_info;
46226 
46227 struct MR_LD_LIST;
46228 
46229 struct MR_LD_TARGETID_LIST;
46230 
46231 struct MR_HOST_DEVICE_LIST;
46232 
46233 struct MR_SNAPDUMP_PROPERTIES;
46234 
46235 struct megasas_register_set;
46236 
46237 struct megasas_aen_event;
46238 
46239 struct megasas_cmd;
46240 
46241 struct megasas_evt_detail;
46242 
46243 struct megasas_instance_template;
46244 
46245 struct megasas_instance {
46246 	unsigned int *reply_map;
46247 	__le32 *producer;
46248 	dma_addr_t producer_h;
46249 	__le32 *consumer;
46250 	dma_addr_t consumer_h;
46251 	struct MR_DRV_SYSTEM_INFO *system_info_buf;
46252 	dma_addr_t system_info_h;
46253 	struct MR_LD_VF_AFFILIATION *vf_affiliation;
46254 	dma_addr_t vf_affiliation_h;
46255 	struct MR_LD_VF_AFFILIATION_111 *vf_affiliation_111;
46256 	dma_addr_t vf_affiliation_111_h;
46257 	struct MR_CTRL_HB_HOST_MEM *hb_host_mem;
46258 	dma_addr_t hb_host_mem_h;
46259 	struct MR_PD_INFO *pd_info;
46260 	dma_addr_t pd_info_h;
46261 	struct MR_TARGET_PROPERTIES *tgt_prop;
46262 	dma_addr_t tgt_prop_h;
46263 	__le32 *reply_queue;
46264 	dma_addr_t reply_queue_h;
46265 	u32 *crash_dump_buf;
46266 	dma_addr_t crash_dump_h;
46267 	struct MR_PD_LIST *pd_list_buf;
46268 	dma_addr_t pd_list_buf_h;
46269 	struct megasas_ctrl_info *ctrl_info_buf;
46270 	dma_addr_t ctrl_info_buf_h;
46271 	struct MR_LD_LIST *ld_list_buf;
46272 	dma_addr_t ld_list_buf_h;
46273 	struct MR_LD_TARGETID_LIST *ld_targetid_list_buf;
46274 	dma_addr_t ld_targetid_list_buf_h;
46275 	struct MR_HOST_DEVICE_LIST *host_device_list_buf;
46276 	dma_addr_t host_device_list_buf_h;
46277 	struct MR_SNAPDUMP_PROPERTIES *snapdump_prop;
46278 	dma_addr_t snapdump_prop_h;
46279 	void *crash_buf[512];
46280 	unsigned int fw_crash_buffer_size;
46281 	unsigned int fw_crash_state;
46282 	unsigned int fw_crash_buffer_offset;
46283 	u32 drv_buf_index;
46284 	u32 drv_buf_alloc;
46285 	u32 crash_dump_fw_support;
46286 	u32 crash_dump_drv_support;
46287 	u32 crash_dump_app_support;
46288 	u32 secure_jbod_support;
46289 	u32 support_morethan256jbod;
46290 	bool use_seqnum_jbod_fp;
46291 	bool smp_affinity_enable;
46292 	spinlock_t crashdump_lock;
46293 	struct megasas_register_set *reg_set;
46294 	u32 *reply_post_host_index_addr[16];
46295 	struct megasas_pd_list pd_list[256];
46296 	struct megasas_pd_list local_pd_list[256];
46297 	u8 ld_ids[256];
46298 	u8 ld_tgtid_status[256];
46299 	u8 ld_ids_prev[256];
46300 	u8 ld_ids_from_raidmap[256];
46301 	s8 init_id;
46302 	u16 max_num_sge;
46303 	u16 max_fw_cmds;
46304 	u16 max_mpt_cmds;
46305 	u16 max_mfi_cmds;
46306 	u16 max_scsi_cmds;
46307 	u16 ldio_threshold;
46308 	u16 cur_can_queue;
46309 	u32 max_sectors_per_req;
46310 	bool msix_load_balance;
46311 	struct megasas_aen_event *ev;
46312 	struct megasas_cmd **cmd_list;
46313 	struct list_head cmd_pool;
46314 	spinlock_t mfi_pool_lock;
46315 	spinlock_t hba_lock;
46316 	spinlock_t stream_lock;
46317 	spinlock_t completion_lock;
46318 	struct dma_pool *frame_dma_pool;
46319 	struct dma_pool *sense_dma_pool;
46320 	struct megasas_evt_detail *evt_detail;
46321 	dma_addr_t evt_detail_h;
46322 	struct megasas_cmd *aen_cmd;
46323 	struct semaphore ioctl_sem;
46324 	struct Scsi_Host *host;
46325 	wait_queue_head_t int_cmd_wait_q;
46326 	wait_queue_head_t abort_cmd_wait_q;
46327 	struct pci_dev *pdev;
46328 	u32 unique_id;
46329 	u32 fw_support_ieee;
46330 	u32 threshold_reply_count;
46331 	atomic_t fw_outstanding;
46332 	atomic_t ldio_outstanding;
46333 	atomic_t fw_reset_no_pci_access;
46334 	atomic64_t total_io_count;
46335 	atomic64_t high_iops_outstanding;
46336 	struct megasas_instance_template *instancet;
46337 	struct tasklet_struct isr_tasklet;
46338 	struct work_struct work_init;
46339 	struct delayed_work fw_fault_work;
46340 	struct workqueue_struct *fw_fault_work_q;
46341 	char fault_handler_work_q_name[48];
46342 	u8 flag;
46343 	u8 unload;
46344 	u8 flag_ieee;
46345 	u8 issuepend_done;
46346 	u8 disableOnlineCtrlReset;
46347 	u8 UnevenSpanSupport;
46348 	u8 supportmax256vd;
46349 	u8 pd_list_not_supported;
46350 	u16 fw_supported_vd_count;
46351 	u16 fw_supported_pd_count;
46352 	u16 drv_supported_vd_count;
46353 	u16 drv_supported_pd_count;
46354 	atomic_t adprecovery;
46355 	long unsigned int last_time;
46356 	u32 mfiStatus;
46357 	u32 last_seq_num;
46358 	struct list_head internal_reset_pending_q;
46359 	void *ctrl_context;
46360 	unsigned int msix_vectors;
46361 	struct megasas_irq_context irq_context[128];
46362 	u64 map_id;
46363 	u64 pd_seq_map_id;
46364 	struct megasas_cmd *map_update_cmd;
46365 	struct megasas_cmd *jbod_seq_cmd;
46366 	long unsigned int bar;
46367 	long int reset_flags;
46368 	struct mutex reset_mutex;
46369 	struct timer_list sriov_heartbeat_timer;
46370 	char skip_heartbeat_timer_del;
46371 	u8 requestorId;
46372 	char PlasmaFW111;
46373 	char clusterId[16];
46374 	u8 peerIsPresent;
46375 	u8 passive;
46376 	u16 throttlequeuedepth;
46377 	u8 mask_interrupts;
46378 	u16 max_chain_frame_sz;
46379 	u8 is_imr;
46380 	u8 is_rdpq;
46381 	bool dev_handle;
46382 	bool fw_sync_cache_support;
46383 	u32 mfi_frame_size;
46384 	bool msix_combined;
46385 	u16 max_raid_mapsize;
46386 	u8 r1_ldio_hint_default;
46387 	u32 nvme_page_size;
46388 	u8 adapter_type;
46389 	bool consistent_mask_64bit;
46390 	bool support_nvme_passthru;
46391 	bool enable_sdev_max_qd;
46392 	u8 task_abort_tmo;
46393 	u8 max_reset_tmo;
46394 	u8 snapdump_wait_time;
46395 	struct dentry *debugfs_root;
46396 	struct dentry *raidmap_dump;
46397 	u8 enable_fw_dev_list;
46398 	bool atomic_desc_support;
46399 	bool support_seqnum_jbod_fp;
46400 	bool support_pci_lane_margining;
46401 	u8 low_latency_index_start;
46402 	int perf_mode;
46403 	int iopoll_q_count;
46404 };
46405 
46406 struct LD_LOAD_BALANCE_INFO {
46407 	u8 loadBalanceFlag;
46408 	u8 reserved1;
46409 	atomic_t scsi_pending_cmds[256];
46410 	u64 last_accessed_block[256];
46411 };
46412 
46413 struct _LD_SPAN_SET {
46414 	u64 log_start_lba;
46415 	u64 log_end_lba;
46416 	u64 span_row_start;
46417 	u64 span_row_end;
46418 	u64 data_strip_start;
46419 	u64 data_strip_end;
46420 	u64 data_row_start;
46421 	u64 data_row_end;
46422 	u8 strip_offset[8];
46423 	u32 span_row_data_width;
46424 	u32 diff;
46425 	u32 reserved[2];
46426 };
46427 
46428 typedef struct _LD_SPAN_SET LD_SPAN_SET;
46429 
46430 struct LOG_BLOCK_SPAN_INFO {
46431 	LD_SPAN_SET span_set[8];
46432 };
46433 
46434 typedef struct LOG_BLOCK_SPAN_INFO LD_SPAN_INFO;
46435 
46436 struct MR_DRV_RAID_MAP {
46437 	__le32 totalSize;
46438 	union {
46439 		struct {
46440 			__le32 maxLd;
46441 			__le32 maxSpanDepth;
46442 			__le32 maxRowSize;
46443 			__le32 maxPdCount;
46444 			__le32 maxArrays;
46445 		} validationInfo;
46446 		__le32 version[5];
46447 	};
46448 	u8 fpPdIoTimeoutSec;
46449 	u8 reserved2[7];
46450 	__le16 ldCount;
46451 	__le16 arCount;
46452 	__le16 spanCount;
46453 	__le16 reserve3;
46454 	struct MR_DEV_HANDLE_INFO devHndlInfo[512];
46455 	u16 ldTgtIdToLd[512];
46456 	struct MR_ARRAY_INFO arMapInfo[512];
46457 	struct MR_LD_SPAN_MAP ldSpanMap[0];
46458 };
46459 
46460 struct MR_DRV_RAID_MAP_ALL {
46461 	struct MR_DRV_RAID_MAP raidMap;
46462 	struct MR_LD_SPAN_MAP ldSpanMap[512];
46463 };
46464 
46465 struct MR_PD_CFG_SEQ {
46466 	u16 seqNum;
46467 	u16 devHandle;
46468 	struct {
46469 		u8 tmCapable: 1;
46470 		u8 reserved: 7;
46471 	} capability;
46472 	u8 reserved;
46473 	u16 pd_target_id;
46474 };
46475 
46476 struct MR_PD_CFG_SEQ_NUM_SYNC {
46477 	__le32 size;
46478 	__le32 count;
46479 	struct MR_PD_CFG_SEQ seq[0];
46480 };
46481 
46482 struct STREAM_DETECT {
46483 	u64 next_seq_lba;
46484 	struct megasas_cmd_fusion *first_cmd_fusion;
46485 	struct megasas_cmd_fusion *last_cmd_fusion;
46486 	u32 count_cmds_in_stream;
46487 	u16 num_sges_in_group;
46488 	u8 is_read;
46489 	u8 group_depth;
46490 	bool group_flush;
46491 	u8 reserved[7];
46492 };
46493 
46494 struct LD_STREAM_DETECT {
46495 	bool write_back;
46496 	bool fp_write_enabled;
46497 	bool members_ssds;
46498 	bool fp_cache_bypass_capable;
46499 	u32 mru_bit_map;
46500 	struct STREAM_DETECT stream_track[8];
46501 };
46502 
46503 struct MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY {
46504 	u64 RDPQBaseAddress;
46505 	u32 Reserved1;
46506 	u32 Reserved2;
46507 };
46508 
46509 struct rdpq_alloc_detail {
46510 	struct dma_pool *dma_pool_ptr;
46511 	dma_addr_t pool_entry_phys;
46512 	union MPI2_REPLY_DESCRIPTORS_UNION *pool_entry_virt;
46513 };
46514 
46515 struct fusion_context {
46516 	struct megasas_cmd_fusion **cmd_list;
46517 	dma_addr_t req_frames_desc_phys;
46518 	u8 *req_frames_desc;
46519 	struct dma_pool *io_request_frames_pool;
46520 	dma_addr_t io_request_frames_phys;
46521 	u8 *io_request_frames;
46522 	struct dma_pool *sg_dma_pool;
46523 	struct dma_pool *sense_dma_pool;
46524 	u8 *sense;
46525 	dma_addr_t sense_phys_addr;
46526 	atomic_t busy_mq_poll[128];
46527 	dma_addr_t reply_frames_desc_phys[128];
46528 	union MPI2_REPLY_DESCRIPTORS_UNION *reply_frames_desc[128];
46529 	struct rdpq_alloc_detail rdpq_tracker[8];
46530 	struct dma_pool *reply_frames_desc_pool;
46531 	struct dma_pool *reply_frames_desc_pool_align;
46532 	u16 last_reply_idx[128];
46533 	u32 reply_q_depth;
46534 	u32 request_alloc_sz;
46535 	u32 reply_alloc_sz;
46536 	u32 io_frames_alloc_sz;
46537 	struct MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY *rdpq_virt;
46538 	dma_addr_t rdpq_phys;
46539 	u16 max_sge_in_main_msg;
46540 	u16 max_sge_in_chain;
46541 	u8 chain_offset_io_request;
46542 	u8 chain_offset_mfi_pthru;
46543 	struct MR_FW_RAID_MAP_DYNAMIC *ld_map[2];
46544 	dma_addr_t ld_map_phys[2];
46545 	struct MR_DRV_RAID_MAP_ALL *ld_drv_map[2];
46546 	u32 max_map_sz;
46547 	u32 current_map_sz;
46548 	u32 old_map_sz;
46549 	u32 new_map_sz;
46550 	u32 drv_map_sz;
46551 	u32 drv_map_pages;
46552 	struct MR_PD_CFG_SEQ_NUM_SYNC *pd_seq_sync[2];
46553 	dma_addr_t pd_seq_phys[2];
46554 	u8 fast_path_io;
46555 	struct LD_LOAD_BALANCE_INFO *load_balance_info;
46556 	u32 load_balance_info_pages;
46557 	LD_SPAN_INFO *log_to_span;
46558 	u32 log_to_span_pages;
46559 	struct LD_STREAM_DETECT **stream_detect_by_ld;
46560 	dma_addr_t ioc_init_request_phys;
46561 	struct MPI2_IOC_INIT_REQUEST *ioc_init_request;
46562 	struct megasas_cmd *ioc_init_cmd;
46563 	bool pcie_bw_limitation;
46564 	bool r56_div_offload;
46565 };
46566 
46567 union megasas_frame;
46568 
46569 struct megasas_cmd {
46570 	union megasas_frame *frame;
46571 	dma_addr_t frame_phys_addr;
46572 	u8 *sense;
46573 	dma_addr_t sense_phys_addr;
46574 	u32 index;
46575 	u8 sync_cmd;
46576 	u8 cmd_status_drv;
46577 	u8 abort_aen;
46578 	u8 retry_for_fw_reset;
46579 	struct list_head list;
46580 	struct scsi_cmnd *scmd;
46581 	u8 flags;
46582 	struct megasas_instance *instance;
46583 	union {
46584 		struct {
46585 			u16 smid;
46586 			u16 resvd;
46587 		} context;
46588 		u32 frame_count;
46589 	};
46590 };
46591 
46592 struct MR_SNAPDUMP_PROPERTIES {
46593 	u8 offload_num;
46594 	u8 max_num_supported;
46595 	u8 cur_num_supported;
46596 	u8 trigger_min_num_sec_before_ocr;
46597 	u8 reserved[12];
46598 };
46599 
46600 enum MFI_CMD_OP {
46601 	MFI_CMD_INIT = 0,
46602 	MFI_CMD_LD_READ = 1,
46603 	MFI_CMD_LD_WRITE = 2,
46604 	MFI_CMD_LD_SCSI_IO = 3,
46605 	MFI_CMD_PD_SCSI_IO = 4,
46606 	MFI_CMD_DCMD = 5,
46607 	MFI_CMD_ABORT = 6,
46608 	MFI_CMD_SMP = 7,
46609 	MFI_CMD_STP = 8,
46610 	MFI_CMD_NVME = 9,
46611 	MFI_CMD_TOOLBOX = 10,
46612 	MFI_CMD_OP_COUNT = 11,
46613 	MFI_CMD_INVALID = 255,
46614 };
46615 
46616 enum MFI_STAT {
46617 	MFI_STAT_OK = 0,
46618 	MFI_STAT_INVALID_CMD = 1,
46619 	MFI_STAT_INVALID_DCMD = 2,
46620 	MFI_STAT_INVALID_PARAMETER = 3,
46621 	MFI_STAT_INVALID_SEQUENCE_NUMBER = 4,
46622 	MFI_STAT_ABORT_NOT_POSSIBLE = 5,
46623 	MFI_STAT_APP_HOST_CODE_NOT_FOUND = 6,
46624 	MFI_STAT_APP_IN_USE = 7,
46625 	MFI_STAT_APP_NOT_INITIALIZED = 8,
46626 	MFI_STAT_ARRAY_INDEX_INVALID = 9,
46627 	MFI_STAT_ARRAY_ROW_NOT_EMPTY = 10,
46628 	MFI_STAT_CONFIG_RESOURCE_CONFLICT = 11,
46629 	MFI_STAT_DEVICE_NOT_FOUND = 12,
46630 	MFI_STAT_DRIVE_TOO_SMALL = 13,
46631 	MFI_STAT_FLASH_ALLOC_FAIL = 14,
46632 	MFI_STAT_FLASH_BUSY = 15,
46633 	MFI_STAT_FLASH_ERROR = 16,
46634 	MFI_STAT_FLASH_IMAGE_BAD = 17,
46635 	MFI_STAT_FLASH_IMAGE_INCOMPLETE = 18,
46636 	MFI_STAT_FLASH_NOT_OPEN = 19,
46637 	MFI_STAT_FLASH_NOT_STARTED = 20,
46638 	MFI_STAT_FLUSH_FAILED = 21,
46639 	MFI_STAT_HOST_CODE_NOT_FOUNT = 22,
46640 	MFI_STAT_LD_CC_IN_PROGRESS = 23,
46641 	MFI_STAT_LD_INIT_IN_PROGRESS = 24,
46642 	MFI_STAT_LD_LBA_OUT_OF_RANGE = 25,
46643 	MFI_STAT_LD_MAX_CONFIGURED = 26,
46644 	MFI_STAT_LD_NOT_OPTIMAL = 27,
46645 	MFI_STAT_LD_RBLD_IN_PROGRESS = 28,
46646 	MFI_STAT_LD_RECON_IN_PROGRESS = 29,
46647 	MFI_STAT_LD_WRONG_RAID_LEVEL = 30,
46648 	MFI_STAT_MAX_SPARES_EXCEEDED = 31,
46649 	MFI_STAT_MEMORY_NOT_AVAILABLE = 32,
46650 	MFI_STAT_MFC_HW_ERROR = 33,
46651 	MFI_STAT_NO_HW_PRESENT = 34,
46652 	MFI_STAT_NOT_FOUND = 35,
46653 	MFI_STAT_NOT_IN_ENCL = 36,
46654 	MFI_STAT_PD_CLEAR_IN_PROGRESS = 37,
46655 	MFI_STAT_PD_TYPE_WRONG = 38,
46656 	MFI_STAT_PR_DISABLED = 39,
46657 	MFI_STAT_ROW_INDEX_INVALID = 40,
46658 	MFI_STAT_SAS_CONFIG_INVALID_ACTION = 41,
46659 	MFI_STAT_SAS_CONFIG_INVALID_DATA = 42,
46660 	MFI_STAT_SAS_CONFIG_INVALID_PAGE = 43,
46661 	MFI_STAT_SAS_CONFIG_INVALID_TYPE = 44,
46662 	MFI_STAT_SCSI_DONE_WITH_ERROR = 45,
46663 	MFI_STAT_SCSI_IO_FAILED = 46,
46664 	MFI_STAT_SCSI_RESERVATION_CONFLICT = 47,
46665 	MFI_STAT_SHUTDOWN_FAILED = 48,
46666 	MFI_STAT_TIME_NOT_SET = 49,
46667 	MFI_STAT_WRONG_STATE = 50,
46668 	MFI_STAT_LD_OFFLINE = 51,
46669 	MFI_STAT_PEER_NOTIFICATION_REJECTED = 52,
46670 	MFI_STAT_PEER_NOTIFICATION_FAILED = 53,
46671 	MFI_STAT_RESERVATION_IN_PROGRESS = 54,
46672 	MFI_STAT_I2C_ERRORS_DETECTED = 55,
46673 	MFI_STAT_PCI_ERRORS_DETECTED = 56,
46674 	MFI_STAT_CONFIG_SEQ_MISMATCH = 103,
46675 	MFI_STAT_INVALID_STATUS = 255,
46676 };
46677 
46678 enum mfi_evt_class {
46679 	MFI_EVT_CLASS_DEBUG = -2,
46680 	MFI_EVT_CLASS_PROGRESS = -1,
46681 	MFI_EVT_CLASS_INFO = 0,
46682 	MFI_EVT_CLASS_WARNING = 1,
46683 	MFI_EVT_CLASS_CRITICAL = 2,
46684 	MFI_EVT_CLASS_FATAL = 3,
46685 	MFI_EVT_CLASS_DEAD = 4,
46686 };
46687 
46688 enum MR_FW_CRASH_DUMP_STATE {
46689 	UNAVAILABLE = 0,
46690 	AVAILABLE = 1,
46691 	COPYING = 2,
46692 	COPIED = 3,
46693 	COPY_ERROR = 4,
46694 };
46695 
46696 enum _MR_CRASH_BUF_STATUS {
46697 	MR_CRASH_BUF_TURN_OFF = 0,
46698 	MR_CRASH_BUF_TURN_ON = 1,
46699 };
46700 
46701 enum MR_EVT_CLASS {
46702 	MR_EVT_CLASS_DEBUG = -2,
46703 	MR_EVT_CLASS_PROGRESS = -1,
46704 	MR_EVT_CLASS_INFO = 0,
46705 	MR_EVT_CLASS_WARNING = 1,
46706 	MR_EVT_CLASS_CRITICAL = 2,
46707 	MR_EVT_CLASS_FATAL = 3,
46708 	MR_EVT_CLASS_DEAD = 4,
46709 };
46710 
46711 enum MR_EVT_LOCALE {
46712 	MR_EVT_LOCALE_LD = 1,
46713 	MR_EVT_LOCALE_PD = 2,
46714 	MR_EVT_LOCALE_ENCL = 4,
46715 	MR_EVT_LOCALE_BBU = 8,
46716 	MR_EVT_LOCALE_SAS = 16,
46717 	MR_EVT_LOCALE_CTRL = 32,
46718 	MR_EVT_LOCALE_CONFIG = 64,
46719 	MR_EVT_LOCALE_CLUSTER = 128,
46720 	MR_EVT_LOCALE_ALL = 65535,
46721 };
46722 
46723 enum MR_PD_QUERY_TYPE {
46724 	MR_PD_QUERY_TYPE_ALL = 0,
46725 	MR_PD_QUERY_TYPE_STATE = 1,
46726 	MR_PD_QUERY_TYPE_POWER_STATE = 2,
46727 	MR_PD_QUERY_TYPE_MEDIA_TYPE = 3,
46728 	MR_PD_QUERY_TYPE_SPEED = 4,
46729 	MR_PD_QUERY_TYPE_EXPOSED_TO_HOST = 5,
46730 };
46731 
46732 enum MR_LD_QUERY_TYPE {
46733 	MR_LD_QUERY_TYPE_ALL = 0,
46734 	MR_LD_QUERY_TYPE_EXPOSED_TO_HOST = 1,
46735 	MR_LD_QUERY_TYPE_USED_TGT_IDS = 2,
46736 	MR_LD_QUERY_TYPE_CLUSTER_ACCESS = 3,
46737 	MR_LD_QUERY_TYPE_CLUSTER_LOCALE = 4,
46738 };
46739 
46740 enum MR_PD_STATE {
46741 	MR_PD_STATE_UNCONFIGURED_GOOD = 0,
46742 	MR_PD_STATE_UNCONFIGURED_BAD = 1,
46743 	MR_PD_STATE_HOT_SPARE = 2,
46744 	MR_PD_STATE_OFFLINE = 16,
46745 	MR_PD_STATE_FAILED = 17,
46746 	MR_PD_STATE_REBUILD = 20,
46747 	MR_PD_STATE_ONLINE = 24,
46748 	MR_PD_STATE_COPYBACK = 32,
46749 	MR_PD_STATE_SYSTEM = 64,
46750 };
46751 
46752 union MR_PD_REF {
46753 	struct {
46754 		u16 deviceId;
46755 		u16 seqNum;
46756 	} mrPdRef;
46757 	u32 ref;
46758 };
46759 
46760 union MR_PD_DDF_TYPE {
46761 	struct {
46762 		union {
46763 			struct {
46764 				u16 forcedPDGUID: 1;
46765 				u16 inVD: 1;
46766 				u16 isGlobalSpare: 1;
46767 				u16 isSpare: 1;
46768 				u16 isForeign: 1;
46769 				u16 reserved: 7;
46770 				u16 intf: 4;
46771 			} pdType;
46772 			u16 type;
46773 		};
46774 		u16 reserved;
46775 	} ddf;
46776 	struct {
46777 		u32 reserved;
46778 	} nonDisk;
46779 	u32 type;
46780 };
46781 
46782 union MR_PROGRESS {
46783 	struct {
46784 		u16 progress;
46785 		union {
46786 			u16 elapsedSecs;
46787 			u16 elapsedSecsForLastPercent;
46788 		};
46789 	} mrProgress;
46790 	u32 w;
46791 };
46792 
46793 struct MR_PD_PROGRESS {
46794 	struct {
46795 		u32 rbld: 1;
46796 		u32 patrol: 1;
46797 		u32 clear: 1;
46798 		u32 copyBack: 1;
46799 		u32 erase: 1;
46800 		u32 locate: 1;
46801 		u32 reserved: 26;
46802 	} active;
46803 	union MR_PROGRESS rbld;
46804 	union MR_PROGRESS patrol;
46805 	union {
46806 		union MR_PROGRESS clear;
46807 		union MR_PROGRESS erase;
46808 	};
46809 	struct {
46810 		u32 rbld: 1;
46811 		u32 patrol: 1;
46812 		u32 clear: 1;
46813 		u32 copyBack: 1;
46814 		u32 erase: 1;
46815 		u32 reserved: 27;
46816 	} pause;
46817 	union MR_PROGRESS reserved[3];
46818 };
46819 
46820 struct MR_PD_INFO {
46821 	union MR_PD_REF ref;
46822 	u8 inquiryData[96];
46823 	u8 vpdPage83[64];
46824 	u8 notSupported;
46825 	u8 scsiDevType;
46826 	union {
46827 		u8 connectedPortBitmap;
46828 		u8 connectedPortNumbers;
46829 	};
46830 	u8 deviceSpeed;
46831 	u32 mediaErrCount;
46832 	u32 otherErrCount;
46833 	u32 predFailCount;
46834 	u32 lastPredFailEventSeqNum;
46835 	u16 fwState;
46836 	u8 disabledForRemoval;
46837 	u8 linkSpeed;
46838 	union MR_PD_DDF_TYPE state;
46839 	struct {
46840 		u8 count;
46841 		u8 isPathBroken: 4;
46842 		u8 reserved3: 3;
46843 		u8 widePortCapable: 1;
46844 		u8 connectorIndex[2];
46845 		u8 reserved[4];
46846 		u64 sasAddr[2];
46847 		u8 reserved2[16];
46848 	} pathInfo;
46849 	u64 rawSize;
46850 	u64 nonCoercedSize;
46851 	u64 coercedSize;
46852 	u16 enclDeviceId;
46853 	u8 enclIndex;
46854 	union {
46855 		u8 slotNumber;
46856 		u8 enclConnectorIndex;
46857 	};
46858 	struct MR_PD_PROGRESS progInfo;
46859 	u8 badBlockTableFull;
46860 	u8 unusableInCurrentConfig;
46861 	u8 vpdPage83Ext[64];
46862 	u8 powerState;
46863 	u8 enclPosition;
46864 	u32 allowedOps;
46865 	u16 copyBackPartnerId;
46866 	u16 enclPartnerDeviceId;
46867 	struct {
46868 		u16 fdeCapable: 1;
46869 		u16 fdeEnabled: 1;
46870 		u16 secured: 1;
46871 		u16 locked: 1;
46872 		u16 foreign: 1;
46873 		u16 needsEKM: 1;
46874 		u16 reserved: 10;
46875 	} security;
46876 	u8 mediaType;
46877 	u8 notCertified;
46878 	u8 bridgeVendor[8];
46879 	u8 bridgeProductIdentification[16];
46880 	u8 bridgeProductRevisionLevel[4];
46881 	u8 satBridgeExists;
46882 	u8 interfaceType;
46883 	u8 temperature;
46884 	u8 emulatedBlockSize;
46885 	u16 userDataBlockSize;
46886 	u16 reserved2;
46887 	struct {
46888 		u32 piType: 3;
46889 		u32 piFormatted: 1;
46890 		u32 piEligible: 1;
46891 		u32 NCQ: 1;
46892 		u32 WCE: 1;
46893 		u32 commissionedSpare: 1;
46894 		u32 emergencySpare: 1;
46895 		u32 ineligibleForSSCD: 1;
46896 		u32 ineligibleForLd: 1;
46897 		u32 useSSEraseType: 1;
46898 		u32 wceUnchanged: 1;
46899 		u32 supportScsiUnmap: 1;
46900 		u32 reserved: 18;
46901 	} properties;
46902 	u64 shieldDiagCompletionTime;
46903 	u8 shieldCounter;
46904 	u8 linkSpeedOther;
46905 	u8 reserved4[2];
46906 	struct {
46907 		u32 bbmErrCountSupported: 1;
46908 		u32 bbmErrCount: 31;
46909 	} bbmErr;
46910 	u8 reserved1[84];
46911 } __attribute__((packed));
46912 
46913 struct MR_TARGET_PROPERTIES {
46914 	u32 max_io_size_kb;
46915 	u32 device_qdepth;
46916 	u32 sector_size;
46917 	u8 reset_tmo;
46918 	u8 reserved[499];
46919 };
46920 
46921 struct MR_PD_ADDRESS {
46922 	__le16 deviceId;
46923 	u16 enclDeviceId;
46924 	union {
46925 		struct {
46926 			u8 enclIndex;
46927 			u8 slotNumber;
46928 		} mrPdAddress;
46929 		struct {
46930 			u8 enclPosition;
46931 			u8 enclConnectorIndex;
46932 		} mrEnclAddress;
46933 	};
46934 	u8 scsiDevType;
46935 	union {
46936 		u8 connectedPortBitmap;
46937 		u8 connectedPortNumbers;
46938 	};
46939 	u64 sasAddr[2];
46940 };
46941 
46942 struct MR_PD_LIST {
46943 	__le32 size;
46944 	__le32 count;
46945 	struct MR_PD_ADDRESS addr[1];
46946 };
46947 
46948 union MR_LD_REF {
46949 	struct {
46950 		u8 targetId;
46951 		u8 reserved;
46952 		__le16 seqNum;
46953 	};
46954 	__le32 ref;
46955 };
46956 
46957 struct MR_LD_LIST {
46958 	__le32 ldCount;
46959 	__le32 reserved;
46960 	struct {
46961 		union MR_LD_REF ref;
46962 		u8 state;
46963 		u8 reserved[3];
46964 		__le64 size;
46965 	} ldList[256];
46966 };
46967 
46968 struct MR_LD_TARGETID_LIST {
46969 	__le32 size;
46970 	__le32 count;
46971 	u8 pad[3];
46972 	u8 targetId[256];
46973 };
46974 
46975 struct MR_HOST_DEVICE_LIST_ENTRY {
46976 	struct {
46977 		union {
46978 			struct {
46979 				u8 is_sys_pd: 1;
46980 				u8 reserved: 7;
46981 			} bits;
46982 			u8 byte;
46983 		} u;
46984 	} flags;
46985 	u8 scsi_type;
46986 	__le16 target_id;
46987 	u8 reserved[4];
46988 	__le64 sas_addr[2];
46989 };
46990 
46991 struct MR_HOST_DEVICE_LIST {
46992 	__le32 size;
46993 	__le32 count;
46994 	__le32 reserved[2];
46995 	struct MR_HOST_DEVICE_LIST_ENTRY host_device_list[1];
46996 };
46997 
46998 struct megasas_ctrl_prop {
46999 	u16 seq_num;
47000 	u16 pred_fail_poll_interval;
47001 	u16 intr_throttle_count;
47002 	u16 intr_throttle_timeouts;
47003 	u8 rebuild_rate;
47004 	u8 patrol_read_rate;
47005 	u8 bgi_rate;
47006 	u8 cc_rate;
47007 	u8 recon_rate;
47008 	u8 cache_flush_interval;
47009 	u8 spinup_drv_count;
47010 	u8 spinup_delay;
47011 	u8 cluster_enable;
47012 	u8 coercion_mode;
47013 	u8 alarm_enable;
47014 	u8 disable_auto_rebuild;
47015 	u8 disable_battery_warn;
47016 	u8 ecc_bucket_size;
47017 	u16 ecc_bucket_leak_rate;
47018 	u8 restore_hotspare_on_insertion;
47019 	u8 expose_encl_devices;
47020 	u8 maintainPdFailHistory;
47021 	u8 disallowHostRequestReordering;
47022 	u8 abortCCOnError;
47023 	u8 loadBalanceMode;
47024 	u8 disableAutoDetectBackplane;
47025 	u8 snapVDSpace;
47026 	struct {
47027 		u32 copyBackDisabled: 1;
47028 		u32 SMARTerEnabled: 1;
47029 		u32 prCorrectUnconfiguredAreas: 1;
47030 		u32 useFdeOnly: 1;
47031 		u32 disableNCQ: 1;
47032 		u32 SSDSMARTerEnabled: 1;
47033 		u32 SSDPatrolReadEnabled: 1;
47034 		u32 enableSpinDownUnconfigured: 1;
47035 		u32 autoEnhancedImport: 1;
47036 		u32 enableSecretKeyControl: 1;
47037 		u32 disableOnlineCtrlReset: 1;
47038 		u32 allowBootWithPinnedCache: 1;
47039 		u32 disableSpinDownHS: 1;
47040 		u32 enableJBOD: 1;
47041 		u32 reserved: 18;
47042 	} OnOffProperties;
47043 	union {
47044 		u8 autoSnapVDSpace;
47045 		u8 viewSpace;
47046 		struct {
47047 			u16 reserved1: 4;
47048 			u16 enable_snap_dump: 1;
47049 			u16 reserved2: 1;
47050 			u16 enable_fw_dev_list: 1;
47051 			u16 reserved3: 9;
47052 		} on_off_properties2;
47053 	};
47054 	__le16 spinDownTime;
47055 	u8 reserved[24];
47056 };
47057 
47058 struct megasas_ctrl_info {
47059 	struct {
47060 		__le16 vendor_id;
47061 		__le16 device_id;
47062 		__le16 sub_vendor_id;
47063 		__le16 sub_device_id;
47064 		u8 reserved[24];
47065 	} pci;
47066 	struct {
47067 		u8 PCIX: 1;
47068 		u8 PCIE: 1;
47069 		u8 iSCSI: 1;
47070 		u8 SAS_3G: 1;
47071 		u8 SRIOV: 1;
47072 		u8 reserved_0: 3;
47073 		u8 reserved_1[6];
47074 		u8 port_count;
47075 		u64 port_addr[8];
47076 	} host_interface;
47077 	struct {
47078 		u8 SPI: 1;
47079 		u8 SAS_3G: 1;
47080 		u8 SATA_1_5G: 1;
47081 		u8 SATA_3G: 1;
47082 		u8 reserved_0: 4;
47083 		u8 reserved_1[6];
47084 		u8 port_count;
47085 		u64 port_addr[8];
47086 	} device_interface;
47087 	__le32 image_check_word;
47088 	__le32 image_component_count;
47089 	struct {
47090 		char name[8];
47091 		char version[32];
47092 		char build_date[16];
47093 		char built_time[16];
47094 	} image_component[8];
47095 	__le32 pending_image_component_count;
47096 	struct {
47097 		char name[8];
47098 		char version[32];
47099 		char build_date[16];
47100 		char build_time[16];
47101 	} pending_image_component[8];
47102 	u8 max_arms;
47103 	u8 max_spans;
47104 	u8 max_arrays;
47105 	u8 max_lds;
47106 	char product_name[80];
47107 	char serial_no[32];
47108 	struct {
47109 		u32 bbu: 1;
47110 		u32 alarm: 1;
47111 		u32 nvram: 1;
47112 		u32 uart: 1;
47113 		u32 reserved: 28;
47114 	} hw_present;
47115 	__le32 current_fw_time;
47116 	__le16 max_concurrent_cmds;
47117 	__le16 max_sge_count;
47118 	__le32 max_request_size;
47119 	__le16 ld_present_count;
47120 	__le16 ld_degraded_count;
47121 	__le16 ld_offline_count;
47122 	__le16 pd_present_count;
47123 	__le16 pd_disk_present_count;
47124 	__le16 pd_disk_pred_failure_count;
47125 	__le16 pd_disk_failed_count;
47126 	__le16 nvram_size;
47127 	__le16 memory_size;
47128 	__le16 flash_size;
47129 	__le16 mem_correctable_error_count;
47130 	__le16 mem_uncorrectable_error_count;
47131 	u8 cluster_permitted;
47132 	u8 cluster_active;
47133 	__le16 max_strips_per_io;
47134 	struct {
47135 		u32 raid_level_0: 1;
47136 		u32 raid_level_1: 1;
47137 		u32 raid_level_5: 1;
47138 		u32 raid_level_1E: 1;
47139 		u32 raid_level_6: 1;
47140 		u32 reserved: 27;
47141 	} raid_levels;
47142 	struct {
47143 		u32 rbld_rate: 1;
47144 		u32 cc_rate: 1;
47145 		u32 bgi_rate: 1;
47146 		u32 recon_rate: 1;
47147 		u32 patrol_rate: 1;
47148 		u32 alarm_control: 1;
47149 		u32 cluster_supported: 1;
47150 		u32 bbu: 1;
47151 		u32 spanning_allowed: 1;
47152 		u32 dedicated_hotspares: 1;
47153 		u32 revertible_hotspares: 1;
47154 		u32 foreign_config_import: 1;
47155 		u32 self_diagnostic: 1;
47156 		u32 mixed_redundancy_arr: 1;
47157 		u32 global_hot_spares: 1;
47158 		u32 reserved: 17;
47159 	} adapter_operations;
47160 	struct {
47161 		u32 read_policy: 1;
47162 		u32 write_policy: 1;
47163 		u32 io_policy: 1;
47164 		u32 access_policy: 1;
47165 		u32 disk_cache_policy: 1;
47166 		u32 reserved: 27;
47167 	} ld_operations;
47168 	struct {
47169 		u8 min;
47170 		u8 max;
47171 		u8 reserved[2];
47172 	} stripe_sz_ops;
47173 	struct {
47174 		u32 force_online: 1;
47175 		u32 force_offline: 1;
47176 		u32 force_rebuild: 1;
47177 		u32 reserved: 29;
47178 	} pd_operations;
47179 	struct {
47180 		u32 ctrl_supports_sas: 1;
47181 		u32 ctrl_supports_sata: 1;
47182 		u32 allow_mix_in_encl: 1;
47183 		u32 allow_mix_in_ld: 1;
47184 		u32 allow_sata_in_cluster: 1;
47185 		u32 reserved: 27;
47186 	} pd_mix_support;
47187 	u8 ecc_bucket_count;
47188 	u8 reserved_2[11];
47189 	struct megasas_ctrl_prop properties;
47190 	char package_version[96];
47191 	__le64 deviceInterfacePortAddr2[8];
47192 	u8 reserved3[128];
47193 	struct {
47194 		u16 minPdRaidLevel_0: 4;
47195 		u16 maxPdRaidLevel_0: 12;
47196 		u16 minPdRaidLevel_1: 4;
47197 		u16 maxPdRaidLevel_1: 12;
47198 		u16 minPdRaidLevel_5: 4;
47199 		u16 maxPdRaidLevel_5: 12;
47200 		u16 minPdRaidLevel_1E: 4;
47201 		u16 maxPdRaidLevel_1E: 12;
47202 		u16 minPdRaidLevel_6: 4;
47203 		u16 maxPdRaidLevel_6: 12;
47204 		u16 minPdRaidLevel_10: 4;
47205 		u16 maxPdRaidLevel_10: 12;
47206 		u16 minPdRaidLevel_50: 4;
47207 		u16 maxPdRaidLevel_50: 12;
47208 		u16 minPdRaidLevel_60: 4;
47209 		u16 maxPdRaidLevel_60: 12;
47210 		u16 minPdRaidLevel_1E_RLQ0: 4;
47211 		u16 maxPdRaidLevel_1E_RLQ0: 12;
47212 		u16 minPdRaidLevel_1E0_RLQ0: 4;
47213 		u16 maxPdRaidLevel_1E0_RLQ0: 12;
47214 		u16 reserved[6];
47215 	} pdsForRaidLevels;
47216 	__le16 maxPds;
47217 	__le16 maxDedHSPs;
47218 	__le16 maxGlobalHSP;
47219 	__le16 ddfSize;
47220 	u8 maxLdsPerArray;
47221 	u8 partitionsInDDF;
47222 	u8 lockKeyBinding;
47223 	u8 maxPITsPerLd;
47224 	u8 maxViewsPerLd;
47225 	u8 maxTargetId;
47226 	__le16 maxBvlVdSize;
47227 	__le16 maxConfigurableSSCSize;
47228 	__le16 currentSSCsize;
47229 	char expanderFwVersion[12];
47230 	__le16 PFKTrialTimeRemaining;
47231 	__le16 cacheMemorySize;
47232 	struct {
47233 		u32 supportPIcontroller: 1;
47234 		u32 supportLdPIType1: 1;
47235 		u32 supportLdPIType2: 1;
47236 		u32 supportLdPIType3: 1;
47237 		u32 supportLdBBMInfo: 1;
47238 		u32 supportShieldState: 1;
47239 		u32 blockSSDWriteCacheChange: 1;
47240 		u32 supportSuspendResumeBGops: 1;
47241 		u32 supportEmergencySpares: 1;
47242 		u32 supportSetLinkSpeed: 1;
47243 		u32 supportBootTimePFKChange: 1;
47244 		u32 supportJBOD: 1;
47245 		u32 disableOnlinePFKChange: 1;
47246 		u32 supportPerfTuning: 1;
47247 		u32 supportSSDPatrolRead: 1;
47248 		u32 realTimeScheduler: 1;
47249 		u32 supportResetNow: 1;
47250 		u32 supportEmulatedDrives: 1;
47251 		u32 headlessMode: 1;
47252 		u32 dedicatedHotSparesLimited: 1;
47253 		u32 supportUnevenSpans: 1;
47254 		u32 supportPointInTimeProgress: 1;
47255 		u32 supportDataLDonSSCArray: 1;
47256 		u32 mpio: 1;
47257 		u32 supportConfigAutoBalance: 1;
47258 		u32 activePassive: 2;
47259 		u32 reserved: 5;
47260 	} adapterOperations2;
47261 	u8 driverVersion[32];
47262 	u8 maxDAPdCountSpinup60;
47263 	u8 temperatureROC;
47264 	u8 temperatureCtrl;
47265 	u8 reserved4;
47266 	__le16 maxConfigurablePds;
47267 	u8 reserved5[2];
47268 	struct {
47269 		u32 peerIsPresent: 1;
47270 		u32 peerIsIncompatible: 1;
47271 		u32 hwIncompatible: 1;
47272 		u32 fwVersionMismatch: 1;
47273 		u32 ctrlPropIncompatible: 1;
47274 		u32 premiumFeatureMismatch: 1;
47275 		u32 passive: 1;
47276 		u32 reserved: 25;
47277 	} cluster;
47278 	char clusterId[16];
47279 	struct {
47280 		u8 maxVFsSupported;
47281 		u8 numVFsEnabled;
47282 		u8 requestorId;
47283 		u8 reserved;
47284 	} iov;
47285 	struct {
47286 		u32 supportPersonalityChange: 2;
47287 		u32 supportThermalPollInterval: 1;
47288 		u32 supportDisableImmediateIO: 1;
47289 		u32 supportT10RebuildAssist: 1;
47290 		u32 supportMaxExtLDs: 1;
47291 		u32 supportCrashDump: 1;
47292 		u32 supportSwZone: 1;
47293 		u32 supportDebugQueue: 1;
47294 		u32 supportNVCacheErase: 1;
47295 		u32 supportForceTo512e: 1;
47296 		u32 supportHOQRebuild: 1;
47297 		u32 supportAllowedOpsforDrvRemoval: 1;
47298 		u32 supportDrvActivityLEDSetting: 1;
47299 		u32 supportNVDRAM: 1;
47300 		u32 supportForceFlash: 1;
47301 		u32 supportDisableSESMonitoring: 1;
47302 		u32 supportCacheBypassModes: 1;
47303 		u32 supportSecurityonJBOD: 1;
47304 		u32 discardCacheDuringLDDelete: 1;
47305 		u32 supportTTYLogCompression: 1;
47306 		u32 supportCPLDUpdate: 1;
47307 		u32 supportDiskCacheSettingForSysPDs: 1;
47308 		u32 supportExtendedSSCSize: 1;
47309 		u32 useSeqNumJbodFP: 1;
47310 		u32 reserved: 7;
47311 	} adapterOperations3;
47312 	struct {
47313 		u8 cpld_in_flash: 1;
47314 		u8 reserved: 7;
47315 		u8 reserved1[3];
47316 		u8 userCodeDefinition[12];
47317 	} cpld;
47318 	struct {
47319 		u16 ctrl_info_ext_supported: 1;
47320 		u16 support_ibutton_less: 1;
47321 		u16 supported_enc_algo: 1;
47322 		u16 support_encrypted_mfc: 1;
47323 		u16 image_upload_supported: 1;
47324 		u16 support_ses_ctrl_in_multipathcfg: 1;
47325 		u16 support_pd_map_target_id: 1;
47326 		u16 fw_swaps_bbu_vpd_info: 1;
47327 		u16 support_ssc_rev3: 1;
47328 		u16 support_dual_fw_update: 1;
47329 		u16 support_host_info: 1;
47330 		u16 support_flash_comp_info: 1;
47331 		u16 support_pl_debug_info: 1;
47332 		u16 support_nvme_passthru: 1;
47333 		u16 reserved: 2;
47334 	} adapter_operations4;
47335 	u8 pad[2];
47336 	u32 size;
47337 	u32 pad1;
47338 	u8 reserved6[64];
47339 	struct {
47340 		u32 mr_config_ext2_supported: 1;
47341 		u32 support_profile_change: 2;
47342 		u32 support_cvhealth_info: 1;
47343 		u32 support_pcie: 1;
47344 		u32 support_ext_mfg_vpd: 1;
47345 		u32 support_oce_only: 1;
47346 		u32 support_nvme_tm: 1;
47347 		u32 support_snap_dump: 1;
47348 		u32 support_fde_type_mix: 1;
47349 		u32 support_force_personality_change: 1;
47350 		u32 support_psoc_update: 1;
47351 		u32 support_pci_lane_margining: 1;
47352 		u32 reserved: 19;
47353 	} adapter_operations5;
47354 	u32 rsvdForAdptOp[63];
47355 	u8 reserved7[3];
47356 	u8 TaskAbortTO;
47357 	u8 MaxResetTO;
47358 	u8 reserved8[3];
47359 };
47360 
47361 enum MR_SCSI_CMD_TYPE {
47362 	READ_WRITE_LDIO = 0,
47363 	NON_READ_WRITE_LDIO = 1,
47364 	READ_WRITE_SYSPDIO = 2,
47365 	NON_READ_WRITE_SYSPDIO = 3,
47366 };
47367 
47368 enum DCMD_TIMEOUT_ACTION {
47369 	INITIATE_OCR = 0,
47370 	KILL_ADAPTER = 1,
47371 	IGNORE_TIMEOUT = 2,
47372 };
47373 
47374 enum MR_ADAPTER_TYPE {
47375 	MFI_SERIES = 1,
47376 	THUNDERBOLT_SERIES = 2,
47377 	INVADER_SERIES = 3,
47378 	VENTURA_SERIES = 4,
47379 	AERO_SERIES = 5,
47380 };
47381 
47382 struct megasas_register_set {
47383 	u32 doorbell;
47384 	u32 fusion_seq_offset;
47385 	u32 fusion_host_diag;
47386 	u32 reserved_01;
47387 	u32 inbound_msg_0;
47388 	u32 inbound_msg_1;
47389 	u32 outbound_msg_0;
47390 	u32 outbound_msg_1;
47391 	u32 inbound_doorbell;
47392 	u32 inbound_intr_status;
47393 	u32 inbound_intr_mask;
47394 	u32 outbound_doorbell;
47395 	u32 outbound_intr_status;
47396 	u32 outbound_intr_mask;
47397 	u32 reserved_1[2];
47398 	u32 inbound_queue_port;
47399 	u32 outbound_queue_port;
47400 	u32 reserved_2[9];
47401 	u32 reply_post_host_index;
47402 	u32 reserved_2_2[12];
47403 	u32 outbound_doorbell_clear;
47404 	u32 reserved_3[3];
47405 	u32 outbound_scratch_pad_0;
47406 	u32 outbound_scratch_pad_1;
47407 	u32 outbound_scratch_pad_2;
47408 	u32 outbound_scratch_pad_3;
47409 	u32 inbound_low_queue_port;
47410 	u32 inbound_high_queue_port;
47411 	u32 inbound_single_queue_port;
47412 	u32 res_6[11];
47413 	u32 host_diag;
47414 	u32 seq_offset;
47415 	u32 index_registers[807];
47416 };
47417 
47418 struct megasas_sge32 {
47419 	__le32 phys_addr;
47420 	__le32 length;
47421 };
47422 
47423 struct megasas_sge64 {
47424 	__le64 phys_addr;
47425 	__le32 length;
47426 } __attribute__((packed));
47427 
47428 struct megasas_sge_skinny {
47429 	__le64 phys_addr;
47430 	__le32 length;
47431 	__le32 flag;
47432 };
47433 
47434 union megasas_sgl {
47435 	struct megasas_sge32 sge32[1];
47436 	struct megasas_sge64 sge64[1];
47437 	struct megasas_sge_skinny sge_skinny[1];
47438 };
47439 
47440 struct megasas_header {
47441 	u8 cmd;
47442 	u8 sense_len;
47443 	u8 cmd_status;
47444 	u8 scsi_status;
47445 	u8 target_id;
47446 	u8 lun;
47447 	u8 cdb_len;
47448 	u8 sge_count;
47449 	__le32 context;
47450 	__le32 pad_0;
47451 	__le16 flags;
47452 	__le16 timeout;
47453 	__le32 data_xferlen;
47454 };
47455 
47456 union _MFI_CAPABILITIES {
47457 	struct {
47458 		u32 support_fp_remote_lun: 1;
47459 		u32 support_additional_msix: 1;
47460 		u32 support_fastpath_wb: 1;
47461 		u32 support_max_255lds: 1;
47462 		u32 support_ndrive_r1_lb: 1;
47463 		u32 support_core_affinity: 1;
47464 		u32 security_protocol_cmds_fw: 1;
47465 		u32 support_ext_queue_depth: 1;
47466 		u32 support_ext_io_size: 1;
47467 		u32 support_vfid_in_ioframe: 1;
47468 		u32 support_fp_rlbypass: 1;
47469 		u32 support_qd_throttling: 1;
47470 		u32 support_pd_map_target_id: 1;
47471 		u32 support_64bit_mode: 1;
47472 		u32 support_nvme_passthru: 1;
47473 		u32 support_fw_exposed_dev_list: 1;
47474 		u32 reserved: 16;
47475 	} mfi_capabilities;
47476 	__le32 reg;
47477 };
47478 
47479 typedef union _MFI_CAPABILITIES MFI_CAPABILITIES;
47480 
47481 struct megasas_init_frame {
47482 	u8 cmd;
47483 	u8 reserved_0;
47484 	u8 cmd_status;
47485 	u8 reserved_1;
47486 	MFI_CAPABILITIES driver_operations;
47487 	__le32 context;
47488 	__le32 pad_0;
47489 	__le16 flags;
47490 	__le16 replyqueue_mask;
47491 	__le32 data_xfer_len;
47492 	__le32 queue_info_new_phys_addr_lo;
47493 	__le32 queue_info_new_phys_addr_hi;
47494 	__le32 queue_info_old_phys_addr_lo;
47495 	__le32 queue_info_old_phys_addr_hi;
47496 	__le32 reserved_4[2];
47497 	__le32 system_info_lo;
47498 	__le32 system_info_hi;
47499 	__le32 reserved_5[2];
47500 };
47501 
47502 struct megasas_init_queue_info {
47503 	__le32 init_flags;
47504 	__le32 reply_queue_entries;
47505 	__le32 reply_queue_start_phys_addr_lo;
47506 	__le32 reply_queue_start_phys_addr_hi;
47507 	__le32 producer_index_phys_addr_lo;
47508 	__le32 producer_index_phys_addr_hi;
47509 	__le32 consumer_index_phys_addr_lo;
47510 	__le32 consumer_index_phys_addr_hi;
47511 };
47512 
47513 struct megasas_io_frame {
47514 	u8 cmd;
47515 	u8 sense_len;
47516 	u8 cmd_status;
47517 	u8 scsi_status;
47518 	u8 target_id;
47519 	u8 access_byte;
47520 	u8 reserved_0;
47521 	u8 sge_count;
47522 	__le32 context;
47523 	__le32 pad_0;
47524 	__le16 flags;
47525 	__le16 timeout;
47526 	__le32 lba_count;
47527 	__le32 sense_buf_phys_addr_lo;
47528 	__le32 sense_buf_phys_addr_hi;
47529 	__le32 start_lba_lo;
47530 	__le32 start_lba_hi;
47531 	union megasas_sgl sgl;
47532 };
47533 
47534 struct megasas_pthru_frame {
47535 	u8 cmd;
47536 	u8 sense_len;
47537 	u8 cmd_status;
47538 	u8 scsi_status;
47539 	u8 target_id;
47540 	u8 lun;
47541 	u8 cdb_len;
47542 	u8 sge_count;
47543 	__le32 context;
47544 	__le32 pad_0;
47545 	__le16 flags;
47546 	__le16 timeout;
47547 	__le32 data_xfer_len;
47548 	__le32 sense_buf_phys_addr_lo;
47549 	__le32 sense_buf_phys_addr_hi;
47550 	u8 cdb[16];
47551 	union megasas_sgl sgl;
47552 };
47553 
47554 struct megasas_dcmd_frame {
47555 	u8 cmd;
47556 	u8 reserved_0;
47557 	u8 cmd_status;
47558 	u8 reserved_1[4];
47559 	u8 sge_count;
47560 	__le32 context;
47561 	__le32 pad_0;
47562 	__le16 flags;
47563 	__le16 timeout;
47564 	__le32 data_xfer_len;
47565 	__le32 opcode;
47566 	union {
47567 		u8 b[12];
47568 		__le16 s[6];
47569 		__le32 w[3];
47570 	} mbox;
47571 	union megasas_sgl sgl;
47572 };
47573 
47574 struct megasas_abort_frame {
47575 	u8 cmd;
47576 	u8 reserved_0;
47577 	u8 cmd_status;
47578 	u8 reserved_1;
47579 	__le32 reserved_2;
47580 	__le32 context;
47581 	__le32 pad_0;
47582 	__le16 flags;
47583 	__le16 reserved_3;
47584 	__le32 reserved_4;
47585 	__le32 abort_context;
47586 	__le32 pad_1;
47587 	__le32 abort_mfi_phys_addr_lo;
47588 	__le32 abort_mfi_phys_addr_hi;
47589 	__le32 reserved_5[6];
47590 };
47591 
47592 struct megasas_smp_frame {
47593 	u8 cmd;
47594 	u8 reserved_1;
47595 	u8 cmd_status;
47596 	u8 connection_status;
47597 	u8 reserved_2[3];
47598 	u8 sge_count;
47599 	__le32 context;
47600 	__le32 pad_0;
47601 	__le16 flags;
47602 	__le16 timeout;
47603 	__le32 data_xfer_len;
47604 	__le64 sas_addr;
47605 	union {
47606 		struct megasas_sge32 sge32[2];
47607 		struct megasas_sge64 sge64[2];
47608 	} sgl;
47609 };
47610 
47611 struct megasas_stp_frame {
47612 	u8 cmd;
47613 	u8 reserved_1;
47614 	u8 cmd_status;
47615 	u8 reserved_2;
47616 	u8 target_id;
47617 	u8 reserved_3[2];
47618 	u8 sge_count;
47619 	__le32 context;
47620 	__le32 pad_0;
47621 	__le16 flags;
47622 	__le16 timeout;
47623 	__le32 data_xfer_len;
47624 	__le16 fis[10];
47625 	__le32 stp_flags;
47626 	union {
47627 		struct megasas_sge32 sge32[2];
47628 		struct megasas_sge64 sge64[2];
47629 	} sgl;
47630 };
47631 
47632 union megasas_frame {
47633 	struct megasas_header hdr;
47634 	struct megasas_init_frame init;
47635 	struct megasas_io_frame io;
47636 	struct megasas_pthru_frame pthru;
47637 	struct megasas_dcmd_frame dcmd;
47638 	struct megasas_abort_frame abort;
47639 	struct megasas_smp_frame smp;
47640 	struct megasas_stp_frame stp;
47641 	u8 raw_bytes[64];
47642 };
47643 
47644 struct MR_PRIV_DEVICE {
47645 	bool is_tm_capable;
47646 	bool tm_busy;
47647 	atomic_t sdev_priv_busy;
47648 	atomic_t r1_ldio_hint;
47649 	u8 interface_type;
47650 	u8 task_abort_tmo;
47651 	u8 target_reset_tmo;
47652 };
47653 
47654 union megasas_evt_class_locale {
47655 	struct {
47656 		u16 locale;
47657 		u8 reserved;
47658 		s8 class;
47659 	} members;
47660 	u32 word;
47661 };
47662 
47663 struct megasas_evt_log_info {
47664 	__le32 newest_seq_num;
47665 	__le32 oldest_seq_num;
47666 	__le32 clear_seq_num;
47667 	__le32 shutdown_seq_num;
47668 	__le32 boot_seq_num;
47669 };
47670 
47671 struct megasas_progress {
47672 	__le16 progress;
47673 	__le16 elapsed_seconds;
47674 };
47675 
47676 struct megasas_evtarg_ld {
47677 	u16 target_id;
47678 	u8 ld_index;
47679 	u8 reserved;
47680 };
47681 
47682 struct megasas_evtarg_pd {
47683 	u16 device_id;
47684 	u8 encl_index;
47685 	u8 slot_number;
47686 };
47687 
47688 struct megasas_evt_detail {
47689 	__le32 seq_num;
47690 	__le32 time_stamp;
47691 	__le32 code;
47692 	union megasas_evt_class_locale cl;
47693 	u8 arg_type;
47694 	u8 reserved1[15];
47695 	union {
47696 		struct {
47697 			struct megasas_evtarg_pd pd;
47698 			u8 cdb_length;
47699 			u8 sense_length;
47700 			u8 reserved[2];
47701 			u8 cdb[16];
47702 			u8 sense[64];
47703 		} cdbSense;
47704 		struct megasas_evtarg_ld ld;
47705 		struct {
47706 			struct megasas_evtarg_ld ld;
47707 			__le64 count;
47708 		} __attribute__((packed)) ld_count;
47709 		struct {
47710 			__le64 lba;
47711 			struct megasas_evtarg_ld ld;
47712 		} __attribute__((packed)) ld_lba;
47713 		struct {
47714 			struct megasas_evtarg_ld ld;
47715 			__le32 prevOwner;
47716 			__le32 newOwner;
47717 		} ld_owner;
47718 		struct {
47719 			u64 ld_lba;
47720 			u64 pd_lba;
47721 			struct megasas_evtarg_ld ld;
47722 			struct megasas_evtarg_pd pd;
47723 		} ld_lba_pd_lba;
47724 		struct {
47725 			struct megasas_evtarg_ld ld;
47726 			struct megasas_progress prog;
47727 		} ld_prog;
47728 		struct {
47729 			struct megasas_evtarg_ld ld;
47730 			u32 prev_state;
47731 			u32 new_state;
47732 		} ld_state;
47733 		struct {
47734 			u64 strip;
47735 			struct megasas_evtarg_ld ld;
47736 		} __attribute__((packed)) ld_strip;
47737 		struct megasas_evtarg_pd pd;
47738 		struct {
47739 			struct megasas_evtarg_pd pd;
47740 			u32 err;
47741 		} pd_err;
47742 		struct {
47743 			u64 lba;
47744 			struct megasas_evtarg_pd pd;
47745 		} __attribute__((packed)) pd_lba;
47746 		struct {
47747 			u64 lba;
47748 			struct megasas_evtarg_pd pd;
47749 			struct megasas_evtarg_ld ld;
47750 		} pd_lba_ld;
47751 		struct {
47752 			struct megasas_evtarg_pd pd;
47753 			struct megasas_progress prog;
47754 		} pd_prog;
47755 		struct {
47756 			struct megasas_evtarg_pd pd;
47757 			u32 prevState;
47758 			u32 newState;
47759 		} pd_state;
47760 		struct {
47761 			u16 vendorId;
47762 			__le16 deviceId;
47763 			u16 subVendorId;
47764 			u16 subDeviceId;
47765 		} pci;
47766 		u32 rate;
47767 		char str[96];
47768 		struct {
47769 			u32 rtc;
47770 			u32 elapsedSeconds;
47771 		} time;
47772 		struct {
47773 			u32 ecar;
47774 			u32 elog;
47775 			char str[64];
47776 		} ecc;
47777 		u8 b[96];
47778 		__le16 s[48];
47779 		__le32 w[24];
47780 		__le64 d[12];
47781 	} args;
47782 	char description[128];
47783 };
47784 
47785 struct megasas_aen_event {
47786 	struct delayed_work hotplug_work;
47787 	struct megasas_instance *instance;
47788 };
47789 
47790 struct MR_DRV_SYSTEM_INFO {
47791 	u8 infoVersion;
47792 	u8 systemIdLength;
47793 	u16 reserved0;
47794 	u8 systemId[64];
47795 	u8 reserved[1980];
47796 };
47797 
47798 enum MR_PD_TYPE {
47799 	UNKNOWN_DRIVE = 0,
47800 	PARALLEL_SCSI = 1,
47801 	SAS_PD = 2,
47802 	SATA_PD = 3,
47803 	FC_PD = 4,
47804 	NVME_PD = 5,
47805 };
47806 
47807 enum MR_PERF_MODE {
47808 	MR_BALANCED_PERF_MODE = 0,
47809 	MR_IOPS_PERF_MODE = 1,
47810 	MR_LATENCY_PERF_MODE = 2,
47811 };
47812 
47813 enum MEGASAS_LD_TARGET_ID_STATUS {
47814 	LD_TARGET_ID_INITIAL = 0,
47815 	LD_TARGET_ID_ACTIVE = 1,
47816 	LD_TARGET_ID_DELETED = 2,
47817 };
47818 
47819 struct MR_LD_VF_MAP {
47820 	u32 size;
47821 	union MR_LD_REF ref;
47822 	u8 ldVfCount;
47823 	u8 reserved[6];
47824 	u8 policy[1];
47825 };
47826 
47827 struct MR_LD_VF_AFFILIATION {
47828 	u32 size;
47829 	u8 ldCount;
47830 	u8 vfCount;
47831 	u8 thisVf;
47832 	u8 reserved[9];
47833 	struct MR_LD_VF_MAP map[1];
47834 };
47835 
47836 struct MR_LD_VF_MAP_111 {
47837 	u8 targetId;
47838 	u8 reserved[3];
47839 	u8 policy[8];
47840 };
47841 
47842 struct MR_LD_VF_AFFILIATION_111 {
47843 	u8 vdCount;
47844 	u8 vfCount;
47845 	u8 thisVf;
47846 	u8 reserved[5];
47847 	struct MR_LD_VF_MAP_111 map[64];
47848 };
47849 
47850 struct MR_CTRL_HB_HOST_MEM {
47851 	struct {
47852 		u32 fwCounter;
47853 		struct {
47854 			u32 debugmode: 1;
47855 			u32 reserved: 31;
47856 		} debug;
47857 		u32 reserved_fw[6];
47858 		u32 driverCounter;
47859 		u32 reserved_driver[7];
47860 	} HB;
47861 	u8 pad[960];
47862 };
47863 
47864 struct megasas_instance_template {
47865 	void (*fire_cmd)(struct megasas_instance *, dma_addr_t, u32, struct megasas_register_set *);
47866 	void (*enable_intr)(struct megasas_instance *);
47867 	void (*disable_intr)(struct megasas_instance *);
47868 	int (*clear_intr)(struct megasas_instance *);
47869 	u32 (*read_fw_status_reg)(struct megasas_instance *);
47870 	int (*adp_reset)(struct megasas_instance *, struct megasas_register_set *);
47871 	int (*check_reset)(struct megasas_instance *, struct megasas_register_set *);
47872 	irqreturn_t (*service_isr)(int, void *);
47873 	void (*tasklet)(long unsigned int);
47874 	u32 (*init_adapter)(struct megasas_instance *);
47875 	u32 (*build_and_issue_cmd)(struct megasas_instance *, struct scsi_cmnd *);
47876 	void (*issue_dcmd)(struct megasas_instance *, struct megasas_cmd *);
47877 };
47878 
47879 struct IOV_111 {
47880 	u8 maxVFsSupported;
47881 	u8 numVFsEnabled;
47882 	u8 requestorId;
47883 	u8 reserved[5];
47884 };
47885 
47886 enum {
47887 	MEGASAS_HBA_OPERATIONAL = 0,
47888 	MEGASAS_ADPRESET_SM_INFAULT = 1,
47889 	MEGASAS_ADPRESET_SM_FW_RESET_SUCCESS = 2,
47890 	MEGASAS_ADPRESET_SM_OPERATIONAL = 3,
47891 	MEGASAS_HW_CRITICAL_ERROR = 4,
47892 	MEGASAS_ADPRESET_SM_POLLING = 5,
47893 	MEGASAS_ADPRESET_INPROG_SIGN = 3735936685,
47894 };
47895 
47896 struct megasas_cmd_priv {
47897 	void *cmd_priv;
47898 	u8 status;
47899 };
47900 
47901 struct megasas_iocpacket {
47902 	u16 host_no;
47903 	u16 __pad1;
47904 	u32 sgl_off;
47905 	u32 sge_count;
47906 	u32 sense_off;
47907 	u32 sense_len;
47908 	union {
47909 		u8 raw[128];
47910 		struct megasas_header hdr;
47911 	} frame;
47912 	struct iovec sgl[16];
47913 } __attribute__((packed));
47914 
47915 struct megasas_aen {
47916 	u16 host_no;
47917 	u16 __pad1;
47918 	u32 seq_num;
47919 	u32 class_locale_word;
47920 };
47921 
47922 struct compat_megasas_iocpacket {
47923 	u16 host_no;
47924 	u16 __pad1;
47925 	u32 sgl_off;
47926 	u32 sge_count;
47927 	u32 sense_off;
47928 	u32 sense_len;
47929 	union {
47930 		u8 raw[128];
47931 		struct megasas_header hdr;
47932 	} frame;
47933 	struct compat_iovec sgl[16];
47934 };
47935 
47936 struct megasas_mgmt_info {
47937 	u16 count;
47938 	struct megasas_instance *instance[1024];
47939 	int max_index;
47940 };
47941 
47942 enum MEGASAS_OCR_CAUSE {
47943 	FW_FAULT_OCR = 0,
47944 	SCSIIO_TIMEOUT_OCR = 1,
47945 	MFI_IO_TIMEOUT_OCR = 2,
47946 };
47947 
47948 enum DCMD_RETURN_STATUS {
47949 	DCMD_SUCCESS = 0,
47950 	DCMD_TIMEOUT = 1,
47951 	DCMD_FAILED = 2,
47952 	DCMD_BUSY = 3,
47953 	DCMD_INIT = 255,
47954 };
47955 
47956 typedef u8 U8___2;
47957 
47958 typedef __le16 U16___2;
47959 
47960 typedef __le32 U32___2;
47961 
47962 typedef __le64 U64___2;
47963 
47964 struct _MPI2_SYSTEM_INTERFACE_REGS {
47965 	U32___2 Doorbell;
47966 	U32___2 WriteSequence;
47967 	U32___2 HostDiagnostic;
47968 	U32___2 Reserved1;
47969 	U32___2 DiagRWData;
47970 	U32___2 DiagRWAddressLow;
47971 	U32___2 DiagRWAddressHigh;
47972 	U32___2 Reserved2[5];
47973 	U32___2 HostInterruptStatus;
47974 	U32___2 HostInterruptMask;
47975 	U32___2 DCRData;
47976 	U32___2 DCRAddress;
47977 	U32___2 Reserved3[2];
47978 	U32___2 ReplyFreeHostIndex;
47979 	U32___2 Reserved4[8];
47980 	U32___2 ReplyPostHostIndex;
47981 	U32___2 Reserved5;
47982 	U32___2 HCBSize;
47983 	U32___2 HCBAddressLow;
47984 	U32___2 HCBAddressHigh;
47985 	U32___2 Reserved6[12];
47986 	U32___2 Scratchpad[4];
47987 	U32___2 RequestDescriptorPostLow;
47988 	U32___2 RequestDescriptorPostHigh;
47989 	U32___2 AtomicRequestDescriptorPost;
47990 	U32___2 Reserved7[13];
47991 };
47992 
47993 typedef volatile struct _MPI2_SYSTEM_INTERFACE_REGS Mpi2SystemInterfaceRegs_t;
47994 
47995 struct _MPI2_DEFAULT_REQUEST_DESCRIPTOR {
47996 	U8___2 RequestFlags;
47997 	U8___2 MSIxIndex;
47998 	U16___2 SMID;
47999 	U16___2 LMID;
48000 	U16___2 DescriptorTypeDependent;
48001 };
48002 
48003 typedef struct _MPI2_DEFAULT_REQUEST_DESCRIPTOR MPI2_DEFAULT_REQUEST_DESCRIPTOR;
48004 
48005 struct _MPI2_HIGH_PRIORITY_REQUEST_DESCRIPTOR {
48006 	U8___2 RequestFlags;
48007 	U8___2 MSIxIndex;
48008 	U16___2 SMID;
48009 	U16___2 LMID;
48010 	U16___2 Reserved1;
48011 };
48012 
48013 typedef struct _MPI2_HIGH_PRIORITY_REQUEST_DESCRIPTOR MPI2_HIGH_PRIORITY_REQUEST_DESCRIPTOR;
48014 
48015 struct _MPI2_SCSI_IO_REQUEST_DESCRIPTOR {
48016 	U8___2 RequestFlags;
48017 	U8___2 MSIxIndex;
48018 	U16___2 SMID;
48019 	U16___2 LMID;
48020 	U16___2 DevHandle;
48021 };
48022 
48023 typedef struct _MPI2_SCSI_IO_REQUEST_DESCRIPTOR MPI2_SCSI_IO_REQUEST_DESCRIPTOR;
48024 
48025 struct _MPI2_SCSI_TARGET_REQUEST_DESCRIPTOR {
48026 	U8___2 RequestFlags;
48027 	U8___2 MSIxIndex;
48028 	U16___2 SMID;
48029 	U16___2 LMID;
48030 	U16___2 IoIndex;
48031 };
48032 
48033 typedef struct _MPI2_SCSI_TARGET_REQUEST_DESCRIPTOR MPI2_SCSI_TARGET_REQUEST_DESCRIPTOR;
48034 
48035 struct _MPI2_RAID_ACCEL_REQUEST_DESCRIPTOR {
48036 	U8___2 RequestFlags;
48037 	U8___2 MSIxIndex;
48038 	U16___2 SMID;
48039 	U16___2 LMID;
48040 	U16___2 Reserved;
48041 };
48042 
48043 typedef struct _MPI2_RAID_ACCEL_REQUEST_DESCRIPTOR MPI2_RAID_ACCEL_REQUEST_DESCRIPTOR;
48044 
48045 typedef MPI2_SCSI_IO_REQUEST_DESCRIPTOR MPI25_FP_SCSI_IO_REQUEST_DESCRIPTOR;
48046 
48047 typedef MPI2_SCSI_IO_REQUEST_DESCRIPTOR MPI26_PCIE_ENCAPSULATED_REQUEST_DESCRIPTOR;
48048 
48049 union _MPI2_REQUEST_DESCRIPTOR_UNION {
48050 	MPI2_DEFAULT_REQUEST_DESCRIPTOR Default;
48051 	MPI2_HIGH_PRIORITY_REQUEST_DESCRIPTOR HighPriority;
48052 	MPI2_SCSI_IO_REQUEST_DESCRIPTOR SCSIIO;
48053 	MPI2_SCSI_TARGET_REQUEST_DESCRIPTOR SCSITarget;
48054 	MPI2_RAID_ACCEL_REQUEST_DESCRIPTOR RAIDAccelerator;
48055 	MPI25_FP_SCSI_IO_REQUEST_DESCRIPTOR FastPathSCSIIO;
48056 	MPI26_PCIE_ENCAPSULATED_REQUEST_DESCRIPTOR PCIeEncapsulated;
48057 	U64___2 Words;
48058 };
48059 
48060 typedef union _MPI2_REQUEST_DESCRIPTOR_UNION Mpi2RequestDescriptorUnion_t;
48061 
48062 struct _MPI26_ATOMIC_REQUEST_DESCRIPTOR {
48063 	U8___2 RequestFlags;
48064 	U8___2 MSIxIndex;
48065 	U16___2 SMID;
48066 };
48067 
48068 typedef struct _MPI26_ATOMIC_REQUEST_DESCRIPTOR Mpi26AtomicRequestDescriptor_t;
48069 
48070 struct _MPI2_DEFAULT_REPLY_DESCRIPTOR {
48071 	U8___2 ReplyFlags;
48072 	U8___2 MSIxIndex;
48073 	U16___2 DescriptorTypeDependent1;
48074 	U32___2 DescriptorTypeDependent2;
48075 };
48076 
48077 typedef struct _MPI2_DEFAULT_REPLY_DESCRIPTOR MPI2_DEFAULT_REPLY_DESCRIPTOR;
48078 
48079 struct _MPI2_ADDRESS_REPLY_DESCRIPTOR {
48080 	U8___2 ReplyFlags;
48081 	U8___2 MSIxIndex;
48082 	U16___2 SMID;
48083 	U32___2 ReplyFrameAddress;
48084 };
48085 
48086 typedef struct _MPI2_ADDRESS_REPLY_DESCRIPTOR MPI2_ADDRESS_REPLY_DESCRIPTOR;
48087 
48088 struct _MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR {
48089 	U8___2 ReplyFlags;
48090 	U8___2 MSIxIndex;
48091 	U16___2 SMID;
48092 	U16___2 TaskTag;
48093 	U16___2 Reserved1;
48094 };
48095 
48096 typedef struct _MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR;
48097 
48098 struct _MPI2_TARGETASSIST_SUCCESS_REPLY_DESCRIPTOR {
48099 	U8___2 ReplyFlags;
48100 	U8___2 MSIxIndex;
48101 	U16___2 SMID;
48102 	U8___2 SequenceNumber;
48103 	U8___2 Reserved1;
48104 	U16___2 IoIndex;
48105 };
48106 
48107 typedef struct _MPI2_TARGETASSIST_SUCCESS_REPLY_DESCRIPTOR MPI2_TARGETASSIST_SUCCESS_REPLY_DESCRIPTOR;
48108 
48109 struct _MPI2_TARGET_COMMAND_BUFFER_REPLY_DESCRIPTOR {
48110 	U8___2 ReplyFlags;
48111 	U8___2 MSIxIndex;
48112 	U8___2 VP_ID;
48113 	U8___2 Flags;
48114 	U16___2 InitiatorDevHandle;
48115 	U16___2 IoIndex;
48116 };
48117 
48118 typedef struct _MPI2_TARGET_COMMAND_BUFFER_REPLY_DESCRIPTOR MPI2_TARGET_COMMAND_BUFFER_REPLY_DESCRIPTOR;
48119 
48120 struct _MPI2_RAID_ACCELERATOR_SUCCESS_REPLY_DESCRIPTOR {
48121 	U8___2 ReplyFlags;
48122 	U8___2 MSIxIndex;
48123 	U16___2 SMID;
48124 	U32___2 Reserved;
48125 };
48126 
48127 typedef struct _MPI2_RAID_ACCELERATOR_SUCCESS_REPLY_DESCRIPTOR MPI2_RAID_ACCELERATOR_SUCCESS_REPLY_DESCRIPTOR;
48128 
48129 typedef MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR MPI25_FP_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR;
48130 
48131 typedef MPI2_RAID_ACCELERATOR_SUCCESS_REPLY_DESCRIPTOR MPI26_PCIE_ENCAPSULATED_SUCCESS_REPLY_DESCRIPTOR;
48132 
48133 union _MPI2_REPLY_DESCRIPTORS_UNION {
48134 	MPI2_DEFAULT_REPLY_DESCRIPTOR Default;
48135 	MPI2_ADDRESS_REPLY_DESCRIPTOR AddressReply;
48136 	MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR SCSIIOSuccess;
48137 	MPI2_TARGETASSIST_SUCCESS_REPLY_DESCRIPTOR TargetAssistSuccess;
48138 	MPI2_TARGET_COMMAND_BUFFER_REPLY_DESCRIPTOR TargetCommandBuffer;
48139 	MPI2_RAID_ACCELERATOR_SUCCESS_REPLY_DESCRIPTOR RAIDAcceleratorSuccess;
48140 	MPI25_FP_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR FastPathSCSIIOSuccess;
48141 	MPI26_PCIE_ENCAPSULATED_SUCCESS_REPLY_DESCRIPTOR PCIeEncapsulatedSuccess;
48142 	U64___2 Words;
48143 };
48144 
48145 typedef union _MPI2_REPLY_DESCRIPTORS_UNION Mpi2ReplyDescriptorsUnion_t;
48146 
48147 struct _MPI2_REQUEST_HEADER {
48148 	U16___2 FunctionDependent1;
48149 	U8___2 ChainOffset;
48150 	U8___2 Function;
48151 	U16___2 FunctionDependent2;
48152 	U8___2 FunctionDependent3;
48153 	U8___2 MsgFlags;
48154 	U8___2 VP_ID;
48155 	U8___2 VF_ID;
48156 	U16___2 Reserved1;
48157 };
48158 
48159 typedef struct _MPI2_REQUEST_HEADER MPI2RequestHeader_t;
48160 
48161 struct _MPI2_DEFAULT_REPLY {
48162 	U16___2 FunctionDependent1;
48163 	U8___2 MsgLength;
48164 	U8___2 Function;
48165 	U16___2 FunctionDependent2;
48166 	U8___2 FunctionDependent3;
48167 	U8___2 MsgFlags;
48168 	U8___2 VP_ID;
48169 	U8___2 VF_ID;
48170 	U16___2 Reserved1;
48171 	U16___2 FunctionDependent5;
48172 	U16___2 IOCStatus;
48173 	U32___2 IOCLogInfo;
48174 };
48175 
48176 typedef struct _MPI2_DEFAULT_REPLY MPI2DefaultReply_t;
48177 
48178 struct _MPI2_VERSION_STRUCT {
48179 	U8___2 Dev;
48180 	U8___2 Unit;
48181 	U8___2 Minor;
48182 	U8___2 Major;
48183 };
48184 
48185 typedef struct _MPI2_VERSION_STRUCT MPI2_VERSION_STRUCT;
48186 
48187 union _MPI2_VERSION_UNION {
48188 	MPI2_VERSION_STRUCT Struct;
48189 	U32___2 Word;
48190 };
48191 
48192 typedef union _MPI2_VERSION_UNION MPI2_VERSION_UNION;
48193 
48194 struct _MPI2_SGE_SIMPLE32 {
48195 	U32___2 FlagsLength;
48196 	U32___2 Address;
48197 };
48198 
48199 typedef struct _MPI2_SGE_SIMPLE32 Mpi2SGESimple32_t;
48200 
48201 struct _MPI2_SGE_SIMPLE64 {
48202 	U32___2 FlagsLength;
48203 	U64___2 Address;
48204 } __attribute__((packed));
48205 
48206 typedef struct _MPI2_SGE_SIMPLE64 Mpi2SGESimple64_t;
48207 
48208 struct _MPI2_SGE_SIMPLE_UNION {
48209 	U32___2 FlagsLength;
48210 	union {
48211 		U32___2 Address32;
48212 		U64___2 Address64;
48213 	} u;
48214 } __attribute__((packed));
48215 
48216 typedef struct _MPI2_SGE_SIMPLE_UNION MPI2_SGE_SIMPLE_UNION;
48217 
48218 struct _MPI2_SGE_CHAIN_UNION {
48219 	U16___2 Length;
48220 	U8___2 NextChainOffset;
48221 	U8___2 Flags;
48222 	union {
48223 		U32___2 Address32;
48224 		U64___2 Address64;
48225 	} u;
48226 } __attribute__((packed));
48227 
48228 typedef struct _MPI2_SGE_CHAIN_UNION MPI2_SGE_CHAIN_UNION;
48229 
48230 struct _MPI2_IEEE_SGE_SIMPLE32 {
48231 	U32___2 Address;
48232 	U32___2 FlagsLength;
48233 };
48234 
48235 typedef struct _MPI2_IEEE_SGE_SIMPLE32 MPI2_IEEE_SGE_SIMPLE32;
48236 
48237 struct _MPI2_IEEE_SGE_SIMPLE64 {
48238 	U64___2 Address;
48239 	U32___2 Length;
48240 	U16___2 Reserved1;
48241 	U8___2 Reserved2;
48242 	U8___2 Flags;
48243 };
48244 
48245 typedef struct _MPI2_IEEE_SGE_SIMPLE64 MPI2_IEEE_SGE_SIMPLE64;
48246 
48247 union _MPI2_IEEE_SGE_SIMPLE_UNION {
48248 	MPI2_IEEE_SGE_SIMPLE32 Simple32;
48249 	MPI2_IEEE_SGE_SIMPLE64 Simple64;
48250 };
48251 
48252 typedef union _MPI2_IEEE_SGE_SIMPLE_UNION MPI2_IEEE_SGE_SIMPLE_UNION;
48253 
48254 typedef MPI2_IEEE_SGE_SIMPLE32 MPI2_IEEE_SGE_CHAIN32;
48255 
48256 typedef MPI2_IEEE_SGE_SIMPLE64 MPI2_IEEE_SGE_CHAIN64;
48257 
48258 union _MPI2_IEEE_SGE_CHAIN_UNION {
48259 	MPI2_IEEE_SGE_CHAIN32 Chain32;
48260 	MPI2_IEEE_SGE_CHAIN64 Chain64;
48261 };
48262 
48263 typedef union _MPI2_IEEE_SGE_CHAIN_UNION MPI2_IEEE_SGE_CHAIN_UNION;
48264 
48265 struct _MPI25_IEEE_SGE_CHAIN64 {
48266 	U64___2 Address;
48267 	U32___2 Length;
48268 	U16___2 Reserved1;
48269 	U8___2 NextChainOffset;
48270 	U8___2 Flags;
48271 };
48272 
48273 typedef struct _MPI25_IEEE_SGE_CHAIN64 MPI25_IEEE_SGE_CHAIN64;
48274 
48275 typedef struct _MPI25_IEEE_SGE_CHAIN64 Mpi25IeeeSgeChain64_t;
48276 
48277 typedef struct _MPI25_IEEE_SGE_CHAIN64 *pMpi25IeeeSgeChain64_t;
48278 
48279 union _MPI25_SGE_IO_UNION {
48280 	MPI2_IEEE_SGE_SIMPLE64 IeeeSimple;
48281 	MPI25_IEEE_SGE_CHAIN64 IeeeChain;
48282 };
48283 
48284 typedef union _MPI25_SGE_IO_UNION MPI25_SGE_IO_UNION;
48285 
48286 union _MPI2_SGE_IO_UNION {
48287 	MPI2_SGE_SIMPLE_UNION MpiSimple;
48288 	MPI2_SGE_CHAIN_UNION MpiChain;
48289 	MPI2_IEEE_SGE_SIMPLE_UNION IeeeSimple;
48290 	MPI2_IEEE_SGE_CHAIN_UNION IeeeChain;
48291 };
48292 
48293 typedef union _MPI2_SGE_IO_UNION MPI2_SGE_IO_UNION;
48294 
48295 struct _MPI2_IOC_INIT_REQUEST {
48296 	U8___2 WhoInit;
48297 	U8___2 Reserved1;
48298 	U8___2 ChainOffset;
48299 	U8___2 Function;
48300 	U16___2 Reserved2;
48301 	U8___2 Reserved3;
48302 	U8___2 MsgFlags;
48303 	U8___2 VP_ID;
48304 	U8___2 VF_ID;
48305 	U16___2 Reserved4;
48306 	U16___2 MsgVersion;
48307 	U16___2 HeaderVersion;
48308 	U32___2 Reserved5;
48309 	U16___2 ConfigurationFlags;
48310 	U8___2 HostPageSize;
48311 	U8___2 HostMSIxVectors;
48312 	U16___2 Reserved8;
48313 	U16___2 SystemRequestFrameSize;
48314 	U16___2 ReplyDescriptorPostQueueDepth;
48315 	U16___2 ReplyFreeQueueDepth;
48316 	U32___2 SenseBufferAddressHigh;
48317 	U32___2 SystemReplyAddressHigh;
48318 	U64___2 SystemRequestFrameBaseAddress;
48319 	U64___2 ReplyDescriptorPostQueueAddress;
48320 	U64___2 ReplyFreeQueueAddress;
48321 	U64___2 TimeStamp;
48322 };
48323 
48324 typedef struct _MPI2_IOC_INIT_REQUEST Mpi2IOCInitRequest_t;
48325 
48326 struct _MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY {
48327 	U64___2 RDPQBaseAddress;
48328 	U32___2 Reserved1;
48329 	U32___2 Reserved2;
48330 };
48331 
48332 typedef struct _MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY Mpi2IOCInitRDPQArrayEntry;
48333 
48334 struct _MPI2_IOC_INIT_REPLY {
48335 	U8___2 WhoInit;
48336 	U8___2 Reserved1;
48337 	U8___2 MsgLength;
48338 	U8___2 Function;
48339 	U16___2 Reserved2;
48340 	U8___2 Reserved3;
48341 	U8___2 MsgFlags;
48342 	U8___2 VP_ID;
48343 	U8___2 VF_ID;
48344 	U16___2 Reserved4;
48345 	U16___2 Reserved5;
48346 	U16___2 IOCStatus;
48347 	U32___2 IOCLogInfo;
48348 };
48349 
48350 typedef struct _MPI2_IOC_INIT_REPLY Mpi2IOCInitReply_t;
48351 
48352 struct _MPI2_IOC_FACTS_REQUEST {
48353 	U16___2 Reserved1;
48354 	U8___2 ChainOffset;
48355 	U8___2 Function;
48356 	U16___2 Reserved2;
48357 	U8___2 Reserved3;
48358 	U8___2 MsgFlags;
48359 	U8___2 VP_ID;
48360 	U8___2 VF_ID;
48361 	U16___2 Reserved4;
48362 };
48363 
48364 typedef struct _MPI2_IOC_FACTS_REQUEST Mpi2IOCFactsRequest_t;
48365 
48366 struct _MPI2_IOC_FACTS_REPLY {
48367 	U16___2 MsgVersion;
48368 	U8___2 MsgLength;
48369 	U8___2 Function;
48370 	U16___2 HeaderVersion;
48371 	U8___2 IOCNumber;
48372 	U8___2 MsgFlags;
48373 	U8___2 VP_ID;
48374 	U8___2 VF_ID;
48375 	U16___2 Reserved1;
48376 	U16___2 IOCExceptions;
48377 	U16___2 IOCStatus;
48378 	U32___2 IOCLogInfo;
48379 	U8___2 MaxChainDepth;
48380 	U8___2 WhoInit;
48381 	U8___2 NumberOfPorts;
48382 	U8___2 MaxMSIxVectors;
48383 	U16___2 RequestCredit;
48384 	U16___2 ProductID;
48385 	U32___2 IOCCapabilities;
48386 	MPI2_VERSION_UNION FWVersion;
48387 	U16___2 IOCRequestFrameSize;
48388 	U16___2 IOCMaxChainSegmentSize;
48389 	U16___2 MaxInitiators;
48390 	U16___2 MaxTargets;
48391 	U16___2 MaxSasExpanders;
48392 	U16___2 MaxEnclosures;
48393 	U16___2 ProtocolFlags;
48394 	U16___2 HighPriorityCredit;
48395 	U16___2 MaxReplyDescriptorPostQueueDepth;
48396 	U8___2 ReplyFrameSize;
48397 	U8___2 MaxVolumes;
48398 	U16___2 MaxDevHandle;
48399 	U16___2 MaxPersistentEntries;
48400 	U16___2 MinDevHandle;
48401 	U8___2 CurrentHostPageSize;
48402 	U8___2 Reserved4;
48403 	U8___2 SGEModifierMask;
48404 	U8___2 SGEModifierValue;
48405 	U8___2 SGEModifierShift;
48406 	U8___2 Reserved5;
48407 };
48408 
48409 typedef struct _MPI2_IOC_FACTS_REPLY Mpi2IOCFactsReply_t;
48410 
48411 struct _MPI2_PORT_FACTS_REQUEST {
48412 	U16___2 Reserved1;
48413 	U8___2 ChainOffset;
48414 	U8___2 Function;
48415 	U16___2 Reserved2;
48416 	U8___2 PortNumber;
48417 	U8___2 MsgFlags;
48418 	U8___2 VP_ID;
48419 	U8___2 VF_ID;
48420 	U16___2 Reserved3;
48421 };
48422 
48423 typedef struct _MPI2_PORT_FACTS_REQUEST Mpi2PortFactsRequest_t;
48424 
48425 struct _MPI2_PORT_FACTS_REPLY {
48426 	U16___2 Reserved1;
48427 	U8___2 MsgLength;
48428 	U8___2 Function;
48429 	U16___2 Reserved2;
48430 	U8___2 PortNumber;
48431 	U8___2 MsgFlags;
48432 	U8___2 VP_ID;
48433 	U8___2 VF_ID;
48434 	U16___2 Reserved3;
48435 	U16___2 Reserved4;
48436 	U16___2 IOCStatus;
48437 	U32___2 IOCLogInfo;
48438 	U8___2 Reserved5;
48439 	U8___2 PortType;
48440 	U16___2 Reserved6;
48441 	U16___2 MaxPostedCmdBuffers;
48442 	U16___2 Reserved7;
48443 };
48444 
48445 typedef struct _MPI2_PORT_FACTS_REPLY Mpi2PortFactsReply_t;
48446 
48447 struct _MPI2_PORT_ENABLE_REQUEST {
48448 	U16___2 Reserved1;
48449 	U8___2 ChainOffset;
48450 	U8___2 Function;
48451 	U8___2 Reserved2;
48452 	U8___2 PortFlags;
48453 	U8___2 Reserved3;
48454 	U8___2 MsgFlags;
48455 	U8___2 VP_ID;
48456 	U8___2 VF_ID;
48457 	U16___2 Reserved4;
48458 };
48459 
48460 typedef struct _MPI2_PORT_ENABLE_REQUEST Mpi2PortEnableRequest_t;
48461 
48462 struct _MPI2_PORT_ENABLE_REPLY {
48463 	U16___2 Reserved1;
48464 	U8___2 MsgLength;
48465 	U8___2 Function;
48466 	U8___2 Reserved2;
48467 	U8___2 PortFlags;
48468 	U8___2 Reserved3;
48469 	U8___2 MsgFlags;
48470 	U8___2 VP_ID;
48471 	U8___2 VF_ID;
48472 	U16___2 Reserved4;
48473 	U16___2 Reserved5;
48474 	U16___2 IOCStatus;
48475 	U32___2 IOCLogInfo;
48476 };
48477 
48478 typedef struct _MPI2_PORT_ENABLE_REPLY Mpi2PortEnableReply_t;
48479 
48480 struct _MPI2_EVENT_NOTIFICATION_REQUEST {
48481 	U16___2 Reserved1;
48482 	U8___2 ChainOffset;
48483 	U8___2 Function;
48484 	U16___2 Reserved2;
48485 	U8___2 Reserved3;
48486 	U8___2 MsgFlags;
48487 	U8___2 VP_ID;
48488 	U8___2 VF_ID;
48489 	U16___2 Reserved4;
48490 	U32___2 Reserved5;
48491 	U32___2 Reserved6;
48492 	U32___2 EventMasks[4];
48493 	U16___2 SASBroadcastPrimitiveMasks;
48494 	U16___2 SASNotifyPrimitiveMasks;
48495 	U32___2 Reserved8;
48496 };
48497 
48498 typedef struct _MPI2_EVENT_NOTIFICATION_REQUEST Mpi2EventNotificationRequest_t;
48499 
48500 struct _MPI2_EVENT_NOTIFICATION_REPLY {
48501 	U16___2 EventDataLength;
48502 	U8___2 MsgLength;
48503 	U8___2 Function;
48504 	U16___2 Reserved1;
48505 	U8___2 AckRequired;
48506 	U8___2 MsgFlags;
48507 	U8___2 VP_ID;
48508 	U8___2 VF_ID;
48509 	U16___2 Reserved2;
48510 	U16___2 Reserved3;
48511 	U16___2 IOCStatus;
48512 	U32___2 IOCLogInfo;
48513 	U16___2 Event;
48514 	U16___2 Reserved4;
48515 	U32___2 EventContext;
48516 	U32___2 EventData[0];
48517 };
48518 
48519 typedef struct _MPI2_EVENT_NOTIFICATION_REPLY Mpi2EventNotificationReply_t;
48520 
48521 struct _MPI2_EVENT_DATA_SAS_DISCOVERY {
48522 	U8___2 Flags;
48523 	U8___2 ReasonCode;
48524 	U8___2 PhysicalPort;
48525 	U8___2 Reserved1;
48526 	U32___2 DiscoveryStatus;
48527 };
48528 
48529 typedef struct _MPI2_EVENT_DATA_SAS_DISCOVERY Mpi2EventDataSasDiscovery_t;
48530 
48531 struct _MPI26_EVENT_DATA_PCIE_ENUMERATION {
48532 	U8___2 Flags;
48533 	U8___2 ReasonCode;
48534 	U8___2 PhysicalPort;
48535 	U8___2 Reserved1;
48536 	U32___2 EnumerationStatus;
48537 };
48538 
48539 typedef struct _MPI26_EVENT_DATA_PCIE_ENUMERATION Mpi26EventDataPCIeEnumeration_t;
48540 
48541 struct _MPI2_EVENT_ACK_REQUEST {
48542 	U16___2 Reserved1;
48543 	U8___2 ChainOffset;
48544 	U8___2 Function;
48545 	U16___2 Reserved2;
48546 	U8___2 Reserved3;
48547 	U8___2 MsgFlags;
48548 	U8___2 VP_ID;
48549 	U8___2 VF_ID;
48550 	U16___2 Reserved4;
48551 	U16___2 Event;
48552 	U16___2 Reserved5;
48553 	U32___2 EventContext;
48554 };
48555 
48556 typedef struct _MPI2_EVENT_ACK_REQUEST Mpi2EventAckRequest_t;
48557 
48558 struct _MPI25_FW_UPLOAD_REQUEST {
48559 	U8___2 ImageType;
48560 	U8___2 Reserved1;
48561 	U8___2 ChainOffset;
48562 	U8___2 Function;
48563 	U16___2 Reserved2;
48564 	U8___2 Reserved3;
48565 	U8___2 MsgFlags;
48566 	U8___2 VP_ID;
48567 	U8___2 VF_ID;
48568 	U16___2 Reserved4;
48569 	U32___2 Reserved5;
48570 	U32___2 Reserved6;
48571 	U32___2 Reserved7;
48572 	U32___2 ImageOffset;
48573 	U32___2 ImageSize;
48574 	MPI25_SGE_IO_UNION SGL;
48575 };
48576 
48577 typedef struct _MPI25_FW_UPLOAD_REQUEST Mpi25FWUploadRequest_t;
48578 
48579 struct _MPI2_FW_UPLOAD_REPLY {
48580 	U8___2 ImageType;
48581 	U8___2 Reserved1;
48582 	U8___2 MsgLength;
48583 	U8___2 Function;
48584 	U16___2 Reserved2;
48585 	U8___2 Reserved3;
48586 	U8___2 MsgFlags;
48587 	U8___2 VP_ID;
48588 	U8___2 VF_ID;
48589 	U16___2 Reserved4;
48590 	U16___2 Reserved5;
48591 	U16___2 IOCStatus;
48592 	U32___2 IOCLogInfo;
48593 	U32___2 ActualImageSize;
48594 };
48595 
48596 typedef struct _MPI2_FW_UPLOAD_REPLY Mpi2FWUploadReply_t;
48597 
48598 struct _MPI26_IOUNIT_CONTROL_REQUEST {
48599 	U8___2 Operation;
48600 	U8___2 Reserved1;
48601 	U8___2 ChainOffset;
48602 	U8___2 Function;
48603 	U16___2 DevHandle;
48604 	U8___2 IOCParameter;
48605 	U8___2 MsgFlags;
48606 	U8___2 VP_ID;
48607 	U8___2 VF_ID;
48608 	U16___2 Reserved3;
48609 	U16___2 Reserved4;
48610 	U8___2 PhyNum;
48611 	U8___2 PrimFlags;
48612 	U32___2 Primitive;
48613 	U8___2 LookupMethod;
48614 	U8___2 Reserved5;
48615 	U16___2 SlotNumber;
48616 	U64___2 LookupAddress;
48617 	U32___2 IOCParameterValue;
48618 	U32___2 Reserved7;
48619 	U32___2 Reserved8;
48620 } __attribute__((packed));
48621 
48622 typedef struct _MPI26_IOUNIT_CONTROL_REQUEST Mpi26IoUnitControlRequest_t;
48623 
48624 struct _MPI26_IOUNIT_CONTROL_REPLY {
48625 	U8___2 Operation;
48626 	U8___2 Reserved1;
48627 	U8___2 MsgLength;
48628 	U8___2 Function;
48629 	U16___2 DevHandle;
48630 	U8___2 IOCParameter;
48631 	U8___2 MsgFlags;
48632 	U8___2 VP_ID;
48633 	U8___2 VF_ID;
48634 	U16___2 Reserved3;
48635 	U16___2 Reserved4;
48636 	U16___2 IOCStatus;
48637 	U32___2 IOCLogInfo;
48638 };
48639 
48640 typedef struct _MPI26_IOUNIT_CONTROL_REPLY Mpi26IoUnitControlReply_t;
48641 
48642 struct _MPI2_CONFIG_PAGE_HEADER {
48643 	U8___2 PageVersion;
48644 	U8___2 PageLength;
48645 	U8___2 PageNumber;
48646 	U8___2 PageType;
48647 };
48648 
48649 typedef struct _MPI2_CONFIG_PAGE_HEADER MPI2_CONFIG_PAGE_HEADER;
48650 
48651 struct _MPI2_CONFIG_EXTENDED_PAGE_HEADER {
48652 	U8___2 PageVersion;
48653 	U8___2 Reserved1;
48654 	U8___2 PageNumber;
48655 	U8___2 PageType;
48656 	U16___2 ExtPageLength;
48657 	U8___2 ExtPageType;
48658 	U8___2 Reserved2;
48659 };
48660 
48661 typedef struct _MPI2_CONFIG_EXTENDED_PAGE_HEADER MPI2_CONFIG_EXTENDED_PAGE_HEADER;
48662 
48663 struct _MPI2_CONFIG_REQUEST {
48664 	U8___2 Action;
48665 	U8___2 SGLFlags;
48666 	U8___2 ChainOffset;
48667 	U8___2 Function;
48668 	U16___2 ExtPageLength;
48669 	U8___2 ExtPageType;
48670 	U8___2 MsgFlags;
48671 	U8___2 VP_ID;
48672 	U8___2 VF_ID;
48673 	U16___2 Reserved1;
48674 	U8___2 Reserved2;
48675 	U8___2 ProxyVF_ID;
48676 	U16___2 Reserved4;
48677 	U32___2 Reserved3;
48678 	MPI2_CONFIG_PAGE_HEADER Header;
48679 	U32___2 PageAddress;
48680 	MPI2_SGE_IO_UNION PageBufferSGE;
48681 } __attribute__((packed));
48682 
48683 typedef struct _MPI2_CONFIG_REQUEST Mpi2ConfigRequest_t;
48684 
48685 struct _MPI2_CONFIG_REPLY {
48686 	U8___2 Action;
48687 	U8___2 SGLFlags;
48688 	U8___2 MsgLength;
48689 	U8___2 Function;
48690 	U16___2 ExtPageLength;
48691 	U8___2 ExtPageType;
48692 	U8___2 MsgFlags;
48693 	U8___2 VP_ID;
48694 	U8___2 VF_ID;
48695 	U16___2 Reserved1;
48696 	U16___2 Reserved2;
48697 	U16___2 IOCStatus;
48698 	U32___2 IOCLogInfo;
48699 	MPI2_CONFIG_PAGE_HEADER Header;
48700 };
48701 
48702 typedef struct _MPI2_CONFIG_REPLY Mpi2ConfigReply_t;
48703 
48704 struct _MPI2_CONFIG_PAGE_MAN_0 {
48705 	MPI2_CONFIG_PAGE_HEADER Header;
48706 	U8___2 ChipName[16];
48707 	U8___2 ChipRevision[8];
48708 	U8___2 BoardName[16];
48709 	U8___2 BoardAssembly[16];
48710 	U8___2 BoardTracerNumber[16];
48711 };
48712 
48713 typedef struct _MPI2_CONFIG_PAGE_MAN_0 Mpi2ManufacturingPage0_t;
48714 
48715 struct _MPI2_CONFIG_PAGE_MAN_1 {
48716 	MPI2_CONFIG_PAGE_HEADER Header;
48717 	U8___2 VPD[256];
48718 };
48719 
48720 typedef struct _MPI2_CONFIG_PAGE_MAN_1 Mpi2ManufacturingPage1_t;
48721 
48722 struct _MPI2_CONFIG_PAGE_IO_UNIT_0 {
48723 	MPI2_CONFIG_PAGE_HEADER Header;
48724 	U64___2 UniqueValue;
48725 	MPI2_VERSION_UNION NvdataVersionDefault;
48726 	MPI2_VERSION_UNION NvdataVersionPersistent;
48727 } __attribute__((packed));
48728 
48729 typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_0 Mpi2IOUnitPage0_t;
48730 
48731 struct _MPI2_CONFIG_PAGE_IO_UNIT_1 {
48732 	MPI2_CONFIG_PAGE_HEADER Header;
48733 	U32___2 Flags;
48734 };
48735 
48736 typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_1 Mpi2IOUnitPage1_t;
48737 
48738 struct _MPI2_IOUNIT8_SENSOR {
48739 	U16___2 Flags;
48740 	U16___2 Reserved1;
48741 	U16___2 Threshold[4];
48742 	U32___2 Reserved2;
48743 	U32___2 Reserved3;
48744 	U32___2 Reserved4;
48745 };
48746 
48747 typedef struct _MPI2_IOUNIT8_SENSOR MPI2_IOUNIT8_SENSOR;
48748 
48749 struct _MPI2_CONFIG_PAGE_IO_UNIT_8 {
48750 	MPI2_CONFIG_PAGE_HEADER Header;
48751 	U32___2 Reserved1;
48752 	U32___2 Reserved2;
48753 	U8___2 NumSensors;
48754 	U8___2 PollingInterval;
48755 	U16___2 Reserved3;
48756 	MPI2_IOUNIT8_SENSOR Sensor[1];
48757 };
48758 
48759 typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_8 Mpi2IOUnitPage8_t;
48760 
48761 struct _MPI2_CONFIG_PAGE_IOC_1 {
48762 	MPI2_CONFIG_PAGE_HEADER Header;
48763 	U32___2 Flags;
48764 	U32___2 CoalescingTimeout;
48765 	U8___2 CoalescingDepth;
48766 	U8___2 PCISlotNum;
48767 	U8___2 PCIBusNum;
48768 	U8___2 PCIDomainSegment;
48769 	U32___2 Reserved1;
48770 	U32___2 ProductSpecific;
48771 };
48772 
48773 typedef struct _MPI2_CONFIG_PAGE_IOC_1 Mpi2IOCPage1_t;
48774 
48775 struct _MPI2_CONFIG_PAGE_IOC_8 {
48776 	MPI2_CONFIG_PAGE_HEADER Header;
48777 	U8___2 NumDevsPerEnclosure;
48778 	U8___2 Reserved1;
48779 	U16___2 Reserved2;
48780 	U16___2 MaxPersistentEntries;
48781 	U16___2 MaxNumPhysicalMappedIDs;
48782 	U16___2 Flags;
48783 	U16___2 Reserved3;
48784 	U16___2 IRVolumeMappingFlags;
48785 	U16___2 Reserved4;
48786 	U32___2 Reserved5;
48787 };
48788 
48789 typedef struct _MPI2_CONFIG_PAGE_IOC_8 Mpi2IOCPage8_t;
48790 
48791 struct _MPI2_BOOT_DEVICE_ADAPTER_ORDER {
48792 	U32___2 Reserved1;
48793 	U32___2 Reserved2;
48794 	U32___2 Reserved3;
48795 	U32___2 Reserved4;
48796 	U32___2 Reserved5;
48797 	U32___2 Reserved6;
48798 };
48799 
48800 typedef struct _MPI2_BOOT_DEVICE_ADAPTER_ORDER MPI2_BOOT_DEVICE_ADAPTER_ORDER;
48801 
48802 struct _MPI2_BOOT_DEVICE_SAS_WWID {
48803 	U64___2 SASAddress;
48804 	U8___2 LUN[8];
48805 	U32___2 Reserved1;
48806 	U32___2 Reserved2;
48807 };
48808 
48809 typedef struct _MPI2_BOOT_DEVICE_SAS_WWID MPI2_BOOT_DEVICE_SAS_WWID;
48810 
48811 struct _MPI2_BOOT_DEVICE_ENCLOSURE_SLOT {
48812 	U64___2 EnclosureLogicalID;
48813 	U32___2 Reserved1;
48814 	U32___2 Reserved2;
48815 	U16___2 SlotNumber;
48816 	U16___2 Reserved3;
48817 	U32___2 Reserved4;
48818 };
48819 
48820 typedef struct _MPI2_BOOT_DEVICE_ENCLOSURE_SLOT MPI2_BOOT_DEVICE_ENCLOSURE_SLOT;
48821 
48822 struct _MPI2_BOOT_DEVICE_DEVICE_NAME {
48823 	U64___2 DeviceName;
48824 	U8___2 LUN[8];
48825 	U32___2 Reserved1;
48826 	U32___2 Reserved2;
48827 };
48828 
48829 typedef struct _MPI2_BOOT_DEVICE_DEVICE_NAME MPI2_BOOT_DEVICE_DEVICE_NAME;
48830 
48831 union _MPI2_MPI2_BIOSPAGE2_BOOT_DEVICE {
48832 	MPI2_BOOT_DEVICE_ADAPTER_ORDER AdapterOrder;
48833 	MPI2_BOOT_DEVICE_SAS_WWID SasWwid;
48834 	MPI2_BOOT_DEVICE_ENCLOSURE_SLOT EnclosureSlot;
48835 	MPI2_BOOT_DEVICE_DEVICE_NAME DeviceName;
48836 };
48837 
48838 typedef union _MPI2_MPI2_BIOSPAGE2_BOOT_DEVICE MPI2_BIOSPAGE2_BOOT_DEVICE;
48839 
48840 struct _MPI2_CONFIG_PAGE_BIOS_2 {
48841 	MPI2_CONFIG_PAGE_HEADER Header;
48842 	U32___2 Reserved1;
48843 	U32___2 Reserved2;
48844 	U32___2 Reserved3;
48845 	U32___2 Reserved4;
48846 	U32___2 Reserved5;
48847 	U32___2 Reserved6;
48848 	U8___2 ReqBootDeviceForm;
48849 	U8___2 Reserved7;
48850 	U16___2 Reserved8;
48851 	MPI2_BIOSPAGE2_BOOT_DEVICE RequestedBootDevice;
48852 	U8___2 ReqAltBootDeviceForm;
48853 	U8___2 Reserved9;
48854 	U16___2 Reserved10;
48855 	MPI2_BIOSPAGE2_BOOT_DEVICE RequestedAltBootDevice;
48856 	U8___2 CurrentBootDeviceForm;
48857 	U8___2 Reserved11;
48858 	U16___2 Reserved12;
48859 	MPI2_BIOSPAGE2_BOOT_DEVICE CurrentBootDevice;
48860 } __attribute__((packed));
48861 
48862 typedef struct _MPI2_CONFIG_PAGE_BIOS_2 Mpi2BiosPage2_t;
48863 
48864 struct _MPI2_ADAPTER_INFO {
48865 	U8___2 PciBusNumber;
48866 	U8___2 PciDeviceAndFunctionNumber;
48867 	U16___2 AdapterFlags;
48868 };
48869 
48870 typedef struct _MPI2_ADAPTER_INFO MPI2_ADAPTER_INFO;
48871 
48872 struct _MPI2_ADAPTER_ORDER_AUX {
48873 	U64___2 WWID;
48874 	U32___2 Reserved1;
48875 	U32___2 Reserved2;
48876 };
48877 
48878 typedef struct _MPI2_ADAPTER_ORDER_AUX MPI2_ADAPTER_ORDER_AUX;
48879 
48880 struct _MPI2_CONFIG_PAGE_BIOS_3 {
48881 	MPI2_CONFIG_PAGE_HEADER Header;
48882 	U32___2 GlobalFlags;
48883 	U32___2 BiosVersion;
48884 	MPI2_ADAPTER_INFO AdapterOrder[4];
48885 	U32___2 Reserved1;
48886 	MPI2_ADAPTER_ORDER_AUX AdapterOrderAux[4];
48887 };
48888 
48889 typedef struct _MPI2_CONFIG_PAGE_BIOS_3 Mpi2BiosPage3_t;
48890 
48891 struct _MPI2_BIOS4_ENTRY {
48892 	U64___2 ReassignmentWWID;
48893 	U64___2 ReassignmentDeviceName;
48894 };
48895 
48896 typedef struct _MPI2_BIOS4_ENTRY MPI2_BIOS4_ENTRY;
48897 
48898 struct _MPI2_CONFIG_PAGE_BIOS_4 {
48899 	MPI2_CONFIG_PAGE_HEADER Header;
48900 	U8___2 NumPhys;
48901 	U8___2 Reserved1;
48902 	U16___2 Reserved2;
48903 	MPI2_BIOS4_ENTRY Phy[1];
48904 };
48905 
48906 typedef struct _MPI2_CONFIG_PAGE_BIOS_4 Mpi2BiosPage4_t;
48907 
48908 struct _MPI2_SAS_IO_UNIT1_PHY_DATA {
48909 	U8___2 Port;
48910 	U8___2 PortFlags;
48911 	U8___2 PhyFlags;
48912 	U8___2 MaxMinLinkRate;
48913 	U32___2 ControllerPhyDeviceInfo;
48914 	U16___2 MaxTargetPortConnectTime;
48915 	U16___2 Reserved1;
48916 };
48917 
48918 typedef struct _MPI2_SAS_IO_UNIT1_PHY_DATA MPI2_SAS_IO_UNIT1_PHY_DATA;
48919 
48920 struct _MPI2_CONFIG_PAGE_SASIOUNIT_1 {
48921 	MPI2_CONFIG_EXTENDED_PAGE_HEADER Header;
48922 	U16___2 ControlFlags;
48923 	U16___2 SASNarrowMaxQueueDepth;
48924 	U16___2 AdditionalControlFlags;
48925 	U16___2 SASWideMaxQueueDepth;
48926 	U8___2 NumPhys;
48927 	U8___2 SATAMaxQDepth;
48928 	U8___2 ReportDeviceMissingDelay;
48929 	U8___2 IODeviceMissingDelay;
48930 	MPI2_SAS_IO_UNIT1_PHY_DATA PhyData[1];
48931 };
48932 
48933 typedef struct _MPI2_CONFIG_PAGE_SASIOUNIT_1 Mpi2SasIOUnitPage1_t;
48934 
48935 struct _MPI2_CONFIG_PAGE_SAS_ENCLOSURE_0 {
48936 	MPI2_CONFIG_EXTENDED_PAGE_HEADER Header;
48937 	U32___2 Reserved1;
48938 	U64___2 EnclosureLogicalID;
48939 	U16___2 Flags;
48940 	U16___2 EnclosureHandle;
48941 	U16___2 NumSlots;
48942 	U16___2 StartSlot;
48943 	U8___2 ChassisSlot;
48944 	U8___2 EnclosureLevel;
48945 	U16___2 SEPDevHandle;
48946 	U8___2 OEMRD;
48947 	U8___2 Reserved1a;
48948 	U16___2 Reserved2;
48949 	U32___2 Reserved3;
48950 } __attribute__((packed));
48951 
48952 typedef struct _MPI2_CONFIG_PAGE_SAS_ENCLOSURE_0 Mpi2SasEnclosurePage0_t;
48953 
48954 struct _MPI26_PCIE_IO_UNIT1_PHY_DATA {
48955 	U8___2 Link;
48956 	U8___2 LinkFlags;
48957 	U8___2 PhyFlags;
48958 	U8___2 MaxMinLinkRate;
48959 	U32___2 ControllerPhyDeviceInfo;
48960 	U32___2 Reserved1;
48961 };
48962 
48963 typedef struct _MPI26_PCIE_IO_UNIT1_PHY_DATA MPI26_PCIE_IO_UNIT1_PHY_DATA;
48964 
48965 struct _MPI26_CONFIG_PAGE_PIOUNIT_1 {
48966 	MPI2_CONFIG_EXTENDED_PAGE_HEADER Header;
48967 	U16___2 ControlFlags;
48968 	U16___2 Reserved;
48969 	U16___2 AdditionalControlFlags;
48970 	U16___2 NVMeMaxQueueDepth;
48971 	U8___2 NumPhys;
48972 	U8___2 DMDReportPCIe;
48973 	U16___2 Reserved2;
48974 	MPI26_PCIE_IO_UNIT1_PHY_DATA PhyData[1];
48975 };
48976 
48977 typedef struct _MPI26_CONFIG_PAGE_PIOUNIT_1 Mpi26PCIeIOUnitPage1_t;
48978 
48979 struct _MPI2_SCSI_IO_CDB_EEDP32 {
48980 	U8___2 CDB[20];
48981 	__be32 PrimaryReferenceTag;
48982 	U16___2 PrimaryApplicationTag;
48983 	U16___2 PrimaryApplicationTagMask;
48984 	U32___2 TransferLength;
48985 };
48986 
48987 typedef struct _MPI2_SCSI_IO_CDB_EEDP32 MPI2_SCSI_IO_CDB_EEDP32;
48988 
48989 union _MPI2_SCSI_IO_CDB_UNION {
48990 	U8___2 CDB32[32];
48991 	MPI2_SCSI_IO_CDB_EEDP32 EEDP32;
48992 	MPI2_SGE_SIMPLE_UNION SGE;
48993 };
48994 
48995 typedef union _MPI2_SCSI_IO_CDB_UNION MPI2_SCSI_IO_CDB_UNION;
48996 
48997 struct _MPI2_SCSI_IO_REQUEST {
48998 	U16___2 DevHandle;
48999 	U8___2 ChainOffset;
49000 	U8___2 Function;
49001 	U16___2 Reserved1;
49002 	U8___2 Reserved2;
49003 	U8___2 MsgFlags;
49004 	U8___2 VP_ID;
49005 	U8___2 VF_ID;
49006 	U16___2 Reserved3;
49007 	U32___2 SenseBufferLowAddress;
49008 	U16___2 SGLFlags;
49009 	U8___2 SenseBufferLength;
49010 	U8___2 Reserved4;
49011 	U8___2 SGLOffset0;
49012 	U8___2 SGLOffset1;
49013 	U8___2 SGLOffset2;
49014 	U8___2 SGLOffset3;
49015 	U32___2 SkipCount;
49016 	U32___2 DataLength;
49017 	U32___2 BidirectionalDataLength;
49018 	U16___2 IoFlags;
49019 	U16___2 EEDPFlags;
49020 	U32___2 EEDPBlockSize;
49021 	U32___2 SecondaryReferenceTag;
49022 	U16___2 SecondaryApplicationTag;
49023 	U16___2 ApplicationTagTranslationMask;
49024 	U8___2 LUN[8];
49025 	U32___2 Control;
49026 	MPI2_SCSI_IO_CDB_UNION CDB;
49027 	MPI2_SGE_IO_UNION SGL;
49028 };
49029 
49030 typedef struct _MPI2_SCSI_IO_REQUEST Mpi2SCSIIORequest_t;
49031 
49032 union _MPI25_SCSI_IO_CDB_UNION {
49033 	U8___2 CDB32[32];
49034 	MPI2_SCSI_IO_CDB_EEDP32 EEDP32;
49035 	MPI2_IEEE_SGE_SIMPLE64 SGE;
49036 };
49037 
49038 typedef union _MPI25_SCSI_IO_CDB_UNION MPI25_SCSI_IO_CDB_UNION;
49039 
49040 struct _MPI25_SCSI_IO_REQUEST {
49041 	U16___2 DevHandle;
49042 	U8___2 ChainOffset;
49043 	U8___2 Function;
49044 	U16___2 Reserved1;
49045 	U8___2 Reserved2;
49046 	U8___2 MsgFlags;
49047 	U8___2 VP_ID;
49048 	U8___2 VF_ID;
49049 	U16___2 Reserved3;
49050 	U32___2 SenseBufferLowAddress;
49051 	U8___2 DMAFlags;
49052 	U8___2 Reserved5;
49053 	U8___2 SenseBufferLength;
49054 	U8___2 Reserved4;
49055 	U8___2 SGLOffset0;
49056 	U8___2 SGLOffset1;
49057 	U8___2 SGLOffset2;
49058 	U8___2 SGLOffset3;
49059 	U32___2 SkipCount;
49060 	U32___2 DataLength;
49061 	U32___2 BidirectionalDataLength;
49062 	U16___2 IoFlags;
49063 	U16___2 EEDPFlags;
49064 	U16___2 EEDPBlockSize;
49065 	U16___2 Reserved6;
49066 	U32___2 SecondaryReferenceTag;
49067 	U16___2 SecondaryApplicationTag;
49068 	U16___2 ApplicationTagTranslationMask;
49069 	U8___2 LUN[8];
49070 	U32___2 Control;
49071 	MPI25_SCSI_IO_CDB_UNION CDB;
49072 	MPI25_SGE_IO_UNION SGL;
49073 };
49074 
49075 typedef struct _MPI25_SCSI_IO_REQUEST Mpi25SCSIIORequest_t;
49076 
49077 struct _MPI2_SEP_REQUEST {
49078 	U16___2 DevHandle;
49079 	U8___2 ChainOffset;
49080 	U8___2 Function;
49081 	U8___2 Action;
49082 	U8___2 Flags;
49083 	U8___2 Reserved1;
49084 	U8___2 MsgFlags;
49085 	U8___2 VP_ID;
49086 	U8___2 VF_ID;
49087 	U16___2 Reserved2;
49088 	U32___2 SlotStatus;
49089 	U32___2 Reserved3;
49090 	U32___2 Reserved4;
49091 	U32___2 Reserved5;
49092 	U16___2 Slot;
49093 	U16___2 EnclosureHandle;
49094 };
49095 
49096 typedef struct _MPI2_SEP_REQUEST Mpi2SepRequest_t;
49097 
49098 struct _MPI2_SEP_REPLY {
49099 	U16___2 DevHandle;
49100 	U8___2 MsgLength;
49101 	U8___2 Function;
49102 	U8___2 Action;
49103 	U8___2 Flags;
49104 	U8___2 Reserved1;
49105 	U8___2 MsgFlags;
49106 	U8___2 VP_ID;
49107 	U8___2 VF_ID;
49108 	U16___2 Reserved2;
49109 	U16___2 Reserved3;
49110 	U16___2 IOCStatus;
49111 	U32___2 IOCLogInfo;
49112 	U32___2 SlotStatus;
49113 	U32___2 Reserved4;
49114 	U16___2 Slot;
49115 	U16___2 EnclosureHandle;
49116 };
49117 
49118 typedef struct _MPI2_SEP_REPLY Mpi2SepReply_t;
49119 
49120 struct _MPI2_SAS_IOUNIT_CONTROL_REQUEST {
49121 	U8___2 Operation;
49122 	U8___2 Reserved1;
49123 	U8___2 ChainOffset;
49124 	U8___2 Function;
49125 	U16___2 DevHandle;
49126 	U8___2 IOCParameter;
49127 	U8___2 MsgFlags;
49128 	U8___2 VP_ID;
49129 	U8___2 VF_ID;
49130 	U16___2 Reserved3;
49131 	U16___2 Reserved4;
49132 	U8___2 PhyNum;
49133 	U8___2 PrimFlags;
49134 	U32___2 Primitive;
49135 	U8___2 LookupMethod;
49136 	U8___2 Reserved5;
49137 	U16___2 SlotNumber;
49138 	U64___2 LookupAddress;
49139 	U32___2 IOCParameterValue;
49140 	U32___2 Reserved7;
49141 	U32___2 Reserved8;
49142 } __attribute__((packed));
49143 
49144 typedef struct _MPI2_SAS_IOUNIT_CONTROL_REQUEST Mpi2SasIoUnitControlRequest_t;
49145 
49146 struct _MPI2_SAS_IOUNIT_CONTROL_REPLY {
49147 	U8___2 Operation;
49148 	U8___2 Reserved1;
49149 	U8___2 MsgLength;
49150 	U8___2 Function;
49151 	U16___2 DevHandle;
49152 	U8___2 IOCParameter;
49153 	U8___2 MsgFlags;
49154 	U8___2 VP_ID;
49155 	U8___2 VF_ID;
49156 	U16___2 Reserved3;
49157 	U16___2 Reserved4;
49158 	U16___2 IOCStatus;
49159 	U32___2 IOCLogInfo;
49160 };
49161 
49162 typedef struct _MPI2_SAS_IOUNIT_CONTROL_REPLY Mpi2SasIoUnitControlReply_t;
49163 
49164 struct _MPI26_NVME_ENCAPSULATED_REQUEST {
49165 	U16___2 DevHandle;
49166 	U8___2 ChainOffset;
49167 	U8___2 Function;
49168 	U16___2 EncapsulatedCommandLength;
49169 	U8___2 Reserved1;
49170 	U8___2 MsgFlags;
49171 	U8___2 VP_ID;
49172 	U8___2 VF_ID;
49173 	U16___2 Reserved2;
49174 	U32___2 Reserved3;
49175 	U64___2 ErrorResponseBaseAddress;
49176 	U16___2 ErrorResponseAllocationLength;
49177 	U16___2 Flags;
49178 	U32___2 DataLength;
49179 	U8___2 NVMe_Command[4];
49180 } __attribute__((packed));
49181 
49182 typedef struct _MPI26_NVME_ENCAPSULATED_REQUEST Mpi26NVMeEncapsulatedRequest_t;
49183 
49184 struct _MPI2_FW_IMAGE_HEADER {
49185 	U32___2 Signature;
49186 	U32___2 Signature0;
49187 	U32___2 Signature1;
49188 	U32___2 Signature2;
49189 	MPI2_VERSION_UNION MPIVersion;
49190 	MPI2_VERSION_UNION FWVersion;
49191 	MPI2_VERSION_UNION NVDATAVersion;
49192 	MPI2_VERSION_UNION PackageVersion;
49193 	U16___2 VendorID;
49194 	U16___2 ProductID;
49195 	U16___2 ProtocolFlags;
49196 	U16___2 Reserved26;
49197 	U32___2 IOCCapabilities;
49198 	U32___2 ImageSize;
49199 	U32___2 NextImageHeaderOffset;
49200 	U32___2 Checksum;
49201 	U32___2 Reserved38;
49202 	U32___2 Reserved3C;
49203 	U32___2 Reserved40;
49204 	U32___2 Reserved44;
49205 	U32___2 Reserved48;
49206 	U32___2 Reserved4C;
49207 	U32___2 Reserved50;
49208 	U32___2 Reserved54;
49209 	U32___2 Reserved58;
49210 	U32___2 Reserved5C;
49211 	U32___2 BootFlags;
49212 	U32___2 FirmwareVersionNameWhat;
49213 	U8___2 FirmwareVersionName[32];
49214 	U32___2 VendorNameWhat;
49215 	U8___2 VendorName[32];
49216 	U32___2 PackageNameWhat;
49217 	U8___2 PackageName[32];
49218 	U32___2 ReservedD0;
49219 	U32___2 ReservedD4;
49220 	U32___2 ReservedD8;
49221 	U32___2 ReservedDC;
49222 	U32___2 ReservedE0;
49223 	U32___2 ReservedE4;
49224 	U32___2 ReservedE8;
49225 	U32___2 ReservedEC;
49226 	U32___2 ReservedF0;
49227 	U32___2 ReservedF4;
49228 	U32___2 ReservedF8;
49229 	U32___2 ReservedFC;
49230 };
49231 
49232 typedef struct _MPI2_FW_IMAGE_HEADER Mpi2FWImageHeader_t;
49233 
49234 struct _MPI26_HASH_EXCLUSION_FORMAT {
49235 	U32___2 Offset;
49236 	U32___2 Size;
49237 };
49238 
49239 typedef struct _MPI26_HASH_EXCLUSION_FORMAT MPI26_HASH_EXCLUSION_FORMAT;
49240 
49241 struct _MPI26_COMPONENT_IMAGE_HEADER {
49242 	U32___2 Signature0;
49243 	U32___2 LoadAddress;
49244 	U32___2 DataSize;
49245 	U32___2 StartAddress;
49246 	U32___2 Signature1;
49247 	U32___2 FlashOffset;
49248 	U32___2 FlashSize;
49249 	U32___2 VersionStringOffset;
49250 	U32___2 BuildDateStringOffset;
49251 	U32___2 BuildTimeStringOffset;
49252 	U32___2 EnvironmentVariableOffset;
49253 	U32___2 ApplicationSpecific;
49254 	U32___2 Signature2;
49255 	U32___2 HeaderSize;
49256 	U32___2 Crc;
49257 	U8___2 NotFlashImage;
49258 	U8___2 Compressed;
49259 	U16___2 Reserved3E;
49260 	U32___2 SecondaryFlashOffset;
49261 	U32___2 Reserved44;
49262 	U32___2 Reserved48;
49263 	MPI2_VERSION_UNION RMCInterfaceVersion;
49264 	MPI2_VERSION_UNION Reserved50;
49265 	MPI2_VERSION_UNION FWVersion;
49266 	MPI2_VERSION_UNION NvdataVersion;
49267 	MPI26_HASH_EXCLUSION_FORMAT HashExclusion[4];
49268 	U32___2 NextImageHeaderOffset;
49269 	U32___2 Reserved80[32];
49270 };
49271 
49272 typedef struct _MPI26_COMPONENT_IMAGE_HEADER Mpi26ComponentImageHeader_t;
49273 
49274 struct SL_WH_MASTER_TRIGGER_T {
49275 	uint32_t MasterData;
49276 };
49277 
49278 struct SL_WH_EVENT_TRIGGER_T {
49279 	uint16_t EventValue;
49280 	uint16_t LogEntryQualifier;
49281 };
49282 
49283 struct SL_WH_EVENT_TRIGGERS_T {
49284 	uint32_t ValidEntries;
49285 	struct SL_WH_EVENT_TRIGGER_T EventTriggerEntry[20];
49286 };
49287 
49288 struct SL_WH_SCSI_TRIGGER_T {
49289 	U8___2 ASCQ;
49290 	U8___2 ASC;
49291 	U8___2 SenseKey;
49292 	U8___2 Reserved;
49293 };
49294 
49295 struct SL_WH_SCSI_TRIGGERS_T {
49296 	uint32_t ValidEntries;
49297 	struct SL_WH_SCSI_TRIGGER_T SCSITriggerEntry[20];
49298 };
49299 
49300 struct SL_WH_MPI_TRIGGER_T {
49301 	uint16_t IOCStatus;
49302 	uint16_t Reserved;
49303 	uint32_t IocLogInfo;
49304 };
49305 
49306 struct SL_WH_MPI_TRIGGERS_T {
49307 	uint32_t ValidEntries;
49308 	struct SL_WH_MPI_TRIGGER_T MPITriggerEntry[20];
49309 };
49310 
49311 struct _MPI26_CONFIG_PAGE_DRIVER_TIGGER_0 {
49312 	MPI2_CONFIG_EXTENDED_PAGE_HEADER Header;
49313 	U16___2 TriggerFlags;
49314 	U16___2 Reserved0xA;
49315 	U32___2 Reserved0xC[61];
49316 };
49317 
49318 typedef struct _MPI26_CONFIG_PAGE_DRIVER_TIGGER_0 Mpi26DriverTriggerPage0_t;
49319 
49320 struct _MPI26_DRIVER_MASTER_TIGGER_ENTRY {
49321 	U32___2 MasterTriggerFlags;
49322 };
49323 
49324 typedef struct _MPI26_DRIVER_MASTER_TIGGER_ENTRY MPI26_DRIVER_MASTER_TIGGER_ENTRY;
49325 
49326 struct _MPI26_CONFIG_PAGE_DRIVER_TIGGER_1 {
49327 	MPI2_CONFIG_EXTENDED_PAGE_HEADER Header;
49328 	U16___2 NumMasterTrigger;
49329 	U16___2 Reserved0xA;
49330 	MPI26_DRIVER_MASTER_TIGGER_ENTRY MasterTriggers[1];
49331 };
49332 
49333 typedef struct _MPI26_CONFIG_PAGE_DRIVER_TIGGER_1 Mpi26DriverTriggerPage1_t;
49334 
49335 struct _MPI26_DRIVER_MPI_EVENT_TIGGER_ENTRY {
49336 	U16___2 MPIEventCode;
49337 	U16___2 MPIEventCodeSpecific;
49338 };
49339 
49340 typedef struct _MPI26_DRIVER_MPI_EVENT_TIGGER_ENTRY MPI26_DRIVER_MPI_EVENT_TIGGER_ENTRY;
49341 
49342 struct _MPI26_CONFIG_PAGE_DRIVER_TIGGER_2 {
49343 	MPI2_CONFIG_EXTENDED_PAGE_HEADER Header;
49344 	U16___2 NumMPIEventTrigger;
49345 	U16___2 Reserved0xA;
49346 	MPI26_DRIVER_MPI_EVENT_TIGGER_ENTRY MPIEventTriggers[20];
49347 };
49348 
49349 typedef struct _MPI26_CONFIG_PAGE_DRIVER_TIGGER_2 Mpi26DriverTriggerPage2_t;
49350 
49351 struct _MPI26_DRIVER_SCSI_SENSE_TIGGER_ENTRY {
49352 	U8___2 ASCQ;
49353 	U8___2 ASC;
49354 	U8___2 SenseKey;
49355 	U8___2 Reserved;
49356 };
49357 
49358 typedef struct _MPI26_DRIVER_SCSI_SENSE_TIGGER_ENTRY MPI26_DRIVER_SCSI_SENSE_TIGGER_ENTRY;
49359 
49360 struct _MPI26_CONFIG_PAGE_DRIVER_TIGGER_3 {
49361 	MPI2_CONFIG_EXTENDED_PAGE_HEADER Header;
49362 	U16___2 NumSCSISenseTrigger;
49363 	U16___2 Reserved0xA;
49364 	MPI26_DRIVER_SCSI_SENSE_TIGGER_ENTRY SCSISenseTriggers[20];
49365 };
49366 
49367 typedef struct _MPI26_CONFIG_PAGE_DRIVER_TIGGER_3 Mpi26DriverTriggerPage3_t;
49368 
49369 struct _MPI26_DRIVER_IOCSTATUS_LOGINFO_TIGGER_ENTRY {
49370 	U16___2 IOCStatus;
49371 	U16___2 Reserved;
49372 	U32___2 LogInfo;
49373 };
49374 
49375 typedef struct _MPI26_DRIVER_IOCSTATUS_LOGINFO_TIGGER_ENTRY MPI26_DRIVER_IOCSTATUS_LOGINFO_TIGGER_ENTRY;
49376 
49377 struct _MPI26_CONFIG_PAGE_DRIVER_TIGGER_4 {
49378 	MPI2_CONFIG_EXTENDED_PAGE_HEADER Header;
49379 	U16___2 NumIOCStatusLogInfoTrigger;
49380 	U16___2 Reserved0xA;
49381 	MPI26_DRIVER_IOCSTATUS_LOGINFO_TIGGER_ENTRY IOCStatusLoginfoTriggers[20];
49382 };
49383 
49384 typedef struct _MPI26_CONFIG_PAGE_DRIVER_TIGGER_4 Mpi26DriverTriggerPage4_t;
49385 
49386 struct mpt3sas_nvme_cmd {
49387 	u8 rsvd[24];
49388 	__le64 prp1;
49389 	__le64 prp2;
49390 };
49391 
49392 struct Mpi2ManufacturingPage10_t {
49393 	MPI2_CONFIG_PAGE_HEADER Header;
49394 	U8___2 OEMIdentifier;
49395 	U8___2 Reserved1;
49396 	U16___2 Reserved2;
49397 	U32___2 Reserved3;
49398 	U32___2 GenericFlags0;
49399 	U32___2 GenericFlags1;
49400 	U32___2 Reserved4;
49401 	U32___2 OEMSpecificFlags0;
49402 	U32___2 OEMSpecificFlags1;
49403 	U32___2 Reserved5[18];
49404 };
49405 
49406 struct Mpi2ManufacturingPage11_t {
49407 	MPI2_CONFIG_PAGE_HEADER Header;
49408 	__le32 Reserved1;
49409 	u8 Reserved2;
49410 	u8 EEDPTagMode;
49411 	u8 Reserved3;
49412 	u8 Reserved4;
49413 	__le32 Reserved5[8];
49414 	u16 AddlFlags2;
49415 	u8 AddlFlags3;
49416 	u8 Reserved6;
49417 	__le32 Reserved7[7];
49418 	u8 NVMeAbortTO;
49419 	u8 NumPerDevEvents;
49420 	u8 HostTraceBufferDecrementSizeKB;
49421 	u8 HostTraceBufferFlags;
49422 	u16 HostTraceBufferMaxSizeKB;
49423 	u16 HostTraceBufferMinSizeKB;
49424 	u8 CoreDumpTOSec;
49425 	u8 TimeSyncInterval;
49426 	u16 Reserved9;
49427 	__le32 Reserved10;
49428 };
49429 
49430 struct hba_port {
49431 	struct list_head list;
49432 	u64 sas_address;
49433 	u32 phy_mask;
49434 	u8 port_id;
49435 	u8 flags;
49436 	u32 vphys_mask;
49437 	struct list_head vphys_list;
49438 };
49439 
49440 struct _pcie_device {
49441 	struct list_head list;
49442 	struct scsi_target *starget;
49443 	u64 wwid;
49444 	u16 handle;
49445 	u32 device_info;
49446 	int id;
49447 	int channel;
49448 	u16 slot;
49449 	u8 port_num;
49450 	u8 responding;
49451 	u8 fast_path;
49452 	u32 nvme_mdts;
49453 	u16 enclosure_handle;
49454 	u64 enclosure_logical_id;
49455 	u8 enclosure_level;
49456 	u8 connector_name[4];
49457 	u8 *serial_number;
49458 	u8 reset_timeout;
49459 	u8 access_status;
49460 	u16 shutdown_latency;
49461 	struct kref refcount;
49462 };
49463 
49464 struct _internal_cmd {
49465 	struct mutex mutex;
49466 	struct completion done;
49467 	void *reply;
49468 	void *sense;
49469 	u16 status;
49470 	u16 smid;
49471 };
49472 
49473 struct _boot_device {
49474 	int channel;
49475 	void *device;
49476 };
49477 
49478 struct _sas_phy {
49479 	struct list_head port_siblings;
49480 	struct sas_identify identify;
49481 	struct sas_identify remote_identify;
49482 	struct sas_phy *phy;
49483 	u8 phy_id;
49484 	u16 handle;
49485 	u16 attached_handle;
49486 	u8 phy_belongs_to_port;
49487 	u8 hba_vphy;
49488 	struct hba_port *port;
49489 };
49490 
49491 struct _sas_node {
49492 	struct list_head list;
49493 	struct device *parent_dev;
49494 	u8 num_phys;
49495 	u64 sas_address;
49496 	u16 handle;
49497 	u64 sas_address_parent;
49498 	u16 enclosure_handle;
49499 	u64 enclosure_logical_id;
49500 	u8 responding;
49501 	u8 nr_phys_allocated;
49502 	struct hba_port *port;
49503 	struct _sas_phy *phy;
49504 	struct list_head sas_port_list;
49505 	struct sas_rphy *rphy;
49506 };
49507 
49508 struct _enclosure_node {
49509 	struct list_head list;
49510 	Mpi2SasEnclosurePage0_t pg0;
49511 };
49512 
49513 enum reset_type {
49514 	FORCE_BIG_HAMMER = 0,
49515 	SOFT_RESET = 1,
49516 };
49517 
49518 struct pcie_sg_list {
49519 	void *pcie_sgl;
49520 	dma_addr_t pcie_sgl_dma;
49521 };
49522 
49523 struct chain_tracker {
49524 	void *chain_buffer;
49525 	dma_addr_t chain_buffer_dma;
49526 };
49527 
49528 struct chain_lookup {
49529 	struct chain_tracker *chains_per_smid;
49530 	atomic_t chain_offset;
49531 };
49532 
49533 struct scsiio_tracker {
49534 	u16 smid;
49535 	struct scsi_cmnd *scmd;
49536 	u8 cb_idx;
49537 	u8 direct_io;
49538 	struct pcie_sg_list pcie_sg_list;
49539 	struct list_head chain_list;
49540 	u16 msix_io;
49541 };
49542 
49543 struct request_tracker {
49544 	u16 smid;
49545 	u8 cb_idx;
49546 	struct list_head tracker_list;
49547 };
49548 
49549 struct _tr_list {
49550 	struct list_head list;
49551 	u16 handle;
49552 	u16 state;
49553 };
49554 
49555 struct _sc_list {
49556 	struct list_head list;
49557 	u16 handle;
49558 };
49559 
49560 struct _event_ack_list {
49561 	struct list_head list;
49562 	U16___2 Event;
49563 	U32___2 EventContext;
49564 };
49565 
49566 struct MPT3SAS_ADAPTER;
49567 
49568 struct adapter_reply_queue {
49569 	struct MPT3SAS_ADAPTER *ioc;
49570 	u8 msix_index;
49571 	u32 reply_post_host_index;
49572 	Mpi2ReplyDescriptorsUnion_t *reply_post_free;
49573 	char name[32];
49574 	atomic_t busy;
49575 	u32 os_irq;
49576 	struct irq_poll irqpoll;
49577 	bool irq_poll_scheduled;
49578 	bool irq_line_enable;
49579 	bool is_iouring_poll_q;
49580 	struct list_head list;
49581 };
49582 
49583 typedef void (*MPT3SAS_FLUSH_RUNNING_CMDS)(struct MPT3SAS_ADAPTER *);
49584 
49585 typedef void (*MPT_ADD_SGE)(void *, u32, dma_addr_t);
49586 
49587 typedef int (*MPT_BUILD_SG_SCMD)(struct MPT3SAS_ADAPTER *, struct scsi_cmnd *, u16, struct _pcie_device *);
49588 
49589 typedef void (*MPT_BUILD_SG)(struct MPT3SAS_ADAPTER *, void *, dma_addr_t, size_t, dma_addr_t, size_t);
49590 
49591 typedef void (*MPT_BUILD_ZERO_LEN_SGE)(struct MPT3SAS_ADAPTER *, void *);
49592 
49593 typedef void (*NVME_BUILD_PRP)(struct MPT3SAS_ADAPTER *, u16, Mpi26NVMeEncapsulatedRequest_t *, dma_addr_t, size_t, dma_addr_t, size_t);
49594 
49595 union mpi3_version_union {
49596 	MPI2_VERSION_STRUCT Struct;
49597 	u32 Word;
49598 };
49599 
49600 struct mpt3sas_facts {
49601 	u16 MsgVersion;
49602 	u16 HeaderVersion;
49603 	u8 IOCNumber;
49604 	u8 VP_ID;
49605 	u8 VF_ID;
49606 	u16 IOCExceptions;
49607 	u16 IOCStatus;
49608 	u32 IOCLogInfo;
49609 	u8 MaxChainDepth;
49610 	u8 WhoInit;
49611 	u8 NumberOfPorts;
49612 	u8 MaxMSIxVectors;
49613 	u16 RequestCredit;
49614 	u16 ProductID;
49615 	u32 IOCCapabilities;
49616 	union mpi3_version_union FWVersion;
49617 	u16 IOCRequestFrameSize;
49618 	u16 IOCMaxChainSegmentSize;
49619 	u16 MaxInitiators;
49620 	u16 MaxTargets;
49621 	u16 MaxSasExpanders;
49622 	u16 MaxEnclosures;
49623 	u16 ProtocolFlags;
49624 	u16 HighPriorityCredit;
49625 	u16 MaxReplyDescriptorPostQueueDepth;
49626 	u8 ReplyFrameSize;
49627 	u8 MaxVolumes;
49628 	u16 MaxDevHandle;
49629 	u16 MaxPersistentEntries;
49630 	u16 MinDevHandle;
49631 	u8 CurrentHostPageSize;
49632 };
49633 
49634 struct htb_rel_query {
49635 	u16 buffer_rel_condition;
49636 	u16 reserved;
49637 	u32 trigger_type;
49638 	u32 trigger_info_dwords[2];
49639 };
49640 
49641 typedef u32 (*BASE_READ_REG)(const volatile void *);
49642 
49643 typedef void (*PUT_SMID_IO_FP_HIP)(struct MPT3SAS_ADAPTER *, u16, u16);
49644 
49645 typedef void (*PUT_SMID_DEFAULT)(struct MPT3SAS_ADAPTER *, u16);
49646 
49647 typedef u8 (*GET_MSIX_INDEX)(struct MPT3SAS_ADAPTER *, struct scsi_cmnd *);
49648 
49649 struct fw_event_work;
49650 
49651 struct io_uring_poll_queue;
49652 
49653 struct mpt3sas_port_facts;
49654 
49655 struct reply_post_struct;
49656 
49657 struct MPT3SAS_ADAPTER {
49658 	struct list_head list;
49659 	struct Scsi_Host *shost;
49660 	u8 id;
49661 	int cpu_count;
49662 	char name[32];
49663 	char driver_name[24];
49664 	char tmp_string[64];
49665 	struct pci_dev *pdev;
49666 	Mpi2SystemInterfaceRegs_t *chip;
49667 	phys_addr_t chip_phys;
49668 	int logging_level;
49669 	int fwfault_debug;
49670 	u8 ir_firmware;
49671 	int bars;
49672 	u8 mask_interrupts;
49673 	char fault_reset_work_q_name[20];
49674 	struct workqueue_struct *fault_reset_work_q;
49675 	struct delayed_work fault_reset_work;
49676 	char firmware_event_name[20];
49677 	struct workqueue_struct *firmware_event_thread;
49678 	spinlock_t fw_event_lock;
49679 	struct list_head fw_event_list;
49680 	struct fw_event_work *current_event;
49681 	u8 fw_events_cleanup;
49682 	int aen_event_read_flag;
49683 	u8 broadcast_aen_busy;
49684 	u16 broadcast_aen_pending;
49685 	u8 shost_recovery;
49686 	u8 got_task_abort_from_ioctl;
49687 	struct mutex reset_in_progress_mutex;
49688 	spinlock_t ioc_reset_in_progress_lock;
49689 	u8 ioc_link_reset_in_progress;
49690 	u8 ignore_loginfos;
49691 	u8 remove_host;
49692 	u8 pci_error_recovery;
49693 	u8 wait_for_discovery_to_complete;
49694 	u8 is_driver_loading;
49695 	u8 port_enable_failed;
49696 	u8 start_scan;
49697 	u16 start_scan_failed;
49698 	u8 msix_enable;
49699 	u16 msix_vector_count;
49700 	u8 *cpu_msix_table;
49701 	u16 cpu_msix_table_sz;
49702 	resource_size_t **reply_post_host_index;
49703 	u32 ioc_reset_count;
49704 	MPT3SAS_FLUSH_RUNNING_CMDS schedule_dead_ioc_flush_running_cmds;
49705 	u32 non_operational_loop;
49706 	u8 ioc_coredump_loop;
49707 	u32 timestamp_update_count;
49708 	u32 time_sync_interval;
49709 	atomic64_t total_io_cnt;
49710 	atomic64_t high_iops_outstanding;
49711 	bool msix_load_balance;
49712 	u16 thresh_hold;
49713 	u8 high_iops_queues;
49714 	u8 iopoll_q_start_index;
49715 	u32 drv_internal_flags;
49716 	u32 drv_support_bitmap;
49717 	u32 dma_mask;
49718 	bool enable_sdev_max_qd;
49719 	bool use_32bit_dma;
49720 	struct io_uring_poll_queue *io_uring_poll_queues;
49721 	u8 scsi_io_cb_idx;
49722 	u8 tm_cb_idx;
49723 	u8 transport_cb_idx;
49724 	u8 scsih_cb_idx;
49725 	u8 ctl_cb_idx;
49726 	u8 base_cb_idx;
49727 	u8 port_enable_cb_idx;
49728 	u8 config_cb_idx;
49729 	u8 tm_tr_cb_idx;
49730 	u8 tm_tr_volume_cb_idx;
49731 	u8 tm_sas_control_cb_idx;
49732 	struct _internal_cmd base_cmds;
49733 	struct _internal_cmd port_enable_cmds;
49734 	struct _internal_cmd transport_cmds;
49735 	struct _internal_cmd scsih_cmds;
49736 	struct _internal_cmd tm_cmds;
49737 	struct _internal_cmd ctl_cmds;
49738 	struct _internal_cmd config_cmds;
49739 	MPT_ADD_SGE base_add_sg_single;
49740 	MPT_BUILD_SG_SCMD build_sg_scmd;
49741 	MPT_BUILD_SG build_sg;
49742 	MPT_BUILD_ZERO_LEN_SGE build_zero_len_sge;
49743 	u16 sge_size_ieee;
49744 	u16 hba_mpi_version_belonged;
49745 	MPT_BUILD_SG build_sg_mpi;
49746 	MPT_BUILD_ZERO_LEN_SGE build_zero_len_sge_mpi;
49747 	NVME_BUILD_PRP build_nvme_prp;
49748 	u32 event_type[4];
49749 	u32 event_context;
49750 	void *event_log;
49751 	u32 event_masks[4];
49752 	u8 tm_custom_handling;
49753 	u8 nvme_abort_timeout;
49754 	u16 max_shutdown_latency;
49755 	u16 max_wideport_qd;
49756 	u16 max_narrowport_qd;
49757 	u16 max_nvme_qd;
49758 	u8 max_sata_qd;
49759 	struct mpt3sas_facts facts;
49760 	struct mpt3sas_facts prev_fw_facts;
49761 	struct mpt3sas_port_facts *pfacts;
49762 	Mpi2ManufacturingPage0_t manu_pg0;
49763 	struct Mpi2ManufacturingPage10_t manu_pg10;
49764 	struct Mpi2ManufacturingPage11_t manu_pg11;
49765 	Mpi2BiosPage2_t bios_pg2;
49766 	Mpi2BiosPage3_t bios_pg3;
49767 	Mpi2IOCPage8_t ioc_pg8;
49768 	Mpi2IOUnitPage0_t iounit_pg0;
49769 	Mpi2IOUnitPage1_t iounit_pg1;
49770 	Mpi2IOUnitPage8_t iounit_pg8;
49771 	Mpi2IOCPage1_t ioc_pg1_copy;
49772 	struct _boot_device req_boot_device;
49773 	struct _boot_device req_alt_boot_device;
49774 	struct _boot_device current_boot_device;
49775 	struct _sas_node sas_hba;
49776 	struct list_head sas_expander_list;
49777 	struct list_head enclosure_list;
49778 	spinlock_t sas_node_lock;
49779 	struct list_head sas_device_list;
49780 	struct list_head sas_device_init_list;
49781 	spinlock_t sas_device_lock;
49782 	struct list_head pcie_device_list;
49783 	struct list_head pcie_device_init_list;
49784 	spinlock_t pcie_device_lock;
49785 	struct list_head raid_device_list;
49786 	spinlock_t raid_device_lock;
49787 	u8 io_missing_delay;
49788 	u16 device_missing_delay;
49789 	int sas_id;
49790 	int pcie_target_id;
49791 	void *blocking_handles;
49792 	void *pd_handles;
49793 	u16 pd_handles_sz;
49794 	void *pend_os_device_add;
49795 	u16 pend_os_device_add_sz;
49796 	u16 config_page_sz;
49797 	void *config_page;
49798 	dma_addr_t config_page_dma;
49799 	void *config_vaddr;
49800 	u16 hba_queue_depth;
49801 	u16 sge_size;
49802 	u16 scsiio_depth;
49803 	u16 request_sz;
49804 	u8 *request;
49805 	dma_addr_t request_dma;
49806 	u32 request_dma_sz;
49807 	struct pcie_sg_list *pcie_sg_lookup;
49808 	spinlock_t scsi_lookup_lock;
49809 	int pending_io_count;
49810 	wait_queue_head_t reset_wq;
49811 	u16 *io_queue_num;
49812 	struct dma_pool *pcie_sgl_dma_pool;
49813 	u32 page_size;
49814 	struct chain_lookup *chain_lookup;
49815 	struct list_head free_chain_list;
49816 	struct dma_pool *chain_dma_pool;
49817 	ulong chain_pages;
49818 	u16 max_sges_in_main_message;
49819 	u16 max_sges_in_chain_message;
49820 	u16 chains_needed_per_io;
49821 	u32 chain_depth;
49822 	u16 chain_segment_sz;
49823 	u16 chains_per_prp_buffer;
49824 	u16 hi_priority_smid;
49825 	u8 *hi_priority;
49826 	dma_addr_t hi_priority_dma;
49827 	u16 hi_priority_depth;
49828 	struct request_tracker *hpr_lookup;
49829 	struct list_head hpr_free_list;
49830 	u16 internal_smid;
49831 	u8 *internal;
49832 	dma_addr_t internal_dma;
49833 	u16 internal_depth;
49834 	struct request_tracker *internal_lookup;
49835 	struct list_head internal_free_list;
49836 	u8 *sense;
49837 	dma_addr_t sense_dma;
49838 	struct dma_pool *sense_dma_pool;
49839 	u16 reply_sz;
49840 	u8 *reply;
49841 	dma_addr_t reply_dma;
49842 	u32 reply_dma_max_address;
49843 	u32 reply_dma_min_address;
49844 	struct dma_pool *reply_dma_pool;
49845 	u16 reply_free_queue_depth;
49846 	__le32 *reply_free;
49847 	dma_addr_t reply_free_dma;
49848 	struct dma_pool *reply_free_dma_pool;
49849 	u32 reply_free_host_index;
49850 	u16 reply_post_queue_depth;
49851 	struct reply_post_struct *reply_post;
49852 	u8 rdpq_array_capable;
49853 	u8 rdpq_array_enable;
49854 	u8 rdpq_array_enable_assigned;
49855 	struct dma_pool *reply_post_free_dma_pool;
49856 	struct dma_pool *reply_post_free_array_dma_pool;
49857 	Mpi2IOCInitRDPQArrayEntry *reply_post_free_array;
49858 	dma_addr_t reply_post_free_array_dma;
49859 	u8 reply_queue_count;
49860 	struct list_head reply_queue_list;
49861 	u8 combined_reply_queue;
49862 	u8 combined_reply_index_count;
49863 	u8 smp_affinity_enable;
49864 	resource_size_t **replyPostRegisterIndex;
49865 	struct list_head delayed_tr_list;
49866 	struct list_head delayed_tr_volume_list;
49867 	struct list_head delayed_sc_list;
49868 	struct list_head delayed_event_ack_list;
49869 	u8 temp_sensors_count;
49870 	struct mutex pci_access_mutex;
49871 	u8 *diag_buffer[3];
49872 	u32 diag_buffer_sz[3];
49873 	dma_addr_t diag_buffer_dma[3];
49874 	u8 diag_buffer_status[3];
49875 	u32 unique_id[3];
49876 	u32 product_specific[69];
49877 	u32 diagnostic_flags[3];
49878 	u32 ring_buffer_offset;
49879 	u32 ring_buffer_sz;
49880 	struct htb_rel_query htb_rel;
49881 	u8 reset_from_user;
49882 	u8 is_warpdrive;
49883 	u8 is_mcpu_endpoint;
49884 	u8 hide_ir_msg;
49885 	u8 mfg_pg10_hide_flag;
49886 	u8 hide_drives;
49887 	spinlock_t diag_trigger_lock;
49888 	u8 diag_trigger_active;
49889 	u8 atomic_desc_capable;
49890 	BASE_READ_REG base_readl;
49891 	struct SL_WH_MASTER_TRIGGER_T diag_trigger_master;
49892 	struct SL_WH_EVENT_TRIGGERS_T diag_trigger_event;
49893 	struct SL_WH_SCSI_TRIGGERS_T diag_trigger_scsi;
49894 	struct SL_WH_MPI_TRIGGERS_T diag_trigger_mpi;
49895 	u8 supports_trigger_pages;
49896 	void *device_remove_in_progress;
49897 	u16 device_remove_in_progress_sz;
49898 	u8 is_gen35_ioc;
49899 	u8 is_aero_ioc;
49900 	struct dentry *debugfs_root;
49901 	struct dentry *ioc_dump;
49902 	PUT_SMID_IO_FP_HIP put_smid_scsi_io;
49903 	PUT_SMID_IO_FP_HIP put_smid_fast_path;
49904 	PUT_SMID_IO_FP_HIP put_smid_hi_priority;
49905 	PUT_SMID_DEFAULT put_smid_default;
49906 	GET_MSIX_INDEX get_msix_index_for_smlio;
49907 	u8 multipath_on_hba;
49908 	struct list_head port_table_list;
49909 };
49910 
49911 struct io_uring_poll_queue {
49912 	atomic_t busy;
49913 	atomic_t pause;
49914 	struct adapter_reply_queue *reply_q;
49915 };
49916 
49917 struct mpt3sas_port_facts {
49918 	u8 PortNumber;
49919 	u8 VP_ID;
49920 	u8 VF_ID;
49921 	u8 PortType;
49922 	u16 MaxPostedCmdBuffers;
49923 };
49924 
49925 struct reply_post_struct {
49926 	Mpi2ReplyDescriptorsUnion_t *reply_post_free;
49927 	dma_addr_t reply_post_free_dma;
49928 };
49929 
49930 typedef u8 (*MPT_CALLBACK)(struct MPT3SAS_ADAPTER *, u16, u8, u32);
49931 
49932 struct ATTO_SAS_NVRAM {
49933 	u8 Signature[4];
49934 	u8 Version;
49935 	u8 Checksum;
49936 	u8 Pad[10];
49937 	u8 SasAddr[8];
49938 	u8 Reserved[232];
49939 };
49940 
49941 union ATTO_SAS_ADDRESS {
49942 	U8___2 b[8];
49943 	U16___2 w[4];
49944 	U32___2 d[2];
49945 	U64___2 q;
49946 };
49947 
49948 enum mpt3sas_perf_mode {
49949 	MPT_PERF_MODE_DEFAULT = -1,
49950 	MPT_PERF_MODE_BALANCED = 0,
49951 	MPT_PERF_MODE_IOPS = 1,
49952 	MPT_PERF_MODE_LATENCY = 2,
49953 };
49954 
49955 union reply_descriptor {
49956 	u64 word;
49957 	struct {
49958 		u32 low;
49959 		u32 high;
49960 	} u;
49961 };
49962 
49963 union loginfo_type {
49964 	u32 loginfo;
49965 	struct {
49966 		u32 subcode: 16;
49967 		u32 code: 8;
49968 		u32 originator: 4;
49969 		u32 bus_type: 4;
49970 	} dw;
49971 };
49972 
49973 struct SL_WH_TRIGGERS_EVENT_DATA_T {
49974 	uint32_t trigger_type;
49975 	union {
49976 		struct SL_WH_MASTER_TRIGGER_T master;
49977 		struct SL_WH_EVENT_TRIGGER_T event;
49978 		struct SL_WH_SCSI_TRIGGER_T scsi;
49979 		struct SL_WH_MPI_TRIGGER_T mpi;
49980 	} u;
49981 };
49982 
49983 enum {
49984 	SAS_DATAPRES_NO_DATA = 0,
49985 	SAS_DATAPRES_RESPONSE_DATA = 1,
49986 	SAS_DATAPRES_SENSE_DATA = 2,
49987 };
49988 
49989 struct sas_identify_frame {
49990 	u8 frame_type: 4;
49991 	u8 dev_type: 3;
49992 	u8 _un0: 1;
49993 	u8 _un1;
49994 	union {
49995 		struct {
49996 			u8 _un20: 1;
49997 			u8 smp_iport: 1;
49998 			u8 stp_iport: 1;
49999 			u8 ssp_iport: 1;
50000 			u8 _un247: 4;
50001 		};
50002 		u8 initiator_bits;
50003 	};
50004 	union {
50005 		struct {
50006 			u8 _un30: 1;
50007 			u8 smp_tport: 1;
50008 			u8 stp_tport: 1;
50009 			u8 ssp_tport: 1;
50010 			u8 _un347: 4;
50011 		};
50012 		u8 target_bits;
50013 	};
50014 	u8 _un4_11[8];
50015 	u8 sas_addr[8];
50016 	u8 phy_id;
50017 	u8 _un21_27[7];
50018 	__be32 crc;
50019 };
50020 
50021 struct ssp_frame_hdr {
50022 	u8 frame_type;
50023 	u8 hashed_dest_addr[3];
50024 	u8 _r_a;
50025 	u8 hashed_src_addr[3];
50026 	__be16 _r_b;
50027 	u8 changing_data_ptr: 1;
50028 	u8 retransmit: 1;
50029 	u8 retry_data_frames: 1;
50030 	u8 _r_c: 5;
50031 	u8 num_fill_bytes: 2;
50032 	u8 _r_d: 6;
50033 	u32 _r_e;
50034 	__be16 tag;
50035 	__be16 tptt;
50036 	__be32 data_offs;
50037 };
50038 
50039 struct ssp_response_iu {
50040 	u8 _r_a[10];
50041 	u8 datapres: 2;
50042 	u8 _r_b: 6;
50043 	u8 status;
50044 	u32 _r_c;
50045 	__be32 sense_data_len;
50046 	__be32 response_data_len;
50047 	union {
50048 		struct {
50049 			struct {			} __empty_resp_data;
50050 			u8 resp_data[0];
50051 		};
50052 		struct {
50053 			struct {			} __empty_sense_data;
50054 			u8 sense_data[0];
50055 		};
50056 	};
50057 };
50058 
50059 struct ata_task_resp {
50060 	u16 frame_len;
50061 	u8 ending_fis[24];
50062 };
50063 
50064 enum driver_configuration {
50065 	MVS_TX_RING_SZ = 1024,
50066 	MVS_RX_RING_SZ = 1024,
50067 	MVS_SOC_SLOTS = 64,
50068 	MVS_SOC_TX_RING_SZ = 128,
50069 	MVS_SOC_RX_RING_SZ = 128,
50070 	MVS_SLOT_BUF_SZ = 8192,
50071 	MVS_SSP_CMD_SZ = 64,
50072 	MVS_ATA_CMD_SZ = 96,
50073 	MVS_OAF_SZ = 64,
50074 	MVS_QUEUE_SIZE = 64,
50075 	MVS_RSVD_SLOTS = 4,
50076 	MVS_SOC_CAN_QUEUE = 62,
50077 };
50078 
50079 enum hardware_details {
50080 	MVS_MAX_PHYS = 8,
50081 	MVS_MAX_PORTS = 8,
50082 	MVS_SOC_PHYS = 4,
50083 	MVS_SOC_PORTS = 4,
50084 	MVS_MAX_DEVICES = 1024,
50085 };
50086 
50087 enum hw_register_bits {
50088 	INT_EN = 2,
50089 	HBA_RST = 1,
50090 	INT_XOR = 16,
50091 	INT_SAS_SATA = 1,
50092 	SATA_TARGET = 65536,
50093 	MODE_AUTO_DET_PORT7 = 32768,
50094 	MODE_AUTO_DET_PORT6 = 16384,
50095 	MODE_AUTO_DET_PORT5 = 8192,
50096 	MODE_AUTO_DET_PORT4 = 4096,
50097 	MODE_AUTO_DET_PORT3 = 2048,
50098 	MODE_AUTO_DET_PORT2 = 1024,
50099 	MODE_AUTO_DET_PORT1 = 512,
50100 	MODE_AUTO_DET_PORT0 = 256,
50101 	MODE_AUTO_DET_EN = 65280,
50102 	MODE_SAS_PORT7_MASK = 128,
50103 	MODE_SAS_PORT6_MASK = 64,
50104 	MODE_SAS_PORT5_MASK = 32,
50105 	MODE_SAS_PORT4_MASK = 16,
50106 	MODE_SAS_PORT3_MASK = 8,
50107 	MODE_SAS_PORT2_MASK = 4,
50108 	MODE_SAS_PORT1_MASK = 2,
50109 	MODE_SAS_PORT0_MASK = 1,
50110 	MODE_SAS_SATA = 255,
50111 	TX_EN = 65536,
50112 	TX_RING_SZ_MASK = 4095,
50113 	RX_EN = 65536,
50114 	RX_RING_SZ_MASK = 4095,
50115 	COAL_EN = 65536,
50116 	CINT_I2C = 2147483648,
50117 	CINT_SW0 = 1073741824,
50118 	CINT_SW1 = 536870912,
50119 	CINT_PRD_BC = 268435456,
50120 	CINT_DMA_PCIE = 134217728,
50121 	CINT_MEM = 67108864,
50122 	CINT_I2C_SLAVE = 33554432,
50123 	CINT_NON_SPEC_NCQ_ERROR = 33554432,
50124 	CINT_SRS = 8,
50125 	CINT_CI_STOP = 2,
50126 	CINT_DONE = 1,
50127 	CINT_PORT_STOPPED = 65536,
50128 	CINT_PORT = 256,
50129 	CINT_PORT_MASK_OFFSET = 8,
50130 	CINT_PORT_MASK = 65280,
50131 	CINT_PHY_MASK_OFFSET = 4,
50132 	CINT_PHY_MASK = 240,
50133 	TXQ_CMD_SHIFT = 29,
50134 	TXQ_CMD_SSP = 1,
50135 	TXQ_CMD_SMP = 2,
50136 	TXQ_CMD_STP = 3,
50137 	TXQ_CMD_SSP_FREE_LIST = 4,
50138 	TXQ_CMD_SLOT_RESET = 7,
50139 	TXQ_MODE_I = 268435456,
50140 	TXQ_MODE_TARGET = 0,
50141 	TXQ_MODE_INITIATOR = 1,
50142 	TXQ_PRIO_HI = 134217728,
50143 	TXQ_PRI_NORMAL = 0,
50144 	TXQ_PRI_HIGH = 1,
50145 	TXQ_SRS_SHIFT = 20,
50146 	TXQ_SRS_MASK = 127,
50147 	TXQ_PHY_SHIFT = 12,
50148 	TXQ_PHY_MASK = 255,
50149 	TXQ_SLOT_MASK = 4095,
50150 	RXQ_GOOD = 8388608,
50151 	RXQ_SLOT_RESET = 2097152,
50152 	RXQ_CMD_RX = 1048576,
50153 	RXQ_ATTN = 524288,
50154 	RXQ_RSP = 262144,
50155 	RXQ_ERR = 131072,
50156 	RXQ_DONE = 65536,
50157 	RXQ_SLOT_MASK = 4095,
50158 	MCH_PRD_LEN_SHIFT = 16,
50159 	MCH_SSP_FR_TYPE_SHIFT = 13,
50160 	MCH_SSP_FR_CMD = 0,
50161 	MCH_SSP_FR_TASK = 1,
50162 	MCH_SSP_FR_XFER_RDY = 4,
50163 	MCH_SSP_FR_RESP = 5,
50164 	MCH_SSP_FR_READ = 6,
50165 	MCH_SSP_FR_READ_RESP = 7,
50166 	MCH_SSP_MODE_PASSTHRU = 1,
50167 	MCH_SSP_MODE_NORMAL = 0,
50168 	MCH_PASSTHRU = 4096,
50169 	MCH_FBURST = 2048,
50170 	MCH_CHK_LEN = 1024,
50171 	MCH_RETRY = 512,
50172 	MCH_PROTECTION = 256,
50173 	MCH_RESET = 128,
50174 	MCH_FPDMA = 64,
50175 	MCH_ATAPI = 32,
50176 	MCH_BIST = 16,
50177 	MCH_PMP_MASK = 15,
50178 	CCTL_RST = 32,
50179 	CCTL_ENDIAN_DATA = 8,
50180 	CCTL_ENDIAN_RSP = 4,
50181 	CCTL_ENDIAN_OPEN = 2,
50182 	CCTL_ENDIAN_CMD = 1,
50183 	PHY_SSP_RST = 8,
50184 	PHY_BCAST_CHG = 4,
50185 	PHY_RST_HARD = 2,
50186 	PHY_RST = 1,
50187 	PHY_READY_MASK = 1048576,
50188 	PHYEV_DEC_ERR = 16777216,
50189 	PHYEV_DCDR_ERR = 8388608,
50190 	PHYEV_CRC_ERR = 4194304,
50191 	PHYEV_UNASSOC_FIS = 524288,
50192 	PHYEV_AN = 262144,
50193 	PHYEV_BIST_ACT = 131072,
50194 	PHYEV_SIG_FIS = 65536,
50195 	PHYEV_POOF = 4096,
50196 	PHYEV_IU_BIG = 2048,
50197 	PHYEV_IU_SMALL = 1024,
50198 	PHYEV_UNK_TAG = 512,
50199 	PHYEV_BROAD_CH = 256,
50200 	PHYEV_COMWAKE = 128,
50201 	PHYEV_PORT_SEL = 64,
50202 	PHYEV_HARD_RST = 32,
50203 	PHYEV_ID_TMOUT = 16,
50204 	PHYEV_ID_FAIL = 8,
50205 	PHYEV_ID_DONE = 4,
50206 	PHYEV_HARD_RST_DONE = 2,
50207 	PHYEV_RDY_CH = 1,
50208 	PCS_EN_SATA_REG_SHIFT = 16,
50209 	PCS_EN_PORT_XMT_SHIFT = 12,
50210 	PCS_EN_PORT_XMT_SHIFT2 = 8,
50211 	PCS_SATA_RETRY = 256,
50212 	PCS_RSP_RX_EN = 128,
50213 	PCS_SATA_RETRY_2 = 64,
50214 	PCS_SELF_CLEAR = 32,
50215 	PCS_FIS_RX_EN = 16,
50216 	PCS_CMD_STOP_ERR = 8,
50217 	PCS_CMD_RST = 2,
50218 	PCS_CMD_EN = 1,
50219 	PORT_DEV_SSP_TRGT = 524288,
50220 	PORT_DEV_SMP_TRGT = 262144,
50221 	PORT_DEV_STP_TRGT = 131072,
50222 	PORT_DEV_SSP_INIT = 2048,
50223 	PORT_DEV_SMP_INIT = 1024,
50224 	PORT_DEV_STP_INIT = 512,
50225 	PORT_PHY_ID_MASK = 4278190080,
50226 	PORT_SSP_TRGT_MASK = 524288,
50227 	PORT_SSP_INIT_MASK = 2048,
50228 	PORT_DEV_TRGT_MASK = 917504,
50229 	PORT_DEV_INIT_MASK = 3584,
50230 	PORT_DEV_TYPE_MASK = 7,
50231 	PHY_RDY = 4,
50232 	PHY_DW_SYNC = 2,
50233 	PHY_OOB_DTCTD = 1,
50234 	PHY_MODE6_LATECLK = 536870912,
50235 	PHY_MODE6_DTL_SPEED = 134217728,
50236 	PHY_MODE6_FC_ORDER = 67108864,
50237 	PHY_MODE6_MUCNT_EN = 16777216,
50238 	PHY_MODE6_SEL_MUCNT_LEN = 4194304,
50239 	PHY_MODE6_SELMUPI = 1048576,
50240 	PHY_MODE6_SELMUPF = 262144,
50241 	PHY_MODE6_SELMUFF = 65536,
50242 	PHY_MODE6_SELMUFI = 16384,
50243 	PHY_MODE6_FREEZE_LOOP = 4096,
50244 	PHY_MODE6_INT_RXFOFFS = 8,
50245 	PHY_MODE6_FRC_RXFOFFS = 4,
50246 	PHY_MODE6_STAU_0D8 = 2,
50247 	PHY_MODE6_RXSAT_DIS = 1,
50248 };
50249 
50250 enum sas_sata_config_port_regs {
50251 	PHYR_IDENTIFY = 0,
50252 	PHYR_ADDR_LO = 4,
50253 	PHYR_ADDR_HI = 8,
50254 	PHYR_ATT_DEV_INFO = 12,
50255 	PHYR_ATT_ADDR_LO = 16,
50256 	PHYR_ATT_ADDR_HI = 20,
50257 	PHYR_SATA_CTL = 24,
50258 	PHYR_PHY_STAT = 28,
50259 	PHYR_SATA_SIG0 = 32,
50260 	PHYR_SATA_SIG1 = 36,
50261 	PHYR_SATA_SIG2 = 40,
50262 	PHYR_SATA_SIG3 = 44,
50263 	PHYR_R_ERR_COUNT = 48,
50264 	PHYR_CRC_ERR_COUNT = 52,
50265 	PHYR_WIDE_PORT = 56,
50266 	PHYR_CURRENT0 = 128,
50267 	PHYR_CURRENT1 = 132,
50268 	PHYR_CURRENT2 = 136,
50269 	CONFIG_ID_FRAME0 = 256,
50270 	CONFIG_ID_FRAME1 = 260,
50271 	CONFIG_ID_FRAME2 = 264,
50272 	CONFIG_ID_FRAME3 = 268,
50273 	CONFIG_ID_FRAME4 = 272,
50274 	CONFIG_ID_FRAME5 = 276,
50275 	CONFIG_ID_FRAME6 = 280,
50276 	CONFIG_ATT_ID_FRAME0 = 284,
50277 	CONFIG_ATT_ID_FRAME1 = 288,
50278 	CONFIG_ATT_ID_FRAME2 = 292,
50279 	CONFIG_ATT_ID_FRAME3 = 296,
50280 	CONFIG_ATT_ID_FRAME4 = 300,
50281 	CONFIG_ATT_ID_FRAME5 = 304,
50282 	CONFIG_ATT_ID_FRAME6 = 308,
50283 };
50284 
50285 enum mvs_info_flags {
50286 	MVF_PHY_PWR_FIX = 2,
50287 	MVF_FLAG_SOC = 4,
50288 };
50289 
50290 enum mvs_event_flags {
50291 	PHY_PLUG_EVENT = 3,
50292 	PHY_PLUG_IN = 1,
50293 	PHY_PLUG_OUT = 2,
50294 	EXP_BRCT_CHG = 4,
50295 };
50296 
50297 enum mvs_port_type {
50298 	PORT_TGT_MASK = 32,
50299 	PORT_INIT_PORT = 16,
50300 	PORT_TGT_PORT = 8,
50301 	PORT_INIT_TGT_PORT = 24,
50302 	PORT_TYPE_SAS = 2,
50303 	PORT_TYPE_SATA = 1,
50304 };
50305 
50306 enum ct_format {
50307 	SSP_F_H = 0,
50308 	SSP_F_IU = 24,
50309 	SSP_F_MAX = 77,
50310 	STP_CMD_FIS = 0,
50311 	STP_ATAPI_CMD = 64,
50312 	STP_F_MAX = 16,
50313 	SMP_F_T = 0,
50314 	SMP_F_DEP = 1,
50315 	SMP_F_MAX = 257,
50316 };
50317 
50318 enum status_buffer {
50319 	SB_EIR_OFF = 0,
50320 	SB_RFB_OFF = 8,
50321 	SB_RFB_MAX = 1024,
50322 };
50323 
50324 enum error_info_rec {
50325 	CMD_ISS_STPD = 2147483648,
50326 	CMD_PI_ERR = 1073741824,
50327 	RSP_OVER = 536870912,
50328 	RETRY_LIM = 268435456,
50329 	UNK_FIS = 134217728,
50330 	DMA_TERM = 67108864,
50331 	SYNC_ERR = 33554432,
50332 	TFILE_ERR = 16777216,
50333 	R_ERR = 8388608,
50334 	RD_OFS = 1048576,
50335 	XFER_RDY_OFS = 524288,
50336 	UNEXP_XFER_RDY = 262144,
50337 	DATA_OVER_UNDER = 65536,
50338 	INTERLOCK = 32768,
50339 	NAK = 16384,
50340 	ACK_NAK_TO = 8192,
50341 	CXN_CLOSED = 4096,
50342 	OPEN_TO = 2048,
50343 	PATH_BLOCKED = 1024,
50344 	NO_DEST = 512,
50345 	STP_RES_BSY = 256,
50346 	BREAK = 128,
50347 	BAD_DEST = 64,
50348 	BAD_PROTO = 32,
50349 	BAD_RATE = 16,
50350 	WRONG_DEST = 8,
50351 	CREDIT_TO = 4,
50352 	WDOG_TO = 2,
50353 	BUF_PAR = 1,
50354 };
50355 
50356 enum open_frame_protocol {
50357 	PROTOCOL_SMP = 0,
50358 	PROTOCOL_SSP = 1,
50359 	PROTOCOL_STP = 2,
50360 };
50361 
50362 struct mvs_info;
50363 
50364 struct mvs_port;
50365 
50366 struct mvs_phy {
50367 	struct mvs_info *mvi;
50368 	struct mvs_port *port;
50369 	struct asd_sas_phy sas_phy;
50370 	struct sas_identify identify;
50371 	struct scsi_device *sdev;
50372 	struct timer_list timer;
50373 	u64 dev_sas_addr;
50374 	u64 att_dev_sas_addr;
50375 	u32 att_dev_info;
50376 	u32 dev_info;
50377 	u32 phy_type;
50378 	u32 phy_status;
50379 	u32 irq_status;
50380 	u32 frame_rcvd_size;
50381 	u8 frame_rcvd[32];
50382 	u8 phy_attached;
50383 	u8 phy_mode;
50384 	u8 reserved[2];
50385 	u32 phy_event;
50386 	enum sas_linkrate minimum_linkrate;
50387 	enum sas_linkrate maximum_linkrate;
50388 };
50389 
50390 struct mvs_port {
50391 	struct asd_sas_port sas_port;
50392 	u8 port_attached;
50393 	u8 wide_port_phymap;
50394 	struct list_head list;
50395 };
50396 
50397 struct ffe_control {
50398 	u8 ffe_cap_sel: 4;
50399 	u8 ffe_rss_sel: 3;
50400 	u8 reserved: 1;
50401 };
50402 
50403 struct phy_tuning {
50404 	u8 trans_emp_en: 1;
50405 	u8 trans_emp_amp: 4;
50406 	u8 Reserved_2bit_1: 3;
50407 	u8 trans_amp: 5;
50408 	u8 trans_amp_adj: 2;
50409 	u8 resv_2bit_2: 1;
50410 	u8 reserved[2];
50411 };
50412 
50413 struct hba_info_page {
50414 	u8 signature[4];
50415 	u32 reserved1[13];
50416 	u64 sas_addr[8];
50417 	struct ffe_control ffe_ctl[8];
50418 	u32 reserved2[12];
50419 	u8 phy_rate[8];
50420 	struct phy_tuning phy_tuning[8];
50421 	u32 reserved3[10];
50422 };
50423 
50424 struct mvs_device {
50425 	struct list_head dev_entry;
50426 	enum sas_device_type dev_type;
50427 	struct mvs_info *mvi_info;
50428 	struct domain_device *sas_device;
50429 	u32 attached_phy;
50430 	u32 device_id;
50431 	u32 running_req;
50432 	u8 taskfileset;
50433 	u8 dev_status;
50434 	u16 reserved;
50435 };
50436 
50437 struct mvs_slot_info {
50438 	struct list_head entry;
50439 	union {
50440 		struct sas_task *task;
50441 		void *tdata;
50442 	};
50443 	u32 n_elem;
50444 	u32 tx;
50445 	u32 slot_tag;
50446 	void *buf;
50447 	dma_addr_t buf_dma;
50448 	void *response;
50449 	struct mvs_port *port;
50450 	struct mvs_device *device;
50451 	void *open_frame;
50452 };
50453 
50454 struct mvs_cmd_hdr;
50455 
50456 struct mvs_chip_info;
50457 
50458 struct mvs_info {
50459 	long unsigned int flags;
50460 	spinlock_t lock;
50461 	struct pci_dev *pdev;
50462 	struct device *dev;
50463 	void *regs;
50464 	void *regs_ex;
50465 	u8 sas_addr[8];
50466 	struct sas_ha_struct *sas;
50467 	struct Scsi_Host *shost;
50468 	__le32 *tx;
50469 	dma_addr_t tx_dma;
50470 	u32 tx_prod;
50471 	__le32 *rx;
50472 	dma_addr_t rx_dma;
50473 	u32 rx_cons;
50474 	__le32 *rx_fis;
50475 	dma_addr_t rx_fis_dma;
50476 	struct mvs_cmd_hdr *slot;
50477 	dma_addr_t slot_dma;
50478 	u32 chip_id;
50479 	const struct mvs_chip_info *chip;
50480 	long unsigned int *rsvd_tags;
50481 	struct mvs_phy phy[8];
50482 	struct mvs_port port[8];
50483 	u32 id;
50484 	u64 sata_reg_set;
50485 	struct list_head *hba_list;
50486 	struct list_head soc_entry;
50487 	struct list_head wq_list;
50488 	long unsigned int instance;
50489 	u16 flashid;
50490 	u32 flashsize;
50491 	u32 flashsectSize;
50492 	void *addon;
50493 	struct hba_info_page hba_info_param;
50494 	struct mvs_device devices[1024];
50495 	void *bulk_buffer;
50496 	dma_addr_t bulk_buffer_dma;
50497 	void *bulk_buffer1;
50498 	dma_addr_t bulk_buffer_dma1;
50499 	void *dma_pool;
50500 	struct mvs_slot_info slot_info[0];
50501 };
50502 
50503 struct mvs_prv_info;
50504 
50505 struct mvs_dispatch {
50506 	char *name;
50507 	int (*chip_init)(struct mvs_info *);
50508 	int (*spi_init)(struct mvs_info *);
50509 	int (*chip_ioremap)(struct mvs_info *);
50510 	void (*chip_iounmap)(struct mvs_info *);
50511 	irqreturn_t (*isr)(struct mvs_info *, int, u32);
50512 	u32 (*isr_status)(struct mvs_info *, int);
50513 	void (*interrupt_enable)(struct mvs_info *);
50514 	void (*interrupt_disable)(struct mvs_info *);
50515 	u32 (*read_phy_ctl)(struct mvs_info *, u32);
50516 	void (*write_phy_ctl)(struct mvs_info *, u32, u32);
50517 	u32 (*read_port_cfg_data)(struct mvs_info *, u32);
50518 	void (*write_port_cfg_data)(struct mvs_info *, u32, u32);
50519 	void (*write_port_cfg_addr)(struct mvs_info *, u32, u32);
50520 	u32 (*read_port_vsr_data)(struct mvs_info *, u32);
50521 	void (*write_port_vsr_data)(struct mvs_info *, u32, u32);
50522 	void (*write_port_vsr_addr)(struct mvs_info *, u32, u32);
50523 	u32 (*read_port_irq_stat)(struct mvs_info *, u32);
50524 	void (*write_port_irq_stat)(struct mvs_info *, u32, u32);
50525 	u32 (*read_port_irq_mask)(struct mvs_info *, u32);
50526 	void (*write_port_irq_mask)(struct mvs_info *, u32, u32);
50527 	void (*command_active)(struct mvs_info *, u32);
50528 	void (*clear_srs_irq)(struct mvs_info *, u8, u8);
50529 	void (*issue_stop)(struct mvs_info *, enum mvs_port_type, u32);
50530 	void (*start_delivery)(struct mvs_info *, u32);
50531 	u32 (*rx_update)(struct mvs_info *);
50532 	void (*int_full)(struct mvs_info *);
50533 	u8 (*assign_reg_set)(struct mvs_info *, u8 *);
50534 	void (*free_reg_set)(struct mvs_info *, u8 *);
50535 	u32 (*prd_size)();
50536 	u32 (*prd_count)();
50537 	void (*make_prd)(struct scatterlist *, int, void *);
50538 	void (*detect_porttype)(struct mvs_info *, int);
50539 	int (*oob_done)(struct mvs_info *, int);
50540 	void (*fix_phy_info)(struct mvs_info *, int, struct sas_identify_frame *);
50541 	void (*phy_work_around)(struct mvs_info *, int);
50542 	void (*phy_set_link_rate)(struct mvs_info *, u32, struct sas_phy_linkrates *);
50543 	u32 (*phy_max_link_rate)();
50544 	void (*phy_disable)(struct mvs_info *, u32);
50545 	void (*phy_enable)(struct mvs_info *, u32);
50546 	void (*phy_reset)(struct mvs_info *, u32, int);
50547 	void (*stp_reset)(struct mvs_info *, u32);
50548 	void (*clear_active_cmds)(struct mvs_info *);
50549 	u32 (*spi_read_data)(struct mvs_info *);
50550 	void (*spi_write_data)(struct mvs_info *, u32);
50551 	int (*spi_buildcmd)(struct mvs_info *, u32 *, u8, u8, u8, u32);
50552 	int (*spi_issuecmd)(struct mvs_info *, u32);
50553 	int (*spi_waitdataready)(struct mvs_info *, u32);
50554 	void (*dma_fix)(struct mvs_info *, u32, int, int, void *);
50555 	void (*tune_interrupt)(struct mvs_info *, u32);
50556 	void (*non_spec_ncq_error)(struct mvs_info *);
50557 	int (*gpio_write)(struct mvs_prv_info *, u8, u8, u8, u8 *);
50558 };
50559 
50560 enum dev_status {
50561 	MVS_DEV_NORMAL = 0,
50562 	MVS_DEV_EH = 1,
50563 };
50564 
50565 enum dev_reset {
50566 	MVS_SOFT_RESET = 0,
50567 	MVS_HARD_RESET = 1,
50568 	MVS_PHY_TUNE = 2,
50569 };
50570 
50571 struct mvs_prv_info {
50572 	u8 n_host;
50573 	u8 n_phy;
50574 	u8 scan_finished;
50575 	u8 reserve;
50576 	struct mvs_info *mvi[2];
50577 	struct tasklet_struct mv_tasklet;
50578 };
50579 
50580 struct mvs_chip_info {
50581 	u32 n_host;
50582 	u32 n_phy;
50583 	u32 fis_offs;
50584 	u32 fis_count;
50585 	u32 srs_sz;
50586 	u32 sg_width;
50587 	u32 slot_width;
50588 	const struct mvs_dispatch *dispatch;
50589 };
50590 
50591 struct mvs_cmd_hdr {
50592 	__le32 flags;
50593 	__le32 lens;
50594 	__le32 tags;
50595 	__le32 data_len;
50596 	__le64 cmd_tbl;
50597 	__le64 open_frame;
50598 	__le64 status_buf;
50599 	__le64 prd_tbl;
50600 	__le32 reserved[4];
50601 };
50602 
50603 struct mvs_wq {
50604 	struct delayed_work work_q;
50605 	struct mvs_info *mvi;
50606 	void *data;
50607 	int handler;
50608 	struct list_head entry;
50609 };
50610 
50611 struct mvs_task_exec_info {
50612 	struct sas_task *task;
50613 	struct mvs_cmd_hdr *hdr;
50614 	struct mvs_port *port;
50615 	u32 tag;
50616 	int n_elem;
50617 };
50618 
50619 enum bip_flags {
50620 	BIP_BLOCK_INTEGRITY = 1,
50621 	BIP_MAPPED_INTEGRITY = 2,
50622 	BIP_CTRL_NOCHECK = 4,
50623 	BIP_DISK_NOCHECK = 8,
50624 	BIP_IP_CHECKSUM = 16,
50625 };
50626 
50627 struct hd_geometry {
50628 	unsigned char heads;
50629 	unsigned char sectors;
50630 	short unsigned int cylinders;
50631 	long unsigned int start;
50632 };
50633 
50634 enum {
50635 	GENHD_FL_REMOVABLE = 1,
50636 	GENHD_FL_HIDDEN = 2,
50637 	GENHD_FL_NO_PART = 4,
50638 };
50639 
50640 enum {
50641 	DISK_EVENT_MEDIA_CHANGE = 1,
50642 	DISK_EVENT_EJECT_REQUEST = 2,
50643 };
50644 
50645 enum {
50646 	DISK_EVENT_FLAG_POLL = 1,
50647 	DISK_EVENT_FLAG_UEVENT = 2,
50648 	DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 4,
50649 };
50650 
50651 enum string_size_units {
50652 	STRING_UNITS_10 = 0,
50653 	STRING_UNITS_2 = 1,
50654 };
50655 
50656 typedef int sec_send_recv(void *, u16, u8, void *, size_t, bool);
50657 
50658 enum pr_status {
50659 	PR_STS_SUCCESS = 0,
50660 	PR_STS_IOERR = 2,
50661 	PR_STS_RESERVATION_CONFLICT = 24,
50662 	PR_STS_RETRY_PATH_FAILURE = 917504,
50663 	PR_STS_PATH_FAST_FAILED = 983040,
50664 	PR_STS_PATH_FAILED = 65536,
50665 };
50666 
50667 enum t10_dif_type {
50668 	T10_PI_TYPE0_PROTECTION = 0,
50669 	T10_PI_TYPE1_PROTECTION = 1,
50670 	T10_PI_TYPE2_PROTECTION = 2,
50671 	T10_PI_TYPE3_PROTECTION = 3,
50672 };
50673 
50674 struct scsi_mode_data {
50675 	__u32 length;
50676 	__u16 block_descriptor_length;
50677 	__u8 medium_type;
50678 	__u8 device_specific;
50679 	__u8 header_length;
50680 	__u8 longlba: 1;
50681 };
50682 
50683 enum scsi_prot_operations {
50684 	SCSI_PROT_NORMAL = 0,
50685 	SCSI_PROT_READ_INSERT = 1,
50686 	SCSI_PROT_WRITE_STRIP = 2,
50687 	SCSI_PROT_READ_STRIP = 3,
50688 	SCSI_PROT_WRITE_INSERT = 4,
50689 	SCSI_PROT_READ_PASS = 5,
50690 	SCSI_PROT_WRITE_PASS = 6,
50691 };
50692 
50693 enum scsi_prot_flags {
50694 	SCSI_PROT_TRANSFER_PI = 1,
50695 	SCSI_PROT_GUARD_CHECK = 2,
50696 	SCSI_PROT_REF_CHECK = 4,
50697 	SCSI_PROT_REF_INCREMENT = 8,
50698 	SCSI_PROT_IP_CHECKSUM = 16,
50699 };
50700 
50701 enum scsi_host_prot_capabilities {
50702 	SHOST_DIF_TYPE1_PROTECTION = 1,
50703 	SHOST_DIF_TYPE2_PROTECTION = 2,
50704 	SHOST_DIF_TYPE3_PROTECTION = 4,
50705 	SHOST_DIX_TYPE0_PROTECTION = 8,
50706 	SHOST_DIX_TYPE1_PROTECTION = 16,
50707 	SHOST_DIX_TYPE2_PROTECTION = 32,
50708 	SHOST_DIX_TYPE3_PROTECTION = 64,
50709 };
50710 
50711 enum {
50712 	SD_EXT_CDB_SIZE = 32,
50713 	SD_MEMPOOL_SIZE = 2,
50714 };
50715 
50716 enum {
50717 	SD_DEF_XFER_BLOCKS = 65535,
50718 	SD_MAX_XFER_BLOCKS = 4294967295,
50719 	SD_MAX_WS10_BLOCKS = 65535,
50720 	SD_MAX_WS16_BLOCKS = 8388607,
50721 };
50722 
50723 enum {
50724 	SD_LBP_FULL = 0,
50725 	SD_LBP_UNMAP = 1,
50726 	SD_LBP_WS16 = 2,
50727 	SD_LBP_WS10 = 3,
50728 	SD_LBP_ZERO = 4,
50729 	SD_LBP_DISABLE = 5,
50730 };
50731 
50732 enum {
50733 	SD_ZERO_WRITE = 0,
50734 	SD_ZERO_WS = 1,
50735 	SD_ZERO_WS16_UNMAP = 2,
50736 	SD_ZERO_WS10_UNMAP = 3,
50737 };
50738 
50739 struct zoned_disk_info {
50740 	u32 nr_zones;
50741 	u32 zone_blocks;
50742 };
50743 
50744 struct opal_dev;
50745 
50746 struct scsi_disk {
50747 	struct scsi_device *device;
50748 	struct device disk_dev;
50749 	struct gendisk *disk;
50750 	struct opal_dev *opal_dev;
50751 	struct zoned_disk_info early_zone_info;
50752 	struct zoned_disk_info zone_info;
50753 	u32 zones_optimal_open;
50754 	u32 zones_optimal_nonseq;
50755 	u32 zones_max_open;
50756 	u32 zone_starting_lba_gran;
50757 	u32 *zones_wp_offset;
50758 	spinlock_t zones_wp_offset_lock;
50759 	u32 *rev_wp_offset;
50760 	struct mutex rev_mutex;
50761 	struct work_struct zone_wp_offset_work;
50762 	char *zone_wp_update_buf;
50763 	atomic_t openers;
50764 	sector_t capacity;
50765 	int max_retries;
50766 	u32 min_xfer_blocks;
50767 	u32 max_xfer_blocks;
50768 	u32 opt_xfer_blocks;
50769 	u32 max_ws_blocks;
50770 	u32 max_unmap_blocks;
50771 	u32 unmap_granularity;
50772 	u32 unmap_alignment;
50773 	u32 index;
50774 	unsigned int physical_block_size;
50775 	unsigned int max_medium_access_timeouts;
50776 	unsigned int medium_access_timed_out;
50777 	u8 media_present;
50778 	u8 write_prot;
50779 	u8 protection_type;
50780 	u8 provisioning_mode;
50781 	u8 zeroing_mode;
50782 	u8 nr_actuators;
50783 	unsigned int ATO: 1;
50784 	unsigned int cache_override: 1;
50785 	unsigned int WCE: 1;
50786 	unsigned int RCD: 1;
50787 	unsigned int DPOFUA: 1;
50788 	unsigned int first_scan: 1;
50789 	unsigned int lbpme: 1;
50790 	unsigned int lbprz: 1;
50791 	unsigned int lbpu: 1;
50792 	unsigned int lbpws: 1;
50793 	unsigned int lbpws10: 1;
50794 	unsigned int lbpvpd: 1;
50795 	unsigned int ws10: 1;
50796 	unsigned int ws16: 1;
50797 	unsigned int rc_basis: 2;
50798 	unsigned int zoned: 2;
50799 	unsigned int urswrz: 1;
50800 	unsigned int security: 1;
50801 	unsigned int ignore_medium_access_errors: 1;
50802 };
50803 
50804 enum ata_prot_flags {
50805 	ATA_PROT_FLAG_PIO = 1,
50806 	ATA_PROT_FLAG_DMA = 2,
50807 	ATA_PROT_FLAG_NCQ = 4,
50808 	ATA_PROT_FLAG_ATAPI = 8,
50809 	ATA_PROT_UNKNOWN = 255,
50810 	ATA_PROT_NODATA = 0,
50811 	ATA_PROT_PIO = 1,
50812 	ATA_PROT_DMA = 2,
50813 	ATA_PROT_NCQ_NODATA = 4,
50814 	ATA_PROT_NCQ = 6,
50815 	ATAPI_PROT_NODATA = 8,
50816 	ATAPI_PROT_PIO = 9,
50817 	ATAPI_PROT_DMA = 10,
50818 };
50819 
50820 enum ata_lpm_hints {
50821 	ATA_LPM_EMPTY = 1,
50822 	ATA_LPM_HIPM = 2,
50823 	ATA_LPM_WAKE_ONLY = 4,
50824 };
50825 
50826 enum ata_link_iter_mode {
50827 	ATA_LITER_EDGE = 0,
50828 	ATA_LITER_HOST_FIRST = 1,
50829 	ATA_LITER_PMP_FIRST = 2,
50830 };
50831 
50832 enum ata_dev_iter_mode {
50833 	ATA_DITER_ENABLED = 0,
50834 	ATA_DITER_ENABLED_REVERSE = 1,
50835 	ATA_DITER_ALL = 2,
50836 	ATA_DITER_ALL_REVERSE = 3,
50837 };
50838 
50839 enum {
50840 	ATA_READID_POSTRESET = 1,
50841 	ATA_DNXFER_PIO = 0,
50842 	ATA_DNXFER_DMA = 1,
50843 	ATA_DNXFER_40C = 2,
50844 	ATA_DNXFER_FORCE_PIO = 3,
50845 	ATA_DNXFER_FORCE_PIO0 = 4,
50846 	ATA_DNXFER_QUIET = -2147483648,
50847 };
50848 
50849 enum {
50850 	ATA_EH_SPDN_NCQ_OFF = 1,
50851 	ATA_EH_SPDN_SPEED_DOWN = 2,
50852 	ATA_EH_SPDN_FALLBACK_TO_PIO = 4,
50853 	ATA_EH_SPDN_KEEP_ERRORS = 8,
50854 	ATA_EFLAG_IS_IO = 1,
50855 	ATA_EFLAG_DUBIOUS_XFER = 2,
50856 	ATA_EFLAG_OLD_ER = -2147483648,
50857 	ATA_ECAT_NONE = 0,
50858 	ATA_ECAT_ATA_BUS = 1,
50859 	ATA_ECAT_TOUT_HSM = 2,
50860 	ATA_ECAT_UNK_DEV = 3,
50861 	ATA_ECAT_DUBIOUS_NONE = 4,
50862 	ATA_ECAT_DUBIOUS_ATA_BUS = 5,
50863 	ATA_ECAT_DUBIOUS_TOUT_HSM = 6,
50864 	ATA_ECAT_DUBIOUS_UNK_DEV = 7,
50865 	ATA_ECAT_NR = 8,
50866 	ATA_EH_CMD_DFL_TIMEOUT = 5000,
50867 	ATA_EH_RESET_COOL_DOWN = 5000,
50868 	ATA_EH_PRERESET_TIMEOUT = 10000,
50869 	ATA_EH_FASTDRAIN_INTERVAL = 3000,
50870 	ATA_EH_UA_TRIES = 5,
50871 	ATA_EH_PROBE_TRIAL_INTERVAL = 60000,
50872 	ATA_EH_PROBE_TRIALS = 2,
50873 };
50874 
50875 struct ata_eh_cmd_timeout_ent {
50876 	const u8 *commands;
50877 	const unsigned int *timeouts;
50878 };
50879 
50880 struct speed_down_verdict_arg {
50881 	u64 since;
50882 	int xfer_ok;
50883 	int nr_errors[8];
50884 };
50885 
50886 struct ata_port_info {
50887 	long unsigned int flags;
50888 	long unsigned int link_flags;
50889 	unsigned int pio_mask;
50890 	unsigned int mwdma_mask;
50891 	unsigned int udma_mask;
50892 	struct ata_port_operations *port_ops;
50893 	void *private_data;
50894 };
50895 
50896 struct ata_timing {
50897 	short unsigned int mode;
50898 	short unsigned int setup;
50899 	short unsigned int act8b;
50900 	short unsigned int rec8b;
50901 	short unsigned int cyc8b;
50902 	short unsigned int active;
50903 	short unsigned int recover;
50904 	short unsigned int dmack_hold;
50905 	short unsigned int cycle;
50906 	short unsigned int udma;
50907 };
50908 
50909 struct clk_bulk_data {
50910 	const char *id;
50911 	struct clk *clk;
50912 };
50913 
50914 struct phy_configure_opts_dp {
50915 	unsigned int link_rate;
50916 	unsigned int lanes;
50917 	unsigned int voltage[4];
50918 	unsigned int pre[4];
50919 	u8 ssc: 1;
50920 	u8 set_rate: 1;
50921 	u8 set_lanes: 1;
50922 	u8 set_voltages: 1;
50923 };
50924 
50925 struct phy_configure_opts_lvds {
50926 	unsigned int bits_per_lane_and_dclk_cycle;
50927 	long unsigned int differential_clk_rate;
50928 	unsigned int lanes;
50929 	bool is_slave;
50930 };
50931 
50932 struct phy_configure_opts_mipi_dphy {
50933 	unsigned int clk_miss;
50934 	unsigned int clk_post;
50935 	unsigned int clk_pre;
50936 	unsigned int clk_prepare;
50937 	unsigned int clk_settle;
50938 	unsigned int clk_term_en;
50939 	unsigned int clk_trail;
50940 	unsigned int clk_zero;
50941 	unsigned int d_term_en;
50942 	unsigned int eot;
50943 	unsigned int hs_exit;
50944 	unsigned int hs_prepare;
50945 	unsigned int hs_settle;
50946 	unsigned int hs_skip;
50947 	unsigned int hs_trail;
50948 	unsigned int hs_zero;
50949 	unsigned int init;
50950 	unsigned int lpx;
50951 	unsigned int ta_get;
50952 	unsigned int ta_go;
50953 	unsigned int ta_sure;
50954 	unsigned int wakeup;
50955 	long unsigned int hs_clk_rate;
50956 	long unsigned int lp_clk_rate;
50957 	unsigned char lanes;
50958 };
50959 
50960 enum phy_mode {
50961 	PHY_MODE_INVALID = 0,
50962 	PHY_MODE_USB_HOST = 1,
50963 	PHY_MODE_USB_HOST_LS = 2,
50964 	PHY_MODE_USB_HOST_FS = 3,
50965 	PHY_MODE_USB_HOST_HS = 4,
50966 	PHY_MODE_USB_HOST_SS = 5,
50967 	PHY_MODE_USB_DEVICE = 6,
50968 	PHY_MODE_USB_DEVICE_LS = 7,
50969 	PHY_MODE_USB_DEVICE_FS = 8,
50970 	PHY_MODE_USB_DEVICE_HS = 9,
50971 	PHY_MODE_USB_DEVICE_SS = 10,
50972 	PHY_MODE_USB_OTG = 11,
50973 	PHY_MODE_UFS_HS_A = 12,
50974 	PHY_MODE_UFS_HS_B = 13,
50975 	PHY_MODE_PCIE = 14,
50976 	PHY_MODE_ETHERNET = 15,
50977 	PHY_MODE_MIPI_DPHY = 16,
50978 	PHY_MODE_SATA = 17,
50979 	PHY_MODE_LVDS = 18,
50980 	PHY_MODE_DP = 19,
50981 };
50982 
50983 enum phy_media {
50984 	PHY_MEDIA_DEFAULT = 0,
50985 	PHY_MEDIA_SR = 1,
50986 	PHY_MEDIA_DAC = 2,
50987 };
50988 
50989 union phy_configure_opts {
50990 	struct phy_configure_opts_mipi_dphy mipi_dphy;
50991 	struct phy_configure_opts_dp dp;
50992 	struct phy_configure_opts_lvds lvds;
50993 };
50994 
50995 struct phy;
50996 
50997 struct phy_ops {
50998 	int (*init)(struct phy *);
50999 	int (*exit)(struct phy *);
51000 	int (*power_on)(struct phy *);
51001 	int (*power_off)(struct phy *);
51002 	int (*set_mode)(struct phy *, enum phy_mode, int);
51003 	int (*set_media)(struct phy *, enum phy_media);
51004 	int (*set_speed)(struct phy *, int);
51005 	int (*configure)(struct phy *, union phy_configure_opts *);
51006 	int (*validate)(struct phy *, enum phy_mode, int, union phy_configure_opts *);
51007 	int (*reset)(struct phy *);
51008 	int (*calibrate)(struct phy *);
51009 	void (*release)(struct phy *);
51010 	struct module *owner;
51011 };
51012 
51013 struct phy_attrs {
51014 	u32 bus_width;
51015 	u32 max_link_rate;
51016 	enum phy_mode mode;
51017 };
51018 
51019 struct phy {
51020 	struct device dev;
51021 	int id;
51022 	const struct phy_ops *ops;
51023 	struct mutex mutex;
51024 	int init_count;
51025 	int power_count;
51026 	struct phy_attrs attrs;
51027 	struct regulator *pwr;
51028 };
51029 
51030 struct reset_control;
51031 
51032 enum {
51033 	AHCI_MAX_PORTS = 32,
51034 	AHCI_MAX_SG = 168,
51035 	AHCI_DMA_BOUNDARY = 4294967295,
51036 	AHCI_MAX_CMDS = 32,
51037 	AHCI_CMD_SZ = 32,
51038 	AHCI_CMD_SLOT_SZ = 1024,
51039 	AHCI_RX_FIS_SZ = 256,
51040 	AHCI_CMD_TBL_CDB = 64,
51041 	AHCI_CMD_TBL_HDR_SZ = 128,
51042 	AHCI_CMD_TBL_SZ = 2816,
51043 	AHCI_CMD_TBL_AR_SZ = 90112,
51044 	AHCI_PORT_PRIV_DMA_SZ = 91392,
51045 	AHCI_PORT_PRIV_FBS_DMA_SZ = 95232,
51046 	AHCI_IRQ_ON_SG = 2147483648,
51047 	AHCI_CMD_ATAPI = 32,
51048 	AHCI_CMD_WRITE = 64,
51049 	AHCI_CMD_PREFETCH = 128,
51050 	AHCI_CMD_RESET = 256,
51051 	AHCI_CMD_CLR_BUSY = 1024,
51052 	RX_FIS_PIO_SETUP = 32,
51053 	RX_FIS_D2H_REG = 64,
51054 	RX_FIS_SDB = 88,
51055 	RX_FIS_UNK = 96,
51056 	HOST_CAP = 0,
51057 	HOST_CTL = 4,
51058 	HOST_IRQ_STAT = 8,
51059 	HOST_PORTS_IMPL = 12,
51060 	HOST_VERSION = 16,
51061 	HOST_EM_LOC = 28,
51062 	HOST_EM_CTL = 32,
51063 	HOST_CAP2 = 36,
51064 	HOST_RESET = 1,
51065 	HOST_IRQ_EN = 2,
51066 	HOST_MRSM = 4,
51067 	HOST_AHCI_EN = 2147483648,
51068 	HOST_CAP_SXS = 32,
51069 	HOST_CAP_EMS = 64,
51070 	HOST_CAP_CCC = 128,
51071 	HOST_CAP_PART = 8192,
51072 	HOST_CAP_SSC = 16384,
51073 	HOST_CAP_PIO_MULTI = 32768,
51074 	HOST_CAP_FBS = 65536,
51075 	HOST_CAP_PMP = 131072,
51076 	HOST_CAP_ONLY = 262144,
51077 	HOST_CAP_CLO = 16777216,
51078 	HOST_CAP_LED = 33554432,
51079 	HOST_CAP_ALPM = 67108864,
51080 	HOST_CAP_SSS = 134217728,
51081 	HOST_CAP_MPS = 268435456,
51082 	HOST_CAP_SNTF = 536870912,
51083 	HOST_CAP_NCQ = 1073741824,
51084 	HOST_CAP_64 = 2147483648,
51085 	HOST_CAP2_BOH = 1,
51086 	HOST_CAP2_NVMHCI = 2,
51087 	HOST_CAP2_APST = 4,
51088 	HOST_CAP2_SDS = 8,
51089 	HOST_CAP2_SADM = 16,
51090 	HOST_CAP2_DESO = 32,
51091 	PORT_LST_ADDR = 0,
51092 	PORT_LST_ADDR_HI = 4,
51093 	PORT_FIS_ADDR = 8,
51094 	PORT_FIS_ADDR_HI = 12,
51095 	PORT_IRQ_STAT = 16,
51096 	PORT_IRQ_MASK = 20,
51097 	PORT_CMD = 24,
51098 	PORT_TFDATA = 32,
51099 	PORT_SIG = 36,
51100 	PORT_CMD_ISSUE = 56,
51101 	PORT_SCR_STAT = 40,
51102 	PORT_SCR_CTL = 44,
51103 	PORT_SCR_ERR = 48,
51104 	PORT_SCR_ACT = 52,
51105 	PORT_SCR_NTF = 60,
51106 	PORT_FBS = 64,
51107 	PORT_DEVSLP = 68,
51108 	PORT_IRQ_COLD_PRES = 2147483648,
51109 	PORT_IRQ_TF_ERR = 1073741824,
51110 	PORT_IRQ_HBUS_ERR = 536870912,
51111 	PORT_IRQ_HBUS_DATA_ERR = 268435456,
51112 	PORT_IRQ_IF_ERR = 134217728,
51113 	PORT_IRQ_IF_NONFATAL = 67108864,
51114 	PORT_IRQ_OVERFLOW = 16777216,
51115 	PORT_IRQ_BAD_PMP = 8388608,
51116 	PORT_IRQ_PHYRDY = 4194304,
51117 	PORT_IRQ_DMPS = 128,
51118 	PORT_IRQ_CONNECT = 64,
51119 	PORT_IRQ_SG_DONE = 32,
51120 	PORT_IRQ_UNK_FIS = 16,
51121 	PORT_IRQ_SDB_FIS = 8,
51122 	PORT_IRQ_DMAS_FIS = 4,
51123 	PORT_IRQ_PIOS_FIS = 2,
51124 	PORT_IRQ_D2H_REG_FIS = 1,
51125 	PORT_IRQ_FREEZE = 683671632,
51126 	PORT_IRQ_ERROR = 2025848912,
51127 	DEF_PORT_IRQ = 2025848959,
51128 	PORT_CMD_ASP = 134217728,
51129 	PORT_CMD_ALPE = 67108864,
51130 	PORT_CMD_ATAPI = 16777216,
51131 	PORT_CMD_FBSCP = 4194304,
51132 	PORT_CMD_ESP = 2097152,
51133 	PORT_CMD_CPD = 1048576,
51134 	PORT_CMD_MPSP = 524288,
51135 	PORT_CMD_HPCP = 262144,
51136 	PORT_CMD_PMP = 131072,
51137 	PORT_CMD_LIST_ON = 32768,
51138 	PORT_CMD_FIS_ON = 16384,
51139 	PORT_CMD_FIS_RX = 16,
51140 	PORT_CMD_CLO = 8,
51141 	PORT_CMD_POWER_ON = 4,
51142 	PORT_CMD_SPIN_UP = 2,
51143 	PORT_CMD_START = 1,
51144 	PORT_CMD_ICC_MASK = 4026531840,
51145 	PORT_CMD_ICC_ACTIVE = 268435456,
51146 	PORT_CMD_ICC_PARTIAL = 536870912,
51147 	PORT_CMD_ICC_SLUMBER = 1610612736,
51148 	PORT_CMD_CAP = 8126464,
51149 	PORT_FBS_DWE_OFFSET = 16,
51150 	PORT_FBS_ADO_OFFSET = 12,
51151 	PORT_FBS_DEV_OFFSET = 8,
51152 	PORT_FBS_DEV_MASK = 3840,
51153 	PORT_FBS_SDE = 4,
51154 	PORT_FBS_DEC = 2,
51155 	PORT_FBS_EN = 1,
51156 	PORT_DEVSLP_DM_OFFSET = 25,
51157 	PORT_DEVSLP_DM_MASK = 503316480,
51158 	PORT_DEVSLP_DITO_OFFSET = 15,
51159 	PORT_DEVSLP_MDAT_OFFSET = 10,
51160 	PORT_DEVSLP_DETO_OFFSET = 2,
51161 	PORT_DEVSLP_DSP = 2,
51162 	PORT_DEVSLP_ADSE = 1,
51163 	AHCI_HFLAG_NO_NCQ = 1,
51164 	AHCI_HFLAG_IGN_IRQ_IF_ERR = 2,
51165 	AHCI_HFLAG_IGN_SERR_INTERNAL = 4,
51166 	AHCI_HFLAG_32BIT_ONLY = 8,
51167 	AHCI_HFLAG_MV_PATA = 16,
51168 	AHCI_HFLAG_NO_MSI = 32,
51169 	AHCI_HFLAG_NO_PMP = 64,
51170 	AHCI_HFLAG_SECT255 = 256,
51171 	AHCI_HFLAG_YES_NCQ = 512,
51172 	AHCI_HFLAG_NO_SUSPEND = 1024,
51173 	AHCI_HFLAG_SRST_TOUT_IS_OFFLINE = 2048,
51174 	AHCI_HFLAG_NO_SNTF = 4096,
51175 	AHCI_HFLAG_NO_FPDMA_AA = 8192,
51176 	AHCI_HFLAG_YES_FBS = 16384,
51177 	AHCI_HFLAG_DELAY_ENGINE = 32768,
51178 	AHCI_HFLAG_NO_DEVSLP = 131072,
51179 	AHCI_HFLAG_NO_FBS = 262144,
51180 	AHCI_HFLAG_MULTI_MSI = 1048576,
51181 	AHCI_HFLAG_WAKE_BEFORE_STOP = 4194304,
51182 	AHCI_HFLAG_YES_ALPM = 8388608,
51183 	AHCI_HFLAG_NO_WRITE_TO_RO = 16777216,
51184 	AHCI_HFLAG_USE_LPM_POLICY = 33554432,
51185 	AHCI_HFLAG_SUSPEND_PHYS = 67108864,
51186 	AHCI_HFLAG_NO_SXS = 268435456,
51187 	AHCI_FLAG_COMMON = 393346,
51188 	ICH_MAP = 144,
51189 	PCS_6 = 146,
51190 	PCS_7 = 148,
51191 	EM_MAX_SLOTS = 15,
51192 	EM_MAX_RETRY = 5,
51193 	EM_CTL_RST = 512,
51194 	EM_CTL_TM = 256,
51195 	EM_CTL_MR = 1,
51196 	EM_CTL_ALHD = 67108864,
51197 	EM_CTL_XMT = 33554432,
51198 	EM_CTL_SMB = 16777216,
51199 	EM_CTL_SGPIO = 524288,
51200 	EM_CTL_SES = 262144,
51201 	EM_CTL_SAFTE = 131072,
51202 	EM_CTL_LED = 65536,
51203 	EM_MSG_TYPE_LED = 1,
51204 	EM_MSG_TYPE_SAFTE = 2,
51205 	EM_MSG_TYPE_SES2 = 4,
51206 	EM_MSG_TYPE_SGPIO = 8,
51207 };
51208 
51209 struct ahci_host_priv {
51210 	unsigned int flags;
51211 	u32 mask_port_map;
51212 	void *mmio;
51213 	u32 cap;
51214 	u32 cap2;
51215 	u32 version;
51216 	u32 port_map;
51217 	u32 saved_cap;
51218 	u32 saved_cap2;
51219 	u32 saved_port_map;
51220 	u32 saved_port_cap[32];
51221 	u32 em_loc;
51222 	u32 em_buf_sz;
51223 	u32 em_msg_type;
51224 	u32 remapped_nvme;
51225 	bool got_runtime_pm;
51226 	unsigned int n_clks;
51227 	struct clk_bulk_data *clks;
51228 	unsigned int f_rsts;
51229 	struct reset_control *rsts;
51230 	struct regulator **target_pwrs;
51231 	struct regulator *ahci_regulator;
51232 	struct regulator *phy_regulator;
51233 	struct phy **phys;
51234 	unsigned int nports;
51235 	void *plat_data;
51236 	unsigned int irq;
51237 	void (*start_engine)(struct ata_port *);
51238 	int (*stop_engine)(struct ata_port *);
51239 	irqreturn_t (*irq_handler)(int, void *);
51240 	int (*get_irq_vector)(struct ata_host *, int);
51241 };
51242 
51243 enum netdev_state_t {
51244 	__LINK_STATE_START = 0,
51245 	__LINK_STATE_PRESENT = 1,
51246 	__LINK_STATE_NOCARRIER = 2,
51247 	__LINK_STATE_LINKWATCH_PENDING = 3,
51248 	__LINK_STATE_DORMANT = 4,
51249 	__LINK_STATE_TESTING = 5,
51250 };
51251 
51252 struct ethtool_cmd {
51253 	__u32 cmd;
51254 	__u32 supported;
51255 	__u32 advertising;
51256 	__u16 speed;
51257 	__u8 duplex;
51258 	__u8 port;
51259 	__u8 phy_address;
51260 	__u8 transceiver;
51261 	__u8 autoneg;
51262 	__u8 mdio_support;
51263 	__u32 maxtxpkt;
51264 	__u32 maxrxpkt;
51265 	__u16 speed_hi;
51266 	__u8 eth_tp_mdix;
51267 	__u8 eth_tp_mdix_ctrl;
51268 	__u32 lp_advertising;
51269 	__u32 reserved[2];
51270 };
51271 
51272 struct mii_ioctl_data {
51273 	__u16 phy_id;
51274 	__u16 reg_num;
51275 	__u16 val_in;
51276 	__u16 val_out;
51277 };
51278 
51279 struct mii_if_info {
51280 	int phy_id;
51281 	int advertising;
51282 	int phy_id_mask;
51283 	int reg_num_mask;
51284 	unsigned int full_duplex: 1;
51285 	unsigned int force_media: 1;
51286 	unsigned int supports_gmii: 1;
51287 	struct net_device *dev;
51288 	int (*mdio_read)(struct net_device *, int, int);
51289 	void (*mdio_write)(struct net_device *, int, int, int);
51290 };
51291 
51292 struct mii_bus;
51293 
51294 struct mdio_device {
51295 	struct device dev;
51296 	struct mii_bus *bus;
51297 	char modalias[32];
51298 	int (*bus_match)(struct device *, struct device_driver *);
51299 	void (*device_free)(struct mdio_device *);
51300 	void (*device_remove)(struct mdio_device *);
51301 	int addr;
51302 	int flags;
51303 	struct gpio_desc *reset_gpio;
51304 	struct reset_control *reset_ctrl;
51305 	unsigned int reset_assert_delay;
51306 	unsigned int reset_deassert_delay;
51307 };
51308 
51309 struct mdio_bus_stats {
51310 	u64_stats_t transfers;
51311 	u64_stats_t errors;
51312 	u64_stats_t writes;
51313 	u64_stats_t reads;
51314 	struct u64_stats_sync syncp;
51315 };
51316 
51317 struct phy_package_shared;
51318 
51319 struct mii_bus {
51320 	struct module *owner;
51321 	const char *name;
51322 	char id[61];
51323 	void *priv;
51324 	int (*read)(struct mii_bus *, int, int);
51325 	int (*write)(struct mii_bus *, int, int, u16);
51326 	int (*reset)(struct mii_bus *);
51327 	struct mdio_bus_stats stats[32];
51328 	struct mutex mdio_lock;
51329 	struct device *parent;
51330 	enum {
51331 		MDIOBUS_ALLOCATED = 1,
51332 		MDIOBUS_REGISTERED = 2,
51333 		MDIOBUS_UNREGISTERED = 3,
51334 		MDIOBUS_RELEASED = 4,
51335 	} state;
51336 	struct device dev;
51337 	struct mdio_device *mdio_map[32];
51338 	u32 phy_mask;
51339 	u32 phy_ignore_ta_mask;
51340 	int irq[32];
51341 	int reset_delay_us;
51342 	int reset_post_delay_us;
51343 	struct gpio_desc *reset_gpiod;
51344 	enum {
51345 		MDIOBUS_NO_CAP = 0,
51346 		MDIOBUS_C22 = 1,
51347 		MDIOBUS_C45 = 2,
51348 		MDIOBUS_C22_C45 = 3,
51349 	} probe_capabilities;
51350 	struct mutex shared_lock;
51351 	struct phy_package_shared *shared[32];
51352 };
51353 
51354 struct phy_package_shared {
51355 	int addr;
51356 	refcount_t refcnt;
51357 	long unsigned int flags;
51358 	size_t priv_size;
51359 	void *priv;
51360 };
51361 
51362 struct mdiobus_devres {
51363 	struct mii_bus *mii;
51364 };
51365 
51366 enum device_link_state {
51367 	DL_STATE_NONE = -1,
51368 	DL_STATE_DORMANT = 0,
51369 	DL_STATE_AVAILABLE = 1,
51370 	DL_STATE_CONSUMER_PROBE = 2,
51371 	DL_STATE_ACTIVE = 3,
51372 	DL_STATE_SUPPLIER_UNBIND = 4,
51373 };
51374 
51375 struct device_link {
51376 	struct device *supplier;
51377 	struct list_head s_node;
51378 	struct device *consumer;
51379 	struct list_head c_node;
51380 	struct device link_dev;
51381 	enum device_link_state status;
51382 	u32 flags;
51383 	refcount_t rpm_active;
51384 	struct kref kref;
51385 	struct work_struct rm_work;
51386 	bool supplier_preactivated;
51387 };
51388 
51389 struct phy_c45_device_ids {
51390 	u32 devices_in_package;
51391 	u32 mmds_present;
51392 	u32 device_ids[32];
51393 };
51394 
51395 enum phy_state {
51396 	PHY_DOWN = 0,
51397 	PHY_READY = 1,
51398 	PHY_HALTED = 2,
51399 	PHY_UP = 3,
51400 	PHY_RUNNING = 4,
51401 	PHY_NOLINK = 5,
51402 	PHY_CABLETEST = 6,
51403 };
51404 
51405 typedef enum {
51406 	PHY_INTERFACE_MODE_NA = 0,
51407 	PHY_INTERFACE_MODE_INTERNAL = 1,
51408 	PHY_INTERFACE_MODE_MII = 2,
51409 	PHY_INTERFACE_MODE_GMII = 3,
51410 	PHY_INTERFACE_MODE_SGMII = 4,
51411 	PHY_INTERFACE_MODE_TBI = 5,
51412 	PHY_INTERFACE_MODE_REVMII = 6,
51413 	PHY_INTERFACE_MODE_RMII = 7,
51414 	PHY_INTERFACE_MODE_REVRMII = 8,
51415 	PHY_INTERFACE_MODE_RGMII = 9,
51416 	PHY_INTERFACE_MODE_RGMII_ID = 10,
51417 	PHY_INTERFACE_MODE_RGMII_RXID = 11,
51418 	PHY_INTERFACE_MODE_RGMII_TXID = 12,
51419 	PHY_INTERFACE_MODE_RTBI = 13,
51420 	PHY_INTERFACE_MODE_SMII = 14,
51421 	PHY_INTERFACE_MODE_XGMII = 15,
51422 	PHY_INTERFACE_MODE_XLGMII = 16,
51423 	PHY_INTERFACE_MODE_MOCA = 17,
51424 	PHY_INTERFACE_MODE_QSGMII = 18,
51425 	PHY_INTERFACE_MODE_TRGMII = 19,
51426 	PHY_INTERFACE_MODE_100BASEX = 20,
51427 	PHY_INTERFACE_MODE_1000BASEX = 21,
51428 	PHY_INTERFACE_MODE_2500BASEX = 22,
51429 	PHY_INTERFACE_MODE_5GBASER = 23,
51430 	PHY_INTERFACE_MODE_RXAUI = 24,
51431 	PHY_INTERFACE_MODE_XAUI = 25,
51432 	PHY_INTERFACE_MODE_10GBASER = 26,
51433 	PHY_INTERFACE_MODE_25GBASER = 27,
51434 	PHY_INTERFACE_MODE_USXGMII = 28,
51435 	PHY_INTERFACE_MODE_10GKR = 29,
51436 	PHY_INTERFACE_MODE_QUSGMII = 30,
51437 	PHY_INTERFACE_MODE_1000BASEKX = 31,
51438 	PHY_INTERFACE_MODE_MAX = 32,
51439 } phy_interface_t;
51440 
51441 struct pse_control;
51442 
51443 struct phy_driver;
51444 
51445 struct phylink;
51446 
51447 struct mii_timestamper;
51448 
51449 struct phy_device {
51450 	struct mdio_device mdio;
51451 	struct phy_driver *drv;
51452 	struct device_link *devlink;
51453 	u32 phy_id;
51454 	struct phy_c45_device_ids c45_ids;
51455 	unsigned int is_c45: 1;
51456 	unsigned int is_internal: 1;
51457 	unsigned int is_pseudo_fixed_link: 1;
51458 	unsigned int is_gigabit_capable: 1;
51459 	unsigned int has_fixups: 1;
51460 	unsigned int suspended: 1;
51461 	unsigned int suspended_by_mdio_bus: 1;
51462 	unsigned int sysfs_links: 1;
51463 	unsigned int loopback_enabled: 1;
51464 	unsigned int downshifted_rate: 1;
51465 	unsigned int is_on_sfp_module: 1;
51466 	unsigned int mac_managed_pm: 1;
51467 	unsigned int autoneg: 1;
51468 	unsigned int link: 1;
51469 	unsigned int autoneg_complete: 1;
51470 	unsigned int interrupts: 1;
51471 	unsigned int irq_suspended: 1;
51472 	unsigned int irq_rerun: 1;
51473 	int rate_matching;
51474 	enum phy_state state;
51475 	u32 dev_flags;
51476 	phy_interface_t interface;
51477 	int speed;
51478 	int duplex;
51479 	int port;
51480 	int pause;
51481 	int asym_pause;
51482 	u8 master_slave_get;
51483 	u8 master_slave_set;
51484 	u8 master_slave_state;
51485 	long unsigned int supported[2];
51486 	long unsigned int advertising[2];
51487 	long unsigned int lp_advertising[2];
51488 	long unsigned int adv_old[2];
51489 	long unsigned int host_interfaces[1];
51490 	u32 eee_broken_modes;
51491 	int irq;
51492 	void *priv;
51493 	struct phy_package_shared *shared;
51494 	struct sk_buff *skb;
51495 	void *ehdr;
51496 	struct nlattr *nest;
51497 	struct delayed_work state_queue;
51498 	struct mutex lock;
51499 	bool sfp_bus_attached;
51500 	struct sfp_bus *sfp_bus;
51501 	struct phylink *phylink;
51502 	struct net_device *attached_dev;
51503 	struct mii_timestamper *mii_ts;
51504 	struct pse_control *psec;
51505 	u8 mdix;
51506 	u8 mdix_ctrl;
51507 	int pma_extable;
51508 	unsigned int link_down_events;
51509 	void (*phy_link_change)(struct phy_device *, bool);
51510 	void (*adjust_link)(struct net_device *);
51511 	const struct macsec_ops *macsec_ops;
51512 };
51513 
51514 struct phy_tdr_config {
51515 	u32 first;
51516 	u32 last;
51517 	u32 step;
51518 	s8 pair;
51519 };
51520 
51521 struct mdio_driver_common {
51522 	struct device_driver driver;
51523 	int flags;
51524 };
51525 
51526 struct mii_timestamper {
51527 	bool (*rxtstamp)(struct mii_timestamper *, struct sk_buff *, int);
51528 	void (*txtstamp)(struct mii_timestamper *, struct sk_buff *, int);
51529 	int (*hwtstamp)(struct mii_timestamper *, struct ifreq *);
51530 	void (*link_state)(struct mii_timestamper *, struct phy_device *);
51531 	int (*ts_info)(struct mii_timestamper *, struct ethtool_ts_info *);
51532 	struct device *device;
51533 };
51534 
51535 struct phy_driver {
51536 	struct mdio_driver_common mdiodrv;
51537 	u32 phy_id;
51538 	char *name;
51539 	u32 phy_id_mask;
51540 	const long unsigned int * const features;
51541 	u32 flags;
51542 	const void *driver_data;
51543 	int (*soft_reset)(struct phy_device *);
51544 	int (*config_init)(struct phy_device *);
51545 	int (*probe)(struct phy_device *);
51546 	int (*get_features)(struct phy_device *);
51547 	int (*get_rate_matching)(struct phy_device *, phy_interface_t);
51548 	int (*suspend)(struct phy_device *);
51549 	int (*resume)(struct phy_device *);
51550 	int (*config_aneg)(struct phy_device *);
51551 	int (*aneg_done)(struct phy_device *);
51552 	int (*read_status)(struct phy_device *);
51553 	int (*config_intr)(struct phy_device *);
51554 	irqreturn_t (*handle_interrupt)(struct phy_device *);
51555 	void (*remove)(struct phy_device *);
51556 	int (*match_phy_device)(struct phy_device *);
51557 	int (*set_wol)(struct phy_device *, struct ethtool_wolinfo *);
51558 	void (*get_wol)(struct phy_device *, struct ethtool_wolinfo *);
51559 	void (*link_change_notify)(struct phy_device *);
51560 	int (*read_mmd)(struct phy_device *, int, u16);
51561 	int (*write_mmd)(struct phy_device *, int, u16, u16);
51562 	int (*read_page)(struct phy_device *);
51563 	int (*write_page)(struct phy_device *, int);
51564 	int (*module_info)(struct phy_device *, struct ethtool_modinfo *);
51565 	int (*module_eeprom)(struct phy_device *, struct ethtool_eeprom *, u8 *);
51566 	int (*cable_test_start)(struct phy_device *);
51567 	int (*cable_test_tdr_start)(struct phy_device *, const struct phy_tdr_config *);
51568 	int (*cable_test_get_status)(struct phy_device *, bool *);
51569 	int (*get_sset_count)(struct phy_device *);
51570 	void (*get_strings)(struct phy_device *, u8 *);
51571 	void (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *);
51572 	int (*get_tunable)(struct phy_device *, struct ethtool_tunable *, void *);
51573 	int (*set_tunable)(struct phy_device *, struct ethtool_tunable *, const void *);
51574 	int (*set_loopback)(struct phy_device *, bool);
51575 	int (*get_sqi)(struct phy_device *);
51576 	int (*get_sqi_max)(struct phy_device *);
51577 };
51578 
51579 struct ethtool_phy_ops {
51580 	int (*get_sset_count)(struct phy_device *);
51581 	int (*get_strings)(struct phy_device *, u8 *);
51582 	int (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *);
51583 	int (*start_cable_test)(struct phy_device *, struct netlink_ext_ack *);
51584 	int (*start_cable_test_tdr)(struct phy_device *, struct netlink_ext_ack *, const struct phy_tdr_config *);
51585 };
51586 
51587 struct phy_fixup {
51588 	struct list_head list;
51589 	char bus_id[64];
51590 	u32 phy_uid;
51591 	u32 phy_uid_mask;
51592 	int (*run)(struct phy_device *);
51593 };
51594 
51595 struct sfp_eeprom_base {
51596 	u8 phys_id;
51597 	u8 phys_ext_id;
51598 	u8 connector;
51599 	u8 if_1x_copper_passive: 1;
51600 	u8 if_1x_copper_active: 1;
51601 	u8 if_1x_lx: 1;
51602 	u8 if_1x_sx: 1;
51603 	u8 e10g_base_sr: 1;
51604 	u8 e10g_base_lr: 1;
51605 	u8 e10g_base_lrm: 1;
51606 	u8 e10g_base_er: 1;
51607 	u8 sonet_oc3_short_reach: 1;
51608 	u8 sonet_oc3_smf_intermediate_reach: 1;
51609 	u8 sonet_oc3_smf_long_reach: 1;
51610 	u8 unallocated_5_3: 1;
51611 	u8 sonet_oc12_short_reach: 1;
51612 	u8 sonet_oc12_smf_intermediate_reach: 1;
51613 	u8 sonet_oc12_smf_long_reach: 1;
51614 	u8 unallocated_5_7: 1;
51615 	u8 sonet_oc48_short_reach: 1;
51616 	u8 sonet_oc48_intermediate_reach: 1;
51617 	u8 sonet_oc48_long_reach: 1;
51618 	u8 sonet_reach_bit2: 1;
51619 	u8 sonet_reach_bit1: 1;
51620 	u8 sonet_oc192_short_reach: 1;
51621 	u8 escon_smf_1310_laser: 1;
51622 	u8 escon_mmf_1310_led: 1;
51623 	u8 e1000_base_sx: 1;
51624 	u8 e1000_base_lx: 1;
51625 	u8 e1000_base_cx: 1;
51626 	u8 e1000_base_t: 1;
51627 	u8 e100_base_lx: 1;
51628 	u8 e100_base_fx: 1;
51629 	u8 e_base_bx10: 1;
51630 	u8 e_base_px: 1;
51631 	u8 fc_tech_electrical_inter_enclosure: 1;
51632 	u8 fc_tech_lc: 1;
51633 	u8 fc_tech_sa: 1;
51634 	u8 fc_ll_m: 1;
51635 	u8 fc_ll_l: 1;
51636 	u8 fc_ll_i: 1;
51637 	u8 fc_ll_s: 1;
51638 	u8 fc_ll_v: 1;
51639 	u8 unallocated_8_0: 1;
51640 	u8 unallocated_8_1: 1;
51641 	u8 sfp_ct_passive: 1;
51642 	u8 sfp_ct_active: 1;
51643 	u8 fc_tech_ll: 1;
51644 	u8 fc_tech_sl: 1;
51645 	u8 fc_tech_sn: 1;
51646 	u8 fc_tech_electrical_intra_enclosure: 1;
51647 	u8 fc_media_sm: 1;
51648 	u8 unallocated_9_1: 1;
51649 	u8 fc_media_m5: 1;
51650 	u8 fc_media_m6: 1;
51651 	u8 fc_media_tv: 1;
51652 	u8 fc_media_mi: 1;
51653 	u8 fc_media_tp: 1;
51654 	u8 fc_media_tw: 1;
51655 	u8 fc_speed_100: 1;
51656 	u8 unallocated_10_1: 1;
51657 	u8 fc_speed_200: 1;
51658 	u8 fc_speed_3200: 1;
51659 	u8 fc_speed_400: 1;
51660 	u8 fc_speed_1600: 1;
51661 	u8 fc_speed_800: 1;
51662 	u8 fc_speed_1200: 1;
51663 	u8 encoding;
51664 	u8 br_nominal;
51665 	u8 rate_id;
51666 	u8 link_len[6];
51667 	char vendor_name[16];
51668 	u8 extended_cc;
51669 	char vendor_oui[3];
51670 	char vendor_pn[16];
51671 	char vendor_rev[4];
51672 	union {
51673 		__be16 optical_wavelength;
51674 		__be16 cable_compliance;
51675 		struct {
51676 			u8 sff8431_app_e: 1;
51677 			u8 fc_pi_4_app_h: 1;
51678 			u8 reserved60_2: 6;
51679 			u8 reserved61: 8;
51680 		} passive;
51681 		struct {
51682 			u8 sff8431_app_e: 1;
51683 			u8 fc_pi_4_app_h: 1;
51684 			u8 sff8431_lim: 1;
51685 			u8 fc_pi_4_lim: 1;
51686 			u8 reserved60_4: 4;
51687 			u8 reserved61: 8;
51688 		} active;
51689 	};
51690 	u8 reserved62;
51691 	u8 cc_base;
51692 };
51693 
51694 struct sfp_eeprom_ext {
51695 	__be16 options;
51696 	u8 br_max;
51697 	u8 br_min;
51698 	char vendor_sn[16];
51699 	char datecode[8];
51700 	u8 diagmon;
51701 	u8 enhopts;
51702 	u8 sff8472_compliance;
51703 	u8 cc_ext;
51704 };
51705 
51706 struct sfp_eeprom_id {
51707 	struct sfp_eeprom_base base;
51708 	struct sfp_eeprom_ext ext;
51709 };
51710 
51711 struct sfp_upstream_ops {
51712 	void (*attach)(void *, struct sfp_bus *);
51713 	void (*detach)(void *, struct sfp_bus *);
51714 	int (*module_insert)(void *, const struct sfp_eeprom_id *);
51715 	void (*module_remove)(void *);
51716 	int (*module_start)(void *);
51717 	void (*module_stop)(void *);
51718 	void (*link_down)(void *);
51719 	void (*link_up)(void *);
51720 	int (*connect_phy)(void *, struct phy_device *);
51721 	void (*disconnect_phy)(void *);
51722 };
51723 
51724 struct fixed_phy_status {
51725 	int link;
51726 	int speed;
51727 	int duplex;
51728 	int pause;
51729 	int asym_pause;
51730 };
51731 
51732 struct fixed_mdio_bus {
51733 	struct mii_bus *mii_bus;
51734 	struct list_head phys;
51735 };
51736 
51737 struct fixed_phy {
51738 	int addr;
51739 	struct phy_device *phydev;
51740 	struct fixed_phy_status status;
51741 	bool no_carrier;
51742 	int (*link_update)(struct net_device *, struct fixed_phy_status *);
51743 	struct list_head node;
51744 	struct gpio_desc *link_gpiod;
51745 };
51746 
51747 typedef __u16 __sum16;
51748 
51749 struct inet_ehash_bucket;
51750 
51751 struct inet_bind_hashbucket;
51752 
51753 struct inet_listen_hashbucket;
51754 
51755 struct inet_hashinfo {
51756 	struct inet_ehash_bucket *ehash;
51757 	spinlock_t *ehash_locks;
51758 	unsigned int ehash_mask;
51759 	unsigned int ehash_locks_mask;
51760 	struct kmem_cache *bind_bucket_cachep;
51761 	struct inet_bind_hashbucket *bhash;
51762 	struct kmem_cache *bind2_bucket_cachep;
51763 	struct inet_bind_hashbucket *bhash2;
51764 	unsigned int bhash_size;
51765 	unsigned int lhash2_mask;
51766 	struct inet_listen_hashbucket *lhash2;
51767 	bool pernet;
51768 };
51769 
51770 struct tcp_fastopen_context {
51771 	siphash_key_t key[2];
51772 	int num;
51773 	struct callback_head rcu;
51774 };
51775 
51776 struct hlist_nulls_head {
51777 	struct hlist_nulls_node *first;
51778 };
51779 
51780 enum {
51781 	NETIF_F_SG_BIT = 0,
51782 	NETIF_F_IP_CSUM_BIT = 1,
51783 	__UNUSED_NETIF_F_1 = 2,
51784 	NETIF_F_HW_CSUM_BIT = 3,
51785 	NETIF_F_IPV6_CSUM_BIT = 4,
51786 	NETIF_F_HIGHDMA_BIT = 5,
51787 	NETIF_F_FRAGLIST_BIT = 6,
51788 	NETIF_F_HW_VLAN_CTAG_TX_BIT = 7,
51789 	NETIF_F_HW_VLAN_CTAG_RX_BIT = 8,
51790 	NETIF_F_HW_VLAN_CTAG_FILTER_BIT = 9,
51791 	NETIF_F_VLAN_CHALLENGED_BIT = 10,
51792 	NETIF_F_GSO_BIT = 11,
51793 	NETIF_F_LLTX_BIT = 12,
51794 	NETIF_F_NETNS_LOCAL_BIT = 13,
51795 	NETIF_F_GRO_BIT = 14,
51796 	NETIF_F_LRO_BIT = 15,
51797 	NETIF_F_GSO_SHIFT = 16,
51798 	NETIF_F_TSO_BIT = 16,
51799 	NETIF_F_GSO_ROBUST_BIT = 17,
51800 	NETIF_F_TSO_ECN_BIT = 18,
51801 	NETIF_F_TSO_MANGLEID_BIT = 19,
51802 	NETIF_F_TSO6_BIT = 20,
51803 	NETIF_F_FSO_BIT = 21,
51804 	NETIF_F_GSO_GRE_BIT = 22,
51805 	NETIF_F_GSO_GRE_CSUM_BIT = 23,
51806 	NETIF_F_GSO_IPXIP4_BIT = 24,
51807 	NETIF_F_GSO_IPXIP6_BIT = 25,
51808 	NETIF_F_GSO_UDP_TUNNEL_BIT = 26,
51809 	NETIF_F_GSO_UDP_TUNNEL_CSUM_BIT = 27,
51810 	NETIF_F_GSO_PARTIAL_BIT = 28,
51811 	NETIF_F_GSO_TUNNEL_REMCSUM_BIT = 29,
51812 	NETIF_F_GSO_SCTP_BIT = 30,
51813 	NETIF_F_GSO_ESP_BIT = 31,
51814 	NETIF_F_GSO_UDP_BIT = 32,
51815 	NETIF_F_GSO_UDP_L4_BIT = 33,
51816 	NETIF_F_GSO_FRAGLIST_BIT = 34,
51817 	NETIF_F_GSO_LAST = 34,
51818 	NETIF_F_FCOE_CRC_BIT = 35,
51819 	NETIF_F_SCTP_CRC_BIT = 36,
51820 	NETIF_F_FCOE_MTU_BIT = 37,
51821 	NETIF_F_NTUPLE_BIT = 38,
51822 	NETIF_F_RXHASH_BIT = 39,
51823 	NETIF_F_RXCSUM_BIT = 40,
51824 	NETIF_F_NOCACHE_COPY_BIT = 41,
51825 	NETIF_F_LOOPBACK_BIT = 42,
51826 	NETIF_F_RXFCS_BIT = 43,
51827 	NETIF_F_RXALL_BIT = 44,
51828 	NETIF_F_HW_VLAN_STAG_TX_BIT = 45,
51829 	NETIF_F_HW_VLAN_STAG_RX_BIT = 46,
51830 	NETIF_F_HW_VLAN_STAG_FILTER_BIT = 47,
51831 	NETIF_F_HW_L2FW_DOFFLOAD_BIT = 48,
51832 	NETIF_F_HW_TC_BIT = 49,
51833 	NETIF_F_HW_ESP_BIT = 50,
51834 	NETIF_F_HW_ESP_TX_CSUM_BIT = 51,
51835 	NETIF_F_RX_UDP_TUNNEL_PORT_BIT = 52,
51836 	NETIF_F_HW_TLS_TX_BIT = 53,
51837 	NETIF_F_HW_TLS_RX_BIT = 54,
51838 	NETIF_F_GRO_HW_BIT = 55,
51839 	NETIF_F_HW_TLS_RECORD_BIT = 56,
51840 	NETIF_F_GRO_FRAGLIST_BIT = 57,
51841 	NETIF_F_HW_MACSEC_BIT = 58,
51842 	NETIF_F_GRO_UDP_FWD_BIT = 59,
51843 	NETIF_F_HW_HSR_TAG_INS_BIT = 60,
51844 	NETIF_F_HW_HSR_TAG_RM_BIT = 61,
51845 	NETIF_F_HW_HSR_FWD_BIT = 62,
51846 	NETIF_F_HW_HSR_DUP_BIT = 63,
51847 	NETDEV_FEATURE_COUNT = 64,
51848 };
51849 
51850 enum {
51851 	SKB_GSO_TCPV4 = 1,
51852 	SKB_GSO_DODGY = 2,
51853 	SKB_GSO_TCP_ECN = 4,
51854 	SKB_GSO_TCP_FIXEDID = 8,
51855 	SKB_GSO_TCPV6 = 16,
51856 	SKB_GSO_FCOE = 32,
51857 	SKB_GSO_GRE = 64,
51858 	SKB_GSO_GRE_CSUM = 128,
51859 	SKB_GSO_IPXIP4 = 256,
51860 	SKB_GSO_IPXIP6 = 512,
51861 	SKB_GSO_UDP_TUNNEL = 1024,
51862 	SKB_GSO_UDP_TUNNEL_CSUM = 2048,
51863 	SKB_GSO_PARTIAL = 4096,
51864 	SKB_GSO_TUNNEL_REMCSUM = 8192,
51865 	SKB_GSO_SCTP = 16384,
51866 	SKB_GSO_ESP = 32768,
51867 	SKB_GSO_UDP = 65536,
51868 	SKB_GSO_UDP_L4 = 131072,
51869 	SKB_GSO_FRAGLIST = 262144,
51870 };
51871 
51872 enum pkt_hash_types {
51873 	PKT_HASH_TYPE_NONE = 0,
51874 	PKT_HASH_TYPE_L2 = 1,
51875 	PKT_HASH_TYPE_L3 = 2,
51876 	PKT_HASH_TYPE_L4 = 3,
51877 };
51878 
51879 struct netdev_hw_addr {
51880 	struct list_head list;
51881 	struct rb_node node;
51882 	unsigned char addr[32];
51883 	unsigned char type;
51884 	bool global_use;
51885 	int sync_cnt;
51886 	int refcount;
51887 	int synced;
51888 	struct callback_head callback_head;
51889 };
51890 
51891 struct gro_list {
51892 	struct list_head list;
51893 	int count;
51894 };
51895 
51896 struct napi_struct {
51897 	struct list_head poll_list;
51898 	long unsigned int state;
51899 	int weight;
51900 	int defer_hard_irqs_count;
51901 	long unsigned int gro_bitmask;
51902 	int (*poll)(struct napi_struct *, int);
51903 	int poll_owner;
51904 	struct net_device *dev;
51905 	struct gro_list gro_hash[8];
51906 	struct sk_buff *skb;
51907 	struct list_head rx_list;
51908 	int rx_count;
51909 	struct hrtimer timer;
51910 	struct list_head dev_list;
51911 	struct hlist_node napi_hash_node;
51912 	unsigned int napi_id;
51913 	struct task_struct *thread;
51914 };
51915 
51916 enum gro_result {
51917 	GRO_MERGED = 0,
51918 	GRO_MERGED_FREE = 1,
51919 	GRO_HELD = 2,
51920 	GRO_NORMAL = 3,
51921 	GRO_CONSUMED = 4,
51922 };
51923 
51924 typedef enum gro_result gro_result_t;
51925 
51926 enum netdev_queue_state_t {
51927 	__QUEUE_STATE_DRV_XOFF = 0,
51928 	__QUEUE_STATE_STACK_XOFF = 1,
51929 	__QUEUE_STATE_FROZEN = 2,
51930 };
51931 
51932 enum skb_free_reason {
51933 	SKB_REASON_CONSUMED = 0,
51934 	SKB_REASON_DROPPED = 1,
51935 };
51936 
51937 enum ethtool_stringset {
51938 	ETH_SS_TEST = 0,
51939 	ETH_SS_STATS = 1,
51940 	ETH_SS_PRIV_FLAGS = 2,
51941 	ETH_SS_NTUPLE_FILTERS = 3,
51942 	ETH_SS_FEATURES = 4,
51943 	ETH_SS_RSS_HASH_FUNCS = 5,
51944 	ETH_SS_TUNABLES = 6,
51945 	ETH_SS_PHY_STATS = 7,
51946 	ETH_SS_PHY_TUNABLES = 8,
51947 	ETH_SS_LINK_MODES = 9,
51948 	ETH_SS_MSG_CLASSES = 10,
51949 	ETH_SS_WOL_MODES = 11,
51950 	ETH_SS_SOF_TIMESTAMPING = 12,
51951 	ETH_SS_TS_TX_TYPES = 13,
51952 	ETH_SS_TS_RX_FILTERS = 14,
51953 	ETH_SS_UDP_TUNNEL_TYPES = 15,
51954 	ETH_SS_STATS_STD = 16,
51955 	ETH_SS_STATS_ETH_PHY = 17,
51956 	ETH_SS_STATS_ETH_MAC = 18,
51957 	ETH_SS_STATS_ETH_CTRL = 19,
51958 	ETH_SS_STATS_RMON = 20,
51959 	ETH_SS_COUNT = 21,
51960 };
51961 
51962 enum ethtool_test_flags {
51963 	ETH_TEST_FL_OFFLINE = 1,
51964 	ETH_TEST_FL_FAILED = 2,
51965 	ETH_TEST_FL_EXTERNAL_LB = 4,
51966 	ETH_TEST_FL_EXTERNAL_LB_DONE = 8,
51967 };
51968 
51969 struct iphdr {
51970 	__u8 ihl: 4;
51971 	__u8 version: 4;
51972 	__u8 tos;
51973 	__be16 tot_len;
51974 	__be16 id;
51975 	__be16 frag_off;
51976 	__u8 ttl;
51977 	__u8 protocol;
51978 	__sum16 check;
51979 	union {
51980 		struct {
51981 			__be32 saddr;
51982 			__be32 daddr;
51983 		};
51984 		struct {
51985 			__be32 saddr;
51986 			__be32 daddr;
51987 		} addrs;
51988 	};
51989 };
51990 
51991 struct sock_reuseport {
51992 	struct callback_head rcu;
51993 	u16 max_socks;
51994 	u16 num_socks;
51995 	u16 num_closed_socks;
51996 	u16 incoming_cpu;
51997 	unsigned int synq_overflow_ts;
51998 	unsigned int reuseport_id;
51999 	unsigned int bind_inany: 1;
52000 	unsigned int has_conns: 1;
52001 	struct bpf_prog *prog;
52002 	struct sock *socks[0];
52003 };
52004 
52005 struct tcphdr {
52006 	__be16 source;
52007 	__be16 dest;
52008 	__be32 seq;
52009 	__be32 ack_seq;
52010 	__u16 res1: 4;
52011 	__u16 doff: 4;
52012 	__u16 fin: 1;
52013 	__u16 syn: 1;
52014 	__u16 rst: 1;
52015 	__u16 psh: 1;
52016 	__u16 ack: 1;
52017 	__u16 urg: 1;
52018 	__u16 ece: 1;
52019 	__u16 cwr: 1;
52020 	__be16 window;
52021 	__sum16 check;
52022 	__be16 urg_ptr;
52023 };
52024 
52025 struct inet_ehash_bucket {
52026 	struct hlist_nulls_head chain;
52027 };
52028 
52029 struct inet_bind_hashbucket {
52030 	spinlock_t lock;
52031 	struct hlist_head chain;
52032 };
52033 
52034 struct inet_listen_hashbucket {
52035 	spinlock_t lock;
52036 	struct hlist_nulls_head nulls_head;
52037 };
52038 
52039 struct ack_sample {
52040 	u32 pkts_acked;
52041 	s32 rtt_us;
52042 	u32 in_flight;
52043 };
52044 
52045 struct rate_sample {
52046 	u64 prior_mstamp;
52047 	u32 prior_delivered;
52048 	u32 prior_delivered_ce;
52049 	s32 delivered;
52050 	s32 delivered_ce;
52051 	long int interval_us;
52052 	u32 snd_interval_us;
52053 	u32 rcv_interval_us;
52054 	long int rtt_us;
52055 	int losses;
52056 	u32 acked_sacked;
52057 	u32 prior_in_flight;
52058 	u32 last_end_seq;
52059 	bool is_app_limited;
52060 	bool is_retrans;
52061 	bool is_ack_delayed;
52062 };
52063 
52064 struct firmware {
52065 	size_t size;
52066 	const u8 *data;
52067 	void *priv;
52068 };
52069 
52070 struct bnx2_tx_bd {
52071 	u32 tx_bd_haddr_hi;
52072 	u32 tx_bd_haddr_lo;
52073 	u32 tx_bd_mss_nbytes;
52074 	u32 tx_bd_vlan_tag_flags;
52075 };
52076 
52077 struct bnx2_rx_bd {
52078 	u32 rx_bd_haddr_hi;
52079 	u32 rx_bd_haddr_lo;
52080 	u32 rx_bd_len;
52081 	u32 rx_bd_flags;
52082 };
52083 
52084 struct status_block {
52085 	u32 status_attn_bits;
52086 	u32 status_attn_bits_ack;
52087 	u16 status_tx_quick_consumer_index1;
52088 	u16 status_tx_quick_consumer_index0;
52089 	u16 status_tx_quick_consumer_index3;
52090 	u16 status_tx_quick_consumer_index2;
52091 	u16 status_rx_quick_consumer_index1;
52092 	u16 status_rx_quick_consumer_index0;
52093 	u16 status_rx_quick_consumer_index3;
52094 	u16 status_rx_quick_consumer_index2;
52095 	u16 status_rx_quick_consumer_index5;
52096 	u16 status_rx_quick_consumer_index4;
52097 	u16 status_rx_quick_consumer_index7;
52098 	u16 status_rx_quick_consumer_index6;
52099 	u16 status_rx_quick_consumer_index9;
52100 	u16 status_rx_quick_consumer_index8;
52101 	u16 status_rx_quick_consumer_index11;
52102 	u16 status_rx_quick_consumer_index10;
52103 	u16 status_rx_quick_consumer_index13;
52104 	u16 status_rx_quick_consumer_index12;
52105 	u16 status_rx_quick_consumer_index15;
52106 	u16 status_rx_quick_consumer_index14;
52107 	u16 status_cmd_consumer_index;
52108 	u16 status_completion_producer_index;
52109 	u8 status_blk_num;
52110 	u8 status_unused;
52111 	u16 status_idx;
52112 };
52113 
52114 struct status_block_msix {
52115 	u16 status_rx_quick_consumer_index;
52116 	u16 status_tx_quick_consumer_index;
52117 	u16 status_cmd_consumer_index;
52118 	u16 status_completion_producer_index;
52119 	u32 status_unused;
52120 	u8 status_blk_num;
52121 	u8 status_unused2;
52122 	u16 status_idx;
52123 };
52124 
52125 struct statistics_block {
52126 	u32 stat_IfHCInOctets_hi;
52127 	u32 stat_IfHCInOctets_lo;
52128 	u32 stat_IfHCInBadOctets_hi;
52129 	u32 stat_IfHCInBadOctets_lo;
52130 	u32 stat_IfHCOutOctets_hi;
52131 	u32 stat_IfHCOutOctets_lo;
52132 	u32 stat_IfHCOutBadOctets_hi;
52133 	u32 stat_IfHCOutBadOctets_lo;
52134 	u32 stat_IfHCInUcastPkts_hi;
52135 	u32 stat_IfHCInUcastPkts_lo;
52136 	u32 stat_IfHCInMulticastPkts_hi;
52137 	u32 stat_IfHCInMulticastPkts_lo;
52138 	u32 stat_IfHCInBroadcastPkts_hi;
52139 	u32 stat_IfHCInBroadcastPkts_lo;
52140 	u32 stat_IfHCOutUcastPkts_hi;
52141 	u32 stat_IfHCOutUcastPkts_lo;
52142 	u32 stat_IfHCOutMulticastPkts_hi;
52143 	u32 stat_IfHCOutMulticastPkts_lo;
52144 	u32 stat_IfHCOutBroadcastPkts_hi;
52145 	u32 stat_IfHCOutBroadcastPkts_lo;
52146 	u32 stat_emac_tx_stat_dot3statsinternalmactransmiterrors;
52147 	u32 stat_Dot3StatsCarrierSenseErrors;
52148 	u32 stat_Dot3StatsFCSErrors;
52149 	u32 stat_Dot3StatsAlignmentErrors;
52150 	u32 stat_Dot3StatsSingleCollisionFrames;
52151 	u32 stat_Dot3StatsMultipleCollisionFrames;
52152 	u32 stat_Dot3StatsDeferredTransmissions;
52153 	u32 stat_Dot3StatsExcessiveCollisions;
52154 	u32 stat_Dot3StatsLateCollisions;
52155 	u32 stat_EtherStatsCollisions;
52156 	u32 stat_EtherStatsFragments;
52157 	u32 stat_EtherStatsJabbers;
52158 	u32 stat_EtherStatsUndersizePkts;
52159 	u32 stat_EtherStatsOverrsizePkts;
52160 	u32 stat_EtherStatsPktsRx64Octets;
52161 	u32 stat_EtherStatsPktsRx65Octetsto127Octets;
52162 	u32 stat_EtherStatsPktsRx128Octetsto255Octets;
52163 	u32 stat_EtherStatsPktsRx256Octetsto511Octets;
52164 	u32 stat_EtherStatsPktsRx512Octetsto1023Octets;
52165 	u32 stat_EtherStatsPktsRx1024Octetsto1522Octets;
52166 	u32 stat_EtherStatsPktsRx1523Octetsto9022Octets;
52167 	u32 stat_EtherStatsPktsTx64Octets;
52168 	u32 stat_EtherStatsPktsTx65Octetsto127Octets;
52169 	u32 stat_EtherStatsPktsTx128Octetsto255Octets;
52170 	u32 stat_EtherStatsPktsTx256Octetsto511Octets;
52171 	u32 stat_EtherStatsPktsTx512Octetsto1023Octets;
52172 	u32 stat_EtherStatsPktsTx1024Octetsto1522Octets;
52173 	u32 stat_EtherStatsPktsTx1523Octetsto9022Octets;
52174 	u32 stat_XonPauseFramesReceived;
52175 	u32 stat_XoffPauseFramesReceived;
52176 	u32 stat_OutXonSent;
52177 	u32 stat_OutXoffSent;
52178 	u32 stat_FlowControlDone;
52179 	u32 stat_MacControlFramesReceived;
52180 	u32 stat_XoffStateEntered;
52181 	u32 stat_IfInFramesL2FilterDiscards;
52182 	u32 stat_IfInRuleCheckerDiscards;
52183 	u32 stat_IfInFTQDiscards;
52184 	u32 stat_IfInMBUFDiscards;
52185 	u32 stat_IfInRuleCheckerP4Hit;
52186 	u32 stat_CatchupInRuleCheckerDiscards;
52187 	u32 stat_CatchupInFTQDiscards;
52188 	u32 stat_CatchupInMBUFDiscards;
52189 	u32 stat_CatchupInRuleCheckerP4Hit;
52190 	u32 stat_GenStat00;
52191 	u32 stat_GenStat01;
52192 	u32 stat_GenStat02;
52193 	u32 stat_GenStat03;
52194 	u32 stat_GenStat04;
52195 	u32 stat_GenStat05;
52196 	u32 stat_GenStat06;
52197 	u32 stat_GenStat07;
52198 	u32 stat_GenStat08;
52199 	u32 stat_GenStat09;
52200 	u32 stat_GenStat10;
52201 	u32 stat_GenStat11;
52202 	u32 stat_GenStat12;
52203 	u32 stat_GenStat13;
52204 	u32 stat_GenStat14;
52205 	u32 stat_GenStat15;
52206 	u32 stat_FwRxDrop;
52207 };
52208 
52209 struct l2_fhdr {
52210 	u32 l2_fhdr_status;
52211 	u32 l2_fhdr_hash;
52212 	u16 l2_fhdr_vlan_tag;
52213 	u16 l2_fhdr_pkt_len;
52214 	u16 l2_fhdr_tcp_udp_xsum;
52215 	u16 l2_fhdr_ip_xsum;
52216 };
52217 
52218 struct bnx2_sw_bd {
52219 	u8 *data;
52220 	dma_addr_t mapping;
52221 };
52222 
52223 struct bnx2_sw_pg {
52224 	struct page *page;
52225 	dma_addr_t mapping;
52226 };
52227 
52228 struct bnx2_sw_tx_bd {
52229 	struct sk_buff *skb;
52230 	dma_addr_t mapping;
52231 	short unsigned int is_gso;
52232 	short unsigned int nr_frags;
52233 };
52234 
52235 struct flash_spec {
52236 	u32 strapping;
52237 	u32 config1;
52238 	u32 config2;
52239 	u32 config3;
52240 	u32 write1;
52241 	u32 flags;
52242 	u32 page_bits;
52243 	u32 page_size;
52244 	u32 addr_mask;
52245 	u32 total_size;
52246 	u8 *name;
52247 };
52248 
52249 struct bnx2_irq {
52250 	irq_handler_t handler;
52251 	unsigned int vector;
52252 	u8 requested;
52253 	char name[18];
52254 };
52255 
52256 struct bnx2_tx_ring_info {
52257 	u32 tx_prod_bseq;
52258 	u16 tx_prod;
52259 	u32 tx_bidx_addr;
52260 	u32 tx_bseq_addr;
52261 	struct bnx2_tx_bd *tx_desc_ring;
52262 	struct bnx2_sw_tx_bd *tx_buf_ring;
52263 	u16 tx_cons;
52264 	u16 hw_tx_cons;
52265 	dma_addr_t tx_desc_mapping;
52266 };
52267 
52268 struct bnx2_rx_ring_info {
52269 	u32 rx_prod_bseq;
52270 	u16 rx_prod;
52271 	u16 rx_cons;
52272 	u32 rx_bidx_addr;
52273 	u32 rx_bseq_addr;
52274 	u32 rx_pg_bidx_addr;
52275 	u16 rx_pg_prod;
52276 	u16 rx_pg_cons;
52277 	struct bnx2_sw_bd *rx_buf_ring;
52278 	struct bnx2_rx_bd *rx_desc_ring[8];
52279 	struct bnx2_sw_pg *rx_pg_ring;
52280 	struct bnx2_rx_bd *rx_pg_desc_ring[32];
52281 	dma_addr_t rx_desc_mapping[8];
52282 	dma_addr_t rx_pg_desc_mapping[32];
52283 };
52284 
52285 struct bnx2;
52286 
52287 struct bnx2_napi {
52288 	struct napi_struct napi;
52289 	struct bnx2 *bp;
52290 	union {
52291 		struct status_block *msi;
52292 		struct status_block_msix *msix;
52293 	} status_blk;
52294 	u16 *hw_tx_cons_ptr;
52295 	u16 *hw_rx_cons_ptr;
52296 	u32 last_status_idx;
52297 	u32 int_num;
52298 	struct bnx2_rx_ring_info rx_ring;
52299 	struct bnx2_tx_ring_info tx_ring;
52300 	long: 64;
52301 	long: 64;
52302 	long: 64;
52303 	long: 64;
52304 	long: 64;
52305 	long: 64;
52306 };
52307 
52308 struct bnx2 {
52309 	void *regview;
52310 	struct net_device *dev;
52311 	struct pci_dev *pdev;
52312 	atomic_t intr_sem;
52313 	u32 flags;
52314 	long: 64;
52315 	long: 64;
52316 	long: 64;
52317 	long: 64;
52318 	struct bnx2_napi bnx2_napi[9];
52319 	u32 rx_buf_use_size;
52320 	u32 rx_buf_size;
52321 	u32 rx_copy_thresh;
52322 	u32 rx_jumbo_thresh;
52323 	u32 rx_max_ring_idx;
52324 	u32 rx_max_pg_ring_idx;
52325 	int tx_ring_size;
52326 	u32 tx_wake_thresh;
52327 	unsigned int current_interval;
52328 	struct timer_list timer;
52329 	struct work_struct reset_task;
52330 	spinlock_t phy_lock;
52331 	spinlock_t indirect_lock;
52332 	u32 phy_flags;
52333 	u32 mii_bmcr;
52334 	u32 mii_bmsr;
52335 	u32 mii_bmsr1;
52336 	u32 mii_adv;
52337 	u32 mii_lpa;
52338 	u32 mii_up1;
52339 	u32 chip_id;
52340 	u32 phy_addr;
52341 	u32 phy_id;
52342 	u16 bus_speed_mhz;
52343 	u8 wol;
52344 	u8 pad;
52345 	u16 fw_wr_seq;
52346 	u16 fw_drv_pulse_wr_seq;
52347 	u32 fw_last_msg;
52348 	int rx_max_ring;
52349 	int rx_ring_size;
52350 	int rx_max_pg_ring;
52351 	int rx_pg_ring_size;
52352 	u16 tx_quick_cons_trip;
52353 	u16 tx_quick_cons_trip_int;
52354 	u16 rx_quick_cons_trip;
52355 	u16 rx_quick_cons_trip_int;
52356 	u16 comp_prod_trip;
52357 	u16 comp_prod_trip_int;
52358 	u16 tx_ticks;
52359 	u16 tx_ticks_int;
52360 	u16 com_ticks;
52361 	u16 com_ticks_int;
52362 	u16 cmd_ticks;
52363 	u16 cmd_ticks_int;
52364 	u16 rx_ticks;
52365 	u16 rx_ticks_int;
52366 	u32 stats_ticks;
52367 	dma_addr_t status_blk_mapping;
52368 	void *status_blk;
52369 	struct statistics_block *stats_blk;
52370 	struct statistics_block *temp_stats_blk;
52371 	dma_addr_t stats_blk_mapping;
52372 	int ctx_pages;
52373 	void *ctx_blk[4];
52374 	dma_addr_t ctx_blk_mapping[4];
52375 	u32 hc_cmd;
52376 	u32 rx_mode;
52377 	u16 req_line_speed;
52378 	u8 req_duplex;
52379 	u8 phy_port;
52380 	u8 link_up;
52381 	u16 line_speed;
52382 	u8 duplex;
52383 	u8 flow_ctrl;
52384 	u32 advertising;
52385 	u8 req_flow_ctrl;
52386 	u8 autoneg;
52387 	u8 loopback;
52388 	u8 serdes_an_pending;
52389 	u8 mac_addr[8];
52390 	u32 shmem_base;
52391 	char fw_version[32];
52392 	int pm_cap;
52393 	int pcix_cap;
52394 	const struct flash_spec *flash_info;
52395 	u32 flash_size;
52396 	int status_stats_size;
52397 	struct bnx2_irq irq_tbl[9];
52398 	int irq_nvecs;
52399 	u8 func;
52400 	u8 num_tx_rings;
52401 	u8 num_rx_rings;
52402 	int num_req_tx_rings;
52403 	int num_req_rx_rings;
52404 	u32 leds_save;
52405 	u32 idle_chk_status_idx;
52406 	const struct firmware *mips_firmware;
52407 	const struct firmware *rv2p_firmware;
52408 	long: 64;
52409 };
52410 
52411 struct cpu_reg {
52412 	u32 mode;
52413 	u32 mode_value_halt;
52414 	u32 mode_value_sstep;
52415 	u32 state;
52416 	u32 state_value_clear;
52417 	u32 gpr0;
52418 	u32 evmask;
52419 	u32 pc;
52420 	u32 inst;
52421 	u32 bp;
52422 	u32 spad_base;
52423 	u32 mips_view_base;
52424 };
52425 
52426 struct bnx2_fw_file_section {
52427 	__be32 addr;
52428 	__be32 len;
52429 	__be32 offset;
52430 };
52431 
52432 struct bnx2_mips_fw_file_entry {
52433 	__be32 start_addr;
52434 	struct bnx2_fw_file_section text;
52435 	struct bnx2_fw_file_section data;
52436 	struct bnx2_fw_file_section rodata;
52437 };
52438 
52439 struct bnx2_rv2p_fw_file_entry {
52440 	struct bnx2_fw_file_section rv2p;
52441 	__be32 fixup[8];
52442 };
52443 
52444 struct bnx2_mips_fw_file {
52445 	struct bnx2_mips_fw_file_entry com;
52446 	struct bnx2_mips_fw_file_entry cp;
52447 	struct bnx2_mips_fw_file_entry rxp;
52448 	struct bnx2_mips_fw_file_entry tpat;
52449 	struct bnx2_mips_fw_file_entry txp;
52450 };
52451 
52452 struct bnx2_rv2p_fw_file {
52453 	struct bnx2_rv2p_fw_file_entry proc1;
52454 	struct bnx2_rv2p_fw_file_entry proc2;
52455 };
52456 
52457 enum {
52458 	BCM5706 = 0,
52459 	NC370T = 1,
52460 	NC370I = 2,
52461 	BCM5706S = 3,
52462 	NC370F = 4,
52463 	BCM5708 = 5,
52464 	BCM5708S = 6,
52465 	BCM5709 = 7,
52466 	BCM5709S = 8,
52467 	BCM5716 = 9,
52468 	BCM5716S = 10,
52469 };
52470 
52471 struct ftq_reg {
52472 	char *name;
52473 	u32 off;
52474 };
52475 
52476 struct mem_entry {
52477 	u32 offset;
52478 	u32 len;
52479 };
52480 
52481 struct system_device_crosststamp {
52482 	ktime_t device;
52483 	ktime_t sys_realtime;
52484 	ktime_t sys_monoraw;
52485 };
52486 
52487 struct cyclecounter {
52488 	u64 (*read)(const struct cyclecounter *);
52489 	u64 mask;
52490 	u32 mult;
52491 	u32 shift;
52492 };
52493 
52494 struct timecounter {
52495 	const struct cyclecounter *cc;
52496 	u64 cycle_last;
52497 	u64 nsec;
52498 	u64 mask;
52499 	u64 frac;
52500 };
52501 
52502 struct hwtstamp_config {
52503 	int flags;
52504 	int tx_type;
52505 	int rx_filter;
52506 };
52507 
52508 struct ptp_clock_time {
52509 	__s64 sec;
52510 	__u32 nsec;
52511 	__u32 reserved;
52512 };
52513 
52514 struct ptp_extts_request {
52515 	unsigned int index;
52516 	unsigned int flags;
52517 	unsigned int rsv[2];
52518 };
52519 
52520 struct ptp_perout_request {
52521 	union {
52522 		struct ptp_clock_time start;
52523 		struct ptp_clock_time phase;
52524 	};
52525 	struct ptp_clock_time period;
52526 	unsigned int index;
52527 	unsigned int flags;
52528 	union {
52529 		struct ptp_clock_time on;
52530 		unsigned int rsv[4];
52531 	};
52532 };
52533 
52534 enum ptp_pin_function {
52535 	PTP_PF_NONE = 0,
52536 	PTP_PF_EXTTS = 1,
52537 	PTP_PF_PEROUT = 2,
52538 	PTP_PF_PHYSYNC = 3,
52539 };
52540 
52541 struct ptp_pin_desc {
52542 	char name[64];
52543 	unsigned int index;
52544 	unsigned int func;
52545 	unsigned int chan;
52546 	unsigned int rsv[5];
52547 };
52548 
52549 struct ptp_clock_request {
52550 	enum {
52551 		PTP_CLK_REQ_EXTTS = 0,
52552 		PTP_CLK_REQ_PEROUT = 1,
52553 		PTP_CLK_REQ_PPS = 2,
52554 	} type;
52555 	union {
52556 		struct ptp_extts_request extts;
52557 		struct ptp_perout_request perout;
52558 	};
52559 };
52560 
52561 struct ptp_system_timestamp {
52562 	struct timespec64 pre_ts;
52563 	struct timespec64 post_ts;
52564 };
52565 
52566 struct ptp_clock_info {
52567 	struct module *owner;
52568 	char name[32];
52569 	s32 max_adj;
52570 	int n_alarm;
52571 	int n_ext_ts;
52572 	int n_per_out;
52573 	int n_pins;
52574 	int pps;
52575 	struct ptp_pin_desc *pin_config;
52576 	int (*adjfine)(struct ptp_clock_info *, long int);
52577 	int (*adjphase)(struct ptp_clock_info *, s32);
52578 	int (*adjtime)(struct ptp_clock_info *, s64);
52579 	int (*gettime64)(struct ptp_clock_info *, struct timespec64 *);
52580 	int (*gettimex64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *);
52581 	int (*getcrosststamp)(struct ptp_clock_info *, struct system_device_crosststamp *);
52582 	int (*settime64)(struct ptp_clock_info *, const struct timespec64 *);
52583 	int (*getcycles64)(struct ptp_clock_info *, struct timespec64 *);
52584 	int (*getcyclesx64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *);
52585 	int (*getcrosscycles)(struct ptp_clock_info *, struct system_device_crosststamp *);
52586 	int (*enable)(struct ptp_clock_info *, struct ptp_clock_request *, int);
52587 	int (*verify)(struct ptp_clock_info *, unsigned int, enum ptp_pin_function, unsigned int);
52588 	long int (*do_aux_work)(struct ptp_clock_info *);
52589 };
52590 
52591 struct pm_qos_request {
52592 	struct plist_node node;
52593 	struct pm_qos_constraints *qos;
52594 };
52595 
52596 enum e1000_mac_type {
52597 	e1000_82571 = 0,
52598 	e1000_82572 = 1,
52599 	e1000_82573 = 2,
52600 	e1000_82574 = 3,
52601 	e1000_82583 = 4,
52602 	e1000_80003es2lan = 5,
52603 	e1000_ich8lan = 6,
52604 	e1000_ich9lan = 7,
52605 	e1000_ich10lan = 8,
52606 	e1000_pchlan = 9,
52607 	e1000_pch2lan = 10,
52608 	e1000_pch_lpt = 11,
52609 	e1000_pch_spt = 12,
52610 	e1000_pch_cnp = 13,
52611 	e1000_pch_tgp = 14,
52612 	e1000_pch_adp = 15,
52613 	e1000_pch_mtp = 16,
52614 	e1000_pch_lnp = 17,
52615 	e1000_pch_ptp = 18,
52616 };
52617 
52618 enum e1000_media_type {
52619 	e1000_media_type_unknown = 0,
52620 	e1000_media_type_copper = 1,
52621 	e1000_media_type_fiber = 2,
52622 	e1000_media_type_internal_serdes = 3,
52623 	e1000_num_media_types = 4,
52624 };
52625 
52626 enum e1000_nvm_type {
52627 	e1000_nvm_unknown = 0,
52628 	e1000_nvm_none = 1,
52629 	e1000_nvm_eeprom_spi = 2,
52630 	e1000_nvm_flash_hw = 3,
52631 	e1000_nvm_flash_sw = 4,
52632 };
52633 
52634 enum e1000_nvm_override {
52635 	e1000_nvm_override_none = 0,
52636 	e1000_nvm_override_spi_small = 1,
52637 	e1000_nvm_override_spi_large = 2,
52638 };
52639 
52640 enum e1000_phy_type {
52641 	e1000_phy_unknown = 0,
52642 	e1000_phy_none = 1,
52643 	e1000_phy_m88 = 2,
52644 	e1000_phy_igp = 3,
52645 	e1000_phy_igp_2 = 4,
52646 	e1000_phy_gg82563 = 5,
52647 	e1000_phy_igp_3 = 6,
52648 	e1000_phy_ife = 7,
52649 	e1000_phy_bm = 8,
52650 	e1000_phy_82578 = 9,
52651 	e1000_phy_82577 = 10,
52652 	e1000_phy_82579 = 11,
52653 	e1000_phy_i217 = 12,
52654 };
52655 
52656 enum e1000_bus_width {
52657 	e1000_bus_width_unknown = 0,
52658 	e1000_bus_width_pcie_x1 = 1,
52659 	e1000_bus_width_pcie_x2 = 2,
52660 	e1000_bus_width_pcie_x4 = 4,
52661 	e1000_bus_width_pcie_x8 = 8,
52662 	e1000_bus_width_32 = 9,
52663 	e1000_bus_width_64 = 10,
52664 	e1000_bus_width_reserved = 11,
52665 };
52666 
52667 enum e1000_1000t_rx_status {
52668 	e1000_1000t_rx_status_not_ok = 0,
52669 	e1000_1000t_rx_status_ok = 1,
52670 	e1000_1000t_rx_status_undefined = 255,
52671 };
52672 
52673 enum e1000_rev_polarity {
52674 	e1000_rev_polarity_normal = 0,
52675 	e1000_rev_polarity_reversed = 1,
52676 	e1000_rev_polarity_undefined = 255,
52677 };
52678 
52679 enum e1000_fc_mode {
52680 	e1000_fc_none = 0,
52681 	e1000_fc_rx_pause = 1,
52682 	e1000_fc_tx_pause = 2,
52683 	e1000_fc_full = 3,
52684 	e1000_fc_default = 255,
52685 };
52686 
52687 enum e1000_ms_type {
52688 	e1000_ms_hw_default = 0,
52689 	e1000_ms_force_master = 1,
52690 	e1000_ms_force_slave = 2,
52691 	e1000_ms_auto = 3,
52692 };
52693 
52694 enum e1000_smart_speed {
52695 	e1000_smart_speed_default = 0,
52696 	e1000_smart_speed_on = 1,
52697 	e1000_smart_speed_off = 2,
52698 };
52699 
52700 enum e1000_serdes_link_state {
52701 	e1000_serdes_link_down = 0,
52702 	e1000_serdes_link_autoneg_progress = 1,
52703 	e1000_serdes_link_autoneg_complete = 2,
52704 	e1000_serdes_link_forced_up = 3,
52705 };
52706 
52707 struct e1000_hw_stats {
52708 	u64 crcerrs;
52709 	u64 algnerrc;
52710 	u64 symerrs;
52711 	u64 rxerrc;
52712 	u64 mpc;
52713 	u64 scc;
52714 	u64 ecol;
52715 	u64 mcc;
52716 	u64 latecol;
52717 	u64 colc;
52718 	u64 dc;
52719 	u64 tncrs;
52720 	u64 sec;
52721 	u64 cexterr;
52722 	u64 rlec;
52723 	u64 xonrxc;
52724 	u64 xontxc;
52725 	u64 xoffrxc;
52726 	u64 xofftxc;
52727 	u64 fcruc;
52728 	u64 prc64;
52729 	u64 prc127;
52730 	u64 prc255;
52731 	u64 prc511;
52732 	u64 prc1023;
52733 	u64 prc1522;
52734 	u64 gprc;
52735 	u64 bprc;
52736 	u64 mprc;
52737 	u64 gptc;
52738 	u64 gorc;
52739 	u64 gotc;
52740 	u64 rnbc;
52741 	u64 ruc;
52742 	u64 rfc;
52743 	u64 roc;
52744 	u64 rjc;
52745 	u64 mgprc;
52746 	u64 mgpdc;
52747 	u64 mgptc;
52748 	u64 tor;
52749 	u64 tot;
52750 	u64 tpr;
52751 	u64 tpt;
52752 	u64 ptc64;
52753 	u64 ptc127;
52754 	u64 ptc255;
52755 	u64 ptc511;
52756 	u64 ptc1023;
52757 	u64 ptc1522;
52758 	u64 mptc;
52759 	u64 bptc;
52760 	u64 tsctc;
52761 	u64 tsctfc;
52762 	u64 iac;
52763 	u64 icrxptc;
52764 	u64 icrxatc;
52765 	u64 ictxptc;
52766 	u64 ictxatc;
52767 	u64 ictxqec;
52768 	u64 ictxqmtc;
52769 	u64 icrxdmtc;
52770 	u64 icrxoc;
52771 };
52772 
52773 struct e1000_phy_stats {
52774 	u32 idle_errors;
52775 	u32 receive_errors;
52776 };
52777 
52778 struct e1000_host_mng_dhcp_cookie {
52779 	u32 signature;
52780 	u8 status;
52781 	u8 reserved0;
52782 	u16 vlan_id;
52783 	u32 reserved1;
52784 	u16 reserved2;
52785 	u8 reserved3;
52786 	u8 checksum;
52787 };
52788 
52789 struct e1000_hw;
52790 
52791 struct e1000_mac_operations {
52792 	s32 (*id_led_init)(struct e1000_hw *);
52793 	s32 (*blink_led)(struct e1000_hw *);
52794 	bool (*check_mng_mode)(struct e1000_hw *);
52795 	s32 (*check_for_link)(struct e1000_hw *);
52796 	s32 (*cleanup_led)(struct e1000_hw *);
52797 	void (*clear_hw_cntrs)(struct e1000_hw *);
52798 	void (*clear_vfta)(struct e1000_hw *);
52799 	s32 (*get_bus_info)(struct e1000_hw *);
52800 	void (*set_lan_id)(struct e1000_hw *);
52801 	s32 (*get_link_up_info)(struct e1000_hw *, u16 *, u16 *);
52802 	s32 (*led_on)(struct e1000_hw *);
52803 	s32 (*led_off)(struct e1000_hw *);
52804 	void (*update_mc_addr_list)(struct e1000_hw *, u8 *, u32);
52805 	s32 (*reset_hw)(struct e1000_hw *);
52806 	s32 (*init_hw)(struct e1000_hw *);
52807 	s32 (*setup_link)(struct e1000_hw *);
52808 	s32 (*setup_physical_interface)(struct e1000_hw *);
52809 	s32 (*setup_led)(struct e1000_hw *);
52810 	void (*write_vfta)(struct e1000_hw *, u32, u32);
52811 	void (*config_collision_dist)(struct e1000_hw *);
52812 	int (*rar_set)(struct e1000_hw *, u8 *, u32);
52813 	s32 (*read_mac_addr)(struct e1000_hw *);
52814 	u32 (*rar_get_count)(struct e1000_hw *);
52815 };
52816 
52817 struct e1000_mac_info {
52818 	struct e1000_mac_operations ops;
52819 	u8 addr[6];
52820 	u8 perm_addr[6];
52821 	enum e1000_mac_type type;
52822 	u32 collision_delta;
52823 	u32 ledctl_default;
52824 	u32 ledctl_mode1;
52825 	u32 ledctl_mode2;
52826 	u32 mc_filter_type;
52827 	u32 tx_packet_delta;
52828 	u32 txcw;
52829 	u16 current_ifs_val;
52830 	u16 ifs_max_val;
52831 	u16 ifs_min_val;
52832 	u16 ifs_ratio;
52833 	u16 ifs_step_size;
52834 	u16 mta_reg_count;
52835 	u32 mta_shadow[128];
52836 	u16 rar_entry_count;
52837 	u8 forced_speed_duplex;
52838 	bool adaptive_ifs;
52839 	bool has_fwsm;
52840 	bool arc_subsystem_valid;
52841 	bool autoneg;
52842 	bool autoneg_failed;
52843 	bool get_link_status;
52844 	bool in_ifs_mode;
52845 	bool serdes_has_link;
52846 	bool tx_pkt_filtering;
52847 	enum e1000_serdes_link_state serdes_link_state;
52848 };
52849 
52850 struct e1000_fc_info {
52851 	u32 high_water;
52852 	u32 low_water;
52853 	u16 pause_time;
52854 	u16 refresh_time;
52855 	bool send_xon;
52856 	bool strict_ieee;
52857 	enum e1000_fc_mode current_mode;
52858 	enum e1000_fc_mode requested_mode;
52859 };
52860 
52861 struct e1000_phy_operations {
52862 	s32 (*acquire)(struct e1000_hw *);
52863 	s32 (*cfg_on_link_up)(struct e1000_hw *);
52864 	s32 (*check_polarity)(struct e1000_hw *);
52865 	s32 (*check_reset_block)(struct e1000_hw *);
52866 	s32 (*commit)(struct e1000_hw *);
52867 	s32 (*force_speed_duplex)(struct e1000_hw *);
52868 	s32 (*get_cfg_done)(struct e1000_hw *);
52869 	s32 (*get_cable_length)(struct e1000_hw *);
52870 	s32 (*get_info)(struct e1000_hw *);
52871 	s32 (*set_page)(struct e1000_hw *, u16);
52872 	s32 (*read_reg)(struct e1000_hw *, u32, u16 *);
52873 	s32 (*read_reg_locked)(struct e1000_hw *, u32, u16 *);
52874 	s32 (*read_reg_page)(struct e1000_hw *, u32, u16 *);
52875 	void (*release)(struct e1000_hw *);
52876 	s32 (*reset)(struct e1000_hw *);
52877 	s32 (*set_d0_lplu_state)(struct e1000_hw *, bool);
52878 	s32 (*set_d3_lplu_state)(struct e1000_hw *, bool);
52879 	s32 (*write_reg)(struct e1000_hw *, u32, u16);
52880 	s32 (*write_reg_locked)(struct e1000_hw *, u32, u16);
52881 	s32 (*write_reg_page)(struct e1000_hw *, u32, u16);
52882 	void (*power_up)(struct e1000_hw *);
52883 	void (*power_down)(struct e1000_hw *);
52884 };
52885 
52886 struct e1000_phy_info {
52887 	struct e1000_phy_operations ops;
52888 	enum e1000_phy_type type;
52889 	enum e1000_1000t_rx_status local_rx;
52890 	enum e1000_1000t_rx_status remote_rx;
52891 	enum e1000_ms_type ms_type;
52892 	enum e1000_ms_type original_ms_type;
52893 	enum e1000_rev_polarity cable_polarity;
52894 	enum e1000_smart_speed smart_speed;
52895 	u32 addr;
52896 	u32 id;
52897 	u32 reset_delay_us;
52898 	u32 revision;
52899 	enum e1000_media_type media_type;
52900 	u16 autoneg_advertised;
52901 	u16 autoneg_mask;
52902 	u16 cable_length;
52903 	u16 max_cable_length;
52904 	u16 min_cable_length;
52905 	u8 mdix;
52906 	bool disable_polarity_correction;
52907 	bool is_mdix;
52908 	bool polarity_correction;
52909 	bool speed_downgraded;
52910 	bool autoneg_wait_to_complete;
52911 };
52912 
52913 struct e1000_nvm_operations {
52914 	s32 (*acquire)(struct e1000_hw *);
52915 	s32 (*read)(struct e1000_hw *, u16, u16, u16 *);
52916 	void (*release)(struct e1000_hw *);
52917 	void (*reload)(struct e1000_hw *);
52918 	s32 (*update)(struct e1000_hw *);
52919 	s32 (*valid_led_default)(struct e1000_hw *, u16 *);
52920 	s32 (*validate)(struct e1000_hw *);
52921 	s32 (*write)(struct e1000_hw *, u16, u16, u16 *);
52922 };
52923 
52924 struct e1000_nvm_info {
52925 	struct e1000_nvm_operations ops;
52926 	enum e1000_nvm_type type;
52927 	enum e1000_nvm_override override;
52928 	u32 flash_bank_size;
52929 	u32 flash_base_addr;
52930 	u16 word_size;
52931 	u16 delay_usec;
52932 	u16 address_bits;
52933 	u16 opcode_bits;
52934 	u16 page_size;
52935 };
52936 
52937 struct e1000_bus_info {
52938 	enum e1000_bus_width width;
52939 	u16 func;
52940 };
52941 
52942 struct e1000_dev_spec_82571 {
52943 	bool laa_is_present;
52944 	u32 smb_counter;
52945 };
52946 
52947 struct e1000_dev_spec_80003es2lan {
52948 	bool mdic_wa_enable;
52949 };
52950 
52951 struct e1000_shadow_ram {
52952 	u16 value;
52953 	bool modified;
52954 };
52955 
52956 enum e1000_ulp_state {
52957 	e1000_ulp_state_unknown = 0,
52958 	e1000_ulp_state_off = 1,
52959 	e1000_ulp_state_on = 2,
52960 };
52961 
52962 struct e1000_dev_spec_ich8lan {
52963 	bool kmrn_lock_loss_workaround_enabled;
52964 	struct e1000_shadow_ram shadow_ram[2048];
52965 	bool nvm_k1_enabled;
52966 	bool eee_disable;
52967 	u16 eee_lp_ability;
52968 	enum e1000_ulp_state ulp_state;
52969 };
52970 
52971 struct e1000_adapter;
52972 
52973 struct e1000_hw {
52974 	struct e1000_adapter *adapter;
52975 	void *hw_addr;
52976 	void *flash_address;
52977 	struct e1000_mac_info mac;
52978 	struct e1000_fc_info fc;
52979 	struct e1000_phy_info phy;
52980 	struct e1000_nvm_info nvm;
52981 	struct e1000_bus_info bus;
52982 	struct e1000_host_mng_dhcp_cookie mng_cookie;
52983 	union {
52984 		struct e1000_dev_spec_82571 e82571;
52985 		struct e1000_dev_spec_80003es2lan e80003es2lan;
52986 		struct e1000_dev_spec_ich8lan ich8lan;
52987 	} dev_spec;
52988 };
52989 
52990 struct e1000_phy_regs {
52991 	u16 bmcr;
52992 	u16 bmsr;
52993 	u16 advertise;
52994 	u16 lpa;
52995 	u16 expansion;
52996 	u16 ctrl1000;
52997 	u16 stat1000;
52998 	u16 estatus;
52999 };
53000 
53001 struct e1000_buffer;
53002 
53003 struct e1000_ring {
53004 	struct e1000_adapter *adapter;
53005 	void *desc;
53006 	dma_addr_t dma;
53007 	unsigned int size;
53008 	unsigned int count;
53009 	u16 next_to_use;
53010 	u16 next_to_clean;
53011 	void *head;
53012 	void *tail;
53013 	struct e1000_buffer *buffer_info;
53014 	char name[21];
53015 	u32 ims_val;
53016 	u32 itr_val;
53017 	void *itr_register;
53018 	int set_itr;
53019 	struct sk_buff *rx_skb_top;
53020 };
53021 
53022 struct ptp_clock;
53023 
53024 struct e1000_info;
53025 
53026 struct e1000_adapter {
53027 	struct timer_list watchdog_timer;
53028 	struct timer_list phy_info_timer;
53029 	struct timer_list blink_timer;
53030 	struct work_struct reset_task;
53031 	struct work_struct watchdog_task;
53032 	const struct e1000_info *ei;
53033 	long unsigned int active_vlans[64];
53034 	u32 bd_number;
53035 	u32 rx_buffer_len;
53036 	u16 mng_vlan_id;
53037 	u16 link_speed;
53038 	u16 link_duplex;
53039 	u16 eeprom_vers;
53040 	long unsigned int state;
53041 	u32 itr;
53042 	u32 itr_setting;
53043 	u16 tx_itr;
53044 	u16 rx_itr;
53045 	long: 32;
53046 	long: 64;
53047 	long: 64;
53048 	long: 64;
53049 	struct e1000_ring *tx_ring;
53050 	u32 tx_fifo_limit;
53051 	struct napi_struct napi;
53052 	unsigned int uncorr_errors;
53053 	unsigned int corr_errors;
53054 	unsigned int restart_queue;
53055 	u32 txd_cmd;
53056 	bool detect_tx_hung;
53057 	bool tx_hang_recheck;
53058 	u8 tx_timeout_factor;
53059 	u32 tx_int_delay;
53060 	u32 tx_abs_int_delay;
53061 	unsigned int total_tx_bytes;
53062 	unsigned int total_tx_packets;
53063 	unsigned int total_rx_bytes;
53064 	unsigned int total_rx_packets;
53065 	u64 tpt_old;
53066 	u64 colc_old;
53067 	u32 gotc;
53068 	u64 gotc_old;
53069 	u32 tx_timeout_count;
53070 	u32 tx_fifo_head;
53071 	u32 tx_head_addr;
53072 	u32 tx_fifo_size;
53073 	u32 tx_dma_failed;
53074 	u32 tx_hwtstamp_timeouts;
53075 	u32 tx_hwtstamp_skipped;
53076 	long: 32;
53077 	long: 64;
53078 	long: 64;
53079 	long: 64;
53080 	long: 64;
53081 	long: 64;
53082 	long: 64;
53083 	bool (*clean_rx)(struct e1000_ring *, int *, int);
53084 	void (*alloc_rx_buf)(struct e1000_ring *, int, gfp_t);
53085 	struct e1000_ring *rx_ring;
53086 	u32 rx_int_delay;
53087 	u32 rx_abs_int_delay;
53088 	u64 hw_csum_err;
53089 	u64 hw_csum_good;
53090 	u64 rx_hdr_split;
53091 	u32 gorc;
53092 	u64 gorc_old;
53093 	u32 alloc_rx_buff_failed;
53094 	u32 rx_dma_failed;
53095 	u32 rx_hwtstamp_cleared;
53096 	unsigned int rx_ps_pages;
53097 	u16 rx_ps_bsize0;
53098 	u32 max_frame_size;
53099 	u32 min_frame_size;
53100 	struct net_device *netdev;
53101 	struct pci_dev *pdev;
53102 	struct e1000_hw hw;
53103 	spinlock_t stats64_lock;
53104 	struct e1000_hw_stats stats;
53105 	struct e1000_phy_info phy_info;
53106 	struct e1000_phy_stats phy_stats;
53107 	struct e1000_phy_regs phy_regs;
53108 	struct e1000_ring test_tx_ring;
53109 	struct e1000_ring test_rx_ring;
53110 	u32 test_icr;
53111 	u32 msg_enable;
53112 	unsigned int num_vectors;
53113 	struct msix_entry *msix_entries;
53114 	int int_mode;
53115 	u32 eiac_mask;
53116 	u32 eeprom_wol;
53117 	u32 wol;
53118 	u32 pba;
53119 	u32 max_hw_frame_size;
53120 	bool fc_autoneg;
53121 	unsigned int flags;
53122 	unsigned int flags2;
53123 	struct work_struct downshift_task;
53124 	struct work_struct update_phy_task;
53125 	struct work_struct print_hang_task;
53126 	int phy_hang_count;
53127 	u16 tx_ring_count;
53128 	u16 rx_ring_count;
53129 	struct hwtstamp_config hwtstamp_config;
53130 	struct delayed_work systim_overflow_work;
53131 	struct sk_buff *tx_hwtstamp_skb;
53132 	long unsigned int tx_hwtstamp_start;
53133 	struct work_struct tx_hwtstamp_work;
53134 	spinlock_t systim_lock;
53135 	struct cyclecounter cc;
53136 	struct timecounter tc;
53137 	struct ptp_clock *ptp_clock;
53138 	struct ptp_clock_info ptp_clock_info;
53139 	struct pm_qos_request pm_qos_req;
53140 	long int ptp_delta;
53141 	u16 eee_advert;
53142 	long: 48;
53143 	long: 64;
53144 	long: 64;
53145 	long: 64;
53146 	long: 64;
53147 	long: 64;
53148 };
53149 
53150 struct e1000_ps_page {
53151 	struct page *page;
53152 	u64 dma;
53153 };
53154 
53155 struct e1000_buffer {
53156 	dma_addr_t dma;
53157 	struct sk_buff *skb;
53158 	union {
53159 		struct {
53160 			long unsigned int time_stamp;
53161 			u16 length;
53162 			u16 next_to_watch;
53163 			unsigned int segs;
53164 			unsigned int bytecount;
53165 			u16 mapped_as_page;
53166 		};
53167 		struct {
53168 			struct e1000_ps_page *ps_pages;
53169 			struct page *page;
53170 		};
53171 	};
53172 };
53173 
53174 struct e1000_info {
53175 	enum e1000_mac_type mac;
53176 	unsigned int flags;
53177 	unsigned int flags2;
53178 	u32 pba;
53179 	u32 max_hw_frame_size;
53180 	s32 (*get_variants)(struct e1000_adapter *);
53181 	const struct e1000_mac_operations *mac_ops;
53182 	const struct e1000_phy_operations *phy_ops;
53183 	const struct e1000_nvm_operations *nvm_ops;
53184 };
53185 
53186 enum e1000_state_t {
53187 	__E1000_TESTING = 0,
53188 	__E1000_RESETTING = 1,
53189 	__E1000_ACCESS_SHARED_RESOURCE = 2,
53190 	__E1000_DOWN = 3,
53191 };
53192 
53193 struct ich8_hsfsts {
53194 	u16 flcdone: 1;
53195 	u16 flcerr: 1;
53196 	u16 dael: 1;
53197 	u16 berasesz: 2;
53198 	u16 flcinprog: 1;
53199 	u16 reserved1: 2;
53200 	u16 reserved2: 6;
53201 	u16 fldesvalid: 1;
53202 	u16 flockdn: 1;
53203 };
53204 
53205 union ich8_hws_flash_status {
53206 	struct ich8_hsfsts hsf_status;
53207 	u16 regval;
53208 };
53209 
53210 struct ich8_hsflctl {
53211 	u16 flcgo: 1;
53212 	u16 flcycle: 2;
53213 	u16 reserved: 5;
53214 	u16 fldbcount: 2;
53215 	u16 flockdn: 6;
53216 };
53217 
53218 union ich8_hws_flash_ctrl {
53219 	struct ich8_hsflctl hsf_ctrl;
53220 	u16 regval;
53221 };
53222 
53223 struct ich8_pr {
53224 	u32 base: 13;
53225 	u32 reserved1: 2;
53226 	u32 rpe: 1;
53227 	u32 limit: 13;
53228 	u32 reserved2: 2;
53229 	u32 wpe: 1;
53230 };
53231 
53232 union ich8_flash_protected_range {
53233 	struct ich8_pr range;
53234 	u32 regval;
53235 };
53236 
53237 struct i2c_client {
53238 	short unsigned int flags;
53239 	short unsigned int addr;
53240 	char name[20];
53241 	struct i2c_adapter *adapter;
53242 	struct device dev;
53243 	int init_irq;
53244 	int irq;
53245 	struct list_head detected;
53246 	void *devres_group_id;
53247 };
53248 
53249 enum e1000_mac_type___2 {
53250 	e1000_undefined = 0,
53251 	e1000_82575 = 1,
53252 	e1000_82576 = 2,
53253 	e1000_82580 = 3,
53254 	e1000_i350 = 4,
53255 	e1000_i354 = 5,
53256 	e1000_i210 = 6,
53257 	e1000_i211 = 7,
53258 	e1000_num_macs = 8,
53259 };
53260 
53261 enum e1000_nvm_type___2 {
53262 	e1000_nvm_unknown___2 = 0,
53263 	e1000_nvm_none___2 = 1,
53264 	e1000_nvm_eeprom_spi___2 = 2,
53265 	e1000_nvm_flash_hw___2 = 3,
53266 	e1000_nvm_invm = 4,
53267 	e1000_nvm_flash_sw___2 = 5,
53268 };
53269 
53270 enum e1000_phy_type___2 {
53271 	e1000_phy_unknown___2 = 0,
53272 	e1000_phy_none___2 = 1,
53273 	e1000_phy_m88___2 = 2,
53274 	e1000_phy_igp___2 = 3,
53275 	e1000_phy_igp_2___2 = 4,
53276 	e1000_phy_gg82563___2 = 5,
53277 	e1000_phy_igp_3___2 = 6,
53278 	e1000_phy_ife___2 = 7,
53279 	e1000_phy_82580 = 8,
53280 	e1000_phy_i210 = 9,
53281 	e1000_phy_bcm54616 = 10,
53282 };
53283 
53284 enum e1000_bus_type {
53285 	e1000_bus_type_unknown = 0,
53286 	e1000_bus_type_pci = 1,
53287 	e1000_bus_type_pcix = 2,
53288 	e1000_bus_type_pci_express = 3,
53289 	e1000_bus_type_reserved = 4,
53290 };
53291 
53292 enum e1000_bus_speed {
53293 	e1000_bus_speed_unknown = 0,
53294 	e1000_bus_speed_33 = 1,
53295 	e1000_bus_speed_66 = 2,
53296 	e1000_bus_speed_100 = 3,
53297 	e1000_bus_speed_120 = 4,
53298 	e1000_bus_speed_133 = 5,
53299 	e1000_bus_speed_2500 = 6,
53300 	e1000_bus_speed_5000 = 7,
53301 	e1000_bus_speed_reserved = 8,
53302 };
53303 
53304 struct e1000_hw_stats___2 {
53305 	u64 crcerrs;
53306 	u64 algnerrc;
53307 	u64 symerrs;
53308 	u64 rxerrc;
53309 	u64 mpc;
53310 	u64 scc;
53311 	u64 ecol;
53312 	u64 mcc;
53313 	u64 latecol;
53314 	u64 colc;
53315 	u64 dc;
53316 	u64 tncrs;
53317 	u64 sec;
53318 	u64 cexterr;
53319 	u64 rlec;
53320 	u64 xonrxc;
53321 	u64 xontxc;
53322 	u64 xoffrxc;
53323 	u64 xofftxc;
53324 	u64 fcruc;
53325 	u64 prc64;
53326 	u64 prc127;
53327 	u64 prc255;
53328 	u64 prc511;
53329 	u64 prc1023;
53330 	u64 prc1522;
53331 	u64 gprc;
53332 	u64 bprc;
53333 	u64 mprc;
53334 	u64 gptc;
53335 	u64 gorc;
53336 	u64 gotc;
53337 	u64 rnbc;
53338 	u64 ruc;
53339 	u64 rfc;
53340 	u64 roc;
53341 	u64 rjc;
53342 	u64 mgprc;
53343 	u64 mgpdc;
53344 	u64 mgptc;
53345 	u64 tor;
53346 	u64 tot;
53347 	u64 tpr;
53348 	u64 tpt;
53349 	u64 ptc64;
53350 	u64 ptc127;
53351 	u64 ptc255;
53352 	u64 ptc511;
53353 	u64 ptc1023;
53354 	u64 ptc1522;
53355 	u64 mptc;
53356 	u64 bptc;
53357 	u64 tsctc;
53358 	u64 tsctfc;
53359 	u64 iac;
53360 	u64 icrxptc;
53361 	u64 icrxatc;
53362 	u64 ictxptc;
53363 	u64 ictxatc;
53364 	u64 ictxqec;
53365 	u64 ictxqmtc;
53366 	u64 icrxdmtc;
53367 	u64 icrxoc;
53368 	u64 cbtmpc;
53369 	u64 htdpmc;
53370 	u64 cbrdpc;
53371 	u64 cbrmpc;
53372 	u64 rpthc;
53373 	u64 hgptc;
53374 	u64 htcbdpc;
53375 	u64 hgorc;
53376 	u64 hgotc;
53377 	u64 lenerrs;
53378 	u64 scvpc;
53379 	u64 hrmpc;
53380 	u64 doosync;
53381 	u64 o2bgptc;
53382 	u64 o2bspc;
53383 	u64 b2ospc;
53384 	u64 b2ogprc;
53385 };
53386 
53387 struct e1000_sfp_flags {
53388 	u8 e1000_base_sx: 1;
53389 	u8 e1000_base_lx: 1;
53390 	u8 e1000_base_cx: 1;
53391 	u8 e1000_base_t: 1;
53392 	u8 e100_base_lx: 1;
53393 	u8 e100_base_fx: 1;
53394 	u8 e10_base_bx10: 1;
53395 	u8 e10_base_px: 1;
53396 };
53397 
53398 struct e1000_hw___2;
53399 
53400 struct e1000_mac_operations___2 {
53401 	s32 (*check_for_link)(struct e1000_hw___2 *);
53402 	s32 (*reset_hw)(struct e1000_hw___2 *);
53403 	s32 (*init_hw)(struct e1000_hw___2 *);
53404 	bool (*check_mng_mode)(struct e1000_hw___2 *);
53405 	s32 (*setup_physical_interface)(struct e1000_hw___2 *);
53406 	void (*rar_set)(struct e1000_hw___2 *, u8 *, u32);
53407 	s32 (*read_mac_addr)(struct e1000_hw___2 *);
53408 	s32 (*get_speed_and_duplex)(struct e1000_hw___2 *, u16 *, u16 *);
53409 	s32 (*acquire_swfw_sync)(struct e1000_hw___2 *, u16);
53410 	void (*release_swfw_sync)(struct e1000_hw___2 *, u16);
53411 	s32 (*get_thermal_sensor_data)(struct e1000_hw___2 *);
53412 	s32 (*init_thermal_sensor_thresh)(struct e1000_hw___2 *);
53413 	void (*write_vfta)(struct e1000_hw___2 *, u32, u32);
53414 };
53415 
53416 struct e1000_thermal_diode_data {
53417 	u8 location;
53418 	u8 temp;
53419 	u8 caution_thresh;
53420 	u8 max_op_thresh;
53421 };
53422 
53423 struct e1000_thermal_sensor_data {
53424 	struct e1000_thermal_diode_data sensor[3];
53425 };
53426 
53427 struct e1000_mac_info___2 {
53428 	struct e1000_mac_operations___2 ops;
53429 	u8 addr[6];
53430 	u8 perm_addr[6];
53431 	enum e1000_mac_type___2 type;
53432 	u32 ledctl_default;
53433 	u32 ledctl_mode1;
53434 	u32 ledctl_mode2;
53435 	u32 mc_filter_type;
53436 	u32 txcw;
53437 	u16 mta_reg_count;
53438 	u16 uta_reg_count;
53439 	u32 mta_shadow[128];
53440 	u16 rar_entry_count;
53441 	u8 forced_speed_duplex;
53442 	bool adaptive_ifs;
53443 	bool arc_subsystem_valid;
53444 	bool asf_firmware_present;
53445 	bool autoneg;
53446 	bool autoneg_failed;
53447 	bool disable_hw_init_bits;
53448 	bool get_link_status;
53449 	bool ifs_params_forced;
53450 	bool in_ifs_mode;
53451 	bool report_tx_early;
53452 	bool serdes_has_link;
53453 	bool tx_pkt_filtering;
53454 	struct e1000_thermal_sensor_data thermal_sensor_data;
53455 };
53456 
53457 struct e1000_fc_info___2 {
53458 	u32 high_water;
53459 	u32 low_water;
53460 	u16 pause_time;
53461 	bool send_xon;
53462 	bool strict_ieee;
53463 	enum e1000_fc_mode current_mode;
53464 	enum e1000_fc_mode requested_mode;
53465 };
53466 
53467 struct e1000_phy_operations___2 {
53468 	s32 (*acquire)(struct e1000_hw___2 *);
53469 	s32 (*check_polarity)(struct e1000_hw___2 *);
53470 	s32 (*check_reset_block)(struct e1000_hw___2 *);
53471 	s32 (*force_speed_duplex)(struct e1000_hw___2 *);
53472 	s32 (*get_cfg_done)(struct e1000_hw___2 *);
53473 	s32 (*get_cable_length)(struct e1000_hw___2 *);
53474 	s32 (*get_phy_info)(struct e1000_hw___2 *);
53475 	s32 (*read_reg)(struct e1000_hw___2 *, u32, u16 *);
53476 	void (*release)(struct e1000_hw___2 *);
53477 	s32 (*reset)(struct e1000_hw___2 *);
53478 	s32 (*set_d0_lplu_state)(struct e1000_hw___2 *, bool);
53479 	s32 (*set_d3_lplu_state)(struct e1000_hw___2 *, bool);
53480 	s32 (*write_reg)(struct e1000_hw___2 *, u32, u16);
53481 	s32 (*read_i2c_byte)(struct e1000_hw___2 *, u8, u8, u8 *);
53482 	s32 (*write_i2c_byte)(struct e1000_hw___2 *, u8, u8, u8);
53483 };
53484 
53485 struct e1000_phy_info___2 {
53486 	struct e1000_phy_operations___2 ops;
53487 	enum e1000_phy_type___2 type;
53488 	enum e1000_1000t_rx_status local_rx;
53489 	enum e1000_1000t_rx_status remote_rx;
53490 	enum e1000_ms_type ms_type;
53491 	enum e1000_ms_type original_ms_type;
53492 	enum e1000_rev_polarity cable_polarity;
53493 	enum e1000_smart_speed smart_speed;
53494 	u32 addr;
53495 	u32 id;
53496 	u32 reset_delay_us;
53497 	u32 revision;
53498 	enum e1000_media_type media_type;
53499 	u16 autoneg_advertised;
53500 	u16 autoneg_mask;
53501 	u16 cable_length;
53502 	u16 max_cable_length;
53503 	u16 min_cable_length;
53504 	u16 pair_length[4];
53505 	u8 mdix;
53506 	bool disable_polarity_correction;
53507 	bool is_mdix;
53508 	bool polarity_correction;
53509 	bool reset_disable;
53510 	bool speed_downgraded;
53511 	bool autoneg_wait_to_complete;
53512 };
53513 
53514 struct e1000_nvm_operations___2 {
53515 	s32 (*acquire)(struct e1000_hw___2 *);
53516 	s32 (*read)(struct e1000_hw___2 *, u16, u16, u16 *);
53517 	void (*release)(struct e1000_hw___2 *);
53518 	s32 (*write)(struct e1000_hw___2 *, u16, u16, u16 *);
53519 	s32 (*update)(struct e1000_hw___2 *);
53520 	s32 (*validate)(struct e1000_hw___2 *);
53521 	s32 (*valid_led_default)(struct e1000_hw___2 *, u16 *);
53522 };
53523 
53524 struct e1000_nvm_info___2 {
53525 	struct e1000_nvm_operations___2 ops;
53526 	enum e1000_nvm_type___2 type;
53527 	enum e1000_nvm_override override;
53528 	u32 flash_bank_size;
53529 	u32 flash_base_addr;
53530 	u16 word_size;
53531 	u16 delay_usec;
53532 	u16 address_bits;
53533 	u16 opcode_bits;
53534 	u16 page_size;
53535 };
53536 
53537 struct e1000_bus_info___2 {
53538 	enum e1000_bus_type type;
53539 	enum e1000_bus_speed speed;
53540 	enum e1000_bus_width width;
53541 	u32 snoop;
53542 	u16 func;
53543 	u16 pci_cmd_word;
53544 };
53545 
53546 struct e1000_mbx_operations {
53547 	s32 (*init_params)(struct e1000_hw___2 *);
53548 	s32 (*read)(struct e1000_hw___2 *, u32 *, u16, u16, bool);
53549 	s32 (*write)(struct e1000_hw___2 *, u32 *, u16, u16);
53550 	s32 (*read_posted)(struct e1000_hw___2 *, u32 *, u16, u16);
53551 	s32 (*write_posted)(struct e1000_hw___2 *, u32 *, u16, u16);
53552 	s32 (*check_for_msg)(struct e1000_hw___2 *, u16);
53553 	s32 (*check_for_ack)(struct e1000_hw___2 *, u16);
53554 	s32 (*check_for_rst)(struct e1000_hw___2 *, u16);
53555 	s32 (*unlock)(struct e1000_hw___2 *, u16);
53556 };
53557 
53558 struct e1000_mbx_stats {
53559 	u32 msgs_tx;
53560 	u32 msgs_rx;
53561 	u32 acks;
53562 	u32 reqs;
53563 	u32 rsts;
53564 };
53565 
53566 struct e1000_mbx_info {
53567 	struct e1000_mbx_operations ops;
53568 	struct e1000_mbx_stats stats;
53569 	u32 timeout;
53570 	u32 usec_delay;
53571 	u16 size;
53572 };
53573 
53574 struct e1000_dev_spec_82575 {
53575 	bool sgmii_active;
53576 	bool global_device_reset;
53577 	bool eee_disable;
53578 	bool clear_semaphore_once;
53579 	struct e1000_sfp_flags eth_flags;
53580 	bool module_plugged;
53581 	u8 media_port;
53582 	bool media_changed;
53583 	bool mas_capable;
53584 };
53585 
53586 struct e1000_hw___2 {
53587 	void *back;
53588 	u8 *hw_addr;
53589 	u8 *flash_address;
53590 	long unsigned int io_base;
53591 	struct e1000_mac_info___2 mac;
53592 	struct e1000_fc_info___2 fc;
53593 	struct e1000_phy_info___2 phy;
53594 	struct e1000_nvm_info___2 nvm;
53595 	struct e1000_bus_info___2 bus;
53596 	struct e1000_mbx_info mbx;
53597 	struct e1000_host_mng_dhcp_cookie mng_cookie;
53598 	union {
53599 		struct e1000_dev_spec_82575 _82575;
53600 	} dev_spec;
53601 	u16 device_id;
53602 	u16 subsystem_vendor_id;
53603 	u16 subsystem_device_id;
53604 	u16 vendor_id;
53605 	u8 revision_id;
53606 };
53607 
53608 struct e1000_info___2 {
53609 	s32 (*get_invariants)(struct e1000_hw___2 *);
53610 	struct e1000_mac_operations___2 *mac_ops;
53611 	const struct e1000_phy_operations___2 *phy_ops;
53612 	struct e1000_nvm_operations___2 *nvm_ops;
53613 };
53614 
53615 union e1000_adv_tx_desc {
53616 	struct {
53617 		__le64 buffer_addr;
53618 		__le32 cmd_type_len;
53619 		__le32 olinfo_status;
53620 	} read;
53621 	struct {
53622 		__le64 rsvd;
53623 		__le32 nxtseq_seed;
53624 		__le32 status;
53625 	} wb;
53626 };
53627 
53628 struct i2c_algo_bit_data {
53629 	void *data;
53630 	void (*setsda)(void *, int);
53631 	void (*setscl)(void *, int);
53632 	int (*getsda)(void *);
53633 	int (*getscl)(void *);
53634 	int (*pre_xfer)(struct i2c_adapter *);
53635 	void (*post_xfer)(struct i2c_adapter *);
53636 	int udelay;
53637 	int timeout;
53638 	bool can_do_atomic;
53639 };
53640 
53641 struct vf_data_storage {
53642 	unsigned char vf_mac_addresses[6];
53643 	u16 vf_mc_hashes[30];
53644 	u16 num_vf_mc_hashes;
53645 	u32 flags;
53646 	long unsigned int last_nack;
53647 	u16 pf_vlan;
53648 	u16 pf_qos;
53649 	u16 tx_rate;
53650 	bool spoofchk_enabled;
53651 	bool trusted;
53652 };
53653 
53654 struct vf_mac_filter {
53655 	struct list_head l;
53656 	int vf;
53657 	bool free;
53658 	u8 vf_mac[6];
53659 };
53660 
53661 enum igb_tx_buf_type {
53662 	IGB_TYPE_SKB = 0,
53663 	IGB_TYPE_XDP = 1,
53664 };
53665 
53666 struct igb_tx_buffer {
53667 	union e1000_adv_tx_desc *next_to_watch;
53668 	long unsigned int time_stamp;
53669 	enum igb_tx_buf_type type;
53670 	union {
53671 		struct sk_buff *skb;
53672 		struct xdp_frame *xdpf;
53673 	};
53674 	unsigned int bytecount;
53675 	u16 gso_segs;
53676 	__be16 protocol;
53677 	dma_addr_t dma;
53678 	__u32 len;
53679 	u32 tx_flags;
53680 };
53681 
53682 struct igb_rx_buffer {
53683 	dma_addr_t dma;
53684 	struct page *page;
53685 	__u32 page_offset;
53686 	__u16 pagecnt_bias;
53687 };
53688 
53689 struct igb_tx_queue_stats {
53690 	u64 packets;
53691 	u64 bytes;
53692 	u64 restart_queue;
53693 	u64 restart_queue2;
53694 };
53695 
53696 struct igb_rx_queue_stats {
53697 	u64 packets;
53698 	u64 bytes;
53699 	u64 drops;
53700 	u64 csum_err;
53701 	u64 alloc_failed;
53702 };
53703 
53704 struct igb_ring;
53705 
53706 struct igb_ring_container {
53707 	struct igb_ring *ring;
53708 	unsigned int total_bytes;
53709 	unsigned int total_packets;
53710 	u16 work_limit;
53711 	u8 count;
53712 	u8 itr;
53713 };
53714 
53715 struct igb_q_vector;
53716 
53717 struct igb_ring {
53718 	struct igb_q_vector *q_vector;
53719 	struct net_device *netdev;
53720 	struct bpf_prog *xdp_prog;
53721 	struct device *dev;
53722 	union {
53723 		struct igb_tx_buffer *tx_buffer_info;
53724 		struct igb_rx_buffer *rx_buffer_info;
53725 	};
53726 	void *desc;
53727 	long unsigned int flags;
53728 	void *tail;
53729 	dma_addr_t dma;
53730 	unsigned int size;
53731 	u16 count;
53732 	u8 queue_index;
53733 	u8 reg_idx;
53734 	bool launchtime_enable;
53735 	bool cbs_enable;
53736 	s32 idleslope;
53737 	s32 sendslope;
53738 	s32 hicredit;
53739 	s32 locredit;
53740 	u16 next_to_clean;
53741 	u16 next_to_use;
53742 	u16 next_to_alloc;
53743 	union {
53744 		struct {
53745 			struct igb_tx_queue_stats tx_stats;
53746 			struct u64_stats_sync tx_syncp;
53747 			struct u64_stats_sync tx_syncp2;
53748 		};
53749 		struct {
53750 			struct sk_buff *skb;
53751 			struct igb_rx_queue_stats rx_stats;
53752 			struct u64_stats_sync rx_syncp;
53753 		};
53754 	};
53755 	long: 64;
53756 	long: 64;
53757 	long: 64;
53758 	long: 64;
53759 	struct xdp_rxq_info xdp_rxq;
53760 };
53761 
53762 struct igb_adapter;
53763 
53764 struct igb_q_vector {
53765 	struct igb_adapter *adapter;
53766 	int cpu;
53767 	u32 eims_value;
53768 	u16 itr_val;
53769 	u8 set_itr;
53770 	void *itr_register;
53771 	struct igb_ring_container rx;
53772 	struct igb_ring_container tx;
53773 	struct napi_struct napi;
53774 	struct callback_head rcu;
53775 	char name[25];
53776 	long: 56;
53777 	long: 64;
53778 	long: 64;
53779 	long: 64;
53780 	long: 64;
53781 	long: 64;
53782 	long: 64;
53783 	struct igb_ring ring[0];
53784 };
53785 
53786 struct hwmon_buff;
53787 
53788 struct igb_mac_addr;
53789 
53790 struct igb_adapter {
53791 	long unsigned int active_vlans[64];
53792 	struct net_device *netdev;
53793 	struct bpf_prog *xdp_prog;
53794 	long unsigned int state;
53795 	unsigned int flags;
53796 	unsigned int num_q_vectors;
53797 	struct msix_entry msix_entries[10];
53798 	u32 rx_itr_setting;
53799 	u32 tx_itr_setting;
53800 	u16 tx_itr;
53801 	u16 rx_itr;
53802 	u16 tx_work_limit;
53803 	u32 tx_timeout_count;
53804 	int num_tx_queues;
53805 	struct igb_ring *tx_ring[16];
53806 	int num_rx_queues;
53807 	struct igb_ring *rx_ring[16];
53808 	u32 max_frame_size;
53809 	u32 min_frame_size;
53810 	struct timer_list watchdog_timer;
53811 	struct timer_list phy_info_timer;
53812 	u16 mng_vlan_id;
53813 	u32 bd_number;
53814 	u32 wol;
53815 	u32 en_mng_pt;
53816 	u16 link_speed;
53817 	u16 link_duplex;
53818 	u8 *io_addr;
53819 	struct work_struct reset_task;
53820 	struct work_struct watchdog_task;
53821 	bool fc_autoneg;
53822 	u8 tx_timeout_factor;
53823 	struct timer_list blink_timer;
53824 	long unsigned int led_status;
53825 	struct pci_dev *pdev;
53826 	spinlock_t stats64_lock;
53827 	struct rtnl_link_stats64 stats64;
53828 	struct e1000_hw___2 hw;
53829 	struct e1000_hw_stats___2 stats;
53830 	struct e1000_phy_info___2 phy_info;
53831 	u32 test_icr;
53832 	long: 32;
53833 	long: 64;
53834 	long: 64;
53835 	long: 64;
53836 	long: 64;
53837 	long: 64;
53838 	struct igb_ring test_tx_ring;
53839 	struct igb_ring test_rx_ring;
53840 	int msg_enable;
53841 	struct igb_q_vector *q_vector[8];
53842 	u32 eims_enable_mask;
53843 	u32 eims_other;
53844 	u16 tx_ring_count;
53845 	u16 rx_ring_count;
53846 	unsigned int vfs_allocated_count;
53847 	struct vf_data_storage *vf_data;
53848 	int vf_rate_link_speed;
53849 	u32 rss_queues;
53850 	u32 wvbr;
53851 	u32 *shadow_vfta;
53852 	struct ptp_clock *ptp_clock;
53853 	struct ptp_clock_info ptp_caps;
53854 	struct delayed_work ptp_overflow_work;
53855 	struct work_struct ptp_tx_work;
53856 	struct sk_buff *ptp_tx_skb;
53857 	struct hwtstamp_config tstamp_config;
53858 	long unsigned int ptp_tx_start;
53859 	long unsigned int last_rx_ptp_check;
53860 	long unsigned int last_rx_timestamp;
53861 	unsigned int ptp_flags;
53862 	spinlock_t tmreg_lock;
53863 	struct cyclecounter cc;
53864 	struct timecounter tc;
53865 	u32 tx_hwtstamp_timeouts;
53866 	u32 tx_hwtstamp_skipped;
53867 	u32 rx_hwtstamp_cleared;
53868 	bool pps_sys_wrap_on;
53869 	struct ptp_pin_desc sdp_config[4];
53870 	struct {
53871 		struct timespec64 start;
53872 		struct timespec64 period;
53873 	} perout[2];
53874 	char fw_version[32];
53875 	struct hwmon_buff *igb_hwmon_buff;
53876 	bool ets;
53877 	struct i2c_algo_bit_data i2c_algo;
53878 	struct i2c_adapter i2c_adap;
53879 	struct i2c_client *i2c_client;
53880 	u32 rss_indir_tbl_init;
53881 	u8 rss_indir_tbl[128];
53882 	long unsigned int link_check_timeout;
53883 	int copper_tries;
53884 	struct e1000_info___2 ei;
53885 	u16 eee_advert;
53886 	struct hlist_head nfc_filter_list;
53887 	struct hlist_head cls_flower_list;
53888 	unsigned int nfc_filter_count;
53889 	spinlock_t nfc_lock;
53890 	bool etype_bitmap[3];
53891 	struct igb_mac_addr *mac_table;
53892 	struct vf_mac_filter vf_macs;
53893 	struct vf_mac_filter *vf_mac_list;
53894 	spinlock_t vfs_lock;
53895 	long: 32;
53896 	long: 64;
53897 	long: 64;
53898 	long: 64;
53899 	long: 64;
53900 	long: 64;
53901 	long: 64;
53902 	long: 64;
53903 };
53904 
53905 struct hwmon_attr {
53906 	struct device_attribute dev_attr;
53907 	struct e1000_hw___2 *hw;
53908 	struct e1000_thermal_diode_data *sensor;
53909 	char name[12];
53910 };
53911 
53912 struct hwmon_buff {
53913 	struct attribute_group group;
53914 	const struct attribute_group *groups[2];
53915 	struct attribute *attrs[13];
53916 	struct hwmon_attr hwmon_list[12];
53917 	unsigned int n_hwmon;
53918 };
53919 
53920 struct igb_mac_addr {
53921 	u8 addr[6];
53922 	u8 queue;
53923 	u8 state;
53924 };
53925 
53926 struct i2c_board_info {
53927 	char type[20];
53928 	short unsigned int flags;
53929 	short unsigned int addr;
53930 	const char *dev_name;
53931 	void *platform_data;
53932 	struct device_node *of_node;
53933 	struct fwnode_handle *fwnode;
53934 	const struct software_node *swnode;
53935 	const struct resource *resources;
53936 	unsigned int num_resources;
53937 	int irq;
53938 };
53939 
53940 enum {
53941 	ETH_RSS_HASH_TOP_BIT = 0,
53942 	ETH_RSS_HASH_XOR_BIT = 1,
53943 	ETH_RSS_HASH_CRC32_BIT = 2,
53944 	ETH_RSS_HASH_FUNCS_COUNT = 3,
53945 };
53946 
53947 struct mdio_if_info {
53948 	int prtad;
53949 	u32 mmds;
53950 	unsigned int mode_support;
53951 	struct net_device *dev;
53952 	int (*mdio_read)(struct net_device *, int, int, u16);
53953 	int (*mdio_write)(struct net_device *, int, int, u16, u16);
53954 };
53955 
53956 enum {
53957 	SOF_TIMESTAMPING_TX_HARDWARE = 1,
53958 	SOF_TIMESTAMPING_TX_SOFTWARE = 2,
53959 	SOF_TIMESTAMPING_RX_HARDWARE = 4,
53960 	SOF_TIMESTAMPING_RX_SOFTWARE = 8,
53961 	SOF_TIMESTAMPING_SOFTWARE = 16,
53962 	SOF_TIMESTAMPING_SYS_HARDWARE = 32,
53963 	SOF_TIMESTAMPING_RAW_HARDWARE = 64,
53964 	SOF_TIMESTAMPING_OPT_ID = 128,
53965 	SOF_TIMESTAMPING_TX_SCHED = 256,
53966 	SOF_TIMESTAMPING_TX_ACK = 512,
53967 	SOF_TIMESTAMPING_OPT_CMSG = 1024,
53968 	SOF_TIMESTAMPING_OPT_TSONLY = 2048,
53969 	SOF_TIMESTAMPING_OPT_STATS = 4096,
53970 	SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
53971 	SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
53972 	SOF_TIMESTAMPING_BIND_PHC = 32768,
53973 	SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
53974 	SOF_TIMESTAMPING_LAST = 65536,
53975 	SOF_TIMESTAMPING_MASK = 131071,
53976 };
53977 
53978 enum hwtstamp_tx_types {
53979 	HWTSTAMP_TX_OFF = 0,
53980 	HWTSTAMP_TX_ON = 1,
53981 	HWTSTAMP_TX_ONESTEP_SYNC = 2,
53982 	HWTSTAMP_TX_ONESTEP_P2P = 3,
53983 	__HWTSTAMP_TX_CNT = 4,
53984 };
53985 
53986 enum hwtstamp_rx_filters {
53987 	HWTSTAMP_FILTER_NONE = 0,
53988 	HWTSTAMP_FILTER_ALL = 1,
53989 	HWTSTAMP_FILTER_SOME = 2,
53990 	HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
53991 	HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
53992 	HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
53993 	HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
53994 	HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
53995 	HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
53996 	HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
53997 	HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
53998 	HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
53999 	HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
54000 	HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
54001 	HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
54002 	HWTSTAMP_FILTER_NTP_ALL = 15,
54003 	__HWTSTAMP_FILTER_CNT = 16,
54004 };
54005 
54006 struct ixgbe_thermal_diode_data {
54007 	u8 location;
54008 	u8 temp;
54009 	u8 caution_thresh;
54010 	u8 max_op_thresh;
54011 };
54012 
54013 struct ixgbe_thermal_sensor_data {
54014 	struct ixgbe_thermal_diode_data sensor[3];
54015 };
54016 
54017 union ixgbe_adv_tx_desc {
54018 	struct {
54019 		__le64 buffer_addr;
54020 		__le32 cmd_type_len;
54021 		__le32 olinfo_status;
54022 	} read;
54023 	struct {
54024 		__le64 rsvd;
54025 		__le32 nxtseq_seed;
54026 		__le32 status;
54027 	} wb;
54028 };
54029 
54030 union ixgbe_adv_rx_desc {
54031 	struct {
54032 		__le64 pkt_addr;
54033 		__le64 hdr_addr;
54034 	} read;
54035 	struct {
54036 		struct {
54037 			union {
54038 				__le32 data;
54039 				struct {
54040 					__le16 pkt_info;
54041 					__le16 hdr_info;
54042 				} hs_rss;
54043 			} lo_dword;
54044 			union {
54045 				__le32 rss;
54046 				struct {
54047 					__le16 ip_id;
54048 					__le16 csum;
54049 				} csum_ip;
54050 			} hi_dword;
54051 		} lower;
54052 		struct {
54053 			__le32 status_error;
54054 			__le16 length;
54055 			__le16 vlan;
54056 		} upper;
54057 	} wb;
54058 };
54059 
54060 typedef u32 ixgbe_autoneg_advertised;
54061 
54062 typedef u32 ixgbe_link_speed;
54063 
54064 enum ixgbe_atr_flow_type {
54065 	IXGBE_ATR_FLOW_TYPE_IPV4 = 0,
54066 	IXGBE_ATR_FLOW_TYPE_UDPV4 = 1,
54067 	IXGBE_ATR_FLOW_TYPE_TCPV4 = 2,
54068 	IXGBE_ATR_FLOW_TYPE_SCTPV4 = 3,
54069 	IXGBE_ATR_FLOW_TYPE_IPV6 = 4,
54070 	IXGBE_ATR_FLOW_TYPE_UDPV6 = 5,
54071 	IXGBE_ATR_FLOW_TYPE_TCPV6 = 6,
54072 	IXGBE_ATR_FLOW_TYPE_SCTPV6 = 7,
54073 };
54074 
54075 union ixgbe_atr_input {
54076 	struct {
54077 		u8 vm_pool;
54078 		u8 flow_type;
54079 		__be16 vlan_id;
54080 		__be32 dst_ip[4];
54081 		__be32 src_ip[4];
54082 		__be16 src_port;
54083 		__be16 dst_port;
54084 		__be16 flex_bytes;
54085 		__be16 bkt_hash;
54086 	} formatted;
54087 	__be32 dword_stream[11];
54088 };
54089 
54090 enum ixgbe_mvals {
54091 	IXGBE_EEC_IDX = 0,
54092 	IXGBE_FLA_IDX = 1,
54093 	IXGBE_GRC_IDX = 2,
54094 	IXGBE_FACTPS_IDX = 3,
54095 	IXGBE_SWSM_IDX = 4,
54096 	IXGBE_SWFW_SYNC_IDX = 5,
54097 	IXGBE_FWSM_IDX = 6,
54098 	IXGBE_SDP0_GPIEN_IDX = 7,
54099 	IXGBE_SDP1_GPIEN_IDX = 8,
54100 	IXGBE_SDP2_GPIEN_IDX = 9,
54101 	IXGBE_EICR_GPI_SDP0_IDX = 10,
54102 	IXGBE_EICR_GPI_SDP1_IDX = 11,
54103 	IXGBE_EICR_GPI_SDP2_IDX = 12,
54104 	IXGBE_CIAA_IDX = 13,
54105 	IXGBE_CIAD_IDX = 14,
54106 	IXGBE_I2C_CLK_IN_IDX = 15,
54107 	IXGBE_I2C_CLK_OUT_IDX = 16,
54108 	IXGBE_I2C_DATA_IN_IDX = 17,
54109 	IXGBE_I2C_DATA_OUT_IDX = 18,
54110 	IXGBE_I2C_DATA_OE_N_EN_IDX = 19,
54111 	IXGBE_I2C_BB_EN_IDX = 20,
54112 	IXGBE_I2C_CLK_OE_N_EN_IDX = 21,
54113 	IXGBE_I2CCTL_IDX = 22,
54114 	IXGBE_MVALS_IDX_LIMIT = 23,
54115 };
54116 
54117 enum ixgbe_eeprom_type {
54118 	ixgbe_eeprom_uninitialized = 0,
54119 	ixgbe_eeprom_spi = 1,
54120 	ixgbe_flash = 2,
54121 	ixgbe_eeprom_none = 3,
54122 };
54123 
54124 enum ixgbe_mac_type {
54125 	ixgbe_mac_unknown = 0,
54126 	ixgbe_mac_82598EB = 1,
54127 	ixgbe_mac_82599EB = 2,
54128 	ixgbe_mac_X540 = 3,
54129 	ixgbe_mac_X550 = 4,
54130 	ixgbe_mac_X550EM_x = 5,
54131 	ixgbe_mac_x550em_a = 6,
54132 	ixgbe_num_macs = 7,
54133 };
54134 
54135 enum ixgbe_phy_type {
54136 	ixgbe_phy_unknown = 0,
54137 	ixgbe_phy_none = 1,
54138 	ixgbe_phy_tn = 2,
54139 	ixgbe_phy_aq = 3,
54140 	ixgbe_phy_x550em_kr = 4,
54141 	ixgbe_phy_x550em_kx4 = 5,
54142 	ixgbe_phy_x550em_xfi = 6,
54143 	ixgbe_phy_x550em_ext_t = 7,
54144 	ixgbe_phy_ext_1g_t = 8,
54145 	ixgbe_phy_cu_unknown = 9,
54146 	ixgbe_phy_qt = 10,
54147 	ixgbe_phy_xaui = 11,
54148 	ixgbe_phy_nl = 12,
54149 	ixgbe_phy_sfp_passive_tyco = 13,
54150 	ixgbe_phy_sfp_passive_unknown = 14,
54151 	ixgbe_phy_sfp_active_unknown = 15,
54152 	ixgbe_phy_sfp_avago = 16,
54153 	ixgbe_phy_sfp_ftl = 17,
54154 	ixgbe_phy_sfp_ftl_active = 18,
54155 	ixgbe_phy_sfp_unknown = 19,
54156 	ixgbe_phy_sfp_intel = 20,
54157 	ixgbe_phy_qsfp_passive_unknown = 21,
54158 	ixgbe_phy_qsfp_active_unknown = 22,
54159 	ixgbe_phy_qsfp_intel = 23,
54160 	ixgbe_phy_qsfp_unknown = 24,
54161 	ixgbe_phy_sfp_unsupported = 25,
54162 	ixgbe_phy_sgmii = 26,
54163 	ixgbe_phy_fw = 27,
54164 	ixgbe_phy_generic = 28,
54165 };
54166 
54167 enum ixgbe_sfp_type {
54168 	ixgbe_sfp_type_da_cu = 0,
54169 	ixgbe_sfp_type_sr = 1,
54170 	ixgbe_sfp_type_lr = 2,
54171 	ixgbe_sfp_type_da_cu_core0 = 3,
54172 	ixgbe_sfp_type_da_cu_core1 = 4,
54173 	ixgbe_sfp_type_srlr_core0 = 5,
54174 	ixgbe_sfp_type_srlr_core1 = 6,
54175 	ixgbe_sfp_type_da_act_lmt_core0 = 7,
54176 	ixgbe_sfp_type_da_act_lmt_core1 = 8,
54177 	ixgbe_sfp_type_1g_cu_core0 = 9,
54178 	ixgbe_sfp_type_1g_cu_core1 = 10,
54179 	ixgbe_sfp_type_1g_sx_core0 = 11,
54180 	ixgbe_sfp_type_1g_sx_core1 = 12,
54181 	ixgbe_sfp_type_1g_lx_core0 = 13,
54182 	ixgbe_sfp_type_1g_lx_core1 = 14,
54183 	ixgbe_sfp_type_not_present = 65534,
54184 	ixgbe_sfp_type_unknown = 65535,
54185 };
54186 
54187 enum ixgbe_media_type {
54188 	ixgbe_media_type_unknown = 0,
54189 	ixgbe_media_type_fiber = 1,
54190 	ixgbe_media_type_fiber_qsfp = 2,
54191 	ixgbe_media_type_fiber_lco = 3,
54192 	ixgbe_media_type_copper = 4,
54193 	ixgbe_media_type_backplane = 5,
54194 	ixgbe_media_type_cx4 = 6,
54195 	ixgbe_media_type_virtual = 7,
54196 };
54197 
54198 enum ixgbe_fc_mode {
54199 	ixgbe_fc_none = 0,
54200 	ixgbe_fc_rx_pause = 1,
54201 	ixgbe_fc_tx_pause = 2,
54202 	ixgbe_fc_full = 3,
54203 	ixgbe_fc_default = 4,
54204 };
54205 
54206 enum ixgbe_smart_speed {
54207 	ixgbe_smart_speed_auto = 0,
54208 	ixgbe_smart_speed_on = 1,
54209 	ixgbe_smart_speed_off = 2,
54210 };
54211 
54212 enum ixgbe_bus_type {
54213 	ixgbe_bus_type_unknown = 0,
54214 	ixgbe_bus_type_pci_express = 1,
54215 	ixgbe_bus_type_internal = 2,
54216 	ixgbe_bus_type_reserved = 3,
54217 };
54218 
54219 enum ixgbe_bus_speed {
54220 	ixgbe_bus_speed_unknown = 0,
54221 	ixgbe_bus_speed_33 = 33,
54222 	ixgbe_bus_speed_66 = 66,
54223 	ixgbe_bus_speed_100 = 100,
54224 	ixgbe_bus_speed_120 = 120,
54225 	ixgbe_bus_speed_133 = 133,
54226 	ixgbe_bus_speed_2500 = 2500,
54227 	ixgbe_bus_speed_5000 = 5000,
54228 	ixgbe_bus_speed_8000 = 8000,
54229 	ixgbe_bus_speed_reserved = 8001,
54230 };
54231 
54232 enum ixgbe_bus_width {
54233 	ixgbe_bus_width_unknown = 0,
54234 	ixgbe_bus_width_pcie_x1 = 1,
54235 	ixgbe_bus_width_pcie_x2 = 2,
54236 	ixgbe_bus_width_pcie_x4 = 4,
54237 	ixgbe_bus_width_pcie_x8 = 8,
54238 	ixgbe_bus_width_32 = 32,
54239 	ixgbe_bus_width_64 = 64,
54240 	ixgbe_bus_width_reserved = 65,
54241 };
54242 
54243 struct ixgbe_addr_filter_info {
54244 	u32 num_mc_addrs;
54245 	u32 rar_used_count;
54246 	u32 mta_in_use;
54247 	u32 overflow_promisc;
54248 	bool uc_set_promisc;
54249 	bool user_set_promisc;
54250 };
54251 
54252 struct ixgbe_bus_info {
54253 	enum ixgbe_bus_speed speed;
54254 	enum ixgbe_bus_width width;
54255 	enum ixgbe_bus_type type;
54256 	u8 func;
54257 	u8 lan_id;
54258 	u8 instance_id;
54259 };
54260 
54261 struct ixgbe_fc_info {
54262 	u32 high_water[8];
54263 	u32 low_water[8];
54264 	u16 pause_time;
54265 	bool send_xon;
54266 	bool strict_ieee;
54267 	bool disable_fc_autoneg;
54268 	bool fc_was_autonegged;
54269 	enum ixgbe_fc_mode current_mode;
54270 	enum ixgbe_fc_mode requested_mode;
54271 };
54272 
54273 struct ixgbe_hw_stats {
54274 	u64 crcerrs;
54275 	u64 illerrc;
54276 	u64 errbc;
54277 	u64 mspdc;
54278 	u64 mpctotal;
54279 	u64 mpc[8];
54280 	u64 mlfc;
54281 	u64 mrfc;
54282 	u64 rlec;
54283 	u64 lxontxc;
54284 	u64 lxonrxc;
54285 	u64 lxofftxc;
54286 	u64 lxoffrxc;
54287 	u64 pxontxc[8];
54288 	u64 pxonrxc[8];
54289 	u64 pxofftxc[8];
54290 	u64 pxoffrxc[8];
54291 	u64 prc64;
54292 	u64 prc127;
54293 	u64 prc255;
54294 	u64 prc511;
54295 	u64 prc1023;
54296 	u64 prc1522;
54297 	u64 gprc;
54298 	u64 bprc;
54299 	u64 mprc;
54300 	u64 gptc;
54301 	u64 gorc;
54302 	u64 gotc;
54303 	u64 rnbc[8];
54304 	u64 ruc;
54305 	u64 rfc;
54306 	u64 roc;
54307 	u64 rjc;
54308 	u64 mngprc;
54309 	u64 mngpdc;
54310 	u64 mngptc;
54311 	u64 tor;
54312 	u64 tpr;
54313 	u64 tpt;
54314 	u64 ptc64;
54315 	u64 ptc127;
54316 	u64 ptc255;
54317 	u64 ptc511;
54318 	u64 ptc1023;
54319 	u64 ptc1522;
54320 	u64 mptc;
54321 	u64 bptc;
54322 	u64 xec;
54323 	u64 rqsmr[16];
54324 	u64 tqsmr[8];
54325 	u64 qprc[16];
54326 	u64 qptc[16];
54327 	u64 qbrc[16];
54328 	u64 qbtc[16];
54329 	u64 qprdc[16];
54330 	u64 pxon2offc[8];
54331 	u64 fdirustat_add;
54332 	u64 fdirustat_remove;
54333 	u64 fdirfstat_fadd;
54334 	u64 fdirfstat_fremove;
54335 	u64 fdirmatch;
54336 	u64 fdirmiss;
54337 	u64 fccrc;
54338 	u64 fcoerpdc;
54339 	u64 fcoeprc;
54340 	u64 fcoeptc;
54341 	u64 fcoedwrc;
54342 	u64 fcoedwtc;
54343 	u64 fcoe_noddp;
54344 	u64 fcoe_noddp_ext_buff;
54345 	u64 b2ospc;
54346 	u64 b2ogprc;
54347 	u64 o2bgptc;
54348 	u64 o2bspc;
54349 };
54350 
54351 struct ixgbe_hw;
54352 
54353 struct ixgbe_eeprom_operations {
54354 	s32 (*init_params)(struct ixgbe_hw *);
54355 	s32 (*read)(struct ixgbe_hw *, u16, u16 *);
54356 	s32 (*read_buffer)(struct ixgbe_hw *, u16, u16, u16 *);
54357 	s32 (*write)(struct ixgbe_hw *, u16, u16);
54358 	s32 (*write_buffer)(struct ixgbe_hw *, u16, u16, u16 *);
54359 	s32 (*validate_checksum)(struct ixgbe_hw *, u16 *);
54360 	s32 (*update_checksum)(struct ixgbe_hw *);
54361 	s32 (*calc_checksum)(struct ixgbe_hw *);
54362 };
54363 
54364 struct ixgbe_mac_operations {
54365 	s32 (*init_hw)(struct ixgbe_hw *);
54366 	s32 (*reset_hw)(struct ixgbe_hw *);
54367 	s32 (*start_hw)(struct ixgbe_hw *);
54368 	s32 (*clear_hw_cntrs)(struct ixgbe_hw *);
54369 	enum ixgbe_media_type (*get_media_type)(struct ixgbe_hw *);
54370 	s32 (*get_mac_addr)(struct ixgbe_hw *, u8 *);
54371 	s32 (*get_san_mac_addr)(struct ixgbe_hw *, u8 *);
54372 	s32 (*get_device_caps)(struct ixgbe_hw *, u16 *);
54373 	s32 (*get_wwn_prefix)(struct ixgbe_hw *, u16 *, u16 *);
54374 	s32 (*stop_adapter)(struct ixgbe_hw *);
54375 	s32 (*get_bus_info)(struct ixgbe_hw *);
54376 	void (*set_lan_id)(struct ixgbe_hw *);
54377 	s32 (*read_analog_reg8)(struct ixgbe_hw *, u32, u8 *);
54378 	s32 (*write_analog_reg8)(struct ixgbe_hw *, u32, u8);
54379 	s32 (*setup_sfp)(struct ixgbe_hw *);
54380 	s32 (*disable_rx_buff)(struct ixgbe_hw *);
54381 	s32 (*enable_rx_buff)(struct ixgbe_hw *);
54382 	s32 (*enable_rx_dma)(struct ixgbe_hw *, u32);
54383 	s32 (*acquire_swfw_sync)(struct ixgbe_hw *, u32);
54384 	void (*release_swfw_sync)(struct ixgbe_hw *, u32);
54385 	void (*init_swfw_sync)(struct ixgbe_hw *);
54386 	s32 (*prot_autoc_read)(struct ixgbe_hw *, bool *, u32 *);
54387 	s32 (*prot_autoc_write)(struct ixgbe_hw *, u32, bool);
54388 	void (*disable_tx_laser)(struct ixgbe_hw *);
54389 	void (*enable_tx_laser)(struct ixgbe_hw *);
54390 	void (*flap_tx_laser)(struct ixgbe_hw *);
54391 	void (*stop_link_on_d3)(struct ixgbe_hw *);
54392 	s32 (*setup_link)(struct ixgbe_hw *, ixgbe_link_speed, bool);
54393 	s32 (*setup_mac_link)(struct ixgbe_hw *, ixgbe_link_speed, bool);
54394 	s32 (*check_link)(struct ixgbe_hw *, ixgbe_link_speed *, bool *, bool);
54395 	s32 (*get_link_capabilities)(struct ixgbe_hw *, ixgbe_link_speed *, bool *);
54396 	void (*set_rate_select_speed)(struct ixgbe_hw *, ixgbe_link_speed);
54397 	void (*set_rxpba)(struct ixgbe_hw *, int, u32, int);
54398 	s32 (*led_on)(struct ixgbe_hw *, u32);
54399 	s32 (*led_off)(struct ixgbe_hw *, u32);
54400 	s32 (*blink_led_start)(struct ixgbe_hw *, u32);
54401 	s32 (*blink_led_stop)(struct ixgbe_hw *, u32);
54402 	s32 (*init_led_link_act)(struct ixgbe_hw *);
54403 	s32 (*set_rar)(struct ixgbe_hw *, u32, u8 *, u32, u32);
54404 	s32 (*clear_rar)(struct ixgbe_hw *, u32);
54405 	s32 (*set_vmdq)(struct ixgbe_hw *, u32, u32);
54406 	s32 (*set_vmdq_san_mac)(struct ixgbe_hw *, u32);
54407 	s32 (*clear_vmdq)(struct ixgbe_hw *, u32, u32);
54408 	s32 (*init_rx_addrs)(struct ixgbe_hw *);
54409 	s32 (*update_mc_addr_list)(struct ixgbe_hw *, struct net_device *);
54410 	s32 (*enable_mc)(struct ixgbe_hw *);
54411 	s32 (*disable_mc)(struct ixgbe_hw *);
54412 	s32 (*clear_vfta)(struct ixgbe_hw *);
54413 	s32 (*set_vfta)(struct ixgbe_hw *, u32, u32, bool, bool);
54414 	s32 (*init_uta_tables)(struct ixgbe_hw *);
54415 	void (*set_mac_anti_spoofing)(struct ixgbe_hw *, bool, int);
54416 	void (*set_vlan_anti_spoofing)(struct ixgbe_hw *, bool, int);
54417 	s32 (*fc_enable)(struct ixgbe_hw *);
54418 	s32 (*setup_fc)(struct ixgbe_hw *);
54419 	void (*fc_autoneg)(struct ixgbe_hw *);
54420 	s32 (*set_fw_drv_ver)(struct ixgbe_hw *, u8, u8, u8, u8, u16, const char *);
54421 	s32 (*get_thermal_sensor_data)(struct ixgbe_hw *);
54422 	s32 (*init_thermal_sensor_thresh)(struct ixgbe_hw *);
54423 	bool (*fw_recovery_mode)(struct ixgbe_hw *);
54424 	void (*disable_rx)(struct ixgbe_hw *);
54425 	void (*enable_rx)(struct ixgbe_hw *);
54426 	void (*set_source_address_pruning)(struct ixgbe_hw *, bool, unsigned int);
54427 	void (*set_ethertype_anti_spoofing)(struct ixgbe_hw *, bool, int);
54428 	s32 (*dmac_config)(struct ixgbe_hw *);
54429 	s32 (*dmac_update_tcs)(struct ixgbe_hw *);
54430 	s32 (*dmac_config_tcs)(struct ixgbe_hw *);
54431 	s32 (*read_iosf_sb_reg)(struct ixgbe_hw *, u32, u32, u32 *);
54432 	s32 (*write_iosf_sb_reg)(struct ixgbe_hw *, u32, u32, u32);
54433 };
54434 
54435 struct ixgbe_mac_info {
54436 	struct ixgbe_mac_operations ops;
54437 	enum ixgbe_mac_type type;
54438 	u8 addr[6];
54439 	u8 perm_addr[6];
54440 	u8 san_addr[6];
54441 	u16 wwnn_prefix;
54442 	u16 wwpn_prefix;
54443 	u16 max_msix_vectors;
54444 	u32 mta_shadow[128];
54445 	s32 mc_filter_type;
54446 	u32 mcft_size;
54447 	u32 vft_size;
54448 	u32 num_rar_entries;
54449 	u32 rar_highwater;
54450 	u32 rx_pb_size;
54451 	u32 max_tx_queues;
54452 	u32 max_rx_queues;
54453 	u32 orig_autoc;
54454 	u32 orig_autoc2;
54455 	bool orig_link_settings_stored;
54456 	bool autotry_restart;
54457 	u8 flags;
54458 	u8 san_mac_rar_index;
54459 	struct ixgbe_thermal_sensor_data thermal_sensor_data;
54460 	bool set_lben;
54461 	u8 led_link_act;
54462 };
54463 
54464 struct ixgbe_phy_operations {
54465 	s32 (*identify)(struct ixgbe_hw *);
54466 	s32 (*identify_sfp)(struct ixgbe_hw *);
54467 	s32 (*init)(struct ixgbe_hw *);
54468 	s32 (*reset)(struct ixgbe_hw *);
54469 	s32 (*read_reg)(struct ixgbe_hw *, u32, u32, u16 *);
54470 	s32 (*write_reg)(struct ixgbe_hw *, u32, u32, u16);
54471 	s32 (*read_reg_mdi)(struct ixgbe_hw *, u32, u32, u16 *);
54472 	s32 (*write_reg_mdi)(struct ixgbe_hw *, u32, u32, u16);
54473 	s32 (*setup_link)(struct ixgbe_hw *);
54474 	s32 (*setup_internal_link)(struct ixgbe_hw *);
54475 	s32 (*setup_link_speed)(struct ixgbe_hw *, ixgbe_link_speed, bool);
54476 	s32 (*check_link)(struct ixgbe_hw *, ixgbe_link_speed *, bool *);
54477 	s32 (*read_i2c_byte)(struct ixgbe_hw *, u8, u8, u8 *);
54478 	s32 (*write_i2c_byte)(struct ixgbe_hw *, u8, u8, u8);
54479 	s32 (*read_i2c_sff8472)(struct ixgbe_hw *, u8, u8 *);
54480 	s32 (*read_i2c_eeprom)(struct ixgbe_hw *, u8, u8 *);
54481 	s32 (*write_i2c_eeprom)(struct ixgbe_hw *, u8, u8);
54482 	s32 (*check_overtemp)(struct ixgbe_hw *);
54483 	s32 (*set_phy_power)(struct ixgbe_hw *, bool);
54484 	s32 (*enter_lplu)(struct ixgbe_hw *);
54485 	s32 (*handle_lasi)(struct ixgbe_hw *);
54486 	s32 (*read_i2c_byte_unlocked)(struct ixgbe_hw *, u8, u8, u8 *);
54487 	s32 (*write_i2c_byte_unlocked)(struct ixgbe_hw *, u8, u8, u8);
54488 };
54489 
54490 struct ixgbe_phy_info {
54491 	struct ixgbe_phy_operations ops;
54492 	struct mdio_if_info mdio;
54493 	enum ixgbe_phy_type type;
54494 	u32 id;
54495 	enum ixgbe_sfp_type sfp_type;
54496 	bool sfp_setup_needed;
54497 	u32 revision;
54498 	enum ixgbe_media_type media_type;
54499 	u32 phy_semaphore_mask;
54500 	bool reset_disable;
54501 	ixgbe_autoneg_advertised autoneg_advertised;
54502 	ixgbe_link_speed speeds_supported;
54503 	ixgbe_link_speed eee_speeds_supported;
54504 	ixgbe_link_speed eee_speeds_advertised;
54505 	enum ixgbe_smart_speed smart_speed;
54506 	bool smart_speed_active;
54507 	bool multispeed_fiber;
54508 	bool reset_if_overtemp;
54509 	bool qsfp_shared_i2c_bus;
54510 	u32 nw_mng_if_sel;
54511 };
54512 
54513 struct ixgbe_link_operations {
54514 	s32 (*read_link)(struct ixgbe_hw *, u8, u16, u16 *);
54515 	s32 (*read_link_unlocked)(struct ixgbe_hw *, u8, u16, u16 *);
54516 	s32 (*write_link)(struct ixgbe_hw *, u8, u16, u16);
54517 	s32 (*write_link_unlocked)(struct ixgbe_hw *, u8, u16, u16);
54518 };
54519 
54520 struct ixgbe_link_info {
54521 	struct ixgbe_link_operations ops;
54522 	u8 addr;
54523 };
54524 
54525 struct ixgbe_eeprom_info {
54526 	struct ixgbe_eeprom_operations ops;
54527 	enum ixgbe_eeprom_type type;
54528 	u32 semaphore_delay;
54529 	u16 word_size;
54530 	u16 address_bits;
54531 	u16 word_page_size;
54532 	u16 ctrl_word_3;
54533 };
54534 
54535 struct ixgbe_mbx_stats {
54536 	u32 msgs_tx;
54537 	u32 msgs_rx;
54538 	u32 acks;
54539 	u32 reqs;
54540 	u32 rsts;
54541 };
54542 
54543 struct ixgbe_mbx_operations;
54544 
54545 struct ixgbe_mbx_info {
54546 	const struct ixgbe_mbx_operations *ops;
54547 	struct ixgbe_mbx_stats stats;
54548 	u32 timeout;
54549 	u32 usec_delay;
54550 	u32 v2p_mailbox;
54551 	u16 size;
54552 };
54553 
54554 struct ixgbe_hw {
54555 	u8 *hw_addr;
54556 	void *back;
54557 	struct ixgbe_mac_info mac;
54558 	struct ixgbe_addr_filter_info addr_ctrl;
54559 	struct ixgbe_fc_info fc;
54560 	struct ixgbe_phy_info phy;
54561 	struct ixgbe_link_info link;
54562 	struct ixgbe_eeprom_info eeprom;
54563 	struct ixgbe_bus_info bus;
54564 	struct ixgbe_mbx_info mbx;
54565 	const u32 *mvals;
54566 	u16 device_id;
54567 	u16 vendor_id;
54568 	u16 subsystem_device_id;
54569 	u16 subsystem_vendor_id;
54570 	u8 revision_id;
54571 	bool adapter_stopped;
54572 	bool force_full_reset;
54573 	bool allow_unsupported_sfp;
54574 	bool wol_enabled;
54575 	bool need_crosstalk_fix;
54576 };
54577 
54578 struct ixgbe_mbx_operations {
54579 	s32 (*init_params)(struct ixgbe_hw *);
54580 	s32 (*read)(struct ixgbe_hw *, u32 *, u16, u16);
54581 	s32 (*write)(struct ixgbe_hw *, u32 *, u16, u16);
54582 	s32 (*read_posted)(struct ixgbe_hw *, u32 *, u16, u16);
54583 	s32 (*write_posted)(struct ixgbe_hw *, u32 *, u16, u16);
54584 	s32 (*check_for_msg)(struct ixgbe_hw *, u16);
54585 	s32 (*check_for_ack)(struct ixgbe_hw *, u16);
54586 	s32 (*check_for_rst)(struct ixgbe_hw *, u16);
54587 };
54588 
54589 struct ieee_ets {
54590 	__u8 willing;
54591 	__u8 ets_cap;
54592 	__u8 cbs;
54593 	__u8 tc_tx_bw[8];
54594 	__u8 tc_rx_bw[8];
54595 	__u8 tc_tsa[8];
54596 	__u8 prio_tc[8];
54597 	__u8 tc_reco_bw[8];
54598 	__u8 tc_reco_tsa[8];
54599 	__u8 reco_prio_tc[8];
54600 };
54601 
54602 struct ieee_pfc {
54603 	__u8 pfc_cap;
54604 	__u8 pfc_en;
54605 	__u8 mbc;
54606 	__u16 delay;
54607 	__u64 requests[8];
54608 	__u64 indications[8];
54609 };
54610 
54611 enum strict_prio_type {
54612 	prio_none = 0,
54613 	prio_group = 1,
54614 	prio_link = 2,
54615 };
54616 
54617 struct dcb_support {
54618 	u32 capabilities;
54619 	u8 traffic_classes;
54620 	u8 pfc_traffic_classes;
54621 };
54622 
54623 struct tc_bw_alloc {
54624 	u8 bwg_id;
54625 	u8 bwg_percent;
54626 	u8 link_percent;
54627 	u8 up_to_tc_bitmap;
54628 	u16 data_credits_refill;
54629 	u16 data_credits_max;
54630 	enum strict_prio_type prio_type;
54631 };
54632 
54633 enum dcb_pfc_type {
54634 	pfc_disabled = 0,
54635 	pfc_enabled_full = 1,
54636 	pfc_enabled_tx = 2,
54637 	pfc_enabled_rx = 3,
54638 };
54639 
54640 struct tc_configuration {
54641 	struct tc_bw_alloc path[2];
54642 	enum dcb_pfc_type dcb_pfc;
54643 	u16 desc_credits_max;
54644 	u8 tc;
54645 };
54646 
54647 struct dcb_num_tcs {
54648 	u8 pg_tcs;
54649 	u8 pfc_tcs;
54650 };
54651 
54652 struct ixgbe_dcb_config {
54653 	struct dcb_support support;
54654 	struct dcb_num_tcs num_tcs;
54655 	struct tc_configuration tc_config[8];
54656 	u8 bw_percentage[16];
54657 	bool pfc_mode_enable;
54658 	u32 dcb_cfg_version;
54659 	u32 link_speed;
54660 };
54661 
54662 struct ixgbe_fcoe_ddp {
54663 	int len;
54664 	u32 err;
54665 	unsigned int sgc;
54666 	struct scatterlist *sgl;
54667 	dma_addr_t udp;
54668 	u64 *udl;
54669 	struct dma_pool *pool;
54670 };
54671 
54672 struct ixgbe_fcoe_ddp_pool {
54673 	struct dma_pool *pool;
54674 	u64 noddp;
54675 	u64 noddp_ext_buff;
54676 };
54677 
54678 struct ixgbe_fcoe {
54679 	struct ixgbe_fcoe_ddp_pool *ddp_pool;
54680 	atomic_t refcnt;
54681 	spinlock_t lock;
54682 	struct ixgbe_fcoe_ddp ddp[2048];
54683 	void *extra_ddp_buffer;
54684 	dma_addr_t extra_ddp_buffer_dma;
54685 	long unsigned int mode;
54686 	u8 up;
54687 };
54688 
54689 struct vf_stats {
54690 	u64 gprc;
54691 	u64 gorc;
54692 	u64 gptc;
54693 	u64 gotc;
54694 	u64 mprc;
54695 };
54696 
54697 struct vf_data_storage___2 {
54698 	struct pci_dev *vfdev;
54699 	unsigned char vf_mac_addresses[6];
54700 	u16 vf_mc_hashes[30];
54701 	u16 num_vf_mc_hashes;
54702 	bool clear_to_send;
54703 	struct vf_stats vfstats;
54704 	struct vf_stats last_vfstats;
54705 	struct vf_stats saved_rst_vfstats;
54706 	bool pf_set_mac;
54707 	u16 pf_vlan;
54708 	u16 pf_qos;
54709 	u16 tx_rate;
54710 	int link_enable;
54711 	int link_state;
54712 	u8 spoofchk_enabled;
54713 	bool rss_query_enabled;
54714 	u8 trusted;
54715 	int xcast_mode;
54716 	unsigned int vf_api;
54717 	u8 primary_abort_count;
54718 };
54719 
54720 struct vf_macvlans {
54721 	struct list_head l;
54722 	int vf;
54723 	bool free;
54724 	bool is_macvlan;
54725 	u8 vf_macvlan[6];
54726 };
54727 
54728 struct ixgbe_tx_buffer {
54729 	union ixgbe_adv_tx_desc *next_to_watch;
54730 	long unsigned int time_stamp;
54731 	union {
54732 		struct sk_buff *skb;
54733 		struct xdp_frame *xdpf;
54734 	};
54735 	unsigned int bytecount;
54736 	short unsigned int gso_segs;
54737 	__be16 protocol;
54738 	dma_addr_t dma;
54739 	__u32 len;
54740 	u32 tx_flags;
54741 };
54742 
54743 struct ixgbe_rx_buffer {
54744 	union {
54745 		struct {
54746 			struct sk_buff *skb;
54747 			dma_addr_t dma;
54748 			struct page *page;
54749 			__u32 page_offset;
54750 			__u16 pagecnt_bias;
54751 		};
54752 		struct {
54753 			bool discard;
54754 			struct xdp_buff *xdp;
54755 		};
54756 	};
54757 };
54758 
54759 struct ixgbe_queue_stats {
54760 	u64 packets;
54761 	u64 bytes;
54762 };
54763 
54764 struct ixgbe_tx_queue_stats {
54765 	u64 restart_queue;
54766 	u64 tx_busy;
54767 	u64 tx_done_old;
54768 };
54769 
54770 struct ixgbe_rx_queue_stats {
54771 	u64 rsc_count;
54772 	u64 rsc_flush;
54773 	u64 non_eop_descs;
54774 	u64 alloc_rx_page;
54775 	u64 alloc_rx_page_failed;
54776 	u64 alloc_rx_buff_failed;
54777 	u64 csum_err;
54778 };
54779 
54780 enum ixgbe_ring_state_t {
54781 	__IXGBE_RX_3K_BUFFER = 0,
54782 	__IXGBE_RX_BUILD_SKB_ENABLED = 1,
54783 	__IXGBE_RX_RSC_ENABLED = 2,
54784 	__IXGBE_RX_CSUM_UDP_ZERO_ERR = 3,
54785 	__IXGBE_RX_FCOE = 4,
54786 	__IXGBE_TX_FDIR_INIT_DONE = 5,
54787 	__IXGBE_TX_XPS_INIT_DONE = 6,
54788 	__IXGBE_TX_DETECT_HANG = 7,
54789 	__IXGBE_HANG_CHECK_ARMED = 8,
54790 	__IXGBE_TX_XDP_RING = 9,
54791 	__IXGBE_TX_DISABLED = 10,
54792 };
54793 
54794 struct ixgbe_q_vector;
54795 
54796 struct ixgbe_ring {
54797 	struct ixgbe_ring *next;
54798 	struct ixgbe_q_vector *q_vector;
54799 	struct net_device *netdev;
54800 	struct bpf_prog *xdp_prog;
54801 	struct device *dev;
54802 	void *desc;
54803 	union {
54804 		struct ixgbe_tx_buffer *tx_buffer_info;
54805 		struct ixgbe_rx_buffer *rx_buffer_info;
54806 	};
54807 	long unsigned int state;
54808 	u8 *tail;
54809 	dma_addr_t dma;
54810 	unsigned int size;
54811 	u16 count;
54812 	u8 queue_index;
54813 	u8 reg_idx;
54814 	u16 next_to_use;
54815 	u16 next_to_clean;
54816 	long unsigned int last_rx_timestamp;
54817 	union {
54818 		u16 next_to_alloc;
54819 		struct {
54820 			u8 atr_sample_rate;
54821 			u8 atr_count;
54822 		};
54823 	};
54824 	u8 dcb_tc;
54825 	struct ixgbe_queue_stats stats;
54826 	struct u64_stats_sync syncp;
54827 	union {
54828 		struct ixgbe_tx_queue_stats tx_stats;
54829 		struct ixgbe_rx_queue_stats rx_stats;
54830 	};
54831 	u16 rx_offset;
54832 	struct xdp_rxq_info xdp_rxq;
54833 	spinlock_t tx_lock;
54834 	struct xsk_buff_pool *xsk_pool;
54835 	u16 ring_idx;
54836 	u16 rx_buf_len;
54837 	long: 32;
54838 	long: 64;
54839 	long: 64;
54840 	long: 64;
54841 	long: 64;
54842 	long: 64;
54843 };
54844 
54845 struct ixgbe_ring_container {
54846 	struct ixgbe_ring *ring;
54847 	long unsigned int next_update;
54848 	unsigned int total_bytes;
54849 	unsigned int total_packets;
54850 	u16 work_limit;
54851 	u8 count;
54852 	u8 itr;
54853 };
54854 
54855 struct ixgbe_adapter;
54856 
54857 struct ixgbe_q_vector {
54858 	struct ixgbe_adapter *adapter;
54859 	u16 v_idx;
54860 	u16 itr;
54861 	struct ixgbe_ring_container rx;
54862 	struct ixgbe_ring_container tx;
54863 	struct napi_struct napi;
54864 	cpumask_t affinity_mask;
54865 	int numa_node;
54866 	struct callback_head rcu;
54867 	char name[25];
54868 	long: 56;
54869 	long: 64;
54870 	long: 64;
54871 	long: 64;
54872 	long: 64;
54873 	struct ixgbe_ring ring[0];
54874 };
54875 
54876 enum ixgbe_ring_f_enum {
54877 	RING_F_NONE = 0,
54878 	RING_F_VMDQ = 1,
54879 	RING_F_RSS = 2,
54880 	RING_F_FDIR = 3,
54881 	RING_F_FCOE = 4,
54882 	RING_F_ARRAY_SIZE = 5,
54883 };
54884 
54885 struct ixgbe_ring_feature {
54886 	u16 limit;
54887 	u16 indices;
54888 	u16 mask;
54889 	u16 offset;
54890 	long: 64;
54891 	long: 64;
54892 	long: 64;
54893 	long: 64;
54894 	long: 64;
54895 	long: 64;
54896 	long: 64;
54897 };
54898 
54899 struct ixgbe_mac_addr;
54900 
54901 struct hwmon_buff___2;
54902 
54903 struct ixgbe_jump_table;
54904 
54905 struct ixgbe_adapter {
54906 	long unsigned int active_vlans[64];
54907 	struct net_device *netdev;
54908 	struct bpf_prog *xdp_prog;
54909 	struct pci_dev *pdev;
54910 	struct mii_bus *mii_bus;
54911 	long unsigned int state;
54912 	u32 flags;
54913 	u32 flags2;
54914 	int num_tx_queues;
54915 	u16 tx_itr_setting;
54916 	u16 tx_work_limit;
54917 	u64 tx_ipsec;
54918 	int num_rx_queues;
54919 	u16 rx_itr_setting;
54920 	u64 rx_ipsec;
54921 	__be16 vxlan_port;
54922 	__be16 geneve_port;
54923 	int num_xdp_queues;
54924 	struct ixgbe_ring *xdp_ring[64];
54925 	long unsigned int *af_xdp_zc_qps;
54926 	long: 64;
54927 	long: 64;
54928 	long: 64;
54929 	long: 64;
54930 	struct ixgbe_ring *tx_ring[64];
54931 	u64 restart_queue;
54932 	u64 lsc_int;
54933 	u32 tx_timeout_count;
54934 	struct ixgbe_ring *rx_ring[64];
54935 	int num_rx_pools;
54936 	int num_rx_queues_per_pool;
54937 	u64 hw_csum_rx_error;
54938 	u64 hw_rx_no_dma_resources;
54939 	u64 rsc_total_count;
54940 	u64 rsc_total_flush;
54941 	u64 non_eop_descs;
54942 	u32 alloc_rx_page;
54943 	u32 alloc_rx_page_failed;
54944 	u32 alloc_rx_buff_failed;
54945 	struct ixgbe_q_vector *q_vector[64];
54946 	struct ieee_pfc *ixgbe_ieee_pfc;
54947 	struct ieee_ets *ixgbe_ieee_ets;
54948 	struct ixgbe_dcb_config dcb_cfg;
54949 	struct ixgbe_dcb_config temp_dcb_cfg;
54950 	u8 hw_tcs;
54951 	u8 dcb_set_bitmap;
54952 	u8 dcbx_cap;
54953 	enum ixgbe_fc_mode last_lfc_mode;
54954 	int num_q_vectors;
54955 	int max_q_vectors;
54956 	long: 64;
54957 	long: 64;
54958 	long: 64;
54959 	long: 64;
54960 	long: 64;
54961 	long: 64;
54962 	long: 64;
54963 	struct ixgbe_ring_feature ring_feature[5];
54964 	struct msix_entry *msix_entries;
54965 	u32 test_icr;
54966 	long: 32;
54967 	long: 64;
54968 	long: 64;
54969 	long: 64;
54970 	long: 64;
54971 	long: 64;
54972 	long: 64;
54973 	struct ixgbe_ring test_tx_ring;
54974 	struct ixgbe_ring test_rx_ring;
54975 	struct ixgbe_hw hw;
54976 	u16 msg_enable;
54977 	struct ixgbe_hw_stats stats;
54978 	u64 tx_busy;
54979 	unsigned int tx_ring_count;
54980 	unsigned int xdp_ring_count;
54981 	unsigned int rx_ring_count;
54982 	u32 link_speed;
54983 	bool link_up;
54984 	long unsigned int sfp_poll_time;
54985 	long unsigned int link_check_timeout;
54986 	struct timer_list service_timer;
54987 	struct work_struct service_task;
54988 	struct hlist_head fdir_filter_list;
54989 	long unsigned int fdir_overflow;
54990 	union ixgbe_atr_input fdir_mask;
54991 	int fdir_filter_count;
54992 	u32 fdir_pballoc;
54993 	u32 atr_sample_rate;
54994 	spinlock_t fdir_perfect_lock;
54995 	struct ixgbe_fcoe fcoe;
54996 	u8 *io_addr;
54997 	u32 wol;
54998 	u16 bridge_mode;
54999 	char eeprom_id[32];
55000 	u16 eeprom_cap;
55001 	u32 interrupt_event;
55002 	u32 led_reg;
55003 	struct ptp_clock *ptp_clock;
55004 	struct ptp_clock_info ptp_caps;
55005 	struct work_struct ptp_tx_work;
55006 	struct sk_buff *ptp_tx_skb;
55007 	struct hwtstamp_config tstamp_config;
55008 	long unsigned int ptp_tx_start;
55009 	long unsigned int last_overflow_check;
55010 	long unsigned int last_rx_ptp_check;
55011 	long unsigned int last_rx_timestamp;
55012 	spinlock_t tmreg_lock;
55013 	struct cyclecounter hw_cc;
55014 	struct timecounter hw_tc;
55015 	u32 base_incval;
55016 	u32 tx_hwtstamp_timeouts;
55017 	u32 tx_hwtstamp_skipped;
55018 	u32 rx_hwtstamp_cleared;
55019 	void (*ptp_setup_sdp)(struct ixgbe_adapter *);
55020 	long unsigned int active_vfs[1];
55021 	unsigned int num_vfs;
55022 	struct vf_data_storage___2 *vfinfo;
55023 	int vf_rate_link_speed;
55024 	struct vf_macvlans vf_mvs;
55025 	struct vf_macvlans *mv_list;
55026 	u32 timer_event_accumulator;
55027 	u32 vferr_refcount;
55028 	struct ixgbe_mac_addr *mac_table;
55029 	struct kobject *info_kobj;
55030 	struct hwmon_buff___2 *ixgbe_hwmon_buff;
55031 	struct dentry *ixgbe_dbg_adapter;
55032 	u8 default_up;
55033 	long unsigned int fwd_bitmask[1];
55034 	struct ixgbe_jump_table *jump_tables[10];
55035 	long unsigned int tables;
55036 	u8 rss_indir_tbl[512];
55037 	u32 *rss_key;
55038 	spinlock_t vfs_lock;
55039 	long: 32;
55040 	long: 64;
55041 	long: 64;
55042 	long: 64;
55043 	long: 64;
55044 	long: 64;
55045 };
55046 
55047 struct hwmon_attr___2 {
55048 	struct device_attribute dev_attr;
55049 	struct ixgbe_hw *hw;
55050 	struct ixgbe_thermal_diode_data *sensor;
55051 	char name[12];
55052 };
55053 
55054 struct hwmon_buff___2 {
55055 	struct attribute_group group;
55056 	const struct attribute_group *groups[2];
55057 	struct attribute *attrs[13];
55058 	struct hwmon_attr___2 hwmon_list[12];
55059 	unsigned int n_hwmon;
55060 };
55061 
55062 struct ixgbe_mac_addr {
55063 	u8 addr[6];
55064 	u16 pool;
55065 	u16 state;
55066 };
55067 
55068 struct ixgbe_fdir_filter {
55069 	struct hlist_node fdir_node;
55070 	union ixgbe_atr_input filter;
55071 	u16 sw_idx;
55072 	u64 action;
55073 };
55074 
55075 enum ixgbe_state_t {
55076 	__IXGBE_TESTING = 0,
55077 	__IXGBE_RESETTING = 1,
55078 	__IXGBE_DOWN = 2,
55079 	__IXGBE_DISABLED = 3,
55080 	__IXGBE_REMOVING = 4,
55081 	__IXGBE_SERVICE_SCHED = 5,
55082 	__IXGBE_SERVICE_INITED = 6,
55083 	__IXGBE_IN_SFP_INIT = 7,
55084 	__IXGBE_PTP_RUNNING = 8,
55085 	__IXGBE_PTP_TX_IN_PROGRESS = 9,
55086 	__IXGBE_RESET_REQUESTED = 10,
55087 };
55088 
55089 enum {
55090 	NETDEV_STATS = 0,
55091 	IXGBE_STATS = 1,
55092 };
55093 
55094 struct ixgbe_stats {
55095 	char stat_string[32];
55096 	int type;
55097 	int sizeof_stat;
55098 	int stat_offset;
55099 };
55100 
55101 struct ixgbe_reg_test {
55102 	u16 reg;
55103 	u8 array_len;
55104 	u8 test_type;
55105 	u32 mask;
55106 	u32 write;
55107 };
55108 
55109 enum {
55110 	IFLA_VF_LINK_STATE_AUTO = 0,
55111 	IFLA_VF_LINK_STATE_ENABLE = 1,
55112 	IFLA_VF_LINK_STATE_DISABLE = 2,
55113 	__IFLA_VF_LINK_STATE_MAX = 3,
55114 };
55115 
55116 enum ixgbe_pfvf_api_rev {
55117 	ixgbe_mbox_api_10 = 0,
55118 	ixgbe_mbox_api_20 = 1,
55119 	ixgbe_mbox_api_11 = 2,
55120 	ixgbe_mbox_api_12 = 3,
55121 	ixgbe_mbox_api_13 = 4,
55122 	ixgbe_mbox_api_14 = 5,
55123 	ixgbe_mbox_api_unknown = 6,
55124 };
55125 
55126 enum ixgbevf_xcast_modes {
55127 	IXGBEVF_XCAST_MODE_NONE = 0,
55128 	IXGBEVF_XCAST_MODE_MULTI = 1,
55129 	IXGBEVF_XCAST_MODE_ALLMULTI = 2,
55130 	IXGBEVF_XCAST_MODE_PROMISC = 3,
55131 };
55132 
55133 struct ixgbe_adv_tx_context_desc {
55134 	__le32 vlan_macip_lens;
55135 	__le32 fceof_saidx;
55136 	__le32 type_tucmd_mlhl;
55137 	__le32 mss_l4len_idx;
55138 };
55139 
55140 typedef enum {
55141 	ixgb_mac_unknown = 0,
55142 	ixgb_82597 = 1,
55143 	ixgb_num_macs = 2,
55144 } ixgb_mac_type;
55145 
55146 typedef enum {
55147 	ixgb_phy_type_unknown = 0,
55148 	ixgb_phy_type_g6005 = 1,
55149 	ixgb_phy_type_g6104 = 2,
55150 	ixgb_phy_type_txn17201 = 3,
55151 	ixgb_phy_type_txn17401 = 4,
55152 	ixgb_phy_type_bcm = 5,
55153 } ixgb_phy_type;
55154 
55155 typedef enum {
55156 	ixgb_fc_none = 0,
55157 	ixgb_fc_rx_pause = 1,
55158 	ixgb_fc_tx_pause = 2,
55159 	ixgb_fc_full = 3,
55160 	ixgb_fc_default = 255,
55161 } ixgb_fc_type;
55162 
55163 typedef enum {
55164 	ixgb_bus_type_unknown = 0,
55165 	ixgb_bus_type_pci = 1,
55166 	ixgb_bus_type_pcix = 2,
55167 } ixgb_bus_type;
55168 
55169 typedef enum {
55170 	ixgb_bus_speed_unknown = 0,
55171 	ixgb_bus_speed_33 = 1,
55172 	ixgb_bus_speed_66 = 2,
55173 	ixgb_bus_speed_100 = 3,
55174 	ixgb_bus_speed_133 = 4,
55175 	ixgb_bus_speed_reserved = 5,
55176 } ixgb_bus_speed;
55177 
55178 typedef enum {
55179 	ixgb_bus_width_unknown = 0,
55180 	ixgb_bus_width_32 = 1,
55181 	ixgb_bus_width_64 = 2,
55182 } ixgb_bus_width;
55183 
55184 struct ixgb_fc {
55185 	u32 high_water;
55186 	u32 low_water;
55187 	u16 pause_time;
55188 	bool send_xon;
55189 	ixgb_fc_type type;
55190 };
55191 
55192 struct ixgb_bus {
55193 	ixgb_bus_speed speed;
55194 	ixgb_bus_width width;
55195 	ixgb_bus_type type;
55196 };
55197 
55198 struct ixgb_hw {
55199 	u8 *hw_addr;
55200 	void *back;
55201 	struct ixgb_fc fc;
55202 	struct ixgb_bus bus;
55203 	u32 phy_id;
55204 	u32 phy_addr;
55205 	ixgb_mac_type mac_type;
55206 	ixgb_phy_type phy_type;
55207 	u32 max_frame_size;
55208 	u32 mc_filter_type;
55209 	u32 num_mc_addrs;
55210 	u8 curr_mac_addr[6];
55211 	u32 num_tx_desc;
55212 	u32 num_rx_desc;
55213 	u32 rx_buffer_size;
55214 	bool link_up;
55215 	bool adapter_stopped;
55216 	u16 device_id;
55217 	u16 vendor_id;
55218 	u8 revision_id;
55219 	u16 subsystem_vendor_id;
55220 	u16 subsystem_id;
55221 	u32 bar0;
55222 	u32 bar1;
55223 	u32 bar2;
55224 	u32 bar3;
55225 	u16 pci_cmd_word;
55226 	__le16 eeprom[64];
55227 	long unsigned int io_base;
55228 	u32 lastLFC;
55229 	u32 lastRFC;
55230 };
55231 
55232 struct ixgb_ee_map_type {
55233 	u8 mac_addr[6];
55234 	__le16 compatibility;
55235 	__le16 reserved1[4];
55236 	__le32 pba_number;
55237 	__le16 init_ctrl_reg_1;
55238 	__le16 subsystem_id;
55239 	__le16 subvendor_id;
55240 	__le16 device_id;
55241 	__le16 vendor_id;
55242 	__le16 init_ctrl_reg_2;
55243 	__le16 oem_reserved[16];
55244 	__le16 swdpins_reg;
55245 	__le16 circuit_ctrl_reg;
55246 	u8 d3_power;
55247 	u8 d0_power;
55248 	__le16 reserved2[28];
55249 	__le16 checksum;
55250 };
55251 
55252 struct qdisc_walker {
55253 	int stop;
55254 	int skip;
55255 	int count;
55256 	int (*fn)(struct Qdisc *, long unsigned int, struct qdisc_walker *);
55257 };
55258 
55259 struct ixgb_hw_stats {
55260 	u64 tprl;
55261 	u64 tprh;
55262 	u64 gprcl;
55263 	u64 gprch;
55264 	u64 bprcl;
55265 	u64 bprch;
55266 	u64 mprcl;
55267 	u64 mprch;
55268 	u64 uprcl;
55269 	u64 uprch;
55270 	u64 vprcl;
55271 	u64 vprch;
55272 	u64 jprcl;
55273 	u64 jprch;
55274 	u64 gorcl;
55275 	u64 gorch;
55276 	u64 torl;
55277 	u64 torh;
55278 	u64 rnbc;
55279 	u64 ruc;
55280 	u64 roc;
55281 	u64 rlec;
55282 	u64 crcerrs;
55283 	u64 icbc;
55284 	u64 ecbc;
55285 	u64 mpc;
55286 	u64 tptl;
55287 	u64 tpth;
55288 	u64 gptcl;
55289 	u64 gptch;
55290 	u64 bptcl;
55291 	u64 bptch;
55292 	u64 mptcl;
55293 	u64 mptch;
55294 	u64 uptcl;
55295 	u64 uptch;
55296 	u64 vptcl;
55297 	u64 vptch;
55298 	u64 jptcl;
55299 	u64 jptch;
55300 	u64 gotcl;
55301 	u64 gotch;
55302 	u64 totl;
55303 	u64 toth;
55304 	u64 dc;
55305 	u64 plt64c;
55306 	u64 tsctc;
55307 	u64 tsctfc;
55308 	u64 ibic;
55309 	u64 rfc;
55310 	u64 lfc;
55311 	u64 pfrc;
55312 	u64 pftc;
55313 	u64 mcfrc;
55314 	u64 mcftc;
55315 	u64 xonrxc;
55316 	u64 xontxc;
55317 	u64 xoffrxc;
55318 	u64 xofftxc;
55319 	u64 rjc;
55320 };
55321 
55322 struct ixgb_buffer {
55323 	struct sk_buff *skb;
55324 	dma_addr_t dma;
55325 	long unsigned int time_stamp;
55326 	u16 length;
55327 	u16 next_to_watch;
55328 	u16 mapped_as_page;
55329 };
55330 
55331 struct ixgb_desc_ring {
55332 	void *desc;
55333 	dma_addr_t dma;
55334 	unsigned int size;
55335 	unsigned int count;
55336 	unsigned int next_to_use;
55337 	unsigned int next_to_clean;
55338 	struct ixgb_buffer *buffer_info;
55339 };
55340 
55341 struct ixgb_adapter {
55342 	struct timer_list watchdog_timer;
55343 	long unsigned int active_vlans[64];
55344 	u32 bd_number;
55345 	u32 rx_buffer_len;
55346 	u32 part_num;
55347 	u16 link_speed;
55348 	u16 link_duplex;
55349 	struct work_struct tx_timeout_task;
55350 	long: 64;
55351 	long: 64;
55352 	long: 64;
55353 	long: 64;
55354 	long: 64;
55355 	struct ixgb_desc_ring tx_ring;
55356 	unsigned int restart_queue;
55357 	long unsigned int timeo_start;
55358 	u32 tx_cmd_type;
55359 	u64 hw_csum_tx_good;
55360 	u64 hw_csum_tx_error;
55361 	u32 tx_int_delay;
55362 	u32 tx_timeout_count;
55363 	bool tx_int_delay_enable;
55364 	bool detect_tx_hung;
55365 	struct ixgb_desc_ring rx_ring;
55366 	u64 hw_csum_rx_error;
55367 	u64 hw_csum_rx_good;
55368 	u32 rx_int_delay;
55369 	bool rx_csum;
55370 	struct napi_struct napi;
55371 	struct net_device *netdev;
55372 	struct pci_dev *pdev;
55373 	struct ixgb_hw hw;
55374 	u16 msg_enable;
55375 	struct ixgb_hw_stats stats;
55376 	u32 alloc_rx_buff_failed;
55377 	bool have_msi;
55378 	long unsigned int flags;
55379 	long: 64;
55380 	long: 64;
55381 	long: 64;
55382 	long: 64;
55383 	long: 64;
55384 	long: 64;
55385 	long: 64;
55386 };
55387 
55388 enum {
55389 	NETDEV_STATS___2 = 0,
55390 	IXGB_STATS = 1,
55391 };
55392 
55393 struct ixgb_stats {
55394 	char stat_string[32];
55395 	int type;
55396 	int sizeof_stat;
55397 	int stat_offset;
55398 };
55399 
55400 struct system_counterval_t {
55401 	u64 cycles;
55402 	struct clocksource *cs;
55403 };
55404 
55405 struct stmmac_mdio_bus_data {
55406 	unsigned int phy_mask;
55407 	unsigned int has_xpcs;
55408 	unsigned int xpcs_an_inband;
55409 	int *irqs;
55410 	int probed_phy_irq;
55411 	bool needs_reset;
55412 };
55413 
55414 struct stmmac_dma_cfg {
55415 	int pbl;
55416 	int txpbl;
55417 	int rxpbl;
55418 	bool pblx8;
55419 	int fixed_burst;
55420 	int mixed_burst;
55421 	bool aal;
55422 	bool eame;
55423 	bool multi_msi_en;
55424 	bool dche;
55425 };
55426 
55427 struct stmmac_axi {
55428 	bool axi_lpi_en;
55429 	bool axi_xit_frm;
55430 	u32 axi_wr_osr_lmt;
55431 	u32 axi_rd_osr_lmt;
55432 	bool axi_kbbe;
55433 	u32 axi_blen[7];
55434 	bool axi_fb;
55435 	bool axi_mb;
55436 	bool axi_rb;
55437 };
55438 
55439 struct stmmac_est {
55440 	struct mutex lock;
55441 	int enable;
55442 	u32 btr_reserve[2];
55443 	u32 btr_offset[2];
55444 	u32 btr[2];
55445 	u32 ctr[2];
55446 	u32 ter;
55447 	u32 gcl_unaligned[1024];
55448 	u32 gcl[1024];
55449 	u32 gcl_size;
55450 };
55451 
55452 struct stmmac_rxq_cfg {
55453 	u8 mode_to_use;
55454 	u32 chan;
55455 	u8 pkt_route;
55456 	bool use_prio;
55457 	u32 prio;
55458 };
55459 
55460 struct stmmac_txq_cfg {
55461 	u32 weight;
55462 	u8 mode_to_use;
55463 	u32 send_slope;
55464 	u32 idle_slope;
55465 	u32 high_credit;
55466 	u32 low_credit;
55467 	bool use_prio;
55468 	u32 prio;
55469 	int tbs_en;
55470 };
55471 
55472 enum stmmac_fpe_state {
55473 	FPE_STATE_OFF = 0,
55474 	FPE_STATE_CAPABLE = 1,
55475 	FPE_STATE_ENTERING_ON = 2,
55476 	FPE_STATE_ON = 3,
55477 };
55478 
55479 enum stmmac_mpacket_type {
55480 	MPACKET_VERIFY = 0,
55481 	MPACKET_RESPONSE = 1,
55482 };
55483 
55484 struct stmmac_fpe_cfg {
55485 	bool enable;
55486 	bool hs_enable;
55487 	enum stmmac_fpe_state lp_fpe_state;
55488 	enum stmmac_fpe_state lo_fpe_state;
55489 };
55490 
55491 struct stmmac_safety_feature_cfg {
55492 	u32 tsoee;
55493 	u32 mrxpee;
55494 	u32 mestee;
55495 	u32 mrxee;
55496 	u32 mtxee;
55497 	u32 epsi;
55498 	u32 edpp;
55499 	u32 prtyen;
55500 	u32 tmouten;
55501 };
55502 
55503 struct mac_device_info;
55504 
55505 struct plat_stmmacenet_data {
55506 	int bus_id;
55507 	int phy_addr;
55508 	int interface;
55509 	phy_interface_t phy_interface;
55510 	struct stmmac_mdio_bus_data *mdio_bus_data;
55511 	struct device_node *phy_node;
55512 	struct device_node *phylink_node;
55513 	struct device_node *mdio_node;
55514 	struct stmmac_dma_cfg *dma_cfg;
55515 	struct stmmac_est *est;
55516 	struct stmmac_fpe_cfg *fpe_cfg;
55517 	struct stmmac_safety_feature_cfg *safety_feat_cfg;
55518 	int clk_csr;
55519 	int has_gmac;
55520 	int enh_desc;
55521 	int tx_coe;
55522 	int rx_coe;
55523 	int bugged_jumbo;
55524 	int pmt;
55525 	int force_sf_dma_mode;
55526 	int force_thresh_dma_mode;
55527 	int riwt_off;
55528 	int max_speed;
55529 	int maxmtu;
55530 	int multicast_filter_bins;
55531 	int unicast_filter_entries;
55532 	int tx_fifo_size;
55533 	int rx_fifo_size;
55534 	u32 addr64;
55535 	u32 rx_queues_to_use;
55536 	u32 tx_queues_to_use;
55537 	u8 rx_sched_algorithm;
55538 	u8 tx_sched_algorithm;
55539 	struct stmmac_rxq_cfg rx_queues_cfg[8];
55540 	struct stmmac_txq_cfg tx_queues_cfg[8];
55541 	void (*fix_mac_speed)(void *, unsigned int);
55542 	int (*serdes_powerup)(struct net_device *, void *);
55543 	void (*serdes_powerdown)(struct net_device *, void *);
55544 	void (*speed_mode_2500)(struct net_device *, void *);
55545 	void (*ptp_clk_freq_config)(void *);
55546 	int (*init)(struct platform_device *, void *);
55547 	void (*exit)(struct platform_device *, void *);
55548 	struct mac_device_info * (*setup)(void *);
55549 	int (*clks_config)(void *, bool);
55550 	int (*crosststamp)(ktime_t *, struct system_counterval_t *, void *);
55551 	void (*dump_debug_regs)(void *);
55552 	void *bsp_priv;
55553 	struct clk *stmmac_clk;
55554 	struct clk *pclk;
55555 	struct clk *clk_ptp_ref;
55556 	unsigned int clk_ptp_rate;
55557 	unsigned int clk_ref_rate;
55558 	unsigned int mult_fact_100ns;
55559 	s32 ptp_max_adj;
55560 	u32 cdc_error_adj;
55561 	struct reset_control *stmmac_rst;
55562 	struct reset_control *stmmac_ahb_rst;
55563 	struct stmmac_axi *axi;
55564 	int has_gmac4;
55565 	bool has_sun8i;
55566 	bool tso_en;
55567 	int rss_en;
55568 	int mac_port_sel_speed;
55569 	bool en_tx_lpi_clockgating;
55570 	bool rx_clk_runs_in_lpi;
55571 	int has_xgmac;
55572 	bool vlan_fail_q_en;
55573 	u8 vlan_fail_q;
55574 	unsigned int eee_usecs_rate;
55575 	struct pci_dev *pdev;
55576 	int int_snapshot_num;
55577 	int ext_snapshot_num;
55578 	bool int_snapshot_en;
55579 	bool ext_snapshot_en;
55580 	bool multi_msi_en;
55581 	int msi_mac_vec;
55582 	int msi_wol_vec;
55583 	int msi_lpi_vec;
55584 	int msi_sfty_ce_vec;
55585 	int msi_sfty_ue_vec;
55586 	int msi_rx_base_vec;
55587 	int msi_tx_base_vec;
55588 	bool use_phy_wol;
55589 	bool sph_disable;
55590 	bool serdes_up_after_phy_linkup;
55591 };
55592 
55593 struct mii_regs {
55594 	unsigned int addr;
55595 	unsigned int data;
55596 	unsigned int addr_shift;
55597 	unsigned int reg_shift;
55598 	unsigned int addr_mask;
55599 	unsigned int reg_mask;
55600 	unsigned int clk_csr_shift;
55601 	unsigned int clk_csr_mask;
55602 };
55603 
55604 struct mac_link {
55605 	u32 speed_mask;
55606 	u32 speed10;
55607 	u32 speed100;
55608 	u32 speed1000;
55609 	u32 speed2500;
55610 	u32 duplex;
55611 	struct {
55612 		u32 speed2500;
55613 		u32 speed5000;
55614 		u32 speed10000;
55615 	} xgmii;
55616 	struct {
55617 		u32 speed25000;
55618 		u32 speed40000;
55619 		u32 speed50000;
55620 		u32 speed100000;
55621 	} xlgmii;
55622 };
55623 
55624 struct stmmac_ops;
55625 
55626 struct stmmac_desc_ops;
55627 
55628 struct stmmac_dma_ops;
55629 
55630 struct stmmac_mode_ops;
55631 
55632 struct stmmac_hwtimestamp;
55633 
55634 struct stmmac_tc_ops;
55635 
55636 struct stmmac_mmc_ops;
55637 
55638 struct dw_xpcs;
55639 
55640 struct mac_device_info {
55641 	const struct stmmac_ops *mac;
55642 	const struct stmmac_desc_ops *desc;
55643 	const struct stmmac_dma_ops *dma;
55644 	const struct stmmac_mode_ops *mode;
55645 	const struct stmmac_hwtimestamp *ptp;
55646 	const struct stmmac_tc_ops *tc;
55647 	const struct stmmac_mmc_ops *mmc;
55648 	struct dw_xpcs *xpcs;
55649 	struct mii_regs mii;
55650 	struct mac_link link;
55651 	void *pcsr;
55652 	unsigned int multicast_filter_bins;
55653 	unsigned int unicast_filter_entries;
55654 	unsigned int mcast_bits_log2;
55655 	unsigned int rx_csum;
55656 	unsigned int pcs;
55657 	unsigned int pmt;
55658 	unsigned int ps;
55659 	unsigned int xlgmac;
55660 	unsigned int num_vlan;
55661 	u32 vlan_filter[32];
55662 	unsigned int promisc;
55663 	bool vlan_fail_q_en;
55664 	u8 vlan_fail_q;
55665 };
55666 
55667 struct phylink_link_state {
55668 	long unsigned int advertising[2];
55669 	long unsigned int lp_advertising[2];
55670 	phy_interface_t interface;
55671 	int speed;
55672 	int duplex;
55673 	int pause;
55674 	int rate_matching;
55675 	unsigned int link: 1;
55676 	unsigned int an_enabled: 1;
55677 	unsigned int an_complete: 1;
55678 };
55679 
55680 enum phylink_op_type {
55681 	PHYLINK_NETDEV = 0,
55682 	PHYLINK_DEV = 1,
55683 };
55684 
55685 struct phylink_config {
55686 	struct device *dev;
55687 	enum phylink_op_type type;
55688 	bool legacy_pre_march2020;
55689 	bool poll_fixed_state;
55690 	bool mac_managed_pm;
55691 	bool ovr_an_inband;
55692 	void (*get_fixed_state)(struct phylink_config *, struct phylink_link_state *);
55693 	long unsigned int supported_interfaces[1];
55694 	long unsigned int mac_capabilities;
55695 };
55696 
55697 struct phylink_pcs_ops;
55698 
55699 struct phylink_pcs {
55700 	const struct phylink_pcs_ops *ops;
55701 	bool poll;
55702 };
55703 
55704 struct phylink_pcs_ops {
55705 	int (*pcs_validate)(struct phylink_pcs *, long unsigned int *, const struct phylink_link_state *);
55706 	void (*pcs_get_state)(struct phylink_pcs *, struct phylink_link_state *);
55707 	int (*pcs_config)(struct phylink_pcs *, unsigned int, phy_interface_t, const long unsigned int *, bool);
55708 	void (*pcs_an_restart)(struct phylink_pcs *);
55709 	void (*pcs_link_up)(struct phylink_pcs *, unsigned int, phy_interface_t, int, int);
55710 };
55711 
55712 struct xpcs_id;
55713 
55714 struct dw_xpcs {
55715 	struct mdio_device *mdiodev;
55716 	const struct xpcs_id *id;
55717 	struct phylink_pcs pcs;
55718 };
55719 
55720 struct xpcs_compat;
55721 
55722 struct xpcs_id {
55723 	u32 id;
55724 	u32 mask;
55725 	const struct xpcs_compat *compat;
55726 };
55727 
55728 struct dma_desc {
55729 	__le32 des0;
55730 	__le32 des1;
55731 	__le32 des2;
55732 	__le32 des3;
55733 };
55734 
55735 struct dma_extended_desc {
55736 	struct dma_desc basic;
55737 	__le32 des4;
55738 	__le32 des5;
55739 	__le32 des6;
55740 	__le32 des7;
55741 };
55742 
55743 struct dma_edesc {
55744 	__le32 des4;
55745 	__le32 des5;
55746 	__le32 des6;
55747 	__le32 des7;
55748 	struct dma_desc basic;
55749 };
55750 
55751 struct stmmac_extra_stats;
55752 
55753 struct stmmac_desc_ops {
55754 	void (*init_rx_desc)(struct dma_desc *, int, int, int, int);
55755 	void (*init_tx_desc)(struct dma_desc *, int, int);
55756 	void (*prepare_tx_desc)(struct dma_desc *, int, int, bool, int, bool, bool, unsigned int);
55757 	void (*prepare_tso_tx_desc)(struct dma_desc *, int, int, int, bool, bool, unsigned int, unsigned int);
55758 	void (*set_tx_owner)(struct dma_desc *);
55759 	int (*get_tx_owner)(struct dma_desc *);
55760 	void (*release_tx_desc)(struct dma_desc *, int);
55761 	void (*set_tx_ic)(struct dma_desc *);
55762 	int (*get_tx_ls)(struct dma_desc *);
55763 	int (*tx_status)(void *, struct stmmac_extra_stats *, struct dma_desc *, void *);
55764 	int (*get_tx_len)(struct dma_desc *);
55765 	void (*set_rx_owner)(struct dma_desc *, int);
55766 	int (*get_rx_frame_len)(struct dma_desc *, int);
55767 	int (*rx_status)(void *, struct stmmac_extra_stats *, struct dma_desc *);
55768 	void (*rx_extended_status)(void *, struct stmmac_extra_stats *, struct dma_extended_desc *);
55769 	void (*enable_tx_timestamp)(struct dma_desc *);
55770 	int (*get_tx_timestamp_status)(struct dma_desc *);
55771 	void (*get_timestamp)(void *, u32, u64 *);
55772 	int (*get_rx_timestamp_status)(void *, void *, u32);
55773 	void (*display_ring)(void *, unsigned int, bool, dma_addr_t, unsigned int);
55774 	void (*set_mss)(struct dma_desc *, unsigned int);
55775 	void (*set_addr)(struct dma_desc *, dma_addr_t);
55776 	void (*clear)(struct dma_desc *);
55777 	int (*get_rx_hash)(struct dma_desc *, u32 *, enum pkt_hash_types *);
55778 	void (*get_rx_header_len)(struct dma_desc *, unsigned int *);
55779 	void (*set_sec_addr)(struct dma_desc *, dma_addr_t, bool);
55780 	void (*set_sarc)(struct dma_desc *, u32);
55781 	void (*set_vlan_tag)(struct dma_desc *, u16, u16, u32);
55782 	void (*set_vlan)(struct dma_desc *, u32);
55783 	void (*set_tbs)(struct dma_edesc *, u32, u32);
55784 };
55785 
55786 struct stmmac_txq_stats {
55787 	long unsigned int tx_pkt_n;
55788 	long unsigned int tx_normal_irq_n;
55789 };
55790 
55791 struct stmmac_rxq_stats {
55792 	long unsigned int rx_pkt_n;
55793 	long unsigned int rx_normal_irq_n;
55794 };
55795 
55796 struct stmmac_extra_stats {
55797 	long unsigned int tx_underflow;
55798 	long unsigned int tx_carrier;
55799 	long unsigned int tx_losscarrier;
55800 	long unsigned int vlan_tag;
55801 	long unsigned int tx_deferred;
55802 	long unsigned int tx_vlan;
55803 	long unsigned int tx_jabber;
55804 	long unsigned int tx_frame_flushed;
55805 	long unsigned int tx_payload_error;
55806 	long unsigned int tx_ip_header_error;
55807 	long unsigned int rx_desc;
55808 	long unsigned int sa_filter_fail;
55809 	long unsigned int overflow_error;
55810 	long unsigned int ipc_csum_error;
55811 	long unsigned int rx_collision;
55812 	long unsigned int rx_crc_errors;
55813 	long unsigned int dribbling_bit;
55814 	long unsigned int rx_length;
55815 	long unsigned int rx_mii;
55816 	long unsigned int rx_multicast;
55817 	long unsigned int rx_gmac_overflow;
55818 	long unsigned int rx_watchdog;
55819 	long unsigned int da_rx_filter_fail;
55820 	long unsigned int sa_rx_filter_fail;
55821 	long unsigned int rx_missed_cntr;
55822 	long unsigned int rx_overflow_cntr;
55823 	long unsigned int rx_vlan;
55824 	long unsigned int rx_split_hdr_pkt_n;
55825 	long unsigned int tx_undeflow_irq;
55826 	long unsigned int tx_process_stopped_irq;
55827 	long unsigned int tx_jabber_irq;
55828 	long unsigned int rx_overflow_irq;
55829 	long unsigned int rx_buf_unav_irq;
55830 	long unsigned int rx_process_stopped_irq;
55831 	long unsigned int rx_watchdog_irq;
55832 	long unsigned int tx_early_irq;
55833 	long unsigned int fatal_bus_error_irq;
55834 	long unsigned int rx_early_irq;
55835 	long unsigned int threshold;
55836 	long unsigned int tx_pkt_n;
55837 	long unsigned int rx_pkt_n;
55838 	long unsigned int normal_irq_n;
55839 	long unsigned int rx_normal_irq_n;
55840 	long unsigned int napi_poll;
55841 	long unsigned int tx_normal_irq_n;
55842 	long unsigned int tx_clean;
55843 	long unsigned int tx_set_ic_bit;
55844 	long unsigned int irq_receive_pmt_irq_n;
55845 	long unsigned int mmc_tx_irq_n;
55846 	long unsigned int mmc_rx_irq_n;
55847 	long unsigned int mmc_rx_csum_offload_irq_n;
55848 	long unsigned int irq_tx_path_in_lpi_mode_n;
55849 	long unsigned int irq_tx_path_exit_lpi_mode_n;
55850 	long unsigned int irq_rx_path_in_lpi_mode_n;
55851 	long unsigned int irq_rx_path_exit_lpi_mode_n;
55852 	long unsigned int phy_eee_wakeup_error_n;
55853 	long unsigned int ip_hdr_err;
55854 	long unsigned int ip_payload_err;
55855 	long unsigned int ip_csum_bypassed;
55856 	long unsigned int ipv4_pkt_rcvd;
55857 	long unsigned int ipv6_pkt_rcvd;
55858 	long unsigned int no_ptp_rx_msg_type_ext;
55859 	long unsigned int ptp_rx_msg_type_sync;
55860 	long unsigned int ptp_rx_msg_type_follow_up;
55861 	long unsigned int ptp_rx_msg_type_delay_req;
55862 	long unsigned int ptp_rx_msg_type_delay_resp;
55863 	long unsigned int ptp_rx_msg_type_pdelay_req;
55864 	long unsigned int ptp_rx_msg_type_pdelay_resp;
55865 	long unsigned int ptp_rx_msg_type_pdelay_follow_up;
55866 	long unsigned int ptp_rx_msg_type_announce;
55867 	long unsigned int ptp_rx_msg_type_management;
55868 	long unsigned int ptp_rx_msg_pkt_reserved_type;
55869 	long unsigned int ptp_frame_type;
55870 	long unsigned int ptp_ver;
55871 	long unsigned int timestamp_dropped;
55872 	long unsigned int av_pkt_rcvd;
55873 	long unsigned int av_tagged_pkt_rcvd;
55874 	long unsigned int vlan_tag_priority_val;
55875 	long unsigned int l3_filter_match;
55876 	long unsigned int l4_filter_match;
55877 	long unsigned int l3_l4_filter_no_match;
55878 	long unsigned int irq_pcs_ane_n;
55879 	long unsigned int irq_pcs_link_n;
55880 	long unsigned int irq_rgmii_n;
55881 	long unsigned int pcs_link;
55882 	long unsigned int pcs_duplex;
55883 	long unsigned int pcs_speed;
55884 	long unsigned int mtl_tx_status_fifo_full;
55885 	long unsigned int mtl_tx_fifo_not_empty;
55886 	long unsigned int mmtl_fifo_ctrl;
55887 	long unsigned int mtl_tx_fifo_read_ctrl_write;
55888 	long unsigned int mtl_tx_fifo_read_ctrl_wait;
55889 	long unsigned int mtl_tx_fifo_read_ctrl_read;
55890 	long unsigned int mtl_tx_fifo_read_ctrl_idle;
55891 	long unsigned int mac_tx_in_pause;
55892 	long unsigned int mac_tx_frame_ctrl_xfer;
55893 	long unsigned int mac_tx_frame_ctrl_idle;
55894 	long unsigned int mac_tx_frame_ctrl_wait;
55895 	long unsigned int mac_tx_frame_ctrl_pause;
55896 	long unsigned int mac_gmii_tx_proto_engine;
55897 	long unsigned int mtl_rx_fifo_fill_level_full;
55898 	long unsigned int mtl_rx_fifo_fill_above_thresh;
55899 	long unsigned int mtl_rx_fifo_fill_below_thresh;
55900 	long unsigned int mtl_rx_fifo_fill_level_empty;
55901 	long unsigned int mtl_rx_fifo_read_ctrl_flush;
55902 	long unsigned int mtl_rx_fifo_read_ctrl_read_data;
55903 	long unsigned int mtl_rx_fifo_read_ctrl_status;
55904 	long unsigned int mtl_rx_fifo_read_ctrl_idle;
55905 	long unsigned int mtl_rx_fifo_ctrl_active;
55906 	long unsigned int mac_rx_frame_ctrl_fifo;
55907 	long unsigned int mac_gmii_rx_proto_engine;
55908 	long unsigned int tx_tso_frames;
55909 	long unsigned int tx_tso_nfrags;
55910 	long unsigned int mtl_est_cgce;
55911 	long unsigned int mtl_est_hlbs;
55912 	long unsigned int mtl_est_hlbf;
55913 	long unsigned int mtl_est_btre;
55914 	long unsigned int mtl_est_btrlm;
55915 	struct stmmac_txq_stats txq_stats[8];
55916 	struct stmmac_rxq_stats rxq_stats[8];
55917 	long: 64;
55918 	long: 64;
55919 };
55920 
55921 struct dma_features;
55922 
55923 struct stmmac_dma_ops {
55924 	int (*reset)(void *);
55925 	void (*init)(void *, struct stmmac_dma_cfg *, int);
55926 	void (*init_chan)(void *, struct stmmac_dma_cfg *, u32);
55927 	void (*init_rx_chan)(void *, struct stmmac_dma_cfg *, dma_addr_t, u32);
55928 	void (*init_tx_chan)(void *, struct stmmac_dma_cfg *, dma_addr_t, u32);
55929 	void (*axi)(void *, struct stmmac_axi *);
55930 	void (*dump_regs)(void *, u32 *);
55931 	void (*dma_rx_mode)(void *, int, u32, int, u8);
55932 	void (*dma_tx_mode)(void *, int, u32, int, u8);
55933 	void (*dma_diagnostic_fr)(void *, struct stmmac_extra_stats *, void *);
55934 	void (*enable_dma_transmission)(void *);
55935 	void (*enable_dma_irq)(void *, u32, bool, bool);
55936 	void (*disable_dma_irq)(void *, u32, bool, bool);
55937 	void (*start_tx)(void *, u32);
55938 	void (*stop_tx)(void *, u32);
55939 	void (*start_rx)(void *, u32);
55940 	void (*stop_rx)(void *, u32);
55941 	int (*dma_interrupt)(void *, struct stmmac_extra_stats *, u32, u32);
55942 	int (*get_hw_feature)(void *, struct dma_features *);
55943 	void (*rx_watchdog)(void *, u32, u32);
55944 	void (*set_tx_ring_len)(void *, u32, u32);
55945 	void (*set_rx_ring_len)(void *, u32, u32);
55946 	void (*set_rx_tail_ptr)(void *, u32, u32);
55947 	void (*set_tx_tail_ptr)(void *, u32, u32);
55948 	void (*enable_tso)(void *, bool, u32);
55949 	void (*qmode)(void *, u32, u8);
55950 	void (*set_bfsize)(void *, int, u32);
55951 	void (*enable_sph)(void *, bool, u32);
55952 	int (*enable_tbs)(void *, bool, u32);
55953 };
55954 
55955 struct dma_features {
55956 	unsigned int mbps_10_100;
55957 	unsigned int mbps_1000;
55958 	unsigned int half_duplex;
55959 	unsigned int hash_filter;
55960 	unsigned int multi_addr;
55961 	unsigned int pcs;
55962 	unsigned int sma_mdio;
55963 	unsigned int pmt_remote_wake_up;
55964 	unsigned int pmt_magic_frame;
55965 	unsigned int rmon;
55966 	unsigned int time_stamp;
55967 	unsigned int atime_stamp;
55968 	unsigned int eee;
55969 	unsigned int av;
55970 	unsigned int hash_tb_sz;
55971 	unsigned int tsoen;
55972 	unsigned int tx_coe;
55973 	unsigned int rx_coe;
55974 	unsigned int rx_coe_type1;
55975 	unsigned int rx_coe_type2;
55976 	unsigned int rxfifo_over_2048;
55977 	unsigned int number_rx_channel;
55978 	unsigned int number_tx_channel;
55979 	unsigned int number_rx_queues;
55980 	unsigned int number_tx_queues;
55981 	unsigned int pps_out_num;
55982 	unsigned int enh_desc;
55983 	unsigned int tx_fifo_size;
55984 	unsigned int rx_fifo_size;
55985 	unsigned int asp;
55986 	unsigned int frpsel;
55987 	unsigned int frpbs;
55988 	unsigned int frpes;
55989 	unsigned int addr64;
55990 	unsigned int rssen;
55991 	unsigned int vlhash;
55992 	unsigned int sphen;
55993 	unsigned int vlins;
55994 	unsigned int dvlan;
55995 	unsigned int l3l4fnum;
55996 	unsigned int arpoffsel;
55997 	unsigned int estwid;
55998 	unsigned int estdep;
55999 	unsigned int estsel;
56000 	unsigned int fpesel;
56001 	unsigned int tbssel;
56002 	unsigned int aux_snapshot_n;
56003 };
56004 
56005 struct rgmii_adv;
56006 
56007 struct stmmac_safety_stats;
56008 
56009 struct stmmac_tc_entry;
56010 
56011 struct stmmac_pps_cfg;
56012 
56013 struct stmmac_rss;
56014 
56015 struct stmmac_ops {
56016 	void (*core_init)(struct mac_device_info *, struct net_device *);
56017 	void (*set_mac)(void *, bool);
56018 	int (*rx_ipc)(struct mac_device_info *);
56019 	void (*rx_queue_enable)(struct mac_device_info *, u8, u32);
56020 	void (*rx_queue_prio)(struct mac_device_info *, u32, u32);
56021 	void (*tx_queue_prio)(struct mac_device_info *, u32, u32);
56022 	void (*rx_queue_routing)(struct mac_device_info *, u8, u32);
56023 	void (*prog_mtl_rx_algorithms)(struct mac_device_info *, u32);
56024 	void (*prog_mtl_tx_algorithms)(struct mac_device_info *, u32);
56025 	void (*set_mtl_tx_queue_weight)(struct mac_device_info *, u32, u32);
56026 	void (*map_mtl_to_dma)(struct mac_device_info *, u32, u32);
56027 	void (*config_cbs)(struct mac_device_info *, u32, u32, u32, u32, u32);
56028 	void (*dump_regs)(struct mac_device_info *, u32 *);
56029 	int (*host_irq_status)(struct mac_device_info *, struct stmmac_extra_stats *);
56030 	int (*host_mtl_irq_status)(struct mac_device_info *, u32);
56031 	void (*set_filter)(struct mac_device_info *, struct net_device *);
56032 	void (*flow_ctrl)(struct mac_device_info *, unsigned int, unsigned int, unsigned int, u32);
56033 	void (*pmt)(struct mac_device_info *, long unsigned int);
56034 	void (*set_umac_addr)(struct mac_device_info *, const unsigned char *, unsigned int);
56035 	void (*get_umac_addr)(struct mac_device_info *, unsigned char *, unsigned int);
56036 	void (*set_eee_mode)(struct mac_device_info *, bool);
56037 	void (*reset_eee_mode)(struct mac_device_info *);
56038 	void (*set_eee_lpi_entry_timer)(struct mac_device_info *, int);
56039 	void (*set_eee_timer)(struct mac_device_info *, int, int);
56040 	void (*set_eee_pls)(struct mac_device_info *, int);
56041 	void (*debug)(void *, struct stmmac_extra_stats *, u32, u32);
56042 	void (*pcs_ctrl_ane)(void *, bool, bool, bool);
56043 	void (*pcs_rane)(void *, bool);
56044 	void (*pcs_get_adv_lp)(void *, struct rgmii_adv *);
56045 	int (*safety_feat_config)(void *, unsigned int, struct stmmac_safety_feature_cfg *);
56046 	int (*safety_feat_irq_status)(struct net_device *, void *, unsigned int, struct stmmac_safety_stats *);
56047 	int (*safety_feat_dump)(struct stmmac_safety_stats *, int, long unsigned int *, const char **);
56048 	int (*rxp_config)(void *, struct stmmac_tc_entry *, unsigned int);
56049 	int (*flex_pps_config)(void *, int, struct stmmac_pps_cfg *, bool, u32, u32);
56050 	void (*set_mac_loopback)(void *, bool);
56051 	int (*rss_configure)(struct mac_device_info *, struct stmmac_rss *, u32);
56052 	void (*update_vlan_hash)(struct mac_device_info *, u32, __le16, bool);
56053 	void (*enable_vlan)(struct mac_device_info *, u32);
56054 	int (*add_hw_vlan_rx_fltr)(struct net_device *, struct mac_device_info *, __be16, u16);
56055 	int (*del_hw_vlan_rx_fltr)(struct net_device *, struct mac_device_info *, __be16, u16);
56056 	void (*restore_hw_vlan_rx_fltr)(struct net_device *, struct mac_device_info *);
56057 	int (*get_mac_tx_timestamp)(struct mac_device_info *, u64 *);
56058 	void (*sarc_configure)(void *, int);
56059 	int (*config_l3_filter)(struct mac_device_info *, u32, bool, bool, bool, bool, u32);
56060 	int (*config_l4_filter)(struct mac_device_info *, u32, bool, bool, bool, bool, u32);
56061 	void (*set_arp_offload)(struct mac_device_info *, bool, u32);
56062 	int (*est_configure)(void *, struct stmmac_est *, unsigned int);
56063 	void (*est_irq_status)(void *, struct net_device *, struct stmmac_extra_stats *, u32);
56064 	void (*fpe_configure)(void *, u32, u32, bool);
56065 	void (*fpe_send_mpacket)(void *, enum stmmac_mpacket_type);
56066 	int (*fpe_irq_status)(void *, struct net_device *);
56067 };
56068 
56069 struct rgmii_adv {
56070 	unsigned int pause;
56071 	unsigned int duplex;
56072 	unsigned int lp_pause;
56073 	unsigned int lp_duplex;
56074 };
56075 
56076 struct stmmac_safety_stats {
56077 	long unsigned int mac_errors[32];
56078 	long unsigned int mtl_errors[32];
56079 	long unsigned int dma_errors[32];
56080 };
56081 
56082 struct stmmac_tc_entry {
56083 	bool in_use;
56084 	bool in_hw;
56085 	bool is_last;
56086 	bool is_frag;
56087 	void *frag_ptr;
56088 	unsigned int table_pos;
56089 	u32 handle;
56090 	u32 prio;
56091 	struct {
56092 		u32 match_data;
56093 		u32 match_en;
56094 		u8 af: 1;
56095 		u8 rf: 1;
56096 		u8 im: 1;
56097 		u8 nc: 1;
56098 		u8 res1: 4;
56099 		u8 frame_offset;
56100 		u8 ok_index;
56101 		u8 dma_ch_no;
56102 		u32 res2;
56103 	} val;
56104 };
56105 
56106 struct stmmac_pps_cfg {
56107 	bool available;
56108 	struct timespec64 start;
56109 	struct timespec64 period;
56110 };
56111 
56112 struct stmmac_rss {
56113 	int enable;
56114 	u8 key[40];
56115 	u32 table[256];
56116 };
56117 
56118 struct stmmac_priv;
56119 
56120 struct stmmac_hwtimestamp {
56121 	void (*config_hw_tstamping)(void *, u32);
56122 	void (*config_sub_second_increment)(void *, u32, int, u32 *);
56123 	int (*init_systime)(void *, u32, u32);
56124 	int (*config_addend)(void *, u32);
56125 	int (*adjust_systime)(void *, u32, u32, int, int);
56126 	void (*get_systime)(void *, u64 *);
56127 	void (*get_ptptime)(void *, u64 *);
56128 	void (*timestamp_interrupt)(struct stmmac_priv *);
56129 };
56130 
56131 struct stmmac_rx_buffer;
56132 
56133 struct stmmac_rx_queue {
56134 	u32 rx_count_frames;
56135 	u32 queue_index;
56136 	long: 64;
56137 	long: 64;
56138 	long: 64;
56139 	long: 64;
56140 	long: 64;
56141 	long: 64;
56142 	long: 64;
56143 	struct xdp_rxq_info xdp_rxq;
56144 	struct xsk_buff_pool *xsk_pool;
56145 	struct page_pool *page_pool;
56146 	struct stmmac_rx_buffer *buf_pool;
56147 	struct stmmac_priv *priv_data;
56148 	struct dma_extended_desc *dma_erx;
56149 	long: 64;
56150 	long: 64;
56151 	long: 64;
56152 	struct dma_desc *dma_rx;
56153 	unsigned int cur_rx;
56154 	unsigned int dirty_rx;
56155 	unsigned int buf_alloc_num;
56156 	u32 rx_zeroc_thresh;
56157 	dma_addr_t dma_rx_phy;
56158 	u32 rx_tail_addr;
56159 	unsigned int state_saved;
56160 	struct {
56161 		struct sk_buff *skb;
56162 		unsigned int len;
56163 		unsigned int error;
56164 	} state;
56165 	long: 64;
56166 };
56167 
56168 struct stmmac_tx_info;
56169 
56170 struct stmmac_tx_queue {
56171 	u32 tx_count_frames;
56172 	int tbs;
56173 	struct hrtimer txtimer;
56174 	u32 queue_index;
56175 	struct stmmac_priv *priv_data;
56176 	long: 64;
56177 	long: 64;
56178 	long: 64;
56179 	long: 64;
56180 	long: 64;
56181 	struct dma_extended_desc *dma_etx;
56182 	struct dma_edesc *dma_entx;
56183 	struct dma_desc *dma_tx;
56184 	union {
56185 		struct sk_buff **tx_skbuff;
56186 		struct xdp_frame **xdpf;
56187 	};
56188 	struct stmmac_tx_info *tx_skbuff_dma;
56189 	struct xsk_buff_pool *xsk_pool;
56190 	u32 xsk_frames_done;
56191 	unsigned int cur_tx;
56192 	unsigned int dirty_tx;
56193 	dma_addr_t dma_tx_phy;
56194 	dma_addr_t tx_tail_addr;
56195 	u32 mss;
56196 	long: 32;
56197 	long: 64;
56198 	long: 64;
56199 	long: 64;
56200 	long: 64;
56201 	long: 64;
56202 };
56203 
56204 struct stmmac_dma_conf {
56205 	unsigned int dma_buf_sz;
56206 	long: 32;
56207 	long: 64;
56208 	long: 64;
56209 	long: 64;
56210 	long: 64;
56211 	long: 64;
56212 	long: 64;
56213 	long: 64;
56214 	struct stmmac_rx_queue rx_queue[8];
56215 	unsigned int dma_rx_size;
56216 	long: 32;
56217 	long: 64;
56218 	long: 64;
56219 	long: 64;
56220 	long: 64;
56221 	long: 64;
56222 	long: 64;
56223 	long: 64;
56224 	struct stmmac_tx_queue tx_queue[8];
56225 	unsigned int dma_tx_size;
56226 	long: 32;
56227 	long: 64;
56228 	long: 64;
56229 	long: 64;
56230 	long: 64;
56231 	long: 64;
56232 	long: 64;
56233 	long: 64;
56234 };
56235 
56236 struct stmmac_channel {
56237 	struct napi_struct rx_napi;
56238 	long: 64;
56239 	long: 64;
56240 	long: 64;
56241 	long: 64;
56242 	long: 64;
56243 	long: 64;
56244 	struct napi_struct tx_napi;
56245 	long: 64;
56246 	long: 64;
56247 	long: 64;
56248 	long: 64;
56249 	long: 64;
56250 	long: 64;
56251 	struct napi_struct rxtx_napi;
56252 	struct stmmac_priv *priv_data;
56253 	spinlock_t lock;
56254 	u32 index;
56255 	long: 64;
56256 	long: 64;
56257 	long: 64;
56258 	long: 64;
56259 };
56260 
56261 struct stmmac_counters {
56262 	unsigned int mmc_tx_octetcount_gb;
56263 	unsigned int mmc_tx_framecount_gb;
56264 	unsigned int mmc_tx_broadcastframe_g;
56265 	unsigned int mmc_tx_multicastframe_g;
56266 	unsigned int mmc_tx_64_octets_gb;
56267 	unsigned int mmc_tx_65_to_127_octets_gb;
56268 	unsigned int mmc_tx_128_to_255_octets_gb;
56269 	unsigned int mmc_tx_256_to_511_octets_gb;
56270 	unsigned int mmc_tx_512_to_1023_octets_gb;
56271 	unsigned int mmc_tx_1024_to_max_octets_gb;
56272 	unsigned int mmc_tx_unicast_gb;
56273 	unsigned int mmc_tx_multicast_gb;
56274 	unsigned int mmc_tx_broadcast_gb;
56275 	unsigned int mmc_tx_underflow_error;
56276 	unsigned int mmc_tx_singlecol_g;
56277 	unsigned int mmc_tx_multicol_g;
56278 	unsigned int mmc_tx_deferred;
56279 	unsigned int mmc_tx_latecol;
56280 	unsigned int mmc_tx_exesscol;
56281 	unsigned int mmc_tx_carrier_error;
56282 	unsigned int mmc_tx_octetcount_g;
56283 	unsigned int mmc_tx_framecount_g;
56284 	unsigned int mmc_tx_excessdef;
56285 	unsigned int mmc_tx_pause_frame;
56286 	unsigned int mmc_tx_vlan_frame_g;
56287 	unsigned int mmc_rx_framecount_gb;
56288 	unsigned int mmc_rx_octetcount_gb;
56289 	unsigned int mmc_rx_octetcount_g;
56290 	unsigned int mmc_rx_broadcastframe_g;
56291 	unsigned int mmc_rx_multicastframe_g;
56292 	unsigned int mmc_rx_crc_error;
56293 	unsigned int mmc_rx_align_error;
56294 	unsigned int mmc_rx_run_error;
56295 	unsigned int mmc_rx_jabber_error;
56296 	unsigned int mmc_rx_undersize_g;
56297 	unsigned int mmc_rx_oversize_g;
56298 	unsigned int mmc_rx_64_octets_gb;
56299 	unsigned int mmc_rx_65_to_127_octets_gb;
56300 	unsigned int mmc_rx_128_to_255_octets_gb;
56301 	unsigned int mmc_rx_256_to_511_octets_gb;
56302 	unsigned int mmc_rx_512_to_1023_octets_gb;
56303 	unsigned int mmc_rx_1024_to_max_octets_gb;
56304 	unsigned int mmc_rx_unicast_g;
56305 	unsigned int mmc_rx_length_error;
56306 	unsigned int mmc_rx_autofrangetype;
56307 	unsigned int mmc_rx_pause_frames;
56308 	unsigned int mmc_rx_fifo_overflow;
56309 	unsigned int mmc_rx_vlan_frames_gb;
56310 	unsigned int mmc_rx_watchdog_error;
56311 	unsigned int mmc_rx_ipc_intr_mask;
56312 	unsigned int mmc_rx_ipc_intr;
56313 	unsigned int mmc_rx_ipv4_gd;
56314 	unsigned int mmc_rx_ipv4_hderr;
56315 	unsigned int mmc_rx_ipv4_nopay;
56316 	unsigned int mmc_rx_ipv4_frag;
56317 	unsigned int mmc_rx_ipv4_udsbl;
56318 	unsigned int mmc_rx_ipv4_gd_octets;
56319 	unsigned int mmc_rx_ipv4_hderr_octets;
56320 	unsigned int mmc_rx_ipv4_nopay_octets;
56321 	unsigned int mmc_rx_ipv4_frag_octets;
56322 	unsigned int mmc_rx_ipv4_udsbl_octets;
56323 	unsigned int mmc_rx_ipv6_gd_octets;
56324 	unsigned int mmc_rx_ipv6_hderr_octets;
56325 	unsigned int mmc_rx_ipv6_nopay_octets;
56326 	unsigned int mmc_rx_ipv6_gd;
56327 	unsigned int mmc_rx_ipv6_hderr;
56328 	unsigned int mmc_rx_ipv6_nopay;
56329 	unsigned int mmc_rx_udp_gd;
56330 	unsigned int mmc_rx_udp_err;
56331 	unsigned int mmc_rx_tcp_gd;
56332 	unsigned int mmc_rx_tcp_err;
56333 	unsigned int mmc_rx_icmp_gd;
56334 	unsigned int mmc_rx_icmp_err;
56335 	unsigned int mmc_rx_udp_gd_octets;
56336 	unsigned int mmc_rx_udp_err_octets;
56337 	unsigned int mmc_rx_tcp_gd_octets;
56338 	unsigned int mmc_rx_tcp_err_octets;
56339 	unsigned int mmc_rx_icmp_gd_octets;
56340 	unsigned int mmc_rx_icmp_err_octets;
56341 	unsigned int mmc_tx_fpe_fragment_cntr;
56342 	unsigned int mmc_tx_hold_req_cntr;
56343 	unsigned int mmc_rx_packet_assembly_err_cntr;
56344 	unsigned int mmc_rx_packet_smd_err_cntr;
56345 	unsigned int mmc_rx_packet_assembly_ok_cntr;
56346 	unsigned int mmc_rx_fpe_fragment_cntr;
56347 };
56348 
56349 struct stmmac_flow_entry;
56350 
56351 struct stmmac_rfs_entry;
56352 
56353 struct stmmac_priv {
56354 	u32 tx_coal_frames[8];
56355 	u32 tx_coal_timer[8];
56356 	u32 rx_coal_frames[8];
56357 	int hwts_tx_en;
56358 	bool tx_path_in_lpi_mode;
56359 	bool tso;
56360 	int sph;
56361 	int sph_cap;
56362 	u32 sarc_type;
56363 	unsigned int rx_copybreak;
56364 	u32 rx_riwt[8];
56365 	int hwts_rx_en;
56366 	void *ioaddr;
56367 	struct net_device *dev;
56368 	struct device *device;
56369 	struct mac_device_info *hw;
56370 	int (*hwif_quirks)(struct stmmac_priv *);
56371 	struct mutex lock;
56372 	long: 64;
56373 	long: 64;
56374 	long: 64;
56375 	struct stmmac_dma_conf dma_conf;
56376 	struct stmmac_channel channel[8];
56377 	int speed;
56378 	unsigned int flow_ctrl;
56379 	unsigned int pause;
56380 	struct mii_bus *mii;
56381 	struct phylink_config phylink_config;
56382 	struct phylink *phylink;
56383 	long: 64;
56384 	long: 64;
56385 	long: 64;
56386 	long: 64;
56387 	long: 64;
56388 	long: 64;
56389 	long: 64;
56390 	struct stmmac_extra_stats xstats;
56391 	struct stmmac_safety_stats sstats;
56392 	struct plat_stmmacenet_data *plat;
56393 	struct dma_features dma_cap;
56394 	struct stmmac_counters mmc;
56395 	int hw_cap_support;
56396 	int synopsys_id;
56397 	u32 msg_enable;
56398 	int wolopts;
56399 	int wol_irq;
56400 	int clk_csr;
56401 	struct timer_list eee_ctrl_timer;
56402 	int lpi_irq;
56403 	int eee_enabled;
56404 	int eee_active;
56405 	int tx_lpi_timer;
56406 	int tx_lpi_enabled;
56407 	int eee_tw_timer;
56408 	bool eee_sw_timer_en;
56409 	unsigned int mode;
56410 	unsigned int chain_mode;
56411 	int extend_desc;
56412 	struct hwtstamp_config tstamp_config;
56413 	struct ptp_clock *ptp_clock;
56414 	struct ptp_clock_info ptp_clock_ops;
56415 	unsigned int default_addend;
56416 	u32 sub_second_inc;
56417 	u32 systime_flags;
56418 	u32 adv_ts;
56419 	int use_riwt;
56420 	int irq_wake;
56421 	rwlock_t ptp_lock;
56422 	struct mutex aux_ts_lock;
56423 	wait_queue_head_t tstamp_busy_wait;
56424 	void *mmcaddr;
56425 	void *ptpaddr;
56426 	long unsigned int active_vlans[64];
56427 	int sfty_ce_irq;
56428 	int sfty_ue_irq;
56429 	int rx_irq[8];
56430 	int tx_irq[8];
56431 	char int_name_mac[25];
56432 	char int_name_wol[25];
56433 	char int_name_lpi[25];
56434 	char int_name_sfty_ce[26];
56435 	char int_name_sfty_ue[26];
56436 	char int_name_rx_irq[240];
56437 	char int_name_tx_irq[272];
56438 	struct dentry *dbgfs_dir;
56439 	long unsigned int state;
56440 	struct workqueue_struct *wq;
56441 	struct work_struct service_task;
56442 	long unsigned int fpe_task_state;
56443 	struct workqueue_struct *fpe_wq;
56444 	struct work_struct fpe_task;
56445 	char wq_name[20];
56446 	unsigned int tc_entries_max;
56447 	unsigned int tc_off_max;
56448 	struct stmmac_tc_entry *tc_entries;
56449 	unsigned int flow_entries_max;
56450 	struct stmmac_flow_entry *flow_entries;
56451 	unsigned int rfs_entries_max[3];
56452 	unsigned int rfs_entries_cnt[3];
56453 	unsigned int rfs_entries_total;
56454 	struct stmmac_rfs_entry *rfs_entries;
56455 	struct stmmac_pps_cfg pps[4];
56456 	struct stmmac_rss rss;
56457 	long unsigned int *af_xdp_zc_qps;
56458 	struct bpf_prog *xdp_prog;
56459 	long: 64;
56460 	long: 64;
56461 	long: 64;
56462 	long: 64;
56463 };
56464 
56465 struct stmmac_mode_ops {
56466 	void (*init)(void *, dma_addr_t, unsigned int, unsigned int);
56467 	unsigned int (*is_jumbo_frm)(int, int);
56468 	int (*jumbo_frm)(void *, struct sk_buff *, int);
56469 	int (*set_16kib_bfsize)(int);
56470 	void (*init_desc3)(struct dma_desc *);
56471 	void (*refill_desc3)(void *, struct dma_desc *);
56472 	void (*clean_desc3)(void *, struct dma_desc *);
56473 };
56474 
56475 struct tc_cls_u32_offload;
56476 
56477 struct tc_cbs_qopt_offload;
56478 
56479 struct flow_cls_offload;
56480 
56481 struct tc_taprio_qopt_offload;
56482 
56483 struct tc_etf_qopt_offload;
56484 
56485 struct stmmac_tc_ops {
56486 	int (*init)(struct stmmac_priv *);
56487 	int (*setup_cls_u32)(struct stmmac_priv *, struct tc_cls_u32_offload *);
56488 	int (*setup_cbs)(struct stmmac_priv *, struct tc_cbs_qopt_offload *);
56489 	int (*setup_cls)(struct stmmac_priv *, struct flow_cls_offload *);
56490 	int (*setup_taprio)(struct stmmac_priv *, struct tc_taprio_qopt_offload *);
56491 	int (*setup_etf)(struct stmmac_priv *, struct tc_etf_qopt_offload *);
56492 };
56493 
56494 struct stmmac_mmc_ops {
56495 	void (*ctrl)(void *, unsigned int);
56496 	void (*intr_all_mask)(void *);
56497 	void (*read)(void *, struct stmmac_counters *);
56498 };
56499 
56500 enum stmmac_txbuf_type {
56501 	STMMAC_TXBUF_T_SKB = 0,
56502 	STMMAC_TXBUF_T_XDP_TX = 1,
56503 	STMMAC_TXBUF_T_XDP_NDO = 2,
56504 	STMMAC_TXBUF_T_XSK_TX = 3,
56505 };
56506 
56507 struct stmmac_tx_info {
56508 	dma_addr_t buf;
56509 	bool map_as_page;
56510 	unsigned int len;
56511 	bool last_segment;
56512 	bool is_jumbo;
56513 	enum stmmac_txbuf_type buf_type;
56514 };
56515 
56516 struct stmmac_rx_buffer {
56517 	union {
56518 		struct {
56519 			struct page *page;
56520 			dma_addr_t addr;
56521 			__u32 page_offset;
56522 		};
56523 		struct xdp_buff *xdp;
56524 	};
56525 	struct page *sec_page;
56526 	dma_addr_t sec_addr;
56527 };
56528 
56529 struct stmmac_flow_entry {
56530 	long unsigned int cookie;
56531 	long unsigned int action;
56532 	u8 ip_proto;
56533 	int in_use;
56534 	int idx;
56535 	int is_l4;
56536 };
56537 
56538 struct stmmac_rfs_entry {
56539 	long unsigned int cookie;
56540 	u16 etype;
56541 	int in_use;
56542 	int type;
56543 	int tc;
56544 };
56545 
56546 enum dma_irq_status {
56547 	tx_hard_error = 1,
56548 	tx_hard_error_bump_tc = 2,
56549 	handle_rx = 4,
56550 	handle_tx = 8,
56551 };
56552 
56553 enum dma_irq_dir {
56554 	DMA_DIR_RX = 1,
56555 	DMA_DIR_TX = 2,
56556 	DMA_DIR_RXTX = 3,
56557 };
56558 
56559 enum ttc_control {
56560 	DMA_CONTROL_TTC_DEFAULT = 0,
56561 	DMA_CONTROL_TTC_64 = 16384,
56562 	DMA_CONTROL_TTC_128 = 32768,
56563 	DMA_CONTROL_TTC_256 = 49152,
56564 	DMA_CONTROL_TTC_18 = 4194304,
56565 	DMA_CONTROL_TTC_24 = 4210688,
56566 	DMA_CONTROL_TTC_32 = 4227072,
56567 	DMA_CONTROL_TTC_40 = 4243456,
56568 	DMA_CONTROL_SE = 8,
56569 	DMA_CONTROL_OSF = 4,
56570 };
56571 
56572 struct pps_event_time {
56573 	struct timespec64 ts_real;
56574 };
56575 
56576 enum ptp_clock_events {
56577 	PTP_CLOCK_ALARM = 0,
56578 	PTP_CLOCK_EXTTS = 1,
56579 	PTP_CLOCK_PPS = 2,
56580 	PTP_CLOCK_PPSUSR = 3,
56581 };
56582 
56583 struct ptp_clock_event {
56584 	int type;
56585 	int index;
56586 	union {
56587 		u64 timestamp;
56588 		struct pps_event_time pps_times;
56589 	};
56590 };
56591 
56592 enum stmmac_rfs_type {
56593 	STMMAC_RFS_T_VLAN = 0,
56594 	STMMAC_RFS_T_LLDP = 1,
56595 	STMMAC_RFS_T_1588 = 2,
56596 	STMMAC_RFS_T_MAX = 3,
56597 };
56598 
56599 enum {
56600 	TC_TAPRIO_CMD_SET_GATES = 0,
56601 	TC_TAPRIO_CMD_SET_AND_HOLD = 1,
56602 	TC_TAPRIO_CMD_SET_AND_RELEASE = 2,
56603 };
56604 
56605 enum tca_id {
56606 	TCA_ID_UNSPEC = 0,
56607 	TCA_ID_POLICE = 1,
56608 	TCA_ID_GACT = 5,
56609 	TCA_ID_IPT = 6,
56610 	TCA_ID_PEDIT = 7,
56611 	TCA_ID_MIRRED = 8,
56612 	TCA_ID_NAT = 9,
56613 	TCA_ID_XT = 10,
56614 	TCA_ID_SKBEDIT = 11,
56615 	TCA_ID_VLAN = 12,
56616 	TCA_ID_BPF = 13,
56617 	TCA_ID_CONNMARK = 14,
56618 	TCA_ID_SKBMOD = 15,
56619 	TCA_ID_CSUM = 16,
56620 	TCA_ID_TUNNEL_KEY = 17,
56621 	TCA_ID_SIMP = 22,
56622 	TCA_ID_IFE = 25,
56623 	TCA_ID_SAMPLE = 26,
56624 	TCA_ID_CTINFO = 27,
56625 	TCA_ID_MPLS = 28,
56626 	TCA_ID_CT = 29,
56627 	TCA_ID_GATE = 30,
56628 	__TCA_ID_MAX = 255,
56629 };
56630 
56631 struct tcf_t {
56632 	__u64 install;
56633 	__u64 lastuse;
56634 	__u64 expires;
56635 	__u64 firstuse;
56636 };
56637 
56638 struct tc_u32_key {
56639 	__be32 mask;
56640 	__be32 val;
56641 	int off;
56642 	int offmask;
56643 };
56644 
56645 struct tc_u32_sel {
56646 	unsigned char flags;
56647 	unsigned char offshift;
56648 	unsigned char nkeys;
56649 	__be16 offmask;
56650 	__u16 off;
56651 	short int offoff;
56652 	short int hoff;
56653 	__be32 hmask;
56654 	struct tc_u32_key keys[0];
56655 };
56656 
56657 struct flow_dissector_key_basic {
56658 	__be16 n_proto;
56659 	u8 ip_proto;
56660 	u8 padding;
56661 };
56662 
56663 struct flow_dissector_key_vlan {
56664 	union {
56665 		struct {
56666 			u16 vlan_id: 12;
56667 			u16 vlan_dei: 1;
56668 			u16 vlan_priority: 3;
56669 		};
56670 		__be16 vlan_tci;
56671 	};
56672 	__be16 vlan_tpid;
56673 	__be16 vlan_eth_type;
56674 	u16 padding;
56675 };
56676 
56677 struct flow_dissector_key_ipv4_addrs {
56678 	__be32 src;
56679 	__be32 dst;
56680 };
56681 
56682 struct flow_dissector_key_ports {
56683 	union {
56684 		__be32 ports;
56685 		struct {
56686 			__be16 src;
56687 			__be16 dst;
56688 		};
56689 	};
56690 };
56691 
56692 struct flow_dissector {
56693 	unsigned int used_keys;
56694 	short unsigned int offset[31];
56695 };
56696 
56697 struct net_generic {
56698 	union {
56699 		struct {
56700 			unsigned int len;
56701 			struct callback_head rcu;
56702 		} s;
56703 		struct {
56704 			struct {			} __empty_ptr;
56705 			void *ptr[0];
56706 		};
56707 	};
56708 };
56709 
56710 struct flow_match {
56711 	struct flow_dissector *dissector;
56712 	void *mask;
56713 	void *key;
56714 };
56715 
56716 struct flow_match_basic {
56717 	struct flow_dissector_key_basic *key;
56718 	struct flow_dissector_key_basic *mask;
56719 };
56720 
56721 struct flow_match_vlan {
56722 	struct flow_dissector_key_vlan *key;
56723 	struct flow_dissector_key_vlan *mask;
56724 };
56725 
56726 struct flow_match_ipv4_addrs {
56727 	struct flow_dissector_key_ipv4_addrs *key;
56728 	struct flow_dissector_key_ipv4_addrs *mask;
56729 };
56730 
56731 struct flow_match_ports {
56732 	struct flow_dissector_key_ports *key;
56733 	struct flow_dissector_key_ports *mask;
56734 };
56735 
56736 enum flow_action_id {
56737 	FLOW_ACTION_ACCEPT = 0,
56738 	FLOW_ACTION_DROP = 1,
56739 	FLOW_ACTION_TRAP = 2,
56740 	FLOW_ACTION_GOTO = 3,
56741 	FLOW_ACTION_REDIRECT = 4,
56742 	FLOW_ACTION_MIRRED = 5,
56743 	FLOW_ACTION_REDIRECT_INGRESS = 6,
56744 	FLOW_ACTION_MIRRED_INGRESS = 7,
56745 	FLOW_ACTION_VLAN_PUSH = 8,
56746 	FLOW_ACTION_VLAN_POP = 9,
56747 	FLOW_ACTION_VLAN_MANGLE = 10,
56748 	FLOW_ACTION_TUNNEL_ENCAP = 11,
56749 	FLOW_ACTION_TUNNEL_DECAP = 12,
56750 	FLOW_ACTION_MANGLE = 13,
56751 	FLOW_ACTION_ADD = 14,
56752 	FLOW_ACTION_CSUM = 15,
56753 	FLOW_ACTION_MARK = 16,
56754 	FLOW_ACTION_PTYPE = 17,
56755 	FLOW_ACTION_PRIORITY = 18,
56756 	FLOW_ACTION_RX_QUEUE_MAPPING = 19,
56757 	FLOW_ACTION_WAKE = 20,
56758 	FLOW_ACTION_QUEUE = 21,
56759 	FLOW_ACTION_SAMPLE = 22,
56760 	FLOW_ACTION_POLICE = 23,
56761 	FLOW_ACTION_CT = 24,
56762 	FLOW_ACTION_CT_METADATA = 25,
56763 	FLOW_ACTION_MPLS_PUSH = 26,
56764 	FLOW_ACTION_MPLS_POP = 27,
56765 	FLOW_ACTION_MPLS_MANGLE = 28,
56766 	FLOW_ACTION_GATE = 29,
56767 	FLOW_ACTION_PPPOE_PUSH = 30,
56768 	FLOW_ACTION_JUMP = 31,
56769 	FLOW_ACTION_PIPE = 32,
56770 	FLOW_ACTION_VLAN_PUSH_ETH = 33,
56771 	FLOW_ACTION_VLAN_POP_ETH = 34,
56772 	FLOW_ACTION_CONTINUE = 35,
56773 	NUM_FLOW_ACTIONS = 36,
56774 };
56775 
56776 enum flow_action_mangle_base {
56777 	FLOW_ACT_MANGLE_UNSPEC = 0,
56778 	FLOW_ACT_MANGLE_HDR_TYPE_ETH = 1,
56779 	FLOW_ACT_MANGLE_HDR_TYPE_IP4 = 2,
56780 	FLOW_ACT_MANGLE_HDR_TYPE_IP6 = 3,
56781 	FLOW_ACT_MANGLE_HDR_TYPE_TCP = 4,
56782 	FLOW_ACT_MANGLE_HDR_TYPE_UDP = 5,
56783 };
56784 
56785 enum flow_action_hw_stats {
56786 	FLOW_ACTION_HW_STATS_IMMEDIATE = 1,
56787 	FLOW_ACTION_HW_STATS_DELAYED = 2,
56788 	FLOW_ACTION_HW_STATS_ANY = 3,
56789 	FLOW_ACTION_HW_STATS_DISABLED = 4,
56790 	FLOW_ACTION_HW_STATS_DONT_CARE = 7,
56791 };
56792 
56793 typedef void (*action_destr)(void *);
56794 
56795 struct flow_action_cookie {
56796 	u32 cookie_len;
56797 	u8 cookie[0];
56798 };
56799 
56800 struct nf_flowtable;
56801 
56802 struct ip_tunnel_info;
56803 
56804 struct psample_group;
56805 
56806 struct action_gate_entry;
56807 
56808 struct flow_action_entry {
56809 	enum flow_action_id id;
56810 	u32 hw_index;
56811 	enum flow_action_hw_stats hw_stats;
56812 	action_destr destructor;
56813 	void *destructor_priv;
56814 	union {
56815 		u32 chain_index;
56816 		struct net_device *dev;
56817 		struct {
56818 			u16 vid;
56819 			__be16 proto;
56820 			u8 prio;
56821 		} vlan;
56822 		struct {
56823 			unsigned char dst[6];
56824 			unsigned char src[6];
56825 		} vlan_push_eth;
56826 		struct {
56827 			enum flow_action_mangle_base htype;
56828 			u32 offset;
56829 			u32 mask;
56830 			u32 val;
56831 		} mangle;
56832 		struct ip_tunnel_info *tunnel;
56833 		u32 csum_flags;
56834 		u32 mark;
56835 		u16 ptype;
56836 		u16 rx_queue;
56837 		u32 priority;
56838 		struct {
56839 			u32 ctx;
56840 			u32 index;
56841 			u8 vf;
56842 		} queue;
56843 		struct {
56844 			struct psample_group *psample_group;
56845 			u32 rate;
56846 			u32 trunc_size;
56847 			bool truncate;
56848 		} sample;
56849 		struct {
56850 			u32 burst;
56851 			u64 rate_bytes_ps;
56852 			u64 peakrate_bytes_ps;
56853 			u32 avrate;
56854 			u16 overhead;
56855 			u64 burst_pkt;
56856 			u64 rate_pkt_ps;
56857 			u32 mtu;
56858 			struct {
56859 				enum flow_action_id act_id;
56860 				u32 extval;
56861 			} exceed;
56862 			struct {
56863 				enum flow_action_id act_id;
56864 				u32 extval;
56865 			} notexceed;
56866 		} police;
56867 		struct {
56868 			int action;
56869 			u16 zone;
56870 			struct nf_flowtable *flow_table;
56871 		} ct;
56872 		struct {
56873 			long unsigned int cookie;
56874 			u32 mark;
56875 			u32 labels[4];
56876 			bool orig_dir;
56877 		} ct_metadata;
56878 		struct {
56879 			u32 label;
56880 			__be16 proto;
56881 			u8 tc;
56882 			u8 bos;
56883 			u8 ttl;
56884 		} mpls_push;
56885 		struct {
56886 			__be16 proto;
56887 		} mpls_pop;
56888 		struct {
56889 			u32 label;
56890 			u8 tc;
56891 			u8 bos;
56892 			u8 ttl;
56893 		} mpls_mangle;
56894 		struct {
56895 			s32 prio;
56896 			u64 basetime;
56897 			u64 cycletime;
56898 			u64 cycletimeext;
56899 			u32 num_entries;
56900 			struct action_gate_entry *entries;
56901 		} gate;
56902 		struct {
56903 			u16 sid;
56904 		} pppoe;
56905 	};
56906 	struct flow_action_cookie *cookie;
56907 };
56908 
56909 struct flow_action {
56910 	unsigned int num_entries;
56911 	struct flow_action_entry entries[0];
56912 };
56913 
56914 struct flow_rule {
56915 	struct flow_match match;
56916 	struct flow_action action;
56917 };
56918 
56919 struct flow_stats {
56920 	u64 pkts;
56921 	u64 bytes;
56922 	u64 drops;
56923 	u64 lastused;
56924 	enum flow_action_hw_stats used_hw_stats;
56925 	bool used_hw_stats_valid;
56926 };
56927 
56928 enum flow_cls_command {
56929 	FLOW_CLS_REPLACE = 0,
56930 	FLOW_CLS_DESTROY = 1,
56931 	FLOW_CLS_STATS = 2,
56932 	FLOW_CLS_TMPLT_CREATE = 3,
56933 	FLOW_CLS_TMPLT_DESTROY = 4,
56934 };
56935 
56936 struct flow_cls_common_offload {
56937 	u32 chain_index;
56938 	__be16 protocol;
56939 	u32 prio;
56940 	struct netlink_ext_ack *extack;
56941 };
56942 
56943 struct flow_cls_offload {
56944 	struct flow_cls_common_offload common;
56945 	enum flow_cls_command command;
56946 	long unsigned int cookie;
56947 	struct flow_rule *rule;
56948 	struct flow_stats stats;
56949 	u32 classid;
56950 };
56951 
56952 struct tcf_walker {
56953 	int stop;
56954 	int skip;
56955 	int count;
56956 	bool nonempty;
56957 	long unsigned int cookie;
56958 	int (*fn)(struct tcf_proto *, void *, struct tcf_walker *);
56959 };
56960 
56961 struct tc_cbs_qopt_offload {
56962 	u8 enable;
56963 	s32 queue;
56964 	s32 hicredit;
56965 	s32 locredit;
56966 	s32 idleslope;
56967 	s32 sendslope;
56968 };
56969 
56970 struct tc_etf_qopt_offload {
56971 	u8 enable;
56972 	s32 queue;
56973 };
56974 
56975 struct tc_taprio_sched_entry {
56976 	u8 command;
56977 	u32 gate_mask;
56978 	u32 interval;
56979 };
56980 
56981 struct tc_taprio_qopt_offload {
56982 	u8 enable;
56983 	ktime_t base_time;
56984 	u64 cycle_time;
56985 	u64 cycle_time_extension;
56986 	u32 max_sdu[16];
56987 	size_t num_entries;
56988 	struct tc_taprio_sched_entry entries[0];
56989 };
56990 
56991 struct tcf_idrinfo {
56992 	struct mutex lock;
56993 	struct idr action_idr;
56994 	struct net *net;
56995 };
56996 
56997 struct tc_action_ops;
56998 
56999 struct tc_cookie;
57000 
57001 struct tc_action {
57002 	const struct tc_action_ops *ops;
57003 	__u32 type;
57004 	struct tcf_idrinfo *idrinfo;
57005 	u32 tcfa_index;
57006 	refcount_t tcfa_refcnt;
57007 	atomic_t tcfa_bindcnt;
57008 	int tcfa_action;
57009 	struct tcf_t tcfa_tm;
57010 	long: 64;
57011 	struct gnet_stats_basic_sync tcfa_bstats;
57012 	struct gnet_stats_basic_sync tcfa_bstats_hw;
57013 	struct gnet_stats_queue tcfa_qstats;
57014 	struct net_rate_estimator *tcfa_rate_est;
57015 	spinlock_t tcfa_lock;
57016 	struct gnet_stats_basic_sync *cpu_bstats;
57017 	struct gnet_stats_basic_sync *cpu_bstats_hw;
57018 	struct gnet_stats_queue *cpu_qstats;
57019 	struct tc_cookie *act_cookie;
57020 	struct tcf_chain *goto_chain;
57021 	u32 tcfa_flags;
57022 	u8 hw_stats;
57023 	u8 used_hw_stats;
57024 	bool used_hw_stats_valid;
57025 	u32 in_hw_count;
57026 };
57027 
57028 typedef void (*tc_action_priv_destructor)(void *);
57029 
57030 struct tc_action_ops {
57031 	struct list_head head;
57032 	char kind[16];
57033 	enum tca_id id;
57034 	unsigned int net_id;
57035 	size_t size;
57036 	struct module *owner;
57037 	int (*act)(struct sk_buff *, const struct tc_action *, struct tcf_result *);
57038 	int (*dump)(struct sk_buff *, struct tc_action *, int, int);
57039 	void (*cleanup)(struct tc_action *);
57040 	int (*lookup)(struct net *, struct tc_action **, u32);
57041 	int (*init)(struct net *, struct nlattr *, struct nlattr *, struct tc_action **, struct tcf_proto *, u32, struct netlink_ext_ack *);
57042 	int (*walk)(struct net *, struct sk_buff *, struct netlink_callback *, int, const struct tc_action_ops *, struct netlink_ext_ack *);
57043 	void (*stats_update)(struct tc_action *, u64, u64, u64, u64, bool);
57044 	size_t (*get_fill_size)(const struct tc_action *);
57045 	struct net_device * (*get_dev)(const struct tc_action *, tc_action_priv_destructor *);
57046 	struct psample_group * (*get_psample_group)(const struct tc_action *, tc_action_priv_destructor *);
57047 	int (*offload_act_setup)(struct tc_action *, void *, u32 *, bool, struct netlink_ext_ack *);
57048 };
57049 
57050 struct tc_cookie {
57051 	u8 *data;
57052 	u32 len;
57053 	struct callback_head rcu;
57054 };
57055 
57056 struct tcf_exts {
57057 	__u32 type;
57058 	int nr_actions;
57059 	struct tc_action **actions;
57060 	struct net *net;
57061 	netns_tracker ns_tracker;
57062 	int action;
57063 	int police;
57064 };
57065 
57066 struct tc_cls_u32_knode {
57067 	struct tcf_exts *exts;
57068 	struct tcf_result *res;
57069 	struct tc_u32_sel *sel;
57070 	u32 handle;
57071 	u32 val;
57072 	u32 mask;
57073 	u32 link_handle;
57074 	u8 fshift;
57075 };
57076 
57077 struct tc_cls_u32_hnode {
57078 	u32 handle;
57079 	u32 prio;
57080 	unsigned int divisor;
57081 };
57082 
57083 enum tc_clsu32_command {
57084 	TC_CLSU32_NEW_KNODE = 0,
57085 	TC_CLSU32_REPLACE_KNODE = 1,
57086 	TC_CLSU32_DELETE_KNODE = 2,
57087 	TC_CLSU32_NEW_HNODE = 3,
57088 	TC_CLSU32_REPLACE_HNODE = 4,
57089 	TC_CLSU32_DELETE_HNODE = 5,
57090 };
57091 
57092 struct tc_cls_u32_offload {
57093 	struct flow_cls_common_offload common;
57094 	enum tc_clsu32_command command;
57095 	union {
57096 		struct tc_cls_u32_knode knode;
57097 		struct tc_cls_u32_hnode hnode;
57098 	};
57099 };
57100 
57101 struct tcf_gact {
57102 	struct tc_action common;
57103 	u16 tcfg_ptype;
57104 	u16 tcfg_pval;
57105 	int tcfg_paction;
57106 	atomic_t packets;
57107 };
57108 
57109 enum packets_types {
57110 	PACKET_AVCPQ = 1,
57111 	PACKET_PTPQ = 2,
57112 	PACKET_DCBCPQ = 3,
57113 	PACKET_UPQ = 4,
57114 	PACKET_MCBCQ = 5,
57115 };
57116 
57117 struct xdp_desc {
57118 	__u64 addr;
57119 	__u32 len;
57120 	__u32 options;
57121 };
57122 
57123 struct xdp_umem;
57124 
57125 struct xsk_queue;
57126 
57127 struct xdp_buff_xsk;
57128 
57129 struct xsk_buff_pool {
57130 	struct device *dev;
57131 	struct net_device *netdev;
57132 	struct list_head xsk_tx_list;
57133 	spinlock_t xsk_tx_list_lock;
57134 	refcount_t users;
57135 	struct xdp_umem *umem;
57136 	struct work_struct work;
57137 	struct list_head free_list;
57138 	u32 heads_cnt;
57139 	u16 queue_id;
57140 	long: 16;
57141 	long: 64;
57142 	long: 64;
57143 	long: 64;
57144 	struct xsk_queue *fq;
57145 	struct xsk_queue *cq;
57146 	dma_addr_t *dma_pages;
57147 	struct xdp_buff_xsk *heads;
57148 	struct xdp_desc *tx_descs;
57149 	u64 chunk_mask;
57150 	u64 addrs_cnt;
57151 	u32 free_list_cnt;
57152 	u32 dma_pages_cnt;
57153 	u32 free_heads_cnt;
57154 	u32 headroom;
57155 	u32 chunk_size;
57156 	u32 chunk_shift;
57157 	u32 frame_len;
57158 	u8 cached_need_wakeup;
57159 	bool uses_need_wakeup;
57160 	bool dma_need_sync;
57161 	bool unaligned;
57162 	void *addrs;
57163 	spinlock_t cq_lock;
57164 	struct xdp_buff_xsk *free_heads[0];
57165 	long: 64;
57166 	long: 64;
57167 	long: 64;
57168 };
57169 
57170 struct xdp_umem {
57171 	void *addrs;
57172 	u64 size;
57173 	u32 headroom;
57174 	u32 chunk_size;
57175 	u32 chunks;
57176 	u32 npgs;
57177 	struct user_struct *user;
57178 	refcount_t users;
57179 	u8 flags;
57180 	bool zc;
57181 	struct page **pgs;
57182 	int id;
57183 	struct list_head xsk_dma_list;
57184 	struct work_struct work;
57185 };
57186 
57187 struct xdp_buff_xsk {
57188 	struct xdp_buff xdp;
57189 	dma_addr_t dma;
57190 	dma_addr_t frame_dma;
57191 	struct xsk_buff_pool *pool;
57192 	u64 orig_addr;
57193 	struct list_head free_list_node;
57194 };
57195 
57196 struct atomic_notifier_head {
57197 	spinlock_t lock;
57198 	struct notifier_block *head;
57199 };
57200 
57201 struct usb_device_id {
57202 	__u16 match_flags;
57203 	__u16 idVendor;
57204 	__u16 idProduct;
57205 	__u16 bcdDevice_lo;
57206 	__u16 bcdDevice_hi;
57207 	__u8 bDeviceClass;
57208 	__u8 bDeviceSubClass;
57209 	__u8 bDeviceProtocol;
57210 	__u8 bInterfaceClass;
57211 	__u8 bInterfaceSubClass;
57212 	__u8 bInterfaceProtocol;
57213 	__u8 bInterfaceNumber;
57214 	kernel_ulong_t driver_info;
57215 };
57216 
57217 struct usb_descriptor_header {
57218 	__u8 bLength;
57219 	__u8 bDescriptorType;
57220 };
57221 
57222 struct usb_device_descriptor {
57223 	__u8 bLength;
57224 	__u8 bDescriptorType;
57225 	__le16 bcdUSB;
57226 	__u8 bDeviceClass;
57227 	__u8 bDeviceSubClass;
57228 	__u8 bDeviceProtocol;
57229 	__u8 bMaxPacketSize0;
57230 	__le16 idVendor;
57231 	__le16 idProduct;
57232 	__le16 bcdDevice;
57233 	__u8 iManufacturer;
57234 	__u8 iProduct;
57235 	__u8 iSerialNumber;
57236 	__u8 bNumConfigurations;
57237 };
57238 
57239 struct usb_config_descriptor {
57240 	__u8 bLength;
57241 	__u8 bDescriptorType;
57242 	__le16 wTotalLength;
57243 	__u8 bNumInterfaces;
57244 	__u8 bConfigurationValue;
57245 	__u8 iConfiguration;
57246 	__u8 bmAttributes;
57247 	__u8 bMaxPower;
57248 } __attribute__((packed));
57249 
57250 struct usb_interface_descriptor {
57251 	__u8 bLength;
57252 	__u8 bDescriptorType;
57253 	__u8 bInterfaceNumber;
57254 	__u8 bAlternateSetting;
57255 	__u8 bNumEndpoints;
57256 	__u8 bInterfaceClass;
57257 	__u8 bInterfaceSubClass;
57258 	__u8 bInterfaceProtocol;
57259 	__u8 iInterface;
57260 };
57261 
57262 struct usb_endpoint_descriptor {
57263 	__u8 bLength;
57264 	__u8 bDescriptorType;
57265 	__u8 bEndpointAddress;
57266 	__u8 bmAttributes;
57267 	__le16 wMaxPacketSize;
57268 	__u8 bInterval;
57269 	__u8 bRefresh;
57270 	__u8 bSynchAddress;
57271 } __attribute__((packed));
57272 
57273 struct usb_ssp_isoc_ep_comp_descriptor {
57274 	__u8 bLength;
57275 	__u8 bDescriptorType;
57276 	__le16 wReseved;
57277 	__le32 dwBytesPerInterval;
57278 };
57279 
57280 struct usb_ss_ep_comp_descriptor {
57281 	__u8 bLength;
57282 	__u8 bDescriptorType;
57283 	__u8 bMaxBurst;
57284 	__u8 bmAttributes;
57285 	__le16 wBytesPerInterval;
57286 };
57287 
57288 struct usb_interface_assoc_descriptor {
57289 	__u8 bLength;
57290 	__u8 bDescriptorType;
57291 	__u8 bFirstInterface;
57292 	__u8 bInterfaceCount;
57293 	__u8 bFunctionClass;
57294 	__u8 bFunctionSubClass;
57295 	__u8 bFunctionProtocol;
57296 	__u8 iFunction;
57297 };
57298 
57299 struct usb_bos_descriptor {
57300 	__u8 bLength;
57301 	__u8 bDescriptorType;
57302 	__le16 wTotalLength;
57303 	__u8 bNumDeviceCaps;
57304 } __attribute__((packed));
57305 
57306 struct usb_ext_cap_descriptor {
57307 	__u8 bLength;
57308 	__u8 bDescriptorType;
57309 	__u8 bDevCapabilityType;
57310 	__le32 bmAttributes;
57311 } __attribute__((packed));
57312 
57313 struct usb_ss_cap_descriptor {
57314 	__u8 bLength;
57315 	__u8 bDescriptorType;
57316 	__u8 bDevCapabilityType;
57317 	__u8 bmAttributes;
57318 	__le16 wSpeedSupported;
57319 	__u8 bFunctionalitySupport;
57320 	__u8 bU1devExitLat;
57321 	__le16 bU2DevExitLat;
57322 };
57323 
57324 struct usb_ss_container_id_descriptor {
57325 	__u8 bLength;
57326 	__u8 bDescriptorType;
57327 	__u8 bDevCapabilityType;
57328 	__u8 bReserved;
57329 	__u8 ContainerID[16];
57330 };
57331 
57332 struct usb_ssp_cap_descriptor {
57333 	__u8 bLength;
57334 	__u8 bDescriptorType;
57335 	__u8 bDevCapabilityType;
57336 	__u8 bReserved;
57337 	__le32 bmAttributes;
57338 	__le16 wFunctionalitySupport;
57339 	__le16 wReserved;
57340 	__le32 bmSublinkSpeedAttr[1];
57341 };
57342 
57343 struct usb_ptm_cap_descriptor {
57344 	__u8 bLength;
57345 	__u8 bDescriptorType;
57346 	__u8 bDevCapabilityType;
57347 };
57348 
57349 enum usb_device_speed {
57350 	USB_SPEED_UNKNOWN = 0,
57351 	USB_SPEED_LOW = 1,
57352 	USB_SPEED_FULL = 2,
57353 	USB_SPEED_HIGH = 3,
57354 	USB_SPEED_WIRELESS = 4,
57355 	USB_SPEED_SUPER = 5,
57356 	USB_SPEED_SUPER_PLUS = 6,
57357 };
57358 
57359 enum usb_device_state {
57360 	USB_STATE_NOTATTACHED = 0,
57361 	USB_STATE_ATTACHED = 1,
57362 	USB_STATE_POWERED = 2,
57363 	USB_STATE_RECONNECTING = 3,
57364 	USB_STATE_UNAUTHENTICATED = 4,
57365 	USB_STATE_DEFAULT = 5,
57366 	USB_STATE_ADDRESS = 6,
57367 	USB_STATE_CONFIGURED = 7,
57368 	USB_STATE_SUSPENDED = 8,
57369 };
57370 
57371 enum usb3_link_state {
57372 	USB3_LPM_U0 = 0,
57373 	USB3_LPM_U1 = 1,
57374 	USB3_LPM_U2 = 2,
57375 	USB3_LPM_U3 = 3,
57376 };
57377 
57378 enum usb_ssp_rate {
57379 	USB_SSP_GEN_UNKNOWN = 0,
57380 	USB_SSP_GEN_2x1 = 1,
57381 	USB_SSP_GEN_1x2 = 2,
57382 	USB_SSP_GEN_2x2 = 3,
57383 };
57384 
57385 struct ep_device;
57386 
57387 struct usb_host_endpoint {
57388 	struct usb_endpoint_descriptor desc;
57389 	struct usb_ss_ep_comp_descriptor ss_ep_comp;
57390 	struct usb_ssp_isoc_ep_comp_descriptor ssp_isoc_ep_comp;
57391 	char: 8;
57392 	struct list_head urb_list;
57393 	void *hcpriv;
57394 	struct ep_device *ep_dev;
57395 	unsigned char *extra;
57396 	int extralen;
57397 	int enabled;
57398 	int streams;
57399 	int: 32;
57400 } __attribute__((packed));
57401 
57402 struct usb_host_interface {
57403 	struct usb_interface_descriptor desc;
57404 	int extralen;
57405 	unsigned char *extra;
57406 	struct usb_host_endpoint *endpoint;
57407 	char *string;
57408 };
57409 
57410 enum usb_interface_condition {
57411 	USB_INTERFACE_UNBOUND = 0,
57412 	USB_INTERFACE_BINDING = 1,
57413 	USB_INTERFACE_BOUND = 2,
57414 	USB_INTERFACE_UNBINDING = 3,
57415 };
57416 
57417 struct usb_interface {
57418 	struct usb_host_interface *altsetting;
57419 	struct usb_host_interface *cur_altsetting;
57420 	unsigned int num_altsetting;
57421 	struct usb_interface_assoc_descriptor *intf_assoc;
57422 	int minor;
57423 	enum usb_interface_condition condition;
57424 	unsigned int sysfs_files_created: 1;
57425 	unsigned int ep_devs_created: 1;
57426 	unsigned int unregistering: 1;
57427 	unsigned int needs_remote_wakeup: 1;
57428 	unsigned int needs_altsetting0: 1;
57429 	unsigned int needs_binding: 1;
57430 	unsigned int resetting_device: 1;
57431 	unsigned int authorized: 1;
57432 	struct device dev;
57433 	struct device *usb_dev;
57434 	struct work_struct reset_ws;
57435 };
57436 
57437 struct usb_interface_cache {
57438 	unsigned int num_altsetting;
57439 	struct kref ref;
57440 	struct usb_host_interface altsetting[0];
57441 };
57442 
57443 struct usb_host_config {
57444 	struct usb_config_descriptor desc;
57445 	char *string;
57446 	struct usb_interface_assoc_descriptor *intf_assoc[16];
57447 	struct usb_interface *interface[32];
57448 	struct usb_interface_cache *intf_cache[32];
57449 	unsigned char *extra;
57450 	int extralen;
57451 };
57452 
57453 struct usb_host_bos {
57454 	struct usb_bos_descriptor *desc;
57455 	struct usb_ext_cap_descriptor *ext_cap;
57456 	struct usb_ss_cap_descriptor *ss_cap;
57457 	struct usb_ssp_cap_descriptor *ssp_cap;
57458 	struct usb_ss_container_id_descriptor *ss_id;
57459 	struct usb_ptm_cap_descriptor *ptm_cap;
57460 };
57461 
57462 struct usb_devmap {
57463 	long unsigned int devicemap[2];
57464 };
57465 
57466 struct mon_bus;
57467 
57468 struct usb_device;
57469 
57470 struct usb_bus {
57471 	struct device *controller;
57472 	struct device *sysdev;
57473 	int busnum;
57474 	const char *bus_name;
57475 	u8 uses_pio_for_control;
57476 	u8 otg_port;
57477 	unsigned int is_b_host: 1;
57478 	unsigned int b_hnp_enable: 1;
57479 	unsigned int no_stop_on_short: 1;
57480 	unsigned int no_sg_constraint: 1;
57481 	unsigned int sg_tablesize;
57482 	int devnum_next;
57483 	struct mutex devnum_next_mutex;
57484 	struct usb_devmap devmap;
57485 	struct usb_device *root_hub;
57486 	struct usb_bus *hs_companion;
57487 	int bandwidth_allocated;
57488 	int bandwidth_int_reqs;
57489 	int bandwidth_isoc_reqs;
57490 	unsigned int resuming_ports;
57491 	struct mon_bus *mon_bus;
57492 	int monitored;
57493 };
57494 
57495 struct wusb_dev;
57496 
57497 struct usb2_lpm_parameters {
57498 	unsigned int besl;
57499 	int timeout;
57500 };
57501 
57502 struct usb3_lpm_parameters {
57503 	unsigned int mel;
57504 	unsigned int pel;
57505 	unsigned int sel;
57506 	int timeout;
57507 };
57508 
57509 struct usb_tt;
57510 
57511 struct usb_device {
57512 	int devnum;
57513 	char devpath[16];
57514 	u32 route;
57515 	enum usb_device_state state;
57516 	enum usb_device_speed speed;
57517 	unsigned int rx_lanes;
57518 	unsigned int tx_lanes;
57519 	enum usb_ssp_rate ssp_rate;
57520 	struct usb_tt *tt;
57521 	int ttport;
57522 	unsigned int toggle[2];
57523 	struct usb_device *parent;
57524 	struct usb_bus *bus;
57525 	struct usb_host_endpoint ep0;
57526 	struct device dev;
57527 	struct usb_device_descriptor descriptor;
57528 	struct usb_host_bos *bos;
57529 	struct usb_host_config *config;
57530 	struct usb_host_config *actconfig;
57531 	struct usb_host_endpoint *ep_in[16];
57532 	struct usb_host_endpoint *ep_out[16];
57533 	char **rawdescriptors;
57534 	short unsigned int bus_mA;
57535 	u8 portnum;
57536 	u8 level;
57537 	u8 devaddr;
57538 	unsigned int can_submit: 1;
57539 	unsigned int persist_enabled: 1;
57540 	unsigned int reset_in_progress: 1;
57541 	unsigned int have_langid: 1;
57542 	unsigned int authorized: 1;
57543 	unsigned int authenticated: 1;
57544 	unsigned int wusb: 1;
57545 	unsigned int lpm_capable: 1;
57546 	unsigned int lpm_devinit_allow: 1;
57547 	unsigned int usb2_hw_lpm_capable: 1;
57548 	unsigned int usb2_hw_lpm_besl_capable: 1;
57549 	unsigned int usb2_hw_lpm_enabled: 1;
57550 	unsigned int usb2_hw_lpm_allowed: 1;
57551 	unsigned int usb3_lpm_u1_enabled: 1;
57552 	unsigned int usb3_lpm_u2_enabled: 1;
57553 	int string_langid;
57554 	char *product;
57555 	char *manufacturer;
57556 	char *serial;
57557 	struct list_head filelist;
57558 	int maxchild;
57559 	u32 quirks;
57560 	atomic_t urbnum;
57561 	long unsigned int active_duration;
57562 	long unsigned int connect_time;
57563 	unsigned int do_remote_wakeup: 1;
57564 	unsigned int reset_resume: 1;
57565 	unsigned int port_is_suspended: 1;
57566 	struct wusb_dev *wusb_dev;
57567 	int slot_id;
57568 	struct usb2_lpm_parameters l1_params;
57569 	struct usb3_lpm_parameters u1_params;
57570 	struct usb3_lpm_parameters u2_params;
57571 	unsigned int lpm_disable_count;
57572 	u16 hub_delay;
57573 	unsigned int use_generic_driver: 1;
57574 };
57575 
57576 enum usb_port_connect_type {
57577 	USB_PORT_CONNECT_TYPE_UNKNOWN = 0,
57578 	USB_PORT_CONNECT_TYPE_HOT_PLUG = 1,
57579 	USB_PORT_CONNECT_TYPE_HARD_WIRED = 2,
57580 	USB_PORT_NOT_USED = 3,
57581 };
57582 
57583 struct usb_tt {
57584 	struct usb_device *hub;
57585 	int multi;
57586 	unsigned int think_time;
57587 	void *hcpriv;
57588 	spinlock_t lock;
57589 	struct list_head clear_list;
57590 	struct work_struct clear_work;
57591 };
57592 
57593 struct usb_dynids {
57594 	spinlock_t lock;
57595 	struct list_head list;
57596 };
57597 
57598 struct usbdrv_wrap {
57599 	struct device_driver driver;
57600 	int for_devices;
57601 };
57602 
57603 struct usb_driver {
57604 	const char *name;
57605 	int (*probe)(struct usb_interface *, const struct usb_device_id *);
57606 	void (*disconnect)(struct usb_interface *);
57607 	int (*unlocked_ioctl)(struct usb_interface *, unsigned int, void *);
57608 	int (*suspend)(struct usb_interface *, pm_message_t);
57609 	int (*resume)(struct usb_interface *);
57610 	int (*reset_resume)(struct usb_interface *);
57611 	int (*pre_reset)(struct usb_interface *);
57612 	int (*post_reset)(struct usb_interface *);
57613 	const struct usb_device_id *id_table;
57614 	const struct attribute_group **dev_groups;
57615 	struct usb_dynids dynids;
57616 	struct usbdrv_wrap drvwrap;
57617 	unsigned int no_dynamic_id: 1;
57618 	unsigned int supports_autosuspend: 1;
57619 	unsigned int disable_hub_initiated_lpm: 1;
57620 	unsigned int soft_unbind: 1;
57621 };
57622 
57623 struct usb_device_driver {
57624 	const char *name;
57625 	bool (*match)(struct usb_device *);
57626 	int (*probe)(struct usb_device *);
57627 	void (*disconnect)(struct usb_device *);
57628 	int (*suspend)(struct usb_device *, pm_message_t);
57629 	int (*resume)(struct usb_device *, pm_message_t);
57630 	const struct attribute_group **dev_groups;
57631 	struct usbdrv_wrap drvwrap;
57632 	const struct usb_device_id *id_table;
57633 	unsigned int supports_autosuspend: 1;
57634 	unsigned int generic_subclass: 1;
57635 };
57636 
57637 struct usb_iso_packet_descriptor {
57638 	unsigned int offset;
57639 	unsigned int length;
57640 	unsigned int actual_length;
57641 	int status;
57642 };
57643 
57644 struct usb_anchor {
57645 	struct list_head urb_list;
57646 	wait_queue_head_t wait;
57647 	spinlock_t lock;
57648 	atomic_t suspend_wakeups;
57649 	unsigned int poisoned: 1;
57650 };
57651 
57652 struct urb;
57653 
57654 typedef void (*usb_complete_t)(struct urb *);
57655 
57656 struct urb {
57657 	struct kref kref;
57658 	int unlinked;
57659 	void *hcpriv;
57660 	atomic_t use_count;
57661 	atomic_t reject;
57662 	struct list_head urb_list;
57663 	struct list_head anchor_list;
57664 	struct usb_anchor *anchor;
57665 	struct usb_device *dev;
57666 	struct usb_host_endpoint *ep;
57667 	unsigned int pipe;
57668 	unsigned int stream_id;
57669 	int status;
57670 	unsigned int transfer_flags;
57671 	void *transfer_buffer;
57672 	dma_addr_t transfer_dma;
57673 	struct scatterlist *sg;
57674 	int num_mapped_sgs;
57675 	int num_sgs;
57676 	u32 transfer_buffer_length;
57677 	u32 actual_length;
57678 	unsigned char *setup_packet;
57679 	dma_addr_t setup_dma;
57680 	int start_frame;
57681 	int number_of_packets;
57682 	int interval;
57683 	int error_count;
57684 	void *context;
57685 	usb_complete_t complete;
57686 	struct usb_iso_packet_descriptor iso_frame_desc[0];
57687 };
57688 
57689 struct giveback_urb_bh {
57690 	bool running;
57691 	bool high_prio;
57692 	spinlock_t lock;
57693 	struct list_head head;
57694 	struct tasklet_struct bh;
57695 	struct usb_host_endpoint *completing_ep;
57696 };
57697 
57698 enum usb_dev_authorize_policy {
57699 	USB_DEVICE_AUTHORIZE_NONE = 0,
57700 	USB_DEVICE_AUTHORIZE_ALL = 1,
57701 	USB_DEVICE_AUTHORIZE_INTERNAL = 2,
57702 };
57703 
57704 struct usb_phy_roothub;
57705 
57706 struct hc_driver;
57707 
57708 struct usb_phy;
57709 
57710 struct gen_pool;
57711 
57712 struct usb_hcd {
57713 	struct usb_bus self;
57714 	struct kref kref;
57715 	const char *product_desc;
57716 	int speed;
57717 	char irq_descr[24];
57718 	struct timer_list rh_timer;
57719 	struct urb *status_urb;
57720 	struct work_struct wakeup_work;
57721 	struct work_struct died_work;
57722 	const struct hc_driver *driver;
57723 	struct usb_phy *usb_phy;
57724 	struct usb_phy_roothub *phy_roothub;
57725 	long unsigned int flags;
57726 	enum usb_dev_authorize_policy dev_policy;
57727 	unsigned int rh_registered: 1;
57728 	unsigned int rh_pollable: 1;
57729 	unsigned int msix_enabled: 1;
57730 	unsigned int msi_enabled: 1;
57731 	unsigned int skip_phy_initialization: 1;
57732 	unsigned int uses_new_polling: 1;
57733 	unsigned int wireless: 1;
57734 	unsigned int has_tt: 1;
57735 	unsigned int amd_resume_bug: 1;
57736 	unsigned int can_do_streams: 1;
57737 	unsigned int tpl_support: 1;
57738 	unsigned int cant_recv_wakeups: 1;
57739 	unsigned int irq;
57740 	void *regs;
57741 	resource_size_t rsrc_start;
57742 	resource_size_t rsrc_len;
57743 	unsigned int power_budget;
57744 	struct giveback_urb_bh high_prio_bh;
57745 	struct giveback_urb_bh low_prio_bh;
57746 	struct mutex *address0_mutex;
57747 	struct mutex *bandwidth_mutex;
57748 	struct usb_hcd *shared_hcd;
57749 	struct usb_hcd *primary_hcd;
57750 	struct dma_pool *pool[4];
57751 	int state;
57752 	struct gen_pool *localmem_pool;
57753 	long unsigned int hcd_priv[0];
57754 };
57755 
57756 struct hc_driver {
57757 	const char *description;
57758 	const char *product_desc;
57759 	size_t hcd_priv_size;
57760 	irqreturn_t (*irq)(struct usb_hcd *);
57761 	int flags;
57762 	int (*reset)(struct usb_hcd *);
57763 	int (*start)(struct usb_hcd *);
57764 	int (*pci_suspend)(struct usb_hcd *, bool);
57765 	int (*pci_resume)(struct usb_hcd *, bool);
57766 	int (*pci_poweroff_late)(struct usb_hcd *, bool);
57767 	void (*stop)(struct usb_hcd *);
57768 	void (*shutdown)(struct usb_hcd *);
57769 	int (*get_frame_number)(struct usb_hcd *);
57770 	int (*urb_enqueue)(struct usb_hcd *, struct urb *, gfp_t);
57771 	int (*urb_dequeue)(struct usb_hcd *, struct urb *, int);
57772 	int (*map_urb_for_dma)(struct usb_hcd *, struct urb *, gfp_t);
57773 	void (*unmap_urb_for_dma)(struct usb_hcd *, struct urb *);
57774 	void (*endpoint_disable)(struct usb_hcd *, struct usb_host_endpoint *);
57775 	void (*endpoint_reset)(struct usb_hcd *, struct usb_host_endpoint *);
57776 	int (*hub_status_data)(struct usb_hcd *, char *);
57777 	int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16);
57778 	int (*bus_suspend)(struct usb_hcd *);
57779 	int (*bus_resume)(struct usb_hcd *);
57780 	int (*start_port_reset)(struct usb_hcd *, unsigned int);
57781 	long unsigned int (*get_resuming_ports)(struct usb_hcd *);
57782 	void (*relinquish_port)(struct usb_hcd *, int);
57783 	int (*port_handed_over)(struct usb_hcd *, int);
57784 	void (*clear_tt_buffer_complete)(struct usb_hcd *, struct usb_host_endpoint *);
57785 	int (*alloc_dev)(struct usb_hcd *, struct usb_device *);
57786 	void (*free_dev)(struct usb_hcd *, struct usb_device *);
57787 	int (*alloc_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, unsigned int, gfp_t);
57788 	int (*free_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, gfp_t);
57789 	int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *);
57790 	int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *);
57791 	int (*check_bandwidth)(struct usb_hcd *, struct usb_device *);
57792 	void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
57793 	int (*address_device)(struct usb_hcd *, struct usb_device *);
57794 	int (*enable_device)(struct usb_hcd *, struct usb_device *);
57795 	int (*update_hub_device)(struct usb_hcd *, struct usb_device *, struct usb_tt *, gfp_t);
57796 	int (*reset_device)(struct usb_hcd *, struct usb_device *);
57797 	int (*update_device)(struct usb_hcd *, struct usb_device *);
57798 	int (*set_usb2_hw_lpm)(struct usb_hcd *, struct usb_device *, int);
57799 	int (*enable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state);
57800 	int (*disable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state);
57801 	int (*find_raw_port_number)(struct usb_hcd *, int);
57802 	int (*port_power)(struct usb_hcd *, int, bool);
57803 	int (*submit_single_step_set_feature)(struct usb_hcd *, struct urb *, int);
57804 };
57805 
57806 enum usb_phy_type {
57807 	USB_PHY_TYPE_UNDEFINED = 0,
57808 	USB_PHY_TYPE_USB2 = 1,
57809 	USB_PHY_TYPE_USB3 = 2,
57810 };
57811 
57812 enum usb_phy_events {
57813 	USB_EVENT_NONE = 0,
57814 	USB_EVENT_VBUS = 1,
57815 	USB_EVENT_ID = 2,
57816 	USB_EVENT_CHARGER = 3,
57817 	USB_EVENT_ENUMERATED = 4,
57818 };
57819 
57820 struct extcon_dev;
57821 
57822 enum usb_charger_type {
57823 	UNKNOWN_TYPE = 0,
57824 	SDP_TYPE = 1,
57825 	DCP_TYPE = 2,
57826 	CDP_TYPE = 3,
57827 	ACA_TYPE = 4,
57828 };
57829 
57830 enum usb_charger_state {
57831 	USB_CHARGER_DEFAULT = 0,
57832 	USB_CHARGER_PRESENT = 1,
57833 	USB_CHARGER_ABSENT = 2,
57834 };
57835 
57836 struct usb_charger_current {
57837 	unsigned int sdp_min;
57838 	unsigned int sdp_max;
57839 	unsigned int dcp_min;
57840 	unsigned int dcp_max;
57841 	unsigned int cdp_min;
57842 	unsigned int cdp_max;
57843 	unsigned int aca_min;
57844 	unsigned int aca_max;
57845 };
57846 
57847 struct usb_otg;
57848 
57849 struct usb_phy_io_ops;
57850 
57851 struct usb_phy {
57852 	struct device *dev;
57853 	const char *label;
57854 	unsigned int flags;
57855 	enum usb_phy_type type;
57856 	enum usb_phy_events last_event;
57857 	struct usb_otg *otg;
57858 	struct device *io_dev;
57859 	struct usb_phy_io_ops *io_ops;
57860 	void *io_priv;
57861 	struct extcon_dev *edev;
57862 	struct extcon_dev *id_edev;
57863 	struct notifier_block vbus_nb;
57864 	struct notifier_block id_nb;
57865 	struct notifier_block type_nb;
57866 	enum usb_charger_type chg_type;
57867 	enum usb_charger_state chg_state;
57868 	struct usb_charger_current chg_cur;
57869 	struct work_struct chg_work;
57870 	struct atomic_notifier_head notifier;
57871 	u16 port_status;
57872 	u16 port_change;
57873 	struct list_head head;
57874 	int (*init)(struct usb_phy *);
57875 	void (*shutdown)(struct usb_phy *);
57876 	int (*set_vbus)(struct usb_phy *, int);
57877 	int (*set_power)(struct usb_phy *, unsigned int);
57878 	int (*set_suspend)(struct usb_phy *, int);
57879 	int (*set_wakeup)(struct usb_phy *, bool);
57880 	int (*notify_connect)(struct usb_phy *, enum usb_device_speed);
57881 	int (*notify_disconnect)(struct usb_phy *, enum usb_device_speed);
57882 	enum usb_charger_type (*charger_detect)(struct usb_phy *);
57883 };
57884 
57885 struct usb_port_status {
57886 	__le16 wPortStatus;
57887 	__le16 wPortChange;
57888 	__le32 dwExtPortStatus;
57889 };
57890 
57891 struct usb_hub_status {
57892 	__le16 wHubStatus;
57893 	__le16 wHubChange;
57894 };
57895 
57896 struct usb_hub_descriptor {
57897 	__u8 bDescLength;
57898 	__u8 bDescriptorType;
57899 	__u8 bNbrPorts;
57900 	__le16 wHubCharacteristics;
57901 	__u8 bPwrOn2PwrGood;
57902 	__u8 bHubContrCurrent;
57903 	union {
57904 		struct {
57905 			__u8 DeviceRemovable[4];
57906 			__u8 PortPwrCtrlMask[4];
57907 		} hs;
57908 		struct {
57909 			__u8 bHubHdrDecLat;
57910 			__le16 wHubDelay;
57911 			__le16 DeviceRemovable;
57912 		} __attribute__((packed)) ss;
57913 	} u;
57914 } __attribute__((packed));
57915 
57916 enum usb_otg_state {
57917 	OTG_STATE_UNDEFINED = 0,
57918 	OTG_STATE_B_IDLE = 1,
57919 	OTG_STATE_B_SRP_INIT = 2,
57920 	OTG_STATE_B_PERIPHERAL = 3,
57921 	OTG_STATE_B_WAIT_ACON = 4,
57922 	OTG_STATE_B_HOST = 5,
57923 	OTG_STATE_A_IDLE = 6,
57924 	OTG_STATE_A_WAIT_VRISE = 7,
57925 	OTG_STATE_A_WAIT_BCON = 8,
57926 	OTG_STATE_A_HOST = 9,
57927 	OTG_STATE_A_SUSPEND = 10,
57928 	OTG_STATE_A_PERIPHERAL = 11,
57929 	OTG_STATE_A_WAIT_VFALL = 12,
57930 	OTG_STATE_A_VBUS_ERR = 13,
57931 };
57932 
57933 struct usb_phy_io_ops {
57934 	int (*read)(struct usb_phy *, u32);
57935 	int (*write)(struct usb_phy *, u32, u32);
57936 };
57937 
57938 struct usb_gadget;
57939 
57940 struct usb_otg {
57941 	u8 default_a;
57942 	struct phy *phy;
57943 	struct usb_phy *usb_phy;
57944 	struct usb_bus *host;
57945 	struct usb_gadget *gadget;
57946 	enum usb_otg_state state;
57947 	int (*set_host)(struct usb_otg *, struct usb_bus *);
57948 	int (*set_peripheral)(struct usb_otg *, struct usb_gadget *);
57949 	int (*set_vbus)(struct usb_otg *, bool);
57950 	int (*start_srp)(struct usb_otg *);
57951 	int (*start_hnp)(struct usb_otg *);
57952 };
57953 
57954 typedef u32 usb_port_location_t;
57955 
57956 struct usb_port;
57957 
57958 struct usb_hub {
57959 	struct device *intfdev;
57960 	struct usb_device *hdev;
57961 	struct kref kref;
57962 	struct urb *urb;
57963 	u8 (*buffer)[8];
57964 	union {
57965 		struct usb_hub_status hub;
57966 		struct usb_port_status port;
57967 	} *status;
57968 	struct mutex status_mutex;
57969 	int error;
57970 	int nerrors;
57971 	long unsigned int event_bits[1];
57972 	long unsigned int change_bits[1];
57973 	long unsigned int removed_bits[1];
57974 	long unsigned int wakeup_bits[1];
57975 	long unsigned int power_bits[1];
57976 	long unsigned int child_usage_bits[1];
57977 	long unsigned int warm_reset_bits[1];
57978 	struct usb_hub_descriptor *descriptor;
57979 	struct usb_tt tt;
57980 	unsigned int mA_per_port;
57981 	unsigned int wakeup_enabled_descendants;
57982 	unsigned int limited_power: 1;
57983 	unsigned int quiescing: 1;
57984 	unsigned int disconnected: 1;
57985 	unsigned int in_reset: 1;
57986 	unsigned int quirk_disable_autosuspend: 1;
57987 	unsigned int quirk_check_port_auto_suspend: 1;
57988 	unsigned int has_indicators: 1;
57989 	u8 indicator[31];
57990 	struct delayed_work leds;
57991 	struct delayed_work init_work;
57992 	struct work_struct events;
57993 	spinlock_t irq_urb_lock;
57994 	struct timer_list irq_urb_retry;
57995 	struct usb_port **ports;
57996 	struct list_head onboard_hub_devs;
57997 };
57998 
57999 struct usb_dev_state;
58000 
58001 struct usb_port {
58002 	struct usb_device *child;
58003 	struct device dev;
58004 	struct usb_dev_state *port_owner;
58005 	struct usb_port *peer;
58006 	struct dev_pm_qos_request *req;
58007 	enum usb_port_connect_type connect_type;
58008 	usb_port_location_t location;
58009 	struct mutex status_lock;
58010 	u32 over_current_count;
58011 	u8 portnum;
58012 	u32 quirks;
58013 	unsigned int early_stop: 1;
58014 	unsigned int ignore_event: 1;
58015 	unsigned int is_superspeed: 1;
58016 	unsigned int usb3_lpm_u1_permit: 1;
58017 	unsigned int usb3_lpm_u2_permit: 1;
58018 };
58019 
58020 struct find_interface_arg {
58021 	int minor;
58022 	struct device_driver *drv;
58023 };
58024 
58025 struct each_dev_arg {
58026 	void *data;
58027 	int (*fn)(struct usb_device *, void *);
58028 };
58029 
58030 struct usb_ctrlrequest {
58031 	__u8 bRequestType;
58032 	__u8 bRequest;
58033 	__le16 wValue;
58034 	__le16 wIndex;
58035 	__le16 wLength;
58036 };
58037 
58038 struct usb_sg_request {
58039 	int status;
58040 	size_t bytes;
58041 	spinlock_t lock;
58042 	struct usb_device *dev;
58043 	int pipe;
58044 	int entries;
58045 	struct urb **urbs;
58046 	int count;
58047 	struct completion complete;
58048 };
58049 
58050 enum utf16_endian {
58051 	UTF16_HOST_ENDIAN = 0,
58052 	UTF16_LITTLE_ENDIAN = 1,
58053 	UTF16_BIG_ENDIAN = 2,
58054 };
58055 
58056 struct usb_cdc_header_desc {
58057 	__u8 bLength;
58058 	__u8 bDescriptorType;
58059 	__u8 bDescriptorSubType;
58060 	__le16 bcdCDC;
58061 } __attribute__((packed));
58062 
58063 struct usb_cdc_call_mgmt_descriptor {
58064 	__u8 bLength;
58065 	__u8 bDescriptorType;
58066 	__u8 bDescriptorSubType;
58067 	__u8 bmCapabilities;
58068 	__u8 bDataInterface;
58069 };
58070 
58071 struct usb_cdc_acm_descriptor {
58072 	__u8 bLength;
58073 	__u8 bDescriptorType;
58074 	__u8 bDescriptorSubType;
58075 	__u8 bmCapabilities;
58076 };
58077 
58078 struct usb_cdc_union_desc {
58079 	__u8 bLength;
58080 	__u8 bDescriptorType;
58081 	__u8 bDescriptorSubType;
58082 	__u8 bMasterInterface0;
58083 	__u8 bSlaveInterface0;
58084 };
58085 
58086 struct usb_cdc_country_functional_desc {
58087 	__u8 bLength;
58088 	__u8 bDescriptorType;
58089 	__u8 bDescriptorSubType;
58090 	__u8 iCountryCodeRelDate;
58091 	__le16 wCountyCode0;
58092 };
58093 
58094 struct usb_cdc_network_terminal_desc {
58095 	__u8 bLength;
58096 	__u8 bDescriptorType;
58097 	__u8 bDescriptorSubType;
58098 	__u8 bEntityId;
58099 	__u8 iName;
58100 	__u8 bChannelIndex;
58101 	__u8 bPhysicalInterface;
58102 };
58103 
58104 struct usb_cdc_ether_desc {
58105 	__u8 bLength;
58106 	__u8 bDescriptorType;
58107 	__u8 bDescriptorSubType;
58108 	__u8 iMACAddress;
58109 	__le32 bmEthernetStatistics;
58110 	__le16 wMaxSegmentSize;
58111 	__le16 wNumberMCFilters;
58112 	__u8 bNumberPowerFilters;
58113 } __attribute__((packed));
58114 
58115 struct usb_cdc_dmm_desc {
58116 	__u8 bFunctionLength;
58117 	__u8 bDescriptorType;
58118 	__u8 bDescriptorSubtype;
58119 	__u16 bcdVersion;
58120 	__le16 wMaxCommand;
58121 } __attribute__((packed));
58122 
58123 struct usb_cdc_mdlm_desc {
58124 	__u8 bLength;
58125 	__u8 bDescriptorType;
58126 	__u8 bDescriptorSubType;
58127 	__le16 bcdVersion;
58128 	__u8 bGUID[16];
58129 } __attribute__((packed));
58130 
58131 struct usb_cdc_mdlm_detail_desc {
58132 	__u8 bLength;
58133 	__u8 bDescriptorType;
58134 	__u8 bDescriptorSubType;
58135 	__u8 bGuidDescriptorType;
58136 	__u8 bDetailData[0];
58137 };
58138 
58139 struct usb_cdc_obex_desc {
58140 	__u8 bLength;
58141 	__u8 bDescriptorType;
58142 	__u8 bDescriptorSubType;
58143 	__le16 bcdVersion;
58144 } __attribute__((packed));
58145 
58146 struct usb_cdc_ncm_desc {
58147 	__u8 bLength;
58148 	__u8 bDescriptorType;
58149 	__u8 bDescriptorSubType;
58150 	__le16 bcdNcmVersion;
58151 	__u8 bmNetworkCapabilities;
58152 } __attribute__((packed));
58153 
58154 struct usb_cdc_mbim_desc {
58155 	__u8 bLength;
58156 	__u8 bDescriptorType;
58157 	__u8 bDescriptorSubType;
58158 	__le16 bcdMBIMVersion;
58159 	__le16 wMaxControlMessage;
58160 	__u8 bNumberFilters;
58161 	__u8 bMaxFilterSize;
58162 	__le16 wMaxSegmentSize;
58163 	__u8 bmNetworkCapabilities;
58164 } __attribute__((packed));
58165 
58166 struct usb_cdc_mbim_extended_desc {
58167 	__u8 bLength;
58168 	__u8 bDescriptorType;
58169 	__u8 bDescriptorSubType;
58170 	__le16 bcdMBIMExtendedVersion;
58171 	__u8 bMaxOutstandingCommandMessages;
58172 	__le16 wMTU;
58173 } __attribute__((packed));
58174 
58175 struct usb_cdc_parsed_header {
58176 	struct usb_cdc_union_desc *usb_cdc_union_desc;
58177 	struct usb_cdc_header_desc *usb_cdc_header_desc;
58178 	struct usb_cdc_call_mgmt_descriptor *usb_cdc_call_mgmt_descriptor;
58179 	struct usb_cdc_acm_descriptor *usb_cdc_acm_descriptor;
58180 	struct usb_cdc_country_functional_desc *usb_cdc_country_functional_desc;
58181 	struct usb_cdc_network_terminal_desc *usb_cdc_network_terminal_desc;
58182 	struct usb_cdc_ether_desc *usb_cdc_ether_desc;
58183 	struct usb_cdc_dmm_desc *usb_cdc_dmm_desc;
58184 	struct usb_cdc_mdlm_desc *usb_cdc_mdlm_desc;
58185 	struct usb_cdc_mdlm_detail_desc *usb_cdc_mdlm_detail_desc;
58186 	struct usb_cdc_obex_desc *usb_cdc_obex_desc;
58187 	struct usb_cdc_ncm_desc *usb_cdc_ncm_desc;
58188 	struct usb_cdc_mbim_desc *usb_cdc_mbim_desc;
58189 	struct usb_cdc_mbim_extended_desc *usb_cdc_mbim_extended_desc;
58190 	bool phonet_magic_present;
58191 };
58192 
58193 struct api_context {
58194 	struct completion done;
58195 	int status;
58196 };
58197 
58198 struct set_config_request {
58199 	struct usb_device *udev;
58200 	int config;
58201 	struct work_struct work;
58202 	struct list_head node;
58203 };
58204 
58205 typedef long unsigned int (*genpool_algo_t)(long unsigned int *, long unsigned int, long unsigned int, unsigned int, void *, struct gen_pool *, long unsigned int);
58206 
58207 struct gen_pool {
58208 	spinlock_t lock;
58209 	struct list_head chunks;
58210 	int min_alloc_order;
58211 	genpool_algo_t algo;
58212 	void *data;
58213 	const char *name;
58214 };
58215 
58216 struct class_info {
58217 	int class;
58218 	char *class_name;
58219 };
58220 
58221 typedef void (*companion_fn)(struct pci_dev *, struct usb_hcd *, struct pci_dev *, struct usb_hcd *);
58222 
58223 enum amd_chipset_gen {
58224 	NOT_AMD_CHIPSET = 0,
58225 	AMD_CHIPSET_SB600 = 1,
58226 	AMD_CHIPSET_SB700 = 2,
58227 	AMD_CHIPSET_SB800 = 3,
58228 	AMD_CHIPSET_HUDSON2 = 4,
58229 	AMD_CHIPSET_BOLTON = 5,
58230 	AMD_CHIPSET_YANGTZE = 6,
58231 	AMD_CHIPSET_TAISHAN = 7,
58232 	AMD_CHIPSET_UNKNOWN = 8,
58233 };
58234 
58235 struct amd_chipset_type {
58236 	enum amd_chipset_gen gen;
58237 	u8 rev;
58238 };
58239 
58240 struct amd_chipset_info {
58241 	struct pci_dev *nb_dev;
58242 	struct pci_dev *smbus_dev;
58243 	int nb_type;
58244 	struct amd_chipset_type sb_type;
58245 	int isoc_reqs;
58246 	int probe_count;
58247 	bool need_pll_quirk;
58248 };
58249 
58250 typedef __u32 __hc32;
58251 
58252 typedef __u16 __hc16;
58253 
58254 struct td;
58255 
58256 struct ed {
58257 	__hc32 hwINFO;
58258 	__hc32 hwTailP;
58259 	__hc32 hwHeadP;
58260 	__hc32 hwNextED;
58261 	dma_addr_t dma;
58262 	struct td *dummy;
58263 	struct ed *ed_next;
58264 	struct ed *ed_prev;
58265 	struct list_head td_list;
58266 	struct list_head in_use_list;
58267 	u8 state;
58268 	u8 type;
58269 	u8 branch;
58270 	u16 interval;
58271 	u16 load;
58272 	u16 last_iso;
58273 	u16 tick;
58274 	unsigned int takeback_wdh_cnt;
58275 	struct td *pending_td;
58276 	long: 64;
58277 };
58278 
58279 struct td {
58280 	__hc32 hwINFO;
58281 	__hc32 hwCBP;
58282 	__hc32 hwNextTD;
58283 	__hc32 hwBE;
58284 	__hc16 hwPSW[2];
58285 	__u8 index;
58286 	struct ed *ed;
58287 	struct td *td_hash;
58288 	struct td *next_dl_td;
58289 	struct urb *urb;
58290 	dma_addr_t td_dma;
58291 	dma_addr_t data_dma;
58292 	struct list_head td_list;
58293 	long: 64;
58294 };
58295 
58296 struct ohci_hcca {
58297 	__hc32 int_table[32];
58298 	__hc32 frame_no;
58299 	__hc32 done_head;
58300 	u8 reserved_for_hc[116];
58301 	u8 what[4];
58302 };
58303 
58304 struct ohci_roothub_regs {
58305 	__hc32 a;
58306 	__hc32 b;
58307 	__hc32 status;
58308 	__hc32 portstatus[15];
58309 };
58310 
58311 struct ohci_regs {
58312 	__hc32 revision;
58313 	__hc32 control;
58314 	__hc32 cmdstatus;
58315 	__hc32 intrstatus;
58316 	__hc32 intrenable;
58317 	__hc32 intrdisable;
58318 	__hc32 hcca;
58319 	__hc32 ed_periodcurrent;
58320 	__hc32 ed_controlhead;
58321 	__hc32 ed_controlcurrent;
58322 	__hc32 ed_bulkhead;
58323 	__hc32 ed_bulkcurrent;
58324 	__hc32 donehead;
58325 	__hc32 fminterval;
58326 	__hc32 fmremaining;
58327 	__hc32 fmnumber;
58328 	__hc32 periodicstart;
58329 	__hc32 lsthresh;
58330 	struct ohci_roothub_regs roothub;
58331 	long: 64;
58332 	long: 64;
58333 };
58334 
58335 enum ohci_rh_state {
58336 	OHCI_RH_HALTED = 0,
58337 	OHCI_RH_SUSPENDED = 1,
58338 	OHCI_RH_RUNNING = 2,
58339 };
58340 
58341 struct ohci_hcd {
58342 	spinlock_t lock;
58343 	struct ohci_regs *regs;
58344 	struct ohci_hcca *hcca;
58345 	dma_addr_t hcca_dma;
58346 	struct ed *ed_rm_list;
58347 	struct ed *ed_bulktail;
58348 	struct ed *ed_controltail;
58349 	struct ed *periodic[32];
58350 	void (*start_hnp)(struct ohci_hcd *);
58351 	struct dma_pool *td_cache;
58352 	struct dma_pool *ed_cache;
58353 	struct td *td_hash[64];
58354 	struct td *dl_start;
58355 	struct td *dl_end;
58356 	struct list_head pending;
58357 	struct list_head eds_in_use;
58358 	enum ohci_rh_state rh_state;
58359 	int num_ports;
58360 	int load[32];
58361 	u32 hc_control;
58362 	long unsigned int next_statechange;
58363 	u32 fminterval;
58364 	unsigned int autostop: 1;
58365 	unsigned int working: 1;
58366 	unsigned int restart_work: 1;
58367 	long unsigned int flags;
58368 	unsigned int prev_frame_no;
58369 	unsigned int wdh_cnt;
58370 	unsigned int prev_wdh_cnt;
58371 	u32 prev_donehead;
58372 	struct timer_list io_watchdog;
58373 	struct work_struct nec_work;
58374 	struct dentry *debug_dir;
58375 	long unsigned int priv[0];
58376 };
58377 
58378 struct ohci_driver_overrides {
58379 	const char *product_desc;
58380 	size_t extra_priv_size;
58381 	int (*reset)(struct usb_hcd *);
58382 };
58383 
58384 struct xhci_cap_regs {
58385 	__le32 hc_capbase;
58386 	__le32 hcs_params1;
58387 	__le32 hcs_params2;
58388 	__le32 hcs_params3;
58389 	__le32 hcc_params;
58390 	__le32 db_off;
58391 	__le32 run_regs_off;
58392 	__le32 hcc_params2;
58393 };
58394 
58395 struct xhci_op_regs {
58396 	__le32 command;
58397 	__le32 status;
58398 	__le32 page_size;
58399 	__le32 reserved1;
58400 	__le32 reserved2;
58401 	__le32 dev_notification;
58402 	__le64 cmd_ring;
58403 	__le32 reserved3[4];
58404 	__le64 dcbaa_ptr;
58405 	__le32 config_reg;
58406 	__le32 reserved4[241];
58407 	__le32 port_status_base;
58408 	__le32 port_power_base;
58409 	__le32 port_link_base;
58410 	__le32 reserved5;
58411 	__le32 reserved6[1016];
58412 };
58413 
58414 struct xhci_intr_reg {
58415 	__le32 irq_pending;
58416 	__le32 irq_control;
58417 	__le32 erst_size;
58418 	__le32 rsvd;
58419 	__le64 erst_base;
58420 	__le64 erst_dequeue;
58421 };
58422 
58423 struct xhci_run_regs {
58424 	__le32 microframe_index;
58425 	__le32 rsvd[7];
58426 	struct xhci_intr_reg ir_set[128];
58427 };
58428 
58429 struct xhci_doorbell_array {
58430 	__le32 doorbell[256];
58431 };
58432 
58433 struct xhci_container_ctx {
58434 	unsigned int type;
58435 	int size;
58436 	u8 *bytes;
58437 	dma_addr_t dma;
58438 };
58439 
58440 struct xhci_slot_ctx {
58441 	__le32 dev_info;
58442 	__le32 dev_info2;
58443 	__le32 tt_info;
58444 	__le32 dev_state;
58445 	__le32 reserved[4];
58446 };
58447 
58448 struct xhci_ep_ctx {
58449 	__le32 ep_info;
58450 	__le32 ep_info2;
58451 	__le64 deq;
58452 	__le32 tx_info;
58453 	__le32 reserved[3];
58454 };
58455 
58456 struct xhci_input_control_ctx {
58457 	__le32 drop_flags;
58458 	__le32 add_flags;
58459 	__le32 rsvd2[6];
58460 };
58461 
58462 union xhci_trb;
58463 
58464 struct xhci_command {
58465 	struct xhci_container_ctx *in_ctx;
58466 	u32 status;
58467 	int slot_id;
58468 	struct completion *completion;
58469 	union xhci_trb *command_trb;
58470 	struct list_head cmd_list;
58471 };
58472 
58473 struct xhci_link_trb {
58474 	__le64 segment_ptr;
58475 	__le32 intr_target;
58476 	__le32 control;
58477 };
58478 
58479 struct xhci_transfer_event {
58480 	__le64 buffer;
58481 	__le32 transfer_len;
58482 	__le32 flags;
58483 };
58484 
58485 struct xhci_event_cmd {
58486 	__le64 cmd_trb;
58487 	__le32 status;
58488 	__le32 flags;
58489 };
58490 
58491 struct xhci_generic_trb {
58492 	__le32 field[4];
58493 };
58494 
58495 union xhci_trb {
58496 	struct xhci_link_trb link;
58497 	struct xhci_transfer_event trans_event;
58498 	struct xhci_event_cmd event_cmd;
58499 	struct xhci_generic_trb generic;
58500 };
58501 
58502 struct xhci_stream_ctx {
58503 	__le64 stream_ring;
58504 	__le32 reserved[2];
58505 };
58506 
58507 struct xhci_ring;
58508 
58509 struct xhci_stream_info {
58510 	struct xhci_ring **stream_rings;
58511 	unsigned int num_streams;
58512 	struct xhci_stream_ctx *stream_ctx_array;
58513 	unsigned int num_stream_ctxs;
58514 	dma_addr_t ctx_array_dma;
58515 	struct xarray trb_address_map;
58516 	struct xhci_command *free_streams_command;
58517 };
58518 
58519 enum xhci_ring_type {
58520 	TYPE_CTRL = 0,
58521 	TYPE_ISOC = 1,
58522 	TYPE_BULK = 2,
58523 	TYPE_INTR = 3,
58524 	TYPE_STREAM = 4,
58525 	TYPE_COMMAND = 5,
58526 	TYPE_EVENT = 6,
58527 };
58528 
58529 struct xhci_segment;
58530 
58531 struct xhci_ring {
58532 	struct xhci_segment *first_seg;
58533 	struct xhci_segment *last_seg;
58534 	union xhci_trb *enqueue;
58535 	struct xhci_segment *enq_seg;
58536 	union xhci_trb *dequeue;
58537 	struct xhci_segment *deq_seg;
58538 	struct list_head td_list;
58539 	u32 cycle_state;
58540 	unsigned int stream_id;
58541 	unsigned int num_segs;
58542 	unsigned int num_trbs_free;
58543 	unsigned int num_trbs_free_temp;
58544 	unsigned int bounce_buf_len;
58545 	enum xhci_ring_type type;
58546 	bool last_td_was_short;
58547 	struct xarray *trb_address_map;
58548 };
58549 
58550 struct xhci_bw_info {
58551 	unsigned int ep_interval;
58552 	unsigned int mult;
58553 	unsigned int num_packets;
58554 	unsigned int max_packet_size;
58555 	unsigned int max_esit_payload;
58556 	unsigned int type;
58557 };
58558 
58559 struct xhci_virt_device;
58560 
58561 struct xhci_hcd;
58562 
58563 struct xhci_virt_ep {
58564 	struct xhci_virt_device *vdev;
58565 	unsigned int ep_index;
58566 	struct xhci_ring *ring;
58567 	struct xhci_stream_info *stream_info;
58568 	struct xhci_ring *new_ring;
58569 	unsigned int err_count;
58570 	unsigned int ep_state;
58571 	struct list_head cancelled_td_list;
58572 	struct xhci_hcd *xhci;
58573 	struct xhci_segment *queued_deq_seg;
58574 	union xhci_trb *queued_deq_ptr;
58575 	bool skip;
58576 	struct xhci_bw_info bw_info;
58577 	struct list_head bw_endpoint_list;
58578 	int next_frame_id;
58579 	bool use_extended_tbc;
58580 };
58581 
58582 struct xhci_interval_bw_table;
58583 
58584 struct xhci_tt_bw_info;
58585 
58586 struct xhci_virt_device {
58587 	int slot_id;
58588 	struct usb_device *udev;
58589 	struct xhci_container_ctx *out_ctx;
58590 	struct xhci_container_ctx *in_ctx;
58591 	struct xhci_virt_ep eps[31];
58592 	u8 fake_port;
58593 	u8 real_port;
58594 	struct xhci_interval_bw_table *bw_table;
58595 	struct xhci_tt_bw_info *tt_info;
58596 	long unsigned int flags;
58597 	u16 current_mel;
58598 	void *debugfs_private;
58599 };
58600 
58601 struct xhci_erst_entry;
58602 
58603 struct xhci_erst {
58604 	struct xhci_erst_entry *entries;
58605 	unsigned int num_entries;
58606 	dma_addr_t erst_dma_addr;
58607 	unsigned int erst_size;
58608 };
58609 
58610 struct s3_save {
58611 	u32 command;
58612 	u32 dev_nt;
58613 	u64 dcbaa_ptr;
58614 	u32 config_reg;
58615 	u32 irq_pending;
58616 	u32 irq_control;
58617 	u32 erst_size;
58618 	u64 erst_base;
58619 	u64 erst_dequeue;
58620 };
58621 
58622 struct xhci_bus_state {
58623 	long unsigned int bus_suspended;
58624 	long unsigned int next_statechange;
58625 	u32 port_c_suspend;
58626 	u32 suspended_ports;
58627 	u32 port_remote_wakeup;
58628 	long unsigned int resume_done[31];
58629 	long unsigned int resuming_ports;
58630 	long unsigned int rexit_ports;
58631 	struct completion rexit_done[31];
58632 	struct completion u3exit_done[31];
58633 };
58634 
58635 struct xhci_port;
58636 
58637 struct xhci_hub {
58638 	struct xhci_port **ports;
58639 	unsigned int num_ports;
58640 	struct usb_hcd *hcd;
58641 	struct xhci_bus_state bus_state;
58642 	u8 maj_rev;
58643 	u8 min_rev;
58644 };
58645 
58646 struct xhci_device_context_array;
58647 
58648 struct xhci_scratchpad;
58649 
58650 struct xhci_root_port_bw_info;
58651 
58652 struct xhci_port_cap;
58653 
58654 struct xhci_hcd {
58655 	struct usb_hcd *main_hcd;
58656 	struct usb_hcd *shared_hcd;
58657 	struct xhci_cap_regs *cap_regs;
58658 	struct xhci_op_regs *op_regs;
58659 	struct xhci_run_regs *run_regs;
58660 	struct xhci_doorbell_array *dba;
58661 	struct xhci_intr_reg *ir_set;
58662 	__u32 hcs_params1;
58663 	__u32 hcs_params2;
58664 	__u32 hcs_params3;
58665 	__u32 hcc_params;
58666 	__u32 hcc_params2;
58667 	spinlock_t lock;
58668 	u8 sbrn;
58669 	u16 hci_version;
58670 	u8 max_slots;
58671 	u8 max_interrupters;
58672 	u8 max_ports;
58673 	u8 isoc_threshold;
58674 	u32 imod_interval;
58675 	u32 isoc_bei_interval;
58676 	int event_ring_max;
58677 	int page_size;
58678 	int page_shift;
58679 	int msix_count;
58680 	struct clk *clk;
58681 	struct clk *reg_clk;
58682 	struct reset_control *reset;
58683 	struct xhci_device_context_array *dcbaa;
58684 	struct xhci_ring *cmd_ring;
58685 	unsigned int cmd_ring_state;
58686 	struct list_head cmd_list;
58687 	unsigned int cmd_ring_reserved_trbs;
58688 	struct delayed_work cmd_timer;
58689 	struct completion cmd_ring_stop_completion;
58690 	struct xhci_command *current_cmd;
58691 	struct xhci_ring *event_ring;
58692 	struct xhci_erst erst;
58693 	struct xhci_scratchpad *scratchpad;
58694 	struct mutex mutex;
58695 	struct xhci_virt_device *devs[256];
58696 	struct xhci_root_port_bw_info *rh_bw;
58697 	struct dma_pool *device_pool;
58698 	struct dma_pool *segment_pool;
58699 	struct dma_pool *small_streams_pool;
58700 	struct dma_pool *medium_streams_pool;
58701 	unsigned int xhc_state;
58702 	long unsigned int run_graceperiod;
58703 	struct s3_save s3;
58704 	long long unsigned int quirks;
58705 	unsigned int num_active_eps;
58706 	unsigned int limit_active_eps;
58707 	struct xhci_port *hw_ports;
58708 	struct xhci_hub usb2_rhub;
58709 	struct xhci_hub usb3_rhub;
58710 	unsigned int hw_lpm_support: 1;
58711 	unsigned int broken_suspend: 1;
58712 	unsigned int allow_single_roothub: 1;
58713 	u32 *ext_caps;
58714 	unsigned int num_ext_caps;
58715 	struct xhci_port_cap *port_caps;
58716 	unsigned int num_port_caps;
58717 	struct timer_list comp_mode_recovery_timer;
58718 	u32 port_status_u0;
58719 	u16 test_mode;
58720 	struct dentry *debugfs_root;
58721 	struct dentry *debugfs_slots;
58722 	struct list_head regset_list;
58723 	void *dbc;
58724 	long unsigned int priv[0];
58725 };
58726 
58727 struct xhci_segment {
58728 	union xhci_trb *trbs;
58729 	struct xhci_segment *next;
58730 	dma_addr_t dma;
58731 	dma_addr_t bounce_dma;
58732 	void *bounce_buf;
58733 	unsigned int bounce_offs;
58734 	unsigned int bounce_len;
58735 };
58736 
58737 enum xhci_overhead_type {
58738 	LS_OVERHEAD_TYPE = 0,
58739 	FS_OVERHEAD_TYPE = 1,
58740 	HS_OVERHEAD_TYPE = 2,
58741 };
58742 
58743 struct xhci_interval_bw {
58744 	unsigned int num_packets;
58745 	struct list_head endpoints;
58746 	unsigned int overhead[3];
58747 };
58748 
58749 struct xhci_interval_bw_table {
58750 	unsigned int interval0_esit_payload;
58751 	struct xhci_interval_bw interval_bw[16];
58752 	unsigned int bw_used;
58753 	unsigned int ss_bw_in;
58754 	unsigned int ss_bw_out;
58755 };
58756 
58757 struct xhci_tt_bw_info {
58758 	struct list_head tt_list;
58759 	int slot_id;
58760 	int ttport;
58761 	struct xhci_interval_bw_table bw_table;
58762 	int active_eps;
58763 };
58764 
58765 struct xhci_root_port_bw_info {
58766 	struct list_head tts;
58767 	unsigned int num_active_tts;
58768 	struct xhci_interval_bw_table bw_table;
58769 };
58770 
58771 struct xhci_device_context_array {
58772 	__le64 dev_context_ptrs[256];
58773 	dma_addr_t dma;
58774 };
58775 
58776 enum xhci_setup_dev {
58777 	SETUP_CONTEXT_ONLY = 0,
58778 	SETUP_CONTEXT_ADDRESS = 1,
58779 };
58780 
58781 enum xhci_cancelled_td_status {
58782 	TD_DIRTY = 0,
58783 	TD_HALTED = 1,
58784 	TD_CLEARING_CACHE = 2,
58785 	TD_CLEARED = 3,
58786 };
58787 
58788 struct xhci_td {
58789 	struct list_head td_list;
58790 	struct list_head cancelled_td_list;
58791 	int status;
58792 	enum xhci_cancelled_td_status cancel_status;
58793 	struct urb *urb;
58794 	struct xhci_segment *start_seg;
58795 	union xhci_trb *first_trb;
58796 	union xhci_trb *last_trb;
58797 	struct xhci_segment *last_trb_seg;
58798 	struct xhci_segment *bounce_seg;
58799 	bool urb_length_set;
58800 	unsigned int num_trbs;
58801 };
58802 
58803 struct xhci_erst_entry {
58804 	__le64 seg_addr;
58805 	__le32 seg_size;
58806 	__le32 rsvd;
58807 };
58808 
58809 struct xhci_scratchpad {
58810 	u64 *sp_array;
58811 	dma_addr_t sp_dma;
58812 	void **sp_buffers;
58813 };
58814 
58815 struct urb_priv {
58816 	int num_tds;
58817 	int num_tds_done;
58818 	struct xhci_td td[0];
58819 };
58820 
58821 struct xhci_port_cap {
58822 	u32 *psi;
58823 	u8 psi_count;
58824 	u8 psi_uid_count;
58825 	u8 maj_rev;
58826 	u8 min_rev;
58827 };
58828 
58829 struct xhci_port {
58830 	__le32 *addr;
58831 	int hw_portnum;
58832 	int hcd_portnum;
58833 	struct xhci_hub *rhub;
58834 	struct xhci_port_cap *port_cap;
58835 	unsigned int lpm_incapable: 1;
58836 };
58837 
58838 struct xhci_driver_overrides {
58839 	size_t extra_priv_size;
58840 	int (*reset)(struct usb_hcd *);
58841 	int (*start)(struct usb_hcd *);
58842 	int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *);
58843 	int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *);
58844 	int (*check_bandwidth)(struct usb_hcd *, struct usb_device *);
58845 	void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
58846 	int (*update_hub_device)(struct usb_hcd *, struct usb_device *, struct usb_tt *, gfp_t);
58847 };
58848 
58849 typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *);
58850 
58851 struct dbc_regs {
58852 	__le32 capability;
58853 	__le32 doorbell;
58854 	__le32 ersts;
58855 	__le32 __reserved_0;
58856 	__le64 erstba;
58857 	__le64 erdp;
58858 	__le32 control;
58859 	__le32 status;
58860 	__le32 portsc;
58861 	__le32 __reserved_1;
58862 	__le64 dccp;
58863 	__le32 devinfo1;
58864 	__le32 devinfo2;
58865 };
58866 
58867 struct dbc_str_descs {
58868 	char string0[64];
58869 	char manufacturer[64];
58870 	char product[64];
58871 	char serial[64];
58872 };
58873 
58874 enum dbc_state {
58875 	DS_DISABLED = 0,
58876 	DS_INITIALIZED = 1,
58877 	DS_ENABLED = 2,
58878 	DS_CONNECTED = 3,
58879 	DS_CONFIGURED = 4,
58880 	DS_STALLED = 5,
58881 };
58882 
58883 struct xhci_dbc;
58884 
58885 struct dbc_ep {
58886 	struct xhci_dbc *dbc;
58887 	struct list_head list_pending;
58888 	struct xhci_ring *ring;
58889 	unsigned int direction: 1;
58890 };
58891 
58892 struct dbc_driver;
58893 
58894 struct xhci_dbc {
58895 	spinlock_t lock;
58896 	struct device *dev;
58897 	struct xhci_hcd *xhci;
58898 	struct dbc_regs *regs;
58899 	struct xhci_ring *ring_evt;
58900 	struct xhci_ring *ring_in;
58901 	struct xhci_ring *ring_out;
58902 	struct xhci_erst erst;
58903 	struct xhci_container_ctx *ctx;
58904 	struct dbc_str_descs *string;
58905 	dma_addr_t string_dma;
58906 	size_t string_size;
58907 	enum dbc_state state;
58908 	struct delayed_work event_work;
58909 	unsigned int resume_required: 1;
58910 	struct dbc_ep eps[2];
58911 	const struct dbc_driver *driver;
58912 	void *priv;
58913 };
58914 
58915 struct dbc_driver {
58916 	int (*configure)(struct xhci_dbc *);
58917 	void (*disconnect)(struct xhci_dbc *);
58918 };
58919 
58920 struct dbc_request {
58921 	void *buf;
58922 	unsigned int length;
58923 	dma_addr_t dma;
58924 	void (*complete)(struct xhci_dbc *, struct dbc_request *);
58925 	struct list_head list_pool;
58926 	int status;
58927 	unsigned int actual;
58928 	struct xhci_dbc *dbc;
58929 	struct list_head list_pending;
58930 	dma_addr_t trb_dma;
58931 	union xhci_trb *trb;
58932 	unsigned int direction: 1;
58933 };
58934 
58935 struct trace_event_raw_xhci_log_msg {
58936 	struct trace_entry ent;
58937 	u32 __data_loc_msg;
58938 	char __data[0];
58939 };
58940 
58941 struct trace_event_raw_xhci_log_ctx {
58942 	struct trace_entry ent;
58943 	int ctx_64;
58944 	unsigned int ctx_type;
58945 	dma_addr_t ctx_dma;
58946 	u8 *ctx_va;
58947 	unsigned int ctx_ep_num;
58948 	int slot_id;
58949 	u32 __data_loc_ctx_data;
58950 	char __data[0];
58951 };
58952 
58953 struct trace_event_raw_xhci_log_trb {
58954 	struct trace_entry ent;
58955 	u32 type;
58956 	u32 field0;
58957 	u32 field1;
58958 	u32 field2;
58959 	u32 field3;
58960 	u32 __data_loc_str;
58961 	char __data[0];
58962 };
58963 
58964 struct trace_event_raw_xhci_log_free_virt_dev {
58965 	struct trace_entry ent;
58966 	void *vdev;
58967 	long long unsigned int out_ctx;
58968 	long long unsigned int in_ctx;
58969 	u8 fake_port;
58970 	u8 real_port;
58971 	u16 current_mel;
58972 	char __data[0];
58973 };
58974 
58975 struct trace_event_raw_xhci_log_virt_dev {
58976 	struct trace_entry ent;
58977 	void *vdev;
58978 	long long unsigned int out_ctx;
58979 	long long unsigned int in_ctx;
58980 	int devnum;
58981 	int state;
58982 	int speed;
58983 	u8 portnum;
58984 	u8 level;
58985 	int slot_id;
58986 	char __data[0];
58987 };
58988 
58989 struct trace_event_raw_xhci_log_urb {
58990 	struct trace_entry ent;
58991 	void *urb;
58992 	unsigned int pipe;
58993 	unsigned int stream;
58994 	int status;
58995 	unsigned int flags;
58996 	int num_mapped_sgs;
58997 	int num_sgs;
58998 	int length;
58999 	int actual;
59000 	int epnum;
59001 	int dir_in;
59002 	int type;
59003 	int slot_id;
59004 	char __data[0];
59005 };
59006 
59007 struct trace_event_raw_xhci_log_ep_ctx {
59008 	struct trace_entry ent;
59009 	u32 info;
59010 	u32 info2;
59011 	u64 deq;
59012 	u32 tx_info;
59013 	u32 __data_loc_str;
59014 	char __data[0];
59015 };
59016 
59017 struct trace_event_raw_xhci_log_slot_ctx {
59018 	struct trace_entry ent;
59019 	u32 info;
59020 	u32 info2;
59021 	u32 tt_info;
59022 	u32 state;
59023 	u32 __data_loc_str;
59024 	char __data[0];
59025 };
59026 
59027 struct trace_event_raw_xhci_log_ctrl_ctx {
59028 	struct trace_entry ent;
59029 	u32 drop;
59030 	u32 add;
59031 	u32 __data_loc_str;
59032 	char __data[0];
59033 };
59034 
59035 struct trace_event_raw_xhci_log_ring {
59036 	struct trace_entry ent;
59037 	u32 type;
59038 	void *ring;
59039 	dma_addr_t enq;
59040 	dma_addr_t deq;
59041 	dma_addr_t enq_seg;
59042 	dma_addr_t deq_seg;
59043 	unsigned int num_segs;
59044 	unsigned int stream_id;
59045 	unsigned int cycle_state;
59046 	unsigned int num_trbs_free;
59047 	unsigned int bounce_buf_len;
59048 	char __data[0];
59049 };
59050 
59051 struct trace_event_raw_xhci_log_portsc {
59052 	struct trace_entry ent;
59053 	u32 portnum;
59054 	u32 portsc;
59055 	u32 __data_loc_str;
59056 	char __data[0];
59057 };
59058 
59059 struct trace_event_raw_xhci_log_doorbell {
59060 	struct trace_entry ent;
59061 	u32 slot;
59062 	u32 doorbell;
59063 	u32 __data_loc_str;
59064 	char __data[0];
59065 };
59066 
59067 struct trace_event_raw_xhci_dbc_log_request {
59068 	struct trace_entry ent;
59069 	struct dbc_request *req;
59070 	bool dir;
59071 	unsigned int actual;
59072 	unsigned int length;
59073 	int status;
59074 	char __data[0];
59075 };
59076 
59077 struct trace_event_data_offsets_xhci_log_msg {
59078 	u32 msg;
59079 };
59080 
59081 struct trace_event_data_offsets_xhci_log_ctx {
59082 	u32 ctx_data;
59083 };
59084 
59085 struct trace_event_data_offsets_xhci_log_trb {
59086 	u32 str;
59087 };
59088 
59089 struct trace_event_data_offsets_xhci_log_free_virt_dev {};
59090 
59091 struct trace_event_data_offsets_xhci_log_virt_dev {};
59092 
59093 struct trace_event_data_offsets_xhci_log_urb {};
59094 
59095 struct trace_event_data_offsets_xhci_log_ep_ctx {
59096 	u32 str;
59097 };
59098 
59099 struct trace_event_data_offsets_xhci_log_slot_ctx {
59100 	u32 str;
59101 };
59102 
59103 struct trace_event_data_offsets_xhci_log_ctrl_ctx {
59104 	u32 str;
59105 };
59106 
59107 struct trace_event_data_offsets_xhci_log_ring {};
59108 
59109 struct trace_event_data_offsets_xhci_log_portsc {
59110 	u32 str;
59111 };
59112 
59113 struct trace_event_data_offsets_xhci_log_doorbell {
59114 	u32 str;
59115 };
59116 
59117 struct trace_event_data_offsets_xhci_dbc_log_request {};
59118 
59119 typedef void (*btf_trace_xhci_dbg_address)(void *, struct va_format *);
59120 
59121 typedef void (*btf_trace_xhci_dbg_context_change)(void *, struct va_format *);
59122 
59123 typedef void (*btf_trace_xhci_dbg_quirks)(void *, struct va_format *);
59124 
59125 typedef void (*btf_trace_xhci_dbg_reset_ep)(void *, struct va_format *);
59126 
59127 typedef void (*btf_trace_xhci_dbg_cancel_urb)(void *, struct va_format *);
59128 
59129 typedef void (*btf_trace_xhci_dbg_init)(void *, struct va_format *);
59130 
59131 typedef void (*btf_trace_xhci_dbg_ring_expansion)(void *, struct va_format *);
59132 
59133 typedef void (*btf_trace_xhci_address_ctx)(void *, struct xhci_hcd *, struct xhci_container_ctx *, unsigned int);
59134 
59135 typedef void (*btf_trace_xhci_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *);
59136 
59137 typedef void (*btf_trace_xhci_handle_command)(void *, struct xhci_ring *, struct xhci_generic_trb *);
59138 
59139 typedef void (*btf_trace_xhci_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *);
59140 
59141 typedef void (*btf_trace_xhci_queue_trb)(void *, struct xhci_ring *, struct xhci_generic_trb *);
59142 
59143 typedef void (*btf_trace_xhci_dbc_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *);
59144 
59145 typedef void (*btf_trace_xhci_dbc_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *);
59146 
59147 typedef void (*btf_trace_xhci_dbc_gadget_ep_queue)(void *, struct xhci_ring *, struct xhci_generic_trb *);
59148 
59149 typedef void (*btf_trace_xhci_free_virt_device)(void *, struct xhci_virt_device *);
59150 
59151 typedef void (*btf_trace_xhci_alloc_virt_device)(void *, struct xhci_virt_device *);
59152 
59153 typedef void (*btf_trace_xhci_setup_device)(void *, struct xhci_virt_device *);
59154 
59155 typedef void (*btf_trace_xhci_setup_addressable_virt_device)(void *, struct xhci_virt_device *);
59156 
59157 typedef void (*btf_trace_xhci_stop_device)(void *, struct xhci_virt_device *);
59158 
59159 typedef void (*btf_trace_xhci_urb_enqueue)(void *, struct urb *);
59160 
59161 typedef void (*btf_trace_xhci_urb_giveback)(void *, struct urb *);
59162 
59163 typedef void (*btf_trace_xhci_urb_dequeue)(void *, struct urb *);
59164 
59165 typedef void (*btf_trace_xhci_handle_cmd_stop_ep)(void *, struct xhci_ep_ctx *);
59166 
59167 typedef void (*btf_trace_xhci_handle_cmd_set_deq_ep)(void *, struct xhci_ep_ctx *);
59168 
59169 typedef void (*btf_trace_xhci_handle_cmd_reset_ep)(void *, struct xhci_ep_ctx *);
59170 
59171 typedef void (*btf_trace_xhci_handle_cmd_config_ep)(void *, struct xhci_ep_ctx *);
59172 
59173 typedef void (*btf_trace_xhci_add_endpoint)(void *, struct xhci_ep_ctx *);
59174 
59175 typedef void (*btf_trace_xhci_alloc_dev)(void *, struct xhci_slot_ctx *);
59176 
59177 typedef void (*btf_trace_xhci_free_dev)(void *, struct xhci_slot_ctx *);
59178 
59179 typedef void (*btf_trace_xhci_handle_cmd_disable_slot)(void *, struct xhci_slot_ctx *);
59180 
59181 typedef void (*btf_trace_xhci_discover_or_reset_device)(void *, struct xhci_slot_ctx *);
59182 
59183 typedef void (*btf_trace_xhci_setup_device_slot)(void *, struct xhci_slot_ctx *);
59184 
59185 typedef void (*btf_trace_xhci_handle_cmd_addr_dev)(void *, struct xhci_slot_ctx *);
59186 
59187 typedef void (*btf_trace_xhci_handle_cmd_reset_dev)(void *, struct xhci_slot_ctx *);
59188 
59189 typedef void (*btf_trace_xhci_handle_cmd_set_deq)(void *, struct xhci_slot_ctx *);
59190 
59191 typedef void (*btf_trace_xhci_configure_endpoint)(void *, struct xhci_slot_ctx *);
59192 
59193 typedef void (*btf_trace_xhci_address_ctrl_ctx)(void *, struct xhci_input_control_ctx *);
59194 
59195 typedef void (*btf_trace_xhci_configure_endpoint_ctrl_ctx)(void *, struct xhci_input_control_ctx *);
59196 
59197 typedef void (*btf_trace_xhci_ring_alloc)(void *, struct xhci_ring *);
59198 
59199 typedef void (*btf_trace_xhci_ring_free)(void *, struct xhci_ring *);
59200 
59201 typedef void (*btf_trace_xhci_ring_expansion)(void *, struct xhci_ring *);
59202 
59203 typedef void (*btf_trace_xhci_inc_enq)(void *, struct xhci_ring *);
59204 
59205 typedef void (*btf_trace_xhci_inc_deq)(void *, struct xhci_ring *);
59206 
59207 typedef void (*btf_trace_xhci_handle_port_status)(void *, u32, u32);
59208 
59209 typedef void (*btf_trace_xhci_get_port_status)(void *, u32, u32);
59210 
59211 typedef void (*btf_trace_xhci_hub_status_data)(void *, u32, u32);
59212 
59213 typedef void (*btf_trace_xhci_ring_ep_doorbell)(void *, u32, u32);
59214 
59215 typedef void (*btf_trace_xhci_ring_host_doorbell)(void *, u32, u32);
59216 
59217 typedef void (*btf_trace_xhci_dbc_alloc_request)(void *, struct dbc_request *);
59218 
59219 typedef void (*btf_trace_xhci_dbc_free_request)(void *, struct dbc_request *);
59220 
59221 typedef void (*btf_trace_xhci_dbc_queue_request)(void *, struct dbc_request *);
59222 
59223 typedef void (*btf_trace_xhci_dbc_giveback_request)(void *, struct dbc_request *);
59224 
59225 struct async_icount {
59226 	__u32 cts;
59227 	__u32 dsr;
59228 	__u32 rng;
59229 	__u32 dcd;
59230 	__u32 tx;
59231 	__u32 rx;
59232 	__u32 frame;
59233 	__u32 parity;
59234 	__u32 overrun;
59235 	__u32 brk;
59236 	__u32 buf_overrun;
59237 };
59238 
59239 struct usb_serial;
59240 
59241 struct usb_serial_port {
59242 	struct usb_serial *serial;
59243 	struct tty_port port;
59244 	spinlock_t lock;
59245 	u32 minor;
59246 	u8 port_number;
59247 	unsigned char *interrupt_in_buffer;
59248 	struct urb *interrupt_in_urb;
59249 	__u8 interrupt_in_endpointAddress;
59250 	unsigned char *interrupt_out_buffer;
59251 	int interrupt_out_size;
59252 	struct urb *interrupt_out_urb;
59253 	__u8 interrupt_out_endpointAddress;
59254 	unsigned char *bulk_in_buffer;
59255 	int bulk_in_size;
59256 	struct urb *read_urb;
59257 	__u8 bulk_in_endpointAddress;
59258 	unsigned char *bulk_in_buffers[2];
59259 	struct urb *read_urbs[2];
59260 	long unsigned int read_urbs_free;
59261 	unsigned char *bulk_out_buffer;
59262 	int bulk_out_size;
59263 	struct urb *write_urb;
59264 	struct kfifo write_fifo;
59265 	unsigned char *bulk_out_buffers[2];
59266 	struct urb *write_urbs[2];
59267 	long unsigned int write_urbs_free;
59268 	__u8 bulk_out_endpointAddress;
59269 	struct async_icount icount;
59270 	int tx_bytes;
59271 	long unsigned int flags;
59272 	struct work_struct work;
59273 	long unsigned int sysrq;
59274 	struct device dev;
59275 };
59276 
59277 struct usb_serial_driver;
59278 
59279 struct usb_serial {
59280 	struct usb_device *dev;
59281 	struct usb_serial_driver *type;
59282 	struct usb_interface *interface;
59283 	struct usb_interface *sibling;
59284 	unsigned int suspend_count;
59285 	unsigned char disconnected: 1;
59286 	unsigned char attached: 1;
59287 	unsigned char minors_reserved: 1;
59288 	unsigned char num_ports;
59289 	unsigned char num_port_pointers;
59290 	unsigned char num_interrupt_in;
59291 	unsigned char num_interrupt_out;
59292 	unsigned char num_bulk_in;
59293 	unsigned char num_bulk_out;
59294 	struct usb_serial_port *port[16];
59295 	struct kref kref;
59296 	struct mutex disc_mutex;
59297 	void *private;
59298 };
59299 
59300 struct usb_serial_endpoints;
59301 
59302 struct usb_serial_driver {
59303 	const char *description;
59304 	const struct usb_device_id *id_table;
59305 	struct list_head driver_list;
59306 	struct device_driver driver;
59307 	struct usb_driver *usb_driver;
59308 	struct usb_dynids dynids;
59309 	unsigned char num_ports;
59310 	unsigned char num_bulk_in;
59311 	unsigned char num_bulk_out;
59312 	unsigned char num_interrupt_in;
59313 	unsigned char num_interrupt_out;
59314 	size_t bulk_in_size;
59315 	size_t bulk_out_size;
59316 	int (*probe)(struct usb_serial *, const struct usb_device_id *);
59317 	int (*attach)(struct usb_serial *);
59318 	int (*calc_num_ports)(struct usb_serial *, struct usb_serial_endpoints *);
59319 	void (*disconnect)(struct usb_serial *);
59320 	void (*release)(struct usb_serial *);
59321 	int (*port_probe)(struct usb_serial_port *);
59322 	void (*port_remove)(struct usb_serial_port *);
59323 	int (*suspend)(struct usb_serial *, pm_message_t);
59324 	int (*resume)(struct usb_serial *);
59325 	int (*reset_resume)(struct usb_serial *);
59326 	int (*open)(struct tty_struct *, struct usb_serial_port *);
59327 	void (*close)(struct usb_serial_port *);
59328 	int (*write)(struct tty_struct *, struct usb_serial_port *, const unsigned char *, int);
59329 	unsigned int (*write_room)(struct tty_struct *);
59330 	int (*ioctl)(struct tty_struct *, unsigned int, long unsigned int);
59331 	void (*get_serial)(struct tty_struct *, struct serial_struct *);
59332 	int (*set_serial)(struct tty_struct *, struct serial_struct *);
59333 	void (*set_termios)(struct tty_struct *, struct usb_serial_port *, const struct ktermios *);
59334 	void (*break_ctl)(struct tty_struct *, int);
59335 	unsigned int (*chars_in_buffer)(struct tty_struct *);
59336 	void (*wait_until_sent)(struct tty_struct *, long int);
59337 	bool (*tx_empty)(struct usb_serial_port *);
59338 	void (*throttle)(struct tty_struct *);
59339 	void (*unthrottle)(struct tty_struct *);
59340 	int (*tiocmget)(struct tty_struct *);
59341 	int (*tiocmset)(struct tty_struct *, unsigned int, unsigned int);
59342 	int (*tiocmiwait)(struct tty_struct *, long unsigned int);
59343 	int (*get_icount)(struct tty_struct *, struct serial_icounter_struct *);
59344 	void (*dtr_rts)(struct usb_serial_port *, int);
59345 	int (*carrier_raised)(struct usb_serial_port *);
59346 	void (*init_termios)(struct tty_struct *);
59347 	void (*read_int_callback)(struct urb *);
59348 	void (*write_int_callback)(struct urb *);
59349 	void (*read_bulk_callback)(struct urb *);
59350 	void (*write_bulk_callback)(struct urb *);
59351 	void (*process_read_urb)(struct urb *);
59352 	int (*prepare_write_buffer)(struct usb_serial_port *, void *, size_t);
59353 };
59354 
59355 struct usb_serial_endpoints {
59356 	unsigned char num_bulk_in;
59357 	unsigned char num_bulk_out;
59358 	unsigned char num_interrupt_in;
59359 	unsigned char num_interrupt_out;
59360 	struct usb_endpoint_descriptor *bulk_in[16];
59361 	struct usb_endpoint_descriptor *bulk_out[16];
59362 	struct usb_endpoint_descriptor *interrupt_in[16];
59363 	struct usb_endpoint_descriptor *interrupt_out[16];
59364 };
59365 
59366 struct usbcons_info {
59367 	int magic;
59368 	int break_flag;
59369 	struct usb_serial_port *port;
59370 };
59371 
59372 struct input_mt_slot {
59373 	int abs[14];
59374 	unsigned int frame;
59375 	unsigned int key;
59376 };
59377 
59378 struct input_mt {
59379 	int trkid;
59380 	int num_slots;
59381 	int slot;
59382 	unsigned int flags;
59383 	unsigned int frame;
59384 	int *red;
59385 	struct input_mt_slot slots[0];
59386 };
59387 
59388 union input_seq_state {
59389 	struct {
59390 		short unsigned int pos;
59391 		bool mutex_acquired;
59392 	};
59393 	void *p;
59394 };
59395 
59396 struct input_devres {
59397 	struct input_dev *input;
59398 };
59399 
59400 struct input_mt_pos {
59401 	s16 x;
59402 	s16 y;
59403 };
59404 
59405 struct touchscreen_properties {
59406 	unsigned int max_x;
59407 	unsigned int max_y;
59408 	bool invert_x;
59409 	bool invert_y;
59410 	bool swap_x_y;
59411 };
59412 
59413 struct serio_device_id {
59414 	__u8 type;
59415 	__u8 extra;
59416 	__u8 id;
59417 	__u8 proto;
59418 };
59419 
59420 struct serio_driver;
59421 
59422 struct serio {
59423 	void *port_data;
59424 	char name[32];
59425 	char phys[32];
59426 	char firmware_id[128];
59427 	bool manual_bind;
59428 	struct serio_device_id id;
59429 	spinlock_t lock;
59430 	int (*write)(struct serio *, unsigned char);
59431 	int (*open)(struct serio *);
59432 	void (*close)(struct serio *);
59433 	int (*start)(struct serio *);
59434 	void (*stop)(struct serio *);
59435 	struct serio *parent;
59436 	struct list_head child_node;
59437 	struct list_head children;
59438 	unsigned int depth;
59439 	struct serio_driver *drv;
59440 	struct mutex drv_mutex;
59441 	struct device dev;
59442 	struct list_head node;
59443 	struct mutex *ps2_cmd_mutex;
59444 };
59445 
59446 struct serio_driver {
59447 	const char *description;
59448 	const struct serio_device_id *id_table;
59449 	bool manual_bind;
59450 	void (*write_wakeup)(struct serio *);
59451 	irqreturn_t (*interrupt)(struct serio *, unsigned char, unsigned int);
59452 	int (*connect)(struct serio *, struct serio_driver *);
59453 	int (*reconnect)(struct serio *);
59454 	int (*fast_reconnect)(struct serio *);
59455 	void (*disconnect)(struct serio *);
59456 	void (*cleanup)(struct serio *);
59457 	struct device_driver driver;
59458 };
59459 
59460 struct ps2dev {
59461 	struct serio *serio;
59462 	struct mutex cmd_mutex;
59463 	wait_queue_head_t wait;
59464 	long unsigned int flags;
59465 	u8 cmdbuf[8];
59466 	u8 cmdcnt;
59467 	u8 nak;
59468 };
59469 
59470 enum psmouse_state {
59471 	PSMOUSE_IGNORE = 0,
59472 	PSMOUSE_INITIALIZING = 1,
59473 	PSMOUSE_RESYNCING = 2,
59474 	PSMOUSE_CMD_MODE = 3,
59475 	PSMOUSE_ACTIVATED = 4,
59476 };
59477 
59478 typedef enum {
59479 	PSMOUSE_BAD_DATA = 0,
59480 	PSMOUSE_GOOD_DATA = 1,
59481 	PSMOUSE_FULL_PACKET = 2,
59482 } psmouse_ret_t;
59483 
59484 enum psmouse_scale {
59485 	PSMOUSE_SCALE11 = 0,
59486 	PSMOUSE_SCALE21 = 1,
59487 };
59488 
59489 enum psmouse_type {
59490 	PSMOUSE_NONE = 0,
59491 	PSMOUSE_PS2 = 1,
59492 	PSMOUSE_PS2PP = 2,
59493 	PSMOUSE_THINKPS = 3,
59494 	PSMOUSE_GENPS = 4,
59495 	PSMOUSE_IMPS = 5,
59496 	PSMOUSE_IMEX = 6,
59497 	PSMOUSE_SYNAPTICS = 7,
59498 	PSMOUSE_ALPS = 8,
59499 	PSMOUSE_LIFEBOOK = 9,
59500 	PSMOUSE_TRACKPOINT = 10,
59501 	PSMOUSE_TOUCHKIT_PS2 = 11,
59502 	PSMOUSE_CORTRON = 12,
59503 	PSMOUSE_HGPK = 13,
59504 	PSMOUSE_ELANTECH = 14,
59505 	PSMOUSE_FSP = 15,
59506 	PSMOUSE_SYNAPTICS_RELATIVE = 16,
59507 	PSMOUSE_CYPRESS = 17,
59508 	PSMOUSE_FOCALTECH = 18,
59509 	PSMOUSE_VMMOUSE = 19,
59510 	PSMOUSE_BYD = 20,
59511 	PSMOUSE_SYNAPTICS_SMBUS = 21,
59512 	PSMOUSE_ELANTECH_SMBUS = 22,
59513 	PSMOUSE_AUTO = 23,
59514 };
59515 
59516 struct psmouse;
59517 
59518 struct psmouse_protocol {
59519 	enum psmouse_type type;
59520 	bool maxproto;
59521 	bool ignore_parity;
59522 	bool try_passthru;
59523 	bool smbus_companion;
59524 	const char *name;
59525 	const char *alias;
59526 	int (*detect)(struct psmouse *, bool);
59527 	int (*init)(struct psmouse *);
59528 };
59529 
59530 struct psmouse {
59531 	void *private;
59532 	struct input_dev *dev;
59533 	struct ps2dev ps2dev;
59534 	struct delayed_work resync_work;
59535 	const char *vendor;
59536 	const char *name;
59537 	const struct psmouse_protocol *protocol;
59538 	unsigned char packet[8];
59539 	unsigned char badbyte;
59540 	unsigned char pktcnt;
59541 	unsigned char pktsize;
59542 	unsigned char oob_data_type;
59543 	unsigned char extra_buttons;
59544 	bool acks_disable_command;
59545 	unsigned int model;
59546 	long unsigned int last;
59547 	long unsigned int out_of_sync_cnt;
59548 	long unsigned int num_resyncs;
59549 	enum psmouse_state state;
59550 	char devname[64];
59551 	char phys[32];
59552 	unsigned int rate;
59553 	unsigned int resolution;
59554 	unsigned int resetafter;
59555 	unsigned int resync_time;
59556 	bool smartscroll;
59557 	psmouse_ret_t (*protocol_handler)(struct psmouse *);
59558 	void (*set_rate)(struct psmouse *, unsigned int);
59559 	void (*set_resolution)(struct psmouse *, unsigned int);
59560 	void (*set_scale)(struct psmouse *, enum psmouse_scale);
59561 	int (*reconnect)(struct psmouse *);
59562 	int (*fast_reconnect)(struct psmouse *);
59563 	void (*disconnect)(struct psmouse *);
59564 	void (*cleanup)(struct psmouse *);
59565 	int (*poll)(struct psmouse *);
59566 	void (*pt_activate)(struct psmouse *);
59567 	void (*pt_deactivate)(struct psmouse *);
59568 };
59569 
59570 struct psmouse_attribute {
59571 	struct device_attribute dattr;
59572 	void *data;
59573 	ssize_t (*show)(struct psmouse *, void *, char *);
59574 	ssize_t (*set)(struct psmouse *, void *, const char *, size_t);
59575 	bool protect;
59576 };
59577 
59578 struct byd_data {
59579 	struct timer_list timer;
59580 	struct psmouse *psmouse;
59581 	s32 abs_x;
59582 	s32 abs_y;
59583 	volatile long unsigned int last_touch_time;
59584 	bool btn_left;
59585 	bool btn_right;
59586 	bool touch;
59587 };
59588 
59589 struct trackpoint_data {
59590 	u8 variant_id;
59591 	u8 firmware_id;
59592 	u8 sensitivity;
59593 	u8 speed;
59594 	u8 inertia;
59595 	u8 reach;
59596 	u8 draghys;
59597 	u8 mindrag;
59598 	u8 thresh;
59599 	u8 upthresh;
59600 	u8 ztime;
59601 	u8 jenks;
59602 	u8 drift_time;
59603 	bool press_to_select;
59604 	bool skipback;
59605 	bool ext_dev;
59606 };
59607 
59608 struct trackpoint_attr_data {
59609 	size_t field_offset;
59610 	u8 command;
59611 	u8 mask;
59612 	bool inverted;
59613 	u8 power_on_default;
59614 };
59615 
59616 struct i2c_device_id {
59617 	char name[20];
59618 	kernel_ulong_t driver_data;
59619 };
59620 
59621 struct acpi_connection_info {
59622 	u8 *connection;
59623 	u16 length;
59624 	u8 access_length;
59625 };
59626 
59627 enum acpi_reconfig_event {
59628 	ACPI_RECONFIG_DEVICE_ADD = 0,
59629 	ACPI_RECONFIG_DEVICE_REMOVE = 1,
59630 };
59631 
59632 enum i2c_alert_protocol {
59633 	I2C_PROTOCOL_SMBUS_ALERT = 0,
59634 	I2C_PROTOCOL_SMBUS_HOST_NOTIFY = 1,
59635 };
59636 
59637 enum i2c_driver_flags {
59638 	I2C_DRV_ACPI_WAIVE_D0_PROBE = 1,
59639 };
59640 
59641 struct i2c_driver {
59642 	unsigned int class;
59643 	int (*probe)(struct i2c_client *, const struct i2c_device_id *);
59644 	void (*remove)(struct i2c_client *);
59645 	int (*probe_new)(struct i2c_client *);
59646 	void (*shutdown)(struct i2c_client *);
59647 	void (*alert)(struct i2c_client *, enum i2c_alert_protocol, unsigned int);
59648 	int (*command)(struct i2c_client *, unsigned int, void *);
59649 	struct device_driver driver;
59650 	const struct i2c_device_id *id_table;
59651 	int (*detect)(struct i2c_client *, struct i2c_board_info *);
59652 	const short unsigned int *address_list;
59653 	struct list_head clients;
59654 	u32 flags;
59655 };
59656 
59657 struct i2c_acpi_handler_data {
59658 	struct acpi_connection_info info;
59659 	struct i2c_adapter *adapter;
59660 };
59661 
59662 struct gsb_buffer {
59663 	u8 status;
59664 	u8 len;
59665 	union {
59666 		u16 wdata;
59667 		u8 bdata;
59668 		struct {
59669 			struct {			} __empty_data;
59670 			u8 data[0];
59671 		};
59672 	};
59673 };
59674 
59675 struct i2c_acpi_lookup {
59676 	struct i2c_board_info *info;
59677 	acpi_handle adapter_handle;
59678 	acpi_handle device_handle;
59679 	acpi_handle search_handle;
59680 	int n;
59681 	int index;
59682 	u32 speed;
59683 	u32 min_speed;
59684 	u32 force_speed;
59685 };
59686 
59687 struct i2c_acpi_irq_context {
59688 	int irq;
59689 	bool wake_capable;
59690 };
59691 
59692 enum {
59693 	KERNEL_PARAM_FL_UNSAFE = 1,
59694 	KERNEL_PARAM_FL_HWPARAM = 2,
59695 };
59696 
59697 enum hwparam_type {
59698 	hwparam_ioport = 0,
59699 	hwparam_iomem = 1,
59700 	hwparam_ioport_or_iomem = 2,
59701 	hwparam_irq = 3,
59702 	hwparam_dma = 4,
59703 	hwparam_dma_addr = 5,
59704 	hwparam_other = 6,
59705 };
59706 
59707 struct sb800_mmio_cfg {
59708 	void *addr;
59709 	bool use_mmio;
59710 };
59711 
59712 struct i2c_piix4_adapdata {
59713 	short unsigned int smba;
59714 	bool sb800_main;
59715 	bool notify_imc;
59716 	u8 port;
59717 	struct sb800_mmio_cfg mmio_cfg;
59718 };
59719 
59720 struct system_time_snapshot {
59721 	u64 cycles;
59722 	ktime_t real;
59723 	ktime_t raw;
59724 	enum clocksource_ids cs_id;
59725 	unsigned int clock_was_set_seq;
59726 	u8 cs_was_changed_seq;
59727 };
59728 
59729 struct pps_ktime {
59730 	__s64 sec;
59731 	__s32 nsec;
59732 	__u32 flags;
59733 };
59734 
59735 struct pps_kparams {
59736 	int api_version;
59737 	int mode;
59738 	struct pps_ktime assert_off_tu;
59739 	struct pps_ktime clear_off_tu;
59740 };
59741 
59742 struct pps_device;
59743 
59744 struct pps_source_info {
59745 	char name[32];
59746 	char path[32];
59747 	int mode;
59748 	void (*echo)(struct pps_device *, int, void *);
59749 	struct module *owner;
59750 	struct device *dev;
59751 };
59752 
59753 struct pps_device {
59754 	struct pps_source_info info;
59755 	struct pps_kparams params;
59756 	__u32 assert_sequence;
59757 	__u32 clear_sequence;
59758 	struct pps_ktime assert_tu;
59759 	struct pps_ktime clear_tu;
59760 	int current_mode;
59761 	unsigned int last_ev;
59762 	wait_queue_head_t queue;
59763 	unsigned int id;
59764 	const void *lookup_cookie;
59765 	struct cdev cdev;
59766 	struct device *dev;
59767 	struct fasync_struct *async_queue;
59768 	spinlock_t lock;
59769 };
59770 
59771 struct kthread_delayed_work {
59772 	struct kthread_work work;
59773 	struct timer_list timer;
59774 };
59775 
59776 struct ptp_extts_event {
59777 	struct ptp_clock_time t;
59778 	unsigned int index;
59779 	unsigned int flags;
59780 	unsigned int rsv[2];
59781 };
59782 
59783 struct timestamp_event_queue {
59784 	struct ptp_extts_event buf[128];
59785 	int head;
59786 	int tail;
59787 	spinlock_t lock;
59788 };
59789 
59790 struct ptp_clock {
59791 	struct posix_clock clock;
59792 	struct device dev;
59793 	struct ptp_clock_info *info;
59794 	dev_t devid;
59795 	int index;
59796 	struct pps_device *pps_source;
59797 	long int dialed_frequency;
59798 	struct timestamp_event_queue tsevq;
59799 	struct mutex tsevq_mux;
59800 	struct mutex pincfg_mux;
59801 	wait_queue_head_t tsev_wq;
59802 	int defunct;
59803 	struct device_attribute *pin_dev_attr;
59804 	struct attribute **pin_attr;
59805 	struct attribute_group pin_attr_group;
59806 	const struct attribute_group *pin_attr_groups[2];
59807 	struct kthread_worker *kworker;
59808 	struct kthread_delayed_work aux_work;
59809 	unsigned int max_vclocks;
59810 	unsigned int n_vclocks;
59811 	int *vclock_index;
59812 	struct mutex n_vclocks_mux;
59813 	bool is_virtual_clock;
59814 	bool has_cycles;
59815 };
59816 
59817 struct ptp_vclock {
59818 	struct ptp_clock *pclock;
59819 	struct ptp_clock_info info;
59820 	struct ptp_clock *clock;
59821 	struct hlist_node vclock_hash_node;
59822 	struct cyclecounter cc;
59823 	struct timecounter tc;
59824 	spinlock_t lock;
59825 };
59826 
59827 enum led_brightness {
59828 	LED_OFF = 0,
59829 	LED_ON = 1,
59830 	LED_HALF = 127,
59831 	LED_FULL = 255,
59832 };
59833 
59834 struct led_hw_trigger_type {
59835 	int dummy;
59836 };
59837 
59838 struct led_pattern;
59839 
59840 struct led_trigger;
59841 
59842 struct led_classdev {
59843 	const char *name;
59844 	unsigned int brightness;
59845 	unsigned int max_brightness;
59846 	int flags;
59847 	long unsigned int work_flags;
59848 	void (*brightness_set)(struct led_classdev *, enum led_brightness);
59849 	int (*brightness_set_blocking)(struct led_classdev *, enum led_brightness);
59850 	enum led_brightness (*brightness_get)(struct led_classdev *);
59851 	int (*blink_set)(struct led_classdev *, long unsigned int *, long unsigned int *);
59852 	int (*pattern_set)(struct led_classdev *, struct led_pattern *, u32, int);
59853 	int (*pattern_clear)(struct led_classdev *);
59854 	struct device *dev;
59855 	const struct attribute_group **groups;
59856 	struct list_head node;
59857 	const char *default_trigger;
59858 	long unsigned int blink_delay_on;
59859 	long unsigned int blink_delay_off;
59860 	struct timer_list blink_timer;
59861 	int blink_brightness;
59862 	int new_blink_brightness;
59863 	void (*flash_resume)(struct led_classdev *);
59864 	struct work_struct set_brightness_work;
59865 	int delayed_set_value;
59866 	struct rw_semaphore trigger_lock;
59867 	struct led_trigger *trigger;
59868 	struct list_head trig_list;
59869 	void *trigger_data;
59870 	bool activated;
59871 	struct led_hw_trigger_type *trigger_type;
59872 	int brightness_hw_changed;
59873 	struct kernfs_node *brightness_hw_changed_kn;
59874 	struct mutex led_access;
59875 };
59876 
59877 struct led_pattern {
59878 	u32 delta_t;
59879 	int brightness;
59880 };
59881 
59882 struct led_trigger {
59883 	const char *name;
59884 	int (*activate)(struct led_classdev *);
59885 	void (*deactivate)(struct led_classdev *);
59886 	struct led_hw_trigger_type *trigger_type;
59887 	spinlock_t leddev_list_lock;
59888 	struct list_head led_cdevs;
59889 	struct list_head next_trig;
59890 	const struct attribute_group **groups;
59891 };
59892 
59893 enum {
59894 	POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0,
59895 	POWER_SUPPLY_TECHNOLOGY_NiMH = 1,
59896 	POWER_SUPPLY_TECHNOLOGY_LION = 2,
59897 	POWER_SUPPLY_TECHNOLOGY_LIPO = 3,
59898 	POWER_SUPPLY_TECHNOLOGY_LiFe = 4,
59899 	POWER_SUPPLY_TECHNOLOGY_NiCd = 5,
59900 	POWER_SUPPLY_TECHNOLOGY_LiMn = 6,
59901 };
59902 
59903 enum power_supply_property {
59904 	POWER_SUPPLY_PROP_STATUS = 0,
59905 	POWER_SUPPLY_PROP_CHARGE_TYPE = 1,
59906 	POWER_SUPPLY_PROP_HEALTH = 2,
59907 	POWER_SUPPLY_PROP_PRESENT = 3,
59908 	POWER_SUPPLY_PROP_ONLINE = 4,
59909 	POWER_SUPPLY_PROP_AUTHENTIC = 5,
59910 	POWER_SUPPLY_PROP_TECHNOLOGY = 6,
59911 	POWER_SUPPLY_PROP_CYCLE_COUNT = 7,
59912 	POWER_SUPPLY_PROP_VOLTAGE_MAX = 8,
59913 	POWER_SUPPLY_PROP_VOLTAGE_MIN = 9,
59914 	POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN = 10,
59915 	POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN = 11,
59916 	POWER_SUPPLY_PROP_VOLTAGE_NOW = 12,
59917 	POWER_SUPPLY_PROP_VOLTAGE_AVG = 13,
59918 	POWER_SUPPLY_PROP_VOLTAGE_OCV = 14,
59919 	POWER_SUPPLY_PROP_VOLTAGE_BOOT = 15,
59920 	POWER_SUPPLY_PROP_CURRENT_MAX = 16,
59921 	POWER_SUPPLY_PROP_CURRENT_NOW = 17,
59922 	POWER_SUPPLY_PROP_CURRENT_AVG = 18,
59923 	POWER_SUPPLY_PROP_CURRENT_BOOT = 19,
59924 	POWER_SUPPLY_PROP_POWER_NOW = 20,
59925 	POWER_SUPPLY_PROP_POWER_AVG = 21,
59926 	POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN = 22,
59927 	POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN = 23,
59928 	POWER_SUPPLY_PROP_CHARGE_FULL = 24,
59929 	POWER_SUPPLY_PROP_CHARGE_EMPTY = 25,
59930 	POWER_SUPPLY_PROP_CHARGE_NOW = 26,
59931 	POWER_SUPPLY_PROP_CHARGE_AVG = 27,
59932 	POWER_SUPPLY_PROP_CHARGE_COUNTER = 28,
59933 	POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT = 29,
59934 	POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX = 30,
59935 	POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE = 31,
59936 	POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX = 32,
59937 	POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT = 33,
59938 	POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT_MAX = 34,
59939 	POWER_SUPPLY_PROP_CHARGE_CONTROL_START_THRESHOLD = 35,
59940 	POWER_SUPPLY_PROP_CHARGE_CONTROL_END_THRESHOLD = 36,
59941 	POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR = 37,
59942 	POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT = 38,
59943 	POWER_SUPPLY_PROP_INPUT_VOLTAGE_LIMIT = 39,
59944 	POWER_SUPPLY_PROP_INPUT_POWER_LIMIT = 40,
59945 	POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN = 41,
59946 	POWER_SUPPLY_PROP_ENERGY_EMPTY_DESIGN = 42,
59947 	POWER_SUPPLY_PROP_ENERGY_FULL = 43,
59948 	POWER_SUPPLY_PROP_ENERGY_EMPTY = 44,
59949 	POWER_SUPPLY_PROP_ENERGY_NOW = 45,
59950 	POWER_SUPPLY_PROP_ENERGY_AVG = 46,
59951 	POWER_SUPPLY_PROP_CAPACITY = 47,
59952 	POWER_SUPPLY_PROP_CAPACITY_ALERT_MIN = 48,
59953 	POWER_SUPPLY_PROP_CAPACITY_ALERT_MAX = 49,
59954 	POWER_SUPPLY_PROP_CAPACITY_ERROR_MARGIN = 50,
59955 	POWER_SUPPLY_PROP_CAPACITY_LEVEL = 51,
59956 	POWER_SUPPLY_PROP_TEMP = 52,
59957 	POWER_SUPPLY_PROP_TEMP_MAX = 53,
59958 	POWER_SUPPLY_PROP_TEMP_MIN = 54,
59959 	POWER_SUPPLY_PROP_TEMP_ALERT_MIN = 55,
59960 	POWER_SUPPLY_PROP_TEMP_ALERT_MAX = 56,
59961 	POWER_SUPPLY_PROP_TEMP_AMBIENT = 57,
59962 	POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MIN = 58,
59963 	POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MAX = 59,
59964 	POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW = 60,
59965 	POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG = 61,
59966 	POWER_SUPPLY_PROP_TIME_TO_FULL_NOW = 62,
59967 	POWER_SUPPLY_PROP_TIME_TO_FULL_AVG = 63,
59968 	POWER_SUPPLY_PROP_TYPE = 64,
59969 	POWER_SUPPLY_PROP_USB_TYPE = 65,
59970 	POWER_SUPPLY_PROP_SCOPE = 66,
59971 	POWER_SUPPLY_PROP_PRECHARGE_CURRENT = 67,
59972 	POWER_SUPPLY_PROP_CHARGE_TERM_CURRENT = 68,
59973 	POWER_SUPPLY_PROP_CALIBRATE = 69,
59974 	POWER_SUPPLY_PROP_MANUFACTURE_YEAR = 70,
59975 	POWER_SUPPLY_PROP_MANUFACTURE_MONTH = 71,
59976 	POWER_SUPPLY_PROP_MANUFACTURE_DAY = 72,
59977 	POWER_SUPPLY_PROP_MODEL_NAME = 73,
59978 	POWER_SUPPLY_PROP_MANUFACTURER = 74,
59979 	POWER_SUPPLY_PROP_SERIAL_NUMBER = 75,
59980 };
59981 
59982 enum power_supply_type {
59983 	POWER_SUPPLY_TYPE_UNKNOWN = 0,
59984 	POWER_SUPPLY_TYPE_BATTERY = 1,
59985 	POWER_SUPPLY_TYPE_UPS = 2,
59986 	POWER_SUPPLY_TYPE_MAINS = 3,
59987 	POWER_SUPPLY_TYPE_USB = 4,
59988 	POWER_SUPPLY_TYPE_USB_DCP = 5,
59989 	POWER_SUPPLY_TYPE_USB_CDP = 6,
59990 	POWER_SUPPLY_TYPE_USB_ACA = 7,
59991 	POWER_SUPPLY_TYPE_USB_TYPE_C = 8,
59992 	POWER_SUPPLY_TYPE_USB_PD = 9,
59993 	POWER_SUPPLY_TYPE_USB_PD_DRP = 10,
59994 	POWER_SUPPLY_TYPE_APPLE_BRICK_ID = 11,
59995 	POWER_SUPPLY_TYPE_WIRELESS = 12,
59996 };
59997 
59998 enum power_supply_usb_type {
59999 	POWER_SUPPLY_USB_TYPE_UNKNOWN = 0,
60000 	POWER_SUPPLY_USB_TYPE_SDP = 1,
60001 	POWER_SUPPLY_USB_TYPE_DCP = 2,
60002 	POWER_SUPPLY_USB_TYPE_CDP = 3,
60003 	POWER_SUPPLY_USB_TYPE_ACA = 4,
60004 	POWER_SUPPLY_USB_TYPE_C = 5,
60005 	POWER_SUPPLY_USB_TYPE_PD = 6,
60006 	POWER_SUPPLY_USB_TYPE_PD_DRP = 7,
60007 	POWER_SUPPLY_USB_TYPE_PD_PPS = 8,
60008 	POWER_SUPPLY_USB_TYPE_APPLE_BRICK_ID = 9,
60009 };
60010 
60011 enum power_supply_notifier_events {
60012 	PSY_EVENT_PROP_CHANGED = 0,
60013 };
60014 
60015 union power_supply_propval {
60016 	int intval;
60017 	const char *strval;
60018 };
60019 
60020 struct power_supply_config {
60021 	struct device_node *of_node;
60022 	struct fwnode_handle *fwnode;
60023 	void *drv_data;
60024 	const struct attribute_group **attr_grp;
60025 	char **supplied_to;
60026 	size_t num_supplicants;
60027 };
60028 
60029 struct power_supply;
60030 
60031 struct power_supply_desc {
60032 	const char *name;
60033 	enum power_supply_type type;
60034 	const enum power_supply_usb_type *usb_types;
60035 	size_t num_usb_types;
60036 	const enum power_supply_property *properties;
60037 	size_t num_properties;
60038 	int (*get_property)(struct power_supply *, enum power_supply_property, union power_supply_propval *);
60039 	int (*set_property)(struct power_supply *, enum power_supply_property, const union power_supply_propval *);
60040 	int (*property_is_writeable)(struct power_supply *, enum power_supply_property);
60041 	void (*external_power_changed)(struct power_supply *);
60042 	void (*set_charged)(struct power_supply *);
60043 	bool no_thermal;
60044 	int use_for_apm;
60045 };
60046 
60047 struct thermal_zone_device;
60048 
60049 struct power_supply {
60050 	const struct power_supply_desc *desc;
60051 	char **supplied_to;
60052 	size_t num_supplicants;
60053 	char **supplied_from;
60054 	size_t num_supplies;
60055 	struct device_node *of_node;
60056 	void *drv_data;
60057 	struct device dev;
60058 	struct work_struct changed_work;
60059 	struct delayed_work deferred_register_work;
60060 	spinlock_t changed_lock;
60061 	bool changed;
60062 	bool initialized;
60063 	bool removing;
60064 	atomic_t use_cnt;
60065 	struct thermal_zone_device *tzd;
60066 	struct thermal_cooling_device *tcd;
60067 	struct led_trigger *charging_full_trig;
60068 	char *charging_full_trig_name;
60069 	struct led_trigger *charging_trig;
60070 	char *charging_trig_name;
60071 	struct led_trigger *full_trig;
60072 	char *full_trig_name;
60073 	struct led_trigger *online_trig;
60074 	char *online_trig_name;
60075 	struct led_trigger *charging_blink_full_solid_trig;
60076 	char *charging_blink_full_solid_trig_name;
60077 };
60078 
60079 enum thermal_device_mode {
60080 	THERMAL_DEVICE_DISABLED = 0,
60081 	THERMAL_DEVICE_ENABLED = 1,
60082 };
60083 
60084 enum thermal_notify_event {
60085 	THERMAL_EVENT_UNSPECIFIED = 0,
60086 	THERMAL_EVENT_TEMP_SAMPLE = 1,
60087 	THERMAL_TRIP_VIOLATED = 2,
60088 	THERMAL_TRIP_CHANGED = 3,
60089 	THERMAL_DEVICE_DOWN = 4,
60090 	THERMAL_DEVICE_UP = 5,
60091 	THERMAL_DEVICE_POWER_CAPABILITY_CHANGED = 6,
60092 	THERMAL_TABLE_CHANGED = 7,
60093 	THERMAL_EVENT_KEEP_ALIVE = 8,
60094 };
60095 
60096 struct thermal_attr;
60097 
60098 struct thermal_trip;
60099 
60100 struct thermal_zone_device_ops;
60101 
60102 struct thermal_zone_params;
60103 
60104 struct thermal_governor;
60105 
60106 struct thermal_zone_device {
60107 	int id;
60108 	char type[20];
60109 	struct device device;
60110 	struct attribute_group trips_attribute_group;
60111 	struct thermal_attr *trip_temp_attrs;
60112 	struct thermal_attr *trip_type_attrs;
60113 	struct thermal_attr *trip_hyst_attrs;
60114 	enum thermal_device_mode mode;
60115 	void *devdata;
60116 	struct thermal_trip *trips;
60117 	int num_trips;
60118 	long unsigned int trips_disabled;
60119 	long unsigned int passive_delay_jiffies;
60120 	long unsigned int polling_delay_jiffies;
60121 	int temperature;
60122 	int last_temperature;
60123 	int emul_temperature;
60124 	int passive;
60125 	int prev_low_trip;
60126 	int prev_high_trip;
60127 	atomic_t need_update;
60128 	struct thermal_zone_device_ops *ops;
60129 	struct thermal_zone_params *tzp;
60130 	struct thermal_governor *governor;
60131 	void *governor_data;
60132 	struct list_head thermal_instances;
60133 	struct ida ida;
60134 	struct mutex lock;
60135 	struct list_head node;
60136 	struct delayed_work poll_queue;
60137 	enum thermal_notify_event notify_event;
60138 };
60139 
60140 struct power_supply_battery_ocv_table {
60141 	int ocv;
60142 	int capacity;
60143 };
60144 
60145 struct power_supply_resistance_temp_table {
60146 	int temp;
60147 	int resistance;
60148 };
60149 
60150 struct power_supply_vbat_ri_table {
60151 	int vbat_uv;
60152 	int ri_uohm;
60153 };
60154 
60155 struct power_supply_maintenance_charge_table {
60156 	int charge_current_max_ua;
60157 	int charge_voltage_max_uv;
60158 	int charge_safety_timer_minutes;
60159 };
60160 
60161 struct power_supply_battery_info {
60162 	unsigned int technology;
60163 	int energy_full_design_uwh;
60164 	int charge_full_design_uah;
60165 	int voltage_min_design_uv;
60166 	int voltage_max_design_uv;
60167 	int tricklecharge_current_ua;
60168 	int precharge_current_ua;
60169 	int precharge_voltage_max_uv;
60170 	int charge_term_current_ua;
60171 	int charge_restart_voltage_uv;
60172 	int overvoltage_limit_uv;
60173 	int constant_charge_current_max_ua;
60174 	int constant_charge_voltage_max_uv;
60175 	struct power_supply_maintenance_charge_table *maintenance_charge;
60176 	int maintenance_charge_size;
60177 	int alert_low_temp_charge_current_ua;
60178 	int alert_low_temp_charge_voltage_uv;
60179 	int alert_high_temp_charge_current_ua;
60180 	int alert_high_temp_charge_voltage_uv;
60181 	int factory_internal_resistance_uohm;
60182 	int factory_internal_resistance_charging_uohm;
60183 	int ocv_temp[20];
60184 	int temp_ambient_alert_min;
60185 	int temp_ambient_alert_max;
60186 	int temp_alert_min;
60187 	int temp_alert_max;
60188 	int temp_min;
60189 	int temp_max;
60190 	struct power_supply_battery_ocv_table *ocv_table[20];
60191 	int ocv_table_size[20];
60192 	struct power_supply_resistance_temp_table *resist_table;
60193 	int resist_table_size;
60194 	struct power_supply_vbat_ri_table *vbat2ri_discharging;
60195 	int vbat2ri_discharging_size;
60196 	struct power_supply_vbat_ri_table *vbat2ri_charging;
60197 	int vbat2ri_charging_size;
60198 	int bti_resistance_ohm;
60199 	int bti_resistance_tolerance;
60200 };
60201 
60202 enum thermal_trip_type {
60203 	THERMAL_TRIP_ACTIVE = 0,
60204 	THERMAL_TRIP_PASSIVE = 1,
60205 	THERMAL_TRIP_HOT = 2,
60206 	THERMAL_TRIP_CRITICAL = 3,
60207 };
60208 
60209 enum thermal_trend {
60210 	THERMAL_TREND_STABLE = 0,
60211 	THERMAL_TREND_RAISING = 1,
60212 	THERMAL_TREND_DROPPING = 2,
60213 };
60214 
60215 struct thermal_zone_device_ops {
60216 	int (*bind)(struct thermal_zone_device *, struct thermal_cooling_device *);
60217 	int (*unbind)(struct thermal_zone_device *, struct thermal_cooling_device *);
60218 	int (*get_temp)(struct thermal_zone_device *, int *);
60219 	int (*set_trips)(struct thermal_zone_device *, int, int);
60220 	int (*change_mode)(struct thermal_zone_device *, enum thermal_device_mode);
60221 	int (*get_trip_type)(struct thermal_zone_device *, int, enum thermal_trip_type *);
60222 	int (*get_trip_temp)(struct thermal_zone_device *, int, int *);
60223 	int (*set_trip_temp)(struct thermal_zone_device *, int, int);
60224 	int (*get_trip_hyst)(struct thermal_zone_device *, int, int *);
60225 	int (*set_trip_hyst)(struct thermal_zone_device *, int, int);
60226 	int (*get_crit_temp)(struct thermal_zone_device *, int *);
60227 	int (*set_emul_temp)(struct thermal_zone_device *, int);
60228 	int (*get_trend)(struct thermal_zone_device *, int, enum thermal_trend *);
60229 	void (*hot)(struct thermal_zone_device *);
60230 	void (*critical)(struct thermal_zone_device *);
60231 };
60232 
60233 struct thermal_trip {
60234 	int temperature;
60235 	int hysteresis;
60236 	enum thermal_trip_type type;
60237 };
60238 
60239 struct thermal_bind_params;
60240 
60241 struct thermal_zone_params {
60242 	char governor_name[20];
60243 	bool no_hwmon;
60244 	int num_tbps;
60245 	struct thermal_bind_params *tbp;
60246 	u32 sustainable_power;
60247 	s32 k_po;
60248 	s32 k_pu;
60249 	s32 k_i;
60250 	s32 k_d;
60251 	s32 integral_cutoff;
60252 	int slope;
60253 	int offset;
60254 };
60255 
60256 struct thermal_governor {
60257 	char name[20];
60258 	int (*bind_to_tz)(struct thermal_zone_device *);
60259 	void (*unbind_from_tz)(struct thermal_zone_device *);
60260 	int (*throttle)(struct thermal_zone_device *, int);
60261 	struct list_head governor_list;
60262 };
60263 
60264 struct thermal_bind_params {
60265 	struct thermal_cooling_device *cdev;
60266 	int weight;
60267 	int trip_mask;
60268 	long unsigned int *binding_limits;
60269 	int (*match)(struct thermal_zone_device *, struct thermal_cooling_device *);
60270 };
60271 
60272 struct psy_am_i_supplied_data {
60273 	struct power_supply *psy;
60274 	unsigned int count;
60275 };
60276 
60277 struct psy_get_supplier_prop_data {
60278 	struct power_supply *psy;
60279 	enum power_supply_property psp;
60280 	union power_supply_propval *val;
60281 };
60282 
60283 enum hwmon_sensor_types {
60284 	hwmon_chip = 0,
60285 	hwmon_temp = 1,
60286 	hwmon_in = 2,
60287 	hwmon_curr = 3,
60288 	hwmon_power = 4,
60289 	hwmon_energy = 5,
60290 	hwmon_humidity = 6,
60291 	hwmon_fan = 7,
60292 	hwmon_pwm = 8,
60293 	hwmon_intrusion = 9,
60294 	hwmon_max = 10,
60295 };
60296 
60297 enum hwmon_chip_attributes {
60298 	hwmon_chip_temp_reset_history = 0,
60299 	hwmon_chip_in_reset_history = 1,
60300 	hwmon_chip_curr_reset_history = 2,
60301 	hwmon_chip_power_reset_history = 3,
60302 	hwmon_chip_register_tz = 4,
60303 	hwmon_chip_update_interval = 5,
60304 	hwmon_chip_alarms = 6,
60305 	hwmon_chip_samples = 7,
60306 	hwmon_chip_curr_samples = 8,
60307 	hwmon_chip_in_samples = 9,
60308 	hwmon_chip_power_samples = 10,
60309 	hwmon_chip_temp_samples = 11,
60310 };
60311 
60312 enum hwmon_temp_attributes {
60313 	hwmon_temp_enable = 0,
60314 	hwmon_temp_input = 1,
60315 	hwmon_temp_type = 2,
60316 	hwmon_temp_lcrit = 3,
60317 	hwmon_temp_lcrit_hyst = 4,
60318 	hwmon_temp_min = 5,
60319 	hwmon_temp_min_hyst = 6,
60320 	hwmon_temp_max = 7,
60321 	hwmon_temp_max_hyst = 8,
60322 	hwmon_temp_crit = 9,
60323 	hwmon_temp_crit_hyst = 10,
60324 	hwmon_temp_emergency = 11,
60325 	hwmon_temp_emergency_hyst = 12,
60326 	hwmon_temp_alarm = 13,
60327 	hwmon_temp_lcrit_alarm = 14,
60328 	hwmon_temp_min_alarm = 15,
60329 	hwmon_temp_max_alarm = 16,
60330 	hwmon_temp_crit_alarm = 17,
60331 	hwmon_temp_emergency_alarm = 18,
60332 	hwmon_temp_fault = 19,
60333 	hwmon_temp_offset = 20,
60334 	hwmon_temp_label = 21,
60335 	hwmon_temp_lowest = 22,
60336 	hwmon_temp_highest = 23,
60337 	hwmon_temp_reset_history = 24,
60338 	hwmon_temp_rated_min = 25,
60339 	hwmon_temp_rated_max = 26,
60340 };
60341 
60342 enum hwmon_in_attributes {
60343 	hwmon_in_enable = 0,
60344 	hwmon_in_input = 1,
60345 	hwmon_in_min = 2,
60346 	hwmon_in_max = 3,
60347 	hwmon_in_lcrit = 4,
60348 	hwmon_in_crit = 5,
60349 	hwmon_in_average = 6,
60350 	hwmon_in_lowest = 7,
60351 	hwmon_in_highest = 8,
60352 	hwmon_in_reset_history = 9,
60353 	hwmon_in_label = 10,
60354 	hwmon_in_alarm = 11,
60355 	hwmon_in_min_alarm = 12,
60356 	hwmon_in_max_alarm = 13,
60357 	hwmon_in_lcrit_alarm = 14,
60358 	hwmon_in_crit_alarm = 15,
60359 	hwmon_in_rated_min = 16,
60360 	hwmon_in_rated_max = 17,
60361 };
60362 
60363 enum hwmon_curr_attributes {
60364 	hwmon_curr_enable = 0,
60365 	hwmon_curr_input = 1,
60366 	hwmon_curr_min = 2,
60367 	hwmon_curr_max = 3,
60368 	hwmon_curr_lcrit = 4,
60369 	hwmon_curr_crit = 5,
60370 	hwmon_curr_average = 6,
60371 	hwmon_curr_lowest = 7,
60372 	hwmon_curr_highest = 8,
60373 	hwmon_curr_reset_history = 9,
60374 	hwmon_curr_label = 10,
60375 	hwmon_curr_alarm = 11,
60376 	hwmon_curr_min_alarm = 12,
60377 	hwmon_curr_max_alarm = 13,
60378 	hwmon_curr_lcrit_alarm = 14,
60379 	hwmon_curr_crit_alarm = 15,
60380 	hwmon_curr_rated_min = 16,
60381 	hwmon_curr_rated_max = 17,
60382 };
60383 
60384 enum hwmon_power_attributes {
60385 	hwmon_power_enable = 0,
60386 	hwmon_power_average = 1,
60387 	hwmon_power_average_interval = 2,
60388 	hwmon_power_average_interval_max = 3,
60389 	hwmon_power_average_interval_min = 4,
60390 	hwmon_power_average_highest = 5,
60391 	hwmon_power_average_lowest = 6,
60392 	hwmon_power_average_max = 7,
60393 	hwmon_power_average_min = 8,
60394 	hwmon_power_input = 9,
60395 	hwmon_power_input_highest = 10,
60396 	hwmon_power_input_lowest = 11,
60397 	hwmon_power_reset_history = 12,
60398 	hwmon_power_accuracy = 13,
60399 	hwmon_power_cap = 14,
60400 	hwmon_power_cap_hyst = 15,
60401 	hwmon_power_cap_max = 16,
60402 	hwmon_power_cap_min = 17,
60403 	hwmon_power_min = 18,
60404 	hwmon_power_max = 19,
60405 	hwmon_power_crit = 20,
60406 	hwmon_power_lcrit = 21,
60407 	hwmon_power_label = 22,
60408 	hwmon_power_alarm = 23,
60409 	hwmon_power_cap_alarm = 24,
60410 	hwmon_power_min_alarm = 25,
60411 	hwmon_power_max_alarm = 26,
60412 	hwmon_power_lcrit_alarm = 27,
60413 	hwmon_power_crit_alarm = 28,
60414 	hwmon_power_rated_min = 29,
60415 	hwmon_power_rated_max = 30,
60416 };
60417 
60418 enum hwmon_energy_attributes {
60419 	hwmon_energy_enable = 0,
60420 	hwmon_energy_input = 1,
60421 	hwmon_energy_label = 2,
60422 };
60423 
60424 enum hwmon_humidity_attributes {
60425 	hwmon_humidity_enable = 0,
60426 	hwmon_humidity_input = 1,
60427 	hwmon_humidity_label = 2,
60428 	hwmon_humidity_min = 3,
60429 	hwmon_humidity_min_hyst = 4,
60430 	hwmon_humidity_max = 5,
60431 	hwmon_humidity_max_hyst = 6,
60432 	hwmon_humidity_alarm = 7,
60433 	hwmon_humidity_fault = 8,
60434 	hwmon_humidity_rated_min = 9,
60435 	hwmon_humidity_rated_max = 10,
60436 };
60437 
60438 enum hwmon_fan_attributes {
60439 	hwmon_fan_enable = 0,
60440 	hwmon_fan_input = 1,
60441 	hwmon_fan_label = 2,
60442 	hwmon_fan_min = 3,
60443 	hwmon_fan_max = 4,
60444 	hwmon_fan_div = 5,
60445 	hwmon_fan_pulses = 6,
60446 	hwmon_fan_target = 7,
60447 	hwmon_fan_alarm = 8,
60448 	hwmon_fan_min_alarm = 9,
60449 	hwmon_fan_max_alarm = 10,
60450 	hwmon_fan_fault = 11,
60451 };
60452 
60453 enum hwmon_pwm_attributes {
60454 	hwmon_pwm_input = 0,
60455 	hwmon_pwm_enable = 1,
60456 	hwmon_pwm_mode = 2,
60457 	hwmon_pwm_freq = 3,
60458 	hwmon_pwm_auto_channels_temp = 4,
60459 };
60460 
60461 enum hwmon_intrusion_attributes {
60462 	hwmon_intrusion_alarm = 0,
60463 	hwmon_intrusion_beep = 1,
60464 };
60465 
60466 struct hwmon_ops {
60467 	umode_t (*is_visible)(const void *, enum hwmon_sensor_types, u32, int);
60468 	int (*read)(struct device *, enum hwmon_sensor_types, u32, int, long int *);
60469 	int (*read_string)(struct device *, enum hwmon_sensor_types, u32, int, const char **);
60470 	int (*write)(struct device *, enum hwmon_sensor_types, u32, int, long int);
60471 };
60472 
60473 struct hwmon_channel_info {
60474 	enum hwmon_sensor_types type;
60475 	const u32 *config;
60476 };
60477 
60478 struct hwmon_chip_info {
60479 	const struct hwmon_ops *ops;
60480 	const struct hwmon_channel_info **info;
60481 };
60482 
60483 struct trace_event_raw_hwmon_attr_class {
60484 	struct trace_entry ent;
60485 	int index;
60486 	u32 __data_loc_attr_name;
60487 	long int val;
60488 	char __data[0];
60489 };
60490 
60491 struct trace_event_raw_hwmon_attr_show_string {
60492 	struct trace_entry ent;
60493 	int index;
60494 	u32 __data_loc_attr_name;
60495 	u32 __data_loc_label;
60496 	char __data[0];
60497 };
60498 
60499 struct trace_event_data_offsets_hwmon_attr_class {
60500 	u32 attr_name;
60501 };
60502 
60503 struct trace_event_data_offsets_hwmon_attr_show_string {
60504 	u32 attr_name;
60505 	u32 label;
60506 };
60507 
60508 typedef void (*btf_trace_hwmon_attr_show)(void *, int, const char *, long int);
60509 
60510 typedef void (*btf_trace_hwmon_attr_store)(void *, int, const char *, long int);
60511 
60512 typedef void (*btf_trace_hwmon_attr_show_string)(void *, int, const char *, const char *);
60513 
60514 struct hwmon_device {
60515 	const char *name;
60516 	const char *label;
60517 	struct device dev;
60518 	const struct hwmon_chip_info *chip;
60519 	struct list_head tzdata;
60520 	struct attribute_group group;
60521 	const struct attribute_group **groups;
60522 };
60523 
60524 struct hwmon_device_attribute {
60525 	struct device_attribute dev_attr;
60526 	const struct hwmon_ops *ops;
60527 	enum hwmon_sensor_types type;
60528 	u32 attr;
60529 	int index;
60530 	char name[32];
60531 };
60532 
60533 struct hwmon_thermal_data {
60534 	struct list_head node;
60535 	struct device *dev;
60536 	int index;
60537 	struct thermal_zone_device *tzd;
60538 };
60539 
60540 struct thermal_attr {
60541 	struct device_attribute attr;
60542 	char name[20];
60543 };
60544 
60545 struct thermal_instance {
60546 	int id;
60547 	char name[20];
60548 	struct thermal_zone_device *tz;
60549 	struct thermal_cooling_device *cdev;
60550 	int trip;
60551 	bool initialized;
60552 	long unsigned int upper;
60553 	long unsigned int lower;
60554 	long unsigned int target;
60555 	char attr_name[20];
60556 	struct device_attribute attr;
60557 	char weight_attr_name[20];
60558 	struct device_attribute weight_attr;
60559 	struct list_head tz_node;
60560 	struct list_head cdev_node;
60561 	unsigned int weight;
60562 };
60563 
60564 struct dev_pm_opp_supply {
60565 	long unsigned int u_volt;
60566 	long unsigned int u_volt_min;
60567 	long unsigned int u_volt_max;
60568 	long unsigned int u_amp;
60569 	long unsigned int u_watt;
60570 };
60571 
60572 struct dev_pm_opp_icc_bw {
60573 	u32 avg;
60574 	u32 peak;
60575 };
60576 
60577 struct dev_pm_opp;
60578 
60579 typedef int (*config_regulators_t)(struct device *, struct dev_pm_opp *, struct dev_pm_opp *, struct regulator **, unsigned int);
60580 
60581 struct opp_table;
60582 
60583 struct dev_pm_opp {
60584 	struct list_head node;
60585 	struct kref kref;
60586 	bool available;
60587 	bool dynamic;
60588 	bool turbo;
60589 	bool suspend;
60590 	bool removed;
60591 	unsigned int pstate;
60592 	long unsigned int *rates;
60593 	unsigned int level;
60594 	struct dev_pm_opp_supply *supplies;
60595 	struct dev_pm_opp_icc_bw *bandwidth;
60596 	long unsigned int clock_latency_ns;
60597 	struct dev_pm_opp **required_opps;
60598 	struct opp_table *opp_table;
60599 	struct device_node *np;
60600 	struct dentry *dentry;
60601 	const char *of_name;
60602 };
60603 
60604 typedef int (*config_clks_t)(struct device *, struct opp_table *, struct dev_pm_opp *, void *, bool);
60605 
60606 enum opp_table_access {
60607 	OPP_TABLE_ACCESS_UNKNOWN = 0,
60608 	OPP_TABLE_ACCESS_EXCLUSIVE = 1,
60609 	OPP_TABLE_ACCESS_SHARED = 2,
60610 };
60611 
60612 struct icc_path;
60613 
60614 struct opp_table {
60615 	struct list_head node;
60616 	struct list_head lazy;
60617 	struct blocking_notifier_head head;
60618 	struct list_head dev_list;
60619 	struct list_head opp_list;
60620 	struct kref kref;
60621 	struct mutex lock;
60622 	struct device_node *np;
60623 	long unsigned int clock_latency_ns_max;
60624 	unsigned int voltage_tolerance_v1;
60625 	unsigned int parsed_static_opps;
60626 	enum opp_table_access shared_opp;
60627 	long unsigned int rate_clk_single;
60628 	struct dev_pm_opp *current_opp;
60629 	struct dev_pm_opp *suspend_opp;
60630 	struct mutex genpd_virt_dev_lock;
60631 	struct device **genpd_virt_devs;
60632 	struct opp_table **required_opp_tables;
60633 	unsigned int required_opp_count;
60634 	unsigned int *supported_hw;
60635 	unsigned int supported_hw_count;
60636 	const char *prop_name;
60637 	config_clks_t config_clks;
60638 	struct clk **clks;
60639 	struct clk *clk;
60640 	int clk_count;
60641 	config_regulators_t config_regulators;
60642 	struct regulator **regulators;
60643 	int regulator_count;
60644 	struct icc_path **paths;
60645 	unsigned int path_count;
60646 	bool enabled;
60647 	bool genpd_performance_state;
60648 	bool is_genpd;
60649 	struct dentry *dentry;
60650 	char dentry_name[255];
60651 };
60652 
60653 struct opp_device {
60654 	struct list_head node;
60655 	const struct device *dev;
60656 	struct dentry *dentry;
60657 };
60658 
60659 enum led_default_state {
60660 	LEDS_DEFSTATE_OFF = 0,
60661 	LEDS_DEFSTATE_ON = 1,
60662 	LEDS_DEFSTATE_KEEP = 2,
60663 };
60664 
60665 struct led_init_data {
60666 	struct fwnode_handle *fwnode;
60667 	const char *default_label;
60668 	const char *devicename;
60669 	bool devname_mandatory;
60670 };
60671 
60672 struct led_properties {
60673 	u32 color;
60674 	bool color_present;
60675 	const char *function;
60676 	u32 func_enum;
60677 	bool func_enum_present;
60678 	const char *label;
60679 };
60680 
60681 enum dmi_entry_type {
60682 	DMI_ENTRY_BIOS = 0,
60683 	DMI_ENTRY_SYSTEM = 1,
60684 	DMI_ENTRY_BASEBOARD = 2,
60685 	DMI_ENTRY_CHASSIS = 3,
60686 	DMI_ENTRY_PROCESSOR = 4,
60687 	DMI_ENTRY_MEM_CONTROLLER = 5,
60688 	DMI_ENTRY_MEM_MODULE = 6,
60689 	DMI_ENTRY_CACHE = 7,
60690 	DMI_ENTRY_PORT_CONNECTOR = 8,
60691 	DMI_ENTRY_SYSTEM_SLOT = 9,
60692 	DMI_ENTRY_ONBOARD_DEVICE = 10,
60693 	DMI_ENTRY_OEMSTRINGS = 11,
60694 	DMI_ENTRY_SYSCONF = 12,
60695 	DMI_ENTRY_BIOS_LANG = 13,
60696 	DMI_ENTRY_GROUP_ASSOC = 14,
60697 	DMI_ENTRY_SYSTEM_EVENT_LOG = 15,
60698 	DMI_ENTRY_PHYS_MEM_ARRAY = 16,
60699 	DMI_ENTRY_MEM_DEVICE = 17,
60700 	DMI_ENTRY_32_MEM_ERROR = 18,
60701 	DMI_ENTRY_MEM_ARRAY_MAPPED_ADDR = 19,
60702 	DMI_ENTRY_MEM_DEV_MAPPED_ADDR = 20,
60703 	DMI_ENTRY_BUILTIN_POINTING_DEV = 21,
60704 	DMI_ENTRY_PORTABLE_BATTERY = 22,
60705 	DMI_ENTRY_SYSTEM_RESET = 23,
60706 	DMI_ENTRY_HW_SECURITY = 24,
60707 	DMI_ENTRY_SYSTEM_POWER_CONTROLS = 25,
60708 	DMI_ENTRY_VOLTAGE_PROBE = 26,
60709 	DMI_ENTRY_COOLING_DEV = 27,
60710 	DMI_ENTRY_TEMP_PROBE = 28,
60711 	DMI_ENTRY_ELECTRICAL_CURRENT_PROBE = 29,
60712 	DMI_ENTRY_OOB_REMOTE_ACCESS = 30,
60713 	DMI_ENTRY_BIS_ENTRY = 31,
60714 	DMI_ENTRY_SYSTEM_BOOT = 32,
60715 	DMI_ENTRY_MGMT_DEV = 33,
60716 	DMI_ENTRY_MGMT_DEV_COMPONENT = 34,
60717 	DMI_ENTRY_MGMT_DEV_THRES = 35,
60718 	DMI_ENTRY_MEM_CHANNEL = 36,
60719 	DMI_ENTRY_IPMI_DEV = 37,
60720 	DMI_ENTRY_SYS_POWER_SUPPLY = 38,
60721 	DMI_ENTRY_ADDITIONAL = 39,
60722 	DMI_ENTRY_ONBOARD_DEV_EXT = 40,
60723 	DMI_ENTRY_MGMT_CONTROLLER_HOST = 41,
60724 	DMI_ENTRY_INACTIVE = 126,
60725 	DMI_ENTRY_END_OF_TABLE = 127,
60726 };
60727 
60728 struct dmi_sysfs_entry {
60729 	struct dmi_header dh;
60730 	struct kobject kobj;
60731 	int instance;
60732 	int position;
60733 	struct list_head list;
60734 	struct kobject *child;
60735 };
60736 
60737 struct dmi_sysfs_attribute {
60738 	struct attribute attr;
60739 	ssize_t (*show)(struct dmi_sysfs_entry *, char *);
60740 };
60741 
60742 struct dmi_sysfs_mapped_attribute {
60743 	struct attribute attr;
60744 	ssize_t (*show)(struct dmi_sysfs_entry *, const struct dmi_header *, char *);
60745 };
60746 
60747 typedef ssize_t (*dmi_callback)(struct dmi_sysfs_entry *, const struct dmi_header *, void *);
60748 
60749 struct find_dmi_data {
60750 	struct dmi_sysfs_entry *entry;
60751 	dmi_callback callback;
60752 	void *private;
60753 	int instance_countdown;
60754 	ssize_t ret;
60755 };
60756 
60757 struct dmi_read_state {
60758 	char *buf;
60759 	loff_t pos;
60760 	size_t count;
60761 };
60762 
60763 struct dmi_entry_attr_show_data {
60764 	struct attribute *attr;
60765 	char *buf;
60766 };
60767 
60768 struct dmi_system_event_log {
60769 	struct dmi_header header;
60770 	u16 area_length;
60771 	u16 header_start_offset;
60772 	u16 data_start_offset;
60773 	u8 access_method;
60774 	u8 status;
60775 	u32 change_token;
60776 	union {
60777 		struct {
60778 			u16 index_addr;
60779 			u16 data_addr;
60780 		} io;
60781 		u32 phys_addr32;
60782 		u16 gpnv_handle;
60783 		u32 access_method_address;
60784 	};
60785 	u8 header_format;
60786 	u8 type_descriptors_supported_count;
60787 	u8 per_log_type_descriptor_length;
60788 	u8 supported_log_type_descriptos[0];
60789 } __attribute__((packed));
60790 
60791 typedef u8 (*sel_io_reader)(const struct dmi_system_event_log *, loff_t);
60792 
60793 typedef efi_status_t efi_query_variable_store_t(u32, long unsigned int, bool);
60794 
60795 typedef struct {
60796 	efi_guid_t guid;
60797 	u64 table;
60798 } efi_config_table_64_t;
60799 
60800 typedef struct {
60801 	efi_guid_t guid;
60802 	u32 table;
60803 } efi_config_table_32_t;
60804 
60805 typedef union {
60806 	struct {
60807 		efi_guid_t guid;
60808 		void *table;
60809 	};
60810 	efi_config_table_32_t mixed_mode;
60811 } efi_config_table_t;
60812 
60813 typedef struct {
60814 	efi_guid_t guid;
60815 	long unsigned int *ptr;
60816 	const char name[16];
60817 } efi_config_table_type_t;
60818 
60819 typedef struct {
60820 	u16 version;
60821 	u16 length;
60822 	u32 runtime_services_supported;
60823 } efi_rt_properties_table_t;
60824 
60825 struct efivar_operations {
60826 	efi_get_variable_t *get_variable;
60827 	efi_get_next_variable_t *get_next_variable;
60828 	efi_set_variable_t *set_variable;
60829 	efi_set_variable_t *set_variable_nonblocking;
60830 	efi_query_variable_store_t *query_variable_store;
60831 };
60832 
60833 struct efivars {
60834 	struct kset *kset;
60835 	struct kobject *kobject;
60836 	const struct efivar_operations *ops;
60837 };
60838 
60839 struct linux_efi_random_seed {
60840 	u32 size;
60841 	u8 bits[0];
60842 };
60843 
60844 struct linux_efi_memreserve {
60845 	int size;
60846 	atomic_t count;
60847 	phys_addr_t next;
60848 	struct {
60849 		phys_addr_t base;
60850 		phys_addr_t size;
60851 	} entry[0];
60852 };
60853 
60854 struct linux_efi_initrd {
60855 	long unsigned int base;
60856 	long unsigned int size;
60857 };
60858 
60859 struct linux_efi_tpm_eventlog {
60860 	u32 size;
60861 	u32 final_events_preboot_size;
60862 	u8 version;
60863 	u8 log[0];
60864 };
60865 
60866 struct efi_tcg2_final_events_table {
60867 	u64 version;
60868 	u64 nr_events;
60869 	u8 events[0];
60870 };
60871 
60872 struct tpm_digest {
60873 	u16 alg_id;
60874 	u8 digest[64];
60875 };
60876 
60877 enum tpm_duration {
60878 	TPM_SHORT = 0,
60879 	TPM_MEDIUM = 1,
60880 	TPM_LONG = 2,
60881 	TPM_LONG_LONG = 3,
60882 	TPM_UNDEFINED = 4,
60883 	TPM_NUM_DURATIONS = 4,
60884 };
60885 
60886 enum tcpa_event_types {
60887 	PREBOOT = 0,
60888 	POST_CODE = 1,
60889 	UNUSED = 2,
60890 	NO_ACTION = 3,
60891 	SEPARATOR = 4,
60892 	ACTION = 5,
60893 	EVENT_TAG = 6,
60894 	SCRTM_CONTENTS = 7,
60895 	SCRTM_VERSION = 8,
60896 	CPU_MICROCODE = 9,
60897 	PLATFORM_CONFIG_FLAGS = 10,
60898 	TABLE_OF_DEVICES = 11,
60899 	COMPACT_HASH = 12,
60900 	IPL = 13,
60901 	IPL_PARTITION_DATA = 14,
60902 	NONHOST_CODE = 15,
60903 	NONHOST_CONFIG = 16,
60904 	NONHOST_INFO = 17,
60905 };
60906 
60907 struct tcg_efi_specid_event_algs {
60908 	u16 alg_id;
60909 	u16 digest_size;
60910 };
60911 
60912 struct tcg_efi_specid_event_head {
60913 	u8 signature[16];
60914 	u32 platform_class;
60915 	u8 spec_version_minor;
60916 	u8 spec_version_major;
60917 	u8 spec_errata;
60918 	u8 uintnsize;
60919 	u32 num_algs;
60920 	struct tcg_efi_specid_event_algs digest_sizes[0];
60921 };
60922 
60923 struct tcg_pcr_event {
60924 	u32 pcr_idx;
60925 	u32 event_type;
60926 	u8 digest[20];
60927 	u32 event_size;
60928 	u8 event[0];
60929 };
60930 
60931 struct tcg_event_field {
60932 	u32 event_size;
60933 	u8 event[0];
60934 };
60935 
60936 struct tcg_pcr_event2_head {
60937 	u32 pcr_idx;
60938 	u32 event_type;
60939 	u32 count;
60940 	struct tpm_digest digests[0];
60941 };
60942 
60943 enum efi_rts_ids {
60944 	EFI_NONE = 0,
60945 	EFI_GET_TIME = 1,
60946 	EFI_SET_TIME = 2,
60947 	EFI_GET_WAKEUP_TIME = 3,
60948 	EFI_SET_WAKEUP_TIME = 4,
60949 	EFI_GET_VARIABLE = 5,
60950 	EFI_GET_NEXT_VARIABLE = 6,
60951 	EFI_SET_VARIABLE = 7,
60952 	EFI_QUERY_VARIABLE_INFO = 8,
60953 	EFI_GET_NEXT_HIGH_MONO_COUNT = 9,
60954 	EFI_RESET_SYSTEM = 10,
60955 	EFI_UPDATE_CAPSULE = 11,
60956 	EFI_QUERY_CAPSULE_CAPS = 12,
60957 };
60958 
60959 struct efi_runtime_work {
60960 	void *arg1;
60961 	void *arg2;
60962 	void *arg3;
60963 	void *arg4;
60964 	void *arg5;
60965 	efi_status_t status;
60966 	struct work_struct work;
60967 	enum efi_rts_ids efi_rts_id;
60968 	struct completion efi_rts_comp;
60969 };
60970 
60971 struct hid_device_id {
60972 	__u16 bus;
60973 	__u16 group;
60974 	__u32 vendor;
60975 	__u32 product;
60976 	kernel_ulong_t driver_data;
60977 };
60978 
60979 enum {
60980 	POWER_SUPPLY_STATUS_UNKNOWN = 0,
60981 	POWER_SUPPLY_STATUS_CHARGING = 1,
60982 	POWER_SUPPLY_STATUS_DISCHARGING = 2,
60983 	POWER_SUPPLY_STATUS_NOT_CHARGING = 3,
60984 	POWER_SUPPLY_STATUS_FULL = 4,
60985 };
60986 
60987 enum {
60988 	POWER_SUPPLY_SCOPE_UNKNOWN = 0,
60989 	POWER_SUPPLY_SCOPE_SYSTEM = 1,
60990 	POWER_SUPPLY_SCOPE_DEVICE = 2,
60991 };
60992 
60993 enum hid_report_type {
60994 	HID_INPUT_REPORT = 0,
60995 	HID_OUTPUT_REPORT = 1,
60996 	HID_FEATURE_REPORT = 2,
60997 	HID_REPORT_TYPES = 3,
60998 };
60999 
61000 enum hid_class_request {
61001 	HID_REQ_GET_REPORT = 1,
61002 	HID_REQ_GET_IDLE = 2,
61003 	HID_REQ_GET_PROTOCOL = 3,
61004 	HID_REQ_SET_REPORT = 9,
61005 	HID_REQ_SET_IDLE = 10,
61006 	HID_REQ_SET_PROTOCOL = 11,
61007 };
61008 
61009 struct hid_collection {
61010 	int parent_idx;
61011 	unsigned int type;
61012 	unsigned int usage;
61013 	unsigned int level;
61014 };
61015 
61016 struct hid_usage {
61017 	unsigned int hid;
61018 	unsigned int collection_index;
61019 	unsigned int usage_index;
61020 	__s8 resolution_multiplier;
61021 	__s8 wheel_factor;
61022 	__u16 code;
61023 	__u8 type;
61024 	__s8 hat_min;
61025 	__s8 hat_max;
61026 	__s8 hat_dir;
61027 	__s16 wheel_accumulated;
61028 };
61029 
61030 struct hid_report;
61031 
61032 struct hid_input;
61033 
61034 struct hid_field {
61035 	unsigned int physical;
61036 	unsigned int logical;
61037 	unsigned int application;
61038 	struct hid_usage *usage;
61039 	unsigned int maxusage;
61040 	unsigned int flags;
61041 	unsigned int report_offset;
61042 	unsigned int report_size;
61043 	unsigned int report_count;
61044 	unsigned int report_type;
61045 	__s32 *value;
61046 	__s32 *new_value;
61047 	__s32 *usages_priorities;
61048 	__s32 logical_minimum;
61049 	__s32 logical_maximum;
61050 	__s32 physical_minimum;
61051 	__s32 physical_maximum;
61052 	__s32 unit_exponent;
61053 	unsigned int unit;
61054 	bool ignored;
61055 	struct hid_report *report;
61056 	unsigned int index;
61057 	struct hid_input *hidinput;
61058 	__u16 dpad;
61059 	unsigned int slot_idx;
61060 };
61061 
61062 struct hid_field_entry;
61063 
61064 struct hid_device;
61065 
61066 struct hid_report {
61067 	struct list_head list;
61068 	struct list_head hidinput_list;
61069 	struct list_head field_entry_list;
61070 	unsigned int id;
61071 	enum hid_report_type type;
61072 	unsigned int application;
61073 	struct hid_field *field[256];
61074 	struct hid_field_entry *field_entries;
61075 	unsigned int maxfield;
61076 	unsigned int size;
61077 	struct hid_device *device;
61078 	bool tool_active;
61079 	unsigned int tool;
61080 };
61081 
61082 struct hid_input {
61083 	struct list_head list;
61084 	struct hid_report *report;
61085 	struct input_dev *input;
61086 	const char *name;
61087 	bool registered;
61088 	struct list_head reports;
61089 	unsigned int application;
61090 };
61091 
61092 struct hid_field_entry {
61093 	struct list_head list;
61094 	struct hid_field *field;
61095 	unsigned int index;
61096 	__s32 priority;
61097 };
61098 
61099 enum hid_type {
61100 	HID_TYPE_OTHER = 0,
61101 	HID_TYPE_USBMOUSE = 1,
61102 	HID_TYPE_USBNONE = 2,
61103 };
61104 
61105 struct hid_report_enum {
61106 	unsigned int numbered;
61107 	struct list_head report_list;
61108 	struct hid_report *report_id_hash[256];
61109 };
61110 
61111 enum hid_battery_status {
61112 	HID_BATTERY_UNKNOWN = 0,
61113 	HID_BATTERY_QUERIED = 1,
61114 	HID_BATTERY_REPORTED = 2,
61115 };
61116 
61117 struct hid_driver;
61118 
61119 struct hid_ll_driver;
61120 
61121 struct hid_device {
61122 	__u8 *dev_rdesc;
61123 	unsigned int dev_rsize;
61124 	__u8 *rdesc;
61125 	unsigned int rsize;
61126 	struct hid_collection *collection;
61127 	unsigned int collection_size;
61128 	unsigned int maxcollection;
61129 	unsigned int maxapplication;
61130 	__u16 bus;
61131 	__u16 group;
61132 	__u32 vendor;
61133 	__u32 product;
61134 	__u32 version;
61135 	enum hid_type type;
61136 	unsigned int country;
61137 	struct hid_report_enum report_enum[3];
61138 	struct work_struct led_work;
61139 	struct semaphore driver_input_lock;
61140 	struct device dev;
61141 	struct hid_driver *driver;
61142 	struct hid_ll_driver *ll_driver;
61143 	struct mutex ll_open_lock;
61144 	unsigned int ll_open_count;
61145 	struct power_supply *battery;
61146 	__s32 battery_capacity;
61147 	__s32 battery_min;
61148 	__s32 battery_max;
61149 	__s32 battery_report_type;
61150 	__s32 battery_report_id;
61151 	enum hid_battery_status battery_status;
61152 	bool battery_avoid_query;
61153 	ktime_t battery_ratelimit_time;
61154 	long unsigned int status;
61155 	unsigned int claimed;
61156 	unsigned int quirks;
61157 	bool io_started;
61158 	struct list_head inputs;
61159 	void *hiddev;
61160 	void *hidraw;
61161 	char name[128];
61162 	char phys[64];
61163 	char uniq[64];
61164 	void *driver_data;
61165 	int (*ff_init)(struct hid_device *);
61166 	int (*hiddev_connect)(struct hid_device *, unsigned int);
61167 	void (*hiddev_disconnect)(struct hid_device *);
61168 	void (*hiddev_hid_event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32);
61169 	void (*hiddev_report_event)(struct hid_device *, struct hid_report *);
61170 	short unsigned int debug;
61171 	struct dentry *debug_dir;
61172 	struct dentry *debug_rdesc;
61173 	struct dentry *debug_events;
61174 	struct list_head debug_list;
61175 	spinlock_t debug_list_lock;
61176 	wait_queue_head_t debug_wait;
61177 	unsigned int id;
61178 };
61179 
61180 struct hid_report_id;
61181 
61182 struct hid_usage_id;
61183 
61184 struct hid_driver {
61185 	char *name;
61186 	const struct hid_device_id *id_table;
61187 	struct list_head dyn_list;
61188 	spinlock_t dyn_lock;
61189 	bool (*match)(struct hid_device *, bool);
61190 	int (*probe)(struct hid_device *, const struct hid_device_id *);
61191 	void (*remove)(struct hid_device *);
61192 	const struct hid_report_id *report_table;
61193 	int (*raw_event)(struct hid_device *, struct hid_report *, u8 *, int);
61194 	const struct hid_usage_id *usage_table;
61195 	int (*event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32);
61196 	void (*report)(struct hid_device *, struct hid_report *);
61197 	__u8 * (*report_fixup)(struct hid_device *, __u8 *, unsigned int *);
61198 	int (*input_mapping)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, long unsigned int **, int *);
61199 	int (*input_mapped)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, long unsigned int **, int *);
61200 	int (*input_configured)(struct hid_device *, struct hid_input *);
61201 	void (*feature_mapping)(struct hid_device *, struct hid_field *, struct hid_usage *);
61202 	int (*suspend)(struct hid_device *, pm_message_t);
61203 	int (*resume)(struct hid_device *);
61204 	int (*reset_resume)(struct hid_device *);
61205 	struct device_driver driver;
61206 };
61207 
61208 struct hid_ll_driver {
61209 	int (*start)(struct hid_device *);
61210 	void (*stop)(struct hid_device *);
61211 	int (*open)(struct hid_device *);
61212 	void (*close)(struct hid_device *);
61213 	int (*power)(struct hid_device *, int);
61214 	int (*parse)(struct hid_device *);
61215 	void (*request)(struct hid_device *, struct hid_report *, int);
61216 	int (*wait)(struct hid_device *);
61217 	int (*raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, unsigned char, int);
61218 	int (*output_report)(struct hid_device *, __u8 *, size_t);
61219 	int (*idle)(struct hid_device *, int, int, int);
61220 	bool (*may_wakeup)(struct hid_device *);
61221 };
61222 
61223 struct hid_report_id {
61224 	__u32 report_type;
61225 };
61226 
61227 struct hid_usage_id {
61228 	__u32 usage_hid;
61229 	__u32 usage_type;
61230 	__u32 usage_code;
61231 };
61232 
61233 struct usage_priority {
61234 	__u32 usage;
61235 	bool global;
61236 	unsigned int slot_overwrite;
61237 };
61238 
61239 typedef bool (*hid_usage_cmp_t)(struct hid_usage *, unsigned int, unsigned int);
61240 
61241 struct of_reconfig_data {
61242 	struct device_node *dn;
61243 	struct property *prop;
61244 	struct property *old_prop;
61245 };
61246 
61247 enum of_reconfig_change {
61248 	OF_RECONFIG_NO_CHANGE = 0,
61249 	OF_RECONFIG_CHANGE_ADD = 1,
61250 	OF_RECONFIG_CHANGE_REMOVE = 2,
61251 };
61252 
61253 struct amba_cs_uci_id {
61254 	unsigned int devarch;
61255 	unsigned int devarch_mask;
61256 	unsigned int devtype;
61257 	void *data;
61258 };
61259 
61260 struct amba_device {
61261 	struct device dev;
61262 	struct resource res;
61263 	struct clk *pclk;
61264 	struct device_dma_parameters dma_parms;
61265 	unsigned int periphid;
61266 	struct mutex periphid_lock;
61267 	unsigned int cid;
61268 	struct amba_cs_uci_id uci;
61269 	unsigned int irq[9];
61270 	const char *driver_override;
61271 };
61272 
61273 struct of_dev_auxdata {
61274 	char *compatible;
61275 	resource_size_t phys_addr;
61276 	char *name;
61277 	void *platform_data;
61278 };
61279 
61280 struct of_bus {
61281 	const char *name;
61282 	const char *addresses;
61283 	int (*match)(struct device_node *);
61284 	void (*count_cells)(struct device_node *, int *, int *);
61285 	u64 (*map)(__be32 *, const __be32 *, int, int, int);
61286 	int (*translate)(__be32 *, u64, int);
61287 	bool has_flags;
61288 	unsigned int (*get_flags)(const __be32 *);
61289 };
61290 
61291 struct of_changeset_entry {
61292 	struct list_head node;
61293 	long unsigned int action;
61294 	struct device_node *np;
61295 	struct property *prop;
61296 	struct property *old_prop;
61297 };
61298 
61299 struct of_changeset {
61300 	struct list_head entries;
61301 };
61302 
61303 enum of_overlay_notify_action {
61304 	OF_OVERLAY_INIT = 0,
61305 	OF_OVERLAY_PRE_APPLY = 1,
61306 	OF_OVERLAY_POST_APPLY = 2,
61307 	OF_OVERLAY_PRE_REMOVE = 3,
61308 	OF_OVERLAY_POST_REMOVE = 4,
61309 };
61310 
61311 struct of_overlay_notify_data {
61312 	struct device_node *overlay;
61313 	struct device_node *target;
61314 };
61315 
61316 typedef __be32 fdt32_t;
61317 
61318 struct fdt_header {
61319 	fdt32_t magic;
61320 	fdt32_t totalsize;
61321 	fdt32_t off_dt_struct;
61322 	fdt32_t off_dt_strings;
61323 	fdt32_t off_mem_rsvmap;
61324 	fdt32_t version;
61325 	fdt32_t last_comp_version;
61326 	fdt32_t boot_cpuid_phys;
61327 	fdt32_t size_dt_strings;
61328 	fdt32_t size_dt_struct;
61329 };
61330 
61331 struct target {
61332 	struct device_node *np;
61333 	bool in_livetree;
61334 };
61335 
61336 struct fragment {
61337 	struct device_node *overlay;
61338 	struct device_node *target;
61339 };
61340 
61341 struct overlay_changeset {
61342 	int id;
61343 	struct list_head ovcs_list;
61344 	const void *new_fdt;
61345 	const void *overlay_mem;
61346 	struct device_node *overlay_root;
61347 	enum of_overlay_notify_action notify_state;
61348 	int count;
61349 	struct fragment *fragments;
61350 	bool symbols_fragment;
61351 	struct of_changeset cset;
61352 };
61353 
61354 struct srcu_notifier_head {
61355 	struct mutex mutex;
61356 	struct srcu_struct srcu;
61357 	struct notifier_block *head;
61358 };
61359 
61360 struct dev_pm_opp;
61361 
61362 struct opp_table;
61363 
61364 enum devfreq_timer {
61365 	DEVFREQ_TIMER_DEFERRABLE = 0,
61366 	DEVFREQ_TIMER_DELAYED = 1,
61367 	DEVFREQ_TIMER_NUM = 2,
61368 };
61369 
61370 struct devfreq_dev_status {
61371 	long unsigned int total_time;
61372 	long unsigned int busy_time;
61373 	long unsigned int current_frequency;
61374 	void *private_data;
61375 };
61376 
61377 struct devfreq_dev_profile {
61378 	long unsigned int initial_freq;
61379 	unsigned int polling_ms;
61380 	enum devfreq_timer timer;
61381 	bool is_cooling_device;
61382 	int (*target)(struct device *, long unsigned int *, u32);
61383 	int (*get_dev_status)(struct device *, struct devfreq_dev_status *);
61384 	int (*get_cur_freq)(struct device *, long unsigned int *);
61385 	void (*exit)(struct device *);
61386 	long unsigned int *freq_table;
61387 	unsigned int max_state;
61388 };
61389 
61390 struct devfreq_stats {
61391 	unsigned int total_trans;
61392 	unsigned int *trans_table;
61393 	u64 *time_in_state;
61394 	u64 last_update;
61395 };
61396 
61397 struct devfreq_governor;
61398 
61399 struct devfreq {
61400 	struct list_head node;
61401 	struct mutex lock;
61402 	struct device dev;
61403 	struct devfreq_dev_profile *profile;
61404 	const struct devfreq_governor *governor;
61405 	struct opp_table *opp_table;
61406 	struct notifier_block nb;
61407 	struct delayed_work work;
61408 	long unsigned int *freq_table;
61409 	unsigned int max_state;
61410 	long unsigned int previous_freq;
61411 	struct devfreq_dev_status last_status;
61412 	void *data;
61413 	void *governor_data;
61414 	struct dev_pm_qos_request user_min_freq_req;
61415 	struct dev_pm_qos_request user_max_freq_req;
61416 	long unsigned int scaling_min_freq;
61417 	long unsigned int scaling_max_freq;
61418 	bool stop_polling;
61419 	long unsigned int suspend_freq;
61420 	long unsigned int resume_freq;
61421 	atomic_t suspend_count;
61422 	struct devfreq_stats stats;
61423 	struct srcu_notifier_head transition_notifier_list;
61424 	struct thermal_cooling_device *cdev;
61425 	struct notifier_block nb_min;
61426 	struct notifier_block nb_max;
61427 };
61428 
61429 struct devfreq_governor {
61430 	struct list_head node;
61431 	const char name[16];
61432 	const u64 attrs;
61433 	const u64 flags;
61434 	int (*get_target_freq)(struct devfreq *, long unsigned int *);
61435 	int (*event_handler)(struct devfreq *, unsigned int, void *);
61436 };
61437 
61438 struct devfreq_freqs {
61439 	long unsigned int old;
61440 	long unsigned int new;
61441 };
61442 
61443 struct devfreq_cooling_power {
61444 	int (*get_real_power)(struct devfreq *, u32 *, long unsigned int, long unsigned int);
61445 };
61446 
61447 struct trace_event_raw_devfreq_frequency {
61448 	struct trace_entry ent;
61449 	u32 __data_loc_dev_name;
61450 	long unsigned int freq;
61451 	long unsigned int prev_freq;
61452 	long unsigned int busy_time;
61453 	long unsigned int total_time;
61454 	char __data[0];
61455 };
61456 
61457 struct trace_event_raw_devfreq_monitor {
61458 	struct trace_entry ent;
61459 	long unsigned int freq;
61460 	long unsigned int busy_time;
61461 	long unsigned int total_time;
61462 	unsigned int polling_ms;
61463 	u32 __data_loc_dev_name;
61464 	char __data[0];
61465 };
61466 
61467 struct trace_event_data_offsets_devfreq_frequency {
61468 	u32 dev_name;
61469 };
61470 
61471 struct trace_event_data_offsets_devfreq_monitor {
61472 	u32 dev_name;
61473 };
61474 
61475 typedef void (*btf_trace_devfreq_frequency)(void *, struct devfreq *, long unsigned int, long unsigned int);
61476 
61477 typedef void (*btf_trace_devfreq_monitor)(void *, struct devfreq *);
61478 
61479 struct devfreq_notifier_devres {
61480 	struct devfreq *devfreq;
61481 	struct notifier_block *nb;
61482 	unsigned int list;
61483 };
61484 
61485 struct cper_sec_proc_arm {
61486 	u32 validation_bits;
61487 	u16 err_info_num;
61488 	u16 context_info_num;
61489 	u32 section_length;
61490 	u8 affinity_level;
61491 	u8 reserved[3];
61492 	u64 mpidr;
61493 	u64 midr;
61494 	u32 running_state;
61495 	u32 psci_state;
61496 };
61497 
61498 enum hw_event_mc_err_type {
61499 	HW_EVENT_ERR_CORRECTED = 0,
61500 	HW_EVENT_ERR_UNCORRECTED = 1,
61501 	HW_EVENT_ERR_DEFERRED = 2,
61502 	HW_EVENT_ERR_FATAL = 3,
61503 	HW_EVENT_ERR_INFO = 4,
61504 };
61505 
61506 struct aer_header_log_regs {
61507 	unsigned int dw0;
61508 	unsigned int dw1;
61509 	unsigned int dw2;
61510 	unsigned int dw3;
61511 };
61512 
61513 struct trace_event_raw_mc_event {
61514 	struct trace_entry ent;
61515 	unsigned int error_type;
61516 	u32 __data_loc_msg;
61517 	u32 __data_loc_label;
61518 	u16 error_count;
61519 	u8 mc_index;
61520 	s8 top_layer;
61521 	s8 middle_layer;
61522 	s8 lower_layer;
61523 	long int address;
61524 	u8 grain_bits;
61525 	long int syndrome;
61526 	u32 __data_loc_driver_detail;
61527 	char __data[0];
61528 };
61529 
61530 struct trace_event_raw_arm_event {
61531 	struct trace_entry ent;
61532 	u64 mpidr;
61533 	u64 midr;
61534 	u32 running_state;
61535 	u32 psci_state;
61536 	u8 affinity;
61537 	char __data[0];
61538 };
61539 
61540 struct trace_event_raw_non_standard_event {
61541 	struct trace_entry ent;
61542 	char sec_type[16];
61543 	char fru_id[16];
61544 	u32 __data_loc_fru_text;
61545 	u8 sev;
61546 	u32 len;
61547 	u32 __data_loc_buf;
61548 	char __data[0];
61549 };
61550 
61551 struct trace_event_raw_aer_event {
61552 	struct trace_entry ent;
61553 	u32 __data_loc_dev_name;
61554 	u32 status;
61555 	u8 severity;
61556 	u8 tlp_header_valid;
61557 	u32 tlp_header[4];
61558 	char __data[0];
61559 };
61560 
61561 struct trace_event_data_offsets_mc_event {
61562 	u32 msg;
61563 	u32 label;
61564 	u32 driver_detail;
61565 };
61566 
61567 struct trace_event_data_offsets_arm_event {};
61568 
61569 struct trace_event_data_offsets_non_standard_event {
61570 	u32 fru_text;
61571 	u32 buf;
61572 };
61573 
61574 struct trace_event_data_offsets_aer_event {
61575 	u32 dev_name;
61576 };
61577 
61578 typedef void (*btf_trace_mc_event)(void *, const unsigned int, const char *, const char *, const int, const u8, const s8, const s8, const s8, long unsigned int, const u8, long unsigned int, const char *);
61579 
61580 typedef void (*btf_trace_arm_event)(void *, const struct cper_sec_proc_arm *);
61581 
61582 typedef void (*btf_trace_non_standard_event)(void *, const guid_t *, const guid_t *, const char *, const u8, const u8 *, const u32);
61583 
61584 typedef void (*btf_trace_aer_event)(void *, const char *, const u32, const u8, const u8, struct aer_header_log_regs *);
61585 
61586 struct __kernel_sock_timeval {
61587 	__s64 tv_sec;
61588 	__s64 tv_usec;
61589 };
61590 
61591 struct linger {
61592 	int l_onoff;
61593 	int l_linger;
61594 };
61595 
61596 struct cmsghdr {
61597 	__kernel_size_t cmsg_len;
61598 	int cmsg_level;
61599 	int cmsg_type;
61600 };
61601 
61602 struct ucred {
61603 	__u32 pid;
61604 	__u32 uid;
61605 	__u32 gid;
61606 };
61607 
61608 enum {
61609 	SOCK_WAKE_IO = 0,
61610 	SOCK_WAKE_WAITD = 1,
61611 	SOCK_WAKE_SPACE = 2,
61612 	SOCK_WAKE_URG = 3,
61613 };
61614 
61615 struct rt6key {
61616 	struct in6_addr addr;
61617 	int plen;
61618 };
61619 
61620 struct rtable;
61621 
61622 struct fnhe_hash_bucket;
61623 
61624 struct fib_nh_common {
61625 	struct net_device *nhc_dev;
61626 	netdevice_tracker nhc_dev_tracker;
61627 	int nhc_oif;
61628 	unsigned char nhc_scope;
61629 	u8 nhc_family;
61630 	u8 nhc_gw_family;
61631 	unsigned char nhc_flags;
61632 	struct lwtunnel_state *nhc_lwtstate;
61633 	union {
61634 		__be32 ipv4;
61635 		struct in6_addr ipv6;
61636 	} nhc_gw;
61637 	int nhc_weight;
61638 	atomic_t nhc_upper_bound;
61639 	struct rtable **nhc_pcpu_rth_output;
61640 	struct rtable *nhc_rth_input;
61641 	struct fnhe_hash_bucket *nhc_exceptions;
61642 };
61643 
61644 struct rt6_exception_bucket;
61645 
61646 struct fib6_nh {
61647 	struct fib_nh_common nh_common;
61648 	long unsigned int last_probe;
61649 	struct rt6_info **rt6i_pcpu;
61650 	struct rt6_exception_bucket *rt6i_exception_bucket;
61651 };
61652 
61653 struct fib6_node;
61654 
61655 struct dst_metrics;
61656 
61657 struct nexthop;
61658 
61659 struct fib6_info {
61660 	struct fib6_table *fib6_table;
61661 	struct fib6_info *fib6_next;
61662 	struct fib6_node *fib6_node;
61663 	union {
61664 		struct list_head fib6_siblings;
61665 		struct list_head nh_list;
61666 	};
61667 	unsigned int fib6_nsiblings;
61668 	refcount_t fib6_ref;
61669 	long unsigned int expires;
61670 	struct dst_metrics *fib6_metrics;
61671 	struct rt6key fib6_dst;
61672 	u32 fib6_flags;
61673 	struct rt6key fib6_src;
61674 	struct rt6key fib6_prefsrc;
61675 	u32 fib6_metric;
61676 	u8 fib6_protocol;
61677 	u8 fib6_type;
61678 	u8 offload;
61679 	u8 trap;
61680 	u8 offload_failed;
61681 	u8 should_flush: 1;
61682 	u8 dst_nocount: 1;
61683 	u8 dst_nopolicy: 1;
61684 	u8 fib6_destroying: 1;
61685 	u8 unused: 4;
61686 	struct callback_head rcu;
61687 	struct nexthop *nh;
61688 	struct fib6_nh fib6_nh[0];
61689 };
61690 
61691 struct uncached_list;
61692 
61693 struct rt6_info {
61694 	struct dst_entry dst;
61695 	struct fib6_info *from;
61696 	int sernum;
61697 	struct rt6key rt6i_dst;
61698 	struct rt6key rt6i_src;
61699 	struct in6_addr rt6i_gateway;
61700 	struct inet6_dev *rt6i_idev;
61701 	u32 rt6i_flags;
61702 	struct list_head rt6i_uncached;
61703 	struct uncached_list *rt6i_uncached_list;
61704 	short unsigned int rt6i_nfheader_len;
61705 };
61706 
61707 struct rt6_statistics {
61708 	__u32 fib_nodes;
61709 	__u32 fib_route_nodes;
61710 	__u32 fib_rt_entries;
61711 	__u32 fib_rt_cache;
61712 	__u32 fib_discarded_routes;
61713 	atomic_t fib_rt_alloc;
61714 };
61715 
61716 struct fib6_node {
61717 	struct fib6_node *parent;
61718 	struct fib6_node *left;
61719 	struct fib6_node *right;
61720 	struct fib6_node *subtree;
61721 	struct fib6_info *leaf;
61722 	__u16 fn_bit;
61723 	__u16 fn_flags;
61724 	int fn_sernum;
61725 	struct fib6_info *rr_ptr;
61726 	struct callback_head rcu;
61727 };
61728 
61729 struct fib6_table {
61730 	struct hlist_node tb6_hlist;
61731 	u32 tb6_id;
61732 	spinlock_t tb6_lock;
61733 	struct fib6_node tb6_root;
61734 	struct inet_peer_base tb6_peers;
61735 	unsigned int flags;
61736 	unsigned int fib_seq;
61737 };
61738 
61739 typedef union {
61740 	__be32 a4;
61741 	__be32 a6[4];
61742 	struct in6_addr in6;
61743 } xfrm_address_t;
61744 
61745 struct xfrm_id {
61746 	xfrm_address_t daddr;
61747 	__be32 spi;
61748 	__u8 proto;
61749 };
61750 
61751 struct xfrm_sec_ctx {
61752 	__u8 ctx_doi;
61753 	__u8 ctx_alg;
61754 	__u16 ctx_len;
61755 	__u32 ctx_sid;
61756 	char ctx_str[0];
61757 };
61758 
61759 struct xfrm_selector {
61760 	xfrm_address_t daddr;
61761 	xfrm_address_t saddr;
61762 	__be16 dport;
61763 	__be16 dport_mask;
61764 	__be16 sport;
61765 	__be16 sport_mask;
61766 	__u16 family;
61767 	__u8 prefixlen_d;
61768 	__u8 prefixlen_s;
61769 	__u8 proto;
61770 	int ifindex;
61771 	__kernel_uid32_t user;
61772 };
61773 
61774 struct xfrm_lifetime_cfg {
61775 	__u64 soft_byte_limit;
61776 	__u64 hard_byte_limit;
61777 	__u64 soft_packet_limit;
61778 	__u64 hard_packet_limit;
61779 	__u64 soft_add_expires_seconds;
61780 	__u64 hard_add_expires_seconds;
61781 	__u64 soft_use_expires_seconds;
61782 	__u64 hard_use_expires_seconds;
61783 };
61784 
61785 struct xfrm_lifetime_cur {
61786 	__u64 bytes;
61787 	__u64 packets;
61788 	__u64 add_time;
61789 	__u64 use_time;
61790 };
61791 
61792 struct xfrm_replay_state {
61793 	__u32 oseq;
61794 	__u32 seq;
61795 	__u32 bitmap;
61796 };
61797 
61798 struct xfrm_replay_state_esn {
61799 	unsigned int bmp_len;
61800 	__u32 oseq;
61801 	__u32 seq;
61802 	__u32 oseq_hi;
61803 	__u32 seq_hi;
61804 	__u32 replay_window;
61805 	__u32 bmp[0];
61806 };
61807 
61808 struct xfrm_algo {
61809 	char alg_name[64];
61810 	unsigned int alg_key_len;
61811 	char alg_key[0];
61812 };
61813 
61814 struct xfrm_algo_auth {
61815 	char alg_name[64];
61816 	unsigned int alg_key_len;
61817 	unsigned int alg_trunc_len;
61818 	char alg_key[0];
61819 };
61820 
61821 struct xfrm_algo_aead {
61822 	char alg_name[64];
61823 	unsigned int alg_key_len;
61824 	unsigned int alg_icv_len;
61825 	char alg_key[0];
61826 };
61827 
61828 struct xfrm_stats {
61829 	__u32 replay_window;
61830 	__u32 replay;
61831 	__u32 integrity_failed;
61832 };
61833 
61834 struct xfrm_encap_tmpl {
61835 	__u16 encap_type;
61836 	__be16 encap_sport;
61837 	__be16 encap_dport;
61838 	xfrm_address_t encap_oa;
61839 };
61840 
61841 struct xfrm_mark {
61842 	__u32 v;
61843 	__u32 m;
61844 };
61845 
61846 struct xfrm_address_filter {
61847 	xfrm_address_t saddr;
61848 	xfrm_address_t daddr;
61849 	__u16 family;
61850 	__u8 splen;
61851 	__u8 dplen;
61852 };
61853 
61854 struct seq_net_private {
61855 	struct net *net;
61856 	netns_tracker ns_tracker;
61857 };
61858 
61859 struct pernet_operations {
61860 	struct list_head list;
61861 	int (*init)(struct net *);
61862 	void (*pre_exit)(struct net *);
61863 	void (*exit)(struct net *);
61864 	void (*exit_batch)(struct list_head *);
61865 	unsigned int *id;
61866 	size_t size;
61867 };
61868 
61869 struct netdev_name_node {
61870 	struct hlist_node hlist;
61871 	struct list_head list;
61872 	struct net_device *dev;
61873 	const char *name;
61874 };
61875 
61876 struct sd_flow_limit;
61877 
61878 struct softnet_data {
61879 	struct list_head poll_list;
61880 	struct sk_buff_head process_queue;
61881 	unsigned int processed;
61882 	unsigned int time_squeeze;
61883 	struct softnet_data *rps_ipi_list;
61884 	struct sd_flow_limit *flow_limit;
61885 	struct Qdisc *output_queue;
61886 	struct Qdisc **output_queue_tailp;
61887 	struct sk_buff *completion_queue;
61888 	struct {
61889 		u16 recursion;
61890 		u8 more;
61891 		u8 skip_txqueue;
61892 	} xmit;
61893 	long: 32;
61894 	long: 64;
61895 	long: 64;
61896 	long: 64;
61897 	long: 64;
61898 	unsigned int input_queue_head;
61899 	long: 32;
61900 	long: 64;
61901 	long: 64;
61902 	long: 64;
61903 	long: 64;
61904 	long: 64;
61905 	long: 64;
61906 	long: 64;
61907 	call_single_data_t csd;
61908 	struct softnet_data *rps_ipi_next;
61909 	unsigned int cpu;
61910 	unsigned int input_queue_tail;
61911 	unsigned int received_rps;
61912 	unsigned int dropped;
61913 	struct sk_buff_head input_pkt_queue;
61914 	struct napi_struct backlog;
61915 	long: 64;
61916 	long: 64;
61917 	long: 64;
61918 	long: 64;
61919 	spinlock_t defer_lock;
61920 	int defer_count;
61921 	int defer_ipi_scheduled;
61922 	struct sk_buff *defer_list;
61923 	long: 64;
61924 	call_single_data_t defer_csd;
61925 };
61926 
61927 struct sd_flow_limit {
61928 	u64 count;
61929 	unsigned int num_buckets;
61930 	unsigned int history_head;
61931 	u16 history[128];
61932 	u8 buckets[0];
61933 };
61934 
61935 struct xfrm_state_walk {
61936 	struct list_head all;
61937 	u8 state;
61938 	u8 dying;
61939 	u8 proto;
61940 	u32 seq;
61941 	struct xfrm_address_filter *filter;
61942 };
61943 
61944 enum xfrm_replay_mode {
61945 	XFRM_REPLAY_MODE_LEGACY = 0,
61946 	XFRM_REPLAY_MODE_BMP = 1,
61947 	XFRM_REPLAY_MODE_ESN = 2,
61948 };
61949 
61950 struct xfrm_dev_offload {
61951 	struct net_device *dev;
61952 	netdevice_tracker dev_tracker;
61953 	struct net_device *real_dev;
61954 	long unsigned int offload_handle;
61955 	u8 dir: 2;
61956 	u8 type: 2;
61957 };
61958 
61959 struct xfrm_mode {
61960 	u8 encap;
61961 	u8 family;
61962 	u8 flags;
61963 };
61964 
61965 struct xfrm_type;
61966 
61967 struct xfrm_type_offload;
61968 
61969 struct xfrm_state {
61970 	possible_net_t xs_net;
61971 	union {
61972 		struct hlist_node gclist;
61973 		struct hlist_node bydst;
61974 	};
61975 	struct hlist_node bysrc;
61976 	struct hlist_node byspi;
61977 	struct hlist_node byseq;
61978 	refcount_t refcnt;
61979 	spinlock_t lock;
61980 	struct xfrm_id id;
61981 	struct xfrm_selector sel;
61982 	struct xfrm_mark mark;
61983 	u32 if_id;
61984 	u32 tfcpad;
61985 	u32 genid;
61986 	struct xfrm_state_walk km;
61987 	struct {
61988 		u32 reqid;
61989 		u8 mode;
61990 		u8 replay_window;
61991 		u8 aalgo;
61992 		u8 ealgo;
61993 		u8 calgo;
61994 		u8 flags;
61995 		u16 family;
61996 		xfrm_address_t saddr;
61997 		int header_len;
61998 		int trailer_len;
61999 		u32 extra_flags;
62000 		struct xfrm_mark smark;
62001 	} props;
62002 	struct xfrm_lifetime_cfg lft;
62003 	struct xfrm_algo_auth *aalg;
62004 	struct xfrm_algo *ealg;
62005 	struct xfrm_algo *calg;
62006 	struct xfrm_algo_aead *aead;
62007 	const char *geniv;
62008 	__be16 new_mapping_sport;
62009 	u32 new_mapping;
62010 	u32 mapping_maxage;
62011 	struct xfrm_encap_tmpl *encap;
62012 	struct sock *encap_sk;
62013 	xfrm_address_t *coaddr;
62014 	struct xfrm_state *tunnel;
62015 	atomic_t tunnel_users;
62016 	struct xfrm_replay_state replay;
62017 	struct xfrm_replay_state_esn *replay_esn;
62018 	struct xfrm_replay_state preplay;
62019 	struct xfrm_replay_state_esn *preplay_esn;
62020 	enum xfrm_replay_mode repl_mode;
62021 	u32 xflags;
62022 	u32 replay_maxage;
62023 	u32 replay_maxdiff;
62024 	struct timer_list rtimer;
62025 	struct xfrm_stats stats;
62026 	struct xfrm_lifetime_cur curlft;
62027 	struct hrtimer mtimer;
62028 	struct xfrm_dev_offload xso;
62029 	long int saved_tmo;
62030 	time64_t lastused;
62031 	struct page_frag xfrag;
62032 	const struct xfrm_type *type;
62033 	struct xfrm_mode inner_mode;
62034 	struct xfrm_mode inner_mode_iaf;
62035 	struct xfrm_mode outer_mode;
62036 	const struct xfrm_type_offload *type_offload;
62037 	struct xfrm_sec_ctx *security;
62038 	void *data;
62039 };
62040 
62041 struct dst_metrics {
62042 	u32 metrics[17];
62043 	refcount_t refcnt;
62044 };
62045 
62046 enum {
62047 	TCPF_ESTABLISHED = 2,
62048 	TCPF_SYN_SENT = 4,
62049 	TCPF_SYN_RECV = 8,
62050 	TCPF_FIN_WAIT1 = 16,
62051 	TCPF_FIN_WAIT2 = 32,
62052 	TCPF_TIME_WAIT = 64,
62053 	TCPF_CLOSE = 128,
62054 	TCPF_CLOSE_WAIT = 256,
62055 	TCPF_LAST_ACK = 512,
62056 	TCPF_LISTEN = 1024,
62057 	TCPF_CLOSING = 2048,
62058 	TCPF_NEW_SYN_RECV = 4096,
62059 };
62060 
62061 struct so_timestamping {
62062 	int flags;
62063 	int bind_phc;
62064 };
62065 
62066 enum txtime_flags {
62067 	SOF_TXTIME_DEADLINE_MODE = 1,
62068 	SOF_TXTIME_REPORT_ERRORS = 2,
62069 	SOF_TXTIME_FLAGS_LAST = 2,
62070 	SOF_TXTIME_FLAGS_MASK = 3,
62071 };
62072 
62073 struct sock_txtime {
62074 	__kernel_clockid_t clockid;
62075 	__u32 flags;
62076 };
62077 
62078 struct xfrm_policy_walk_entry {
62079 	struct list_head all;
62080 	u8 dead;
62081 };
62082 
62083 struct xfrm_policy_queue {
62084 	struct sk_buff_head hold_queue;
62085 	struct timer_list hold_timer;
62086 	long unsigned int timeout;
62087 };
62088 
62089 struct xfrm_tmpl {
62090 	struct xfrm_id id;
62091 	xfrm_address_t saddr;
62092 	short unsigned int encap_family;
62093 	u32 reqid;
62094 	u8 mode;
62095 	u8 share;
62096 	u8 optional;
62097 	u8 allalgs;
62098 	u32 aalgos;
62099 	u32 ealgos;
62100 	u32 calgos;
62101 };
62102 
62103 struct xfrm_policy {
62104 	possible_net_t xp_net;
62105 	struct hlist_node bydst;
62106 	struct hlist_node byidx;
62107 	rwlock_t lock;
62108 	refcount_t refcnt;
62109 	u32 pos;
62110 	struct timer_list timer;
62111 	atomic_t genid;
62112 	u32 priority;
62113 	u32 index;
62114 	u32 if_id;
62115 	struct xfrm_mark mark;
62116 	struct xfrm_selector selector;
62117 	struct xfrm_lifetime_cfg lft;
62118 	struct xfrm_lifetime_cur curlft;
62119 	struct xfrm_policy_walk_entry walk;
62120 	struct xfrm_policy_queue polq;
62121 	bool bydst_reinsert;
62122 	u8 type;
62123 	u8 action;
62124 	u8 flags;
62125 	u8 xfrm_nr;
62126 	u16 family;
62127 	struct xfrm_sec_ctx *security;
62128 	struct xfrm_tmpl xfrm_vec[6];
62129 	struct hlist_node bydst_inexact_list;
62130 	struct callback_head rcu;
62131 	struct xfrm_dev_offload xdo;
62132 };
62133 
62134 enum sk_pacing {
62135 	SK_PACING_NONE = 0,
62136 	SK_PACING_NEEDED = 1,
62137 	SK_PACING_FQ = 2,
62138 };
62139 
62140 enum sock_flags {
62141 	SOCK_DEAD = 0,
62142 	SOCK_DONE = 1,
62143 	SOCK_URGINLINE = 2,
62144 	SOCK_KEEPOPEN = 3,
62145 	SOCK_LINGER = 4,
62146 	SOCK_DESTROY = 5,
62147 	SOCK_BROADCAST = 6,
62148 	SOCK_TIMESTAMP = 7,
62149 	SOCK_ZAPPED = 8,
62150 	SOCK_USE_WRITE_QUEUE = 9,
62151 	SOCK_DBG = 10,
62152 	SOCK_RCVTSTAMP = 11,
62153 	SOCK_RCVTSTAMPNS = 12,
62154 	SOCK_LOCALROUTE = 13,
62155 	SOCK_MEMALLOC = 14,
62156 	SOCK_TIMESTAMPING_RX_SOFTWARE = 15,
62157 	SOCK_FASYNC = 16,
62158 	SOCK_RXQ_OVFL = 17,
62159 	SOCK_ZEROCOPY = 18,
62160 	SOCK_WIFI_STATUS = 19,
62161 	SOCK_NOFCS = 20,
62162 	SOCK_FILTER_LOCKED = 21,
62163 	SOCK_SELECT_ERR_QUEUE = 22,
62164 	SOCK_RCU_FREE = 23,
62165 	SOCK_TXTIME = 24,
62166 	SOCK_XDP = 25,
62167 	SOCK_TSTAMP_NEW = 26,
62168 	SOCK_RCVMARK = 27,
62169 };
62170 
62171 struct socket_alloc {
62172 	struct socket socket;
62173 	struct inode vfs_inode;
62174 	long: 64;
62175 };
62176 
62177 struct sockcm_cookie {
62178 	u64 transmit_time;
62179 	u32 mark;
62180 	u32 tsflags;
62181 };
62182 
62183 struct sock_skb_cb {
62184 	u32 dropcount;
62185 };
62186 
62187 struct fastopen_queue {
62188 	struct request_sock *rskq_rst_head;
62189 	struct request_sock *rskq_rst_tail;
62190 	spinlock_t lock;
62191 	int qlen;
62192 	int max_qlen;
62193 	struct tcp_fastopen_context *ctx;
62194 };
62195 
62196 struct request_sock_queue {
62197 	spinlock_t rskq_lock;
62198 	u8 rskq_defer_accept;
62199 	u32 synflood_warned;
62200 	atomic_t qlen;
62201 	atomic_t young;
62202 	struct request_sock *rskq_accept_head;
62203 	struct request_sock *rskq_accept_tail;
62204 	struct fastopen_queue fastopenq;
62205 };
62206 
62207 struct ip_options {
62208 	__be32 faddr;
62209 	__be32 nexthop;
62210 	unsigned char optlen;
62211 	unsigned char srr;
62212 	unsigned char rr;
62213 	unsigned char ts;
62214 	unsigned char is_strictroute: 1;
62215 	unsigned char srr_is_hit: 1;
62216 	unsigned char is_changed: 1;
62217 	unsigned char rr_needaddr: 1;
62218 	unsigned char ts_needtime: 1;
62219 	unsigned char ts_needaddr: 1;
62220 	unsigned char router_alert;
62221 	unsigned char cipso;
62222 	unsigned char __pad2;
62223 	unsigned char __data[0];
62224 };
62225 
62226 struct ip_options_rcu {
62227 	struct callback_head rcu;
62228 	struct ip_options opt;
62229 };
62230 
62231 struct ipv6_opt_hdr;
62232 
62233 struct ipv6_rt_hdr;
62234 
62235 struct ipv6_txoptions {
62236 	refcount_t refcnt;
62237 	int tot_len;
62238 	__u16 opt_flen;
62239 	__u16 opt_nflen;
62240 	struct ipv6_opt_hdr *hopopt;
62241 	struct ipv6_opt_hdr *dst0opt;
62242 	struct ipv6_rt_hdr *srcrt;
62243 	struct ipv6_opt_hdr *dst1opt;
62244 	struct callback_head rcu;
62245 };
62246 
62247 struct inet_cork {
62248 	unsigned int flags;
62249 	__be32 addr;
62250 	struct ip_options *opt;
62251 	unsigned int fragsize;
62252 	int length;
62253 	struct dst_entry *dst;
62254 	u8 tx_flags;
62255 	__u8 ttl;
62256 	__s16 tos;
62257 	char priority;
62258 	__u16 gso_size;
62259 	u64 transmit_time;
62260 	u32 mark;
62261 };
62262 
62263 struct inet_cork_full {
62264 	struct inet_cork base;
62265 	struct flowi fl;
62266 };
62267 
62268 struct ipv6_pinfo;
62269 
62270 struct ip_mc_socklist;
62271 
62272 struct inet_sock {
62273 	struct sock sk;
62274 	struct ipv6_pinfo *pinet6;
62275 	__be32 inet_saddr;
62276 	__s16 uc_ttl;
62277 	__u16 cmsg_flags;
62278 	struct ip_options_rcu *inet_opt;
62279 	__be16 inet_sport;
62280 	__u16 inet_id;
62281 	__u8 tos;
62282 	__u8 min_ttl;
62283 	__u8 mc_ttl;
62284 	__u8 pmtudisc;
62285 	__u8 recverr: 1;
62286 	__u8 is_icsk: 1;
62287 	__u8 freebind: 1;
62288 	__u8 hdrincl: 1;
62289 	__u8 mc_loop: 1;
62290 	__u8 transparent: 1;
62291 	__u8 mc_all: 1;
62292 	__u8 nodefrag: 1;
62293 	__u8 bind_address_no_port: 1;
62294 	__u8 recverr_rfc4884: 1;
62295 	__u8 defer_connect: 1;
62296 	__u8 rcv_tos;
62297 	__u8 convert_csum;
62298 	int uc_index;
62299 	int mc_index;
62300 	__be32 mc_addr;
62301 	struct ip_mc_socklist *mc_list;
62302 	struct inet_cork_full cork;
62303 };
62304 
62305 struct in6_pktinfo {
62306 	struct in6_addr ipi6_addr;
62307 	int ipi6_ifindex;
62308 };
62309 
62310 struct inet6_cork {
62311 	struct ipv6_txoptions *opt;
62312 	u8 hop_limit;
62313 	u8 tclass;
62314 };
62315 
62316 struct ipv6_mc_socklist;
62317 
62318 struct ipv6_ac_socklist;
62319 
62320 struct ipv6_fl_socklist;
62321 
62322 struct ipv6_pinfo {
62323 	struct in6_addr saddr;
62324 	struct in6_pktinfo sticky_pktinfo;
62325 	const struct in6_addr *daddr_cache;
62326 	const struct in6_addr *saddr_cache;
62327 	__be32 flow_label;
62328 	__u32 frag_size;
62329 	__u16 __unused_1: 7;
62330 	__s16 hop_limit: 9;
62331 	__u16 mc_loop: 1;
62332 	__u16 __unused_2: 6;
62333 	__s16 mcast_hops: 9;
62334 	int ucast_oif;
62335 	int mcast_oif;
62336 	union {
62337 		struct {
62338 			__u16 srcrt: 1;
62339 			__u16 osrcrt: 1;
62340 			__u16 rxinfo: 1;
62341 			__u16 rxoinfo: 1;
62342 			__u16 rxhlim: 1;
62343 			__u16 rxohlim: 1;
62344 			__u16 hopopts: 1;
62345 			__u16 ohopopts: 1;
62346 			__u16 dstopts: 1;
62347 			__u16 odstopts: 1;
62348 			__u16 rxflow: 1;
62349 			__u16 rxtclass: 1;
62350 			__u16 rxpmtu: 1;
62351 			__u16 rxorigdstaddr: 1;
62352 			__u16 recvfragsize: 1;
62353 		} bits;
62354 		__u16 all;
62355 	} rxopt;
62356 	__u16 recverr: 1;
62357 	__u16 sndflow: 1;
62358 	__u16 repflow: 1;
62359 	__u16 pmtudisc: 3;
62360 	__u16 padding: 1;
62361 	__u16 srcprefs: 3;
62362 	__u16 dontfrag: 1;
62363 	__u16 autoflowlabel: 1;
62364 	__u16 autoflowlabel_set: 1;
62365 	__u16 mc_all: 1;
62366 	__u16 recverr_rfc4884: 1;
62367 	__u16 rtalert_isolate: 1;
62368 	__u8 min_hopcount;
62369 	__u8 tclass;
62370 	__be32 rcv_flowinfo;
62371 	__u32 dst_cookie;
62372 	struct ipv6_mc_socklist *ipv6_mc_list;
62373 	struct ipv6_ac_socklist *ipv6_ac_list;
62374 	struct ipv6_fl_socklist *ipv6_fl_list;
62375 	struct ipv6_txoptions *opt;
62376 	struct sk_buff *pktoptions;
62377 	struct sk_buff *rxpmtu;
62378 	struct inet6_cork cork;
62379 };
62380 
62381 struct ipv6_rt_hdr {
62382 	__u8 nexthdr;
62383 	__u8 hdrlen;
62384 	__u8 type;
62385 	__u8 segments_left;
62386 };
62387 
62388 struct ipv6_opt_hdr {
62389 	__u8 nexthdr;
62390 	__u8 hdrlen;
62391 };
62392 
62393 struct minmax_sample {
62394 	u32 t;
62395 	u32 v;
62396 };
62397 
62398 struct minmax {
62399 	struct minmax_sample s[3];
62400 };
62401 
62402 struct inet_connection_sock_af_ops {
62403 	int (*queue_xmit)(struct sock *, struct sk_buff *, struct flowi *);
62404 	void (*send_check)(struct sock *, struct sk_buff *);
62405 	int (*rebuild_header)(struct sock *);
62406 	void (*sk_rx_dst_set)(struct sock *, const struct sk_buff *);
62407 	int (*conn_request)(struct sock *, struct sk_buff *);
62408 	struct sock * (*syn_recv_sock)(const struct sock *, struct sk_buff *, struct request_sock *, struct dst_entry *, struct request_sock *, bool *);
62409 	u16 net_header_len;
62410 	u16 net_frag_header_len;
62411 	u16 sockaddr_len;
62412 	int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int);
62413 	int (*getsockopt)(struct sock *, int, int, char *, int *);
62414 	void (*addr2sockaddr)(struct sock *, struct sockaddr *);
62415 	void (*mtu_reduced)(struct sock *);
62416 };
62417 
62418 struct inet_bind_bucket;
62419 
62420 struct inet_bind2_bucket;
62421 
62422 struct tcp_ulp_ops;
62423 
62424 struct inet_connection_sock {
62425 	struct inet_sock icsk_inet;
62426 	struct request_sock_queue icsk_accept_queue;
62427 	struct inet_bind_bucket *icsk_bind_hash;
62428 	struct inet_bind2_bucket *icsk_bind2_hash;
62429 	long unsigned int icsk_timeout;
62430 	struct timer_list icsk_retransmit_timer;
62431 	struct timer_list icsk_delack_timer;
62432 	__u32 icsk_rto;
62433 	__u32 icsk_rto_min;
62434 	__u32 icsk_delack_max;
62435 	__u32 icsk_pmtu_cookie;
62436 	const struct tcp_congestion_ops *icsk_ca_ops;
62437 	const struct inet_connection_sock_af_ops *icsk_af_ops;
62438 	const struct tcp_ulp_ops *icsk_ulp_ops;
62439 	void *icsk_ulp_data;
62440 	void (*icsk_clean_acked)(struct sock *, u32);
62441 	unsigned int (*icsk_sync_mss)(struct sock *, u32);
62442 	__u8 icsk_ca_state: 5;
62443 	__u8 icsk_ca_initialized: 1;
62444 	__u8 icsk_ca_setsockopt: 1;
62445 	__u8 icsk_ca_dst_locked: 1;
62446 	__u8 icsk_retransmits;
62447 	__u8 icsk_pending;
62448 	__u8 icsk_backoff;
62449 	__u8 icsk_syn_retries;
62450 	__u8 icsk_probes_out;
62451 	__u16 icsk_ext_hdr_len;
62452 	struct {
62453 		__u8 pending;
62454 		__u8 quick;
62455 		__u8 pingpong;
62456 		__u8 retry;
62457 		__u32 ato;
62458 		long unsigned int timeout;
62459 		__u32 lrcvtime;
62460 		__u16 last_seg_size;
62461 		__u16 rcv_mss;
62462 	} icsk_ack;
62463 	struct {
62464 		int search_high;
62465 		int search_low;
62466 		u32 probe_size: 31;
62467 		u32 enabled: 1;
62468 		u32 probe_timestamp;
62469 	} icsk_mtup;
62470 	u32 icsk_probes_tstamp;
62471 	u32 icsk_user_timeout;
62472 	u64 icsk_ca_priv[13];
62473 };
62474 
62475 struct inet_bind_bucket {
62476 	possible_net_t ib_net;
62477 	int l3mdev;
62478 	short unsigned int port;
62479 	signed char fastreuse;
62480 	signed char fastreuseport;
62481 	kuid_t fastuid;
62482 	struct in6_addr fast_v6_rcv_saddr;
62483 	__be32 fast_rcv_saddr;
62484 	short unsigned int fast_sk_family;
62485 	bool fast_ipv6_only;
62486 	struct hlist_node node;
62487 	struct hlist_head owners;
62488 };
62489 
62490 struct inet_bind2_bucket {
62491 	possible_net_t ib_net;
62492 	int l3mdev;
62493 	short unsigned int port;
62494 	short unsigned int family;
62495 	union {
62496 		struct in6_addr v6_rcv_saddr;
62497 		__be32 rcv_saddr;
62498 	};
62499 	struct hlist_node node;
62500 	struct hlist_head owners;
62501 	struct hlist_head deathrow;
62502 };
62503 
62504 struct tcp_ulp_ops {
62505 	struct list_head list;
62506 	int (*init)(struct sock *);
62507 	void (*update)(struct sock *, struct proto *, void (*)(struct sock *));
62508 	void (*release)(struct sock *);
62509 	int (*get_info)(const struct sock *, struct sk_buff *);
62510 	size_t (*get_info_size)(const struct sock *);
62511 	void (*clone)(const struct request_sock *, struct sock *, const gfp_t);
62512 	char name[16];
62513 	struct module *owner;
62514 };
62515 
62516 struct tcp_fastopen_cookie {
62517 	__le64 val[2];
62518 	s8 len;
62519 	bool exp;
62520 };
62521 
62522 struct tcp_sack_block {
62523 	u32 start_seq;
62524 	u32 end_seq;
62525 };
62526 
62527 struct tcp_options_received {
62528 	int ts_recent_stamp;
62529 	u32 ts_recent;
62530 	u32 rcv_tsval;
62531 	u32 rcv_tsecr;
62532 	u16 saw_tstamp: 1;
62533 	u16 tstamp_ok: 1;
62534 	u16 dsack: 1;
62535 	u16 wscale_ok: 1;
62536 	u16 sack_ok: 3;
62537 	u16 smc_ok: 1;
62538 	u16 snd_wscale: 4;
62539 	u16 rcv_wscale: 4;
62540 	u8 saw_unknown: 1;
62541 	u8 unused: 7;
62542 	u8 num_sacks;
62543 	u16 user_mss;
62544 	u16 mss_clamp;
62545 };
62546 
62547 struct tcp_rack {
62548 	u64 mstamp;
62549 	u32 rtt_us;
62550 	u32 end_seq;
62551 	u32 last_delivered;
62552 	u8 reo_wnd_steps;
62553 	u8 reo_wnd_persist: 5;
62554 	u8 dsack_seen: 1;
62555 	u8 advanced: 1;
62556 };
62557 
62558 struct tcp_fastopen_request;
62559 
62560 struct tcp_sock {
62561 	struct inet_connection_sock inet_conn;
62562 	u16 tcp_header_len;
62563 	u16 gso_segs;
62564 	__be32 pred_flags;
62565 	u64 bytes_received;
62566 	u32 segs_in;
62567 	u32 data_segs_in;
62568 	u32 rcv_nxt;
62569 	u32 copied_seq;
62570 	u32 rcv_wup;
62571 	u32 snd_nxt;
62572 	u32 segs_out;
62573 	u32 data_segs_out;
62574 	u64 bytes_sent;
62575 	u64 bytes_acked;
62576 	u32 dsack_dups;
62577 	u32 snd_una;
62578 	u32 snd_sml;
62579 	u32 rcv_tstamp;
62580 	u32 lsndtime;
62581 	u32 last_oow_ack_time;
62582 	u32 compressed_ack_rcv_nxt;
62583 	u32 tsoffset;
62584 	struct list_head tsq_node;
62585 	struct list_head tsorted_sent_queue;
62586 	u32 snd_wl1;
62587 	u32 snd_wnd;
62588 	u32 max_window;
62589 	u32 mss_cache;
62590 	u32 window_clamp;
62591 	u32 rcv_ssthresh;
62592 	struct tcp_rack rack;
62593 	u16 advmss;
62594 	u8 compressed_ack;
62595 	u8 dup_ack_counter: 2;
62596 	u8 tlp_retrans: 1;
62597 	u8 unused: 5;
62598 	u32 chrono_start;
62599 	u32 chrono_stat[3];
62600 	u8 chrono_type: 2;
62601 	u8 rate_app_limited: 1;
62602 	u8 fastopen_connect: 1;
62603 	u8 fastopen_no_cookie: 1;
62604 	u8 is_sack_reneg: 1;
62605 	u8 fastopen_client_fail: 2;
62606 	u8 nonagle: 4;
62607 	u8 thin_lto: 1;
62608 	u8 recvmsg_inq: 1;
62609 	u8 repair: 1;
62610 	u8 frto: 1;
62611 	u8 repair_queue;
62612 	u8 save_syn: 2;
62613 	u8 syn_data: 1;
62614 	u8 syn_fastopen: 1;
62615 	u8 syn_fastopen_exp: 1;
62616 	u8 syn_fastopen_ch: 1;
62617 	u8 syn_data_acked: 1;
62618 	u8 is_cwnd_limited: 1;
62619 	u32 tlp_high_seq;
62620 	u32 tcp_tx_delay;
62621 	u64 tcp_wstamp_ns;
62622 	u64 tcp_clock_cache;
62623 	u64 tcp_mstamp;
62624 	u32 srtt_us;
62625 	u32 mdev_us;
62626 	u32 mdev_max_us;
62627 	u32 rttvar_us;
62628 	u32 rtt_seq;
62629 	struct minmax rtt_min;
62630 	u32 packets_out;
62631 	u32 retrans_out;
62632 	u32 max_packets_out;
62633 	u32 cwnd_usage_seq;
62634 	u16 urg_data;
62635 	u8 ecn_flags;
62636 	u8 keepalive_probes;
62637 	u32 reordering;
62638 	u32 reord_seen;
62639 	u32 snd_up;
62640 	struct tcp_options_received rx_opt;
62641 	u32 snd_ssthresh;
62642 	u32 snd_cwnd;
62643 	u32 snd_cwnd_cnt;
62644 	u32 snd_cwnd_clamp;
62645 	u32 snd_cwnd_used;
62646 	u32 snd_cwnd_stamp;
62647 	u32 prior_cwnd;
62648 	u32 prr_delivered;
62649 	u32 prr_out;
62650 	u32 delivered;
62651 	u32 delivered_ce;
62652 	u32 lost;
62653 	u32 app_limited;
62654 	u64 first_tx_mstamp;
62655 	u64 delivered_mstamp;
62656 	u32 rate_delivered;
62657 	u32 rate_interval_us;
62658 	u32 rcv_wnd;
62659 	u32 write_seq;
62660 	u32 notsent_lowat;
62661 	u32 pushed_seq;
62662 	u32 lost_out;
62663 	u32 sacked_out;
62664 	struct hrtimer pacing_timer;
62665 	struct hrtimer compressed_ack_timer;
62666 	struct sk_buff *lost_skb_hint;
62667 	struct sk_buff *retransmit_skb_hint;
62668 	struct rb_root out_of_order_queue;
62669 	struct sk_buff *ooo_last_skb;
62670 	struct tcp_sack_block duplicate_sack[1];
62671 	struct tcp_sack_block selective_acks[4];
62672 	struct tcp_sack_block recv_sack_cache[4];
62673 	struct sk_buff *highest_sack;
62674 	int lost_cnt_hint;
62675 	u32 prior_ssthresh;
62676 	u32 high_seq;
62677 	u32 retrans_stamp;
62678 	u32 undo_marker;
62679 	int undo_retrans;
62680 	u64 bytes_retrans;
62681 	u32 total_retrans;
62682 	u32 urg_seq;
62683 	unsigned int keepalive_time;
62684 	unsigned int keepalive_intvl;
62685 	int linger2;
62686 	u8 bpf_sock_ops_cb_flags;
62687 	u8 bpf_chg_cc_inprogress: 1;
62688 	u16 timeout_rehash;
62689 	u32 rcv_ooopack;
62690 	u32 rcv_rtt_last_tsecr;
62691 	struct {
62692 		u32 rtt_us;
62693 		u32 seq;
62694 		u64 time;
62695 	} rcv_rtt_est;
62696 	struct {
62697 		u32 space;
62698 		u32 seq;
62699 		u64 time;
62700 	} rcvq_space;
62701 	struct {
62702 		u32 probe_seq_start;
62703 		u32 probe_seq_end;
62704 	} mtu_probe;
62705 	u32 plb_rehash;
62706 	u32 mtu_info;
62707 	struct tcp_fastopen_request *fastopen_req;
62708 	struct request_sock *fastopen_rsk;
62709 	struct saved_syn *saved_syn;
62710 };
62711 
62712 struct tcp_fastopen_request {
62713 	struct tcp_fastopen_cookie cookie;
62714 	struct msghdr *data;
62715 	size_t size;
62716 	int copied;
62717 	struct ubuf_info *uarg;
62718 };
62719 
62720 struct inet6_skb_parm {
62721 	int iif;
62722 	__be16 ra;
62723 	__u16 dst0;
62724 	__u16 srcrt;
62725 	__u16 dst1;
62726 	__u16 lastopt;
62727 	__u16 nhoff;
62728 	__u16 flags;
62729 	__u16 frag_max_size;
62730 	__u16 srhoff;
62731 };
62732 
62733 struct ip6_sf_socklist;
62734 
62735 struct ipv6_mc_socklist {
62736 	struct in6_addr addr;
62737 	int ifindex;
62738 	unsigned int sfmode;
62739 	struct ipv6_mc_socklist *next;
62740 	struct ip6_sf_socklist *sflist;
62741 	struct callback_head rcu;
62742 };
62743 
62744 struct ipv6_ac_socklist {
62745 	struct in6_addr acl_addr;
62746 	int acl_ifindex;
62747 	struct ipv6_ac_socklist *acl_next;
62748 };
62749 
62750 struct ip6_flowlabel;
62751 
62752 struct ipv6_fl_socklist {
62753 	struct ipv6_fl_socklist *next;
62754 	struct ip6_flowlabel *fl;
62755 	struct callback_head rcu;
62756 };
62757 
62758 struct ip6_sf_socklist {
62759 	unsigned int sl_max;
62760 	unsigned int sl_count;
62761 	struct callback_head rcu;
62762 	struct in6_addr sl_addr[0];
62763 };
62764 
62765 struct ip6_flowlabel {
62766 	struct ip6_flowlabel *next;
62767 	__be32 label;
62768 	atomic_t users;
62769 	struct in6_addr dst;
62770 	struct ipv6_txoptions *opt;
62771 	long unsigned int linger;
62772 	struct callback_head rcu;
62773 	u8 share;
62774 	union {
62775 		struct pid *pid;
62776 		kuid_t uid;
62777 	} owner;
62778 	long unsigned int lastuse;
62779 	long unsigned int expires;
62780 	struct net *fl_net;
62781 };
62782 
62783 struct fib_nh_exception {
62784 	struct fib_nh_exception *fnhe_next;
62785 	int fnhe_genid;
62786 	__be32 fnhe_daddr;
62787 	u32 fnhe_pmtu;
62788 	bool fnhe_mtu_locked;
62789 	__be32 fnhe_gw;
62790 	long unsigned int fnhe_expires;
62791 	struct rtable *fnhe_rth_input;
62792 	struct rtable *fnhe_rth_output;
62793 	long unsigned int fnhe_stamp;
62794 	struct callback_head rcu;
62795 };
62796 
62797 struct rtable {
62798 	struct dst_entry dst;
62799 	int rt_genid;
62800 	unsigned int rt_flags;
62801 	__u16 rt_type;
62802 	__u8 rt_is_input;
62803 	__u8 rt_uses_gateway;
62804 	int rt_iif;
62805 	u8 rt_gw_family;
62806 	union {
62807 		__be32 rt_gw4;
62808 		struct in6_addr rt_gw6;
62809 	};
62810 	u32 rt_mtu_locked: 1;
62811 	u32 rt_pmtu: 31;
62812 	struct list_head rt_uncached;
62813 	struct uncached_list *rt_uncached_list;
62814 };
62815 
62816 struct fnhe_hash_bucket {
62817 	struct fib_nh_exception *chain;
62818 };
62819 
62820 struct inet_skb_parm {
62821 	int iif;
62822 	struct ip_options opt;
62823 	u16 flags;
62824 	u16 frag_max_size;
62825 };
62826 
62827 struct sock_ee_data_rfc4884 {
62828 	__u16 len;
62829 	__u8 flags;
62830 	__u8 reserved;
62831 };
62832 
62833 struct sock_extended_err {
62834 	__u32 ee_errno;
62835 	__u8 ee_origin;
62836 	__u8 ee_type;
62837 	__u8 ee_code;
62838 	__u8 ee_pad;
62839 	__u32 ee_info;
62840 	union {
62841 		__u32 ee_data;
62842 		struct sock_ee_data_rfc4884 ee_rfc4884;
62843 	};
62844 };
62845 
62846 struct sock_exterr_skb {
62847 	union {
62848 		struct inet_skb_parm h4;
62849 		struct inet6_skb_parm h6;
62850 	} header;
62851 	struct sock_extended_err ee;
62852 	u16 addr_offset;
62853 	__be16 port;
62854 	u8 opt_stats: 1;
62855 	u8 unused: 7;
62856 };
62857 
62858 struct net_protocol {
62859 	int (*handler)(struct sk_buff *);
62860 	int (*err_handler)(struct sk_buff *, u32);
62861 	unsigned int no_policy: 1;
62862 	unsigned int icmp_strict_tag_validation: 1;
62863 };
62864 
62865 struct rt6_exception_bucket {
62866 	struct hlist_head chain;
62867 	int depth;
62868 };
62869 
62870 struct xfrm_type {
62871 	struct module *owner;
62872 	u8 proto;
62873 	u8 flags;
62874 	int (*init_state)(struct xfrm_state *, struct netlink_ext_ack *);
62875 	void (*destructor)(struct xfrm_state *);
62876 	int (*input)(struct xfrm_state *, struct sk_buff *);
62877 	int (*output)(struct xfrm_state *, struct sk_buff *);
62878 	int (*reject)(struct xfrm_state *, struct sk_buff *, const struct flowi *);
62879 };
62880 
62881 struct xfrm_type_offload {
62882 	struct module *owner;
62883 	u8 proto;
62884 	void (*encap)(struct xfrm_state *, struct sk_buff *);
62885 	int (*input_tail)(struct xfrm_state *, struct sk_buff *);
62886 	int (*xmit)(struct xfrm_state *, struct sk_buff *, netdev_features_t);
62887 };
62888 
62889 struct cgroup_cls_state {
62890 	struct cgroup_subsys_state css;
62891 	u32 classid;
62892 };
62893 
62894 enum {
62895 	SK_MEMINFO_RMEM_ALLOC = 0,
62896 	SK_MEMINFO_RCVBUF = 1,
62897 	SK_MEMINFO_WMEM_ALLOC = 2,
62898 	SK_MEMINFO_SNDBUF = 3,
62899 	SK_MEMINFO_FWD_ALLOC = 4,
62900 	SK_MEMINFO_WMEM_QUEUED = 5,
62901 	SK_MEMINFO_OPTMEM = 6,
62902 	SK_MEMINFO_BACKLOG = 7,
62903 	SK_MEMINFO_DROPS = 8,
62904 	SK_MEMINFO_VARS = 9,
62905 };
62906 
62907 enum sknetlink_groups {
62908 	SKNLGRP_NONE = 0,
62909 	SKNLGRP_INET_TCP_DESTROY = 1,
62910 	SKNLGRP_INET_UDP_DESTROY = 2,
62911 	SKNLGRP_INET6_TCP_DESTROY = 3,
62912 	SKNLGRP_INET6_UDP_DESTROY = 4,
62913 	__SKNLGRP_MAX = 5,
62914 };
62915 
62916 struct sock_fprog {
62917 	short unsigned int len;
62918 	struct sock_filter *filter;
62919 };
62920 
62921 struct __kernel_old_timespec {
62922 	__kernel_old_time_t tv_sec;
62923 	long int tv_nsec;
62924 };
62925 
62926 struct scm_timestamping_internal {
62927 	struct timespec64 ts[3];
62928 };
62929 
62930 struct scm_fp_list {
62931 	short int count;
62932 	short int max;
62933 	struct user_struct *user;
62934 	struct file *fp[253];
62935 };
62936 
62937 struct scm_cookie {
62938 	struct pid *pid;
62939 	struct scm_fp_list *fp;
62940 	struct scm_creds creds;
62941 	u32 secid;
62942 };
62943 
62944 struct scm_timestamping {
62945 	struct __kernel_old_timespec ts[3];
62946 };
62947 
62948 struct scm_timestamping64 {
62949 	struct __kernel_timespec ts[3];
62950 };
62951 
62952 struct ipv4_devconf {
62953 	void *sysctl;
62954 	int data[33];
62955 	long unsigned int state[1];
62956 };
62957 
62958 enum {
62959 	NDA_UNSPEC = 0,
62960 	NDA_DST = 1,
62961 	NDA_LLADDR = 2,
62962 	NDA_CACHEINFO = 3,
62963 	NDA_PROBES = 4,
62964 	NDA_VLAN = 5,
62965 	NDA_PORT = 6,
62966 	NDA_VNI = 7,
62967 	NDA_IFINDEX = 8,
62968 	NDA_MASTER = 9,
62969 	NDA_LINK_NETNSID = 10,
62970 	NDA_SRC_VNI = 11,
62971 	NDA_PROTOCOL = 12,
62972 	NDA_NH_ID = 13,
62973 	NDA_FDB_EXT_ATTRS = 14,
62974 	NDA_FLAGS_EXT = 15,
62975 	NDA_NDM_STATE_MASK = 16,
62976 	NDA_NDM_FLAGS_MASK = 17,
62977 	__NDA_MAX = 18,
62978 };
62979 
62980 struct nda_cacheinfo {
62981 	__u32 ndm_confirmed;
62982 	__u32 ndm_used;
62983 	__u32 ndm_updated;
62984 	__u32 ndm_refcnt;
62985 };
62986 
62987 struct ndt_stats {
62988 	__u64 ndts_allocs;
62989 	__u64 ndts_destroys;
62990 	__u64 ndts_hash_grows;
62991 	__u64 ndts_res_failed;
62992 	__u64 ndts_lookups;
62993 	__u64 ndts_hits;
62994 	__u64 ndts_rcv_probes_mcast;
62995 	__u64 ndts_rcv_probes_ucast;
62996 	__u64 ndts_periodic_gc_runs;
62997 	__u64 ndts_forced_gc_runs;
62998 	__u64 ndts_table_fulls;
62999 };
63000 
63001 enum {
63002 	NDTPA_UNSPEC = 0,
63003 	NDTPA_IFINDEX = 1,
63004 	NDTPA_REFCNT = 2,
63005 	NDTPA_REACHABLE_TIME = 3,
63006 	NDTPA_BASE_REACHABLE_TIME = 4,
63007 	NDTPA_RETRANS_TIME = 5,
63008 	NDTPA_GC_STALETIME = 6,
63009 	NDTPA_DELAY_PROBE_TIME = 7,
63010 	NDTPA_QUEUE_LEN = 8,
63011 	NDTPA_APP_PROBES = 9,
63012 	NDTPA_UCAST_PROBES = 10,
63013 	NDTPA_MCAST_PROBES = 11,
63014 	NDTPA_ANYCAST_DELAY = 12,
63015 	NDTPA_PROXY_DELAY = 13,
63016 	NDTPA_PROXY_QLEN = 14,
63017 	NDTPA_LOCKTIME = 15,
63018 	NDTPA_QUEUE_LENBYTES = 16,
63019 	NDTPA_MCAST_REPROBES = 17,
63020 	NDTPA_PAD = 18,
63021 	NDTPA_INTERVAL_PROBE_TIME_MS = 19,
63022 	__NDTPA_MAX = 20,
63023 };
63024 
63025 struct ndtmsg {
63026 	__u8 ndtm_family;
63027 	__u8 ndtm_pad1;
63028 	__u16 ndtm_pad2;
63029 };
63030 
63031 struct ndt_config {
63032 	__u16 ndtc_key_len;
63033 	__u16 ndtc_entry_size;
63034 	__u32 ndtc_entries;
63035 	__u32 ndtc_last_flush;
63036 	__u32 ndtc_last_rand;
63037 	__u32 ndtc_hash_rnd;
63038 	__u32 ndtc_hash_mask;
63039 	__u32 ndtc_hash_chain_gc;
63040 	__u32 ndtc_proxy_qlen;
63041 };
63042 
63043 enum {
63044 	NDTA_UNSPEC = 0,
63045 	NDTA_NAME = 1,
63046 	NDTA_THRESH1 = 2,
63047 	NDTA_THRESH2 = 3,
63048 	NDTA_THRESH3 = 4,
63049 	NDTA_CONFIG = 5,
63050 	NDTA_PARMS = 6,
63051 	NDTA_STATS = 7,
63052 	NDTA_GC_INTERVAL = 8,
63053 	NDTA_PAD = 9,
63054 	__NDTA_MAX = 10,
63055 };
63056 
63057 struct in_ifaddr;
63058 
63059 struct ip_mc_list;
63060 
63061 struct in_device {
63062 	struct net_device *dev;
63063 	netdevice_tracker dev_tracker;
63064 	refcount_t refcnt;
63065 	int dead;
63066 	struct in_ifaddr *ifa_list;
63067 	struct ip_mc_list *mc_list;
63068 	struct ip_mc_list **mc_hash;
63069 	int mc_count;
63070 	spinlock_t mc_tomb_lock;
63071 	struct ip_mc_list *mc_tomb;
63072 	long unsigned int mr_v1_seen;
63073 	long unsigned int mr_v2_seen;
63074 	long unsigned int mr_maxdelay;
63075 	long unsigned int mr_qi;
63076 	long unsigned int mr_qri;
63077 	unsigned char mr_qrv;
63078 	unsigned char mr_gq_running;
63079 	u32 mr_ifc_count;
63080 	struct timer_list mr_gq_timer;
63081 	struct timer_list mr_ifc_timer;
63082 	struct neigh_parms *arp_parms;
63083 	struct ipv4_devconf cnf;
63084 	struct callback_head callback_head;
63085 };
63086 
63087 enum {
63088 	RTM_BASE = 16,
63089 	RTM_NEWLINK = 16,
63090 	RTM_DELLINK = 17,
63091 	RTM_GETLINK = 18,
63092 	RTM_SETLINK = 19,
63093 	RTM_NEWADDR = 20,
63094 	RTM_DELADDR = 21,
63095 	RTM_GETADDR = 22,
63096 	RTM_NEWROUTE = 24,
63097 	RTM_DELROUTE = 25,
63098 	RTM_GETROUTE = 26,
63099 	RTM_NEWNEIGH = 28,
63100 	RTM_DELNEIGH = 29,
63101 	RTM_GETNEIGH = 30,
63102 	RTM_NEWRULE = 32,
63103 	RTM_DELRULE = 33,
63104 	RTM_GETRULE = 34,
63105 	RTM_NEWQDISC = 36,
63106 	RTM_DELQDISC = 37,
63107 	RTM_GETQDISC = 38,
63108 	RTM_NEWTCLASS = 40,
63109 	RTM_DELTCLASS = 41,
63110 	RTM_GETTCLASS = 42,
63111 	RTM_NEWTFILTER = 44,
63112 	RTM_DELTFILTER = 45,
63113 	RTM_GETTFILTER = 46,
63114 	RTM_NEWACTION = 48,
63115 	RTM_DELACTION = 49,
63116 	RTM_GETACTION = 50,
63117 	RTM_NEWPREFIX = 52,
63118 	RTM_GETMULTICAST = 58,
63119 	RTM_GETANYCAST = 62,
63120 	RTM_NEWNEIGHTBL = 64,
63121 	RTM_GETNEIGHTBL = 66,
63122 	RTM_SETNEIGHTBL = 67,
63123 	RTM_NEWNDUSEROPT = 68,
63124 	RTM_NEWADDRLABEL = 72,
63125 	RTM_DELADDRLABEL = 73,
63126 	RTM_GETADDRLABEL = 74,
63127 	RTM_GETDCB = 78,
63128 	RTM_SETDCB = 79,
63129 	RTM_NEWNETCONF = 80,
63130 	RTM_DELNETCONF = 81,
63131 	RTM_GETNETCONF = 82,
63132 	RTM_NEWMDB = 84,
63133 	RTM_DELMDB = 85,
63134 	RTM_GETMDB = 86,
63135 	RTM_NEWNSID = 88,
63136 	RTM_DELNSID = 89,
63137 	RTM_GETNSID = 90,
63138 	RTM_NEWSTATS = 92,
63139 	RTM_GETSTATS = 94,
63140 	RTM_SETSTATS = 95,
63141 	RTM_NEWCACHEREPORT = 96,
63142 	RTM_NEWCHAIN = 100,
63143 	RTM_DELCHAIN = 101,
63144 	RTM_GETCHAIN = 102,
63145 	RTM_NEWNEXTHOP = 104,
63146 	RTM_DELNEXTHOP = 105,
63147 	RTM_GETNEXTHOP = 106,
63148 	RTM_NEWLINKPROP = 108,
63149 	RTM_DELLINKPROP = 109,
63150 	RTM_GETLINKPROP = 110,
63151 	RTM_NEWVLAN = 112,
63152 	RTM_DELVLAN = 113,
63153 	RTM_GETVLAN = 114,
63154 	RTM_NEWNEXTHOPBUCKET = 116,
63155 	RTM_DELNEXTHOPBUCKET = 117,
63156 	RTM_GETNEXTHOPBUCKET = 118,
63157 	RTM_NEWTUNNEL = 120,
63158 	RTM_DELTUNNEL = 121,
63159 	RTM_GETTUNNEL = 122,
63160 	__RTM_MAX = 123,
63161 };
63162 
63163 enum {
63164 	RTN_UNSPEC = 0,
63165 	RTN_UNICAST = 1,
63166 	RTN_LOCAL = 2,
63167 	RTN_BROADCAST = 3,
63168 	RTN_ANYCAST = 4,
63169 	RTN_MULTICAST = 5,
63170 	RTN_BLACKHOLE = 6,
63171 	RTN_UNREACHABLE = 7,
63172 	RTN_PROHIBIT = 8,
63173 	RTN_THROW = 9,
63174 	RTN_NAT = 10,
63175 	RTN_XRESOLVE = 11,
63176 	__RTN_MAX = 12,
63177 };
63178 
63179 struct rtgenmsg {
63180 	unsigned char rtgen_family;
63181 };
63182 
63183 enum rtnetlink_groups {
63184 	RTNLGRP_NONE = 0,
63185 	RTNLGRP_LINK = 1,
63186 	RTNLGRP_NOTIFY = 2,
63187 	RTNLGRP_NEIGH = 3,
63188 	RTNLGRP_TC = 4,
63189 	RTNLGRP_IPV4_IFADDR = 5,
63190 	RTNLGRP_IPV4_MROUTE = 6,
63191 	RTNLGRP_IPV4_ROUTE = 7,
63192 	RTNLGRP_IPV4_RULE = 8,
63193 	RTNLGRP_IPV6_IFADDR = 9,
63194 	RTNLGRP_IPV6_MROUTE = 10,
63195 	RTNLGRP_IPV6_ROUTE = 11,
63196 	RTNLGRP_IPV6_IFINFO = 12,
63197 	RTNLGRP_DECnet_IFADDR = 13,
63198 	RTNLGRP_NOP2 = 14,
63199 	RTNLGRP_DECnet_ROUTE = 15,
63200 	RTNLGRP_DECnet_RULE = 16,
63201 	RTNLGRP_NOP4 = 17,
63202 	RTNLGRP_IPV6_PREFIX = 18,
63203 	RTNLGRP_IPV6_RULE = 19,
63204 	RTNLGRP_ND_USEROPT = 20,
63205 	RTNLGRP_PHONET_IFADDR = 21,
63206 	RTNLGRP_PHONET_ROUTE = 22,
63207 	RTNLGRP_DCB = 23,
63208 	RTNLGRP_IPV4_NETCONF = 24,
63209 	RTNLGRP_IPV6_NETCONF = 25,
63210 	RTNLGRP_MDB = 26,
63211 	RTNLGRP_MPLS_ROUTE = 27,
63212 	RTNLGRP_NSID = 28,
63213 	RTNLGRP_MPLS_NETCONF = 29,
63214 	RTNLGRP_IPV4_MROUTE_R = 30,
63215 	RTNLGRP_IPV6_MROUTE_R = 31,
63216 	RTNLGRP_NEXTHOP = 32,
63217 	RTNLGRP_BRVLAN = 33,
63218 	RTNLGRP_MCTP_IFADDR = 34,
63219 	RTNLGRP_TUNNEL = 35,
63220 	RTNLGRP_STATS = 36,
63221 	__RTNLGRP_MAX = 37,
63222 };
63223 
63224 enum {
63225 	NLA_UNSPEC = 0,
63226 	NLA_U8 = 1,
63227 	NLA_U16 = 2,
63228 	NLA_U32 = 3,
63229 	NLA_U64 = 4,
63230 	NLA_STRING = 5,
63231 	NLA_FLAG = 6,
63232 	NLA_MSECS = 7,
63233 	NLA_NESTED = 8,
63234 	NLA_NESTED_ARRAY = 9,
63235 	NLA_NUL_STRING = 10,
63236 	NLA_BINARY = 11,
63237 	NLA_S8 = 12,
63238 	NLA_S16 = 13,
63239 	NLA_S32 = 14,
63240 	NLA_S64 = 15,
63241 	NLA_BITFIELD32 = 16,
63242 	NLA_REJECT = 17,
63243 	NLA_BE16 = 18,
63244 	NLA_BE32 = 19,
63245 	__NLA_TYPE_MAX = 20,
63246 };
63247 
63248 enum nla_policy_validation {
63249 	NLA_VALIDATE_NONE = 0,
63250 	NLA_VALIDATE_RANGE = 1,
63251 	NLA_VALIDATE_RANGE_WARN_TOO_LONG = 2,
63252 	NLA_VALIDATE_MIN = 3,
63253 	NLA_VALIDATE_MAX = 4,
63254 	NLA_VALIDATE_MASK = 5,
63255 	NLA_VALIDATE_RANGE_PTR = 6,
63256 	NLA_VALIDATE_FUNCTION = 7,
63257 };
63258 
63259 enum netlink_validation {
63260 	NL_VALIDATE_LIBERAL = 0,
63261 	NL_VALIDATE_TRAILING = 1,
63262 	NL_VALIDATE_MAXTYPE = 2,
63263 	NL_VALIDATE_UNSPEC = 4,
63264 	NL_VALIDATE_STRICT_ATTRS = 8,
63265 	NL_VALIDATE_NESTED = 16,
63266 };
63267 
63268 typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, struct netlink_ext_ack *);
63269 
63270 typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *);
63271 
63272 enum {
63273 	NEIGH_ARP_TABLE = 0,
63274 	NEIGH_ND_TABLE = 1,
63275 	NEIGH_DN_TABLE = 2,
63276 	NEIGH_NR_TABLES = 3,
63277 	NEIGH_LINK_TABLE = 3,
63278 };
63279 
63280 struct neigh_seq_state {
63281 	struct seq_net_private p;
63282 	struct neigh_table *tbl;
63283 	struct neigh_hash_table *nht;
63284 	void * (*neigh_sub_iter)(struct neigh_seq_state *, struct neighbour *, loff_t *);
63285 	unsigned int bucket;
63286 	unsigned int flags;
63287 };
63288 
63289 struct neighbour_cb {
63290 	long unsigned int sched_next;
63291 	unsigned int flags;
63292 };
63293 
63294 enum netevent_notif_type {
63295 	NETEVENT_NEIGH_UPDATE = 1,
63296 	NETEVENT_REDIRECT = 2,
63297 	NETEVENT_DELAY_PROBE_TIME_UPDATE = 3,
63298 	NETEVENT_IPV4_MPATH_HASH_UPDATE = 4,
63299 	NETEVENT_IPV6_MPATH_HASH_UPDATE = 5,
63300 	NETEVENT_IPV4_FWD_UPDATE_PRIORITY_UPDATE = 6,
63301 };
63302 
63303 enum {
63304 	IPV4_DEVCONF_FORWARDING = 1,
63305 	IPV4_DEVCONF_MC_FORWARDING = 2,
63306 	IPV4_DEVCONF_PROXY_ARP = 3,
63307 	IPV4_DEVCONF_ACCEPT_REDIRECTS = 4,
63308 	IPV4_DEVCONF_SECURE_REDIRECTS = 5,
63309 	IPV4_DEVCONF_SEND_REDIRECTS = 6,
63310 	IPV4_DEVCONF_SHARED_MEDIA = 7,
63311 	IPV4_DEVCONF_RP_FILTER = 8,
63312 	IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE = 9,
63313 	IPV4_DEVCONF_BOOTP_RELAY = 10,
63314 	IPV4_DEVCONF_LOG_MARTIANS = 11,
63315 	IPV4_DEVCONF_TAG = 12,
63316 	IPV4_DEVCONF_ARPFILTER = 13,
63317 	IPV4_DEVCONF_MEDIUM_ID = 14,
63318 	IPV4_DEVCONF_NOXFRM = 15,
63319 	IPV4_DEVCONF_NOPOLICY = 16,
63320 	IPV4_DEVCONF_FORCE_IGMP_VERSION = 17,
63321 	IPV4_DEVCONF_ARP_ANNOUNCE = 18,
63322 	IPV4_DEVCONF_ARP_IGNORE = 19,
63323 	IPV4_DEVCONF_PROMOTE_SECONDARIES = 20,
63324 	IPV4_DEVCONF_ARP_ACCEPT = 21,
63325 	IPV4_DEVCONF_ARP_NOTIFY = 22,
63326 	IPV4_DEVCONF_ACCEPT_LOCAL = 23,
63327 	IPV4_DEVCONF_SRC_VMARK = 24,
63328 	IPV4_DEVCONF_PROXY_ARP_PVLAN = 25,
63329 	IPV4_DEVCONF_ROUTE_LOCALNET = 26,
63330 	IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL = 27,
63331 	IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL = 28,
63332 	IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 29,
63333 	IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 30,
63334 	IPV4_DEVCONF_DROP_GRATUITOUS_ARP = 31,
63335 	IPV4_DEVCONF_BC_FORWARDING = 32,
63336 	IPV4_DEVCONF_ARP_EVICT_NOCARRIER = 33,
63337 	__IPV4_DEVCONF_MAX = 34,
63338 };
63339 
63340 struct in_ifaddr {
63341 	struct hlist_node hash;
63342 	struct in_ifaddr *ifa_next;
63343 	struct in_device *ifa_dev;
63344 	struct callback_head callback_head;
63345 	__be32 ifa_local;
63346 	__be32 ifa_address;
63347 	__be32 ifa_mask;
63348 	__u32 ifa_rt_priority;
63349 	__be32 ifa_broadcast;
63350 	unsigned char ifa_scope;
63351 	unsigned char ifa_prefixlen;
63352 	unsigned char ifa_proto;
63353 	__u32 ifa_flags;
63354 	char ifa_label[16];
63355 	__u32 ifa_valid_lft;
63356 	__u32 ifa_preferred_lft;
63357 	long unsigned int ifa_cstamp;
63358 	long unsigned int ifa_tstamp;
63359 };
63360 
63361 struct neigh_dump_filter {
63362 	int master_idx;
63363 	int dev_idx;
63364 };
63365 
63366 struct neigh_sysctl_table {
63367 	struct ctl_table_header *sysctl_header;
63368 	struct ctl_table neigh_vars[22];
63369 };
63370 
63371 struct netlink_kernel_cfg {
63372 	unsigned int groups;
63373 	unsigned int flags;
63374 	void (*input)(struct sk_buff *);
63375 	struct mutex *cb_mutex;
63376 	int (*bind)(struct net *, int);
63377 	void (*unbind)(struct net *, int);
63378 	bool (*compare)(struct net *, struct sock *);
63379 };
63380 
63381 struct pcpu_gen_cookie {
63382 	local_t nesting;
63383 	u64 last;
63384 };
63385 
63386 struct gen_cookie {
63387 	struct pcpu_gen_cookie *local;
63388 	long: 64;
63389 	long: 64;
63390 	long: 64;
63391 	long: 64;
63392 	long: 64;
63393 	long: 64;
63394 	long: 64;
63395 	atomic64_t forward_last;
63396 	atomic64_t reverse_last;
63397 	long: 64;
63398 	long: 64;
63399 	long: 64;
63400 	long: 64;
63401 	long: 64;
63402 	long: 64;
63403 };
63404 
63405 enum {
63406 	INET_DIAG_REQ_NONE = 0,
63407 	INET_DIAG_REQ_BYTECODE = 1,
63408 	INET_DIAG_REQ_SK_BPF_STORAGES = 2,
63409 	INET_DIAG_REQ_PROTOCOL = 3,
63410 	__INET_DIAG_REQ_MAX = 4,
63411 };
63412 
63413 struct sock_diag_req {
63414 	__u8 sdiag_family;
63415 	__u8 sdiag_protocol;
63416 };
63417 
63418 struct sock_diag_handler {
63419 	__u8 family;
63420 	int (*dump)(struct sk_buff *, struct nlmsghdr *);
63421 	int (*get_info)(struct sk_buff *, struct sock *);
63422 	int (*destroy)(struct sk_buff *, struct nlmsghdr *);
63423 };
63424 
63425 struct broadcast_sk {
63426 	struct sock *sk;
63427 	struct work_struct work;
63428 };
63429 
63430 struct bpf_flow_keys {
63431 	__u16 nhoff;
63432 	__u16 thoff;
63433 	__u16 addr_proto;
63434 	__u8 is_frag;
63435 	__u8 is_first_frag;
63436 	__u8 is_encap;
63437 	__u8 ip_proto;
63438 	__be16 n_proto;
63439 	__be16 sport;
63440 	__be16 dport;
63441 	union {
63442 		struct {
63443 			__be32 ipv4_src;
63444 			__be32 ipv4_dst;
63445 		};
63446 		struct {
63447 			__u32 ipv6_src[4];
63448 			__u32 ipv6_dst[4];
63449 		};
63450 	};
63451 	__u32 flags;
63452 	__be32 flow_label;
63453 };
63454 
63455 struct bpf_sock {
63456 	__u32 bound_dev_if;
63457 	__u32 family;
63458 	__u32 type;
63459 	__u32 protocol;
63460 	__u32 mark;
63461 	__u32 priority;
63462 	__u32 src_ip4;
63463 	__u32 src_ip6[4];
63464 	__u32 src_port;
63465 	__be16 dst_port;
63466 	__u32 dst_ip4;
63467 	__u32 dst_ip6[4];
63468 	__u32 state;
63469 	__s32 rx_queue_mapping;
63470 };
63471 
63472 struct __sk_buff {
63473 	__u32 len;
63474 	__u32 pkt_type;
63475 	__u32 mark;
63476 	__u32 queue_mapping;
63477 	__u32 protocol;
63478 	__u32 vlan_present;
63479 	__u32 vlan_tci;
63480 	__u32 vlan_proto;
63481 	__u32 priority;
63482 	__u32 ingress_ifindex;
63483 	__u32 ifindex;
63484 	__u32 tc_index;
63485 	__u32 cb[5];
63486 	__u32 hash;
63487 	__u32 tc_classid;
63488 	__u32 data;
63489 	__u32 data_end;
63490 	__u32 napi_id;
63491 	__u32 family;
63492 	__u32 remote_ip4;
63493 	__u32 local_ip4;
63494 	__u32 remote_ip6[4];
63495 	__u32 local_ip6[4];
63496 	__u32 remote_port;
63497 	__u32 local_port;
63498 	__u32 data_meta;
63499 	union {
63500 		struct bpf_flow_keys *flow_keys;
63501 	};
63502 	__u64 tstamp;
63503 	__u32 wire_len;
63504 	__u32 gso_segs;
63505 	union {
63506 		struct bpf_sock *sk;
63507 	};
63508 	__u32 gso_size;
63509 	__u8 tstamp_type;
63510 	__u64 hwtstamp;
63511 };
63512 
63513 struct qdisc_skb_cb {
63514 	struct {
63515 		unsigned int pkt_len;
63516 		u16 slave_dev_queue_mapping;
63517 		u16 tc_classid;
63518 	};
63519 	unsigned char data[20];
63520 };
63521 
63522 struct flow_dissector_key_control {
63523 	u16 thoff;
63524 	u16 addr_type;
63525 	u32 flags;
63526 };
63527 
63528 struct flow_dissector_mpls_lse {
63529 	u32 mpls_ttl: 8;
63530 	u32 mpls_bos: 1;
63531 	u32 mpls_tc: 3;
63532 	u32 mpls_label: 20;
63533 };
63534 
63535 struct flow_dissector_key_mpls {
63536 	struct flow_dissector_mpls_lse ls[7];
63537 	u8 used_lses;
63538 };
63539 
63540 struct flow_dissector_key_enc_opts {
63541 	u8 data[255];
63542 	u8 len;
63543 	__be16 dst_opt_type;
63544 };
63545 
63546 struct flow_dissector_key_keyid {
63547 	__be32 keyid;
63548 };
63549 
63550 struct flow_dissector_key_ipv6_addrs {
63551 	struct in6_addr src;
63552 	struct in6_addr dst;
63553 };
63554 
63555 struct flow_dissector_key_arp {
63556 	__u32 sip;
63557 	__u32 tip;
63558 	__u8 op;
63559 	unsigned char sha[6];
63560 	unsigned char tha[6];
63561 };
63562 
63563 struct flow_dissector_key_ports_range {
63564 	union {
63565 		struct flow_dissector_key_ports tp;
63566 		struct {
63567 			struct flow_dissector_key_ports tp_min;
63568 			struct flow_dissector_key_ports tp_max;
63569 		};
63570 	};
63571 };
63572 
63573 struct flow_dissector_key_icmp {
63574 	struct {
63575 		u8 type;
63576 		u8 code;
63577 	};
63578 	u16 id;
63579 };
63580 
63581 struct flow_dissector_key_eth_addrs {
63582 	unsigned char dst[6];
63583 	unsigned char src[6];
63584 };
63585 
63586 struct flow_dissector_key_tcp {
63587 	__be16 flags;
63588 };
63589 
63590 struct flow_dissector_key_ip {
63591 	__u8 tos;
63592 	__u8 ttl;
63593 };
63594 
63595 struct flow_dissector_key_meta {
63596 	int ingress_ifindex;
63597 	u16 ingress_iftype;
63598 };
63599 
63600 struct flow_dissector_key_ct {
63601 	u16 ct_state;
63602 	u16 ct_zone;
63603 	u32 ct_mark;
63604 	u32 ct_labels[4];
63605 };
63606 
63607 struct flow_dissector_key_pppoe {
63608 	__be16 session_id;
63609 	__be16 ppp_proto;
63610 	__be16 type;
63611 };
63612 
63613 struct flow_dissector_key_l2tpv3 {
63614 	__be32 session_id;
63615 };
63616 
63617 struct flow_match_meta {
63618 	struct flow_dissector_key_meta *key;
63619 	struct flow_dissector_key_meta *mask;
63620 };
63621 
63622 struct flow_match_control {
63623 	struct flow_dissector_key_control *key;
63624 	struct flow_dissector_key_control *mask;
63625 };
63626 
63627 struct flow_match_eth_addrs {
63628 	struct flow_dissector_key_eth_addrs *key;
63629 	struct flow_dissector_key_eth_addrs *mask;
63630 };
63631 
63632 struct flow_match_arp {
63633 	struct flow_dissector_key_arp *key;
63634 	struct flow_dissector_key_arp *mask;
63635 };
63636 
63637 struct flow_match_ipv6_addrs {
63638 	struct flow_dissector_key_ipv6_addrs *key;
63639 	struct flow_dissector_key_ipv6_addrs *mask;
63640 };
63641 
63642 struct flow_match_ip {
63643 	struct flow_dissector_key_ip *key;
63644 	struct flow_dissector_key_ip *mask;
63645 };
63646 
63647 struct flow_match_ports_range {
63648 	struct flow_dissector_key_ports_range *key;
63649 	struct flow_dissector_key_ports_range *mask;
63650 };
63651 
63652 struct flow_match_icmp {
63653 	struct flow_dissector_key_icmp *key;
63654 	struct flow_dissector_key_icmp *mask;
63655 };
63656 
63657 struct flow_match_tcp {
63658 	struct flow_dissector_key_tcp *key;
63659 	struct flow_dissector_key_tcp *mask;
63660 };
63661 
63662 struct flow_match_mpls {
63663 	struct flow_dissector_key_mpls *key;
63664 	struct flow_dissector_key_mpls *mask;
63665 };
63666 
63667 struct flow_match_enc_keyid {
63668 	struct flow_dissector_key_keyid *key;
63669 	struct flow_dissector_key_keyid *mask;
63670 };
63671 
63672 struct flow_match_enc_opts {
63673 	struct flow_dissector_key_enc_opts *key;
63674 	struct flow_dissector_key_enc_opts *mask;
63675 };
63676 
63677 struct flow_match_ct {
63678 	struct flow_dissector_key_ct *key;
63679 	struct flow_dissector_key_ct *mask;
63680 };
63681 
63682 struct flow_match_pppoe {
63683 	struct flow_dissector_key_pppoe *key;
63684 	struct flow_dissector_key_pppoe *mask;
63685 };
63686 
63687 struct flow_match_l2tpv3 {
63688 	struct flow_dissector_key_l2tpv3 *key;
63689 	struct flow_dissector_key_l2tpv3 *mask;
63690 };
63691 
63692 enum flow_block_command {
63693 	FLOW_BLOCK_BIND = 0,
63694 	FLOW_BLOCK_UNBIND = 1,
63695 };
63696 
63697 enum flow_block_binder_type {
63698 	FLOW_BLOCK_BINDER_TYPE_UNSPEC = 0,
63699 	FLOW_BLOCK_BINDER_TYPE_CLSACT_INGRESS = 1,
63700 	FLOW_BLOCK_BINDER_TYPE_CLSACT_EGRESS = 2,
63701 	FLOW_BLOCK_BINDER_TYPE_RED_EARLY_DROP = 3,
63702 	FLOW_BLOCK_BINDER_TYPE_RED_MARK = 4,
63703 };
63704 
63705 struct flow_block_offload {
63706 	enum flow_block_command command;
63707 	enum flow_block_binder_type binder_type;
63708 	bool block_shared;
63709 	bool unlocked_driver_cb;
63710 	struct net *net;
63711 	struct flow_block *block;
63712 	struct list_head cb_list;
63713 	struct list_head *driver_block_list;
63714 	struct netlink_ext_ack *extack;
63715 	struct Qdisc *sch;
63716 	struct list_head *cb_list_head;
63717 };
63718 
63719 struct flow_block_cb;
63720 
63721 struct flow_block_indr {
63722 	struct list_head list;
63723 	struct net_device *dev;
63724 	struct Qdisc *sch;
63725 	enum flow_block_binder_type binder_type;
63726 	void *data;
63727 	void *cb_priv;
63728 	void (*cleanup)(struct flow_block_cb *);
63729 };
63730 
63731 struct flow_block_cb {
63732 	struct list_head driver_list;
63733 	struct list_head list;
63734 	flow_setup_cb_t *cb;
63735 	void *cb_ident;
63736 	void *cb_priv;
63737 	void (*release)(void *);
63738 	struct flow_block_indr indr;
63739 	unsigned int refcnt;
63740 };
63741 
63742 enum offload_act_command {
63743 	FLOW_ACT_REPLACE = 0,
63744 	FLOW_ACT_DESTROY = 1,
63745 	FLOW_ACT_STATS = 2,
63746 };
63747 
63748 struct flow_offload_action {
63749 	struct netlink_ext_ack *extack;
63750 	enum offload_act_command command;
63751 	enum flow_action_id id;
63752 	u32 index;
63753 	struct flow_stats stats;
63754 	struct flow_action action;
63755 };
63756 
63757 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 *));
63758 
63759 struct flow_indr_dev {
63760 	struct list_head list;
63761 	flow_indr_block_bind_cb_t *cb;
63762 	void *cb_priv;
63763 	refcount_t refcnt;
63764 };
63765 
63766 struct flow_indir_dev_info {
63767 	void *data;
63768 	struct net_device *dev;
63769 	struct Qdisc *sch;
63770 	enum tc_setup_type type;
63771 	void (*cleanup)(struct flow_block_cb *);
63772 	struct list_head list;
63773 	enum flow_block_command command;
63774 	enum flow_block_binder_type binder_type;
63775 	struct list_head *cb_list;
63776 };
63777 
63778 struct libipw_device;
63779 
63780 struct iw_spy_data;
63781 
63782 struct iw_public_data {
63783 	struct iw_spy_data *spy_data;
63784 	struct libipw_device *libipw;
63785 };
63786 
63787 struct packet_type {
63788 	__be16 type;
63789 	bool ignore_outgoing;
63790 	struct net_device *dev;
63791 	netdevice_tracker dev_tracker;
63792 	int (*func)(struct sk_buff *, struct net_device *, struct packet_type *, struct net_device *);
63793 	void (*list_func)(struct list_head *, struct packet_type *, struct net_device *);
63794 	bool (*id_match)(struct packet_type *, struct sock *);
63795 	struct net *af_packet_net;
63796 	void *af_packet_priv;
63797 	struct list_head list;
63798 };
63799 
63800 struct iw_param {
63801 	__s32 value;
63802 	__u8 fixed;
63803 	__u8 disabled;
63804 	__u16 flags;
63805 };
63806 
63807 struct iw_point {
63808 	void *pointer;
63809 	__u16 length;
63810 	__u16 flags;
63811 };
63812 
63813 struct iw_freq {
63814 	__s32 m;
63815 	__s16 e;
63816 	__u8 i;
63817 	__u8 flags;
63818 };
63819 
63820 struct iw_quality {
63821 	__u8 qual;
63822 	__u8 level;
63823 	__u8 noise;
63824 	__u8 updated;
63825 };
63826 
63827 struct iw_discarded {
63828 	__u32 nwid;
63829 	__u32 code;
63830 	__u32 fragment;
63831 	__u32 retries;
63832 	__u32 misc;
63833 };
63834 
63835 struct iw_missed {
63836 	__u32 beacon;
63837 };
63838 
63839 struct iw_statistics {
63840 	__u16 status;
63841 	struct iw_quality qual;
63842 	struct iw_discarded discard;
63843 	struct iw_missed miss;
63844 };
63845 
63846 union iwreq_data {
63847 	char name[16];
63848 	struct iw_point essid;
63849 	struct iw_param nwid;
63850 	struct iw_freq freq;
63851 	struct iw_param sens;
63852 	struct iw_param bitrate;
63853 	struct iw_param txpower;
63854 	struct iw_param rts;
63855 	struct iw_param frag;
63856 	__u32 mode;
63857 	struct iw_param retry;
63858 	struct iw_point encoding;
63859 	struct iw_param power;
63860 	struct iw_quality qual;
63861 	struct sockaddr ap_addr;
63862 	struct sockaddr addr;
63863 	struct iw_param param;
63864 	struct iw_point data;
63865 };
63866 
63867 struct iw_priv_args {
63868 	__u32 cmd;
63869 	__u16 set_args;
63870 	__u16 get_args;
63871 	char name[16];
63872 };
63873 
63874 struct iw_request_info {
63875 	__u16 cmd;
63876 	__u16 flags;
63877 };
63878 
63879 struct iw_spy_data {
63880 	int spy_number;
63881 	u_char spy_address[48];
63882 	struct iw_quality spy_stat[8];
63883 	struct iw_quality spy_thr_low;
63884 	struct iw_quality spy_thr_high;
63885 	u_char spy_thr_under[8];
63886 };
63887 
63888 struct udp_hslot;
63889 
63890 struct udp_table {
63891 	struct udp_hslot *hash;
63892 	struct udp_hslot *hash2;
63893 	unsigned int mask;
63894 	unsigned int log;
63895 };
63896 
63897 struct udphdr {
63898 	__be16 source;
63899 	__be16 dest;
63900 	__be16 len;
63901 	__sum16 check;
63902 };
63903 
63904 struct udp_hslot {
63905 	struct hlist_head head;
63906 	int count;
63907 	spinlock_t lock;
63908 };
63909 
63910 struct net_packet_attrs {
63911 	const unsigned char *src;
63912 	const unsigned char *dst;
63913 	u32 ip_src;
63914 	u32 ip_dst;
63915 	bool tcp;
63916 	u16 sport;
63917 	u16 dport;
63918 	int timeout;
63919 	int size;
63920 	int max_size;
63921 	u8 id;
63922 	u16 queue_mapping;
63923 };
63924 
63925 struct net_test_priv {
63926 	struct net_packet_attrs *packet;
63927 	struct packet_type pt;
63928 	struct completion comp;
63929 	int double_vlan;
63930 	int vlan_id;
63931 	int ok;
63932 };
63933 
63934 struct netsfhdr {
63935 	__be32 version;
63936 	__be64 magic;
63937 	u8 id;
63938 } __attribute__((packed));
63939 
63940 struct net_test {
63941 	char name[32];
63942 	int (*fn)(struct net_device *);
63943 };
63944 
63945 struct in_addr {
63946 	__be32 s_addr;
63947 };
63948 
63949 struct dst_cache_pcpu;
63950 
63951 struct dst_cache {
63952 	struct dst_cache_pcpu *cache;
63953 	long unsigned int reset_ts;
63954 };
63955 
63956 struct dst_cache_pcpu {
63957 	long unsigned int refresh_ts;
63958 	struct dst_entry *dst;
63959 	u32 cookie;
63960 	union {
63961 		struct in_addr in_saddr;
63962 		struct in6_addr in6_saddr;
63963 	};
63964 };
63965 
63966 enum {
63967 	BPF_F_INGRESS = 1,
63968 };
63969 
63970 enum sk_action {
63971 	SK_DROP = 0,
63972 	SK_PASS = 1,
63973 };
63974 
63975 enum {
63976 	BPF_SOCK_OPS_VOID = 0,
63977 	BPF_SOCK_OPS_TIMEOUT_INIT = 1,
63978 	BPF_SOCK_OPS_RWND_INIT = 2,
63979 	BPF_SOCK_OPS_TCP_CONNECT_CB = 3,
63980 	BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 4,
63981 	BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 5,
63982 	BPF_SOCK_OPS_NEEDS_ECN = 6,
63983 	BPF_SOCK_OPS_BASE_RTT = 7,
63984 	BPF_SOCK_OPS_RTO_CB = 8,
63985 	BPF_SOCK_OPS_RETRANS_CB = 9,
63986 	BPF_SOCK_OPS_STATE_CB = 10,
63987 	BPF_SOCK_OPS_TCP_LISTEN_CB = 11,
63988 	BPF_SOCK_OPS_RTT_CB = 12,
63989 	BPF_SOCK_OPS_PARSE_HDR_OPT_CB = 13,
63990 	BPF_SOCK_OPS_HDR_OPT_LEN_CB = 14,
63991 	BPF_SOCK_OPS_WRITE_HDR_OPT_CB = 15,
63992 };
63993 
63994 enum {
63995 	BTF_SOCK_TYPE_INET = 0,
63996 	BTF_SOCK_TYPE_INET_CONN = 1,
63997 	BTF_SOCK_TYPE_INET_REQ = 2,
63998 	BTF_SOCK_TYPE_INET_TW = 3,
63999 	BTF_SOCK_TYPE_REQ = 4,
64000 	BTF_SOCK_TYPE_SOCK = 5,
64001 	BTF_SOCK_TYPE_SOCK_COMMON = 6,
64002 	BTF_SOCK_TYPE_TCP = 7,
64003 	BTF_SOCK_TYPE_TCP_REQ = 8,
64004 	BTF_SOCK_TYPE_TCP_TW = 9,
64005 	BTF_SOCK_TYPE_TCP6 = 10,
64006 	BTF_SOCK_TYPE_UDP = 11,
64007 	BTF_SOCK_TYPE_UDP6 = 12,
64008 	BTF_SOCK_TYPE_UNIX = 13,
64009 	BTF_SOCK_TYPE_MPTCP = 14,
64010 	BTF_SOCK_TYPE_SOCKET = 15,
64011 	MAX_BTF_SOCK_TYPE = 16,
64012 };
64013 
64014 struct bpf_sock_ops_kern {
64015 	struct sock *sk;
64016 	union {
64017 		u32 args[4];
64018 		u32 reply;
64019 		u32 replylong[4];
64020 	};
64021 	struct sk_buff *syn_skb;
64022 	struct sk_buff *skb;
64023 	void *skb_data_end;
64024 	u8 op;
64025 	u8 is_fullsock;
64026 	u8 remaining_opt_len;
64027 	u64 temp;
64028 };
64029 
64030 struct sk_psock_progs {
64031 	struct bpf_prog *msg_parser;
64032 	struct bpf_prog *stream_parser;
64033 	struct bpf_prog *stream_verdict;
64034 	struct bpf_prog *skb_verdict;
64035 };
64036 
64037 struct strp_stats {
64038 	long long unsigned int msgs;
64039 	long long unsigned int bytes;
64040 	unsigned int mem_fail;
64041 	unsigned int need_more_hdr;
64042 	unsigned int msg_too_big;
64043 	unsigned int msg_timeouts;
64044 	unsigned int bad_hdr_len;
64045 };
64046 
64047 struct strparser;
64048 
64049 struct strp_callbacks {
64050 	int (*parse_msg)(struct strparser *, struct sk_buff *);
64051 	void (*rcv_msg)(struct strparser *, struct sk_buff *);
64052 	int (*read_sock_done)(struct strparser *, int);
64053 	void (*abort_parser)(struct strparser *, int);
64054 	void (*lock)(struct strparser *);
64055 	void (*unlock)(struct strparser *);
64056 };
64057 
64058 struct strparser {
64059 	struct sock *sk;
64060 	u32 stopped: 1;
64061 	u32 paused: 1;
64062 	u32 aborted: 1;
64063 	u32 interrupted: 1;
64064 	u32 unrecov_intr: 1;
64065 	struct sk_buff **skb_nextp;
64066 	struct sk_buff *skb_head;
64067 	unsigned int need_bytes;
64068 	struct delayed_work msg_timer_work;
64069 	struct work_struct work;
64070 	struct strp_stats stats;
64071 	struct strp_callbacks cb;
64072 };
64073 
64074 struct sk_psock_work_state {
64075 	struct sk_buff *skb;
64076 	u32 len;
64077 	u32 off;
64078 };
64079 
64080 struct sk_msg;
64081 
64082 struct sk_psock {
64083 	struct sock *sk;
64084 	struct sock *sk_redir;
64085 	u32 apply_bytes;
64086 	u32 cork_bytes;
64087 	u32 eval;
64088 	bool redir_ingress;
64089 	struct sk_msg *cork;
64090 	struct sk_psock_progs progs;
64091 	struct strparser strp;
64092 	struct sk_buff_head ingress_skb;
64093 	struct list_head ingress_msg;
64094 	spinlock_t ingress_lock;
64095 	long unsigned int state;
64096 	struct list_head link;
64097 	spinlock_t link_lock;
64098 	refcount_t refcnt;
64099 	void (*saved_unhash)(struct sock *);
64100 	void (*saved_destroy)(struct sock *);
64101 	void (*saved_close)(struct sock *, long int);
64102 	void (*saved_write_space)(struct sock *);
64103 	void (*saved_data_ready)(struct sock *);
64104 	int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool);
64105 	struct proto *sk_proto;
64106 	struct mutex work_mutex;
64107 	struct sk_psock_work_state work_state;
64108 	struct work_struct work;
64109 	struct rcu_work rwork;
64110 };
64111 
64112 struct sk_msg_sg {
64113 	u32 start;
64114 	u32 curr;
64115 	u32 end;
64116 	u32 size;
64117 	u32 copybreak;
64118 	long unsigned int copy[1];
64119 	struct scatterlist data[18];
64120 };
64121 
64122 struct sk_msg {
64123 	struct sk_msg_sg sg;
64124 	void *data;
64125 	void *data_end;
64126 	u32 apply_bytes;
64127 	u32 cork_bytes;
64128 	u32 flags;
64129 	struct sk_buff *skb;
64130 	struct sock *sk_redir;
64131 	struct sock *sk;
64132 	struct list_head list;
64133 };
64134 
64135 struct sk_psock_link {
64136 	struct list_head list;
64137 	struct bpf_map *map;
64138 	void *link_raw;
64139 };
64140 
64141 struct bpf_stab {
64142 	struct bpf_map map;
64143 	struct sock **sks;
64144 	struct sk_psock_progs progs;
64145 	raw_spinlock_t lock;
64146 	long: 32;
64147 	long: 64;
64148 	long: 64;
64149 };
64150 
64151 typedef u64 (*btf_bpf_sock_map_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64);
64152 
64153 typedef u64 (*btf_bpf_sk_redirect_map)(struct sk_buff *, struct bpf_map *, u32, u64);
64154 
64155 typedef u64 (*btf_bpf_msg_redirect_map)(struct sk_msg *, struct bpf_map *, u32, u64);
64156 
64157 struct sock_map_seq_info {
64158 	struct bpf_map *map;
64159 	struct sock *sk;
64160 	u32 index;
64161 };
64162 
64163 struct bpf_iter__sockmap {
64164 	union {
64165 		struct bpf_iter_meta *meta;
64166 	};
64167 	union {
64168 		struct bpf_map *map;
64169 	};
64170 	union {
64171 		void *key;
64172 	};
64173 	union {
64174 		struct sock *sk;
64175 	};
64176 };
64177 
64178 struct bpf_shtab_elem {
64179 	struct callback_head rcu;
64180 	u32 hash;
64181 	struct sock *sk;
64182 	struct hlist_node node;
64183 	u8 key[0];
64184 };
64185 
64186 struct bpf_shtab_bucket {
64187 	struct hlist_head head;
64188 	raw_spinlock_t lock;
64189 };
64190 
64191 struct bpf_shtab {
64192 	struct bpf_map map;
64193 	struct bpf_shtab_bucket *buckets;
64194 	u32 buckets_num;
64195 	u32 elem_size;
64196 	struct sk_psock_progs progs;
64197 	atomic_t count;
64198 	long: 32;
64199 	long: 64;
64200 };
64201 
64202 typedef u64 (*btf_bpf_sock_hash_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64);
64203 
64204 typedef u64 (*btf_bpf_sk_redirect_hash)(struct sk_buff *, struct bpf_map *, void *, u64);
64205 
64206 typedef u64 (*btf_bpf_msg_redirect_hash)(struct sk_msg *, struct bpf_map *, void *, u64);
64207 
64208 struct sock_hash_seq_info {
64209 	struct bpf_map *map;
64210 	struct bpf_shtab *htab;
64211 	u32 bucket_id;
64212 };
64213 
64214 struct flow_keys_basic {
64215 	struct flow_dissector_key_control control;
64216 	struct flow_dissector_key_basic basic;
64217 };
64218 
64219 enum devlink_port_type {
64220 	DEVLINK_PORT_TYPE_NOTSET = 0,
64221 	DEVLINK_PORT_TYPE_AUTO = 1,
64222 	DEVLINK_PORT_TYPE_ETH = 2,
64223 	DEVLINK_PORT_TYPE_IB = 3,
64224 };
64225 
64226 enum devlink_port_flavour {
64227 	DEVLINK_PORT_FLAVOUR_PHYSICAL = 0,
64228 	DEVLINK_PORT_FLAVOUR_CPU = 1,
64229 	DEVLINK_PORT_FLAVOUR_DSA = 2,
64230 	DEVLINK_PORT_FLAVOUR_PCI_PF = 3,
64231 	DEVLINK_PORT_FLAVOUR_PCI_VF = 4,
64232 	DEVLINK_PORT_FLAVOUR_VIRTUAL = 5,
64233 	DEVLINK_PORT_FLAVOUR_UNUSED = 6,
64234 	DEVLINK_PORT_FLAVOUR_PCI_SF = 7,
64235 };
64236 
64237 struct devlink_port_phys_attrs {
64238 	u32 port_number;
64239 	u32 split_subport_number;
64240 };
64241 
64242 struct devlink_port_pci_pf_attrs {
64243 	u32 controller;
64244 	u16 pf;
64245 	u8 external: 1;
64246 };
64247 
64248 struct devlink_port_pci_vf_attrs {
64249 	u32 controller;
64250 	u16 pf;
64251 	u16 vf;
64252 	u8 external: 1;
64253 };
64254 
64255 struct devlink_port_pci_sf_attrs {
64256 	u32 controller;
64257 	u32 sf;
64258 	u16 pf;
64259 	u8 external: 1;
64260 };
64261 
64262 struct devlink_port_attrs {
64263 	u8 split: 1;
64264 	u8 splittable: 1;
64265 	u32 lanes;
64266 	enum devlink_port_flavour flavour;
64267 	struct netdev_phys_item_id switch_id;
64268 	union {
64269 		struct devlink_port_phys_attrs phys;
64270 		struct devlink_port_pci_pf_attrs pci_pf;
64271 		struct devlink_port_pci_vf_attrs pci_vf;
64272 		struct devlink_port_pci_sf_attrs pci_sf;
64273 	};
64274 };
64275 
64276 struct devlink;
64277 
64278 struct devlink_rate;
64279 
64280 struct devlink_linecard;
64281 
64282 struct devlink_port {
64283 	struct list_head list;
64284 	struct list_head region_list;
64285 	struct devlink *devlink;
64286 	unsigned int index;
64287 	spinlock_t type_lock;
64288 	enum devlink_port_type type;
64289 	enum devlink_port_type desired_type;
64290 	union {
64291 		struct {
64292 			struct net_device *netdev;
64293 			int ifindex;
64294 			char ifname[16];
64295 		} type_eth;
64296 		struct {
64297 			struct ib_device *ibdev;
64298 		} type_ib;
64299 	};
64300 	struct devlink_port_attrs attrs;
64301 	u8 attrs_set: 1;
64302 	u8 switch_port: 1;
64303 	u8 registered: 1;
64304 	u8 initialized: 1;
64305 	struct delayed_work type_warn_dw;
64306 	struct list_head reporter_list;
64307 	struct mutex reporters_lock;
64308 	struct devlink_rate *devlink_rate;
64309 	struct devlink_linecard *linecard;
64310 };
64311 
64312 struct offload_callbacks {
64313 	struct sk_buff * (*gso_segment)(struct sk_buff *, netdev_features_t);
64314 	struct sk_buff * (*gro_receive)(struct list_head *, struct sk_buff *);
64315 	int (*gro_complete)(struct sk_buff *, int);
64316 };
64317 
64318 struct packet_offload {
64319 	__be16 type;
64320 	u16 priority;
64321 	struct offload_callbacks callbacks;
64322 	struct list_head list;
64323 };
64324 
64325 enum devlink_rate_type {
64326 	DEVLINK_RATE_TYPE_LEAF = 0,
64327 	DEVLINK_RATE_TYPE_NODE = 1,
64328 };
64329 
64330 struct devlink_rate {
64331 	struct list_head list;
64332 	enum devlink_rate_type type;
64333 	struct devlink *devlink;
64334 	void *priv;
64335 	u64 tx_share;
64336 	u64 tx_max;
64337 	struct devlink_rate *parent;
64338 	union {
64339 		struct devlink_port *devlink_port;
64340 		struct {
64341 			char *name;
64342 			refcount_t refcnt;
64343 		};
64344 	};
64345 	u32 tx_priority;
64346 	u32 tx_weight;
64347 };
64348 
64349 struct napi_gro_cb {
64350 	void *frag0;
64351 	unsigned int frag0_len;
64352 	int data_offset;
64353 	u16 flush;
64354 	u16 flush_id;
64355 	u16 count;
64356 	u16 proto;
64357 	long unsigned int age;
64358 	union {
64359 		struct {
64360 			u16 gro_remcsum_start;
64361 			u8 same_flow: 1;
64362 			u8 encap_mark: 1;
64363 			u8 csum_valid: 1;
64364 			u8 csum_cnt: 3;
64365 			u8 free: 2;
64366 			u8 is_ipv6: 1;
64367 			u8 is_fou: 1;
64368 			u8 is_atomic: 1;
64369 			u8 recursion_counter: 4;
64370 			u8 is_flist: 1;
64371 		};
64372 		struct {
64373 			u16 gro_remcsum_start;
64374 			u8 same_flow: 1;
64375 			u8 encap_mark: 1;
64376 			u8 csum_valid: 1;
64377 			u8 csum_cnt: 3;
64378 			u8 free: 2;
64379 			u8 is_ipv6: 1;
64380 			u8 is_fou: 1;
64381 			u8 is_atomic: 1;
64382 			u8 recursion_counter: 4;
64383 			u8 is_flist: 1;
64384 		} zeroed;
64385 	};
64386 	__wsum csum;
64387 	struct sk_buff *last;
64388 };
64389 
64390 struct nvmem_cell;
64391 
64392 enum tc_link_layer {
64393 	TC_LINKLAYER_UNAWARE = 0,
64394 	TC_LINKLAYER_ETHERNET = 1,
64395 	TC_LINKLAYER_ATM = 2,
64396 };
64397 
64398 struct tc_ratespec {
64399 	unsigned char cell_log;
64400 	__u8 linklayer;
64401 	short unsigned int overhead;
64402 	short int cell_align;
64403 	short unsigned int mpu;
64404 	__u32 rate;
64405 };
64406 
64407 enum {
64408 	TCA_STAB_UNSPEC = 0,
64409 	TCA_STAB_BASE = 1,
64410 	TCA_STAB_DATA = 2,
64411 	__TCA_STAB_MAX = 3,
64412 };
64413 
64414 enum {
64415 	TCA_UNSPEC = 0,
64416 	TCA_KIND = 1,
64417 	TCA_OPTIONS = 2,
64418 	TCA_STATS = 3,
64419 	TCA_XSTATS = 4,
64420 	TCA_RATE = 5,
64421 	TCA_FCNT = 6,
64422 	TCA_STATS2 = 7,
64423 	TCA_STAB = 8,
64424 	TCA_PAD = 9,
64425 	TCA_DUMP_INVISIBLE = 10,
64426 	TCA_CHAIN = 11,
64427 	TCA_HW_OFFLOAD = 12,
64428 	TCA_INGRESS_BLOCK = 13,
64429 	TCA_EGRESS_BLOCK = 14,
64430 	TCA_DUMP_FLAGS = 15,
64431 	__TCA_MAX = 16,
64432 };
64433 
64434 struct qdisc_rate_table {
64435 	struct tc_ratespec rate;
64436 	u32 data[256];
64437 	struct qdisc_rate_table *next;
64438 	int refcnt;
64439 };
64440 
64441 enum qdisc_state_t {
64442 	__QDISC_STATE_SCHED = 0,
64443 	__QDISC_STATE_DEACTIVATED = 1,
64444 	__QDISC_STATE_MISSED = 2,
64445 	__QDISC_STATE_DRAINING = 3,
64446 };
64447 
64448 struct Qdisc_class_common {
64449 	u32 classid;
64450 	struct hlist_node hnode;
64451 };
64452 
64453 struct Qdisc_class_hash {
64454 	struct hlist_head *hash;
64455 	unsigned int hashsize;
64456 	unsigned int hashmask;
64457 	unsigned int hashelems;
64458 };
64459 
64460 struct qdisc_watchdog {
64461 	u64 last_expires;
64462 	struct hrtimer timer;
64463 	struct Qdisc *qdisc;
64464 };
64465 
64466 struct tc_query_caps_base {
64467 	enum tc_setup_type type;
64468 	void *caps;
64469 };
64470 
64471 enum tc_root_command {
64472 	TC_ROOT_GRAFT = 0,
64473 };
64474 
64475 struct tc_root_qopt_offload {
64476 	enum tc_root_command command;
64477 	u32 handle;
64478 	bool ingress;
64479 };
64480 
64481 struct check_loop_arg {
64482 	struct qdisc_walker w;
64483 	struct Qdisc *p;
64484 	int depth;
64485 };
64486 
64487 struct tcf_bind_args {
64488 	struct tcf_walker w;
64489 	long unsigned int base;
64490 	long unsigned int cl;
64491 	u32 classid;
64492 };
64493 
64494 struct tc_bind_class_args {
64495 	struct qdisc_walker w;
64496 	long unsigned int new_cl;
64497 	u32 portid;
64498 	u32 clid;
64499 };
64500 
64501 struct qdisc_dump_args {
64502 	struct qdisc_walker w;
64503 	struct sk_buff *skb;
64504 	struct netlink_callback *cb;
64505 };
64506 
64507 struct tc_fifo_qopt {
64508 	__u32 limit;
64509 };
64510 
64511 struct tc_qopt_offload_stats {
64512 	struct gnet_stats_basic_sync *bstats;
64513 	struct gnet_stats_queue *qstats;
64514 };
64515 
64516 enum tc_fifo_command {
64517 	TC_FIFO_REPLACE = 0,
64518 	TC_FIFO_DESTROY = 1,
64519 	TC_FIFO_STATS = 2,
64520 };
64521 
64522 struct tc_fifo_qopt_offload {
64523 	enum tc_fifo_command command;
64524 	u32 handle;
64525 	u32 parent;
64526 	union {
64527 		struct tc_qopt_offload_stats stats;
64528 	};
64529 };
64530 
64531 struct rhashtable_walker {
64532 	struct list_head list;
64533 	struct bucket_table *tbl;
64534 };
64535 
64536 struct rhashtable_iter {
64537 	struct rhashtable *ht;
64538 	struct rhash_head *p;
64539 	struct rhlist_head *list;
64540 	struct rhashtable_walker walker;
64541 	unsigned int slot;
64542 	unsigned int skip;
64543 	bool end_of_table;
64544 };
64545 
64546 struct net_proto_family {
64547 	int family;
64548 	int (*create)(struct net *, struct socket *, int, int);
64549 	struct module *owner;
64550 };
64551 
64552 struct sockaddr_nl {
64553 	__kernel_sa_family_t nl_family;
64554 	short unsigned int nl_pad;
64555 	__u32 nl_pid;
64556 	__u32 nl_groups;
64557 };
64558 
64559 struct nlmsgerr {
64560 	int error;
64561 	struct nlmsghdr msg;
64562 };
64563 
64564 enum nlmsgerr_attrs {
64565 	NLMSGERR_ATTR_UNUSED = 0,
64566 	NLMSGERR_ATTR_MSG = 1,
64567 	NLMSGERR_ATTR_OFFS = 2,
64568 	NLMSGERR_ATTR_COOKIE = 3,
64569 	NLMSGERR_ATTR_POLICY = 4,
64570 	NLMSGERR_ATTR_MISS_TYPE = 5,
64571 	NLMSGERR_ATTR_MISS_NEST = 6,
64572 	__NLMSGERR_ATTR_MAX = 7,
64573 	NLMSGERR_ATTR_MAX = 6,
64574 };
64575 
64576 struct nl_pktinfo {
64577 	__u32 group;
64578 };
64579 
64580 enum {
64581 	NETLINK_UNCONNECTED = 0,
64582 	NETLINK_CONNECTED = 1,
64583 };
64584 
64585 enum netlink_skb_flags {
64586 	NETLINK_SKB_DST = 8,
64587 };
64588 
64589 struct netlink_notify {
64590 	struct net *net;
64591 	u32 portid;
64592 	int protocol;
64593 };
64594 
64595 struct netlink_dump_control {
64596 	int (*start)(struct netlink_callback *);
64597 	int (*dump)(struct sk_buff *, struct netlink_callback *);
64598 	int (*done)(struct netlink_callback *);
64599 	void *data;
64600 	struct module *module;
64601 	u32 min_dump_alloc;
64602 };
64603 
64604 struct netlink_tap {
64605 	struct net_device *dev;
64606 	struct module *module;
64607 	struct list_head list;
64608 };
64609 
64610 struct trace_event_raw_netlink_extack {
64611 	struct trace_entry ent;
64612 	u32 __data_loc_msg;
64613 	char __data[0];
64614 };
64615 
64616 struct trace_event_data_offsets_netlink_extack {
64617 	u32 msg;
64618 };
64619 
64620 typedef void (*btf_trace_netlink_extack)(void *, const char *);
64621 
64622 struct netlink_sock {
64623 	struct sock sk;
64624 	u32 portid;
64625 	u32 dst_portid;
64626 	u32 dst_group;
64627 	u32 flags;
64628 	u32 subscriptions;
64629 	u32 ngroups;
64630 	long unsigned int *groups;
64631 	long unsigned int state;
64632 	size_t max_recvmsg_len;
64633 	wait_queue_head_t wait;
64634 	bool bound;
64635 	bool cb_running;
64636 	int dump_done_errno;
64637 	struct netlink_callback cb;
64638 	struct mutex *cb_mutex;
64639 	struct mutex cb_def_mutex;
64640 	void (*netlink_rcv)(struct sk_buff *);
64641 	int (*netlink_bind)(struct net *, int);
64642 	void (*netlink_unbind)(struct net *, int);
64643 	struct module *module;
64644 	struct rhash_head node;
64645 	struct callback_head rcu;
64646 	struct work_struct work;
64647 };
64648 
64649 struct listeners;
64650 
64651 struct netlink_table {
64652 	struct rhashtable hash;
64653 	struct hlist_head mc_list;
64654 	struct listeners *listeners;
64655 	unsigned int flags;
64656 	unsigned int groups;
64657 	struct mutex *cb_mutex;
64658 	struct module *module;
64659 	int (*bind)(struct net *, int);
64660 	void (*unbind)(struct net *, int);
64661 	bool (*compare)(struct net *, struct sock *);
64662 	int registered;
64663 };
64664 
64665 struct listeners {
64666 	struct callback_head rcu;
64667 	long unsigned int masks[0];
64668 };
64669 
64670 struct netlink_tap_net {
64671 	struct list_head netlink_tap_all;
64672 	struct mutex netlink_tap_lock;
64673 };
64674 
64675 struct netlink_compare_arg {
64676 	possible_net_t pnet;
64677 	u32 portid;
64678 };
64679 
64680 struct netlink_broadcast_data {
64681 	struct sock *exclude_sk;
64682 	struct net *net;
64683 	u32 portid;
64684 	u32 group;
64685 	int failure;
64686 	int delivery_failure;
64687 	int congested;
64688 	int delivered;
64689 	gfp_t allocation;
64690 	struct sk_buff *skb;
64691 	struct sk_buff *skb2;
64692 };
64693 
64694 struct netlink_set_err_data {
64695 	struct sock *exclude_sk;
64696 	u32 portid;
64697 	u32 group;
64698 	int code;
64699 };
64700 
64701 struct nl_seq_iter {
64702 	struct seq_net_private p;
64703 	struct rhashtable_iter hti;
64704 	int link;
64705 };
64706 
64707 struct bpf_iter__netlink {
64708 	union {
64709 		struct bpf_iter_meta *meta;
64710 	};
64711 	union {
64712 		struct netlink_sock *sk;
64713 	};
64714 };
64715 
64716 enum tunable_id {
64717 	ETHTOOL_ID_UNSPEC = 0,
64718 	ETHTOOL_RX_COPYBREAK = 1,
64719 	ETHTOOL_TX_COPYBREAK = 2,
64720 	ETHTOOL_PFC_PREVENTION_TOUT = 3,
64721 	ETHTOOL_TX_COPYBREAK_BUF_SIZE = 4,
64722 	__ETHTOOL_TUNABLE_COUNT = 5,
64723 };
64724 
64725 enum phy_tunable_id {
64726 	ETHTOOL_PHY_ID_UNSPEC = 0,
64727 	ETHTOOL_PHY_DOWNSHIFT = 1,
64728 	ETHTOOL_PHY_FAST_LINK_DOWN = 2,
64729 	ETHTOOL_PHY_EDPD = 3,
64730 	__ETHTOOL_PHY_TUNABLE_COUNT = 4,
64731 };
64732 
64733 enum {
64734 	ETHTOOL_UDP_TUNNEL_TYPE_VXLAN = 0,
64735 	ETHTOOL_UDP_TUNNEL_TYPE_GENEVE = 1,
64736 	ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE = 2,
64737 	__ETHTOOL_UDP_TUNNEL_TYPE_CNT = 3,
64738 };
64739 
64740 enum {
64741 	ETHTOOL_A_STATS_UNSPEC = 0,
64742 	ETHTOOL_A_STATS_PAD = 1,
64743 	ETHTOOL_A_STATS_HEADER = 2,
64744 	ETHTOOL_A_STATS_GROUPS = 3,
64745 	ETHTOOL_A_STATS_GRP = 4,
64746 	__ETHTOOL_A_STATS_CNT = 5,
64747 	ETHTOOL_A_STATS_MAX = 4,
64748 };
64749 
64750 struct link_mode_info {
64751 	int speed;
64752 	u8 lanes;
64753 	u8 duplex;
64754 };
64755 
64756 enum {
64757 	ETHTOOL_MSG_USER_NONE = 0,
64758 	ETHTOOL_MSG_STRSET_GET = 1,
64759 	ETHTOOL_MSG_LINKINFO_GET = 2,
64760 	ETHTOOL_MSG_LINKINFO_SET = 3,
64761 	ETHTOOL_MSG_LINKMODES_GET = 4,
64762 	ETHTOOL_MSG_LINKMODES_SET = 5,
64763 	ETHTOOL_MSG_LINKSTATE_GET = 6,
64764 	ETHTOOL_MSG_DEBUG_GET = 7,
64765 	ETHTOOL_MSG_DEBUG_SET = 8,
64766 	ETHTOOL_MSG_WOL_GET = 9,
64767 	ETHTOOL_MSG_WOL_SET = 10,
64768 	ETHTOOL_MSG_FEATURES_GET = 11,
64769 	ETHTOOL_MSG_FEATURES_SET = 12,
64770 	ETHTOOL_MSG_PRIVFLAGS_GET = 13,
64771 	ETHTOOL_MSG_PRIVFLAGS_SET = 14,
64772 	ETHTOOL_MSG_RINGS_GET = 15,
64773 	ETHTOOL_MSG_RINGS_SET = 16,
64774 	ETHTOOL_MSG_CHANNELS_GET = 17,
64775 	ETHTOOL_MSG_CHANNELS_SET = 18,
64776 	ETHTOOL_MSG_COALESCE_GET = 19,
64777 	ETHTOOL_MSG_COALESCE_SET = 20,
64778 	ETHTOOL_MSG_PAUSE_GET = 21,
64779 	ETHTOOL_MSG_PAUSE_SET = 22,
64780 	ETHTOOL_MSG_EEE_GET = 23,
64781 	ETHTOOL_MSG_EEE_SET = 24,
64782 	ETHTOOL_MSG_TSINFO_GET = 25,
64783 	ETHTOOL_MSG_CABLE_TEST_ACT = 26,
64784 	ETHTOOL_MSG_CABLE_TEST_TDR_ACT = 27,
64785 	ETHTOOL_MSG_TUNNEL_INFO_GET = 28,
64786 	ETHTOOL_MSG_FEC_GET = 29,
64787 	ETHTOOL_MSG_FEC_SET = 30,
64788 	ETHTOOL_MSG_MODULE_EEPROM_GET = 31,
64789 	ETHTOOL_MSG_STATS_GET = 32,
64790 	ETHTOOL_MSG_PHC_VCLOCKS_GET = 33,
64791 	ETHTOOL_MSG_MODULE_GET = 34,
64792 	ETHTOOL_MSG_MODULE_SET = 35,
64793 	ETHTOOL_MSG_PSE_GET = 36,
64794 	ETHTOOL_MSG_PSE_SET = 37,
64795 	ETHTOOL_MSG_RSS_GET = 38,
64796 	__ETHTOOL_MSG_USER_CNT = 39,
64797 	ETHTOOL_MSG_USER_MAX = 38,
64798 };
64799 
64800 enum {
64801 	ETHTOOL_MSG_KERNEL_NONE = 0,
64802 	ETHTOOL_MSG_STRSET_GET_REPLY = 1,
64803 	ETHTOOL_MSG_LINKINFO_GET_REPLY = 2,
64804 	ETHTOOL_MSG_LINKINFO_NTF = 3,
64805 	ETHTOOL_MSG_LINKMODES_GET_REPLY = 4,
64806 	ETHTOOL_MSG_LINKMODES_NTF = 5,
64807 	ETHTOOL_MSG_LINKSTATE_GET_REPLY = 6,
64808 	ETHTOOL_MSG_DEBUG_GET_REPLY = 7,
64809 	ETHTOOL_MSG_DEBUG_NTF = 8,
64810 	ETHTOOL_MSG_WOL_GET_REPLY = 9,
64811 	ETHTOOL_MSG_WOL_NTF = 10,
64812 	ETHTOOL_MSG_FEATURES_GET_REPLY = 11,
64813 	ETHTOOL_MSG_FEATURES_SET_REPLY = 12,
64814 	ETHTOOL_MSG_FEATURES_NTF = 13,
64815 	ETHTOOL_MSG_PRIVFLAGS_GET_REPLY = 14,
64816 	ETHTOOL_MSG_PRIVFLAGS_NTF = 15,
64817 	ETHTOOL_MSG_RINGS_GET_REPLY = 16,
64818 	ETHTOOL_MSG_RINGS_NTF = 17,
64819 	ETHTOOL_MSG_CHANNELS_GET_REPLY = 18,
64820 	ETHTOOL_MSG_CHANNELS_NTF = 19,
64821 	ETHTOOL_MSG_COALESCE_GET_REPLY = 20,
64822 	ETHTOOL_MSG_COALESCE_NTF = 21,
64823 	ETHTOOL_MSG_PAUSE_GET_REPLY = 22,
64824 	ETHTOOL_MSG_PAUSE_NTF = 23,
64825 	ETHTOOL_MSG_EEE_GET_REPLY = 24,
64826 	ETHTOOL_MSG_EEE_NTF = 25,
64827 	ETHTOOL_MSG_TSINFO_GET_REPLY = 26,
64828 	ETHTOOL_MSG_CABLE_TEST_NTF = 27,
64829 	ETHTOOL_MSG_CABLE_TEST_TDR_NTF = 28,
64830 	ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY = 29,
64831 	ETHTOOL_MSG_FEC_GET_REPLY = 30,
64832 	ETHTOOL_MSG_FEC_NTF = 31,
64833 	ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY = 32,
64834 	ETHTOOL_MSG_STATS_GET_REPLY = 33,
64835 	ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY = 34,
64836 	ETHTOOL_MSG_MODULE_GET_REPLY = 35,
64837 	ETHTOOL_MSG_MODULE_NTF = 36,
64838 	ETHTOOL_MSG_PSE_GET_REPLY = 37,
64839 	ETHTOOL_MSG_RSS_GET_REPLY = 38,
64840 	__ETHTOOL_MSG_KERNEL_CNT = 39,
64841 	ETHTOOL_MSG_KERNEL_MAX = 38,
64842 };
64843 
64844 enum {
64845 	ETHTOOL_A_HEADER_UNSPEC = 0,
64846 	ETHTOOL_A_HEADER_DEV_INDEX = 1,
64847 	ETHTOOL_A_HEADER_DEV_NAME = 2,
64848 	ETHTOOL_A_HEADER_FLAGS = 3,
64849 	__ETHTOOL_A_HEADER_CNT = 4,
64850 	ETHTOOL_A_HEADER_MAX = 3,
64851 };
64852 
64853 enum {
64854 	ETHTOOL_A_STRING_UNSPEC = 0,
64855 	ETHTOOL_A_STRING_INDEX = 1,
64856 	ETHTOOL_A_STRING_VALUE = 2,
64857 	__ETHTOOL_A_STRING_CNT = 3,
64858 	ETHTOOL_A_STRING_MAX = 2,
64859 };
64860 
64861 enum {
64862 	ETHTOOL_A_STRINGS_UNSPEC = 0,
64863 	ETHTOOL_A_STRINGS_STRING = 1,
64864 	__ETHTOOL_A_STRINGS_CNT = 2,
64865 	ETHTOOL_A_STRINGS_MAX = 1,
64866 };
64867 
64868 enum {
64869 	ETHTOOL_A_STRINGSET_UNSPEC = 0,
64870 	ETHTOOL_A_STRINGSET_ID = 1,
64871 	ETHTOOL_A_STRINGSET_COUNT = 2,
64872 	ETHTOOL_A_STRINGSET_STRINGS = 3,
64873 	__ETHTOOL_A_STRINGSET_CNT = 4,
64874 	ETHTOOL_A_STRINGSET_MAX = 3,
64875 };
64876 
64877 enum {
64878 	ETHTOOL_A_STRINGSETS_UNSPEC = 0,
64879 	ETHTOOL_A_STRINGSETS_STRINGSET = 1,
64880 	__ETHTOOL_A_STRINGSETS_CNT = 2,
64881 	ETHTOOL_A_STRINGSETS_MAX = 1,
64882 };
64883 
64884 enum {
64885 	ETHTOOL_A_STRSET_UNSPEC = 0,
64886 	ETHTOOL_A_STRSET_HEADER = 1,
64887 	ETHTOOL_A_STRSET_STRINGSETS = 2,
64888 	ETHTOOL_A_STRSET_COUNTS_ONLY = 3,
64889 	__ETHTOOL_A_STRSET_CNT = 4,
64890 	ETHTOOL_A_STRSET_MAX = 3,
64891 };
64892 
64893 enum {
64894 	ETHTOOL_A_LINKINFO_UNSPEC = 0,
64895 	ETHTOOL_A_LINKINFO_HEADER = 1,
64896 	ETHTOOL_A_LINKINFO_PORT = 2,
64897 	ETHTOOL_A_LINKINFO_PHYADDR = 3,
64898 	ETHTOOL_A_LINKINFO_TP_MDIX = 4,
64899 	ETHTOOL_A_LINKINFO_TP_MDIX_CTRL = 5,
64900 	ETHTOOL_A_LINKINFO_TRANSCEIVER = 6,
64901 	__ETHTOOL_A_LINKINFO_CNT = 7,
64902 	ETHTOOL_A_LINKINFO_MAX = 6,
64903 };
64904 
64905 enum {
64906 	ETHTOOL_A_LINKMODES_UNSPEC = 0,
64907 	ETHTOOL_A_LINKMODES_HEADER = 1,
64908 	ETHTOOL_A_LINKMODES_AUTONEG = 2,
64909 	ETHTOOL_A_LINKMODES_OURS = 3,
64910 	ETHTOOL_A_LINKMODES_PEER = 4,
64911 	ETHTOOL_A_LINKMODES_SPEED = 5,
64912 	ETHTOOL_A_LINKMODES_DUPLEX = 6,
64913 	ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG = 7,
64914 	ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE = 8,
64915 	ETHTOOL_A_LINKMODES_LANES = 9,
64916 	ETHTOOL_A_LINKMODES_RATE_MATCHING = 10,
64917 	__ETHTOOL_A_LINKMODES_CNT = 11,
64918 	ETHTOOL_A_LINKMODES_MAX = 10,
64919 };
64920 
64921 enum {
64922 	ETHTOOL_A_LINKSTATE_UNSPEC = 0,
64923 	ETHTOOL_A_LINKSTATE_HEADER = 1,
64924 	ETHTOOL_A_LINKSTATE_LINK = 2,
64925 	ETHTOOL_A_LINKSTATE_SQI = 3,
64926 	ETHTOOL_A_LINKSTATE_SQI_MAX = 4,
64927 	ETHTOOL_A_LINKSTATE_EXT_STATE = 5,
64928 	ETHTOOL_A_LINKSTATE_EXT_SUBSTATE = 6,
64929 	ETHTOOL_A_LINKSTATE_EXT_DOWN_CNT = 7,
64930 	__ETHTOOL_A_LINKSTATE_CNT = 8,
64931 	ETHTOOL_A_LINKSTATE_MAX = 7,
64932 };
64933 
64934 enum {
64935 	ETHTOOL_A_DEBUG_UNSPEC = 0,
64936 	ETHTOOL_A_DEBUG_HEADER = 1,
64937 	ETHTOOL_A_DEBUG_MSGMASK = 2,
64938 	__ETHTOOL_A_DEBUG_CNT = 3,
64939 	ETHTOOL_A_DEBUG_MAX = 2,
64940 };
64941 
64942 enum {
64943 	ETHTOOL_A_WOL_UNSPEC = 0,
64944 	ETHTOOL_A_WOL_HEADER = 1,
64945 	ETHTOOL_A_WOL_MODES = 2,
64946 	ETHTOOL_A_WOL_SOPASS = 3,
64947 	__ETHTOOL_A_WOL_CNT = 4,
64948 	ETHTOOL_A_WOL_MAX = 3,
64949 };
64950 
64951 enum {
64952 	ETHTOOL_A_FEATURES_UNSPEC = 0,
64953 	ETHTOOL_A_FEATURES_HEADER = 1,
64954 	ETHTOOL_A_FEATURES_HW = 2,
64955 	ETHTOOL_A_FEATURES_WANTED = 3,
64956 	ETHTOOL_A_FEATURES_ACTIVE = 4,
64957 	ETHTOOL_A_FEATURES_NOCHANGE = 5,
64958 	__ETHTOOL_A_FEATURES_CNT = 6,
64959 	ETHTOOL_A_FEATURES_MAX = 5,
64960 };
64961 
64962 enum {
64963 	ETHTOOL_A_PRIVFLAGS_UNSPEC = 0,
64964 	ETHTOOL_A_PRIVFLAGS_HEADER = 1,
64965 	ETHTOOL_A_PRIVFLAGS_FLAGS = 2,
64966 	__ETHTOOL_A_PRIVFLAGS_CNT = 3,
64967 	ETHTOOL_A_PRIVFLAGS_MAX = 2,
64968 };
64969 
64970 enum {
64971 	ETHTOOL_A_RINGS_UNSPEC = 0,
64972 	ETHTOOL_A_RINGS_HEADER = 1,
64973 	ETHTOOL_A_RINGS_RX_MAX = 2,
64974 	ETHTOOL_A_RINGS_RX_MINI_MAX = 3,
64975 	ETHTOOL_A_RINGS_RX_JUMBO_MAX = 4,
64976 	ETHTOOL_A_RINGS_TX_MAX = 5,
64977 	ETHTOOL_A_RINGS_RX = 6,
64978 	ETHTOOL_A_RINGS_RX_MINI = 7,
64979 	ETHTOOL_A_RINGS_RX_JUMBO = 8,
64980 	ETHTOOL_A_RINGS_TX = 9,
64981 	ETHTOOL_A_RINGS_RX_BUF_LEN = 10,
64982 	ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 11,
64983 	ETHTOOL_A_RINGS_CQE_SIZE = 12,
64984 	ETHTOOL_A_RINGS_TX_PUSH = 13,
64985 	__ETHTOOL_A_RINGS_CNT = 14,
64986 	ETHTOOL_A_RINGS_MAX = 13,
64987 };
64988 
64989 enum {
64990 	ETHTOOL_A_CHANNELS_UNSPEC = 0,
64991 	ETHTOOL_A_CHANNELS_HEADER = 1,
64992 	ETHTOOL_A_CHANNELS_RX_MAX = 2,
64993 	ETHTOOL_A_CHANNELS_TX_MAX = 3,
64994 	ETHTOOL_A_CHANNELS_OTHER_MAX = 4,
64995 	ETHTOOL_A_CHANNELS_COMBINED_MAX = 5,
64996 	ETHTOOL_A_CHANNELS_RX_COUNT = 6,
64997 	ETHTOOL_A_CHANNELS_TX_COUNT = 7,
64998 	ETHTOOL_A_CHANNELS_OTHER_COUNT = 8,
64999 	ETHTOOL_A_CHANNELS_COMBINED_COUNT = 9,
65000 	__ETHTOOL_A_CHANNELS_CNT = 10,
65001 	ETHTOOL_A_CHANNELS_MAX = 9,
65002 };
65003 
65004 enum {
65005 	ETHTOOL_A_COALESCE_UNSPEC = 0,
65006 	ETHTOOL_A_COALESCE_HEADER = 1,
65007 	ETHTOOL_A_COALESCE_RX_USECS = 2,
65008 	ETHTOOL_A_COALESCE_RX_MAX_FRAMES = 3,
65009 	ETHTOOL_A_COALESCE_RX_USECS_IRQ = 4,
65010 	ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ = 5,
65011 	ETHTOOL_A_COALESCE_TX_USECS = 6,
65012 	ETHTOOL_A_COALESCE_TX_MAX_FRAMES = 7,
65013 	ETHTOOL_A_COALESCE_TX_USECS_IRQ = 8,
65014 	ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ = 9,
65015 	ETHTOOL_A_COALESCE_STATS_BLOCK_USECS = 10,
65016 	ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX = 11,
65017 	ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX = 12,
65018 	ETHTOOL_A_COALESCE_PKT_RATE_LOW = 13,
65019 	ETHTOOL_A_COALESCE_RX_USECS_LOW = 14,
65020 	ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW = 15,
65021 	ETHTOOL_A_COALESCE_TX_USECS_LOW = 16,
65022 	ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW = 17,
65023 	ETHTOOL_A_COALESCE_PKT_RATE_HIGH = 18,
65024 	ETHTOOL_A_COALESCE_RX_USECS_HIGH = 19,
65025 	ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH = 20,
65026 	ETHTOOL_A_COALESCE_TX_USECS_HIGH = 21,
65027 	ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH = 22,
65028 	ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL = 23,
65029 	ETHTOOL_A_COALESCE_USE_CQE_MODE_TX = 24,
65030 	ETHTOOL_A_COALESCE_USE_CQE_MODE_RX = 25,
65031 	__ETHTOOL_A_COALESCE_CNT = 26,
65032 	ETHTOOL_A_COALESCE_MAX = 25,
65033 };
65034 
65035 enum {
65036 	ETHTOOL_A_PAUSE_UNSPEC = 0,
65037 	ETHTOOL_A_PAUSE_HEADER = 1,
65038 	ETHTOOL_A_PAUSE_AUTONEG = 2,
65039 	ETHTOOL_A_PAUSE_RX = 3,
65040 	ETHTOOL_A_PAUSE_TX = 4,
65041 	ETHTOOL_A_PAUSE_STATS = 5,
65042 	__ETHTOOL_A_PAUSE_CNT = 6,
65043 	ETHTOOL_A_PAUSE_MAX = 5,
65044 };
65045 
65046 enum {
65047 	ETHTOOL_A_EEE_UNSPEC = 0,
65048 	ETHTOOL_A_EEE_HEADER = 1,
65049 	ETHTOOL_A_EEE_MODES_OURS = 2,
65050 	ETHTOOL_A_EEE_MODES_PEER = 3,
65051 	ETHTOOL_A_EEE_ACTIVE = 4,
65052 	ETHTOOL_A_EEE_ENABLED = 5,
65053 	ETHTOOL_A_EEE_TX_LPI_ENABLED = 6,
65054 	ETHTOOL_A_EEE_TX_LPI_TIMER = 7,
65055 	__ETHTOOL_A_EEE_CNT = 8,
65056 	ETHTOOL_A_EEE_MAX = 7,
65057 };
65058 
65059 enum {
65060 	ETHTOOL_A_TSINFO_UNSPEC = 0,
65061 	ETHTOOL_A_TSINFO_HEADER = 1,
65062 	ETHTOOL_A_TSINFO_TIMESTAMPING = 2,
65063 	ETHTOOL_A_TSINFO_TX_TYPES = 3,
65064 	ETHTOOL_A_TSINFO_RX_FILTERS = 4,
65065 	ETHTOOL_A_TSINFO_PHC_INDEX = 5,
65066 	__ETHTOOL_A_TSINFO_CNT = 6,
65067 	ETHTOOL_A_TSINFO_MAX = 5,
65068 };
65069 
65070 enum {
65071 	ETHTOOL_A_PHC_VCLOCKS_UNSPEC = 0,
65072 	ETHTOOL_A_PHC_VCLOCKS_HEADER = 1,
65073 	ETHTOOL_A_PHC_VCLOCKS_NUM = 2,
65074 	ETHTOOL_A_PHC_VCLOCKS_INDEX = 3,
65075 	__ETHTOOL_A_PHC_VCLOCKS_CNT = 4,
65076 	ETHTOOL_A_PHC_VCLOCKS_MAX = 3,
65077 };
65078 
65079 enum {
65080 	ETHTOOL_A_CABLE_TEST_UNSPEC = 0,
65081 	ETHTOOL_A_CABLE_TEST_HEADER = 1,
65082 	__ETHTOOL_A_CABLE_TEST_CNT = 2,
65083 	ETHTOOL_A_CABLE_TEST_MAX = 1,
65084 };
65085 
65086 enum {
65087 	ETHTOOL_A_CABLE_TEST_TDR_UNSPEC = 0,
65088 	ETHTOOL_A_CABLE_TEST_TDR_HEADER = 1,
65089 	ETHTOOL_A_CABLE_TEST_TDR_CFG = 2,
65090 	__ETHTOOL_A_CABLE_TEST_TDR_CNT = 3,
65091 	ETHTOOL_A_CABLE_TEST_TDR_MAX = 2,
65092 };
65093 
65094 enum {
65095 	ETHTOOL_A_TUNNEL_INFO_UNSPEC = 0,
65096 	ETHTOOL_A_TUNNEL_INFO_HEADER = 1,
65097 	ETHTOOL_A_TUNNEL_INFO_UDP_PORTS = 2,
65098 	__ETHTOOL_A_TUNNEL_INFO_CNT = 3,
65099 	ETHTOOL_A_TUNNEL_INFO_MAX = 2,
65100 };
65101 
65102 enum {
65103 	ETHTOOL_A_FEC_UNSPEC = 0,
65104 	ETHTOOL_A_FEC_HEADER = 1,
65105 	ETHTOOL_A_FEC_MODES = 2,
65106 	ETHTOOL_A_FEC_AUTO = 3,
65107 	ETHTOOL_A_FEC_ACTIVE = 4,
65108 	ETHTOOL_A_FEC_STATS = 5,
65109 	__ETHTOOL_A_FEC_CNT = 6,
65110 	ETHTOOL_A_FEC_MAX = 5,
65111 };
65112 
65113 enum {
65114 	ETHTOOL_A_MODULE_EEPROM_UNSPEC = 0,
65115 	ETHTOOL_A_MODULE_EEPROM_HEADER = 1,
65116 	ETHTOOL_A_MODULE_EEPROM_OFFSET = 2,
65117 	ETHTOOL_A_MODULE_EEPROM_LENGTH = 3,
65118 	ETHTOOL_A_MODULE_EEPROM_PAGE = 4,
65119 	ETHTOOL_A_MODULE_EEPROM_BANK = 5,
65120 	ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS = 6,
65121 	ETHTOOL_A_MODULE_EEPROM_DATA = 7,
65122 	__ETHTOOL_A_MODULE_EEPROM_CNT = 8,
65123 	ETHTOOL_A_MODULE_EEPROM_MAX = 7,
65124 };
65125 
65126 enum {
65127 	ETHTOOL_STATS_ETH_PHY = 0,
65128 	ETHTOOL_STATS_ETH_MAC = 1,
65129 	ETHTOOL_STATS_ETH_CTRL = 2,
65130 	ETHTOOL_STATS_RMON = 3,
65131 	__ETHTOOL_STATS_CNT = 4,
65132 };
65133 
65134 enum {
65135 	ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR = 0,
65136 	__ETHTOOL_A_STATS_ETH_PHY_CNT = 1,
65137 	ETHTOOL_A_STATS_ETH_PHY_MAX = 0,
65138 };
65139 
65140 enum {
65141 	ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT = 0,
65142 	ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL = 1,
65143 	ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL = 2,
65144 	ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT = 3,
65145 	ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR = 4,
65146 	ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR = 5,
65147 	ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES = 6,
65148 	ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER = 7,
65149 	ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL = 8,
65150 	ETHTOOL_A_STATS_ETH_MAC_11_XS_COL = 9,
65151 	ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR = 10,
65152 	ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR = 11,
65153 	ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES = 12,
65154 	ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR = 13,
65155 	ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST = 14,
65156 	ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST = 15,
65157 	ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER = 16,
65158 	ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST = 17,
65159 	ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST = 18,
65160 	ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR = 19,
65161 	ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN = 20,
65162 	ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR = 21,
65163 	__ETHTOOL_A_STATS_ETH_MAC_CNT = 22,
65164 	ETHTOOL_A_STATS_ETH_MAC_MAX = 21,
65165 };
65166 
65167 enum {
65168 	ETHTOOL_A_STATS_ETH_CTRL_3_TX = 0,
65169 	ETHTOOL_A_STATS_ETH_CTRL_4_RX = 1,
65170 	ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP = 2,
65171 	__ETHTOOL_A_STATS_ETH_CTRL_CNT = 3,
65172 	ETHTOOL_A_STATS_ETH_CTRL_MAX = 2,
65173 };
65174 
65175 enum {
65176 	ETHTOOL_A_STATS_RMON_UNDERSIZE = 0,
65177 	ETHTOOL_A_STATS_RMON_OVERSIZE = 1,
65178 	ETHTOOL_A_STATS_RMON_FRAG = 2,
65179 	ETHTOOL_A_STATS_RMON_JABBER = 3,
65180 	__ETHTOOL_A_STATS_RMON_CNT = 4,
65181 	ETHTOOL_A_STATS_RMON_MAX = 3,
65182 };
65183 
65184 enum {
65185 	ETHTOOL_A_MODULE_UNSPEC = 0,
65186 	ETHTOOL_A_MODULE_HEADER = 1,
65187 	ETHTOOL_A_MODULE_POWER_MODE_POLICY = 2,
65188 	ETHTOOL_A_MODULE_POWER_MODE = 3,
65189 	__ETHTOOL_A_MODULE_CNT = 4,
65190 	ETHTOOL_A_MODULE_MAX = 3,
65191 };
65192 
65193 enum {
65194 	ETHTOOL_A_PSE_UNSPEC = 0,
65195 	ETHTOOL_A_PSE_HEADER = 1,
65196 	ETHTOOL_A_PODL_PSE_ADMIN_STATE = 2,
65197 	ETHTOOL_A_PODL_PSE_ADMIN_CONTROL = 3,
65198 	ETHTOOL_A_PODL_PSE_PW_D_STATUS = 4,
65199 	__ETHTOOL_A_PSE_CNT = 5,
65200 	ETHTOOL_A_PSE_MAX = 4,
65201 };
65202 
65203 enum {
65204 	ETHTOOL_A_RSS_UNSPEC = 0,
65205 	ETHTOOL_A_RSS_HEADER = 1,
65206 	ETHTOOL_A_RSS_CONTEXT = 2,
65207 	ETHTOOL_A_RSS_HFUNC = 3,
65208 	ETHTOOL_A_RSS_INDIR = 4,
65209 	ETHTOOL_A_RSS_HKEY = 5,
65210 	__ETHTOOL_A_RSS_CNT = 6,
65211 	ETHTOOL_A_RSS_MAX = 5,
65212 };
65213 
65214 struct ethnl_req_info {
65215 	struct net_device *dev;
65216 	netdevice_tracker dev_tracker;
65217 	u32 flags;
65218 };
65219 
65220 struct ethnl_reply_data {
65221 	struct net_device *dev;
65222 };
65223 
65224 struct ethnl_request_ops {
65225 	u8 request_cmd;
65226 	u8 reply_cmd;
65227 	u16 hdr_attr;
65228 	unsigned int req_info_size;
65229 	unsigned int reply_data_size;
65230 	bool allow_nodev_do;
65231 	int (*parse_request)(struct ethnl_req_info *, struct nlattr **, struct netlink_ext_ack *);
65232 	int (*prepare_data)(const struct ethnl_req_info *, struct ethnl_reply_data *, struct genl_info *);
65233 	int (*reply_size)(const struct ethnl_req_info *, const struct ethnl_reply_data *);
65234 	int (*fill_reply)(struct sk_buff *, const struct ethnl_req_info *, const struct ethnl_reply_data *);
65235 	void (*cleanup_data)(struct ethnl_reply_data *);
65236 };
65237 
65238 struct strset_info {
65239 	bool per_dev;
65240 	bool free_strings;
65241 	unsigned int count;
65242 	const char (*strings)[32];
65243 };
65244 
65245 struct strset_req_info {
65246 	struct ethnl_req_info base;
65247 	u32 req_ids;
65248 	bool counts_only;
65249 };
65250 
65251 struct strset_reply_data {
65252 	struct ethnl_reply_data base;
65253 	struct strset_info sets[21];
65254 };
65255 
65256 struct linkstate_reply_data {
65257 	struct ethnl_reply_data base;
65258 	int link;
65259 	int sqi;
65260 	int sqi_max;
65261 	struct ethtool_link_ext_stats link_stats;
65262 	bool link_ext_state_provided;
65263 	struct ethtool_link_ext_state_info ethtool_link_ext_state_info;
65264 };
65265 
65266 typedef const char (* const ethnl_string_array_t)[32];
65267 
65268 struct privflags_reply_data {
65269 	struct ethnl_reply_data base;
65270 	const char (*priv_flag_names)[32];
65271 	unsigned int n_priv_flags;
65272 	u32 priv_flags;
65273 };
65274 
65275 enum {
65276 	ETHTOOL_A_PAUSE_STAT_UNSPEC = 0,
65277 	ETHTOOL_A_PAUSE_STAT_PAD = 1,
65278 	ETHTOOL_A_PAUSE_STAT_TX_FRAMES = 2,
65279 	ETHTOOL_A_PAUSE_STAT_RX_FRAMES = 3,
65280 	__ETHTOOL_A_PAUSE_STAT_CNT = 4,
65281 	ETHTOOL_A_PAUSE_STAT_MAX = 3,
65282 };
65283 
65284 struct pause_reply_data {
65285 	struct ethnl_reply_data base;
65286 	struct ethtool_pauseparam pauseparam;
65287 	struct ethtool_pause_stats pausestat;
65288 };
65289 
65290 enum {
65291 	ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC = 0,
65292 	ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT = 1,
65293 	ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE = 2,
65294 	__ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT = 3,
65295 	ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = 2,
65296 };
65297 
65298 enum {
65299 	ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC = 0,
65300 	ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE = 1,
65301 	ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES = 2,
65302 	ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY = 3,
65303 	__ETHTOOL_A_TUNNEL_UDP_TABLE_CNT = 4,
65304 	ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = 3,
65305 };
65306 
65307 enum {
65308 	ETHTOOL_A_TUNNEL_UDP_UNSPEC = 0,
65309 	ETHTOOL_A_TUNNEL_UDP_TABLE = 1,
65310 	__ETHTOOL_A_TUNNEL_UDP_CNT = 2,
65311 	ETHTOOL_A_TUNNEL_UDP_MAX = 1,
65312 };
65313 
65314 enum macsec_validation_type {
65315 	MACSEC_VALIDATE_DISABLED = 0,
65316 	MACSEC_VALIDATE_CHECK = 1,
65317 	MACSEC_VALIDATE_STRICT = 2,
65318 	__MACSEC_VALIDATE_END = 3,
65319 	MACSEC_VALIDATE_MAX = 2,
65320 };
65321 
65322 enum macsec_offload {
65323 	MACSEC_OFFLOAD_OFF = 0,
65324 	MACSEC_OFFLOAD_PHY = 1,
65325 	MACSEC_OFFLOAD_MAC = 2,
65326 	__MACSEC_OFFLOAD_END = 3,
65327 	MACSEC_OFFLOAD_MAX = 2,
65328 };
65329 
65330 struct ip_tunnel_parm {
65331 	char name[16];
65332 	int link;
65333 	__be16 i_flags;
65334 	__be16 o_flags;
65335 	__be32 i_key;
65336 	__be32 o_key;
65337 	struct iphdr iph;
65338 };
65339 
65340 struct fib_info;
65341 
65342 struct fib_nh {
65343 	struct fib_nh_common nh_common;
65344 	struct hlist_node nh_hash;
65345 	struct fib_info *nh_parent;
65346 	__u32 nh_tclassid;
65347 	__be32 nh_saddr;
65348 	int nh_saddr_genid;
65349 };
65350 
65351 struct fib_info {
65352 	struct hlist_node fib_hash;
65353 	struct hlist_node fib_lhash;
65354 	struct list_head nh_list;
65355 	struct net *fib_net;
65356 	refcount_t fib_treeref;
65357 	refcount_t fib_clntref;
65358 	unsigned int fib_flags;
65359 	unsigned char fib_dead;
65360 	unsigned char fib_protocol;
65361 	unsigned char fib_scope;
65362 	unsigned char fib_type;
65363 	__be32 fib_prefsrc;
65364 	u32 fib_tb_id;
65365 	u32 fib_priority;
65366 	struct dst_metrics *fib_metrics;
65367 	int fib_nhs;
65368 	bool fib_nh_is_v6;
65369 	bool nh_updated;
65370 	struct nexthop *nh;
65371 	struct callback_head rcu;
65372 	struct fib_nh fib_nh[0];
65373 };
65374 
65375 struct nh_info;
65376 
65377 struct nh_group;
65378 
65379 struct nexthop {
65380 	struct rb_node rb_node;
65381 	struct list_head fi_list;
65382 	struct list_head f6i_list;
65383 	struct list_head fdb_list;
65384 	struct list_head grp_list;
65385 	struct net *net;
65386 	u32 id;
65387 	u8 protocol;
65388 	u8 nh_flags;
65389 	bool is_group;
65390 	refcount_t refcnt;
65391 	struct callback_head rcu;
65392 	union {
65393 		struct nh_info *nh_info;
65394 		struct nh_group *nh_grp;
65395 	};
65396 };
65397 
65398 struct nh_info {
65399 	struct hlist_node dev_hash;
65400 	struct nexthop *nh_parent;
65401 	u8 family;
65402 	bool reject_nh;
65403 	bool fdb_nh;
65404 	union {
65405 		struct fib_nh_common fib_nhc;
65406 		struct fib_nh fib_nh;
65407 		struct fib6_nh fib6_nh;
65408 	};
65409 };
65410 
65411 struct nh_grp_entry;
65412 
65413 struct nh_res_bucket {
65414 	struct nh_grp_entry *nh_entry;
65415 	atomic_long_t used_time;
65416 	long unsigned int migrated_time;
65417 	bool occupied;
65418 	u8 nh_flags;
65419 };
65420 
65421 struct nh_grp_entry {
65422 	struct nexthop *nh;
65423 	u8 weight;
65424 	union {
65425 		struct {
65426 			atomic_t upper_bound;
65427 		} hthr;
65428 		struct {
65429 			struct list_head uw_nh_entry;
65430 			u16 count_buckets;
65431 			u16 wants_buckets;
65432 		} res;
65433 	};
65434 	struct list_head nh_list;
65435 	struct nexthop *nh_parent;
65436 };
65437 
65438 struct nh_res_table {
65439 	struct net *net;
65440 	u32 nhg_id;
65441 	struct delayed_work upkeep_dw;
65442 	struct list_head uw_nh_entries;
65443 	long unsigned int unbalanced_since;
65444 	u32 idle_timer;
65445 	u32 unbalanced_timer;
65446 	u16 num_nh_buckets;
65447 	struct nh_res_bucket nh_buckets[0];
65448 };
65449 
65450 struct nh_group {
65451 	struct nh_group *spare;
65452 	u16 num_nh;
65453 	bool is_multipath;
65454 	bool hash_threshold;
65455 	bool resilient;
65456 	bool fdb_nh;
65457 	bool has_v4;
65458 	struct nh_res_table *res_table;
65459 	struct nh_grp_entry nh_entries[0];
65460 };
65461 
65462 struct ip_tunnel_key {
65463 	__be64 tun_id;
65464 	union {
65465 		struct {
65466 			__be32 src;
65467 			__be32 dst;
65468 		} ipv4;
65469 		struct {
65470 			struct in6_addr src;
65471 			struct in6_addr dst;
65472 		} ipv6;
65473 	} u;
65474 	__be16 tun_flags;
65475 	u8 tos;
65476 	u8 ttl;
65477 	__be32 label;
65478 	__be16 tp_src;
65479 	__be16 tp_dst;
65480 	__u8 flow_flags;
65481 };
65482 
65483 struct ip_tunnel_info {
65484 	struct ip_tunnel_key key;
65485 	struct dst_cache dst_cache;
65486 	u8 options_len;
65487 	u8 mode;
65488 };
65489 
65490 enum udp_parsable_tunnel_type {
65491 	UDP_TUNNEL_TYPE_VXLAN = 1,
65492 	UDP_TUNNEL_TYPE_GENEVE = 2,
65493 	UDP_TUNNEL_TYPE_VXLAN_GPE = 4,
65494 };
65495 
65496 struct udp_tunnel_info {
65497 	short unsigned int type;
65498 	sa_family_t sa_family;
65499 	__be16 port;
65500 	u8 hw_priv;
65501 };
65502 
65503 enum udp_tunnel_nic_info_flags {
65504 	UDP_TUNNEL_NIC_INFO_MAY_SLEEP = 1,
65505 	UDP_TUNNEL_NIC_INFO_OPEN_ONLY = 2,
65506 	UDP_TUNNEL_NIC_INFO_IPV4_ONLY = 4,
65507 	UDP_TUNNEL_NIC_INFO_STATIC_IANA_VXLAN = 8,
65508 };
65509 
65510 struct udp_tunnel_nic_shared {
65511 	struct udp_tunnel_nic *udp_tunnel_nic_info;
65512 	struct list_head devices;
65513 };
65514 
65515 struct udp_tunnel_nic_ops {
65516 	void (*get_port)(struct net_device *, unsigned int, unsigned int, struct udp_tunnel_info *);
65517 	void (*set_port_priv)(struct net_device *, unsigned int, unsigned int, u8);
65518 	void (*add_port)(struct net_device *, struct udp_tunnel_info *);
65519 	void (*del_port)(struct net_device *, struct udp_tunnel_info *);
65520 	void (*reset_ntf)(struct net_device *);
65521 	size_t (*dump_size)(struct net_device *, unsigned int);
65522 	int (*dump_write)(struct net_device *, unsigned int, struct sk_buff *);
65523 };
65524 
65525 typedef u64 sci_t;
65526 
65527 typedef u32 ssci_t;
65528 
65529 union salt {
65530 	struct {
65531 		u32 ssci;
65532 		u64 pn;
65533 	} __attribute__((packed));
65534 	u8 bytes[12];
65535 };
65536 
65537 typedef union salt salt_t;
65538 
65539 union pn {
65540 	struct {
65541 		u32 lower;
65542 		u32 upper;
65543 	};
65544 	u64 full64;
65545 };
65546 
65547 typedef union pn pn_t;
65548 
65549 struct macsec_key {
65550 	u8 id[16];
65551 	struct crypto_aead *tfm;
65552 	salt_t salt;
65553 };
65554 
65555 struct macsec_rx_sc_stats {
65556 	__u64 InOctetsValidated;
65557 	__u64 InOctetsDecrypted;
65558 	__u64 InPktsUnchecked;
65559 	__u64 InPktsDelayed;
65560 	__u64 InPktsOK;
65561 	__u64 InPktsInvalid;
65562 	__u64 InPktsLate;
65563 	__u64 InPktsNotValid;
65564 	__u64 InPktsNotUsingSA;
65565 	__u64 InPktsUnusedSA;
65566 };
65567 
65568 struct macsec_rx_sa_stats {
65569 	__u32 InPktsOK;
65570 	__u32 InPktsInvalid;
65571 	__u32 InPktsNotValid;
65572 	__u32 InPktsNotUsingSA;
65573 	__u32 InPktsUnusedSA;
65574 };
65575 
65576 struct macsec_tx_sa_stats {
65577 	__u32 OutPktsProtected;
65578 	__u32 OutPktsEncrypted;
65579 };
65580 
65581 struct macsec_tx_sc_stats {
65582 	__u64 OutPktsProtected;
65583 	__u64 OutPktsEncrypted;
65584 	__u64 OutOctetsProtected;
65585 	__u64 OutOctetsEncrypted;
65586 };
65587 
65588 struct macsec_dev_stats {
65589 	__u64 OutPktsUntagged;
65590 	__u64 InPktsUntagged;
65591 	__u64 OutPktsTooLong;
65592 	__u64 InPktsNoTag;
65593 	__u64 InPktsBadTag;
65594 	__u64 InPktsUnknownSCI;
65595 	__u64 InPktsNoSCI;
65596 	__u64 InPktsOverrun;
65597 };
65598 
65599 struct macsec_rx_sc;
65600 
65601 struct macsec_rx_sa {
65602 	struct macsec_key key;
65603 	ssci_t ssci;
65604 	spinlock_t lock;
65605 	union {
65606 		pn_t next_pn_halves;
65607 		u64 next_pn;
65608 	};
65609 	refcount_t refcnt;
65610 	bool active;
65611 	struct macsec_rx_sa_stats *stats;
65612 	struct macsec_rx_sc *sc;
65613 	struct callback_head rcu;
65614 };
65615 
65616 struct pcpu_rx_sc_stats;
65617 
65618 struct macsec_rx_sc {
65619 	struct macsec_rx_sc *next;
65620 	sci_t sci;
65621 	bool active;
65622 	struct macsec_rx_sa *sa[4];
65623 	struct pcpu_rx_sc_stats *stats;
65624 	refcount_t refcnt;
65625 	struct callback_head callback_head;
65626 };
65627 
65628 struct pcpu_rx_sc_stats {
65629 	struct macsec_rx_sc_stats stats;
65630 	struct u64_stats_sync syncp;
65631 };
65632 
65633 struct pcpu_tx_sc_stats {
65634 	struct macsec_tx_sc_stats stats;
65635 	struct u64_stats_sync syncp;
65636 };
65637 
65638 struct macsec_tx_sa {
65639 	struct macsec_key key;
65640 	ssci_t ssci;
65641 	spinlock_t lock;
65642 	union {
65643 		pn_t next_pn_halves;
65644 		u64 next_pn;
65645 	};
65646 	refcount_t refcnt;
65647 	bool active;
65648 	struct macsec_tx_sa_stats *stats;
65649 	struct callback_head rcu;
65650 };
65651 
65652 struct metadata_dst;
65653 
65654 struct macsec_tx_sc {
65655 	bool active;
65656 	u8 encoding_sa;
65657 	bool encrypt;
65658 	bool send_sci;
65659 	bool end_station;
65660 	bool scb;
65661 	struct macsec_tx_sa *sa[4];
65662 	struct pcpu_tx_sc_stats *stats;
65663 	struct metadata_dst *md_dst;
65664 };
65665 
65666 enum metadata_type {
65667 	METADATA_IP_TUNNEL = 0,
65668 	METADATA_HW_PORT_MUX = 1,
65669 	METADATA_MACSEC = 2,
65670 	METADATA_XFRM = 3,
65671 };
65672 
65673 struct hw_port_info {
65674 	struct net_device *lower_dev;
65675 	u32 port_id;
65676 };
65677 
65678 struct macsec_info {
65679 	sci_t sci;
65680 };
65681 
65682 struct xfrm_md_info {
65683 	u32 if_id;
65684 	int link;
65685 	struct dst_entry *dst_orig;
65686 };
65687 
65688 struct metadata_dst {
65689 	struct dst_entry dst;
65690 	enum metadata_type type;
65691 	union {
65692 		struct ip_tunnel_info tun_info;
65693 		struct hw_port_info port_info;
65694 		struct macsec_info macsec_info;
65695 		struct xfrm_md_info xfrm_info;
65696 	} u;
65697 };
65698 
65699 struct macsec_secy {
65700 	struct net_device *netdev;
65701 	unsigned int n_rx_sc;
65702 	sci_t sci;
65703 	u16 key_len;
65704 	u16 icv_len;
65705 	enum macsec_validation_type validate_frames;
65706 	bool xpn;
65707 	bool operational;
65708 	bool protect_frames;
65709 	bool replay_protect;
65710 	u32 replay_window;
65711 	struct macsec_tx_sc tx_sc;
65712 	struct macsec_rx_sc *rx_sc;
65713 };
65714 
65715 struct macsec_context {
65716 	union {
65717 		struct net_device *netdev;
65718 		struct phy_device *phydev;
65719 	};
65720 	enum macsec_offload offload;
65721 	struct macsec_secy *secy;
65722 	struct macsec_rx_sc *rx_sc;
65723 	struct {
65724 		unsigned char assoc_num;
65725 		u8 key[128];
65726 		union {
65727 			struct macsec_rx_sa *rx_sa;
65728 			struct macsec_tx_sa *tx_sa;
65729 		};
65730 	} sa;
65731 	union {
65732 		struct macsec_tx_sc_stats *tx_sc_stats;
65733 		struct macsec_tx_sa_stats *tx_sa_stats;
65734 		struct macsec_rx_sc_stats *rx_sc_stats;
65735 		struct macsec_rx_sa_stats *rx_sa_stats;
65736 		struct macsec_dev_stats *dev_stats;
65737 	} stats;
65738 };
65739 
65740 struct genl_dumpit_info {
65741 	const struct genl_family *family;
65742 	struct genl_split_ops op;
65743 	struct nlattr **attrs;
65744 };
65745 
65746 struct ethnl_tunnel_info_dump_ctx {
65747 	struct ethnl_req_info req_info;
65748 	int pos_hash;
65749 	int pos_idx;
65750 };
65751 
65752 struct module_reply_data {
65753 	struct ethnl_reply_data base;
65754 	struct ethtool_module_power_mode_params power;
65755 };
65756 
65757 typedef u32 u_int32_t;
65758 
65759 struct nf_bridge_info {
65760 	enum {
65761 		BRNF_PROTO_UNCHANGED = 0,
65762 		BRNF_PROTO_8021Q = 1,
65763 		BRNF_PROTO_PPPOE = 2,
65764 	} orig_proto: 8;
65765 	u8 pkt_otherhost: 1;
65766 	u8 in_prerouting: 1;
65767 	u8 bridged_dnat: 1;
65768 	__u16 frag_max_size;
65769 	struct net_device *physindev;
65770 	struct net_device *physoutdev;
65771 	union {
65772 		__be32 ipv4_daddr;
65773 		struct in6_addr ipv6_daddr;
65774 		char neigh_header[8];
65775 	};
65776 };
65777 
65778 struct nf_hook_state;
65779 
65780 typedef unsigned int nf_hookfn(void *, struct sk_buff *, const struct nf_hook_state *);
65781 
65782 struct nf_hook_entry {
65783 	nf_hookfn *hook;
65784 	void *priv;
65785 };
65786 
65787 struct nf_hook_entries {
65788 	u16 num_hook_entries;
65789 	struct nf_hook_entry hooks[0];
65790 };
65791 
65792 struct nf_hook_state {
65793 	u8 hook;
65794 	u8 pf;
65795 	struct net_device *in;
65796 	struct net_device *out;
65797 	struct sock *sk;
65798 	struct net *net;
65799 	int (*okfn)(struct net *, struct sock *, struct sk_buff *);
65800 };
65801 
65802 struct ip_rt_info {
65803 	__be32 daddr;
65804 	__be32 saddr;
65805 	u_int8_t tos;
65806 	u_int32_t mark;
65807 };
65808 
65809 struct ipv6hdr {
65810 	__u8 priority: 4;
65811 	__u8 version: 4;
65812 	__u8 flow_lbl[3];
65813 	__be16 payload_len;
65814 	__u8 nexthdr;
65815 	__u8 hop_limit;
65816 	union {
65817 		struct {
65818 			struct in6_addr saddr;
65819 			struct in6_addr daddr;
65820 		};
65821 		struct {
65822 			struct in6_addr saddr;
65823 			struct in6_addr daddr;
65824 		} addrs;
65825 	};
65826 };
65827 
65828 struct ip6_rt_info {
65829 	struct in6_addr daddr;
65830 	struct in6_addr saddr;
65831 	u_int32_t mark;
65832 };
65833 
65834 struct nf_queue_entry {
65835 	struct list_head list;
65836 	struct sk_buff *skb;
65837 	unsigned int id;
65838 	unsigned int hook_index;
65839 	struct net_device *physin;
65840 	struct net_device *physout;
65841 	struct nf_hook_state state;
65842 	u16 size;
65843 };
65844 
65845 enum l2tp_debug_flags {
65846 	L2TP_MSG_DEBUG = 1,
65847 	L2TP_MSG_CONTROL = 2,
65848 	L2TP_MSG_SEQ = 4,
65849 	L2TP_MSG_DATA = 8,
65850 };
65851 
65852 struct nf_queue_handler {
65853 	int (*outfn)(struct nf_queue_entry *, unsigned int);
65854 	void (*nf_hook_drop)(struct net *);
65855 };
65856 
65857 typedef u16 u_int16_t;
65858 
65859 struct xt_action_param;
65860 
65861 struct xt_mtchk_param;
65862 
65863 struct xt_mtdtor_param;
65864 
65865 struct xt_match {
65866 	struct list_head list;
65867 	const char name[29];
65868 	u_int8_t revision;
65869 	bool (*match)(const struct sk_buff *, struct xt_action_param *);
65870 	int (*checkentry)(const struct xt_mtchk_param *);
65871 	void (*destroy)(const struct xt_mtdtor_param *);
65872 	struct module *me;
65873 	const char *table;
65874 	unsigned int matchsize;
65875 	unsigned int usersize;
65876 	unsigned int hooks;
65877 	short unsigned int proto;
65878 	short unsigned int family;
65879 };
65880 
65881 struct xt_tgchk_param;
65882 
65883 struct xt_tgdtor_param;
65884 
65885 struct xt_target {
65886 	struct list_head list;
65887 	const char name[29];
65888 	u_int8_t revision;
65889 	unsigned int (*target)(struct sk_buff *, const struct xt_action_param *);
65890 	int (*checkentry)(const struct xt_tgchk_param *);
65891 	void (*destroy)(const struct xt_tgdtor_param *);
65892 	struct module *me;
65893 	const char *table;
65894 	unsigned int targetsize;
65895 	unsigned int usersize;
65896 	unsigned int hooks;
65897 	short unsigned int proto;
65898 	short unsigned int family;
65899 };
65900 
65901 struct xt_action_param {
65902 	union {
65903 		const struct xt_match *match;
65904 		const struct xt_target *target;
65905 	};
65906 	union {
65907 		const void *matchinfo;
65908 		const void *targinfo;
65909 	};
65910 	const struct nf_hook_state *state;
65911 	unsigned int thoff;
65912 	u16 fragoff;
65913 	bool hotdrop;
65914 };
65915 
65916 struct xt_mtchk_param {
65917 	struct net *net;
65918 	const char *table;
65919 	const void *entryinfo;
65920 	const struct xt_match *match;
65921 	void *matchinfo;
65922 	unsigned int hook_mask;
65923 	u_int8_t family;
65924 	bool nft_compat;
65925 };
65926 
65927 struct xt_mtdtor_param {
65928 	struct net *net;
65929 	const struct xt_match *match;
65930 	void *matchinfo;
65931 	u_int8_t family;
65932 };
65933 
65934 struct xt_tgchk_param {
65935 	struct net *net;
65936 	const char *table;
65937 	const void *entryinfo;
65938 	const struct xt_target *target;
65939 	void *targinfo;
65940 	unsigned int hook_mask;
65941 	u_int8_t family;
65942 	bool nft_compat;
65943 };
65944 
65945 struct xt_tgdtor_param {
65946 	struct net *net;
65947 	const struct xt_target *target;
65948 	void *targinfo;
65949 	u_int8_t family;
65950 };
65951 
65952 struct xt_tcp {
65953 	__u16 spts[2];
65954 	__u16 dpts[2];
65955 	__u8 option;
65956 	__u8 flg_mask;
65957 	__u8 flg_cmp;
65958 	__u8 invflags;
65959 };
65960 
65961 struct xt_udp {
65962 	__u16 spts[2];
65963 	__u16 dpts[2];
65964 	__u8 invflags;
65965 };
65966 
65967 struct net_offload {
65968 	struct offload_callbacks callbacks;
65969 	unsigned int flags;
65970 };
65971 
65972 enum {
65973 	XFRM_DEV_OFFLOAD_UNSPECIFIED = 0,
65974 	XFRM_DEV_OFFLOAD_CRYPTO = 1,
65975 	XFRM_DEV_OFFLOAD_PACKET = 2,
65976 };
65977 
65978 struct xfrm_offload {
65979 	struct {
65980 		__u32 low;
65981 		__u32 hi;
65982 	} seq;
65983 	__u32 flags;
65984 	__u32 status;
65985 	__u8 proto;
65986 	__u8 inner_ipproto;
65987 };
65988 
65989 struct sec_path {
65990 	int len;
65991 	int olen;
65992 	struct xfrm_state *xvec[6];
65993 	struct xfrm_offload ovec[1];
65994 };
65995 
65996 struct inet_timewait_sock {
65997 	struct sock_common __tw_common;
65998 	__u32 tw_mark;
65999 	volatile unsigned char tw_substate;
66000 	unsigned char tw_rcv_wscale;
66001 	__be16 tw_sport;
66002 	unsigned int tw_transparent: 1;
66003 	unsigned int tw_flowlabel: 20;
66004 	unsigned int tw_pad: 3;
66005 	unsigned int tw_tos: 8;
66006 	u32 tw_txhash;
66007 	u32 tw_priority;
66008 	struct timer_list tw_timer;
66009 	struct inet_bind_bucket *tw_tb;
66010 	struct inet_bind2_bucket *tw_tb2;
66011 	struct hlist_node tw_bind2_node;
66012 };
66013 
66014 struct bpf_sk_lookup_kern {
66015 	u16 family;
66016 	u16 protocol;
66017 	__be16 sport;
66018 	u16 dport;
66019 	struct {
66020 		__be32 saddr;
66021 		__be32 daddr;
66022 	} v4;
66023 	struct {
66024 		const struct in6_addr *saddr;
66025 		const struct in6_addr *daddr;
66026 	} v6;
66027 	struct sock *selected_sk;
66028 	u32 ingress_ifindex;
66029 	bool no_reuseport;
66030 };
66031 
66032 enum {
66033 	SKBTX_HW_TSTAMP = 1,
66034 	SKBTX_SW_TSTAMP = 2,
66035 	SKBTX_IN_PROGRESS = 4,
66036 	SKBTX_HW_TSTAMP_USE_CYCLES = 8,
66037 	SKBTX_WIFI_STATUS = 16,
66038 	SKBTX_HW_TSTAMP_NETDEV = 32,
66039 	SKBTX_SCHED_TSTAMP = 64,
66040 };
66041 
66042 enum {
66043 	SKB_FCLONE_UNAVAILABLE = 0,
66044 	SKB_FCLONE_ORIG = 1,
66045 	SKB_FCLONE_CLONE = 2,
66046 };
66047 
66048 struct sk_buff_fclones {
66049 	struct sk_buff skb1;
66050 	struct sk_buff skb2;
66051 	refcount_t fclone_ref;
66052 };
66053 
66054 struct inet_request_sock {
66055 	struct request_sock req;
66056 	u16 snd_wscale: 4;
66057 	u16 rcv_wscale: 4;
66058 	u16 tstamp_ok: 1;
66059 	u16 sack_ok: 1;
66060 	u16 wscale_ok: 1;
66061 	u16 ecn_ok: 1;
66062 	u16 acked: 1;
66063 	u16 no_srccheck: 1;
66064 	u16 smc_ok: 1;
66065 	u32 ir_mark;
66066 	union {
66067 		struct ip_options_rcu *ireq_opt;
66068 		struct {
66069 			struct ipv6_txoptions *ipv6_opt;
66070 			struct sk_buff *pktopts;
66071 		};
66072 	};
66073 };
66074 
66075 enum inet_csk_ack_state_t {
66076 	ICSK_ACK_SCHED = 1,
66077 	ICSK_ACK_TIMER = 2,
66078 	ICSK_ACK_PUSHED = 4,
66079 	ICSK_ACK_PUSHED2 = 8,
66080 	ICSK_ACK_NOW = 16,
66081 };
66082 
66083 enum {
66084 	TCP_NO_QUEUE = 0,
66085 	TCP_RECV_QUEUE = 1,
66086 	TCP_SEND_QUEUE = 2,
66087 	TCP_QUEUES_NR = 3,
66088 };
66089 
66090 enum tcp_ca_state {
66091 	TCP_CA_Open = 0,
66092 	TCP_CA_Disorder = 1,
66093 	TCP_CA_CWR = 2,
66094 	TCP_CA_Recovery = 3,
66095 	TCP_CA_Loss = 4,
66096 };
66097 
66098 struct tcp_request_sock_ops;
66099 
66100 struct tcp_request_sock {
66101 	struct inet_request_sock req;
66102 	const struct tcp_request_sock_ops *af_specific;
66103 	u64 snt_synack;
66104 	bool tfo_listener;
66105 	bool is_mptcp;
66106 	u32 txhash;
66107 	u32 rcv_isn;
66108 	u32 snt_isn;
66109 	u32 ts_off;
66110 	u32 last_oow_ack_time;
66111 	u32 rcv_nxt;
66112 	u8 syn_tos;
66113 };
66114 
66115 enum tcp_synack_type {
66116 	TCP_SYNACK_NORMAL = 0,
66117 	TCP_SYNACK_FASTOPEN = 1,
66118 	TCP_SYNACK_COOKIE = 2,
66119 };
66120 
66121 struct tcp_request_sock_ops {
66122 	u16 mss_clamp;
66123 	__u32 (*cookie_init_seq)(const struct sk_buff *, __u16 *);
66124 	struct dst_entry * (*route_req)(const struct sock *, struct sk_buff *, struct flowi *, struct request_sock *);
66125 	u32 (*init_seq)(const struct sk_buff *);
66126 	u32 (*init_ts_off)(const struct net *, const struct sk_buff *);
66127 	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 *);
66128 };
66129 
66130 enum tsq_flags {
66131 	TSQF_THROTTLED = 1,
66132 	TSQF_QUEUED = 2,
66133 	TCPF_TSQ_DEFERRED = 4,
66134 	TCPF_WRITE_TIMER_DEFERRED = 8,
66135 	TCPF_DELACK_TIMER_DEFERRED = 16,
66136 	TCPF_MTU_REDUCED_DEFERRED = 32,
66137 };
66138 
66139 enum {
66140 	BPF_SOCK_OPS_RTO_CB_FLAG = 1,
66141 	BPF_SOCK_OPS_RETRANS_CB_FLAG = 2,
66142 	BPF_SOCK_OPS_STATE_CB_FLAG = 4,
66143 	BPF_SOCK_OPS_RTT_CB_FLAG = 8,
66144 	BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG = 16,
66145 	BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = 32,
66146 	BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG = 64,
66147 	BPF_SOCK_OPS_ALL_CB_FLAGS = 127,
66148 };
66149 
66150 enum {
66151 	BPF_WRITE_HDR_TCP_CURRENT_MSS = 1,
66152 	BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 2,
66153 };
66154 
66155 enum {
66156 	INET_ECN_NOT_ECT = 0,
66157 	INET_ECN_ECT_1 = 1,
66158 	INET_ECN_ECT_0 = 2,
66159 	INET_ECN_CE = 3,
66160 	INET_ECN_MASK = 3,
66161 };
66162 
66163 struct mptcp_out_options {};
66164 
66165 enum tcp_queue {
66166 	TCP_FRAG_IN_WRITE_QUEUE = 0,
66167 	TCP_FRAG_IN_RTX_QUEUE = 1,
66168 };
66169 
66170 struct tcp_skb_cb {
66171 	__u32 seq;
66172 	__u32 end_seq;
66173 	union {
66174 		__u32 tcp_tw_isn;
66175 		struct {
66176 			u16 tcp_gso_segs;
66177 			u16 tcp_gso_size;
66178 		};
66179 	};
66180 	__u8 tcp_flags;
66181 	__u8 sacked;
66182 	__u8 ip_dsfield;
66183 	__u8 txstamp_ack: 1;
66184 	__u8 eor: 1;
66185 	__u8 has_rxtstamp: 1;
66186 	__u8 unused: 5;
66187 	__u32 ack_seq;
66188 	union {
66189 		struct {
66190 			__u32 is_app_limited: 1;
66191 			__u32 delivered_ce: 20;
66192 			__u32 unused: 11;
66193 			__u32 delivered;
66194 			u64 first_tx_mstamp;
66195 			u64 delivered_mstamp;
66196 		} tx;
66197 		union {
66198 			struct inet_skb_parm h4;
66199 			struct inet6_skb_parm h6;
66200 		} header;
66201 	};
66202 };
66203 
66204 union tcp_md5_addr {
66205 	struct in_addr a4;
66206 	struct in6_addr a6;
66207 };
66208 
66209 struct tcp_md5sig_key {
66210 	struct hlist_node node;
66211 	u8 keylen;
66212 	u8 family;
66213 	u8 prefixlen;
66214 	u8 flags;
66215 	union tcp_md5_addr addr;
66216 	int l3index;
66217 	u8 key[80];
66218 	struct callback_head rcu;
66219 };
66220 
66221 enum tcp_chrono {
66222 	TCP_CHRONO_UNSPEC = 0,
66223 	TCP_CHRONO_BUSY = 1,
66224 	TCP_CHRONO_RWND_LIMITED = 2,
66225 	TCP_CHRONO_SNDBUF_LIMITED = 3,
66226 	__TCP_CHRONO_MAX = 4,
66227 };
66228 
66229 struct tcp_out_options {
66230 	u16 options;
66231 	u16 mss;
66232 	u8 ws;
66233 	u8 num_sack_blocks;
66234 	u8 hash_size;
66235 	u8 bpf_opt_len;
66236 	__u8 *hash_location;
66237 	__u32 tsval;
66238 	__u32 tsecr;
66239 	struct tcp_fastopen_cookie *fastopen_cookie;
66240 	struct mptcp_out_options mptcp;
66241 };
66242 
66243 struct tsq_tasklet {
66244 	struct tasklet_struct tasklet;
66245 	struct list_head head;
66246 };
66247 
66248 enum {
66249 	XFRM_POLICY_TYPE_MAIN = 0,
66250 	XFRM_POLICY_TYPE_SUB = 1,
66251 	XFRM_POLICY_TYPE_MAX = 2,
66252 	XFRM_POLICY_TYPE_ANY = 255,
66253 };
66254 
66255 enum {
66256 	XFRM_MSG_BASE = 16,
66257 	XFRM_MSG_NEWSA = 16,
66258 	XFRM_MSG_DELSA = 17,
66259 	XFRM_MSG_GETSA = 18,
66260 	XFRM_MSG_NEWPOLICY = 19,
66261 	XFRM_MSG_DELPOLICY = 20,
66262 	XFRM_MSG_GETPOLICY = 21,
66263 	XFRM_MSG_ALLOCSPI = 22,
66264 	XFRM_MSG_ACQUIRE = 23,
66265 	XFRM_MSG_EXPIRE = 24,
66266 	XFRM_MSG_UPDPOLICY = 25,
66267 	XFRM_MSG_UPDSA = 26,
66268 	XFRM_MSG_POLEXPIRE = 27,
66269 	XFRM_MSG_FLUSHSA = 28,
66270 	XFRM_MSG_FLUSHPOLICY = 29,
66271 	XFRM_MSG_NEWAE = 30,
66272 	XFRM_MSG_GETAE = 31,
66273 	XFRM_MSG_REPORT = 32,
66274 	XFRM_MSG_MIGRATE = 33,
66275 	XFRM_MSG_NEWSADINFO = 34,
66276 	XFRM_MSG_GETSADINFO = 35,
66277 	XFRM_MSG_NEWSPDINFO = 36,
66278 	XFRM_MSG_GETSPDINFO = 37,
66279 	XFRM_MSG_MAPPING = 38,
66280 	XFRM_MSG_SETDEFAULT = 39,
66281 	XFRM_MSG_GETDEFAULT = 40,
66282 	__XFRM_MSG_MAX = 41,
66283 };
66284 
66285 enum xfrm_attr_type_t {
66286 	XFRMA_UNSPEC = 0,
66287 	XFRMA_ALG_AUTH = 1,
66288 	XFRMA_ALG_CRYPT = 2,
66289 	XFRMA_ALG_COMP = 3,
66290 	XFRMA_ENCAP = 4,
66291 	XFRMA_TMPL = 5,
66292 	XFRMA_SA = 6,
66293 	XFRMA_POLICY = 7,
66294 	XFRMA_SEC_CTX = 8,
66295 	XFRMA_LTIME_VAL = 9,
66296 	XFRMA_REPLAY_VAL = 10,
66297 	XFRMA_REPLAY_THRESH = 11,
66298 	XFRMA_ETIMER_THRESH = 12,
66299 	XFRMA_SRCADDR = 13,
66300 	XFRMA_COADDR = 14,
66301 	XFRMA_LASTUSED = 15,
66302 	XFRMA_POLICY_TYPE = 16,
66303 	XFRMA_MIGRATE = 17,
66304 	XFRMA_ALG_AEAD = 18,
66305 	XFRMA_KMADDRESS = 19,
66306 	XFRMA_ALG_AUTH_TRUNC = 20,
66307 	XFRMA_MARK = 21,
66308 	XFRMA_TFCPAD = 22,
66309 	XFRMA_REPLAY_ESN_VAL = 23,
66310 	XFRMA_SA_EXTRA_FLAGS = 24,
66311 	XFRMA_PROTO = 25,
66312 	XFRMA_ADDRESS_FILTER = 26,
66313 	XFRMA_PAD = 27,
66314 	XFRMA_OFFLOAD_DEV = 28,
66315 	XFRMA_SET_MARK = 29,
66316 	XFRMA_SET_MARK_MASK = 30,
66317 	XFRMA_IF_ID = 31,
66318 	XFRMA_MTIMER_THRESH = 32,
66319 	__XFRMA_MAX = 33,
66320 };
66321 
66322 union tcp_word_hdr {
66323 	struct tcphdr hdr;
66324 	__be32 words[5];
66325 };
66326 
66327 enum {
66328 	TCP_FLAG_CWR = 32768,
66329 	TCP_FLAG_ECE = 16384,
66330 	TCP_FLAG_URG = 8192,
66331 	TCP_FLAG_ACK = 4096,
66332 	TCP_FLAG_PSH = 2048,
66333 	TCP_FLAG_RST = 1024,
66334 	TCP_FLAG_SYN = 512,
66335 	TCP_FLAG_FIN = 256,
66336 	TCP_RESERVED_BITS = 15,
66337 	TCP_DATA_OFFSET = 240,
66338 };
66339 
66340 struct tcp_timewait_sock {
66341 	struct inet_timewait_sock tw_sk;
66342 	u32 tw_rcv_wnd;
66343 	u32 tw_ts_offset;
66344 	u32 tw_ts_recent;
66345 	u32 tw_last_oow_ack_time;
66346 	int tw_ts_recent_stamp;
66347 	u32 tw_tx_delay;
66348 };
66349 
66350 enum tcp_tw_status {
66351 	TCP_TW_SUCCESS = 0,
66352 	TCP_TW_RST = 1,
66353 	TCP_TW_ACK = 2,
66354 	TCP_TW_SYN = 3,
66355 };
66356 
66357 struct skb_gso_cb {
66358 	union {
66359 		int mac_offset;
66360 		int data_offset;
66361 	};
66362 	int encap_level;
66363 	__wsum csum;
66364 	__u16 csum_start;
66365 };
66366 
66367 struct ip_mreqn {
66368 	struct in_addr imr_multiaddr;
66369 	struct in_addr imr_address;
66370 	int imr_ifindex;
66371 };
66372 
66373 struct sockaddr_in {
66374 	__kernel_sa_family_t sin_family;
66375 	__be16 sin_port;
66376 	struct in_addr sin_addr;
66377 	unsigned char __pad[8];
66378 };
66379 
66380 struct nf_conntrack {
66381 	refcount_t use;
66382 };
66383 
66384 enum rt_scope_t {
66385 	RT_SCOPE_UNIVERSE = 0,
66386 	RT_SCOPE_SITE = 200,
66387 	RT_SCOPE_LINK = 253,
66388 	RT_SCOPE_HOST = 254,
66389 	RT_SCOPE_NOWHERE = 255,
66390 };
66391 
66392 struct nl_info {
66393 	struct nlmsghdr *nlh;
66394 	struct net *nl_net;
66395 	u32 portid;
66396 	u8 skip_notify: 1;
66397 	u8 skip_notify_kernel: 1;
66398 };
66399 
66400 struct ip_sf_socklist {
66401 	unsigned int sl_max;
66402 	unsigned int sl_count;
66403 	struct callback_head rcu;
66404 	__be32 sl_addr[0];
66405 };
66406 
66407 struct ip_mc_socklist {
66408 	struct ip_mc_socklist *next_rcu;
66409 	struct ip_mreqn multi;
66410 	unsigned int sfmode;
66411 	struct ip_sf_socklist *sflist;
66412 	struct callback_head rcu;
66413 };
66414 
66415 struct ip_sf_list {
66416 	struct ip_sf_list *sf_next;
66417 	long unsigned int sf_count[2];
66418 	__be32 sf_inaddr;
66419 	unsigned char sf_gsresp;
66420 	unsigned char sf_oldin;
66421 	unsigned char sf_crcount;
66422 };
66423 
66424 struct ip_mc_list {
66425 	struct in_device *interface;
66426 	__be32 multiaddr;
66427 	unsigned int sfmode;
66428 	struct ip_sf_list *sources;
66429 	struct ip_sf_list *tomb;
66430 	long unsigned int sfcount[2];
66431 	union {
66432 		struct ip_mc_list *next;
66433 		struct ip_mc_list *next_rcu;
66434 	};
66435 	struct ip_mc_list *next_hash;
66436 	struct timer_list timer;
66437 	int users;
66438 	refcount_t refcnt;
66439 	spinlock_t lock;
66440 	char tm_running;
66441 	char reporter;
66442 	char unsolicit_count;
66443 	char loaded;
66444 	unsigned char gsquery;
66445 	unsigned char crcount;
66446 	struct callback_head rcu;
66447 };
66448 
66449 struct icmphdr {
66450 	__u8 type;
66451 	__u8 code;
66452 	__sum16 checksum;
66453 	union {
66454 		struct {
66455 			__be16 id;
66456 			__be16 sequence;
66457 		} echo;
66458 		__be32 gateway;
66459 		struct {
66460 			__be16 __unused;
66461 			__be16 mtu;
66462 		} frag;
66463 		__u8 reserved[4];
66464 	} un;
66465 };
66466 
66467 struct ip_options_data {
66468 	struct ip_options_rcu opt;
66469 	char data[40];
66470 };
66471 
66472 struct udp_sock {
66473 	struct inet_sock inet;
66474 	int pending;
66475 	unsigned int corkflag;
66476 	__u8 encap_type;
66477 	unsigned char no_check6_tx: 1;
66478 	unsigned char no_check6_rx: 1;
66479 	unsigned char encap_enabled: 1;
66480 	unsigned char gro_enabled: 1;
66481 	unsigned char accept_udp_l4: 1;
66482 	unsigned char accept_udp_fraglist: 1;
66483 	__u16 len;
66484 	__u16 gso_size;
66485 	__u16 pcslen;
66486 	__u16 pcrlen;
66487 	__u8 pcflag;
66488 	__u8 unused[3];
66489 	int (*encap_rcv)(struct sock *, struct sk_buff *);
66490 	void (*encap_err_rcv)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *);
66491 	int (*encap_err_lookup)(struct sock *, struct sk_buff *);
66492 	void (*encap_destroy)(struct sock *);
66493 	struct sk_buff * (*gro_receive)(struct sock *, struct list_head *, struct sk_buff *);
66494 	int (*gro_complete)(struct sock *, struct sk_buff *, int);
66495 	long: 64;
66496 	long: 64;
66497 	long: 64;
66498 	long: 64;
66499 	struct sk_buff_head reader_queue;
66500 	int forward_deficit;
66501 	int forward_threshold;
66502 	long: 64;
66503 	long: 64;
66504 	long: 64;
66505 	long: 64;
66506 };
66507 
66508 struct fib6_result;
66509 
66510 struct fib6_config;
66511 
66512 struct ipv6_stub {
66513 	int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
66514 	int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
66515 	struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
66516 	int (*ipv6_route_input)(struct sk_buff *);
66517 	struct fib6_table * (*fib6_get_table)(struct net *, u32);
66518 	int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
66519 	int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
66520 	void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
66521 	u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
66522 	int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
66523 	void (*fib6_nh_release)(struct fib6_nh *);
66524 	void (*fib6_nh_release_dsts)(struct fib6_nh *);
66525 	void (*fib6_update_sernum)(struct net *, struct fib6_info *);
66526 	int (*ip6_del_rt)(struct net *, struct fib6_info *, bool);
66527 	void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
66528 	void (*udpv6_encap_enable)();
66529 	void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
66530 	void (*xfrm6_local_rxpmtu)(struct sk_buff *, u32);
66531 	int (*xfrm6_udp_encap_rcv)(struct sock *, struct sk_buff *);
66532 	int (*xfrm6_rcv_encap)(struct sk_buff *, int, __be32, int);
66533 	struct neigh_table *nd_tbl;
66534 	int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *));
66535 	struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *);
66536 };
66537 
66538 struct fib6_result {
66539 	struct fib6_nh *nh;
66540 	struct fib6_info *f6i;
66541 	u32 fib6_flags;
66542 	u8 fib6_type;
66543 	struct rt6_info *rt6;
66544 };
66545 
66546 struct fib6_config {
66547 	u32 fc_table;
66548 	u32 fc_metric;
66549 	int fc_dst_len;
66550 	int fc_src_len;
66551 	int fc_ifindex;
66552 	u32 fc_flags;
66553 	u32 fc_protocol;
66554 	u16 fc_type;
66555 	u16 fc_delete_all_nh: 1;
66556 	u16 fc_ignore_dev_down: 1;
66557 	u16 __unused: 14;
66558 	u32 fc_nh_id;
66559 	struct in6_addr fc_dst;
66560 	struct in6_addr fc_src;
66561 	struct in6_addr fc_prefsrc;
66562 	struct in6_addr fc_gateway;
66563 	long unsigned int fc_expires;
66564 	struct nlattr *fc_mx;
66565 	int fc_mx_len;
66566 	int fc_mp_len;
66567 	struct nlattr *fc_mp;
66568 	struct nl_info fc_nlinfo;
66569 	struct nlattr *fc_encap;
66570 	u16 fc_encap_type;
66571 	bool fc_is_fdb;
66572 };
66573 
66574 struct ipcm_cookie {
66575 	struct sockcm_cookie sockc;
66576 	__be32 addr;
66577 	int oif;
66578 	struct ip_options_rcu *opt;
66579 	__u8 ttl;
66580 	__s16 tos;
66581 	char priority;
66582 	__u16 gso_size;
66583 };
66584 
66585 struct icmp_err {
66586 	int errno;
66587 	unsigned int fatal: 1;
66588 };
66589 
66590 struct ip_tunnel_encap {
66591 	u16 type;
66592 	u16 flags;
66593 	__be16 sport;
66594 	__be16 dport;
66595 };
66596 
66597 struct ip_tunnel_encap_ops {
66598 	size_t (*encap_hlen)(struct ip_tunnel_encap *);
66599 	int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi4 *);
66600 	int (*err_handler)(struct sk_buff *, u32);
66601 };
66602 
66603 struct udp_skb_cb {
66604 	union {
66605 		struct inet_skb_parm h4;
66606 		struct inet6_skb_parm h6;
66607 	} header;
66608 	__u16 cscov;
66609 	__u8 partial_cov;
66610 };
66611 
66612 struct udp_dev_scratch {
66613 	u32 _tsize_state;
66614 	u16 len;
66615 	bool is_linear;
66616 	bool csum_unnecessary;
66617 };
66618 
66619 struct udp_seq_afinfo {
66620 	sa_family_t family;
66621 	struct udp_table *udp_table;
66622 };
66623 
66624 struct udp_iter_state {
66625 	struct seq_net_private p;
66626 	int bucket;
66627 	struct udp_seq_afinfo *bpf_seq_afinfo;
66628 };
66629 
66630 struct bpf_iter__udp {
66631 	union {
66632 		struct bpf_iter_meta *meta;
66633 	};
66634 	union {
66635 		struct udp_sock *udp_sk;
66636 	};
66637 	uid_t uid;
66638 	int: 32;
66639 	int bucket;
66640 };
66641 
66642 struct rhltable {
66643 	struct rhashtable ht;
66644 };
66645 
66646 struct ip_mreq_source {
66647 	__be32 imr_multiaddr;
66648 	__be32 imr_interface;
66649 	__be32 imr_sourceaddr;
66650 };
66651 
66652 struct ip_msfilter {
66653 	__be32 imsf_multiaddr;
66654 	__be32 imsf_interface;
66655 	__u32 imsf_fmode;
66656 	__u32 imsf_numsrc;
66657 	union {
66658 		__be32 imsf_slist[1];
66659 		struct {
66660 			struct {			} __empty_imsf_slist_flex;
66661 			__be32 imsf_slist_flex[0];
66662 		};
66663 	};
66664 };
66665 
66666 struct group_filter {
66667 	union {
66668 		struct {
66669 			__u32 gf_interface_aux;
66670 			struct __kernel_sockaddr_storage gf_group_aux;
66671 			__u32 gf_fmode_aux;
66672 			__u32 gf_numsrc_aux;
66673 			struct __kernel_sockaddr_storage gf_slist[1];
66674 		};
66675 		struct {
66676 			__u32 gf_interface;
66677 			struct __kernel_sockaddr_storage gf_group;
66678 			__u32 gf_fmode;
66679 			__u32 gf_numsrc;
66680 			struct __kernel_sockaddr_storage gf_slist_flex[0];
66681 		};
66682 	};
66683 };
66684 
66685 struct mr_table_ops {
66686 	const struct rhashtable_params *rht_params;
66687 	void *cmparg_any;
66688 };
66689 
66690 struct vif_device {
66691 	struct net_device *dev;
66692 	netdevice_tracker dev_tracker;
66693 	long unsigned int bytes_in;
66694 	long unsigned int bytes_out;
66695 	long unsigned int pkt_in;
66696 	long unsigned int pkt_out;
66697 	long unsigned int rate_limit;
66698 	unsigned char threshold;
66699 	short unsigned int flags;
66700 	int link;
66701 	struct netdev_phys_item_id dev_parent_id;
66702 	__be32 local;
66703 	__be32 remote;
66704 };
66705 
66706 struct mr_table {
66707 	struct list_head list;
66708 	possible_net_t net;
66709 	struct mr_table_ops ops;
66710 	u32 id;
66711 	struct sock *mroute_sk;
66712 	struct timer_list ipmr_expire_timer;
66713 	struct list_head mfc_unres_queue;
66714 	struct vif_device vif_table[32];
66715 	struct rhltable mfc_hash;
66716 	struct list_head mfc_cache_list;
66717 	int maxvif;
66718 	atomic_t cache_resolve_queue_len;
66719 	bool mroute_do_assert;
66720 	bool mroute_do_pim;
66721 	bool mroute_do_wrvifwhole;
66722 	int mroute_reg_vif_num;
66723 };
66724 
66725 struct igmphdr {
66726 	__u8 type;
66727 	__u8 code;
66728 	__sum16 csum;
66729 	__be32 group;
66730 };
66731 
66732 struct igmpv3_grec {
66733 	__u8 grec_type;
66734 	__u8 grec_auxwords;
66735 	__be16 grec_nsrcs;
66736 	__be32 grec_mca;
66737 	__be32 grec_src[0];
66738 };
66739 
66740 struct igmpv3_report {
66741 	__u8 type;
66742 	__u8 resv1;
66743 	__sum16 csum;
66744 	__be16 resv2;
66745 	__be16 ngrec;
66746 	struct igmpv3_grec grec[0];
66747 };
66748 
66749 struct igmpv3_query {
66750 	__u8 type;
66751 	__u8 code;
66752 	__sum16 csum;
66753 	__be32 group;
66754 	__u8 qrv: 3;
66755 	__u8 suppress: 1;
66756 	__u8 resv: 4;
66757 	__u8 qqic;
66758 	__be16 nsrcs;
66759 	__be32 srcs[0];
66760 };
66761 
66762 struct igmp_mc_iter_state {
66763 	struct seq_net_private p;
66764 	struct net_device *dev;
66765 	struct in_device *in_dev;
66766 };
66767 
66768 struct igmp_mcf_iter_state {
66769 	struct seq_net_private p;
66770 	struct net_device *dev;
66771 	struct in_device *idev;
66772 	struct ip_mc_list *im;
66773 };
66774 
66775 enum rt_class_t {
66776 	RT_TABLE_UNSPEC = 0,
66777 	RT_TABLE_COMPAT = 252,
66778 	RT_TABLE_DEFAULT = 253,
66779 	RT_TABLE_MAIN = 254,
66780 	RT_TABLE_LOCAL = 255,
66781 	RT_TABLE_MAX = 4294967295,
66782 };
66783 
66784 struct rtnexthop {
66785 	short unsigned int rtnh_len;
66786 	unsigned char rtnh_flags;
66787 	unsigned char rtnh_hops;
66788 	int rtnh_ifindex;
66789 };
66790 
66791 typedef u8 dscp_t;
66792 
66793 struct fib_notifier_info {
66794 	int family;
66795 	struct netlink_ext_ack *extack;
66796 };
66797 
66798 enum fib_event_type {
66799 	FIB_EVENT_ENTRY_REPLACE = 0,
66800 	FIB_EVENT_ENTRY_APPEND = 1,
66801 	FIB_EVENT_ENTRY_ADD = 2,
66802 	FIB_EVENT_ENTRY_DEL = 3,
66803 	FIB_EVENT_RULE_ADD = 4,
66804 	FIB_EVENT_RULE_DEL = 5,
66805 	FIB_EVENT_NH_ADD = 6,
66806 	FIB_EVENT_NH_DEL = 7,
66807 	FIB_EVENT_VIF_ADD = 8,
66808 	FIB_EVENT_VIF_DEL = 9,
66809 };
66810 
66811 struct fib_config {
66812 	u8 fc_dst_len;
66813 	dscp_t fc_dscp;
66814 	u8 fc_protocol;
66815 	u8 fc_scope;
66816 	u8 fc_type;
66817 	u8 fc_gw_family;
66818 	u32 fc_table;
66819 	__be32 fc_dst;
66820 	union {
66821 		__be32 fc_gw4;
66822 		struct in6_addr fc_gw6;
66823 	};
66824 	int fc_oif;
66825 	u32 fc_flags;
66826 	u32 fc_priority;
66827 	__be32 fc_prefsrc;
66828 	u32 fc_nh_id;
66829 	struct nlattr *fc_mx;
66830 	struct rtnexthop *fc_mp;
66831 	int fc_mx_len;
66832 	int fc_mp_len;
66833 	u32 fc_flow;
66834 	u32 fc_nlflags;
66835 	struct nl_info fc_nlinfo;
66836 	struct nlattr *fc_encap;
66837 	u16 fc_encap_type;
66838 };
66839 
66840 struct fib_result {
66841 	__be32 prefix;
66842 	unsigned char prefixlen;
66843 	unsigned char nh_sel;
66844 	unsigned char type;
66845 	unsigned char scope;
66846 	u32 tclassid;
66847 	struct fib_nh_common *nhc;
66848 	struct fib_info *fi;
66849 	struct fib_table *table;
66850 	struct hlist_head *fa_head;
66851 };
66852 
66853 struct fib_rt_info {
66854 	struct fib_info *fi;
66855 	u32 tb_id;
66856 	__be32 dst;
66857 	int dst_len;
66858 	dscp_t dscp;
66859 	u8 type;
66860 	u8 offload: 1;
66861 	u8 trap: 1;
66862 	u8 offload_failed: 1;
66863 	u8 unused: 5;
66864 };
66865 
66866 struct fib_entry_notifier_info {
66867 	struct fib_notifier_info info;
66868 	u32 dst;
66869 	int dst_len;
66870 	struct fib_info *fi;
66871 	dscp_t dscp;
66872 	u8 type;
66873 	u32 tb_id;
66874 };
66875 
66876 struct fib_dump_filter {
66877 	u32 table_id;
66878 	bool filter_set;
66879 	bool dump_routes;
66880 	bool dump_exceptions;
66881 	unsigned char protocol;
66882 	unsigned char rt_type;
66883 	unsigned int flags;
66884 	struct net_device *dev;
66885 };
66886 
66887 struct fib_alias {
66888 	struct hlist_node fa_list;
66889 	struct fib_info *fa_info;
66890 	dscp_t fa_dscp;
66891 	u8 fa_type;
66892 	u8 fa_state;
66893 	u8 fa_slen;
66894 	u32 tb_id;
66895 	s16 fa_default;
66896 	u8 offload;
66897 	u8 trap;
66898 	u8 offload_failed;
66899 	struct callback_head rcu;
66900 };
66901 
66902 struct fib_prop {
66903 	int error;
66904 	u8 scope;
66905 };
66906 
66907 typedef unsigned int t_key;
66908 
66909 struct key_vector {
66910 	t_key key;
66911 	unsigned char pos;
66912 	unsigned char bits;
66913 	unsigned char slen;
66914 	union {
66915 		struct hlist_head leaf;
66916 		struct {
66917 			struct {			} __empty_tnode;
66918 			struct key_vector *tnode[0];
66919 		};
66920 	};
66921 };
66922 
66923 struct tnode {
66924 	struct callback_head rcu;
66925 	t_key empty_children;
66926 	t_key full_children;
66927 	struct key_vector *parent;
66928 	struct key_vector kv[1];
66929 };
66930 
66931 struct trie_stat {
66932 	unsigned int totdepth;
66933 	unsigned int maxdepth;
66934 	unsigned int tnodes;
66935 	unsigned int leaves;
66936 	unsigned int nullpointers;
66937 	unsigned int prefixes;
66938 	unsigned int nodesizes[32];
66939 };
66940 
66941 struct trie {
66942 	struct key_vector kv[1];
66943 };
66944 
66945 struct fib_trie_iter {
66946 	struct seq_net_private p;
66947 	struct fib_table *tb;
66948 	struct key_vector *tnode;
66949 	unsigned int index;
66950 	unsigned int depth;
66951 };
66952 
66953 struct fib_route_iter {
66954 	struct seq_net_private p;
66955 	struct fib_table *main_tb;
66956 	struct key_vector *tnode;
66957 	loff_t pos;
66958 	t_key key;
66959 };
66960 
66961 struct gre_base_hdr {
66962 	__be16 flags;
66963 	__be16 protocol;
66964 };
66965 
66966 typedef struct sk_buff * (*gro_receive_t)(struct list_head *, struct sk_buff *);
66967 
66968 struct snmp_mib {
66969 	const char *name;
66970 	int entry;
66971 };
66972 
66973 struct raw_hashinfo {
66974 	spinlock_t lock;
66975 	struct hlist_nulls_head ht[256];
66976 };
66977 
66978 struct tcpvegas_info {
66979 	__u32 tcpv_enabled;
66980 	__u32 tcpv_rttcnt;
66981 	__u32 tcpv_rtt;
66982 	__u32 tcpv_minrtt;
66983 };
66984 
66985 struct tcp_dctcp_info {
66986 	__u16 dctcp_enabled;
66987 	__u16 dctcp_ce_state;
66988 	__u32 dctcp_alpha;
66989 	__u32 dctcp_ab_ecn;
66990 	__u32 dctcp_ab_tot;
66991 };
66992 
66993 struct tcp_bbr_info {
66994 	__u32 bbr_bw_lo;
66995 	__u32 bbr_bw_hi;
66996 	__u32 bbr_min_rtt;
66997 	__u32 bbr_pacing_gain;
66998 	__u32 bbr_cwnd_gain;
66999 };
67000 
67001 union tcp_cc_info {
67002 	struct tcpvegas_info vegas;
67003 	struct tcp_dctcp_info dctcp;
67004 	struct tcp_bbr_info bbr;
67005 };
67006 
67007 struct inet_diag_sockid {
67008 	__be16 idiag_sport;
67009 	__be16 idiag_dport;
67010 	__be32 idiag_src[4];
67011 	__be32 idiag_dst[4];
67012 	__u32 idiag_if;
67013 	__u32 idiag_cookie[2];
67014 };
67015 
67016 struct inet_diag_req {
67017 	__u8 idiag_family;
67018 	__u8 idiag_src_len;
67019 	__u8 idiag_dst_len;
67020 	__u8 idiag_ext;
67021 	struct inet_diag_sockid id;
67022 	__u32 idiag_states;
67023 	__u32 idiag_dbs;
67024 };
67025 
67026 struct inet_diag_req_v2 {
67027 	__u8 sdiag_family;
67028 	__u8 sdiag_protocol;
67029 	__u8 idiag_ext;
67030 	__u8 pad;
67031 	__u32 idiag_states;
67032 	struct inet_diag_sockid id;
67033 };
67034 
67035 struct inet_diag_bc_op {
67036 	unsigned char code;
67037 	unsigned char yes;
67038 	short unsigned int no;
67039 };
67040 
67041 enum {
67042 	INET_DIAG_BC_NOP = 0,
67043 	INET_DIAG_BC_JMP = 1,
67044 	INET_DIAG_BC_S_GE = 2,
67045 	INET_DIAG_BC_S_LE = 3,
67046 	INET_DIAG_BC_D_GE = 4,
67047 	INET_DIAG_BC_D_LE = 5,
67048 	INET_DIAG_BC_AUTO = 6,
67049 	INET_DIAG_BC_S_COND = 7,
67050 	INET_DIAG_BC_D_COND = 8,
67051 	INET_DIAG_BC_DEV_COND = 9,
67052 	INET_DIAG_BC_MARK_COND = 10,
67053 	INET_DIAG_BC_S_EQ = 11,
67054 	INET_DIAG_BC_D_EQ = 12,
67055 	INET_DIAG_BC_CGROUP_COND = 13,
67056 };
67057 
67058 struct inet_diag_hostcond {
67059 	__u8 family;
67060 	__u8 prefix_len;
67061 	int port;
67062 	__be32 addr[0];
67063 };
67064 
67065 struct inet_diag_markcond {
67066 	__u32 mark;
67067 	__u32 mask;
67068 };
67069 
67070 struct inet_diag_msg {
67071 	__u8 idiag_family;
67072 	__u8 idiag_state;
67073 	__u8 idiag_timer;
67074 	__u8 idiag_retrans;
67075 	struct inet_diag_sockid id;
67076 	__u32 idiag_expires;
67077 	__u32 idiag_rqueue;
67078 	__u32 idiag_wqueue;
67079 	__u32 idiag_uid;
67080 	__u32 idiag_inode;
67081 };
67082 
67083 enum {
67084 	INET_DIAG_NONE = 0,
67085 	INET_DIAG_MEMINFO = 1,
67086 	INET_DIAG_INFO = 2,
67087 	INET_DIAG_VEGASINFO = 3,
67088 	INET_DIAG_CONG = 4,
67089 	INET_DIAG_TOS = 5,
67090 	INET_DIAG_TCLASS = 6,
67091 	INET_DIAG_SKMEMINFO = 7,
67092 	INET_DIAG_SHUTDOWN = 8,
67093 	INET_DIAG_DCTCPINFO = 9,
67094 	INET_DIAG_PROTOCOL = 10,
67095 	INET_DIAG_SKV6ONLY = 11,
67096 	INET_DIAG_LOCALS = 12,
67097 	INET_DIAG_PEERS = 13,
67098 	INET_DIAG_PAD = 14,
67099 	INET_DIAG_MARK = 15,
67100 	INET_DIAG_BBRINFO = 16,
67101 	INET_DIAG_CLASS_ID = 17,
67102 	INET_DIAG_MD5SIG = 18,
67103 	INET_DIAG_ULP_INFO = 19,
67104 	INET_DIAG_SK_BPF_STORAGES = 20,
67105 	INET_DIAG_CGROUP_ID = 21,
67106 	INET_DIAG_SOCKOPT = 22,
67107 	__INET_DIAG_MAX = 23,
67108 };
67109 
67110 struct inet_diag_meminfo {
67111 	__u32 idiag_rmem;
67112 	__u32 idiag_wmem;
67113 	__u32 idiag_fmem;
67114 	__u32 idiag_tmem;
67115 };
67116 
67117 struct inet_diag_sockopt {
67118 	__u8 recverr: 1;
67119 	__u8 is_icsk: 1;
67120 	__u8 freebind: 1;
67121 	__u8 hdrincl: 1;
67122 	__u8 mc_loop: 1;
67123 	__u8 transparent: 1;
67124 	__u8 mc_all: 1;
67125 	__u8 nodefrag: 1;
67126 	__u8 bind_address_no_port: 1;
67127 	__u8 recverr_rfc4884: 1;
67128 	__u8 defer_connect: 1;
67129 	__u8 unused: 5;
67130 };
67131 
67132 struct inet_diag_handler {
67133 	void (*dump)(struct sk_buff *, struct netlink_callback *, const struct inet_diag_req_v2 *);
67134 	int (*dump_one)(struct netlink_callback *, const struct inet_diag_req_v2 *);
67135 	void (*idiag_get_info)(struct sock *, struct inet_diag_msg *, void *);
67136 	int (*idiag_get_aux)(struct sock *, bool, struct sk_buff *);
67137 	size_t (*idiag_get_aux_size)(struct sock *, bool);
67138 	int (*destroy)(struct sk_buff *, const struct inet_diag_req_v2 *);
67139 	__u16 idiag_type;
67140 	__u16 idiag_info_size;
67141 };
67142 
67143 struct bpf_sk_storage_diag;
67144 
67145 struct inet_diag_dump_data {
67146 	struct nlattr *req_nlas[4];
67147 	struct bpf_sk_storage_diag *bpf_stg_diag;
67148 };
67149 
67150 struct inet_diag_entry {
67151 	const __be32 *saddr;
67152 	const __be32 *daddr;
67153 	u16 sport;
67154 	u16 dport;
67155 	u16 family;
67156 	u16 userlocks;
67157 	u32 ifindex;
67158 	u32 mark;
67159 	u64 cgroup_id;
67160 };
67161 
67162 enum {
67163 	UDP_BPF_IPV4 = 0,
67164 	UDP_BPF_IPV6 = 1,
67165 	UDP_BPF_NUM_PROTS = 2,
67166 };
67167 
67168 struct ip_tunnel;
67169 
67170 struct ip6_tnl;
67171 
67172 struct xfrm_tunnel_skb_cb {
67173 	union {
67174 		struct inet_skb_parm h4;
67175 		struct inet6_skb_parm h6;
67176 	} header;
67177 	union {
67178 		struct ip_tunnel *ip4;
67179 		struct ip6_tnl *ip6;
67180 	} tunnel;
67181 };
67182 
67183 struct xfrm_mode_skb_cb {
67184 	struct xfrm_tunnel_skb_cb header;
67185 	__be16 id;
67186 	__be16 frag_off;
67187 	u8 ihl;
67188 	u8 tos;
67189 	u8 ttl;
67190 	u8 protocol;
67191 	u8 optlen;
67192 	u8 flow_lbl[3];
67193 };
67194 
67195 struct xfrm_spi_skb_cb {
67196 	struct xfrm_tunnel_skb_cb header;
67197 	unsigned int daddroff;
67198 	unsigned int family;
67199 	__be32 seq;
67200 };
67201 
67202 struct nf_conn;
67203 
67204 enum nf_nat_manip_type;
67205 
67206 struct nf_nat_hook {
67207 	int (*parse_nat_setup)(struct nf_conn *, enum nf_nat_manip_type, const struct nlattr *);
67208 	void (*decode_session)(struct sk_buff *, struct flowi *);
67209 	unsigned int (*manip_pkt)(struct sk_buff *, struct nf_conn *, enum nf_nat_manip_type, enum ip_conntrack_dir);
67210 	void (*remove_nat_bysrc)(struct nf_conn *);
67211 };
67212 
67213 enum {
67214 	XFRM_LOOKUP_ICMP = 1,
67215 	XFRM_LOOKUP_QUEUE = 2,
67216 	XFRM_LOOKUP_KEEP_DST_REF = 4,
67217 };
67218 
67219 enum {
67220 	XFRM_STATE_VOID = 0,
67221 	XFRM_STATE_ACQ = 1,
67222 	XFRM_STATE_VALID = 2,
67223 	XFRM_STATE_ERROR = 3,
67224 	XFRM_STATE_EXPIRED = 4,
67225 	XFRM_STATE_DEAD = 5,
67226 };
67227 
67228 struct xfrm_if_decode_session_result {
67229 	struct net *net;
67230 	u32 if_id;
67231 };
67232 
67233 struct xfrm_if_cb {
67234 	bool (*decode_session)(struct sk_buff *, short unsigned int, struct xfrm_if_decode_session_result *);
67235 };
67236 
67237 struct xfrm_dst;
67238 
67239 struct xfrm_policy_afinfo {
67240 	struct dst_ops *dst_ops;
67241 	struct dst_entry * (*dst_lookup)(struct net *, int, int, const xfrm_address_t *, const xfrm_address_t *, u32);
67242 	int (*get_saddr)(struct net *, int, xfrm_address_t *, xfrm_address_t *, u32);
67243 	int (*fill_dst)(struct xfrm_dst *, struct net_device *, const struct flowi *);
67244 	struct dst_entry * (*blackhole_route)(struct net *, struct dst_entry *);
67245 };
67246 
67247 struct xfrm_dst {
67248 	union {
67249 		struct dst_entry dst;
67250 		struct rtable rt;
67251 		struct rt6_info rt6;
67252 	} u;
67253 	struct dst_entry *route;
67254 	struct dst_entry *child;
67255 	struct dst_entry *path;
67256 	struct xfrm_policy *pols[2];
67257 	int num_pols;
67258 	int num_xfrms;
67259 	u32 xfrm_genid;
67260 	u32 policy_genid;
67261 	u32 route_mtu_cached;
67262 	u32 child_mtu_cached;
67263 	u32 route_cookie;
67264 	u32 path_cookie;
67265 };
67266 
67267 struct xfrm_state_afinfo {
67268 	u8 family;
67269 	u8 proto;
67270 	const struct xfrm_type_offload *type_offload_esp;
67271 	const struct xfrm_type *type_esp;
67272 	const struct xfrm_type *type_ipip;
67273 	const struct xfrm_type *type_ipip6;
67274 	const struct xfrm_type *type_comp;
67275 	const struct xfrm_type *type_ah;
67276 	const struct xfrm_type *type_routing;
67277 	const struct xfrm_type *type_dstopts;
67278 	int (*output)(struct net *, struct sock *, struct sk_buff *);
67279 	int (*transport_finish)(struct sk_buff *, int);
67280 	void (*local_error)(struct sk_buff *, u32);
67281 };
67282 
67283 struct xfrm_policy_walk {
67284 	struct xfrm_policy_walk_entry walk;
67285 	u8 type;
67286 	u32 seq;
67287 };
67288 
67289 struct xfrmk_spdinfo {
67290 	u32 incnt;
67291 	u32 outcnt;
67292 	u32 fwdcnt;
67293 	u32 inscnt;
67294 	u32 outscnt;
67295 	u32 fwdscnt;
67296 	u32 spdhcnt;
67297 	u32 spdhmcnt;
67298 };
67299 
67300 struct xfrm_flo {
67301 	struct dst_entry *dst_orig;
67302 	u8 flags;
67303 };
67304 
67305 struct xfrm_pol_inexact_node {
67306 	struct rb_node node;
67307 	union {
67308 		xfrm_address_t addr;
67309 		struct callback_head rcu;
67310 	};
67311 	u8 prefixlen;
67312 	struct rb_root root;
67313 	struct hlist_head hhead;
67314 };
67315 
67316 struct xfrm_pol_inexact_key {
67317 	possible_net_t net;
67318 	u32 if_id;
67319 	u16 family;
67320 	u8 dir;
67321 	u8 type;
67322 };
67323 
67324 struct xfrm_pol_inexact_bin {
67325 	struct xfrm_pol_inexact_key k;
67326 	struct rhash_head head;
67327 	struct hlist_head hhead;
67328 	seqcount_spinlock_t count;
67329 	struct rb_root root_d;
67330 	struct rb_root root_s;
67331 	struct list_head inexact_bins;
67332 	struct callback_head rcu;
67333 };
67334 
67335 enum xfrm_pol_inexact_candidate_type {
67336 	XFRM_POL_CAND_BOTH = 0,
67337 	XFRM_POL_CAND_SADDR = 1,
67338 	XFRM_POL_CAND_DADDR = 2,
67339 	XFRM_POL_CAND_ANY = 3,
67340 	XFRM_POL_CAND_MAX = 4,
67341 };
67342 
67343 struct xfrm_pol_inexact_candidates {
67344 	struct hlist_head *res[4];
67345 };
67346 
67347 enum xfrm_ae_ftype_t {
67348 	XFRM_AE_UNSPEC = 0,
67349 	XFRM_AE_RTHR = 1,
67350 	XFRM_AE_RVAL = 2,
67351 	XFRM_AE_LVAL = 4,
67352 	XFRM_AE_ETHR = 8,
67353 	XFRM_AE_CR = 16,
67354 	XFRM_AE_CE = 32,
67355 	XFRM_AE_CU = 64,
67356 	__XFRM_AE_MAX = 65,
67357 };
67358 
67359 enum xfrm_nlgroups {
67360 	XFRMNLGRP_NONE = 0,
67361 	XFRMNLGRP_ACQUIRE = 1,
67362 	XFRMNLGRP_EXPIRE = 2,
67363 	XFRMNLGRP_SA = 3,
67364 	XFRMNLGRP_POLICY = 4,
67365 	XFRMNLGRP_AEVENTS = 5,
67366 	XFRMNLGRP_REPORT = 6,
67367 	XFRMNLGRP_MIGRATE = 7,
67368 	XFRMNLGRP_MAPPING = 8,
67369 	__XFRMNLGRP_MAX = 9,
67370 };
67371 
67372 struct km_event {
67373 	union {
67374 		u32 hard;
67375 		u32 proto;
67376 		u32 byid;
67377 		u32 aevent;
67378 		u32 type;
67379 	} data;
67380 	u32 seq;
67381 	u32 portid;
67382 	u32 event;
67383 	struct net *net;
67384 };
67385 
67386 struct xfrm_skb_cb {
67387 	struct xfrm_tunnel_skb_cb header;
67388 	union {
67389 		struct {
67390 			__u32 low;
67391 			__u32 hi;
67392 		} output;
67393 		struct {
67394 			__be32 low;
67395 			__be32 hi;
67396 		} input;
67397 	} seq;
67398 };
67399 
67400 struct sockaddr_un {
67401 	__kernel_sa_family_t sun_family;
67402 	char sun_path[108];
67403 };
67404 
67405 enum sock_shutdown_cmd {
67406 	SHUT_RD = 0,
67407 	SHUT_WR = 1,
67408 	SHUT_RDWR = 2,
67409 };
67410 
67411 struct unix_address {
67412 	refcount_t refcnt;
67413 	int len;
67414 	struct sockaddr_un name[0];
67415 };
67416 
67417 struct unix_skb_parms {
67418 	struct pid *pid;
67419 	kuid_t uid;
67420 	kgid_t gid;
67421 	struct scm_fp_list *fp;
67422 	u32 secid;
67423 	u32 consumed;
67424 };
67425 
67426 struct scm_stat {
67427 	atomic_t nr_fds;
67428 };
67429 
67430 struct unix_sock {
67431 	struct sock sk;
67432 	struct unix_address *addr;
67433 	struct path path;
67434 	struct mutex iolock;
67435 	struct mutex bindlock;
67436 	struct sock *peer;
67437 	struct list_head link;
67438 	atomic_long_t inflight;
67439 	spinlock_t lock;
67440 	long unsigned int gc_flags;
67441 	long: 64;
67442 	long: 64;
67443 	long: 64;
67444 	long: 64;
67445 	long: 64;
67446 	long: 64;
67447 	struct socket_wq peer_wq;
67448 	wait_queue_entry_t peer_wake;
67449 	struct scm_stat scm_stat;
67450 	struct sk_buff *oob_skb;
67451 	long: 64;
67452 };
67453 
67454 struct unix_stream_read_state {
67455 	int (*recv_actor)(struct sk_buff *, int, int, struct unix_stream_read_state *);
67456 	struct socket *socket;
67457 	struct msghdr *msg;
67458 	struct pipe_inode_info *pipe;
67459 	size_t size;
67460 	int flags;
67461 	unsigned int splice_flags;
67462 };
67463 
67464 struct bpf_unix_iter_state {
67465 	struct seq_net_private p;
67466 	unsigned int cur_sk;
67467 	unsigned int end_sk;
67468 	unsigned int max_sk;
67469 	struct sock **batch;
67470 	bool st_bucket_done;
67471 };
67472 
67473 struct bpf_iter__unix {
67474 	union {
67475 		struct bpf_iter_meta *meta;
67476 	};
67477 	union {
67478 		struct unix_sock *unix_sk;
67479 	};
67480 	uid_t uid;
67481 };
67482 
67483 struct ac6_iter_state {
67484 	struct seq_net_private p;
67485 	struct net_device *dev;
67486 	struct inet6_dev *idev;
67487 };
67488 
67489 enum {
67490 	IF_OPER_UNKNOWN = 0,
67491 	IF_OPER_NOTPRESENT = 1,
67492 	IF_OPER_DOWN = 2,
67493 	IF_OPER_LOWERLAYERDOWN = 3,
67494 	IF_OPER_TESTING = 4,
67495 	IF_OPER_DORMANT = 5,
67496 	IF_OPER_UP = 6,
67497 };
67498 
67499 enum {
67500 	IFLA_UNSPEC = 0,
67501 	IFLA_ADDRESS = 1,
67502 	IFLA_BROADCAST = 2,
67503 	IFLA_IFNAME = 3,
67504 	IFLA_MTU = 4,
67505 	IFLA_LINK = 5,
67506 	IFLA_QDISC = 6,
67507 	IFLA_STATS = 7,
67508 	IFLA_COST = 8,
67509 	IFLA_PRIORITY = 9,
67510 	IFLA_MASTER = 10,
67511 	IFLA_WIRELESS = 11,
67512 	IFLA_PROTINFO = 12,
67513 	IFLA_TXQLEN = 13,
67514 	IFLA_MAP = 14,
67515 	IFLA_WEIGHT = 15,
67516 	IFLA_OPERSTATE = 16,
67517 	IFLA_LINKMODE = 17,
67518 	IFLA_LINKINFO = 18,
67519 	IFLA_NET_NS_PID = 19,
67520 	IFLA_IFALIAS = 20,
67521 	IFLA_NUM_VF = 21,
67522 	IFLA_VFINFO_LIST = 22,
67523 	IFLA_STATS64 = 23,
67524 	IFLA_VF_PORTS = 24,
67525 	IFLA_PORT_SELF = 25,
67526 	IFLA_AF_SPEC = 26,
67527 	IFLA_GROUP = 27,
67528 	IFLA_NET_NS_FD = 28,
67529 	IFLA_EXT_MASK = 29,
67530 	IFLA_PROMISCUITY = 30,
67531 	IFLA_NUM_TX_QUEUES = 31,
67532 	IFLA_NUM_RX_QUEUES = 32,
67533 	IFLA_CARRIER = 33,
67534 	IFLA_PHYS_PORT_ID = 34,
67535 	IFLA_CARRIER_CHANGES = 35,
67536 	IFLA_PHYS_SWITCH_ID = 36,
67537 	IFLA_LINK_NETNSID = 37,
67538 	IFLA_PHYS_PORT_NAME = 38,
67539 	IFLA_PROTO_DOWN = 39,
67540 	IFLA_GSO_MAX_SEGS = 40,
67541 	IFLA_GSO_MAX_SIZE = 41,
67542 	IFLA_PAD = 42,
67543 	IFLA_XDP = 43,
67544 	IFLA_EVENT = 44,
67545 	IFLA_NEW_NETNSID = 45,
67546 	IFLA_IF_NETNSID = 46,
67547 	IFLA_TARGET_NETNSID = 46,
67548 	IFLA_CARRIER_UP_COUNT = 47,
67549 	IFLA_CARRIER_DOWN_COUNT = 48,
67550 	IFLA_NEW_IFINDEX = 49,
67551 	IFLA_MIN_MTU = 50,
67552 	IFLA_MAX_MTU = 51,
67553 	IFLA_PROP_LIST = 52,
67554 	IFLA_ALT_IFNAME = 53,
67555 	IFLA_PERM_ADDRESS = 54,
67556 	IFLA_PROTO_DOWN_REASON = 55,
67557 	IFLA_PARENT_DEV_NAME = 56,
67558 	IFLA_PARENT_DEV_BUS_NAME = 57,
67559 	IFLA_GRO_MAX_SIZE = 58,
67560 	IFLA_TSO_MAX_SIZE = 59,
67561 	IFLA_TSO_MAX_SEGS = 60,
67562 	IFLA_ALLMULTI = 61,
67563 	IFLA_DEVLINK_PORT = 62,
67564 	__IFLA_MAX = 63,
67565 };
67566 
67567 enum {
67568 	IFLA_INET6_UNSPEC = 0,
67569 	IFLA_INET6_FLAGS = 1,
67570 	IFLA_INET6_CONF = 2,
67571 	IFLA_INET6_STATS = 3,
67572 	IFLA_INET6_MCAST = 4,
67573 	IFLA_INET6_CACHEINFO = 5,
67574 	IFLA_INET6_ICMP6STATS = 6,
67575 	IFLA_INET6_TOKEN = 7,
67576 	IFLA_INET6_ADDR_GEN_MODE = 8,
67577 	IFLA_INET6_RA_MTU = 9,
67578 	__IFLA_INET6_MAX = 10,
67579 };
67580 
67581 enum in6_addr_gen_mode {
67582 	IN6_ADDR_GEN_MODE_EUI64 = 0,
67583 	IN6_ADDR_GEN_MODE_NONE = 1,
67584 	IN6_ADDR_GEN_MODE_STABLE_PRIVACY = 2,
67585 	IN6_ADDR_GEN_MODE_RANDOM = 3,
67586 };
67587 
67588 struct ifla_cacheinfo {
67589 	__u32 max_reasm_len;
67590 	__u32 tstamp;
67591 	__u32 reachable_time;
67592 	__u32 retrans_time;
67593 };
67594 
67595 struct netdev_notifier_change_info {
67596 	struct netdev_notifier_info info;
67597 	unsigned int flags_changed;
67598 };
67599 
67600 struct netdev_notifier_changeupper_info {
67601 	struct netdev_notifier_info info;
67602 	struct net_device *upper_dev;
67603 	bool master;
67604 	bool linking;
67605 	void *upper_info;
67606 };
67607 
67608 struct ifaddrmsg {
67609 	__u8 ifa_family;
67610 	__u8 ifa_prefixlen;
67611 	__u8 ifa_flags;
67612 	__u8 ifa_scope;
67613 	__u32 ifa_index;
67614 };
67615 
67616 enum {
67617 	IFA_UNSPEC = 0,
67618 	IFA_ADDRESS = 1,
67619 	IFA_LOCAL = 2,
67620 	IFA_LABEL = 3,
67621 	IFA_BROADCAST = 4,
67622 	IFA_ANYCAST = 5,
67623 	IFA_CACHEINFO = 6,
67624 	IFA_MULTICAST = 7,
67625 	IFA_FLAGS = 8,
67626 	IFA_RT_PRIORITY = 9,
67627 	IFA_TARGET_NETNSID = 10,
67628 	IFA_PROTO = 11,
67629 	__IFA_MAX = 12,
67630 };
67631 
67632 struct ifa_cacheinfo {
67633 	__u32 ifa_prefered;
67634 	__u32 ifa_valid;
67635 	__u32 cstamp;
67636 	__u32 tstamp;
67637 };
67638 
67639 struct ifinfomsg {
67640 	unsigned char ifi_family;
67641 	unsigned char __ifi_pad;
67642 	short unsigned int ifi_type;
67643 	int ifi_index;
67644 	unsigned int ifi_flags;
67645 	unsigned int ifi_change;
67646 };
67647 
67648 struct prefixmsg {
67649 	unsigned char prefix_family;
67650 	unsigned char prefix_pad1;
67651 	short unsigned int prefix_pad2;
67652 	int prefix_ifindex;
67653 	unsigned char prefix_type;
67654 	unsigned char prefix_len;
67655 	unsigned char prefix_flags;
67656 	unsigned char prefix_pad3;
67657 };
67658 
67659 enum {
67660 	PREFIX_UNSPEC = 0,
67661 	PREFIX_ADDRESS = 1,
67662 	PREFIX_CACHEINFO = 2,
67663 	__PREFIX_MAX = 3,
67664 };
67665 
67666 struct prefix_cacheinfo {
67667 	__u32 preferred_time;
67668 	__u32 valid_time;
67669 };
67670 
67671 enum rtnl_link_flags {
67672 	RTNL_FLAG_DOIT_UNLOCKED = 1,
67673 	RTNL_FLAG_BULK_DEL_SUPPORTED = 2,
67674 };
67675 
67676 struct rtnl_af_ops {
67677 	struct list_head list;
67678 	int family;
67679 	int (*fill_link_af)(struct sk_buff *, const struct net_device *, u32);
67680 	size_t (*get_link_af_size)(const struct net_device *, u32);
67681 	int (*validate_link_af)(const struct net_device *, const struct nlattr *, struct netlink_ext_ack *);
67682 	int (*set_link_af)(struct net_device *, const struct nlattr *, struct netlink_ext_ack *);
67683 	int (*fill_stats_af)(struct sk_buff *, const struct net_device *);
67684 	size_t (*get_stats_af_size)(const struct net_device *);
67685 };
67686 
67687 struct in6_ifreq {
67688 	struct in6_addr ifr6_addr;
67689 	__u32 ifr6_prefixlen;
67690 	int ifr6_ifindex;
67691 };
67692 
67693 enum {
67694 	DEVCONF_FORWARDING = 0,
67695 	DEVCONF_HOPLIMIT = 1,
67696 	DEVCONF_MTU6 = 2,
67697 	DEVCONF_ACCEPT_RA = 3,
67698 	DEVCONF_ACCEPT_REDIRECTS = 4,
67699 	DEVCONF_AUTOCONF = 5,
67700 	DEVCONF_DAD_TRANSMITS = 6,
67701 	DEVCONF_RTR_SOLICITS = 7,
67702 	DEVCONF_RTR_SOLICIT_INTERVAL = 8,
67703 	DEVCONF_RTR_SOLICIT_DELAY = 9,
67704 	DEVCONF_USE_TEMPADDR = 10,
67705 	DEVCONF_TEMP_VALID_LFT = 11,
67706 	DEVCONF_TEMP_PREFERED_LFT = 12,
67707 	DEVCONF_REGEN_MAX_RETRY = 13,
67708 	DEVCONF_MAX_DESYNC_FACTOR = 14,
67709 	DEVCONF_MAX_ADDRESSES = 15,
67710 	DEVCONF_FORCE_MLD_VERSION = 16,
67711 	DEVCONF_ACCEPT_RA_DEFRTR = 17,
67712 	DEVCONF_ACCEPT_RA_PINFO = 18,
67713 	DEVCONF_ACCEPT_RA_RTR_PREF = 19,
67714 	DEVCONF_RTR_PROBE_INTERVAL = 20,
67715 	DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN = 21,
67716 	DEVCONF_PROXY_NDP = 22,
67717 	DEVCONF_OPTIMISTIC_DAD = 23,
67718 	DEVCONF_ACCEPT_SOURCE_ROUTE = 24,
67719 	DEVCONF_MC_FORWARDING = 25,
67720 	DEVCONF_DISABLE_IPV6 = 26,
67721 	DEVCONF_ACCEPT_DAD = 27,
67722 	DEVCONF_FORCE_TLLAO = 28,
67723 	DEVCONF_NDISC_NOTIFY = 29,
67724 	DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL = 30,
67725 	DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL = 31,
67726 	DEVCONF_SUPPRESS_FRAG_NDISC = 32,
67727 	DEVCONF_ACCEPT_RA_FROM_LOCAL = 33,
67728 	DEVCONF_USE_OPTIMISTIC = 34,
67729 	DEVCONF_ACCEPT_RA_MTU = 35,
67730 	DEVCONF_STABLE_SECRET = 36,
67731 	DEVCONF_USE_OIF_ADDRS_ONLY = 37,
67732 	DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT = 38,
67733 	DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 39,
67734 	DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 40,
67735 	DEVCONF_DROP_UNSOLICITED_NA = 41,
67736 	DEVCONF_KEEP_ADDR_ON_DOWN = 42,
67737 	DEVCONF_RTR_SOLICIT_MAX_INTERVAL = 43,
67738 	DEVCONF_SEG6_ENABLED = 44,
67739 	DEVCONF_SEG6_REQUIRE_HMAC = 45,
67740 	DEVCONF_ENHANCED_DAD = 46,
67741 	DEVCONF_ADDR_GEN_MODE = 47,
67742 	DEVCONF_DISABLE_POLICY = 48,
67743 	DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN = 49,
67744 	DEVCONF_NDISC_TCLASS = 50,
67745 	DEVCONF_RPL_SEG_ENABLED = 51,
67746 	DEVCONF_RA_DEFRTR_METRIC = 52,
67747 	DEVCONF_IOAM6_ENABLED = 53,
67748 	DEVCONF_IOAM6_ID = 54,
67749 	DEVCONF_IOAM6_ID_WIDE = 55,
67750 	DEVCONF_NDISC_EVICT_NOCARRIER = 56,
67751 	DEVCONF_ACCEPT_UNTRACKED_NA = 57,
67752 	DEVCONF_MAX = 58,
67753 };
67754 
67755 struct ipv6_params {
67756 	__s32 disable_ipv6;
67757 	__s32 autoconf;
67758 };
67759 
67760 enum {
67761 	INET6_IFADDR_STATE_PREDAD = 0,
67762 	INET6_IFADDR_STATE_DAD = 1,
67763 	INET6_IFADDR_STATE_POSTDAD = 2,
67764 	INET6_IFADDR_STATE_ERRDAD = 3,
67765 	INET6_IFADDR_STATE_DEAD = 4,
67766 };
67767 
67768 struct inet6_ifaddr {
67769 	struct in6_addr addr;
67770 	__u32 prefix_len;
67771 	__u32 rt_priority;
67772 	__u32 valid_lft;
67773 	__u32 prefered_lft;
67774 	refcount_t refcnt;
67775 	spinlock_t lock;
67776 	int state;
67777 	__u32 flags;
67778 	__u8 dad_probes;
67779 	__u8 stable_privacy_retry;
67780 	__u16 scope;
67781 	__u64 dad_nonce;
67782 	long unsigned int cstamp;
67783 	long unsigned int tstamp;
67784 	struct delayed_work dad_work;
67785 	struct inet6_dev *idev;
67786 	struct fib6_info *rt;
67787 	struct hlist_node addr_lst;
67788 	struct list_head if_list;
67789 	struct list_head if_list_aux;
67790 	struct list_head tmp_list;
67791 	struct inet6_ifaddr *ifpub;
67792 	int regen_count;
67793 	bool tokenized;
67794 	u8 ifa_proto;
67795 	struct callback_head rcu;
67796 	struct in6_addr peer_addr;
67797 };
67798 
67799 union fwnet_hwaddr {
67800 	u8 u[16];
67801 	struct {
67802 		__be64 uniq_id;
67803 		u8 max_rec;
67804 		u8 sspd;
67805 		u8 fifo[6];
67806 	} uc;
67807 };
67808 
67809 struct in6_validator_info {
67810 	struct in6_addr i6vi_addr;
67811 	struct inet6_dev *i6vi_dev;
67812 	struct netlink_ext_ack *extack;
67813 };
67814 
67815 struct ifa6_config {
67816 	const struct in6_addr *pfx;
67817 	unsigned int plen;
67818 	u8 ifa_proto;
67819 	const struct in6_addr *peer_pfx;
67820 	u32 rt_priority;
67821 	u32 ifa_flags;
67822 	u32 preferred_lft;
67823 	u32 valid_lft;
67824 	u16 scope;
67825 };
67826 
67827 struct netconfmsg {
67828 	__u8 ncm_family;
67829 };
67830 
67831 enum {
67832 	NETCONFA_UNSPEC = 0,
67833 	NETCONFA_IFINDEX = 1,
67834 	NETCONFA_FORWARDING = 2,
67835 	NETCONFA_RP_FILTER = 3,
67836 	NETCONFA_MC_FORWARDING = 4,
67837 	NETCONFA_PROXY_NEIGH = 5,
67838 	NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN = 6,
67839 	NETCONFA_INPUT = 7,
67840 	NETCONFA_BC_FORWARDING = 8,
67841 	__NETCONFA_MAX = 9,
67842 };
67843 
67844 enum cleanup_prefix_rt_t {
67845 	CLEANUP_PREFIX_RT_NOP = 0,
67846 	CLEANUP_PREFIX_RT_DEL = 1,
67847 	CLEANUP_PREFIX_RT_EXPIRE = 2,
67848 };
67849 
67850 enum {
67851 	IPV6_SADDR_RULE_INIT = 0,
67852 	IPV6_SADDR_RULE_LOCAL = 1,
67853 	IPV6_SADDR_RULE_SCOPE = 2,
67854 	IPV6_SADDR_RULE_PREFERRED = 3,
67855 	IPV6_SADDR_RULE_OIF = 4,
67856 	IPV6_SADDR_RULE_LABEL = 5,
67857 	IPV6_SADDR_RULE_PRIVACY = 6,
67858 	IPV6_SADDR_RULE_ORCHID = 7,
67859 	IPV6_SADDR_RULE_PREFIX = 8,
67860 	IPV6_SADDR_RULE_MAX = 9,
67861 };
67862 
67863 struct ipv6_saddr_score {
67864 	int rule;
67865 	int addr_type;
67866 	struct inet6_ifaddr *ifa;
67867 	long unsigned int scorebits[1];
67868 	int scopedist;
67869 	int matchlen;
67870 };
67871 
67872 struct ipv6_saddr_dst {
67873 	const struct in6_addr *addr;
67874 	int ifindex;
67875 	int scope;
67876 	int label;
67877 	unsigned int prefs;
67878 };
67879 
67880 struct if6_iter_state {
67881 	struct seq_net_private p;
67882 	int bucket;
67883 	int offset;
67884 };
67885 
67886 enum addr_type_t {
67887 	UNICAST_ADDR = 0,
67888 	MULTICAST_ADDR = 1,
67889 	ANYCAST_ADDR = 2,
67890 };
67891 
67892 struct inet6_fill_args {
67893 	u32 portid;
67894 	u32 seq;
67895 	int event;
67896 	unsigned int flags;
67897 	int netnsid;
67898 	int ifindex;
67899 	enum addr_type_t type;
67900 };
67901 
67902 enum {
67903 	DAD_PROCESS = 0,
67904 	DAD_BEGIN = 1,
67905 	DAD_ABORT = 2,
67906 };
67907 
67908 struct icmpv6_echo {
67909 	__be16 identifier;
67910 	__be16 sequence;
67911 };
67912 
67913 struct icmpv6_nd_advt {
67914 	__u32 reserved: 5;
67915 	__u32 override: 1;
67916 	__u32 solicited: 1;
67917 	__u32 router: 1;
67918 	__u32 reserved2: 24;
67919 };
67920 
67921 struct icmpv6_nd_ra {
67922 	__u8 hop_limit;
67923 	__u8 reserved: 3;
67924 	__u8 router_pref: 2;
67925 	__u8 home_agent: 1;
67926 	__u8 other: 1;
67927 	__u8 managed: 1;
67928 	__be16 rt_lifetime;
67929 };
67930 
67931 struct icmp6hdr {
67932 	__u8 icmp6_type;
67933 	__u8 icmp6_code;
67934 	__sum16 icmp6_cksum;
67935 	union {
67936 		__be32 un_data32[1];
67937 		__be16 un_data16[2];
67938 		__u8 un_data8[4];
67939 		struct icmpv6_echo u_echo;
67940 		struct icmpv6_nd_advt u_nd_advt;
67941 		struct icmpv6_nd_ra u_nd_ra;
67942 	} icmp6_dataun;
67943 };
67944 
67945 struct nduseroptmsg {
67946 	unsigned char nduseropt_family;
67947 	unsigned char nduseropt_pad1;
67948 	short unsigned int nduseropt_opts_len;
67949 	int nduseropt_ifindex;
67950 	__u8 nduseropt_icmp_type;
67951 	__u8 nduseropt_icmp_code;
67952 	short unsigned int nduseropt_pad2;
67953 	unsigned int nduseropt_pad3;
67954 };
67955 
67956 enum {
67957 	NDUSEROPT_UNSPEC = 0,
67958 	NDUSEROPT_SRCADDR = 1,
67959 	__NDUSEROPT_MAX = 2,
67960 };
67961 
67962 struct nd_msg {
67963 	struct icmp6hdr icmph;
67964 	struct in6_addr target;
67965 	__u8 opt[0];
67966 };
67967 
67968 struct rs_msg {
67969 	struct icmp6hdr icmph;
67970 	__u8 opt[0];
67971 };
67972 
67973 struct ra_msg {
67974 	struct icmp6hdr icmph;
67975 	__be32 reachable_time;
67976 	__be32 retrans_timer;
67977 };
67978 
67979 struct rd_msg {
67980 	struct icmp6hdr icmph;
67981 	struct in6_addr target;
67982 	struct in6_addr dest;
67983 	__u8 opt[0];
67984 };
67985 
67986 struct ipv4_addr_key {
67987 	__be32 addr;
67988 	int vif;
67989 };
67990 
67991 struct inetpeer_addr {
67992 	union {
67993 		struct ipv4_addr_key a4;
67994 		struct in6_addr a6;
67995 		u32 key[4];
67996 	};
67997 	__u16 family;
67998 };
67999 
68000 struct inet_peer {
68001 	struct rb_node rb_node;
68002 	struct inetpeer_addr daddr;
68003 	u32 metrics[17];
68004 	u32 rate_tokens;
68005 	u32 n_redirects;
68006 	long unsigned int rate_last;
68007 	union {
68008 		struct {
68009 			atomic_t rid;
68010 		};
68011 		struct callback_head rcu;
68012 	};
68013 	__u32 dtime;
68014 	refcount_t refcnt;
68015 };
68016 
68017 struct route_info {
68018 	__u8 type;
68019 	__u8 length;
68020 	__u8 prefix_len;
68021 	__u8 reserved_l: 3;
68022 	__u8 route_pref: 2;
68023 	__u8 reserved_h: 3;
68024 	__be32 lifetime;
68025 	__u8 prefix[0];
68026 };
68027 
68028 struct flow_dissector_key_tags {
68029 	u32 flow_label;
68030 };
68031 
68032 struct flow_dissector_key_tipc {
68033 	__be32 key;
68034 };
68035 
68036 struct flow_dissector_key_addrs {
68037 	union {
68038 		struct flow_dissector_key_ipv4_addrs v4addrs;
68039 		struct flow_dissector_key_ipv6_addrs v6addrs;
68040 		struct flow_dissector_key_tipc tipckey;
68041 	};
68042 };
68043 
68044 struct flow_keys {
68045 	struct flow_dissector_key_control control;
68046 	struct flow_dissector_key_basic basic;
68047 	struct flow_dissector_key_tags tags;
68048 	struct flow_dissector_key_vlan vlan;
68049 	struct flow_dissector_key_vlan cvlan;
68050 	struct flow_dissector_key_keyid keyid;
68051 	struct flow_dissector_key_ports ports;
68052 	struct flow_dissector_key_icmp icmp;
68053 	struct flow_dissector_key_addrs addrs;
68054 	int: 32;
68055 };
68056 
68057 struct seg6_pernet_data {
68058 	struct mutex lock;
68059 	struct in6_addr *tun_src;
68060 	struct rhashtable hmac_infos;
68061 };
68062 
68063 typedef void ip6_icmp_send_t(struct sk_buff *, u8, u8, __u32, const struct in6_addr *, const struct inet6_skb_parm *);
68064 
68065 enum flowlabel_reflect {
68066 	FLOWLABEL_REFLECT_ESTABLISHED = 1,
68067 	FLOWLABEL_REFLECT_TCP_RESET = 2,
68068 	FLOWLABEL_REFLECT_ICMPV6_ECHO_REPLIES = 4,
68069 };
68070 
68071 struct ipcm6_cookie {
68072 	struct sockcm_cookie sockc;
68073 	__s16 hlimit;
68074 	__s16 tclass;
68075 	__u16 gso_size;
68076 	__s8 dontfrag;
68077 	struct ipv6_txoptions *opt;
68078 };
68079 
68080 struct inet6_protocol {
68081 	int (*handler)(struct sk_buff *);
68082 	int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32);
68083 	unsigned int flags;
68084 };
68085 
68086 struct icmpv6_msg {
68087 	struct sk_buff *skb;
68088 	int offset;
68089 	uint8_t type;
68090 };
68091 
68092 struct icmp6_err {
68093 	int err;
68094 	int fatal;
68095 };
68096 
68097 struct sockaddr_in6 {
68098 	short unsigned int sin6_family;
68099 	__be16 sin6_port;
68100 	__be32 sin6_flowinfo;
68101 	struct in6_addr sin6_addr;
68102 	__u32 sin6_scope_id;
68103 };
68104 
68105 struct inet_protosw {
68106 	struct list_head list;
68107 	short unsigned int type;
68108 	short unsigned int protocol;
68109 	struct proto *prot;
68110 	const struct proto_ops *ops;
68111 	unsigned char flags;
68112 };
68113 
68114 struct pingv6_ops {
68115 	int (*ipv6_recv_error)(struct sock *, struct msghdr *, int, int *);
68116 	void (*ip6_datagram_recv_common_ctl)(struct sock *, struct msghdr *, struct sk_buff *);
68117 	void (*ip6_datagram_recv_specific_ctl)(struct sock *, struct msghdr *, struct sk_buff *);
68118 	int (*icmpv6_err_convert)(u8, u8, int *);
68119 	void (*ipv6_icmp_error)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *);
68120 	int (*ipv6_chk_addr)(struct net *, const struct in6_addr *, const struct net_device *, int);
68121 };
68122 
68123 struct ping_iter_state {
68124 	struct seq_net_private p;
68125 	int bucket;
68126 	sa_family_t family;
68127 };
68128 
68129 struct pingfakehdr {
68130 	struct icmphdr icmph;
68131 	struct msghdr *msg;
68132 	sa_family_t family;
68133 	__wsum wcheck;
68134 };
68135 
68136 struct in6_flowlabel_req {
68137 	struct in6_addr flr_dst;
68138 	__be32 flr_label;
68139 	__u8 flr_action;
68140 	__u8 flr_share;
68141 	__u16 flr_flags;
68142 	__u16 flr_expires;
68143 	__u16 flr_linger;
68144 	__u32 __flr_pad;
68145 };
68146 
68147 struct static_key_false_deferred {
68148 	struct static_key_false key;
68149 };
68150 
68151 struct ip6fl_iter_state {
68152 	struct seq_net_private p;
68153 	struct pid_namespace *pid_ns;
68154 	int bucket;
68155 };
68156 
68157 struct icmp6_filter {
68158 	__u32 data[8];
68159 };
68160 
68161 struct rtmsg {
68162 	unsigned char rtm_family;
68163 	unsigned char rtm_dst_len;
68164 	unsigned char rtm_src_len;
68165 	unsigned char rtm_tos;
68166 	unsigned char rtm_table;
68167 	unsigned char rtm_protocol;
68168 	unsigned char rtm_scope;
68169 	unsigned char rtm_type;
68170 	unsigned int rtm_flags;
68171 };
68172 
68173 enum rtattr_type_t {
68174 	RTA_UNSPEC = 0,
68175 	RTA_DST = 1,
68176 	RTA_SRC = 2,
68177 	RTA_IIF = 3,
68178 	RTA_OIF = 4,
68179 	RTA_GATEWAY = 5,
68180 	RTA_PRIORITY = 6,
68181 	RTA_PREFSRC = 7,
68182 	RTA_METRICS = 8,
68183 	RTA_MULTIPATH = 9,
68184 	RTA_PROTOINFO = 10,
68185 	RTA_FLOW = 11,
68186 	RTA_CACHEINFO = 12,
68187 	RTA_SESSION = 13,
68188 	RTA_MP_ALGO = 14,
68189 	RTA_TABLE = 15,
68190 	RTA_MARK = 16,
68191 	RTA_MFC_STATS = 17,
68192 	RTA_VIA = 18,
68193 	RTA_NEWDST = 19,
68194 	RTA_PREF = 20,
68195 	RTA_ENCAP_TYPE = 21,
68196 	RTA_ENCAP = 22,
68197 	RTA_EXPIRES = 23,
68198 	RTA_PAD = 24,
68199 	RTA_UID = 25,
68200 	RTA_TTL_PROPAGATE = 26,
68201 	RTA_IP_PROTO = 27,
68202 	RTA_SPORT = 28,
68203 	RTA_DPORT = 29,
68204 	RTA_NH_ID = 30,
68205 	__RTA_MAX = 31,
68206 };
68207 
68208 enum {
68209 	FR_ACT_UNSPEC = 0,
68210 	FR_ACT_TO_TBL = 1,
68211 	FR_ACT_GOTO = 2,
68212 	FR_ACT_NOP = 3,
68213 	FR_ACT_RES3 = 4,
68214 	FR_ACT_RES4 = 5,
68215 	FR_ACT_BLACKHOLE = 6,
68216 	FR_ACT_UNREACHABLE = 7,
68217 	FR_ACT_PROHIBIT = 8,
68218 	__FR_ACT_MAX = 9,
68219 };
68220 
68221 struct raw6_sock {
68222 	struct inet_sock inet;
68223 	__u32 checksum;
68224 	__u32 offset;
68225 	struct icmp6_filter filter;
68226 	__u32 ip6mr_table;
68227 	struct ipv6_pinfo inet6;
68228 };
68229 
68230 enum {
68231 	PIM_TYPE_HELLO = 0,
68232 	PIM_TYPE_REGISTER = 1,
68233 	PIM_TYPE_REGISTER_STOP = 2,
68234 	PIM_TYPE_JOIN_PRUNE = 3,
68235 	PIM_TYPE_BOOTSTRAP = 4,
68236 	PIM_TYPE_ASSERT = 5,
68237 	PIM_TYPE_GRAFT = 6,
68238 	PIM_TYPE_GRAFT_ACK = 7,
68239 	PIM_TYPE_CANDIDATE_RP_ADV = 8,
68240 };
68241 
68242 struct pimreghdr {
68243 	__u8 type;
68244 	__u8 reserved;
68245 	__be16 csum;
68246 	__be32 flags;
68247 };
68248 
68249 typedef short unsigned int mifi_t;
68250 
68251 typedef __u32 if_mask;
68252 
68253 struct if_set {
68254 	if_mask ifs_bits[8];
68255 };
68256 
68257 struct mif6ctl {
68258 	mifi_t mif6c_mifi;
68259 	unsigned char mif6c_flags;
68260 	unsigned char vifc_threshold;
68261 	__u16 mif6c_pifi;
68262 	unsigned int vifc_rate_limit;
68263 };
68264 
68265 struct mf6cctl {
68266 	struct sockaddr_in6 mf6cc_origin;
68267 	struct sockaddr_in6 mf6cc_mcastgrp;
68268 	mifi_t mf6cc_parent;
68269 	struct if_set mf6cc_ifset;
68270 };
68271 
68272 struct sioc_sg_req6 {
68273 	struct sockaddr_in6 src;
68274 	struct sockaddr_in6 grp;
68275 	long unsigned int pktcnt;
68276 	long unsigned int bytecnt;
68277 	long unsigned int wrong_if;
68278 };
68279 
68280 struct sioc_mif_req6 {
68281 	mifi_t mifi;
68282 	long unsigned int icount;
68283 	long unsigned int ocount;
68284 	long unsigned int ibytes;
68285 	long unsigned int obytes;
68286 };
68287 
68288 struct mrt6msg {
68289 	__u8 im6_mbz;
68290 	__u8 im6_msgtype;
68291 	__u16 im6_mif;
68292 	__u32 im6_pad;
68293 	struct in6_addr im6_src;
68294 	struct in6_addr im6_dst;
68295 };
68296 
68297 enum {
68298 	IP6MRA_CREPORT_UNSPEC = 0,
68299 	IP6MRA_CREPORT_MSGTYPE = 1,
68300 	IP6MRA_CREPORT_MIF_ID = 2,
68301 	IP6MRA_CREPORT_SRC_ADDR = 3,
68302 	IP6MRA_CREPORT_DST_ADDR = 4,
68303 	IP6MRA_CREPORT_PKT = 5,
68304 	__IP6MRA_CREPORT_MAX = 6,
68305 };
68306 
68307 struct vif_entry_notifier_info {
68308 	struct fib_notifier_info info;
68309 	struct net_device *dev;
68310 	short unsigned int vif_index;
68311 	short unsigned int vif_flags;
68312 	u32 tb_id;
68313 };
68314 
68315 enum {
68316 	MFC_STATIC = 1,
68317 	MFC_OFFLOAD = 2,
68318 };
68319 
68320 struct mr_mfc {
68321 	struct rhlist_head mnode;
68322 	short unsigned int mfc_parent;
68323 	int mfc_flags;
68324 	union {
68325 		struct {
68326 			long unsigned int expires;
68327 			struct sk_buff_head unresolved;
68328 		} unres;
68329 		struct {
68330 			long unsigned int last_assert;
68331 			int minvif;
68332 			int maxvif;
68333 			long unsigned int bytes;
68334 			long unsigned int pkt;
68335 			long unsigned int wrong_if;
68336 			long unsigned int lastuse;
68337 			unsigned char ttls[32];
68338 			refcount_t refcount;
68339 		} res;
68340 	} mfc_un;
68341 	struct list_head list;
68342 	struct callback_head rcu;
68343 	void (*free)(struct callback_head *);
68344 };
68345 
68346 struct mfc_entry_notifier_info {
68347 	struct fib_notifier_info info;
68348 	struct mr_mfc *mfc;
68349 	u32 tb_id;
68350 };
68351 
68352 struct mr_vif_iter {
68353 	struct seq_net_private p;
68354 	struct mr_table *mrt;
68355 	int ct;
68356 };
68357 
68358 struct mr_mfc_iter {
68359 	struct seq_net_private p;
68360 	struct mr_table *mrt;
68361 	struct list_head *cache;
68362 	spinlock_t *lock;
68363 };
68364 
68365 struct mfc6_cache_cmp_arg {
68366 	struct in6_addr mf6c_mcastgrp;
68367 	struct in6_addr mf6c_origin;
68368 };
68369 
68370 struct mfc6_cache {
68371 	struct mr_mfc _c;
68372 	union {
68373 		struct {
68374 			struct in6_addr mf6c_mcastgrp;
68375 			struct in6_addr mf6c_origin;
68376 		};
68377 		struct mfc6_cache_cmp_arg cmparg;
68378 	};
68379 };
68380 
68381 struct ip6mr_result {
68382 	struct mr_table *mrt;
68383 };
68384 
68385 struct netpoll;
68386 
68387 struct netpoll_info {
68388 	refcount_t refcnt;
68389 	struct semaphore dev_lock;
68390 	struct sk_buff_head txq;
68391 	struct delayed_work tx_work;
68392 	struct netpoll *netpoll;
68393 	struct callback_head rcu;
68394 };
68395 
68396 struct ip6_fraglist_iter {
68397 	struct ipv6hdr *tmp_hdr;
68398 	struct sk_buff *frag;
68399 	int offset;
68400 	unsigned int hlen;
68401 	__be32 frag_id;
68402 	u8 nexthdr;
68403 };
68404 
68405 struct ip6_frag_state {
68406 	u8 *prevhdr;
68407 	unsigned int hlen;
68408 	unsigned int mtu;
68409 	unsigned int left;
68410 	int offset;
68411 	int ptr;
68412 	int hroom;
68413 	int troom;
68414 	__be32 frag_id;
68415 	u8 nexthdr;
68416 };
68417 
68418 union inet_addr {
68419 	__u32 all[4];
68420 	__be32 ip;
68421 	__be32 ip6[4];
68422 	struct in_addr in;
68423 	struct in6_addr in6;
68424 };
68425 
68426 struct netpoll {
68427 	struct net_device *dev;
68428 	netdevice_tracker dev_tracker;
68429 	char dev_name[16];
68430 	const char *name;
68431 	union inet_addr local_ip;
68432 	union inet_addr remote_ip;
68433 	bool ipv6;
68434 	u16 local_port;
68435 	u16 remote_port;
68436 	u8 remote_mac[6];
68437 };
68438 
68439 struct nf_ipv6_ops {
68440 	void (*route_input)(struct sk_buff *);
68441 	int (*fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *));
68442 	int (*reroute)(struct sk_buff *, const struct nf_queue_entry *);
68443 };
68444 
68445 enum {
68446 	BR_MCAST_DIR_RX = 0,
68447 	BR_MCAST_DIR_TX = 1,
68448 	BR_MCAST_DIR_SIZE = 2,
68449 };
68450 
68451 struct br_input_skb_cb {
68452 	struct net_device *brdev;
68453 	u16 frag_max_size;
68454 	u8 igmp;
68455 	u8 mrouters_only: 1;
68456 	u8 proxyarp_replied: 1;
68457 	u8 src_port_isolated: 1;
68458 	u8 br_netfilter_broute: 1;
68459 };
68460 
68461 struct nf_bridge_frag_data;
68462 
68463 enum lwtunnel_encap_types {
68464 	LWTUNNEL_ENCAP_NONE = 0,
68465 	LWTUNNEL_ENCAP_MPLS = 1,
68466 	LWTUNNEL_ENCAP_IP = 2,
68467 	LWTUNNEL_ENCAP_ILA = 3,
68468 	LWTUNNEL_ENCAP_IP6 = 4,
68469 	LWTUNNEL_ENCAP_SEG6 = 5,
68470 	LWTUNNEL_ENCAP_BPF = 6,
68471 	LWTUNNEL_ENCAP_SEG6_LOCAL = 7,
68472 	LWTUNNEL_ENCAP_RPL = 8,
68473 	LWTUNNEL_ENCAP_IOAM6 = 9,
68474 	LWTUNNEL_ENCAP_XFRM = 10,
68475 	__LWTUNNEL_ENCAP_MAX = 11,
68476 };
68477 
68478 struct lwtunnel_encap_ops {
68479 	int (*build_state)(struct net *, struct nlattr *, unsigned int, const void *, struct lwtunnel_state **, struct netlink_ext_ack *);
68480 	void (*destroy_state)(struct lwtunnel_state *);
68481 	int (*output)(struct net *, struct sock *, struct sk_buff *);
68482 	int (*input)(struct sk_buff *);
68483 	int (*fill_encap)(struct sk_buff *, struct lwtunnel_state *);
68484 	int (*get_encap_size)(struct lwtunnel_state *);
68485 	int (*cmp_encap)(struct lwtunnel_state *, struct lwtunnel_state *);
68486 	int (*xmit)(struct sk_buff *);
68487 	struct module *owner;
68488 };
68489 
68490 struct ipv6_sr_hdr {
68491 	__u8 nexthdr;
68492 	__u8 hdrlen;
68493 	__u8 type;
68494 	__u8 segments_left;
68495 	__u8 first_segment;
68496 	__u8 flags;
68497 	__u16 tag;
68498 	struct in6_addr segments[0];
68499 };
68500 
68501 enum {
68502 	SEG6_IPTUNNEL_UNSPEC = 0,
68503 	SEG6_IPTUNNEL_SRH = 1,
68504 	__SEG6_IPTUNNEL_MAX = 2,
68505 };
68506 
68507 struct seg6_iptunnel_encap {
68508 	int mode;
68509 	struct ipv6_sr_hdr srh[0];
68510 };
68511 
68512 enum {
68513 	SEG6_IPTUN_MODE_INLINE = 0,
68514 	SEG6_IPTUN_MODE_ENCAP = 1,
68515 	SEG6_IPTUN_MODE_L2ENCAP = 2,
68516 	SEG6_IPTUN_MODE_ENCAP_RED = 3,
68517 	SEG6_IPTUN_MODE_L2ENCAP_RED = 4,
68518 };
68519 
68520 struct seg6_lwt {
68521 	struct dst_cache cache;
68522 	struct seg6_iptunnel_encap tuninfo[0];
68523 };
68524 
68525 enum {
68526 	IFLA_IPTUN_UNSPEC = 0,
68527 	IFLA_IPTUN_LINK = 1,
68528 	IFLA_IPTUN_LOCAL = 2,
68529 	IFLA_IPTUN_REMOTE = 3,
68530 	IFLA_IPTUN_TTL = 4,
68531 	IFLA_IPTUN_TOS = 5,
68532 	IFLA_IPTUN_ENCAP_LIMIT = 6,
68533 	IFLA_IPTUN_FLOWINFO = 7,
68534 	IFLA_IPTUN_FLAGS = 8,
68535 	IFLA_IPTUN_PROTO = 9,
68536 	IFLA_IPTUN_PMTUDISC = 10,
68537 	IFLA_IPTUN_6RD_PREFIX = 11,
68538 	IFLA_IPTUN_6RD_RELAY_PREFIX = 12,
68539 	IFLA_IPTUN_6RD_PREFIXLEN = 13,
68540 	IFLA_IPTUN_6RD_RELAY_PREFIXLEN = 14,
68541 	IFLA_IPTUN_ENCAP_TYPE = 15,
68542 	IFLA_IPTUN_ENCAP_FLAGS = 16,
68543 	IFLA_IPTUN_ENCAP_SPORT = 17,
68544 	IFLA_IPTUN_ENCAP_DPORT = 18,
68545 	IFLA_IPTUN_COLLECT_METADATA = 19,
68546 	IFLA_IPTUN_FWMARK = 20,
68547 	__IFLA_IPTUN_MAX = 21,
68548 };
68549 
68550 enum tunnel_encap_types {
68551 	TUNNEL_ENCAP_NONE = 0,
68552 	TUNNEL_ENCAP_FOU = 1,
68553 	TUNNEL_ENCAP_GUE = 2,
68554 	TUNNEL_ENCAP_MPLS = 3,
68555 };
68556 
68557 struct ip_tunnel_prl {
68558 	__be32 addr;
68559 	__u16 flags;
68560 	__u16 __reserved;
68561 	__u32 datalen;
68562 	__u32 __reserved2;
68563 };
68564 
68565 struct gro_cell;
68566 
68567 struct gro_cells {
68568 	struct gro_cell *cells;
68569 };
68570 
68571 struct vlan_hdr {
68572 	__be16 h_vlan_TCI;
68573 	__be16 h_vlan_encapsulated_proto;
68574 };
68575 
68576 struct ip_tunnel_prl_entry {
68577 	struct ip_tunnel_prl_entry *next;
68578 	__be32 addr;
68579 	u16 flags;
68580 	struct callback_head callback_head;
68581 };
68582 
68583 struct ip_tunnel {
68584 	struct ip_tunnel *next;
68585 	struct hlist_node hash_node;
68586 	struct net_device *dev;
68587 	netdevice_tracker dev_tracker;
68588 	struct net *net;
68589 	long unsigned int err_time;
68590 	int err_count;
68591 	u32 i_seqno;
68592 	atomic_t o_seqno;
68593 	int tun_hlen;
68594 	u32 index;
68595 	u8 erspan_ver;
68596 	u8 dir;
68597 	u16 hwid;
68598 	struct dst_cache dst_cache;
68599 	struct ip_tunnel_parm parms;
68600 	int mlink;
68601 	int encap_hlen;
68602 	int hlen;
68603 	struct ip_tunnel_encap encap;
68604 	struct ip_tunnel_prl_entry *prl;
68605 	unsigned int prl_count;
68606 	unsigned int ip_tnl_net_id;
68607 	struct gro_cells gro_cells;
68608 	__u32 fwmark;
68609 	bool collect_md;
68610 	bool ignore_df;
68611 };
68612 
68613 struct tnl_ptk_info {
68614 	__be16 flags;
68615 	__be16 proto;
68616 	__be32 key;
68617 	__be32 seq;
68618 	int hdr_len;
68619 };
68620 
68621 struct xfrm_tunnel {
68622 	int (*handler)(struct sk_buff *);
68623 	int (*cb_handler)(struct sk_buff *, int);
68624 	int (*err_handler)(struct sk_buff *, u32);
68625 	struct xfrm_tunnel *next;
68626 	int priority;
68627 };
68628 
68629 struct sit_net {
68630 	struct ip_tunnel *tunnels_r_l[16];
68631 	struct ip_tunnel *tunnels_r[16];
68632 	struct ip_tunnel *tunnels_l[16];
68633 	struct ip_tunnel *tunnels_wc[1];
68634 	struct ip_tunnel **tunnels[4];
68635 	struct net_device *fb_tunnel_dev;
68636 };
68637 
68638 struct metadata_dst;
68639 
68640 struct sockaddr_pkt {
68641 	short unsigned int spkt_family;
68642 	unsigned char spkt_device[14];
68643 	__be16 spkt_protocol;
68644 };
68645 
68646 struct sockaddr_ll {
68647 	short unsigned int sll_family;
68648 	__be16 sll_protocol;
68649 	int sll_ifindex;
68650 	short unsigned int sll_hatype;
68651 	unsigned char sll_pkttype;
68652 	unsigned char sll_halen;
68653 	unsigned char sll_addr[8];
68654 };
68655 
68656 struct tpacket_stats {
68657 	unsigned int tp_packets;
68658 	unsigned int tp_drops;
68659 };
68660 
68661 struct tpacket_stats_v3 {
68662 	unsigned int tp_packets;
68663 	unsigned int tp_drops;
68664 	unsigned int tp_freeze_q_cnt;
68665 };
68666 
68667 struct tpacket_rollover_stats {
68668 	__u64 tp_all;
68669 	__u64 tp_huge;
68670 	__u64 tp_failed;
68671 };
68672 
68673 union tpacket_stats_u {
68674 	struct tpacket_stats stats1;
68675 	struct tpacket_stats_v3 stats3;
68676 };
68677 
68678 struct tpacket_auxdata {
68679 	__u32 tp_status;
68680 	__u32 tp_len;
68681 	__u32 tp_snaplen;
68682 	__u16 tp_mac;
68683 	__u16 tp_net;
68684 	__u16 tp_vlan_tci;
68685 	__u16 tp_vlan_tpid;
68686 };
68687 
68688 struct tpacket_hdr {
68689 	long unsigned int tp_status;
68690 	unsigned int tp_len;
68691 	unsigned int tp_snaplen;
68692 	short unsigned int tp_mac;
68693 	short unsigned int tp_net;
68694 	unsigned int tp_sec;
68695 	unsigned int tp_usec;
68696 };
68697 
68698 struct tpacket2_hdr {
68699 	__u32 tp_status;
68700 	__u32 tp_len;
68701 	__u32 tp_snaplen;
68702 	__u16 tp_mac;
68703 	__u16 tp_net;
68704 	__u32 tp_sec;
68705 	__u32 tp_nsec;
68706 	__u16 tp_vlan_tci;
68707 	__u16 tp_vlan_tpid;
68708 	__u8 tp_padding[4];
68709 };
68710 
68711 struct tpacket_hdr_variant1 {
68712 	__u32 tp_rxhash;
68713 	__u32 tp_vlan_tci;
68714 	__u16 tp_vlan_tpid;
68715 	__u16 tp_padding;
68716 };
68717 
68718 struct tpacket3_hdr {
68719 	__u32 tp_next_offset;
68720 	__u32 tp_sec;
68721 	__u32 tp_nsec;
68722 	__u32 tp_snaplen;
68723 	__u32 tp_len;
68724 	__u32 tp_status;
68725 	__u16 tp_mac;
68726 	__u16 tp_net;
68727 	union {
68728 		struct tpacket_hdr_variant1 hv1;
68729 	};
68730 	__u8 tp_padding[8];
68731 };
68732 
68733 struct tpacket_bd_ts {
68734 	unsigned int ts_sec;
68735 	union {
68736 		unsigned int ts_usec;
68737 		unsigned int ts_nsec;
68738 	};
68739 };
68740 
68741 struct tpacket_hdr_v1 {
68742 	__u32 block_status;
68743 	__u32 num_pkts;
68744 	__u32 offset_to_first_pkt;
68745 	__u32 blk_len;
68746 	__u64 seq_num;
68747 	struct tpacket_bd_ts ts_first_pkt;
68748 	struct tpacket_bd_ts ts_last_pkt;
68749 };
68750 
68751 union tpacket_bd_header_u {
68752 	struct tpacket_hdr_v1 bh1;
68753 };
68754 
68755 struct tpacket_block_desc {
68756 	__u32 version;
68757 	__u32 offset_to_priv;
68758 	union tpacket_bd_header_u hdr;
68759 };
68760 
68761 enum tpacket_versions {
68762 	TPACKET_V1 = 0,
68763 	TPACKET_V2 = 1,
68764 	TPACKET_V3 = 2,
68765 };
68766 
68767 struct tpacket_req {
68768 	unsigned int tp_block_size;
68769 	unsigned int tp_block_nr;
68770 	unsigned int tp_frame_size;
68771 	unsigned int tp_frame_nr;
68772 };
68773 
68774 struct tpacket_req3 {
68775 	unsigned int tp_block_size;
68776 	unsigned int tp_block_nr;
68777 	unsigned int tp_frame_size;
68778 	unsigned int tp_frame_nr;
68779 	unsigned int tp_retire_blk_tov;
68780 	unsigned int tp_sizeof_priv;
68781 	unsigned int tp_feature_req_word;
68782 };
68783 
68784 union tpacket_req_u {
68785 	struct tpacket_req req;
68786 	struct tpacket_req3 req3;
68787 };
68788 
68789 struct fanout_args {
68790 	__u16 id;
68791 	__u16 type_flags;
68792 	__u32 max_num_members;
68793 };
68794 
68795 enum nf_dev_hooks {
68796 	NF_NETDEV_INGRESS = 0,
68797 	NF_NETDEV_EGRESS = 1,
68798 	NF_NETDEV_NUMHOOKS = 2,
68799 };
68800 
68801 typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int);
68802 
68803 enum ip_defrag_users {
68804 	IP_DEFRAG_LOCAL_DELIVER = 0,
68805 	IP_DEFRAG_CALL_RA_CHAIN = 1,
68806 	IP_DEFRAG_CONNTRACK_IN = 2,
68807 	__IP_DEFRAG_CONNTRACK_IN_END = 65537,
68808 	IP_DEFRAG_CONNTRACK_OUT = 65538,
68809 	__IP_DEFRAG_CONNTRACK_OUT_END = 131073,
68810 	IP_DEFRAG_CONNTRACK_BRIDGE_IN = 131074,
68811 	__IP_DEFRAG_CONNTRACK_BRIDGE_IN = 196609,
68812 	IP_DEFRAG_VS_IN = 196610,
68813 	IP_DEFRAG_VS_OUT = 196611,
68814 	IP_DEFRAG_VS_FWD = 196612,
68815 	IP_DEFRAG_AF_PACKET = 196613,
68816 	IP_DEFRAG_MACVLAN = 196614,
68817 };
68818 
68819 typedef __u16 __virtio16;
68820 
68821 struct virtio_net_hdr {
68822 	__u8 flags;
68823 	__u8 gso_type;
68824 	__virtio16 hdr_len;
68825 	__virtio16 gso_size;
68826 	__virtio16 csum_start;
68827 	__virtio16 csum_offset;
68828 };
68829 
68830 struct packet_mclist {
68831 	struct packet_mclist *next;
68832 	int ifindex;
68833 	int count;
68834 	short unsigned int type;
68835 	short unsigned int alen;
68836 	unsigned char addr[32];
68837 };
68838 
68839 struct pgv;
68840 
68841 struct tpacket_kbdq_core {
68842 	struct pgv *pkbdq;
68843 	unsigned int feature_req_word;
68844 	unsigned int hdrlen;
68845 	unsigned char reset_pending_on_curr_blk;
68846 	unsigned char delete_blk_timer;
68847 	short unsigned int kactive_blk_num;
68848 	short unsigned int blk_sizeof_priv;
68849 	short unsigned int last_kactive_blk_num;
68850 	char *pkblk_start;
68851 	char *pkblk_end;
68852 	int kblk_size;
68853 	unsigned int max_frame_len;
68854 	unsigned int knum_blocks;
68855 	uint64_t knxt_seq_num;
68856 	char *prev;
68857 	char *nxt_offset;
68858 	struct sk_buff *skb;
68859 	rwlock_t blk_fill_in_prog_lock;
68860 	short unsigned int retire_blk_tov;
68861 	short unsigned int version;
68862 	long unsigned int tov_in_jiffies;
68863 	struct timer_list retire_blk_timer;
68864 };
68865 
68866 struct pgv {
68867 	char *buffer;
68868 };
68869 
68870 struct packet_ring_buffer {
68871 	struct pgv *pg_vec;
68872 	unsigned int head;
68873 	unsigned int frames_per_block;
68874 	unsigned int frame_size;
68875 	unsigned int frame_max;
68876 	unsigned int pg_vec_order;
68877 	unsigned int pg_vec_pages;
68878 	unsigned int pg_vec_len;
68879 	unsigned int *pending_refcnt;
68880 	union {
68881 		long unsigned int *rx_owner_map;
68882 		struct tpacket_kbdq_core prb_bdqc;
68883 	};
68884 };
68885 
68886 struct packet_fanout {
68887 	possible_net_t net;
68888 	unsigned int num_members;
68889 	u32 max_num_members;
68890 	u16 id;
68891 	u8 type;
68892 	u8 flags;
68893 	union {
68894 		atomic_t rr_cur;
68895 		struct bpf_prog *bpf_prog;
68896 	};
68897 	struct list_head list;
68898 	spinlock_t lock;
68899 	refcount_t sk_ref;
68900 	long: 64;
68901 	struct packet_type prot_hook;
68902 	struct sock *arr[0];
68903 	long: 64;
68904 	long: 64;
68905 	long: 64;
68906 	long: 64;
68907 	long: 64;
68908 	long: 64;
68909 	long: 64;
68910 };
68911 
68912 struct packet_rollover {
68913 	int sock;
68914 	atomic_long_t num;
68915 	atomic_long_t num_huge;
68916 	atomic_long_t num_failed;
68917 	long: 64;
68918 	long: 64;
68919 	long: 64;
68920 	long: 64;
68921 	u32 history[16];
68922 };
68923 
68924 struct packet_sock {
68925 	struct sock sk;
68926 	struct packet_fanout *fanout;
68927 	union tpacket_stats_u stats;
68928 	struct packet_ring_buffer rx_ring;
68929 	struct packet_ring_buffer tx_ring;
68930 	int copy_thresh;
68931 	spinlock_t bind_lock;
68932 	struct mutex pg_vec_lock;
68933 	unsigned int running;
68934 	unsigned int auxdata: 1;
68935 	unsigned int origdev: 1;
68936 	unsigned int has_vnet_hdr: 1;
68937 	unsigned int tp_loss: 1;
68938 	unsigned int tp_tx_has_off: 1;
68939 	int pressure;
68940 	int ifindex;
68941 	__be16 num;
68942 	struct packet_rollover *rollover;
68943 	struct packet_mclist *mclist;
68944 	atomic_t mapped;
68945 	enum tpacket_versions tp_version;
68946 	unsigned int tp_hdrlen;
68947 	unsigned int tp_reserve;
68948 	unsigned int tp_tstamp;
68949 	struct completion skb_completion;
68950 	struct net_device *cached_dev;
68951 	int (*xmit)(struct sk_buff *);
68952 	long: 64;
68953 	long: 64;
68954 	long: 64;
68955 	long: 64;
68956 	long: 64;
68957 	long: 64;
68958 	long: 64;
68959 	struct packet_type prot_hook;
68960 	long: 64;
68961 	long: 64;
68962 	long: 64;
68963 	long: 64;
68964 	long: 64;
68965 	long: 64;
68966 	long: 64;
68967 	atomic_t tp_drops;
68968 	long: 32;
68969 	long: 64;
68970 	long: 64;
68971 	long: 64;
68972 	long: 64;
68973 	long: 64;
68974 	long: 64;
68975 	long: 64;
68976 };
68977 
68978 struct packet_mreq_max {
68979 	int mr_ifindex;
68980 	short unsigned int mr_type;
68981 	short unsigned int mr_alen;
68982 	unsigned char mr_address[32];
68983 };
68984 
68985 union tpacket_uhdr {
68986 	struct tpacket_hdr *h1;
68987 	struct tpacket2_hdr *h2;
68988 	struct tpacket3_hdr *h3;
68989 	void *raw;
68990 };
68991 
68992 struct packet_skb_cb {
68993 	union {
68994 		struct sockaddr_pkt pkt;
68995 		union {
68996 			unsigned int origlen;
68997 			struct sockaddr_ll ll;
68998 		};
68999 	} sa;
69000 };
69001 
69002 struct mmpin {
69003 	struct user_struct *user;
69004 	unsigned int num_pg;
69005 };
69006 
69007 enum {
69008 	IB_USER_MAD_USER_RMPP = 1,
69009 };
69010 
69011 enum rdma_transport_type {
69012 	RDMA_TRANSPORT_IB = 0,
69013 	RDMA_TRANSPORT_IWARP = 1,
69014 	RDMA_TRANSPORT_USNIC = 2,
69015 	RDMA_TRANSPORT_USNIC_UDP = 3,
69016 	RDMA_TRANSPORT_UNSPECIFIED = 4,
69017 };
69018 
69019 enum rdma_network_type {
69020 	RDMA_NETWORK_IB = 0,
69021 	RDMA_NETWORK_ROCE_V1 = 1,
69022 	RDMA_NETWORK_IPV4 = 2,
69023 	RDMA_NETWORK_IPV6 = 3,
69024 };
69025 
69026 struct rdma_cm_event;
69027 
69028 typedef int (*rdma_cm_event_handler)(struct rdma_cm_id *, struct rdma_cm_event *);
69029 
69030 struct rdma_dev_addr {
69031 	unsigned char src_dev_addr[32];
69032 	unsigned char dst_dev_addr[32];
69033 	unsigned char broadcast[32];
69034 	short unsigned int dev_type;
69035 	int bound_dev_if;
69036 	enum rdma_transport_type transport;
69037 	struct net *net;
69038 	const struct ib_gid_attr *sgid_attr;
69039 	enum rdma_network_type network;
69040 	int hoplimit;
69041 };
69042 
69043 struct rdma_addr {
69044 	struct __kernel_sockaddr_storage src_addr;
69045 	struct __kernel_sockaddr_storage dst_addr;
69046 	struct rdma_dev_addr dev_addr;
69047 };
69048 
69049 struct sa_path_rec;
69050 
69051 struct rdma_route {
69052 	struct rdma_addr addr;
69053 	struct sa_path_rec *path_rec;
69054 	struct sa_path_rec *path_rec_inbound;
69055 	struct sa_path_rec *path_rec_outbound;
69056 	int num_pri_alt_paths;
69057 };
69058 
69059 enum rdma_ucm_port_space {
69060 	RDMA_PS_IPOIB = 2,
69061 	RDMA_PS_IB = 319,
69062 	RDMA_PS_TCP = 262,
69063 	RDMA_PS_UDP = 273,
69064 };
69065 
69066 struct rdma_cm_id {
69067 	struct ib_device *device;
69068 	void *context;
69069 	struct ib_qp *qp;
69070 	rdma_cm_event_handler event_handler;
69071 	struct rdma_route route;
69072 	enum rdma_ucm_port_space ps;
69073 	enum ib_qp_type qp_type;
69074 	u32 port_num;
69075 	struct work_struct net_work;
69076 };
69077 
69078 enum {
69079 	IB_MGMT_MAD_HDR = 24,
69080 	IB_MGMT_MAD_DATA = 232,
69081 	IB_MGMT_RMPP_HDR = 36,
69082 	IB_MGMT_RMPP_DATA = 220,
69083 	IB_MGMT_VENDOR_HDR = 40,
69084 	IB_MGMT_VENDOR_DATA = 216,
69085 	IB_MGMT_SA_HDR = 56,
69086 	IB_MGMT_SA_DATA = 200,
69087 	IB_MGMT_DEVICE_HDR = 64,
69088 	IB_MGMT_DEVICE_DATA = 192,
69089 	IB_MGMT_MAD_SIZE = 256,
69090 	OPA_MGMT_MAD_DATA = 2024,
69091 	OPA_MGMT_RMPP_DATA = 2012,
69092 	OPA_MGMT_MAD_SIZE = 2048,
69093 };
69094 
69095 enum sa_path_rec_type {
69096 	SA_PATH_REC_TYPE_IB = 0,
69097 	SA_PATH_REC_TYPE_ROCE_V1 = 1,
69098 	SA_PATH_REC_TYPE_ROCE_V2 = 2,
69099 	SA_PATH_REC_TYPE_OPA = 3,
69100 };
69101 
69102 struct sa_path_rec_ib {
69103 	__be16 dlid;
69104 	__be16 slid;
69105 	u8 raw_traffic;
69106 };
69107 
69108 struct sa_path_rec_roce {
69109 	bool route_resolved;
69110 	u8 dmac[6];
69111 };
69112 
69113 struct sa_path_rec_opa {
69114 	__be32 dlid;
69115 	__be32 slid;
69116 	u8 raw_traffic;
69117 	u8 l2_8B;
69118 	u8 l2_10B;
69119 	u8 l2_9B;
69120 	u8 l2_16B;
69121 	u8 qos_type;
69122 	u8 qos_priority;
69123 };
69124 
69125 struct sa_path_rec {
69126 	union ib_gid dgid;
69127 	union ib_gid sgid;
69128 	__be64 service_id;
69129 	__be32 flow_label;
69130 	u8 hop_limit;
69131 	u8 traffic_class;
69132 	u8 reversible;
69133 	u8 numb_path;
69134 	__be16 pkey;
69135 	__be16 qos_class;
69136 	u8 sl;
69137 	u8 mtu_selector;
69138 	u8 mtu;
69139 	u8 rate_selector;
69140 	u8 rate;
69141 	u8 packet_life_time_selector;
69142 	u8 packet_life_time;
69143 	u8 preference;
69144 	union {
69145 		struct sa_path_rec_ib ib;
69146 		struct sa_path_rec_roce roce;
69147 		struct sa_path_rec_opa opa;
69148 	};
69149 	enum sa_path_rec_type rec_type;
69150 	u32 flags;
69151 };
69152 
69153 struct rdma_ucm_ece {
69154 	__u32 vendor_id;
69155 	__u32 attr_mod;
69156 };
69157 
69158 enum rdma_cm_event_type {
69159 	RDMA_CM_EVENT_ADDR_RESOLVED = 0,
69160 	RDMA_CM_EVENT_ADDR_ERROR = 1,
69161 	RDMA_CM_EVENT_ROUTE_RESOLVED = 2,
69162 	RDMA_CM_EVENT_ROUTE_ERROR = 3,
69163 	RDMA_CM_EVENT_CONNECT_REQUEST = 4,
69164 	RDMA_CM_EVENT_CONNECT_RESPONSE = 5,
69165 	RDMA_CM_EVENT_CONNECT_ERROR = 6,
69166 	RDMA_CM_EVENT_UNREACHABLE = 7,
69167 	RDMA_CM_EVENT_REJECTED = 8,
69168 	RDMA_CM_EVENT_ESTABLISHED = 9,
69169 	RDMA_CM_EVENT_DISCONNECTED = 10,
69170 	RDMA_CM_EVENT_DEVICE_REMOVAL = 11,
69171 	RDMA_CM_EVENT_MULTICAST_JOIN = 12,
69172 	RDMA_CM_EVENT_MULTICAST_ERROR = 13,
69173 	RDMA_CM_EVENT_ADDR_CHANGE = 14,
69174 	RDMA_CM_EVENT_TIMEWAIT_EXIT = 15,
69175 };
69176 
69177 struct rdma_conn_param {
69178 	const void *private_data;
69179 	u8 private_data_len;
69180 	u8 responder_resources;
69181 	u8 initiator_depth;
69182 	u8 flow_control;
69183 	u8 retry_count;
69184 	u8 rnr_retry_count;
69185 	u8 srq;
69186 	u32 qp_num;
69187 	u32 qkey;
69188 };
69189 
69190 struct rdma_ud_param {
69191 	const void *private_data;
69192 	u8 private_data_len;
69193 	struct rdma_ah_attr ah_attr;
69194 	u32 qp_num;
69195 	u32 qkey;
69196 };
69197 
69198 struct rdma_cm_event {
69199 	enum rdma_cm_event_type event;
69200 	int status;
69201 	union {
69202 		struct rdma_conn_param conn;
69203 		struct rdma_ud_param ud;
69204 	} param;
69205 	struct rdma_ucm_ece ece;
69206 };
69207 
69208 struct rds_info_connection {
69209 	__u64 next_tx_seq;
69210 	__u64 next_rx_seq;
69211 	__be32 laddr;
69212 	__be32 faddr;
69213 	__u8 transport[16];
69214 	__u8 flags;
69215 	__u8 tos;
69216 } __attribute__((packed));
69217 
69218 struct rds6_info_connection {
69219 	__u64 next_tx_seq;
69220 	__u64 next_rx_seq;
69221 	struct in6_addr laddr;
69222 	struct in6_addr faddr;
69223 	__u8 transport[16];
69224 	__u8 flags;
69225 } __attribute__((packed));
69226 
69227 enum rds_message_rxpath_latency {
69228 	RDS_MSG_RX_HDR_TO_DGRAM_START = 0,
69229 	RDS_MSG_RX_DGRAM_REASSEMBLE = 1,
69230 	RDS_MSG_RX_DGRAM_DELIVERED = 2,
69231 	RDS_MSG_RX_DGRAM_TRACE_MAX = 3,
69232 };
69233 
69234 typedef __u64 rds_rdma_cookie_t;
69235 
69236 struct rds_info_lengths {
69237 	unsigned int nr;
69238 	unsigned int each;
69239 };
69240 
69241 struct rds_info_iterator;
69242 
69243 typedef void (*rds_info_func)(struct socket *, unsigned int, struct rds_info_iterator *, struct rds_info_lengths *);
69244 
69245 struct rds_cong_map {
69246 	struct rb_node m_rb_node;
69247 	struct in6_addr m_addr;
69248 	wait_queue_head_t m_waitq;
69249 	struct list_head m_conn_list;
69250 	long unsigned int m_page_addrs[1];
69251 };
69252 
69253 enum {
69254 	RDS_CONN_DOWN = 0,
69255 	RDS_CONN_CONNECTING = 1,
69256 	RDS_CONN_DISCONNECTING = 2,
69257 	RDS_CONN_UP = 3,
69258 	RDS_CONN_RESETTING = 4,
69259 	RDS_CONN_ERROR = 5,
69260 };
69261 
69262 struct rds_connection;
69263 
69264 struct rds_message;
69265 
69266 struct rds_conn_path {
69267 	struct rds_connection *cp_conn;
69268 	struct rds_message *cp_xmit_rm;
69269 	long unsigned int cp_xmit_sg;
69270 	unsigned int cp_xmit_hdr_off;
69271 	unsigned int cp_xmit_data_off;
69272 	unsigned int cp_xmit_atomic_sent;
69273 	unsigned int cp_xmit_rdma_sent;
69274 	unsigned int cp_xmit_data_sent;
69275 	spinlock_t cp_lock;
69276 	u64 cp_next_tx_seq;
69277 	struct list_head cp_send_queue;
69278 	struct list_head cp_retrans;
69279 	u64 cp_next_rx_seq;
69280 	void *cp_transport_data;
69281 	atomic_t cp_state;
69282 	long unsigned int cp_send_gen;
69283 	long unsigned int cp_flags;
69284 	long unsigned int cp_reconnect_jiffies;
69285 	struct delayed_work cp_send_w;
69286 	struct delayed_work cp_recv_w;
69287 	struct delayed_work cp_conn_w;
69288 	struct work_struct cp_down_w;
69289 	struct mutex cp_cm_lock;
69290 	wait_queue_head_t cp_waitq;
69291 	unsigned int cp_unacked_packets;
69292 	unsigned int cp_unacked_bytes;
69293 	unsigned int cp_index;
69294 };
69295 
69296 struct rds_transport;
69297 
69298 struct rds_connection {
69299 	struct hlist_node c_hash_node;
69300 	struct in6_addr c_laddr;
69301 	struct in6_addr c_faddr;
69302 	int c_dev_if;
69303 	int c_bound_if;
69304 	unsigned int c_loopback: 1;
69305 	unsigned int c_isv6: 1;
69306 	unsigned int c_ping_triggered: 1;
69307 	unsigned int c_pad_to_32: 29;
69308 	int c_npaths;
69309 	struct rds_connection *c_passive;
69310 	struct rds_transport *c_trans;
69311 	struct rds_cong_map *c_lcong;
69312 	struct rds_cong_map *c_fcong;
69313 	unsigned int c_proposed_version;
69314 	unsigned int c_version;
69315 	possible_net_t c_net;
69316 	u8 c_tos;
69317 	struct list_head c_map_item;
69318 	long unsigned int c_map_queued;
69319 	struct rds_conn_path *c_path;
69320 	wait_queue_head_t c_hs_waitq;
69321 	u32 c_my_gen_num;
69322 	u32 c_peer_gen_num;
69323 };
69324 
69325 struct rds_header {
69326 	__be64 h_sequence;
69327 	__be64 h_ack;
69328 	__be32 h_len;
69329 	__be16 h_sport;
69330 	__be16 h_dport;
69331 	u8 h_flags;
69332 	u8 h_credit;
69333 	u8 h_padding[4];
69334 	__sum16 h_csum;
69335 	u8 h_exthdr[16];
69336 };
69337 
69338 struct rds_inc_usercopy {
69339 	rds_rdma_cookie_t rdma_cookie;
69340 	ktime_t rx_tstamp;
69341 };
69342 
69343 struct rds_incoming {
69344 	refcount_t i_refcount;
69345 	struct list_head i_item;
69346 	struct rds_connection *i_conn;
69347 	struct rds_conn_path *i_conn_path;
69348 	struct rds_header i_hdr;
69349 	long unsigned int i_rx_jiffies;
69350 	struct in6_addr i_saddr;
69351 	struct rds_inc_usercopy i_usercopy;
69352 	u64 i_rx_lat_trace[4];
69353 };
69354 
69355 struct rds_notifier;
69356 
69357 struct rds_mr;
69358 
69359 struct rm_atomic_op {
69360 	int op_type;
69361 	union {
69362 		struct {
69363 			uint64_t compare;
69364 			uint64_t swap;
69365 			uint64_t compare_mask;
69366 			uint64_t swap_mask;
69367 		} op_m_cswp;
69368 		struct {
69369 			uint64_t add;
69370 			uint64_t nocarry_mask;
69371 		} op_m_fadd;
69372 	};
69373 	u32 op_rkey;
69374 	u64 op_remote_addr;
69375 	unsigned int op_notify: 1;
69376 	unsigned int op_recverr: 1;
69377 	unsigned int op_mapped: 1;
69378 	unsigned int op_silent: 1;
69379 	unsigned int op_active: 1;
69380 	struct scatterlist *op_sg;
69381 	struct rds_notifier *op_notifier;
69382 	struct rds_mr *op_rdma_mr;
69383 };
69384 
69385 struct rm_rdma_op {
69386 	u32 op_rkey;
69387 	u64 op_remote_addr;
69388 	unsigned int op_write: 1;
69389 	unsigned int op_fence: 1;
69390 	unsigned int op_notify: 1;
69391 	unsigned int op_recverr: 1;
69392 	unsigned int op_mapped: 1;
69393 	unsigned int op_silent: 1;
69394 	unsigned int op_active: 1;
69395 	unsigned int op_bytes;
69396 	unsigned int op_nents;
69397 	unsigned int op_count;
69398 	struct scatterlist *op_sg;
69399 	struct rds_notifier *op_notifier;
69400 	struct rds_mr *op_rdma_mr;
69401 	u64 op_odp_addr;
69402 	struct rds_mr *op_odp_mr;
69403 };
69404 
69405 struct rds_znotifier;
69406 
69407 struct rm_data_op {
69408 	unsigned int op_active: 1;
69409 	unsigned int op_nents;
69410 	unsigned int op_count;
69411 	unsigned int op_dmasg;
69412 	unsigned int op_dmaoff;
69413 	struct rds_znotifier *op_mmp_znotifier;
69414 	struct scatterlist *op_sg;
69415 };
69416 
69417 struct rds_sock;
69418 
69419 struct rds_message {
69420 	refcount_t m_refcount;
69421 	struct list_head m_sock_item;
69422 	struct list_head m_conn_item;
69423 	struct rds_incoming m_inc;
69424 	u64 m_ack_seq;
69425 	struct in6_addr m_daddr;
69426 	long unsigned int m_flags;
69427 	spinlock_t m_rs_lock;
69428 	wait_queue_head_t m_flush_wait;
69429 	struct rds_sock *m_rs;
69430 	rds_rdma_cookie_t m_rdma_cookie;
69431 	unsigned int m_used_sgs;
69432 	unsigned int m_total_sgs;
69433 	void *m_final_op;
69434 	struct {
69435 		struct rm_atomic_op atomic;
69436 		struct rm_rdma_op rdma;
69437 		struct rm_data_op data;
69438 	};
69439 	struct rds_conn_path *m_conn_path;
69440 };
69441 
69442 struct rds_transport {
69443 	char t_name[16];
69444 	struct list_head t_item;
69445 	struct module *t_owner;
69446 	unsigned int t_prefer_loopback: 1;
69447 	unsigned int t_mp_capable: 1;
69448 	unsigned int t_type;
69449 	int (*laddr_check)(struct net *, const struct in6_addr *, __u32);
69450 	int (*conn_alloc)(struct rds_connection *, gfp_t);
69451 	void (*conn_free)(void *);
69452 	int (*conn_path_connect)(struct rds_conn_path *);
69453 	void (*conn_path_shutdown)(struct rds_conn_path *);
69454 	void (*xmit_path_prepare)(struct rds_conn_path *);
69455 	void (*xmit_path_complete)(struct rds_conn_path *);
69456 	int (*xmit)(struct rds_connection *, struct rds_message *, unsigned int, unsigned int, unsigned int);
69457 	int (*xmit_rdma)(struct rds_connection *, struct rm_rdma_op *);
69458 	int (*xmit_atomic)(struct rds_connection *, struct rm_atomic_op *);
69459 	int (*recv_path)(struct rds_conn_path *);
69460 	int (*inc_copy_to_user)(struct rds_incoming *, struct iov_iter *);
69461 	void (*inc_free)(struct rds_incoming *);
69462 	int (*cm_handle_connect)(struct rdma_cm_id *, struct rdma_cm_event *, bool);
69463 	int (*cm_initiate_connect)(struct rdma_cm_id *, bool);
69464 	void (*cm_connect_complete)(struct rds_connection *, struct rdma_cm_event *);
69465 	unsigned int (*stats_info_copy)(struct rds_info_iterator *, unsigned int);
69466 	void (*exit)();
69467 	void * (*get_mr)(struct scatterlist *, long unsigned int, struct rds_sock *, u32 *, struct rds_connection *, u64, u64, int);
69468 	void (*sync_mr)(void *, int);
69469 	void (*free_mr)(void *, int);
69470 	void (*flush_mrs)();
69471 	bool (*t_unloading)(struct rds_connection *);
69472 	u8 (*get_tos_map)(u8);
69473 };
69474 
69475 struct rds_mr {
69476 	struct rb_node r_rb_node;
69477 	struct kref r_kref;
69478 	u32 r_key;
69479 	unsigned int r_use_once: 1;
69480 	unsigned int r_invalidate: 1;
69481 	unsigned int r_write: 1;
69482 	struct rds_sock *r_sock;
69483 	struct rds_transport *r_trans;
69484 	void *r_trans_private;
69485 };
69486 
69487 struct rds_msg_zcopy_queue {
69488 	struct list_head zcookie_head;
69489 	spinlock_t lock;
69490 };
69491 
69492 struct rds_sock {
69493 	struct sock rs_sk;
69494 	u64 rs_user_addr;
69495 	u64 rs_user_bytes;
69496 	struct rhash_head rs_bound_node;
69497 	u8 rs_bound_key[22];
69498 	struct sockaddr_in6 rs_bound_sin6;
69499 	struct in6_addr rs_conn_addr;
69500 	__be16 rs_conn_port;
69501 	struct rds_transport *rs_transport;
69502 	struct rds_connection *rs_conn;
69503 	int rs_congested;
69504 	int rs_seen_congestion;
69505 	spinlock_t rs_lock;
69506 	struct list_head rs_send_queue;
69507 	u32 rs_snd_bytes;
69508 	int rs_rcv_bytes;
69509 	struct list_head rs_notify_queue;
69510 	uint64_t rs_cong_mask;
69511 	uint64_t rs_cong_notify;
69512 	struct list_head rs_cong_list;
69513 	long unsigned int rs_cong_track;
69514 	rwlock_t rs_recv_lock;
69515 	struct list_head rs_recv_queue;
69516 	struct list_head rs_item;
69517 	spinlock_t rs_rdma_lock;
69518 	struct rb_root rs_rdma_keys;
69519 	unsigned char rs_recverr;
69520 	unsigned char rs_cong_monitor;
69521 	u32 rs_hash_initval;
69522 	u8 rs_rx_traces;
69523 	u8 rs_rx_trace[3];
69524 	struct rds_msg_zcopy_queue rs_zcookie_queue;
69525 	u8 rs_tos;
69526 };
69527 
69528 struct rds_znotifier {
69529 	struct mmpin z_mmp;
69530 	u32 z_cookie;
69531 };
69532 
69533 struct rds_notifier {
69534 	struct list_head n_list;
69535 	uint64_t n_user_token;
69536 	int n_status;
69537 };
69538 
69539 struct rds_statistics {
69540 	uint64_t s_conn_reset;
69541 	uint64_t s_recv_drop_bad_checksum;
69542 	uint64_t s_recv_drop_old_seq;
69543 	uint64_t s_recv_drop_no_sock;
69544 	uint64_t s_recv_drop_dead_sock;
69545 	uint64_t s_recv_deliver_raced;
69546 	uint64_t s_recv_delivered;
69547 	uint64_t s_recv_queued;
69548 	uint64_t s_recv_immediate_retry;
69549 	uint64_t s_recv_delayed_retry;
69550 	uint64_t s_recv_ack_required;
69551 	uint64_t s_recv_rdma_bytes;
69552 	uint64_t s_recv_ping;
69553 	uint64_t s_send_queue_empty;
69554 	uint64_t s_send_queue_full;
69555 	uint64_t s_send_lock_contention;
69556 	uint64_t s_send_lock_queue_raced;
69557 	uint64_t s_send_immediate_retry;
69558 	uint64_t s_send_delayed_retry;
69559 	uint64_t s_send_drop_acked;
69560 	uint64_t s_send_ack_required;
69561 	uint64_t s_send_queued;
69562 	uint64_t s_send_rdma;
69563 	uint64_t s_send_rdma_bytes;
69564 	uint64_t s_send_pong;
69565 	uint64_t s_page_remainder_hit;
69566 	uint64_t s_page_remainder_miss;
69567 	uint64_t s_copy_to_user;
69568 	uint64_t s_copy_from_user;
69569 	uint64_t s_cong_update_queued;
69570 	uint64_t s_cong_update_received;
69571 	uint64_t s_cong_send_error;
69572 	uint64_t s_cong_send_blocked;
69573 	uint64_t s_recv_bytes_added_to_socket;
69574 	uint64_t s_recv_bytes_removed_from_socket;
69575 	uint64_t s_send_stuck_rm;
69576 };
69577 
69578 struct rds_info_message {
69579 	__u64 seq;
69580 	__u32 len;
69581 	__be32 laddr;
69582 	__be32 faddr;
69583 	__be16 lport;
69584 	__be16 fport;
69585 	__u8 flags;
69586 	__u8 tos;
69587 } __attribute__((packed));
69588 
69589 struct rds6_info_message {
69590 	__u64 seq;
69591 	__u32 len;
69592 	struct in6_addr laddr;
69593 	struct in6_addr faddr;
69594 	__be16 lport;
69595 	__be16 fport;
69596 	__u8 flags;
69597 	__u8 tos;
69598 } __attribute__((packed));
69599 
69600 struct rds_cmsg_rx_trace {
69601 	__u8 rx_traces;
69602 	__u8 rx_trace_pos[3];
69603 	__u64 rx_trace[3];
69604 };
69605 
69606 struct rds_rdma_notify {
69607 	__u64 user_token;
69608 	__s32 status;
69609 };
69610 
69611 struct rds_zcopy_cookies {
69612 	__u32 num;
69613 	__u32 cookies[8];
69614 };
69615 
69616 struct rds_ext_header_version {
69617 	__be32 h_version;
69618 };
69619 
69620 struct rds_ext_header_rdma {
69621 	__be32 h_rdma_rkey;
69622 };
69623 
69624 struct rds_ext_header_rdma_dest {
69625 	__be32 h_rdma_rkey;
69626 	__be32 h_rdma_offset;
69627 };
69628 
69629 struct rds_msg_zcopy_info {
69630 	struct list_head rs_zcookie_next;
69631 	union {
69632 		struct rds_znotifier znotif;
69633 		struct rds_zcopy_cookies zcookies;
69634 	};
69635 };
69636 
69637 enum nl80211_iftype {
69638 	NL80211_IFTYPE_UNSPECIFIED = 0,
69639 	NL80211_IFTYPE_ADHOC = 1,
69640 	NL80211_IFTYPE_STATION = 2,
69641 	NL80211_IFTYPE_AP = 3,
69642 	NL80211_IFTYPE_AP_VLAN = 4,
69643 	NL80211_IFTYPE_WDS = 5,
69644 	NL80211_IFTYPE_MONITOR = 6,
69645 	NL80211_IFTYPE_MESH_POINT = 7,
69646 	NL80211_IFTYPE_P2P_CLIENT = 8,
69647 	NL80211_IFTYPE_P2P_GO = 9,
69648 	NL80211_IFTYPE_P2P_DEVICE = 10,
69649 	NL80211_IFTYPE_OCB = 11,
69650 	NL80211_IFTYPE_NAN = 12,
69651 	NUM_NL80211_IFTYPES = 13,
69652 	NL80211_IFTYPE_MAX = 12,
69653 };
69654 
69655 struct cfg80211_conn;
69656 
69657 struct cfg80211_cached_keys;
69658 
69659 enum ieee80211_bss_type {
69660 	IEEE80211_BSS_TYPE_ESS = 0,
69661 	IEEE80211_BSS_TYPE_PBSS = 1,
69662 	IEEE80211_BSS_TYPE_IBSS = 2,
69663 	IEEE80211_BSS_TYPE_MBSS = 3,
69664 	IEEE80211_BSS_TYPE_ANY = 4,
69665 };
69666 
69667 enum nl80211_chan_width {
69668 	NL80211_CHAN_WIDTH_20_NOHT = 0,
69669 	NL80211_CHAN_WIDTH_20 = 1,
69670 	NL80211_CHAN_WIDTH_40 = 2,
69671 	NL80211_CHAN_WIDTH_80 = 3,
69672 	NL80211_CHAN_WIDTH_80P80 = 4,
69673 	NL80211_CHAN_WIDTH_160 = 5,
69674 	NL80211_CHAN_WIDTH_5 = 6,
69675 	NL80211_CHAN_WIDTH_10 = 7,
69676 	NL80211_CHAN_WIDTH_1 = 8,
69677 	NL80211_CHAN_WIDTH_2 = 9,
69678 	NL80211_CHAN_WIDTH_4 = 10,
69679 	NL80211_CHAN_WIDTH_8 = 11,
69680 	NL80211_CHAN_WIDTH_16 = 12,
69681 	NL80211_CHAN_WIDTH_320 = 13,
69682 };
69683 
69684 enum ieee80211_edmg_bw_config {
69685 	IEEE80211_EDMG_BW_CONFIG_4 = 4,
69686 	IEEE80211_EDMG_BW_CONFIG_5 = 5,
69687 	IEEE80211_EDMG_BW_CONFIG_6 = 6,
69688 	IEEE80211_EDMG_BW_CONFIG_7 = 7,
69689 	IEEE80211_EDMG_BW_CONFIG_8 = 8,
69690 	IEEE80211_EDMG_BW_CONFIG_9 = 9,
69691 	IEEE80211_EDMG_BW_CONFIG_10 = 10,
69692 	IEEE80211_EDMG_BW_CONFIG_11 = 11,
69693 	IEEE80211_EDMG_BW_CONFIG_12 = 12,
69694 	IEEE80211_EDMG_BW_CONFIG_13 = 13,
69695 	IEEE80211_EDMG_BW_CONFIG_14 = 14,
69696 	IEEE80211_EDMG_BW_CONFIG_15 = 15,
69697 };
69698 
69699 struct ieee80211_edmg {
69700 	u8 channels;
69701 	enum ieee80211_edmg_bw_config bw_config;
69702 };
69703 
69704 struct ieee80211_channel;
69705 
69706 struct cfg80211_chan_def {
69707 	struct ieee80211_channel *chan;
69708 	enum nl80211_chan_width width;
69709 	u32 center_freq1;
69710 	u32 center_freq2;
69711 	struct ieee80211_edmg edmg;
69712 	u16 freq1_offset;
69713 };
69714 
69715 struct ieee80211_mcs_info {
69716 	u8 rx_mask[10];
69717 	__le16 rx_highest;
69718 	u8 tx_params;
69719 	u8 reserved[3];
69720 };
69721 
69722 struct ieee80211_ht_cap {
69723 	__le16 cap_info;
69724 	u8 ampdu_params_info;
69725 	struct ieee80211_mcs_info mcs;
69726 	__le16 extended_ht_cap_info;
69727 	__le32 tx_BF_cap_info;
69728 	u8 antenna_selection_info;
69729 } __attribute__((packed));
69730 
69731 struct key_params;
69732 
69733 struct cfg80211_ibss_params {
69734 	const u8 *ssid;
69735 	const u8 *bssid;
69736 	struct cfg80211_chan_def chandef;
69737 	const u8 *ie;
69738 	u8 ssid_len;
69739 	u8 ie_len;
69740 	u16 beacon_interval;
69741 	u32 basic_rates;
69742 	bool channel_fixed;
69743 	bool privacy;
69744 	bool control_port;
69745 	bool control_port_over_nl80211;
69746 	bool userspace_handles_dfs;
69747 	int: 24;
69748 	int mcast_rate[6];
69749 	struct ieee80211_ht_cap ht_capa;
69750 	struct ieee80211_ht_cap ht_capa_mask;
69751 	int: 32;
69752 	struct key_params *wep_keys;
69753 	int wep_tx_key;
69754 	int: 32;
69755 } __attribute__((packed));
69756 
69757 enum nl80211_auth_type {
69758 	NL80211_AUTHTYPE_OPEN_SYSTEM = 0,
69759 	NL80211_AUTHTYPE_SHARED_KEY = 1,
69760 	NL80211_AUTHTYPE_FT = 2,
69761 	NL80211_AUTHTYPE_NETWORK_EAP = 3,
69762 	NL80211_AUTHTYPE_SAE = 4,
69763 	NL80211_AUTHTYPE_FILS_SK = 5,
69764 	NL80211_AUTHTYPE_FILS_SK_PFS = 6,
69765 	NL80211_AUTHTYPE_FILS_PK = 7,
69766 	__NL80211_AUTHTYPE_NUM = 8,
69767 	NL80211_AUTHTYPE_MAX = 7,
69768 	NL80211_AUTHTYPE_AUTOMATIC = 8,
69769 };
69770 
69771 enum nl80211_mfp {
69772 	NL80211_MFP_NO = 0,
69773 	NL80211_MFP_REQUIRED = 1,
69774 	NL80211_MFP_OPTIONAL = 2,
69775 };
69776 
69777 enum nl80211_sae_pwe_mechanism {
69778 	NL80211_SAE_PWE_UNSPECIFIED = 0,
69779 	NL80211_SAE_PWE_HUNT_AND_PECK = 1,
69780 	NL80211_SAE_PWE_HASH_TO_ELEMENT = 2,
69781 	NL80211_SAE_PWE_BOTH = 3,
69782 };
69783 
69784 struct cfg80211_crypto_settings {
69785 	u32 wpa_versions;
69786 	u32 cipher_group;
69787 	int n_ciphers_pairwise;
69788 	u32 ciphers_pairwise[5];
69789 	int n_akm_suites;
69790 	u32 akm_suites[10];
69791 	bool control_port;
69792 	__be16 control_port_ethertype;
69793 	bool control_port_no_encrypt;
69794 	bool control_port_over_nl80211;
69795 	bool control_port_no_preauth;
69796 	struct key_params *wep_keys;
69797 	int wep_tx_key;
69798 	const u8 *psk;
69799 	const u8 *sae_pwd;
69800 	u8 sae_pwd_len;
69801 	enum nl80211_sae_pwe_mechanism sae_pwe;
69802 };
69803 
69804 struct ieee80211_vht_mcs_info {
69805 	__le16 rx_mcs_map;
69806 	__le16 rx_highest;
69807 	__le16 tx_mcs_map;
69808 	__le16 tx_highest;
69809 };
69810 
69811 struct ieee80211_vht_cap {
69812 	__le32 vht_cap_info;
69813 	struct ieee80211_vht_mcs_info supp_mcs;
69814 };
69815 
69816 enum nl80211_bss_select_attr {
69817 	__NL80211_BSS_SELECT_ATTR_INVALID = 0,
69818 	NL80211_BSS_SELECT_ATTR_RSSI = 1,
69819 	NL80211_BSS_SELECT_ATTR_BAND_PREF = 2,
69820 	NL80211_BSS_SELECT_ATTR_RSSI_ADJUST = 3,
69821 	__NL80211_BSS_SELECT_ATTR_AFTER_LAST = 4,
69822 	NL80211_BSS_SELECT_ATTR_MAX = 3,
69823 };
69824 
69825 enum nl80211_band {
69826 	NL80211_BAND_2GHZ = 0,
69827 	NL80211_BAND_5GHZ = 1,
69828 	NL80211_BAND_60GHZ = 2,
69829 	NL80211_BAND_6GHZ = 3,
69830 	NL80211_BAND_S1GHZ = 4,
69831 	NL80211_BAND_LC = 5,
69832 	NUM_NL80211_BANDS = 6,
69833 };
69834 
69835 struct cfg80211_bss_select_adjust {
69836 	enum nl80211_band band;
69837 	s8 delta;
69838 };
69839 
69840 struct cfg80211_bss_selection {
69841 	enum nl80211_bss_select_attr behaviour;
69842 	union {
69843 		enum nl80211_band band_pref;
69844 		struct cfg80211_bss_select_adjust adjust;
69845 	} param;
69846 };
69847 
69848 struct cfg80211_connect_params {
69849 	struct ieee80211_channel *channel;
69850 	struct ieee80211_channel *channel_hint;
69851 	const u8 *bssid;
69852 	const u8 *bssid_hint;
69853 	const u8 *ssid;
69854 	size_t ssid_len;
69855 	enum nl80211_auth_type auth_type;
69856 	int: 32;
69857 	const u8 *ie;
69858 	size_t ie_len;
69859 	bool privacy;
69860 	int: 24;
69861 	enum nl80211_mfp mfp;
69862 	struct cfg80211_crypto_settings crypto;
69863 	const u8 *key;
69864 	u8 key_len;
69865 	u8 key_idx;
69866 	short: 16;
69867 	u32 flags;
69868 	int bg_scan_period;
69869 	struct ieee80211_ht_cap ht_capa;
69870 	struct ieee80211_ht_cap ht_capa_mask;
69871 	struct ieee80211_vht_cap vht_capa;
69872 	struct ieee80211_vht_cap vht_capa_mask;
69873 	bool pbss;
69874 	int: 24;
69875 	struct cfg80211_bss_selection bss_select;
69876 	const u8 *prev_bssid;
69877 	const u8 *fils_erp_username;
69878 	size_t fils_erp_username_len;
69879 	const u8 *fils_erp_realm;
69880 	size_t fils_erp_realm_len;
69881 	u16 fils_erp_next_seq_num;
69882 	long: 48;
69883 	const u8 *fils_erp_rrk;
69884 	size_t fils_erp_rrk_len;
69885 	bool want_1x;
69886 	int: 24;
69887 	struct ieee80211_edmg edmg;
69888 	int: 32;
69889 } __attribute__((packed));
69890 
69891 struct cfg80211_cqm_config;
69892 
69893 struct cfg80211_internal_bss;
69894 
69895 struct wiphy;
69896 
69897 struct wireless_dev {
69898 	struct wiphy *wiphy;
69899 	enum nl80211_iftype iftype;
69900 	struct list_head list;
69901 	struct net_device *netdev;
69902 	u32 identifier;
69903 	struct list_head mgmt_registrations;
69904 	u8 mgmt_registrations_need_update: 1;
69905 	struct mutex mtx;
69906 	bool use_4addr;
69907 	bool is_running;
69908 	bool registered;
69909 	bool registering;
69910 	u8 address[6];
69911 	struct cfg80211_conn *conn;
69912 	struct cfg80211_cached_keys *connect_keys;
69913 	enum ieee80211_bss_type conn_bss_type;
69914 	u32 conn_owner_nlportid;
69915 	struct work_struct disconnect_wk;
69916 	u8 disconnect_bssid[6];
69917 	struct list_head event_list;
69918 	spinlock_t event_lock;
69919 	u8 connected: 1;
69920 	bool ps;
69921 	int ps_timeout;
69922 	u32 ap_unexpected_nlportid;
69923 	u32 owner_nlportid;
69924 	bool nl_owner_dead;
69925 	bool cac_started;
69926 	long unsigned int cac_start_time;
69927 	unsigned int cac_time_ms;
69928 	struct {
69929 		struct cfg80211_ibss_params ibss;
69930 		struct cfg80211_connect_params connect;
69931 		struct cfg80211_cached_keys *keys;
69932 		const u8 *ie;
69933 		size_t ie_len;
69934 		u8 bssid[6];
69935 		u8 prev_bssid[6];
69936 		u8 ssid[32];
69937 		s8 default_key;
69938 		s8 default_mgmt_key;
69939 		bool prev_bssid_valid;
69940 	} wext;
69941 	struct cfg80211_cqm_config *cqm_config;
69942 	struct list_head pmsr_list;
69943 	spinlock_t pmsr_lock;
69944 	struct work_struct pmsr_free_wk;
69945 	long unsigned int unprot_beacon_reported;
69946 	union {
69947 		struct {
69948 			u8 connected_addr[6];
69949 			u8 ssid[32];
69950 			u8 ssid_len;
69951 			char: 8;
69952 		} client;
69953 		struct {
69954 			int beacon_interval;
69955 			struct cfg80211_chan_def preset_chandef;
69956 			struct cfg80211_chan_def chandef;
69957 			u8 id[32];
69958 			u8 id_len;
69959 			u8 id_up_len;
69960 		} mesh;
69961 		struct {
69962 			struct cfg80211_chan_def preset_chandef;
69963 			u8 ssid[32];
69964 			u8 ssid_len;
69965 		} ap;
69966 		struct {
69967 			struct cfg80211_internal_bss *current_bss;
69968 			struct cfg80211_chan_def chandef;
69969 			int beacon_interval;
69970 			u8 ssid[32];
69971 			u8 ssid_len;
69972 		} ibss;
69973 		struct {
69974 			struct cfg80211_chan_def chandef;
69975 		} ocb;
69976 	} u;
69977 	struct {
69978 		u8 addr[6];
69979 		union {
69980 			struct {
69981 				unsigned int beacon_interval;
69982 				struct cfg80211_chan_def chandef;
69983 			} ap;
69984 			struct {
69985 				struct cfg80211_internal_bss *current_bss;
69986 			} client;
69987 		};
69988 	} links[15];
69989 	u16 valid_links;
69990 };
69991 
69992 struct iw_encode_ext {
69993 	__u32 ext_flags;
69994 	__u8 tx_seq[8];
69995 	__u8 rx_seq[8];
69996 	struct sockaddr addr;
69997 	__u16 alg;
69998 	__u16 key_len;
69999 	__u8 key[0];
70000 };
70001 
70002 struct iwreq {
70003 	union {
70004 		char ifrn_name[16];
70005 	} ifr_ifrn;
70006 	union iwreq_data u;
70007 };
70008 
70009 struct iw_event {
70010 	__u16 len;
70011 	__u16 cmd;
70012 	union iwreq_data u;
70013 };
70014 
70015 enum nl80211_reg_initiator {
70016 	NL80211_REGDOM_SET_BY_CORE = 0,
70017 	NL80211_REGDOM_SET_BY_USER = 1,
70018 	NL80211_REGDOM_SET_BY_DRIVER = 2,
70019 	NL80211_REGDOM_SET_BY_COUNTRY_IE = 3,
70020 };
70021 
70022 enum nl80211_dfs_regions {
70023 	NL80211_DFS_UNSET = 0,
70024 	NL80211_DFS_FCC = 1,
70025 	NL80211_DFS_ETSI = 2,
70026 	NL80211_DFS_JP = 3,
70027 };
70028 
70029 enum nl80211_user_reg_hint_type {
70030 	NL80211_USER_REG_HINT_USER = 0,
70031 	NL80211_USER_REG_HINT_CELL_BASE = 1,
70032 	NL80211_USER_REG_HINT_INDOOR = 2,
70033 };
70034 
70035 enum nl80211_mntr_flags {
70036 	__NL80211_MNTR_FLAG_INVALID = 0,
70037 	NL80211_MNTR_FLAG_FCSFAIL = 1,
70038 	NL80211_MNTR_FLAG_PLCPFAIL = 2,
70039 	NL80211_MNTR_FLAG_CONTROL = 3,
70040 	NL80211_MNTR_FLAG_OTHER_BSS = 4,
70041 	NL80211_MNTR_FLAG_COOK_FRAMES = 5,
70042 	NL80211_MNTR_FLAG_ACTIVE = 6,
70043 	__NL80211_MNTR_FLAG_AFTER_LAST = 7,
70044 	NL80211_MNTR_FLAG_MAX = 6,
70045 };
70046 
70047 enum nl80211_key_mode {
70048 	NL80211_KEY_RX_TX = 0,
70049 	NL80211_KEY_NO_TX = 1,
70050 	NL80211_KEY_SET_TX = 2,
70051 };
70052 
70053 enum nl80211_bss_scan_width {
70054 	NL80211_BSS_CHAN_WIDTH_20 = 0,
70055 	NL80211_BSS_CHAN_WIDTH_10 = 1,
70056 	NL80211_BSS_CHAN_WIDTH_5 = 2,
70057 	NL80211_BSS_CHAN_WIDTH_1 = 3,
70058 	NL80211_BSS_CHAN_WIDTH_2 = 4,
70059 };
70060 
70061 struct nl80211_wowlan_tcp_data_seq {
70062 	__u32 start;
70063 	__u32 offset;
70064 	__u32 len;
70065 };
70066 
70067 struct nl80211_wowlan_tcp_data_token {
70068 	__u32 offset;
70069 	__u32 len;
70070 	__u8 token_stream[0];
70071 };
70072 
70073 struct nl80211_wowlan_tcp_data_token_feature {
70074 	__u32 min_len;
70075 	__u32 max_len;
70076 	__u32 bufsize;
70077 };
70078 
70079 enum nl80211_ext_feature_index {
70080 	NL80211_EXT_FEATURE_VHT_IBSS = 0,
70081 	NL80211_EXT_FEATURE_RRM = 1,
70082 	NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER = 2,
70083 	NL80211_EXT_FEATURE_SCAN_START_TIME = 3,
70084 	NL80211_EXT_FEATURE_BSS_PARENT_TSF = 4,
70085 	NL80211_EXT_FEATURE_SET_SCAN_DWELL = 5,
70086 	NL80211_EXT_FEATURE_BEACON_RATE_LEGACY = 6,
70087 	NL80211_EXT_FEATURE_BEACON_RATE_HT = 7,
70088 	NL80211_EXT_FEATURE_BEACON_RATE_VHT = 8,
70089 	NL80211_EXT_FEATURE_FILS_STA = 9,
70090 	NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA = 10,
70091 	NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED = 11,
70092 	NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI = 12,
70093 	NL80211_EXT_FEATURE_CQM_RSSI_LIST = 13,
70094 	NL80211_EXT_FEATURE_FILS_SK_OFFLOAD = 14,
70095 	NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK = 15,
70096 	NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X = 16,
70097 	NL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME = 17,
70098 	NL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP = 18,
70099 	NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE = 19,
70100 	NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 20,
70101 	NL80211_EXT_FEATURE_MFP_OPTIONAL = 21,
70102 	NL80211_EXT_FEATURE_LOW_SPAN_SCAN = 22,
70103 	NL80211_EXT_FEATURE_LOW_POWER_SCAN = 23,
70104 	NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN = 24,
70105 	NL80211_EXT_FEATURE_DFS_OFFLOAD = 25,
70106 	NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211 = 26,
70107 	NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT = 27,
70108 	NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT = 27,
70109 	NL80211_EXT_FEATURE_TXQS = 28,
70110 	NL80211_EXT_FEATURE_SCAN_RANDOM_SN = 29,
70111 	NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT = 30,
70112 	NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 = 31,
70113 	NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER = 32,
70114 	NL80211_EXT_FEATURE_AIRTIME_FAIRNESS = 33,
70115 	NL80211_EXT_FEATURE_AP_PMKSA_CACHING = 34,
70116 	NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 35,
70117 	NL80211_EXT_FEATURE_EXT_KEY_ID = 36,
70118 	NL80211_EXT_FEATURE_STA_TX_PWR = 37,
70119 	NL80211_EXT_FEATURE_SAE_OFFLOAD = 38,
70120 	NL80211_EXT_FEATURE_VLAN_OFFLOAD = 39,
70121 	NL80211_EXT_FEATURE_AQL = 40,
70122 	NL80211_EXT_FEATURE_BEACON_PROTECTION = 41,
70123 	NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH = 42,
70124 	NL80211_EXT_FEATURE_PROTECTED_TWT = 43,
70125 	NL80211_EXT_FEATURE_DEL_IBSS_STA = 44,
70126 	NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS = 45,
70127 	NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT = 46,
70128 	NL80211_EXT_FEATURE_SCAN_FREQ_KHZ = 47,
70129 	NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS = 48,
70130 	NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION = 49,
70131 	NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK = 50,
70132 	NL80211_EXT_FEATURE_SAE_OFFLOAD_AP = 51,
70133 	NL80211_EXT_FEATURE_FILS_DISCOVERY = 52,
70134 	NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP = 53,
70135 	NL80211_EXT_FEATURE_BEACON_RATE_HE = 54,
70136 	NL80211_EXT_FEATURE_SECURE_LTF = 55,
70137 	NL80211_EXT_FEATURE_SECURE_RTT = 56,
70138 	NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE = 57,
70139 	NL80211_EXT_FEATURE_BSS_COLOR = 58,
70140 	NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD = 59,
70141 	NL80211_EXT_FEATURE_RADAR_BACKGROUND = 60,
70142 	NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE = 61,
70143 	NUM_NL80211_EXT_FEATURES = 62,
70144 	MAX_NL80211_EXT_FEATURES = 61,
70145 };
70146 
70147 enum nl80211_dfs_state {
70148 	NL80211_DFS_USABLE = 0,
70149 	NL80211_DFS_UNAVAILABLE = 1,
70150 	NL80211_DFS_AVAILABLE = 2,
70151 };
70152 
70153 struct nl80211_vendor_cmd_info {
70154 	__u32 vendor_id;
70155 	__u32 subcmd;
70156 };
70157 
70158 enum nl80211_sar_type {
70159 	NL80211_SAR_TYPE_POWER = 0,
70160 	NUM_NL80211_SAR_TYPE = 1,
70161 };
70162 
70163 struct ieee80211_he_cap_elem {
70164 	u8 mac_cap_info[6];
70165 	u8 phy_cap_info[11];
70166 };
70167 
70168 struct ieee80211_he_mcs_nss_supp {
70169 	__le16 rx_mcs_80;
70170 	__le16 tx_mcs_80;
70171 	__le16 rx_mcs_160;
70172 	__le16 tx_mcs_160;
70173 	__le16 rx_mcs_80p80;
70174 	__le16 tx_mcs_80p80;
70175 };
70176 
70177 struct ieee80211_eht_mcs_nss_supp_20mhz_only {
70178 	u8 rx_tx_mcs7_max_nss;
70179 	u8 rx_tx_mcs9_max_nss;
70180 	u8 rx_tx_mcs11_max_nss;
70181 	u8 rx_tx_mcs13_max_nss;
70182 };
70183 
70184 struct ieee80211_eht_mcs_nss_supp_bw {
70185 	u8 rx_tx_mcs9_max_nss;
70186 	u8 rx_tx_mcs11_max_nss;
70187 	u8 rx_tx_mcs13_max_nss;
70188 };
70189 
70190 struct ieee80211_eht_cap_elem_fixed {
70191 	u8 mac_cap_info[2];
70192 	u8 phy_cap_info[9];
70193 };
70194 
70195 struct ieee80211_he_6ghz_capa {
70196 	__le16 capa;
70197 };
70198 
70199 struct rfkill;
70200 
70201 enum environment_cap {
70202 	ENVIRON_ANY = 0,
70203 	ENVIRON_INDOOR = 1,
70204 	ENVIRON_OUTDOOR = 2,
70205 };
70206 
70207 struct regulatory_request {
70208 	struct callback_head callback_head;
70209 	int wiphy_idx;
70210 	enum nl80211_reg_initiator initiator;
70211 	enum nl80211_user_reg_hint_type user_reg_hint_type;
70212 	char alpha2[3];
70213 	enum nl80211_dfs_regions dfs_region;
70214 	bool intersect;
70215 	bool processed;
70216 	enum environment_cap country_ie_env;
70217 	struct list_head list;
70218 };
70219 
70220 struct ieee80211_freq_range {
70221 	u32 start_freq_khz;
70222 	u32 end_freq_khz;
70223 	u32 max_bandwidth_khz;
70224 };
70225 
70226 struct ieee80211_power_rule {
70227 	u32 max_antenna_gain;
70228 	u32 max_eirp;
70229 };
70230 
70231 struct ieee80211_wmm_ac {
70232 	u16 cw_min;
70233 	u16 cw_max;
70234 	u16 cot;
70235 	u8 aifsn;
70236 };
70237 
70238 struct ieee80211_wmm_rule {
70239 	struct ieee80211_wmm_ac client[4];
70240 	struct ieee80211_wmm_ac ap[4];
70241 };
70242 
70243 struct ieee80211_reg_rule {
70244 	struct ieee80211_freq_range freq_range;
70245 	struct ieee80211_power_rule power_rule;
70246 	struct ieee80211_wmm_rule wmm_rule;
70247 	u32 flags;
70248 	u32 dfs_cac_ms;
70249 	bool has_wmm;
70250 };
70251 
70252 struct ieee80211_regdomain {
70253 	struct callback_head callback_head;
70254 	u32 n_reg_rules;
70255 	char alpha2[3];
70256 	enum nl80211_dfs_regions dfs_region;
70257 	struct ieee80211_reg_rule reg_rules[0];
70258 };
70259 
70260 struct ieee80211_channel {
70261 	enum nl80211_band band;
70262 	u32 center_freq;
70263 	u16 freq_offset;
70264 	u16 hw_value;
70265 	u32 flags;
70266 	int max_antenna_gain;
70267 	int max_power;
70268 	int max_reg_power;
70269 	bool beacon_found;
70270 	u32 orig_flags;
70271 	int orig_mag;
70272 	int orig_mpwr;
70273 	enum nl80211_dfs_state dfs_state;
70274 	long unsigned int dfs_state_entered;
70275 	unsigned int dfs_cac_ms;
70276 };
70277 
70278 struct ieee80211_rate {
70279 	u32 flags;
70280 	u16 bitrate;
70281 	u16 hw_value;
70282 	u16 hw_value_short;
70283 };
70284 
70285 struct ieee80211_sta_ht_cap {
70286 	u16 cap;
70287 	bool ht_supported;
70288 	u8 ampdu_factor;
70289 	u8 ampdu_density;
70290 	struct ieee80211_mcs_info mcs;
70291 	char: 8;
70292 } __attribute__((packed));
70293 
70294 struct ieee80211_sta_vht_cap {
70295 	bool vht_supported;
70296 	u32 cap;
70297 	struct ieee80211_vht_mcs_info vht_mcs;
70298 };
70299 
70300 struct ieee80211_sta_he_cap {
70301 	bool has_he;
70302 	struct ieee80211_he_cap_elem he_cap_elem;
70303 	struct ieee80211_he_mcs_nss_supp he_mcs_nss_supp;
70304 	u8 ppe_thres[25];
70305 } __attribute__((packed));
70306 
70307 struct ieee80211_eht_mcs_nss_supp {
70308 	union {
70309 		struct ieee80211_eht_mcs_nss_supp_20mhz_only only_20mhz;
70310 		struct {
70311 			struct ieee80211_eht_mcs_nss_supp_bw _80;
70312 			struct ieee80211_eht_mcs_nss_supp_bw _160;
70313 			struct ieee80211_eht_mcs_nss_supp_bw _320;
70314 		} bw;
70315 	};
70316 };
70317 
70318 struct ieee80211_sta_eht_cap {
70319 	bool has_eht;
70320 	struct ieee80211_eht_cap_elem_fixed eht_cap_elem;
70321 	struct ieee80211_eht_mcs_nss_supp eht_mcs_nss_supp;
70322 	u8 eht_ppe_thres[32];
70323 };
70324 
70325 struct ieee80211_sband_iftype_data {
70326 	u16 types_mask;
70327 	struct ieee80211_sta_he_cap he_cap;
70328 	struct ieee80211_he_6ghz_capa he_6ghz_capa;
70329 	struct ieee80211_sta_eht_cap eht_cap;
70330 	struct {
70331 		const u8 *data;
70332 		unsigned int len;
70333 	} vendor_elems;
70334 } __attribute__((packed));
70335 
70336 struct ieee80211_sta_s1g_cap {
70337 	bool s1g;
70338 	u8 cap[10];
70339 	u8 nss_mcs[5];
70340 };
70341 
70342 struct ieee80211_supported_band {
70343 	struct ieee80211_channel *channels;
70344 	struct ieee80211_rate *bitrates;
70345 	enum nl80211_band band;
70346 	int n_channels;
70347 	int n_bitrates;
70348 	struct ieee80211_sta_ht_cap ht_cap;
70349 	struct ieee80211_sta_vht_cap vht_cap;
70350 	struct ieee80211_sta_s1g_cap s1g_cap;
70351 	struct ieee80211_edmg edmg_cap;
70352 	u16 n_iftype_data;
70353 	const struct ieee80211_sband_iftype_data *iftype_data;
70354 };
70355 
70356 struct key_params {
70357 	const u8 *key;
70358 	const u8 *seq;
70359 	int key_len;
70360 	int seq_len;
70361 	u16 vlan_id;
70362 	u32 cipher;
70363 	enum nl80211_key_mode mode;
70364 };
70365 
70366 struct mac_address {
70367 	u8 addr[6];
70368 };
70369 
70370 struct cfg80211_sar_freq_ranges {
70371 	u32 start_freq;
70372 	u32 end_freq;
70373 };
70374 
70375 struct cfg80211_sar_capa {
70376 	enum nl80211_sar_type type;
70377 	u32 num_freq_ranges;
70378 	const struct cfg80211_sar_freq_ranges *freq_ranges;
70379 };
70380 
70381 struct cfg80211_ssid {
70382 	u8 ssid[32];
70383 	u8 ssid_len;
70384 };
70385 
70386 enum cfg80211_signal_type {
70387 	CFG80211_SIGNAL_TYPE_NONE = 0,
70388 	CFG80211_SIGNAL_TYPE_MBM = 1,
70389 	CFG80211_SIGNAL_TYPE_UNSPEC = 2,
70390 };
70391 
70392 struct ieee80211_txrx_stypes;
70393 
70394 struct ieee80211_iface_combination;
70395 
70396 struct wiphy_iftype_akm_suites;
70397 
70398 struct wiphy_wowlan_support;
70399 
70400 struct cfg80211_wowlan;
70401 
70402 struct wiphy_iftype_ext_capab;
70403 
70404 struct wiphy_coalesce_support;
70405 
70406 struct wiphy_vendor_command;
70407 
70408 struct cfg80211_pmsr_capabilities;
70409 
70410 struct wiphy {
70411 	struct mutex mtx;
70412 	u8 perm_addr[6];
70413 	u8 addr_mask[6];
70414 	struct mac_address *addresses;
70415 	const struct ieee80211_txrx_stypes *mgmt_stypes;
70416 	const struct ieee80211_iface_combination *iface_combinations;
70417 	int n_iface_combinations;
70418 	u16 software_iftypes;
70419 	u16 n_addresses;
70420 	u16 interface_modes;
70421 	u16 max_acl_mac_addrs;
70422 	u32 flags;
70423 	u32 regulatory_flags;
70424 	u32 features;
70425 	u8 ext_features[8];
70426 	u32 ap_sme_capa;
70427 	enum cfg80211_signal_type signal_type;
70428 	int bss_priv_size;
70429 	u8 max_scan_ssids;
70430 	u8 max_sched_scan_reqs;
70431 	u8 max_sched_scan_ssids;
70432 	u8 max_match_sets;
70433 	u16 max_scan_ie_len;
70434 	u16 max_sched_scan_ie_len;
70435 	u32 max_sched_scan_plans;
70436 	u32 max_sched_scan_plan_interval;
70437 	u32 max_sched_scan_plan_iterations;
70438 	int n_cipher_suites;
70439 	const u32 *cipher_suites;
70440 	int n_akm_suites;
70441 	const u32 *akm_suites;
70442 	const struct wiphy_iftype_akm_suites *iftype_akm_suites;
70443 	unsigned int num_iftype_akm_suites;
70444 	u8 retry_short;
70445 	u8 retry_long;
70446 	u32 frag_threshold;
70447 	u32 rts_threshold;
70448 	u8 coverage_class;
70449 	char fw_version[32];
70450 	u32 hw_version;
70451 	const struct wiphy_wowlan_support *wowlan;
70452 	struct cfg80211_wowlan *wowlan_config;
70453 	u16 max_remain_on_channel_duration;
70454 	u8 max_num_pmkids;
70455 	u32 available_antennas_tx;
70456 	u32 available_antennas_rx;
70457 	u32 probe_resp_offload;
70458 	const u8 *extended_capabilities;
70459 	const u8 *extended_capabilities_mask;
70460 	u8 extended_capabilities_len;
70461 	const struct wiphy_iftype_ext_capab *iftype_ext_capab;
70462 	unsigned int num_iftype_ext_capab;
70463 	const void *privid;
70464 	struct ieee80211_supported_band *bands[6];
70465 	void (*reg_notifier)(struct wiphy *, struct regulatory_request *);
70466 	const struct ieee80211_regdomain *regd;
70467 	struct device dev;
70468 	bool registered;
70469 	struct dentry *debugfsdir;
70470 	const struct ieee80211_ht_cap *ht_capa_mod_mask;
70471 	const struct ieee80211_vht_cap *vht_capa_mod_mask;
70472 	struct list_head wdev_list;
70473 	possible_net_t _net;
70474 	const struct iw_handler_def *wext;
70475 	const struct wiphy_coalesce_support *coalesce;
70476 	const struct wiphy_vendor_command *vendor_commands;
70477 	const struct nl80211_vendor_cmd_info *vendor_events;
70478 	int n_vendor_commands;
70479 	int n_vendor_events;
70480 	u16 max_ap_assoc_sta;
70481 	u8 max_num_csa_counters;
70482 	u32 bss_select_support;
70483 	u8 nan_supported_bands;
70484 	u32 txq_limit;
70485 	u32 txq_memory_limit;
70486 	u32 txq_quantum;
70487 	long unsigned int tx_queue_len;
70488 	u8 support_mbssid: 1;
70489 	u8 support_only_he_mbssid: 1;
70490 	const struct cfg80211_pmsr_capabilities *pmsr_capa;
70491 	struct {
70492 		u64 peer;
70493 		u64 vif;
70494 		u8 max_retry;
70495 	} tid_config_support;
70496 	u8 max_data_retry_count;
70497 	const struct cfg80211_sar_capa *sar_capa;
70498 	struct rfkill *rfkill;
70499 	u8 mbssid_max_interfaces;
70500 	u8 ema_max_profile_periodicity;
70501 	u16 max_num_akm_suites;
70502 	int: 32;
70503 	char priv[0];
70504 };
70505 
70506 struct cfg80211_match_set {
70507 	struct cfg80211_ssid ssid;
70508 	u8 bssid[6];
70509 	s32 rssi_thold;
70510 	s32 per_band_rssi_thold[6];
70511 };
70512 
70513 struct cfg80211_sched_scan_plan {
70514 	u32 interval;
70515 	u32 iterations;
70516 };
70517 
70518 struct cfg80211_sched_scan_request {
70519 	u64 reqid;
70520 	struct cfg80211_ssid *ssids;
70521 	int n_ssids;
70522 	u32 n_channels;
70523 	enum nl80211_bss_scan_width scan_width;
70524 	const u8 *ie;
70525 	size_t ie_len;
70526 	u32 flags;
70527 	struct cfg80211_match_set *match_sets;
70528 	int n_match_sets;
70529 	s32 min_rssi_thold;
70530 	u32 delay;
70531 	struct cfg80211_sched_scan_plan *scan_plans;
70532 	int n_scan_plans;
70533 	u8 mac_addr[6];
70534 	u8 mac_addr_mask[6];
70535 	bool relative_rssi_set;
70536 	s8 relative_rssi;
70537 	struct cfg80211_bss_select_adjust rssi_adjust;
70538 	struct wiphy *wiphy;
70539 	struct net_device *dev;
70540 	long unsigned int scan_start;
70541 	bool report_results;
70542 	struct callback_head callback_head;
70543 	u32 owner_nlportid;
70544 	bool nl_owner_dead;
70545 	struct list_head list;
70546 	struct ieee80211_channel *channels[0];
70547 };
70548 
70549 struct cfg80211_pkt_pattern {
70550 	const u8 *mask;
70551 	const u8 *pattern;
70552 	int pattern_len;
70553 	int pkt_offset;
70554 };
70555 
70556 struct cfg80211_wowlan_tcp {
70557 	struct socket *sock;
70558 	__be32 src;
70559 	__be32 dst;
70560 	u16 src_port;
70561 	u16 dst_port;
70562 	u8 dst_mac[6];
70563 	int payload_len;
70564 	const u8 *payload;
70565 	struct nl80211_wowlan_tcp_data_seq payload_seq;
70566 	u32 data_interval;
70567 	u32 wake_len;
70568 	const u8 *wake_data;
70569 	const u8 *wake_mask;
70570 	u32 tokens_size;
70571 	struct nl80211_wowlan_tcp_data_token payload_tok;
70572 };
70573 
70574 struct cfg80211_wowlan {
70575 	bool any;
70576 	bool disconnect;
70577 	bool magic_pkt;
70578 	bool gtk_rekey_failure;
70579 	bool eap_identity_req;
70580 	bool four_way_handshake;
70581 	bool rfkill_release;
70582 	struct cfg80211_pkt_pattern *patterns;
70583 	struct cfg80211_wowlan_tcp *tcp;
70584 	int n_patterns;
70585 	struct cfg80211_sched_scan_request *nd_config;
70586 };
70587 
70588 struct ieee80211_iface_limit {
70589 	u16 max;
70590 	u16 types;
70591 };
70592 
70593 struct ieee80211_iface_combination {
70594 	const struct ieee80211_iface_limit *limits;
70595 	u32 num_different_channels;
70596 	u16 max_interfaces;
70597 	u8 n_limits;
70598 	bool beacon_int_infra_match;
70599 	u8 radar_detect_widths;
70600 	u8 radar_detect_regions;
70601 	u32 beacon_int_min_gcd;
70602 };
70603 
70604 struct ieee80211_txrx_stypes {
70605 	u16 tx;
70606 	u16 rx;
70607 };
70608 
70609 struct wiphy_wowlan_tcp_support {
70610 	const struct nl80211_wowlan_tcp_data_token_feature *tok;
70611 	u32 data_payload_max;
70612 	u32 data_interval_max;
70613 	u32 wake_payload_max;
70614 	bool seq;
70615 };
70616 
70617 struct wiphy_wowlan_support {
70618 	u32 flags;
70619 	int n_patterns;
70620 	int pattern_max_len;
70621 	int pattern_min_len;
70622 	int max_pkt_offset;
70623 	int max_nd_match_sets;
70624 	const struct wiphy_wowlan_tcp_support *tcp;
70625 };
70626 
70627 struct wiphy_coalesce_support {
70628 	int n_rules;
70629 	int max_delay;
70630 	int n_patterns;
70631 	int pattern_max_len;
70632 	int pattern_min_len;
70633 	int max_pkt_offset;
70634 };
70635 
70636 struct wiphy_vendor_command {
70637 	struct nl80211_vendor_cmd_info info;
70638 	u32 flags;
70639 	int (*doit)(struct wiphy *, struct wireless_dev *, const void *, int);
70640 	int (*dumpit)(struct wiphy *, struct wireless_dev *, struct sk_buff *, const void *, int, long unsigned int *);
70641 	const struct nla_policy *policy;
70642 	unsigned int maxattr;
70643 };
70644 
70645 struct wiphy_iftype_ext_capab {
70646 	enum nl80211_iftype iftype;
70647 	const u8 *extended_capabilities;
70648 	const u8 *extended_capabilities_mask;
70649 	u8 extended_capabilities_len;
70650 	u16 eml_capabilities;
70651 	u16 mld_capa_and_ops;
70652 };
70653 
70654 struct cfg80211_pmsr_capabilities {
70655 	unsigned int max_peers;
70656 	u8 report_ap_tsf: 1;
70657 	u8 randomize_mac_addr: 1;
70658 	struct {
70659 		u32 preambles;
70660 		u32 bandwidths;
70661 		s8 max_bursts_exponent;
70662 		u8 max_ftms_per_burst;
70663 		u8 supported: 1;
70664 		u8 asap: 1;
70665 		u8 non_asap: 1;
70666 		u8 request_lci: 1;
70667 		u8 request_civicloc: 1;
70668 		u8 trigger_based: 1;
70669 		u8 non_trigger_based: 1;
70670 	} ftm;
70671 };
70672 
70673 struct wiphy_iftype_akm_suites {
70674 	u16 iftypes_mask;
70675 	const u32 *akm_suites;
70676 	int n_akm_suites;
70677 };
70678 
70679 struct iw_ioctl_description {
70680 	__u8 header_type;
70681 	__u8 token_type;
70682 	__u16 token_size;
70683 	__u16 min_tokens;
70684 	__u16 max_tokens;
70685 	__u32 flags;
70686 };
70687 
70688 typedef int (*wext_ioctl_func)(struct net_device *, struct iwreq *, unsigned int, struct iw_request_info *, iw_handler);
70689 
70690 enum caif_ctrlcmd {
70691 	CAIF_CTRLCMD_FLOW_OFF_IND = 0,
70692 	CAIF_CTRLCMD_FLOW_ON_IND = 1,
70693 	CAIF_CTRLCMD_REMOTE_SHUTDOWN_IND = 2,
70694 	CAIF_CTRLCMD_INIT_RSP = 3,
70695 	CAIF_CTRLCMD_DEINIT_RSP = 4,
70696 	CAIF_CTRLCMD_INIT_FAIL_RSP = 5,
70697 	_CAIF_CTRLCMD_PHYIF_FLOW_OFF_IND = 6,
70698 	_CAIF_CTRLCMD_PHYIF_FLOW_ON_IND = 7,
70699 	_CAIF_CTRLCMD_PHYIF_DOWN_IND = 8,
70700 };
70701 
70702 enum caif_modemcmd {
70703 	CAIF_MODEMCMD_FLOW_ON_REQ = 0,
70704 	CAIF_MODEMCMD_FLOW_OFF_REQ = 1,
70705 	_CAIF_MODEMCMD_PHYIF_USEFULL = 3,
70706 	_CAIF_MODEMCMD_PHYIF_USELESS = 4,
70707 };
70708 
70709 struct cfpkt;
70710 
70711 struct cflayer {
70712 	struct cflayer *up;
70713 	struct cflayer *dn;
70714 	struct list_head node;
70715 	int (*receive)(struct cflayer *, struct cfpkt *);
70716 	int (*transmit)(struct cflayer *, struct cfpkt *);
70717 	void (*ctrlcmd)(struct cflayer *, enum caif_ctrlcmd, int);
70718 	int (*modemcmd)(struct cflayer *, enum caif_modemcmd);
70719 	unsigned int id;
70720 	char name[16];
70721 };
70722 
70723 struct dev_info {
70724 	void *dev;
70725 	unsigned int id;
70726 };
70727 
70728 struct caif_payload_info {
70729 	struct dev_info *dev_info;
70730 	short unsigned int hdr_len;
70731 	short unsigned int channel_id;
70732 };
70733 
70734 struct cfsrvl {
70735 	struct cflayer layer;
70736 	bool open;
70737 	bool phy_flow_on;
70738 	bool modem_flow_on;
70739 	bool supports_flowctrl;
70740 	void (*release)(struct cflayer *);
70741 	struct dev_info dev_info;
70742 	void (*hold)(struct cflayer *);
70743 	void (*put)(struct cflayer *);
70744 	struct callback_head rcu;
70745 };
70746 
70747 enum cfctrl_cmd {
70748 	CFCTRL_CMD_LINK_SETUP = 0,
70749 	CFCTRL_CMD_LINK_DESTROY = 1,
70750 	CFCTRL_CMD_LINK_ERR = 2,
70751 	CFCTRL_CMD_ENUM = 3,
70752 	CFCTRL_CMD_SLEEP = 4,
70753 	CFCTRL_CMD_WAKE = 5,
70754 	CFCTRL_CMD_LINK_RECONF = 6,
70755 	CFCTRL_CMD_START_REASON = 7,
70756 	CFCTRL_CMD_RADIO_SET = 8,
70757 	CFCTRL_CMD_MODEM_SET = 9,
70758 	CFCTRL_CMD_MASK = 15,
70759 };
70760 
70761 enum cfctrl_srv {
70762 	CFCTRL_SRV_DECM = 0,
70763 	CFCTRL_SRV_VEI = 1,
70764 	CFCTRL_SRV_VIDEO = 2,
70765 	CFCTRL_SRV_DBG = 3,
70766 	CFCTRL_SRV_DATAGRAM = 4,
70767 	CFCTRL_SRV_RFM = 5,
70768 	CFCTRL_SRV_UTIL = 6,
70769 	CFCTRL_SRV_MASK = 15,
70770 };
70771 
70772 struct cfctrl_rsp {
70773 	void (*linksetup_rsp)(struct cflayer *, u8, enum cfctrl_srv, u8, struct cflayer *);
70774 	void (*linkdestroy_rsp)(struct cflayer *, u8);
70775 	void (*linkerror_ind)();
70776 	void (*enum_rsp)();
70777 	void (*sleep_rsp)();
70778 	void (*wake_rsp)();
70779 	void (*restart_rsp)();
70780 	void (*radioset_rsp)();
70781 	void (*reject_rsp)(struct cflayer *, u8, struct cflayer *);
70782 };
70783 
70784 struct cfctrl_link_param {
70785 	enum cfctrl_srv linktype;
70786 	u8 priority;
70787 	u8 phyid;
70788 	u8 endpoint;
70789 	u8 chtype;
70790 	union {
70791 		struct {
70792 			u8 connid;
70793 		} video;
70794 		struct {
70795 			u32 connid;
70796 		} datagram;
70797 		struct {
70798 			u32 connid;
70799 			char volume[20];
70800 		} rfm;
70801 		struct {
70802 			u16 fifosize_kb;
70803 			u16 fifosize_bufs;
70804 			char name[16];
70805 			u8 params[255];
70806 			u16 paramlen;
70807 		} utility;
70808 	} u;
70809 };
70810 
70811 struct cfctrl_request_info {
70812 	int sequence_no;
70813 	enum cfctrl_cmd cmd;
70814 	u8 channel_id;
70815 	struct cfctrl_link_param param;
70816 	struct cflayer *client_layer;
70817 	struct list_head list;
70818 };
70819 
70820 struct cfctrl {
70821 	struct cfsrvl serv;
70822 	struct cfctrl_rsp res;
70823 	atomic_t req_seq_no;
70824 	atomic_t rsp_seq_no;
70825 	struct list_head list;
70826 	spinlock_t info_list_lock;
70827 	u8 loop_linkid;
70828 	int loop_linkused[256];
70829 	spinlock_t loop_linkid_lock;
70830 };
70831 
70832 struct cffrml {
70833 	struct cflayer layer;
70834 	bool dofcs;
70835 	int *pcpu_refcnt;
70836 };
70837 
70838 enum caif_link_selector {
70839 	CAIF_LINK_HIGH_BANDW = 0,
70840 	CAIF_LINK_LOW_LATENCY = 1,
70841 };
70842 
70843 enum caif_channel_priority {
70844 	CAIF_PRIO_MIN = 1,
70845 	CAIF_PRIO_LOW = 4,
70846 	CAIF_PRIO_NORMAL = 15,
70847 	CAIF_PRIO_HIGH = 20,
70848 	CAIF_PRIO_MAX = 31,
70849 };
70850 
70851 enum caif_protocol_type {
70852 	CAIFPROTO_AT = 0,
70853 	CAIFPROTO_DATAGRAM = 1,
70854 	CAIFPROTO_DATAGRAM_LOOP = 2,
70855 	CAIFPROTO_UTIL = 3,
70856 	CAIFPROTO_RFM = 4,
70857 	CAIFPROTO_DEBUG = 5,
70858 	_CAIFPROTO_MAX = 6,
70859 };
70860 
70861 struct sockaddr_caif {
70862 	__kernel_sa_family_t family;
70863 	union {
70864 		struct {
70865 			__u8 type;
70866 		} at;
70867 		struct {
70868 			char service[16];
70869 		} util;
70870 		union {
70871 			__u32 connection_id;
70872 			__u8 nsapi;
70873 		} dgm;
70874 		struct {
70875 			__u32 connection_id;
70876 			char volume[16];
70877 		} rfm;
70878 		struct {
70879 			__u8 type;
70880 			__u8 service;
70881 		} dbg;
70882 	} u;
70883 };
70884 
70885 enum caif_socket_opts {
70886 	CAIFSO_LINK_SELECT = 127,
70887 	CAIFSO_REQ_PARAM = 128,
70888 	CAIFSO_RSP_PARAM = 129,
70889 };
70890 
70891 enum caif_direction {
70892 	CAIF_DIR_IN = 0,
70893 	CAIF_DIR_OUT = 1,
70894 };
70895 
70896 struct caif_param {
70897 	u16 size;
70898 	u8 data[256];
70899 };
70900 
70901 struct caif_connect_request {
70902 	enum caif_protocol_type protocol;
70903 	struct sockaddr_caif sockaddr;
70904 	enum caif_channel_priority priority;
70905 	enum caif_link_selector link_selector;
70906 	int ifindex;
70907 	struct caif_param param;
70908 };
70909 
70910 enum caif_states {
70911 	CAIF_CONNECTED = 1,
70912 	CAIF_CONNECTING = 2,
70913 	CAIF_DISCONNECTED = 7,
70914 };
70915 
70916 struct caifsock {
70917 	struct sock sk;
70918 	struct cflayer layer;
70919 	long unsigned int flow_state;
70920 	struct caif_connect_request conn_req;
70921 	struct mutex readlock;
70922 	struct dentry *debugfs_socket_dir;
70923 	int headroom;
70924 	int tailroom;
70925 	int maxframe;
70926 };
70927 
70928 enum l3mdev_type {
70929 	L3MDEV_TYPE_UNSPEC = 0,
70930 	L3MDEV_TYPE_VRF = 1,
70931 	__L3MDEV_TYPE_MAX = 2,
70932 };
70933 
70934 typedef int (*lookup_by_table_id_t)(struct net *, u32);
70935 
70936 struct l3mdev_handler {
70937 	lookup_by_table_id_t dev_lookup;
70938 };
70939 
70940 struct xdp_ring;
70941 
70942 struct xsk_queue {
70943 	u32 ring_mask;
70944 	u32 nentries;
70945 	u32 cached_prod;
70946 	u32 cached_cons;
70947 	struct xdp_ring *ring;
70948 	u64 invalid_descs;
70949 	u64 queue_empty_descs;
70950 };
70951 
70952 struct xdp_ring {
70953 	u32 producer;
70954 	long: 32;
70955 	long: 64;
70956 	long: 64;
70957 	long: 64;
70958 	long: 64;
70959 	long: 64;
70960 	long: 64;
70961 	long: 64;
70962 	u32 pad1;
70963 	long: 32;
70964 	long: 64;
70965 	long: 64;
70966 	long: 64;
70967 	long: 64;
70968 	long: 64;
70969 	long: 64;
70970 	long: 64;
70971 	u32 consumer;
70972 	long: 32;
70973 	long: 64;
70974 	long: 64;
70975 	long: 64;
70976 	long: 64;
70977 	long: 64;
70978 	long: 64;
70979 	long: 64;
70980 	u32 pad2;
70981 	u32 flags;
70982 	long: 64;
70983 	long: 64;
70984 	long: 64;
70985 	long: 64;
70986 	long: 64;
70987 	long: 64;
70988 	long: 64;
70989 	u32 pad3;
70990 	long: 32;
70991 	long: 64;
70992 	long: 64;
70993 	long: 64;
70994 	long: 64;
70995 	long: 64;
70996 	long: 64;
70997 	long: 64;
70998 };
70999 
71000 struct xdp_rxtx_ring {
71001 	struct xdp_ring ptrs;
71002 	struct xdp_desc desc[0];
71003 };
71004 
71005 struct xdp_umem_ring {
71006 	struct xdp_ring ptrs;
71007 	u64 desc[0];
71008 };
71009 
71010 struct pci_root_info {
71011 	struct acpi_pci_root_info common;
71012 	struct pci_config_window *cfg;
71013 };
71014 
71015 struct saved_registers {
71016 	u32 ecfg;
71017 	u32 euen;
71018 	u64 pgd;
71019 	u64 kpgd;
71020 	u32 pwctl0;
71021 	u32 pwctl1;
71022 };
71023 
71024 struct ZSTD_inBuffer_s {
71025 	const void *src;
71026 	size_t size;
71027 	size_t pos;
71028 };
71029 
71030 typedef struct ZSTD_inBuffer_s ZSTD_inBuffer;
71031 
71032 typedef ZSTD_DCtx ZSTD_DStream;
71033 
71034 typedef ZSTD_ErrorCode zstd_error_code;
71035 
71036 typedef ZSTD_inBuffer zstd_in_buffer;
71037 
71038 typedef ZSTD_outBuffer zstd_out_buffer;
71039 
71040 typedef ZSTD_DStream zstd_dstream;
71041 
71042 typedef ZSTD_frameHeader zstd_frame_header;
71043 
71044 typedef __be64 fdt64_t;
71045 
71046 struct fdt_reserve_entry {
71047 	fdt64_t address;
71048 	fdt64_t size;
71049 };
71050 
71051 struct fdt_node_header {
71052 	fdt32_t tag;
71053 	char name[0];
71054 };
71055 
71056 struct fdt_property {
71057 	fdt32_t tag;
71058 	fdt32_t len;
71059 	fdt32_t nameoff;
71060 	char data[0];
71061 };
71062 
71063 enum {
71064 	ASSUME_PERFECT = 255,
71065 	ASSUME_VALID_DTB = 1,
71066 	ASSUME_VALID_INPUT = 2,
71067 	ASSUME_LATEST = 4,
71068 	ASSUME_NO_ROLLBACK = 8,
71069 	ASSUME_LIBFDT_ORDER = 16,
71070 	ASSUME_LIBFDT_FLAWLESS = 32,
71071 };
71072 
71073 struct fprop_local_single {
71074 	long unsigned int events;
71075 	unsigned int period;
71076 	raw_spinlock_t lock;
71077 };
71078 
71079 struct klist_waiter {
71080 	struct list_head list;
71081 	struct klist_node *node;
71082 	struct task_struct *process;
71083 	int woken;
71084 };
71085 
71086 struct radix_tree_iter {
71087 	long unsigned int index;
71088 	long unsigned int next_index;
71089 	long unsigned int tags;
71090 	struct xa_node *node;
71091 };
71092 
71093 enum {
71094 	RADIX_TREE_ITER_TAG_MASK = 15,
71095 	RADIX_TREE_ITER_TAGGED = 16,
71096 	RADIX_TREE_ITER_CONTIG = 32,
71097 };
71098 
71099 typedef u64 efi_physical_addr_t;
71100 
71101 typedef void *efi_handle_t;
71102 
71103 typedef void *efi_event_t;
71104 
71105 typedef void (*efi_event_notify_t)(efi_event_t, void *);
71106 
71107 typedef enum {
71108 	EfiTimerCancel = 0,
71109 	EfiTimerPeriodic = 1,
71110 	EfiTimerRelative = 2,
71111 } EFI_TIMER_DELAY;
71112 
71113 typedef struct efi_generic_dev_path efi_device_path_protocol_t;
71114 
71115 union efi_boot_services {
71116 	struct {
71117 		efi_table_hdr_t hdr;
71118 		void *raise_tpl;
71119 		void *restore_tpl;
71120 		efi_status_t (*allocate_pages)(int, int, long unsigned int, efi_physical_addr_t *);
71121 		efi_status_t (*free_pages)(efi_physical_addr_t, long unsigned int);
71122 		efi_status_t (*get_memory_map)(long unsigned int *, void *, long unsigned int *, long unsigned int *, u32 *);
71123 		efi_status_t (*allocate_pool)(int, long unsigned int, void **);
71124 		efi_status_t (*free_pool)(void *);
71125 		efi_status_t (*create_event)(u32, long unsigned int, efi_event_notify_t, void *, efi_event_t *);
71126 		efi_status_t (*set_timer)(efi_event_t, EFI_TIMER_DELAY, u64);
71127 		efi_status_t (*wait_for_event)(long unsigned int, efi_event_t *, long unsigned int *);
71128 		void *signal_event;
71129 		efi_status_t (*close_event)(efi_event_t);
71130 		void *check_event;
71131 		void *install_protocol_interface;
71132 		void *reinstall_protocol_interface;
71133 		void *uninstall_protocol_interface;
71134 		efi_status_t (*handle_protocol)(efi_handle_t, efi_guid_t *, void **);
71135 		void *__reserved;
71136 		void *register_protocol_notify;
71137 		efi_status_t (*locate_handle)(int, efi_guid_t *, void *, long unsigned int *, efi_handle_t *);
71138 		efi_status_t (*locate_device_path)(efi_guid_t *, efi_device_path_protocol_t **, efi_handle_t *);
71139 		efi_status_t (*install_configuration_table)(efi_guid_t *, void *);
71140 		efi_status_t (*load_image)(bool, efi_handle_t, efi_device_path_protocol_t *, void *, long unsigned int, efi_handle_t *);
71141 		efi_status_t (*start_image)(efi_handle_t, long unsigned int *, efi_char16_t **);
71142 		efi_status_t (*exit)(efi_handle_t, efi_status_t, long unsigned int, efi_char16_t *);
71143 		efi_status_t (*unload_image)(efi_handle_t);
71144 		efi_status_t (*exit_boot_services)(efi_handle_t, long unsigned int);
71145 		void *get_next_monotonic_count;
71146 		efi_status_t (*stall)(long unsigned int);
71147 		void *set_watchdog_timer;
71148 		void *connect_controller;
71149 		efi_status_t (*disconnect_controller)(efi_handle_t, efi_handle_t, efi_handle_t);
71150 		void *open_protocol;
71151 		void *close_protocol;
71152 		void *open_protocol_information;
71153 		void *protocols_per_handle;
71154 		void *locate_handle_buffer;
71155 		efi_status_t (*locate_protocol)(efi_guid_t *, void *, void **);
71156 		efi_status_t (*install_multiple_protocol_interfaces)(efi_handle_t *, ...);
71157 		efi_status_t (*uninstall_multiple_protocol_interfaces)(efi_handle_t, ...);
71158 		void *calculate_crc32;
71159 		void (*copy_mem)(void *, const void *, long unsigned int);
71160 		void (*set_mem)(void *, long unsigned int, unsigned char);
71161 		void *create_event_ex;
71162 	};
71163 	struct {
71164 		efi_table_hdr_t hdr;
71165 		u32 raise_tpl;
71166 		u32 restore_tpl;
71167 		u32 allocate_pages;
71168 		u32 free_pages;
71169 		u32 get_memory_map;
71170 		u32 allocate_pool;
71171 		u32 free_pool;
71172 		u32 create_event;
71173 		u32 set_timer;
71174 		u32 wait_for_event;
71175 		u32 signal_event;
71176 		u32 close_event;
71177 		u32 check_event;
71178 		u32 install_protocol_interface;
71179 		u32 reinstall_protocol_interface;
71180 		u32 uninstall_protocol_interface;
71181 		u32 handle_protocol;
71182 		u32 __reserved;
71183 		u32 register_protocol_notify;
71184 		u32 locate_handle;
71185 		u32 locate_device_path;
71186 		u32 install_configuration_table;
71187 		u32 load_image;
71188 		u32 start_image;
71189 		u32 exit;
71190 		u32 unload_image;
71191 		u32 exit_boot_services;
71192 		u32 get_next_monotonic_count;
71193 		u32 stall;
71194 		u32 set_watchdog_timer;
71195 		u32 connect_controller;
71196 		u32 disconnect_controller;
71197 		u32 open_protocol;
71198 		u32 close_protocol;
71199 		u32 open_protocol_information;
71200 		u32 protocols_per_handle;
71201 		u32 locate_handle_buffer;
71202 		u32 locate_protocol;
71203 		u32 install_multiple_protocol_interfaces;
71204 		u32 uninstall_multiple_protocol_interfaces;
71205 		u32 calculate_crc32;
71206 		u32 copy_mem;
71207 		u32 set_mem;
71208 		u32 create_event_ex;
71209 	} mixed_mode;
71210 };
71211 
71212 typedef union efi_boot_services efi_boot_services_t;
71213 
71214 typedef struct {
71215 	efi_table_hdr_t hdr;
71216 	u32 fw_vendor;
71217 	u32 fw_revision;
71218 	u32 con_in_handle;
71219 	u32 con_in;
71220 	u32 con_out_handle;
71221 	u32 con_out;
71222 	u32 stderr_handle;
71223 	u32 stderr;
71224 	u32 runtime;
71225 	u32 boottime;
71226 	u32 nr_tables;
71227 	u32 tables;
71228 } efi_system_table_32_t;
71229 
71230 typedef struct {
71231 	u16 scan_code;
71232 	efi_char16_t unicode_char;
71233 } efi_input_key_t;
71234 
71235 union efi_simple_text_input_protocol;
71236 
71237 typedef union efi_simple_text_input_protocol efi_simple_text_input_protocol_t;
71238 
71239 union efi_simple_text_input_protocol {
71240 	struct {
71241 		void *reset;
71242 		efi_status_t (*read_keystroke)(efi_simple_text_input_protocol_t *, efi_input_key_t *);
71243 		efi_event_t wait_for_key;
71244 	};
71245 	struct {
71246 		u32 reset;
71247 		u32 read_keystroke;
71248 		u32 wait_for_key;
71249 	} mixed_mode;
71250 };
71251 
71252 union efi_simple_text_output_protocol;
71253 
71254 typedef union efi_simple_text_output_protocol efi_simple_text_output_protocol_t;
71255 
71256 union efi_simple_text_output_protocol {
71257 	struct {
71258 		void *reset;
71259 		efi_status_t (*output_string)(efi_simple_text_output_protocol_t *, efi_char16_t *);
71260 		void *test_string;
71261 	};
71262 	struct {
71263 		u32 reset;
71264 		u32 output_string;
71265 		u32 test_string;
71266 	} mixed_mode;
71267 };
71268 
71269 typedef union {
71270 	struct {
71271 		efi_table_hdr_t hdr;
71272 		long unsigned int fw_vendor;
71273 		u32 fw_revision;
71274 		long unsigned int con_in_handle;
71275 		efi_simple_text_input_protocol_t *con_in;
71276 		long unsigned int con_out_handle;
71277 		efi_simple_text_output_protocol_t *con_out;
71278 		long unsigned int stderr_handle;
71279 		long unsigned int stderr;
71280 		efi_runtime_services_t *runtime;
71281 		efi_boot_services_t *boottime;
71282 		long unsigned int nr_tables;
71283 		long unsigned int tables;
71284 	};
71285 	efi_system_table_32_t mixed_mode;
71286 } efi_system_table_t;
71287 
71288 typedef union {
71289 	struct {
71290 		u32 revision;
71291 		efi_handle_t parent_handle;
71292 		efi_system_table_t *system_table;
71293 		efi_handle_t device_handle;
71294 		void *file_path;
71295 		void *reserved;
71296 		u32 load_options_size;
71297 		void *load_options;
71298 		void *image_base;
71299 		__u64 image_size;
71300 		unsigned int image_code_type;
71301 		unsigned int image_data_type;
71302 		efi_status_t (*unload)(efi_handle_t);
71303 	};
71304 	struct {
71305 		u32 revision;
71306 		u32 parent_handle;
71307 		u32 system_table;
71308 		u32 device_handle;
71309 		u32 file_path;
71310 		u32 reserved;
71311 		u32 load_options_size;
71312 		u32 load_options;
71313 		u32 image_base;
71314 		__u64 image_size;
71315 		u32 image_code_type;
71316 		u32 image_data_type;
71317 		u32 unload;
71318 	} mixed_mode;
71319 } efi_loaded_image_t;
71320 
71321 struct efi_boot_memmap {
71322 	long unsigned int map_size;
71323 	long unsigned int desc_size;
71324 	u32 desc_ver;
71325 	long unsigned int map_key;
71326 	long unsigned int buff_size;
71327 	efi_memory_desc_t map[0];
71328 };
71329 
71330 typedef efi_status_t (*efi_exit_boot_map_processing)(struct efi_boot_memmap *, void *);
71331 
71332 typedef void (*kernel_entry_t)(bool, long unsigned int, long unsigned int);
71333 
71334 struct exit_boot_struct {
71335 	efi_memory_desc_t *runtime_map;
71336 	int runtime_entry_count;
71337 };
71338 
71339 union efi_rng_protocol;
71340 
71341 typedef union efi_rng_protocol efi_rng_protocol_t;
71342 
71343 union efi_rng_protocol {
71344 	struct {
71345 		efi_status_t (*get_info)(efi_rng_protocol_t *, long unsigned int *, efi_guid_t *);
71346 		efi_status_t (*get_rng)(efi_rng_protocol_t *, efi_guid_t *, long unsigned int, u8 *);
71347 	};
71348 	struct {
71349 		u32 get_info;
71350 		u32 get_rng;
71351 	} mixed_mode;
71352 };
71353 
71354 typedef enum {
71355 	EfiPciIoWidthUint8 = 0,
71356 	EfiPciIoWidthUint16 = 1,
71357 	EfiPciIoWidthUint32 = 2,
71358 	EfiPciIoWidthUint64 = 3,
71359 	EfiPciIoWidthFifoUint8 = 4,
71360 	EfiPciIoWidthFifoUint16 = 5,
71361 	EfiPciIoWidthFifoUint32 = 6,
71362 	EfiPciIoWidthFifoUint64 = 7,
71363 	EfiPciIoWidthFillUint8 = 8,
71364 	EfiPciIoWidthFillUint16 = 9,
71365 	EfiPciIoWidthFillUint32 = 10,
71366 	EfiPciIoWidthFillUint64 = 11,
71367 	EfiPciIoWidthMaximum = 12,
71368 } EFI_PCI_IO_PROTOCOL_WIDTH;
71369 
71370 typedef struct {
71371 	u32 read;
71372 	u32 write;
71373 } efi_pci_io_protocol_access_32_t;
71374 
71375 typedef struct {
71376 	void *read;
71377 	void *write;
71378 } efi_pci_io_protocol_access_t;
71379 
71380 union efi_pci_io_protocol;
71381 
71382 typedef union efi_pci_io_protocol efi_pci_io_protocol_t;
71383 
71384 typedef efi_status_t (*efi_pci_io_protocol_cfg_t)(efi_pci_io_protocol_t *, EFI_PCI_IO_PROTOCOL_WIDTH, u32, long unsigned int, void *);
71385 
71386 typedef struct {
71387 	efi_pci_io_protocol_cfg_t read;
71388 	efi_pci_io_protocol_cfg_t write;
71389 } efi_pci_io_protocol_config_access_t;
71390 
71391 union efi_pci_io_protocol {
71392 	struct {
71393 		void *poll_mem;
71394 		void *poll_io;
71395 		efi_pci_io_protocol_access_t mem;
71396 		efi_pci_io_protocol_access_t io;
71397 		efi_pci_io_protocol_config_access_t pci;
71398 		void *copy_mem;
71399 		void *map;
71400 		void *unmap;
71401 		void *allocate_buffer;
71402 		void *free_buffer;
71403 		void *flush;
71404 		efi_status_t (*get_location)(efi_pci_io_protocol_t *, long unsigned int *, long unsigned int *, long unsigned int *, long unsigned int *);
71405 		void *attributes;
71406 		void *get_bar_attributes;
71407 		void *set_bar_attributes;
71408 		uint64_t romsize;
71409 		void *romimage;
71410 	};
71411 	struct {
71412 		u32 poll_mem;
71413 		u32 poll_io;
71414 		efi_pci_io_protocol_access_32_t mem;
71415 		efi_pci_io_protocol_access_32_t io;
71416 		efi_pci_io_protocol_access_32_t pci;
71417 		u32 copy_mem;
71418 		u32 map;
71419 		u32 unmap;
71420 		u32 allocate_buffer;
71421 		u32 free_buffer;
71422 		u32 flush;
71423 		u32 get_location;
71424 		u32 attributes;
71425 		u32 get_bar_attributes;
71426 		u32 set_bar_attributes;
71427 		u64 romsize;
71428 		u32 romimage;
71429 	} mixed_mode;
71430 };
71431 
71432 typedef initcall_t initcall_entry_t;
71433 
71434 struct trace_event_raw_initcall_level {
71435 	struct trace_entry ent;
71436 	u32 __data_loc_level;
71437 	char __data[0];
71438 };
71439 
71440 struct trace_event_raw_initcall_start {
71441 	struct trace_entry ent;
71442 	initcall_t func;
71443 	char __data[0];
71444 };
71445 
71446 struct trace_event_raw_initcall_finish {
71447 	struct trace_entry ent;
71448 	initcall_t func;
71449 	int ret;
71450 	char __data[0];
71451 };
71452 
71453 struct trace_event_data_offsets_initcall_level {
71454 	u32 level;
71455 };
71456 
71457 struct trace_event_data_offsets_initcall_start {};
71458 
71459 struct trace_event_data_offsets_initcall_finish {};
71460 
71461 typedef void (*btf_trace_initcall_level)(void *, const char *);
71462 
71463 typedef void (*btf_trace_initcall_start)(void *, initcall_t);
71464 
71465 typedef void (*btf_trace_initcall_finish)(void *, initcall_t, int);
71466 
71467 struct blacklist_entry {
71468 	struct list_head next;
71469 	char *buf;
71470 };
71471 
71472 enum {
71473 	CACHE_PRESENT = 1,
71474 	CACHE_PRIVATE = 2,
71475 	CACHE_INCLUSIVE = 4,
71476 };
71477 
71478 enum cache_type {
71479 	CACHE_TYPE_NOCACHE = 0,
71480 	CACHE_TYPE_INST = 1,
71481 	CACHE_TYPE_DATA = 2,
71482 	CACHE_TYPE_SEPARATE = 3,
71483 	CACHE_TYPE_UNIFIED = 4,
71484 };
71485 
71486 struct cacheinfo {
71487 	unsigned int id;
71488 	enum cache_type type;
71489 	unsigned int level;
71490 	unsigned int coherency_line_size;
71491 	unsigned int number_of_sets;
71492 	unsigned int ways_of_associativity;
71493 	unsigned int physical_line_partition;
71494 	unsigned int size;
71495 	cpumask_t shared_cpu_map;
71496 	unsigned int attributes;
71497 	void *fw_token;
71498 	bool disable_sysfs;
71499 	void *priv;
71500 };
71501 
71502 struct cpu_cacheinfo {
71503 	struct cacheinfo *info_list;
71504 	unsigned int num_levels;
71505 	unsigned int num_leaves;
71506 	bool cpu_map_populated;
71507 };
71508 
71509 enum bug_trap_type {
71510 	BUG_TRAP_TYPE_NONE = 0,
71511 	BUG_TRAP_TYPE_WARN = 1,
71512 	BUG_TRAP_TYPE_BUG = 2,
71513 };
71514 
71515 enum die_val {
71516 	DIE_OOPS = 1,
71517 	DIE_RI = 2,
71518 	DIE_FP = 3,
71519 	DIE_SIMD = 4,
71520 	DIE_TRAP = 5,
71521 	DIE_PAGE_FAULT = 6,
71522 	DIE_BREAK = 7,
71523 	DIE_SSTEPBP = 8,
71524 	DIE_UPROBE = 9,
71525 	DIE_UPROBE_XOL = 10,
71526 };
71527 
71528 enum reboot_mode {
71529 	REBOOT_UNDEFINED = -1,
71530 	REBOOT_COLD = 0,
71531 	REBOOT_WARM = 1,
71532 	REBOOT_HARD = 2,
71533 	REBOOT_SOFT = 3,
71534 	REBOOT_GPIO = 4,
71535 };
71536 
71537 enum con_flush_mode {
71538 	CONSOLE_FLUSH_PENDING = 0,
71539 	CONSOLE_REPLAY_ALL = 1,
71540 };
71541 
71542 struct cpu {
71543 	int node_id;
71544 	int hotpluggable;
71545 	struct device dev;
71546 };
71547 
71548 struct pt_regs_offset {
71549 	const char *name;
71550 	int offset;
71551 };
71552 
71553 enum loongarch_regset {
71554 	REGSET_GPR = 0,
71555 	REGSET_FPR = 1,
71556 	REGSET_CPUCFG = 2,
71557 };
71558 
71559 typedef __s64 Elf64_Sxword;
71560 
71561 struct elf64_rela {
71562 	Elf64_Addr r_offset;
71563 	Elf64_Xword r_info;
71564 	Elf64_Sxword r_addend;
71565 };
71566 
71567 typedef struct elf64_rela Elf64_Rela;
71568 
71569 struct alt_instr {
71570 	s32 instr_offset;
71571 	s32 replace_offset;
71572 	u16 feature;
71573 	u8 instrlen;
71574 	u8 replacementlen;
71575 };
71576 
71577 typedef int (*reloc_rela_handler)(struct module *, u32 *, Elf64_Addr, s64 *, size_t *, unsigned int);
71578 
71579 struct secondary_data {
71580 	long unsigned int stack;
71581 	long unsigned int thread_info;
71582 };
71583 
71584 enum ipi_msg_type {
71585 	IPI_RESCHEDULE = 0,
71586 	IPI_CALL_FUNCTION = 1,
71587 };
71588 
71589 struct flush_tlb_data {
71590 	struct vm_area_struct *vma;
71591 	long unsigned int addr1;
71592 	long unsigned int addr2;
71593 };
71594 
71595 enum unwinder_type {
71596 	UNWINDER_GUESS = 0,
71597 	UNWINDER_PROLOGUE = 1,
71598 };
71599 
71600 struct mhp_params {
71601 	struct vmem_altmap *altmap;
71602 	pgprot_t pgprot;
71603 	struct dev_pagemap *pgmap;
71604 };
71605 
71606 enum fixed_addresses {
71607 	FIX_HOLE = 0,
71608 	FIX_EARLYCON_MEM_BASE = 1,
71609 	__end_of_fixed_addresses = 2,
71610 };
71611 
71612 struct vm_unmapped_area_info {
71613 	long unsigned int flags;
71614 	long unsigned int length;
71615 	long unsigned int low_limit;
71616 	long unsigned int high_limit;
71617 	long unsigned int align_mask;
71618 	long unsigned int align_offset;
71619 };
71620 
71621 enum mmap_allocation_direction {
71622 	UP___2 = 0,
71623 	DOWN___2 = 1,
71624 };
71625 
71626 enum reg2_op {
71627 	revb2h_op = 12,
71628 	revb4h_op = 13,
71629 	revb2w_op = 14,
71630 	revbd_op = 15,
71631 	revh2w_op = 16,
71632 	revhd_op = 17,
71633 };
71634 
71635 enum reg2i5_op {
71636 	slliw_op = 129,
71637 	srliw_op = 137,
71638 	sraiw_op = 145,
71639 };
71640 
71641 enum reg2i6_op {
71642 	sllid_op = 65,
71643 	srlid_op = 69,
71644 	sraid_op = 73,
71645 };
71646 
71647 enum reg2bstrd_op {
71648 	bstrinsd_op = 2,
71649 	bstrpickd_op = 3,
71650 };
71651 
71652 enum reg3sa2_op {
71653 	alslw_op = 2,
71654 	alslwu_op = 3,
71655 	alsld_op = 22,
71656 };
71657 
71658 struct jit_ctx {
71659 	const struct bpf_prog *prog;
71660 	unsigned int idx;
71661 	unsigned int flags;
71662 	unsigned int epilogue_offset;
71663 	u32 *offset;
71664 	int num_exentries;
71665 	union loongarch_instruction *image;
71666 	u32 stack_size;
71667 };
71668 
71669 struct jit_data {
71670 	struct bpf_binary_header *header;
71671 	u8 *image;
71672 	struct jit_ctx ctx;
71673 };
71674 
71675 struct softirq_action {
71676 	void (*action)(struct softirq_action *);
71677 };
71678 
71679 struct trace_event_raw_irq_handler_entry {
71680 	struct trace_entry ent;
71681 	int irq;
71682 	u32 __data_loc_name;
71683 	char __data[0];
71684 };
71685 
71686 struct trace_event_raw_irq_handler_exit {
71687 	struct trace_entry ent;
71688 	int irq;
71689 	int ret;
71690 	char __data[0];
71691 };
71692 
71693 struct trace_event_raw_softirq {
71694 	struct trace_entry ent;
71695 	unsigned int vec;
71696 	char __data[0];
71697 };
71698 
71699 struct trace_event_data_offsets_irq_handler_entry {
71700 	u32 name;
71701 };
71702 
71703 struct trace_event_data_offsets_irq_handler_exit {};
71704 
71705 struct trace_event_data_offsets_softirq {};
71706 
71707 typedef void (*btf_trace_irq_handler_entry)(void *, int, struct irqaction *);
71708 
71709 typedef void (*btf_trace_irq_handler_exit)(void *, int, struct irqaction *, int);
71710 
71711 typedef void (*btf_trace_softirq_entry)(void *, unsigned int);
71712 
71713 typedef void (*btf_trace_softirq_exit)(void *, unsigned int);
71714 
71715 typedef void (*btf_trace_softirq_raise)(void *, unsigned int);
71716 
71717 struct tasklet_head {
71718 	struct tasklet_struct *head;
71719 	struct tasklet_struct **tail;
71720 };
71721 
71722 struct __user_cap_header_struct {
71723 	__u32 version;
71724 	int pid;
71725 };
71726 
71727 typedef struct __user_cap_header_struct *cap_user_header_t;
71728 
71729 struct __user_cap_data_struct {
71730 	__u32 effective;
71731 	__u32 permitted;
71732 	__u32 inheritable;
71733 };
71734 
71735 typedef struct __user_cap_data_struct *cap_user_data_t;
71736 
71737 struct rusage {
71738 	struct __kernel_old_timeval ru_utime;
71739 	struct __kernel_old_timeval ru_stime;
71740 	__kernel_long_t ru_maxrss;
71741 	__kernel_long_t ru_ixrss;
71742 	__kernel_long_t ru_idrss;
71743 	__kernel_long_t ru_isrss;
71744 	__kernel_long_t ru_minflt;
71745 	__kernel_long_t ru_majflt;
71746 	__kernel_long_t ru_nswap;
71747 	__kernel_long_t ru_inblock;
71748 	__kernel_long_t ru_oublock;
71749 	__kernel_long_t ru_msgsnd;
71750 	__kernel_long_t ru_msgrcv;
71751 	__kernel_long_t ru_nsignals;
71752 	__kernel_long_t ru_nvcsw;
71753 	__kernel_long_t ru_nivcsw;
71754 };
71755 
71756 struct rlimit64 {
71757 	__u64 rlim_cur;
71758 	__u64 rlim_max;
71759 };
71760 
71761 enum uts_proc {
71762 	UTS_PROC_ARCH = 0,
71763 	UTS_PROC_OSTYPE = 1,
71764 	UTS_PROC_OSRELEASE = 2,
71765 	UTS_PROC_VERSION = 3,
71766 	UTS_PROC_HOSTNAME = 4,
71767 	UTS_PROC_DOMAINNAME = 5,
71768 };
71769 
71770 struct prctl_mm_map {
71771 	__u64 start_code;
71772 	__u64 end_code;
71773 	__u64 start_data;
71774 	__u64 end_data;
71775 	__u64 start_brk;
71776 	__u64 brk;
71777 	__u64 start_stack;
71778 	__u64 arg_start;
71779 	__u64 arg_end;
71780 	__u64 env_start;
71781 	__u64 env_end;
71782 	__u64 *auxv;
71783 	__u32 auxv_size;
71784 	__u32 exe_fd;
71785 };
71786 
71787 struct tms {
71788 	__kernel_clock_t tms_utime;
71789 	__kernel_clock_t tms_stime;
71790 	__kernel_clock_t tms_cutime;
71791 	__kernel_clock_t tms_cstime;
71792 };
71793 
71794 struct getcpu_cache {
71795 	long unsigned int blob[16];
71796 };
71797 
71798 enum {
71799 	PROC_ROOT_INO = 1,
71800 	PROC_IPC_INIT_INO = 4026531839,
71801 	PROC_UTS_INIT_INO = 4026531838,
71802 	PROC_USER_INIT_INO = 4026531837,
71803 	PROC_PID_INIT_INO = 4026531836,
71804 	PROC_CGROUP_INIT_INO = 4026531835,
71805 	PROC_TIME_INIT_INO = 4026531834,
71806 };
71807 
71808 struct pool_workqueue;
71809 
71810 struct worker_pool;
71811 
71812 struct worker {
71813 	union {
71814 		struct list_head entry;
71815 		struct hlist_node hentry;
71816 	};
71817 	struct work_struct *current_work;
71818 	work_func_t current_func;
71819 	struct pool_workqueue *current_pwq;
71820 	unsigned int current_color;
71821 	struct list_head scheduled;
71822 	struct task_struct *task;
71823 	struct worker_pool *pool;
71824 	struct list_head node;
71825 	long unsigned int last_active;
71826 	unsigned int flags;
71827 	int id;
71828 	int sleeping;
71829 	char desc[24];
71830 	struct workqueue_struct *rescue_wq;
71831 	work_func_t last_func;
71832 };
71833 
71834 struct async_entry {
71835 	struct list_head domain_list;
71836 	struct list_head global_list;
71837 	struct work_struct work;
71838 	async_cookie_t cookie;
71839 	async_func_t func;
71840 	void *data;
71841 	struct async_domain *domain;
71842 };
71843 
71844 struct swait_queue {
71845 	struct task_struct *task;
71846 	struct list_head task_list;
71847 };
71848 
71849 enum {
71850 	MEMBARRIER_FLAG_SYNC_CORE = 1,
71851 	MEMBARRIER_FLAG_RSEQ = 2,
71852 };
71853 
71854 enum {
71855 	SD_BALANCE_NEWIDLE = 1,
71856 	SD_BALANCE_EXEC = 2,
71857 	SD_BALANCE_FORK = 4,
71858 	SD_BALANCE_WAKE = 8,
71859 	SD_WAKE_AFFINE = 16,
71860 	SD_ASYM_CPUCAPACITY = 32,
71861 	SD_ASYM_CPUCAPACITY_FULL = 64,
71862 	SD_SHARE_CPUCAPACITY = 128,
71863 	SD_SHARE_PKG_RESOURCES = 256,
71864 	SD_SERIALIZE = 512,
71865 	SD_ASYM_PACKING = 1024,
71866 	SD_PREFER_SIBLING = 2048,
71867 	SD_OVERLAP = 4096,
71868 	SD_NUMA = 8192,
71869 };
71870 
71871 typedef const struct cpumask * (*sched_domain_mask_f)(int);
71872 
71873 typedef int (*sched_domain_flags_f)();
71874 
71875 struct sd_data {
71876 	struct sched_domain **sd;
71877 	struct sched_domain_shared **sds;
71878 	struct sched_group **sg;
71879 	struct sched_group_capacity **sgc;
71880 };
71881 
71882 struct sched_domain_topology_level {
71883 	sched_domain_mask_f mask;
71884 	sched_domain_flags_f sd_flags;
71885 	int flags;
71886 	int numa_level;
71887 	struct sd_data data;
71888 };
71889 
71890 enum membarrier_cmd {
71891 	MEMBARRIER_CMD_QUERY = 0,
71892 	MEMBARRIER_CMD_GLOBAL = 1,
71893 	MEMBARRIER_CMD_GLOBAL_EXPEDITED = 2,
71894 	MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED = 4,
71895 	MEMBARRIER_CMD_PRIVATE_EXPEDITED = 8,
71896 	MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = 16,
71897 	MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = 32,
71898 	MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = 64,
71899 	MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 128,
71900 	MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = 256,
71901 	MEMBARRIER_CMD_SHARED = 1,
71902 };
71903 
71904 enum membarrier_cmd_flag {
71905 	MEMBARRIER_CMD_FLAG_CPU = 1,
71906 };
71907 
71908 enum numa_topology_type {
71909 	NUMA_DIRECT = 0,
71910 	NUMA_GLUELESS_MESH = 1,
71911 	NUMA_BACKPLANE = 2,
71912 };
71913 
71914 enum cpuacct_stat_index {
71915 	CPUACCT_STAT_USER = 0,
71916 	CPUACCT_STAT_SYSTEM = 1,
71917 	CPUACCT_STAT_NSTATS = 2,
71918 };
71919 
71920 struct cpuacct {
71921 	struct cgroup_subsys_state css;
71922 	u64 *cpuusage;
71923 	struct kernel_cpustat *cpustat;
71924 };
71925 
71926 struct s_data {
71927 	struct sched_domain **sd;
71928 	struct root_domain *rd;
71929 };
71930 
71931 enum s_alloc {
71932 	sa_rootdomain = 0,
71933 	sa_sd = 1,
71934 	sa_sd_storage = 2,
71935 	sa_none = 3,
71936 };
71937 
71938 struct asym_cap_data {
71939 	struct list_head link;
71940 	long unsigned int capacity;
71941 	long unsigned int cpus[0];
71942 };
71943 
71944 enum hk_flags {
71945 	HK_FLAG_TIMER = 1,
71946 	HK_FLAG_RCU = 2,
71947 	HK_FLAG_MISC = 4,
71948 	HK_FLAG_SCHED = 8,
71949 	HK_FLAG_TICK = 16,
71950 	HK_FLAG_DOMAIN = 32,
71951 	HK_FLAG_WQ = 64,
71952 	HK_FLAG_MANAGED_IRQ = 128,
71953 	HK_FLAG_KTHREAD = 256,
71954 };
71955 
71956 struct housekeeping {
71957 	struct cpumask cpumasks[9];
71958 	long unsigned int flags;
71959 };
71960 
71961 struct trace_event_raw_contention_begin {
71962 	struct trace_entry ent;
71963 	void *lock_addr;
71964 	unsigned int flags;
71965 	char __data[0];
71966 };
71967 
71968 struct trace_event_raw_contention_end {
71969 	struct trace_entry ent;
71970 	void *lock_addr;
71971 	int ret;
71972 	char __data[0];
71973 };
71974 
71975 struct trace_event_data_offsets_contention_begin {};
71976 
71977 struct trace_event_data_offsets_contention_end {};
71978 
71979 typedef void (*btf_trace_contention_begin)(void *, void *, unsigned int);
71980 
71981 typedef void (*btf_trace_contention_end)(void *, void *, int);
71982 
71983 struct mutex_waiter {
71984 	struct list_head list;
71985 	struct task_struct *task;
71986 	struct ww_acquire_ctx *ww_ctx;
71987 };
71988 
71989 enum pm_qos_req_action {
71990 	PM_QOS_ADD_REQ = 0,
71991 	PM_QOS_UPDATE_REQ = 1,
71992 	PM_QOS_REMOVE_REQ = 2,
71993 };
71994 
71995 enum suspend_stat_step {
71996 	SUSPEND_FREEZE = 1,
71997 	SUSPEND_PREPARE = 2,
71998 	SUSPEND_SUSPEND = 3,
71999 	SUSPEND_SUSPEND_LATE = 4,
72000 	SUSPEND_SUSPEND_NOIRQ = 5,
72001 	SUSPEND_RESUME_NOIRQ = 6,
72002 	SUSPEND_RESUME_EARLY = 7,
72003 	SUSPEND_RESUME = 8,
72004 };
72005 
72006 struct suspend_stats {
72007 	int success;
72008 	int fail;
72009 	int failed_freeze;
72010 	int failed_prepare;
72011 	int failed_suspend;
72012 	int failed_suspend_late;
72013 	int failed_suspend_noirq;
72014 	int failed_resume;
72015 	int failed_resume_early;
72016 	int failed_resume_noirq;
72017 	int last_failed_dev;
72018 	char failed_devs[80];
72019 	int last_failed_errno;
72020 	int errno[2];
72021 	int last_failed_step;
72022 	enum suspend_stat_step failed_steps[2];
72023 };
72024 
72025 struct platform_suspend_ops {
72026 	int (*valid)(suspend_state_t);
72027 	int (*begin)(suspend_state_t);
72028 	int (*prepare)();
72029 	int (*prepare_late)();
72030 	int (*enter)(suspend_state_t);
72031 	void (*wake)();
72032 	void (*finish)();
72033 	bool (*suspend_again)();
72034 	void (*end)();
72035 	void (*recover)();
72036 };
72037 
72038 struct platform_s2idle_ops {
72039 	int (*begin)();
72040 	int (*prepare)();
72041 	int (*prepare_late)();
72042 	void (*check)();
72043 	bool (*wake)();
72044 	void (*restore_early)();
72045 	void (*restore)();
72046 	void (*end)();
72047 };
72048 
72049 enum s2idle_states {
72050 	S2IDLE_STATE_NONE = 0,
72051 	S2IDLE_STATE_ENTER = 1,
72052 	S2IDLE_STATE_WAKE = 2,
72053 };
72054 
72055 enum {
72056 	TEST_NONE = 0,
72057 	TEST_CORE = 1,
72058 	TEST_CPUS = 2,
72059 	TEST_PLATFORM = 3,
72060 	TEST_DEVICES = 4,
72061 	TEST_FREEZER = 5,
72062 	__TEST_AFTER_LAST = 6,
72063 };
72064 
72065 enum {
72066 	IRQ_STARTUP_NORMAL = 0,
72067 	IRQ_STARTUP_MANAGED = 1,
72068 	IRQ_STARTUP_ABORT = 2,
72069 };
72070 
72071 enum {
72072 	GP_IDLE = 0,
72073 	GP_ENTER = 1,
72074 	GP_PASSED = 2,
72075 	GP_EXIT = 3,
72076 	GP_REPLAY = 4,
72077 };
72078 
72079 struct rcu_gp_oldstate {
72080 	long unsigned int rgos_norm;
72081 	long unsigned int rgos_exp;
72082 };
72083 
72084 struct context_tracking {
72085 	atomic_t state;
72086 	long int dynticks_nesting;
72087 	long int dynticks_nmi_nesting;
72088 };
72089 
72090 enum tick_dep_bits {
72091 	TICK_DEP_BIT_POSIX_TIMER = 0,
72092 	TICK_DEP_BIT_PERF_EVENTS = 1,
72093 	TICK_DEP_BIT_SCHED = 2,
72094 	TICK_DEP_BIT_CLOCK_UNSTABLE = 3,
72095 	TICK_DEP_BIT_RCU = 4,
72096 	TICK_DEP_BIT_RCU_EXP = 5,
72097 };
72098 
72099 struct sysrq_key_op {
72100 	void (* const handler)(int);
72101 	const char * const help_msg;
72102 	const char * const action_msg;
72103 	const int enable_mask;
72104 };
72105 
72106 struct rcu_exp_work {
72107 	long unsigned int rew_s;
72108 	struct work_struct rew_work;
72109 };
72110 
72111 struct rcu_node {
72112 	raw_spinlock_t lock;
72113 	long unsigned int gp_seq;
72114 	long unsigned int gp_seq_needed;
72115 	long unsigned int completedqs;
72116 	long unsigned int qsmask;
72117 	long unsigned int rcu_gp_init_mask;
72118 	long unsigned int qsmaskinit;
72119 	long unsigned int qsmaskinitnext;
72120 	long unsigned int expmask;
72121 	long unsigned int expmaskinit;
72122 	long unsigned int expmaskinitnext;
72123 	long unsigned int cbovldmask;
72124 	long unsigned int ffmask;
72125 	long unsigned int grpmask;
72126 	int grplo;
72127 	int grphi;
72128 	u8 grpnum;
72129 	u8 level;
72130 	bool wait_blkd_tasks;
72131 	struct rcu_node *parent;
72132 	struct list_head blkd_tasks;
72133 	struct list_head *gp_tasks;
72134 	struct list_head *exp_tasks;
72135 	struct list_head *boost_tasks;
72136 	struct rt_mutex boost_mtx;
72137 	long unsigned int boost_time;
72138 	struct mutex boost_kthread_mutex;
72139 	struct task_struct *boost_kthread_task;
72140 	unsigned int boost_kthread_status;
72141 	long unsigned int n_boosts;
72142 	long: 64;
72143 	long: 64;
72144 	long: 64;
72145 	long: 64;
72146 	long: 64;
72147 	long: 64;
72148 	raw_spinlock_t fqslock;
72149 	long: 32;
72150 	long: 64;
72151 	long: 64;
72152 	long: 64;
72153 	long: 64;
72154 	long: 64;
72155 	long: 64;
72156 	long: 64;
72157 	spinlock_t exp_lock;
72158 	long unsigned int exp_seq_rq;
72159 	wait_queue_head_t exp_wq[4];
72160 	struct rcu_exp_work rew;
72161 	bool exp_need_flush;
72162 	raw_spinlock_t exp_poll_lock;
72163 	long unsigned int exp_seq_poll_rq;
72164 	struct work_struct exp_poll_wq;
72165 	long: 64;
72166 	long: 64;
72167 	long: 64;
72168 	long: 64;
72169 	long: 64;
72170 	long: 64;
72171 	long: 64;
72172 };
72173 
72174 union rcu_noqs {
72175 	struct {
72176 		u8 norm;
72177 		u8 exp;
72178 	} b;
72179 	u16 s;
72180 };
72181 
72182 struct rcu_data {
72183 	long unsigned int gp_seq;
72184 	long unsigned int gp_seq_needed;
72185 	union rcu_noqs cpu_no_qs;
72186 	bool core_needs_qs;
72187 	bool beenonline;
72188 	bool gpwrap;
72189 	bool cpu_started;
72190 	struct rcu_node *mynode;
72191 	long unsigned int grpmask;
72192 	long unsigned int ticks_this_gp;
72193 	struct irq_work defer_qs_iw;
72194 	bool defer_qs_iw_pending;
72195 	struct work_struct strict_work;
72196 	struct rcu_segcblist cblist;
72197 	long int qlen_last_fqs_check;
72198 	long unsigned int n_cbs_invoked;
72199 	long unsigned int n_force_qs_snap;
72200 	long int blimit;
72201 	int dynticks_snap;
72202 	bool rcu_need_heavy_qs;
72203 	bool rcu_urgent_qs;
72204 	bool rcu_forced_tick;
72205 	bool rcu_forced_tick_exp;
72206 	long unsigned int barrier_seq_snap;
72207 	struct callback_head barrier_head;
72208 	int exp_dynticks_snap;
72209 	struct task_struct *rcu_cpu_kthread_task;
72210 	unsigned int rcu_cpu_kthread_status;
72211 	char rcu_cpu_has_work;
72212 	long unsigned int rcuc_activity;
72213 	unsigned int softirq_snap;
72214 	struct irq_work rcu_iw;
72215 	bool rcu_iw_pending;
72216 	long unsigned int rcu_iw_gp_seq;
72217 	long unsigned int rcu_ofl_gp_seq;
72218 	short int rcu_ofl_gp_flags;
72219 	long unsigned int rcu_onl_gp_seq;
72220 	short int rcu_onl_gp_flags;
72221 	long unsigned int last_fqs_resched;
72222 	long unsigned int last_sched_clock;
72223 	long int lazy_len;
72224 	int cpu;
72225 };
72226 
72227 struct rcu_state {
72228 	struct rcu_node node[5];
72229 	struct rcu_node *level[3];
72230 	int ncpus;
72231 	int n_online_cpus;
72232 	long: 64;
72233 	long: 64;
72234 	long: 64;
72235 	long: 64;
72236 	long unsigned int gp_seq;
72237 	long unsigned int gp_max;
72238 	struct task_struct *gp_kthread;
72239 	struct swait_queue_head gp_wq;
72240 	short int gp_flags;
72241 	short int gp_state;
72242 	long unsigned int gp_wake_time;
72243 	long unsigned int gp_wake_seq;
72244 	long unsigned int gp_seq_polled;
72245 	long unsigned int gp_seq_polled_snap;
72246 	long unsigned int gp_seq_polled_exp_snap;
72247 	struct mutex barrier_mutex;
72248 	atomic_t barrier_cpu_count;
72249 	struct completion barrier_completion;
72250 	long unsigned int barrier_sequence;
72251 	raw_spinlock_t barrier_lock;
72252 	struct mutex exp_mutex;
72253 	struct mutex exp_wake_mutex;
72254 	long unsigned int expedited_sequence;
72255 	atomic_t expedited_need_qs;
72256 	struct swait_queue_head expedited_wq;
72257 	int ncpus_snap;
72258 	u8 cbovld;
72259 	u8 cbovldnext;
72260 	long unsigned int jiffies_force_qs;
72261 	long unsigned int jiffies_kick_kthreads;
72262 	long unsigned int n_force_qs;
72263 	long unsigned int gp_start;
72264 	long unsigned int gp_end;
72265 	long unsigned int gp_activity;
72266 	long unsigned int gp_req_activity;
72267 	long unsigned int jiffies_stall;
72268 	long unsigned int jiffies_resched;
72269 	long unsigned int n_force_qs_gpstart;
72270 	const char *name;
72271 	char abbr;
72272 	long: 56;
72273 	long: 64;
72274 	long: 64;
72275 	long: 64;
72276 	long: 64;
72277 	long: 64;
72278 	long: 64;
72279 	long: 64;
72280 	arch_spinlock_t ofl_lock;
72281 	int nocb_is_setup;
72282 	long: 64;
72283 	long: 64;
72284 	long: 64;
72285 	long: 64;
72286 	long: 64;
72287 	long: 64;
72288 	long: 64;
72289 };
72290 
72291 enum rcutorture_type {
72292 	RCU_FLAVOR = 0,
72293 	RCU_TASKS_FLAVOR = 1,
72294 	RCU_TASKS_RUDE_FLAVOR = 2,
72295 	RCU_TASKS_TRACING_FLAVOR = 3,
72296 	RCU_TRIVIAL_FLAVOR = 4,
72297 	SRCU_FLAVOR = 5,
72298 	INVALID_RCU_FLAVOR = 6,
72299 };
72300 
72301 struct kvfree_rcu_bulk_data {
72302 	long unsigned int nr_records;
72303 	struct kvfree_rcu_bulk_data *next;
72304 	void *records[0];
72305 };
72306 
72307 struct kfree_rcu_cpu;
72308 
72309 struct kfree_rcu_cpu_work {
72310 	struct rcu_work rcu_work;
72311 	struct callback_head *head_free;
72312 	struct kvfree_rcu_bulk_data *bkvhead_free[2];
72313 	struct kfree_rcu_cpu *krcp;
72314 };
72315 
72316 struct kfree_rcu_cpu {
72317 	struct callback_head *head;
72318 	struct kvfree_rcu_bulk_data *bkvhead[2];
72319 	struct kfree_rcu_cpu_work krw_arr[2];
72320 	raw_spinlock_t lock;
72321 	struct delayed_work monitor_work;
72322 	bool initialized;
72323 	int count;
72324 	struct delayed_work page_cache_work;
72325 	atomic_t backoff_page_cache_fill;
72326 	atomic_t work_in_progress;
72327 	struct hrtimer hrtimer;
72328 	struct llist_head bkvcache;
72329 	int nr_bkv_objs;
72330 };
72331 
72332 struct module_sect_attr {
72333 	struct bin_attribute battr;
72334 	long unsigned int address;
72335 };
72336 
72337 struct module_sect_attrs {
72338 	struct attribute_group grp;
72339 	unsigned int nsections;
72340 	struct module_sect_attr attrs[0];
72341 };
72342 
72343 struct module_notes_attrs {
72344 	struct kobject *dir;
72345 	unsigned int notes;
72346 	struct bin_attribute attrs[0];
72347 };
72348 
72349 typedef bool (*stack_trace_consume_fn)(void *, long unsigned int);
72350 
72351 struct stacktrace_cookie {
72352 	long unsigned int *store;
72353 	unsigned int size;
72354 	unsigned int skip;
72355 	unsigned int len;
72356 };
72357 
72358 struct trace_event_raw_timer_class {
72359 	struct trace_entry ent;
72360 	void *timer;
72361 	char __data[0];
72362 };
72363 
72364 struct trace_event_raw_timer_start {
72365 	struct trace_entry ent;
72366 	void *timer;
72367 	void *function;
72368 	long unsigned int expires;
72369 	long unsigned int now;
72370 	unsigned int flags;
72371 	char __data[0];
72372 };
72373 
72374 struct trace_event_raw_timer_expire_entry {
72375 	struct trace_entry ent;
72376 	void *timer;
72377 	long unsigned int now;
72378 	void *function;
72379 	long unsigned int baseclk;
72380 	char __data[0];
72381 };
72382 
72383 struct trace_event_raw_hrtimer_init {
72384 	struct trace_entry ent;
72385 	void *hrtimer;
72386 	clockid_t clockid;
72387 	enum hrtimer_mode mode;
72388 	char __data[0];
72389 };
72390 
72391 struct trace_event_raw_hrtimer_start {
72392 	struct trace_entry ent;
72393 	void *hrtimer;
72394 	void *function;
72395 	s64 expires;
72396 	s64 softexpires;
72397 	enum hrtimer_mode mode;
72398 	char __data[0];
72399 };
72400 
72401 struct trace_event_raw_hrtimer_expire_entry {
72402 	struct trace_entry ent;
72403 	void *hrtimer;
72404 	s64 now;
72405 	void *function;
72406 	char __data[0];
72407 };
72408 
72409 struct trace_event_raw_hrtimer_class {
72410 	struct trace_entry ent;
72411 	void *hrtimer;
72412 	char __data[0];
72413 };
72414 
72415 struct trace_event_raw_itimer_state {
72416 	struct trace_entry ent;
72417 	int which;
72418 	long long unsigned int expires;
72419 	long int value_sec;
72420 	long int value_nsec;
72421 	long int interval_sec;
72422 	long int interval_nsec;
72423 	char __data[0];
72424 };
72425 
72426 struct trace_event_raw_itimer_expire {
72427 	struct trace_entry ent;
72428 	int which;
72429 	pid_t pid;
72430 	long long unsigned int now;
72431 	char __data[0];
72432 };
72433 
72434 struct trace_event_raw_tick_stop {
72435 	struct trace_entry ent;
72436 	int success;
72437 	int dependency;
72438 	char __data[0];
72439 };
72440 
72441 struct trace_event_data_offsets_timer_class {};
72442 
72443 struct trace_event_data_offsets_timer_start {};
72444 
72445 struct trace_event_data_offsets_timer_expire_entry {};
72446 
72447 struct trace_event_data_offsets_hrtimer_init {};
72448 
72449 struct trace_event_data_offsets_hrtimer_start {};
72450 
72451 struct trace_event_data_offsets_hrtimer_expire_entry {};
72452 
72453 struct trace_event_data_offsets_hrtimer_class {};
72454 
72455 struct trace_event_data_offsets_itimer_state {};
72456 
72457 struct trace_event_data_offsets_itimer_expire {};
72458 
72459 struct trace_event_data_offsets_tick_stop {};
72460 
72461 typedef void (*btf_trace_timer_init)(void *, struct timer_list *);
72462 
72463 typedef void (*btf_trace_timer_start)(void *, struct timer_list *, long unsigned int, unsigned int);
72464 
72465 typedef void (*btf_trace_timer_expire_entry)(void *, struct timer_list *, long unsigned int);
72466 
72467 typedef void (*btf_trace_timer_expire_exit)(void *, struct timer_list *);
72468 
72469 typedef void (*btf_trace_timer_cancel)(void *, struct timer_list *);
72470 
72471 typedef void (*btf_trace_hrtimer_init)(void *, struct hrtimer *, clockid_t, enum hrtimer_mode);
72472 
72473 typedef void (*btf_trace_hrtimer_start)(void *, struct hrtimer *, enum hrtimer_mode);
72474 
72475 typedef void (*btf_trace_hrtimer_expire_entry)(void *, struct hrtimer *, ktime_t *);
72476 
72477 typedef void (*btf_trace_hrtimer_expire_exit)(void *, struct hrtimer *);
72478 
72479 typedef void (*btf_trace_hrtimer_cancel)(void *, struct hrtimer *);
72480 
72481 typedef void (*btf_trace_itimer_state)(void *, int, const struct itimerspec64 * const, long long unsigned int);
72482 
72483 typedef void (*btf_trace_itimer_expire)(void *, int, struct pid *, long long unsigned int);
72484 
72485 typedef void (*btf_trace_tick_stop)(void *, int, int);
72486 
72487 struct timer_base {
72488 	raw_spinlock_t lock;
72489 	struct timer_list *running_timer;
72490 	long unsigned int clk;
72491 	long unsigned int next_expiry;
72492 	unsigned int cpu;
72493 	bool next_expiry_recalc;
72494 	bool is_idle;
72495 	bool timers_pending;
72496 	long unsigned int pending_map[9];
72497 	struct hlist_head vectors[576];
72498 	long: 64;
72499 	long: 64;
72500 };
72501 
72502 struct process_timer {
72503 	struct timer_list timer;
72504 	struct task_struct *task;
72505 };
72506 
72507 struct tm {
72508 	int tm_sec;
72509 	int tm_min;
72510 	int tm_hour;
72511 	int tm_mday;
72512 	int tm_mon;
72513 	long int tm_year;
72514 	int tm_wday;
72515 	int tm_yday;
72516 };
72517 
72518 struct __kernel_old_itimerval {
72519 	struct __kernel_old_timeval it_interval;
72520 	struct __kernel_old_timeval it_value;
72521 };
72522 
72523 struct timens_offset {
72524 	s64 sec;
72525 	u64 nsec;
72526 };
72527 
72528 struct tk_read_base {
72529 	struct clocksource *clock;
72530 	u64 mask;
72531 	u64 cycle_last;
72532 	u32 mult;
72533 	u32 shift;
72534 	u64 xtime_nsec;
72535 	ktime_t base;
72536 	u64 base_real;
72537 };
72538 
72539 struct timekeeper {
72540 	struct tk_read_base tkr_mono;
72541 	struct tk_read_base tkr_raw;
72542 	u64 xtime_sec;
72543 	long unsigned int ktime_sec;
72544 	struct timespec64 wall_to_monotonic;
72545 	ktime_t offs_real;
72546 	ktime_t offs_boot;
72547 	ktime_t offs_tai;
72548 	s32 tai_offset;
72549 	unsigned int clock_was_set_seq;
72550 	u8 cs_was_changed_seq;
72551 	ktime_t next_leap_ktime;
72552 	u64 raw_sec;
72553 	struct timespec64 monotonic_to_boot;
72554 	u64 cycle_interval;
72555 	u64 xtime_interval;
72556 	s64 xtime_remainder;
72557 	u64 raw_interval;
72558 	u64 ntp_tick;
72559 	s64 ntp_error;
72560 	u32 ntp_error_shift;
72561 	u32 ntp_err_mult;
72562 	u32 skip_second_overflow;
72563 };
72564 
72565 struct arch_vdso_data {};
72566 
72567 struct vdso_timestamp {
72568 	u64 sec;
72569 	u64 nsec;
72570 };
72571 
72572 struct vdso_data {
72573 	u32 seq;
72574 	s32 clock_mode;
72575 	u64 cycle_last;
72576 	u64 mask;
72577 	u32 mult;
72578 	u32 shift;
72579 	union {
72580 		struct vdso_timestamp basetime[12];
72581 		struct timens_offset offset[12];
72582 	};
72583 	s32 tz_minuteswest;
72584 	s32 tz_dsttime;
72585 	u32 hrtimer_res;
72586 	u32 __unused;
72587 	struct arch_vdso_data arch_data;
72588 };
72589 
72590 struct futex_waitv {
72591 	__u64 val;
72592 	__u64 uaddr;
72593 	__u32 flags;
72594 	__u32 __reserved;
72595 };
72596 
72597 struct futex_vector {
72598 	struct futex_waitv w;
72599 	struct futex_q q;
72600 };
72601 
72602 typedef struct {
72603 	char *from;
72604 	char *to;
72605 } substring_t;
72606 
72607 enum rdmacg_resource_type {
72608 	RDMACG_RESOURCE_HCA_HANDLE = 0,
72609 	RDMACG_RESOURCE_HCA_OBJECT = 1,
72610 	RDMACG_RESOURCE_MAX = 2,
72611 };
72612 
72613 enum rdmacg_file_type {
72614 	RDMACG_RESOURCE_TYPE_MAX = 0,
72615 	RDMACG_RESOURCE_TYPE_STAT = 1,
72616 };
72617 
72618 struct rdmacg_resource {
72619 	int max;
72620 	int usage;
72621 };
72622 
72623 struct rdmacg_resource_pool {
72624 	struct rdmacg_device *device;
72625 	struct rdmacg_resource resources[2];
72626 	struct list_head cg_node;
72627 	struct list_head dev_node;
72628 	u64 usage_sum;
72629 	int num_max_cnt;
72630 };
72631 
72632 struct audit_rule_data {
72633 	__u32 flags;
72634 	__u32 action;
72635 	__u32 field_count;
72636 	__u32 mask[64];
72637 	__u32 fields[64];
72638 	__u32 values[64];
72639 	__u32 fieldflags[64];
72640 	__u32 buflen;
72641 	char buf[0];
72642 };
72643 
72644 struct audit_netlink_list {
72645 	__u32 portid;
72646 	struct net *net;
72647 	struct sk_buff_head q;
72648 };
72649 
72650 struct seccomp_notif_sizes {
72651 	__u16 seccomp_notif;
72652 	__u16 seccomp_notif_resp;
72653 	__u16 seccomp_data;
72654 };
72655 
72656 struct seccomp_notif {
72657 	__u64 id;
72658 	__u32 pid;
72659 	__u32 flags;
72660 	struct seccomp_data data;
72661 };
72662 
72663 struct seccomp_notif_resp {
72664 	__u64 id;
72665 	__s64 val;
72666 	__s32 error;
72667 	__u32 flags;
72668 };
72669 
72670 struct seccomp_notif_addfd {
72671 	__u64 id;
72672 	__u32 flags;
72673 	__u32 srcfd;
72674 	__u32 newfd;
72675 	__u32 newfd_flags;
72676 };
72677 
72678 struct action_cache {
72679 	long unsigned int allow_native[8];
72680 };
72681 
72682 struct notification;
72683 
72684 struct seccomp_filter {
72685 	refcount_t refs;
72686 	refcount_t users;
72687 	bool log;
72688 	bool wait_killable_recv;
72689 	struct action_cache cache;
72690 	struct seccomp_filter *prev;
72691 	struct bpf_prog *prog;
72692 	struct notification *notif;
72693 	struct mutex notify_lock;
72694 	wait_queue_head_t wqh;
72695 };
72696 
72697 struct seccomp_metadata {
72698 	__u64 filter_off;
72699 	__u64 flags;
72700 };
72701 
72702 enum notify_state {
72703 	SECCOMP_NOTIFY_INIT = 0,
72704 	SECCOMP_NOTIFY_SENT = 1,
72705 	SECCOMP_NOTIFY_REPLIED = 2,
72706 };
72707 
72708 struct seccomp_knotif {
72709 	struct task_struct *task;
72710 	u64 id;
72711 	const struct seccomp_data *data;
72712 	enum notify_state state;
72713 	int error;
72714 	long int val;
72715 	u32 flags;
72716 	struct completion ready;
72717 	struct list_head list;
72718 	struct list_head addfd;
72719 };
72720 
72721 struct seccomp_kaddfd {
72722 	struct file *file;
72723 	int fd;
72724 	unsigned int flags;
72725 	__u32 ioctl_flags;
72726 	union {
72727 		bool setfd;
72728 		int ret;
72729 	};
72730 	struct completion completion;
72731 	struct list_head list;
72732 };
72733 
72734 struct notification {
72735 	struct semaphore request;
72736 	u64 next_id;
72737 	struct list_head notifications;
72738 };
72739 
72740 struct seccomp_log_name {
72741 	u32 log;
72742 	const char *name;
72743 };
72744 
72745 struct ftrace_func_entry {
72746 	struct hlist_node hlist;
72747 	long unsigned int ip;
72748 	long unsigned int direct;
72749 };
72750 
72751 enum ftrace_bug_type {
72752 	FTRACE_BUG_UNKNOWN = 0,
72753 	FTRACE_BUG_INIT = 1,
72754 	FTRACE_BUG_NOP = 2,
72755 	FTRACE_BUG_CALL = 3,
72756 	FTRACE_BUG_UPDATE = 4,
72757 };
72758 
72759 enum {
72760 	FTRACE_FL_ENABLED = 2147483648,
72761 	FTRACE_FL_REGS = 1073741824,
72762 	FTRACE_FL_REGS_EN = 536870912,
72763 	FTRACE_FL_TRAMP = 268435456,
72764 	FTRACE_FL_TRAMP_EN = 134217728,
72765 	FTRACE_FL_IPMODIFY = 67108864,
72766 	FTRACE_FL_DISABLED = 33554432,
72767 	FTRACE_FL_DIRECT = 16777216,
72768 	FTRACE_FL_DIRECT_EN = 8388608,
72769 };
72770 
72771 enum {
72772 	FTRACE_UPDATE_IGNORE = 0,
72773 	FTRACE_UPDATE_MAKE_CALL = 1,
72774 	FTRACE_UPDATE_MODIFY_CALL = 2,
72775 	FTRACE_UPDATE_MAKE_NOP = 3,
72776 };
72777 
72778 enum {
72779 	FTRACE_ITER_FILTER = 1,
72780 	FTRACE_ITER_NOTRACE = 2,
72781 	FTRACE_ITER_PRINTALL = 4,
72782 	FTRACE_ITER_DO_PROBES = 8,
72783 	FTRACE_ITER_PROBE = 16,
72784 	FTRACE_ITER_MOD = 32,
72785 	FTRACE_ITER_ENABLED = 64,
72786 };
72787 
72788 enum perf_record_ksymbol_type {
72789 	PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0,
72790 	PERF_RECORD_KSYMBOL_TYPE_BPF = 1,
72791 	PERF_RECORD_KSYMBOL_TYPE_OOL = 2,
72792 	PERF_RECORD_KSYMBOL_TYPE_MAX = 3,
72793 };
72794 
72795 enum {
72796 	TRACE_PIDS = 1,
72797 	TRACE_NO_PIDS = 2,
72798 };
72799 
72800 struct ftrace_mod_load {
72801 	struct list_head list;
72802 	char *func;
72803 	char *module;
72804 	int enable;
72805 };
72806 
72807 enum {
72808 	FTRACE_HASH_FL_MOD = 1,
72809 };
72810 
72811 struct trace_parser {
72812 	bool cont;
72813 	char *buffer;
72814 	unsigned int idx;
72815 	unsigned int size;
72816 };
72817 
72818 enum regex_type {
72819 	MATCH_FULL = 0,
72820 	MATCH_FRONT_ONLY = 1,
72821 	MATCH_MIDDLE_ONLY = 2,
72822 	MATCH_END_ONLY = 3,
72823 	MATCH_GLOB = 4,
72824 	MATCH_INDEX = 5,
72825 };
72826 
72827 enum {
72828 	FTRACE_MODIFY_ENABLE_FL = 1,
72829 	FTRACE_MODIFY_MAY_SLEEP_FL = 2,
72830 };
72831 
72832 struct ftrace_profile {
72833 	struct hlist_node node;
72834 	long unsigned int ip;
72835 	long unsigned int counter;
72836 	long long unsigned int time;
72837 	long long unsigned int time_squared;
72838 };
72839 
72840 struct ftrace_profile_page {
72841 	struct ftrace_profile_page *next;
72842 	long unsigned int index;
72843 	struct ftrace_profile records[0];
72844 };
72845 
72846 struct ftrace_profile_stat {
72847 	atomic_t disabled;
72848 	struct hlist_head *hash;
72849 	struct ftrace_profile_page *pages;
72850 	struct ftrace_profile_page *start;
72851 	struct tracer_stat stat;
72852 };
72853 
72854 struct ftrace_func_probe {
72855 	struct ftrace_probe_ops *probe_ops;
72856 	struct ftrace_ops ops;
72857 	struct trace_array *tr;
72858 	struct list_head list;
72859 	void *data;
72860 	int ref;
72861 };
72862 
72863 struct ftrace_page {
72864 	struct ftrace_page *next;
72865 	struct dyn_ftrace *records;
72866 	int index;
72867 	int order;
72868 };
72869 
72870 struct ftrace_rec_iter {
72871 	struct ftrace_page *pg;
72872 	int index;
72873 };
72874 
72875 struct ftrace_iterator {
72876 	loff_t pos;
72877 	loff_t func_pos;
72878 	loff_t mod_pos;
72879 	struct ftrace_page *pg;
72880 	struct dyn_ftrace *func;
72881 	struct ftrace_func_probe *probe;
72882 	struct ftrace_func_entry *probe_entry;
72883 	struct trace_parser parser;
72884 	struct ftrace_hash *hash;
72885 	struct ftrace_ops *ops;
72886 	struct trace_array *tr;
72887 	struct list_head *mod_list;
72888 	int pidx;
72889 	int idx;
72890 	unsigned int flags;
72891 };
72892 
72893 struct ftrace_glob {
72894 	char *search;
72895 	unsigned int len;
72896 	int type;
72897 };
72898 
72899 struct ftrace_func_map {
72900 	struct ftrace_func_entry entry;
72901 	void *data;
72902 };
72903 
72904 struct ftrace_func_mapper {
72905 	struct ftrace_hash hash;
72906 };
72907 
72908 enum graph_filter_type {
72909 	GRAPH_FILTER_NOTRACE = 0,
72910 	GRAPH_FILTER_FUNCTION = 1,
72911 };
72912 
72913 struct ftrace_graph_data {
72914 	struct ftrace_hash *hash;
72915 	struct ftrace_func_entry *entry;
72916 	int idx;
72917 	enum graph_filter_type type;
72918 	struct ftrace_hash *new_hash;
72919 	const struct seq_operations *seq_ops;
72920 	struct trace_parser parser;
72921 };
72922 
72923 struct ftrace_mod_func {
72924 	struct list_head list;
72925 	char *name;
72926 	long unsigned int ip;
72927 	unsigned int size;
72928 };
72929 
72930 struct ftrace_mod_map {
72931 	struct callback_head rcu;
72932 	struct list_head list;
72933 	struct module *mod;
72934 	long unsigned int start_addr;
72935 	long unsigned int end_addr;
72936 	struct list_head funcs;
72937 	unsigned int num_funcs;
72938 };
72939 
72940 struct ftrace_init_func {
72941 	struct list_head list;
72942 	long unsigned int ip;
72943 };
72944 
72945 struct kallsyms_data {
72946 	long unsigned int *addrs;
72947 	const char **syms;
72948 	size_t cnt;
72949 	size_t found;
72950 };
72951 
72952 struct ftrace_graph_ent_entry {
72953 	struct trace_entry ent;
72954 	struct ftrace_graph_ent graph_ent;
72955 } __attribute__((packed));
72956 
72957 struct ftrace_graph_ret_entry {
72958 	struct trace_entry ent;
72959 	struct ftrace_graph_ret ret;
72960 };
72961 
72962 struct fgraph_cpu_data {
72963 	pid_t last_pid;
72964 	int depth;
72965 	int depth_irq;
72966 	int ignore;
72967 	long unsigned int enter_funcs[50];
72968 };
72969 
72970 struct fgraph_data {
72971 	struct fgraph_cpu_data *cpu_data;
72972 	struct ftrace_graph_ent_entry ent;
72973 	struct ftrace_graph_ret_entry ret;
72974 	int failed;
72975 	int cpu;
72976 	int: 32;
72977 } __attribute__((packed));
72978 
72979 enum {
72980 	FLAGS_FILL_FULL = 268435456,
72981 	FLAGS_FILL_START = 536870912,
72982 	FLAGS_FILL_END = 805306368,
72983 };
72984 
72985 typedef long unsigned int perf_trace_t[1024];
72986 
72987 enum cpufreq_table_sorting {
72988 	CPUFREQ_TABLE_UNSORTED = 0,
72989 	CPUFREQ_TABLE_SORTED_ASCENDING = 1,
72990 	CPUFREQ_TABLE_SORTED_DESCENDING = 2,
72991 };
72992 
72993 struct cpufreq_cpuinfo {
72994 	unsigned int max_freq;
72995 	unsigned int min_freq;
72996 	unsigned int transition_latency;
72997 };
72998 
72999 struct cpufreq_stats;
73000 
73001 struct cpufreq_governor;
73002 
73003 struct cpufreq_frequency_table;
73004 
73005 struct cpufreq_policy {
73006 	cpumask_var_t cpus;
73007 	cpumask_var_t related_cpus;
73008 	cpumask_var_t real_cpus;
73009 	unsigned int shared_type;
73010 	unsigned int cpu;
73011 	struct clk *clk;
73012 	struct cpufreq_cpuinfo cpuinfo;
73013 	unsigned int min;
73014 	unsigned int max;
73015 	unsigned int cur;
73016 	unsigned int suspend_freq;
73017 	unsigned int policy;
73018 	unsigned int last_policy;
73019 	struct cpufreq_governor *governor;
73020 	void *governor_data;
73021 	char last_governor[16];
73022 	struct work_struct update;
73023 	struct freq_constraints constraints;
73024 	struct freq_qos_request *min_freq_req;
73025 	struct freq_qos_request *max_freq_req;
73026 	struct cpufreq_frequency_table *freq_table;
73027 	enum cpufreq_table_sorting freq_table_sorted;
73028 	struct list_head policy_list;
73029 	struct kobject kobj;
73030 	struct completion kobj_unregister;
73031 	struct rw_semaphore rwsem;
73032 	bool fast_switch_possible;
73033 	bool fast_switch_enabled;
73034 	bool strict_target;
73035 	bool efficiencies_available;
73036 	unsigned int transition_delay_us;
73037 	bool dvfs_possible_from_any_cpu;
73038 	unsigned int cached_target_freq;
73039 	unsigned int cached_resolved_idx;
73040 	bool transition_ongoing;
73041 	spinlock_t transition_lock;
73042 	wait_queue_head_t transition_wait;
73043 	struct task_struct *transition_task;
73044 	struct cpufreq_stats *stats;
73045 	void *driver_data;
73046 	struct thermal_cooling_device *cdev;
73047 	struct notifier_block nb_min;
73048 	struct notifier_block nb_max;
73049 };
73050 
73051 struct cpufreq_governor {
73052 	char name[16];
73053 	int (*init)(struct cpufreq_policy *);
73054 	void (*exit)(struct cpufreq_policy *);
73055 	int (*start)(struct cpufreq_policy *);
73056 	void (*stop)(struct cpufreq_policy *);
73057 	void (*limits)(struct cpufreq_policy *);
73058 	ssize_t (*show_setspeed)(struct cpufreq_policy *, char *);
73059 	int (*store_setspeed)(struct cpufreq_policy *, unsigned int);
73060 	struct list_head governor_list;
73061 	struct module *owner;
73062 	u8 flags;
73063 };
73064 
73065 struct cpufreq_frequency_table {
73066 	unsigned int flags;
73067 	unsigned int driver_data;
73068 	unsigned int frequency;
73069 };
73070 
73071 struct trace_event_raw_cpu {
73072 	struct trace_entry ent;
73073 	u32 state;
73074 	u32 cpu_id;
73075 	char __data[0];
73076 };
73077 
73078 struct trace_event_raw_cpu_idle_miss {
73079 	struct trace_entry ent;
73080 	u32 cpu_id;
73081 	u32 state;
73082 	bool below;
73083 	char __data[0];
73084 };
73085 
73086 struct trace_event_raw_powernv_throttle {
73087 	struct trace_entry ent;
73088 	int chip_id;
73089 	u32 __data_loc_reason;
73090 	int pmax;
73091 	char __data[0];
73092 };
73093 
73094 struct trace_event_raw_pstate_sample {
73095 	struct trace_entry ent;
73096 	u32 core_busy;
73097 	u32 scaled_busy;
73098 	u32 from;
73099 	u32 to;
73100 	u64 mperf;
73101 	u64 aperf;
73102 	u64 tsc;
73103 	u32 freq;
73104 	u32 io_boost;
73105 	char __data[0];
73106 };
73107 
73108 struct trace_event_raw_cpu_frequency_limits {
73109 	struct trace_entry ent;
73110 	u32 min_freq;
73111 	u32 max_freq;
73112 	u32 cpu_id;
73113 	char __data[0];
73114 };
73115 
73116 struct trace_event_raw_device_pm_callback_start {
73117 	struct trace_entry ent;
73118 	u32 __data_loc_device;
73119 	u32 __data_loc_driver;
73120 	u32 __data_loc_parent;
73121 	u32 __data_loc_pm_ops;
73122 	int event;
73123 	char __data[0];
73124 };
73125 
73126 struct trace_event_raw_device_pm_callback_end {
73127 	struct trace_entry ent;
73128 	u32 __data_loc_device;
73129 	u32 __data_loc_driver;
73130 	int error;
73131 	char __data[0];
73132 };
73133 
73134 struct trace_event_raw_suspend_resume {
73135 	struct trace_entry ent;
73136 	const char *action;
73137 	int val;
73138 	bool start;
73139 	char __data[0];
73140 };
73141 
73142 struct trace_event_raw_wakeup_source {
73143 	struct trace_entry ent;
73144 	u32 __data_loc_name;
73145 	u64 state;
73146 	char __data[0];
73147 };
73148 
73149 struct trace_event_raw_clock {
73150 	struct trace_entry ent;
73151 	u32 __data_loc_name;
73152 	u64 state;
73153 	u64 cpu_id;
73154 	char __data[0];
73155 };
73156 
73157 struct trace_event_raw_power_domain {
73158 	struct trace_entry ent;
73159 	u32 __data_loc_name;
73160 	u64 state;
73161 	u64 cpu_id;
73162 	char __data[0];
73163 };
73164 
73165 struct trace_event_raw_cpu_latency_qos_request {
73166 	struct trace_entry ent;
73167 	s32 value;
73168 	char __data[0];
73169 };
73170 
73171 struct trace_event_raw_pm_qos_update {
73172 	struct trace_entry ent;
73173 	enum pm_qos_req_action action;
73174 	int prev_value;
73175 	int curr_value;
73176 	char __data[0];
73177 };
73178 
73179 struct trace_event_raw_dev_pm_qos_request {
73180 	struct trace_entry ent;
73181 	u32 __data_loc_name;
73182 	enum dev_pm_qos_req_type type;
73183 	s32 new_value;
73184 	char __data[0];
73185 };
73186 
73187 struct trace_event_raw_guest_halt_poll_ns {
73188 	struct trace_entry ent;
73189 	bool grow;
73190 	unsigned int new;
73191 	unsigned int old;
73192 	char __data[0];
73193 };
73194 
73195 struct trace_event_data_offsets_cpu {};
73196 
73197 struct trace_event_data_offsets_cpu_idle_miss {};
73198 
73199 struct trace_event_data_offsets_powernv_throttle {
73200 	u32 reason;
73201 };
73202 
73203 struct trace_event_data_offsets_pstate_sample {};
73204 
73205 struct trace_event_data_offsets_cpu_frequency_limits {};
73206 
73207 struct trace_event_data_offsets_device_pm_callback_start {
73208 	u32 device;
73209 	u32 driver;
73210 	u32 parent;
73211 	u32 pm_ops;
73212 };
73213 
73214 struct trace_event_data_offsets_device_pm_callback_end {
73215 	u32 device;
73216 	u32 driver;
73217 };
73218 
73219 struct trace_event_data_offsets_suspend_resume {};
73220 
73221 struct trace_event_data_offsets_wakeup_source {
73222 	u32 name;
73223 };
73224 
73225 struct trace_event_data_offsets_clock {
73226 	u32 name;
73227 };
73228 
73229 struct trace_event_data_offsets_power_domain {
73230 	u32 name;
73231 };
73232 
73233 struct trace_event_data_offsets_cpu_latency_qos_request {};
73234 
73235 struct trace_event_data_offsets_pm_qos_update {};
73236 
73237 struct trace_event_data_offsets_dev_pm_qos_request {
73238 	u32 name;
73239 };
73240 
73241 struct trace_event_data_offsets_guest_halt_poll_ns {};
73242 
73243 typedef void (*btf_trace_cpu_idle)(void *, unsigned int, unsigned int);
73244 
73245 typedef void (*btf_trace_cpu_idle_miss)(void *, unsigned int, unsigned int, bool);
73246 
73247 typedef void (*btf_trace_powernv_throttle)(void *, int, const char *, int);
73248 
73249 typedef void (*btf_trace_pstate_sample)(void *, u32, u32, u32, u32, u64, u64, u64, u32, u32);
73250 
73251 typedef void (*btf_trace_cpu_frequency)(void *, unsigned int, unsigned int);
73252 
73253 typedef void (*btf_trace_cpu_frequency_limits)(void *, struct cpufreq_policy *);
73254 
73255 typedef void (*btf_trace_device_pm_callback_start)(void *, struct device *, const char *, int);
73256 
73257 typedef void (*btf_trace_device_pm_callback_end)(void *, struct device *, int);
73258 
73259 typedef void (*btf_trace_suspend_resume)(void *, const char *, int, bool);
73260 
73261 typedef void (*btf_trace_wakeup_source_activate)(void *, const char *, unsigned int);
73262 
73263 typedef void (*btf_trace_wakeup_source_deactivate)(void *, const char *, unsigned int);
73264 
73265 typedef void (*btf_trace_clock_enable)(void *, const char *, unsigned int, unsigned int);
73266 
73267 typedef void (*btf_trace_clock_disable)(void *, const char *, unsigned int, unsigned int);
73268 
73269 typedef void (*btf_trace_clock_set_rate)(void *, const char *, unsigned int, unsigned int);
73270 
73271 typedef void (*btf_trace_power_domain_target)(void *, const char *, unsigned int, unsigned int);
73272 
73273 typedef void (*btf_trace_pm_qos_add_request)(void *, s32);
73274 
73275 typedef void (*btf_trace_pm_qos_update_request)(void *, s32);
73276 
73277 typedef void (*btf_trace_pm_qos_remove_request)(void *, s32);
73278 
73279 typedef void (*btf_trace_pm_qos_update_target)(void *, enum pm_qos_req_action, int, int);
73280 
73281 typedef void (*btf_trace_pm_qos_update_flags)(void *, enum pm_qos_req_action, int, int);
73282 
73283 typedef void (*btf_trace_dev_pm_qos_add_request)(void *, const char *, enum dev_pm_qos_req_type, s32);
73284 
73285 typedef void (*btf_trace_dev_pm_qos_update_request)(void *, const char *, enum dev_pm_qos_req_type, s32);
73286 
73287 typedef void (*btf_trace_dev_pm_qos_remove_request)(void *, const char *, enum dev_pm_qos_req_type, s32);
73288 
73289 typedef void (*btf_trace_guest_halt_poll_ns)(void *, bool, unsigned int, unsigned int);
73290 
73291 struct dynevent_arg_pair {
73292 	const char *lhs;
73293 	const char *rhs;
73294 	char operator;
73295 	char separator;
73296 };
73297 
73298 enum cpu_pm_event {
73299 	CPU_PM_ENTER = 0,
73300 	CPU_PM_ENTER_FAILED = 1,
73301 	CPU_PM_EXIT = 2,
73302 	CPU_CLUSTER_PM_ENTER = 3,
73303 	CPU_CLUSTER_PM_ENTER_FAILED = 4,
73304 	CPU_CLUSTER_PM_EXIT = 5,
73305 };
73306 
73307 enum btf_func_linkage {
73308 	BTF_FUNC_STATIC = 0,
73309 	BTF_FUNC_GLOBAL = 1,
73310 	BTF_FUNC_EXTERN = 2,
73311 };
73312 
73313 struct btf_var_secinfo {
73314 	__u32 type;
73315 	__u32 offset;
73316 	__u32 size;
73317 };
73318 
73319 struct btf_id_set {
73320 	u32 cnt;
73321 	u32 ids[0];
73322 };
73323 
73324 struct bpf_attach_target_info {
73325 	struct btf_func_model fmodel;
73326 	long int tgt_addr;
73327 	const char *tgt_name;
73328 	const struct btf_type *tgt_type;
73329 };
73330 
73331 struct bpf_kfunc_desc {
73332 	struct btf_func_model func_model;
73333 	u32 func_id;
73334 	s32 imm;
73335 	u16 offset;
73336 };
73337 
73338 struct bpf_kfunc_desc_tab {
73339 	struct bpf_kfunc_desc descs[256];
73340 	u32 nr_descs;
73341 };
73342 
73343 struct bpf_kfunc_btf {
73344 	struct btf *btf;
73345 	struct module *module;
73346 	u16 offset;
73347 };
73348 
73349 struct bpf_kfunc_btf_tab {
73350 	struct bpf_kfunc_btf descs[256];
73351 	u32 nr_descs;
73352 };
73353 
73354 struct bpf_struct_ops {
73355 	const struct bpf_verifier_ops *verifier_ops;
73356 	int (*init)(struct btf *);
73357 	int (*check_member)(const struct btf_type *, const struct btf_member *);
73358 	int (*init_member)(const struct btf_type *, const struct btf_member *, void *, const void *);
73359 	int (*reg)(void *);
73360 	void (*unreg)(void *);
73361 	const struct btf_type *type;
73362 	const struct btf_type *value_type;
73363 	const char *name;
73364 	struct btf_func_model func_models[64];
73365 	u32 type_id;
73366 	u32 value_id;
73367 };
73368 
73369 typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *);
73370 
73371 struct bpf_core_ctx {
73372 	struct bpf_verifier_log *log;
73373 	const struct btf *btf;
73374 };
73375 
73376 enum bpf_stack_slot_type {
73377 	STACK_INVALID = 0,
73378 	STACK_SPILL = 1,
73379 	STACK_MISC = 2,
73380 	STACK_ZERO = 3,
73381 	STACK_DYNPTR = 4,
73382 };
73383 
73384 struct bpf_verifier_stack_elem {
73385 	struct bpf_verifier_state st;
73386 	int insn_idx;
73387 	int prev_insn_idx;
73388 	struct bpf_verifier_stack_elem *next;
73389 	u32 log_pos;
73390 };
73391 
73392 typedef void (*bpf_insn_print_t)(void *, const char *, ...);
73393 
73394 typedef const char * (*bpf_insn_revmap_call_t)(void *, const struct bpf_insn *);
73395 
73396 typedef const char * (*bpf_insn_print_imm_t)(void *, const struct bpf_insn *, __u64);
73397 
73398 struct bpf_insn_cbs {
73399 	bpf_insn_print_t cb_print;
73400 	bpf_insn_revmap_call_t cb_call;
73401 	bpf_insn_print_imm_t cb_imm;
73402 	void *private_data;
73403 };
73404 
73405 struct bpf_call_arg_meta {
73406 	struct bpf_map *map_ptr;
73407 	bool raw_mode;
73408 	bool pkt_access;
73409 	u8 release_regno;
73410 	int regno;
73411 	int access_size;
73412 	int mem_size;
73413 	u64 msize_max_value;
73414 	int ref_obj_id;
73415 	int map_uid;
73416 	int func_id;
73417 	struct btf *btf;
73418 	u32 btf_id;
73419 	struct btf *ret_btf;
73420 	u32 ret_btf_id;
73421 	u32 subprogno;
73422 	struct btf_field *kptr_field;
73423 	u8 uninit_dynptr_regno;
73424 };
73425 
73426 enum reg_arg_type {
73427 	SRC_OP = 0,
73428 	DST_OP = 1,
73429 	DST_OP_NO_MARK = 2,
73430 };
73431 
73432 enum bpf_access_src {
73433 	ACCESS_DIRECT = 1,
73434 	ACCESS_HELPER = 2,
73435 };
73436 
73437 struct bpf_reg_types {
73438 	const enum bpf_reg_type types[10];
73439 	u32 *btf_id;
73440 };
73441 
73442 enum {
73443 	AT_PKT_END = -1,
73444 	BEYOND_PKT_END = -2,
73445 };
73446 
73447 typedef int (*set_callee_state_fn)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *, int);
73448 
73449 struct bpf_kfunc_call_arg_meta {
73450 	struct btf *btf;
73451 	u32 func_id;
73452 	u32 kfunc_flags;
73453 	const struct btf_type *func_proto;
73454 	const char *func_name;
73455 	u32 ref_obj_id;
73456 	u8 release_regno;
73457 	bool r0_rdonly;
73458 	u32 ret_btf_id;
73459 	u64 r0_size;
73460 	struct {
73461 		u64 value;
73462 		bool found;
73463 	} arg_constant;
73464 	struct {
73465 		struct btf *btf;
73466 		u32 btf_id;
73467 	} arg_obj_drop;
73468 	struct {
73469 		struct btf_field *field;
73470 	} arg_list_head;
73471 };
73472 
73473 enum {
73474 	KF_ARG_DYNPTR_ID = 0,
73475 	KF_ARG_LIST_HEAD_ID = 1,
73476 	KF_ARG_LIST_NODE_ID = 2,
73477 };
73478 
73479 enum kfunc_ptr_arg_type {
73480 	KF_ARG_PTR_TO_CTX = 0,
73481 	KF_ARG_PTR_TO_ALLOC_BTF_ID = 1,
73482 	KF_ARG_PTR_TO_KPTR = 2,
73483 	KF_ARG_PTR_TO_DYNPTR = 3,
73484 	KF_ARG_PTR_TO_LIST_HEAD = 4,
73485 	KF_ARG_PTR_TO_LIST_NODE = 5,
73486 	KF_ARG_PTR_TO_BTF_ID = 6,
73487 	KF_ARG_PTR_TO_MEM = 7,
73488 	KF_ARG_PTR_TO_MEM_SIZE = 8,
73489 };
73490 
73491 enum special_kfunc_type {
73492 	KF_bpf_obj_new_impl = 0,
73493 	KF_bpf_obj_drop_impl = 1,
73494 	KF_bpf_list_push_front = 2,
73495 	KF_bpf_list_push_back = 3,
73496 	KF_bpf_list_pop_front = 4,
73497 	KF_bpf_list_pop_back = 5,
73498 	KF_bpf_cast_to_kern_ctx = 6,
73499 	KF_bpf_rdonly_cast = 7,
73500 	KF_bpf_rcu_read_lock = 8,
73501 	KF_bpf_rcu_read_unlock = 9,
73502 };
73503 
73504 enum {
73505 	REASON_BOUNDS = -1,
73506 	REASON_TYPE = -2,
73507 	REASON_PATHS = -3,
73508 	REASON_LIMIT = -4,
73509 	REASON_STACK = -5,
73510 };
73511 
73512 struct bpf_sanitize_info {
73513 	struct bpf_insn_aux_data aux;
73514 	bool mask_to_left;
73515 };
73516 
73517 enum {
73518 	DISCOVERED = 16,
73519 	EXPLORED = 32,
73520 	FALLTHROUGH = 1,
73521 	BRANCH = 2,
73522 };
73523 
73524 enum {
73525 	DONE_EXPLORING = 0,
73526 	KEEP_EXPLORING = 1,
73527 };
73528 
73529 struct bpf_iter_seq_prog_info {
73530 	u32 prog_id;
73531 };
73532 
73533 struct bpf_iter__bpf_prog {
73534 	union {
73535 		struct bpf_iter_meta *meta;
73536 	};
73537 	union {
73538 		struct bpf_prog *prog;
73539 	};
73540 };
73541 
73542 struct bpf_event_entry {
73543 	struct perf_event *event;
73544 	struct file *perf_file;
73545 	struct file *map_file;
73546 	struct callback_head rcu;
73547 };
73548 
73549 struct bpf_iter__bpf_map_elem {
73550 	union {
73551 		struct bpf_iter_meta *meta;
73552 	};
73553 	union {
73554 		struct bpf_map *map;
73555 	};
73556 	union {
73557 		void *key;
73558 	};
73559 	union {
73560 		void *value;
73561 	};
73562 };
73563 
73564 struct bpf_iter_seq_array_map_info {
73565 	struct bpf_map *map;
73566 	void *percpu_value_buf;
73567 	u32 index;
73568 };
73569 
73570 struct prog_poke_elem {
73571 	struct list_head list;
73572 	struct bpf_prog_aux *aux;
73573 };
73574 
73575 struct bpf_queue_stack {
73576 	struct bpf_map map;
73577 	raw_spinlock_t lock;
73578 	u32 head;
73579 	u32 tail;
73580 	u32 size;
73581 	char elements[0];
73582 	long: 64;
73583 	long: 64;
73584 	long: 64;
73585 	long: 64;
73586 	long: 64;
73587 	long: 64;
73588 };
73589 
73590 enum {
73591 	BPF_LOCAL_STORAGE_GET_F_CREATE = 1,
73592 	BPF_SK_STORAGE_GET_F_CREATE = 1,
73593 };
73594 
73595 typedef u64 (*btf_bpf_task_storage_get_recur)(struct bpf_map *, struct task_struct *, void *, u64, gfp_t);
73596 
73597 typedef u64 (*btf_bpf_task_storage_get)(struct bpf_map *, struct task_struct *, void *, u64, gfp_t);
73598 
73599 typedef u64 (*btf_bpf_task_storage_delete_recur)(struct bpf_map *, struct task_struct *);
73600 
73601 typedef u64 (*btf_bpf_task_storage_delete)(struct bpf_map *, struct task_struct *);
73602 
73603 struct bpf_dispatcher_prog {
73604 	struct bpf_prog *prog;
73605 	refcount_t users;
73606 };
73607 
73608 struct bpf_dispatcher {
73609 	struct mutex mutex;
73610 	void *func;
73611 	struct bpf_dispatcher_prog progs[48];
73612 	int num_progs;
73613 	void *image;
73614 	void *rw_image;
73615 	u32 image_off;
73616 	struct bpf_ksym ksym;
73617 };
73618 
73619 struct bpf_prog_info {
73620 	__u32 type;
73621 	__u32 id;
73622 	__u8 tag[8];
73623 	__u32 jited_prog_len;
73624 	__u32 xlated_prog_len;
73625 	__u64 jited_prog_insns;
73626 	__u64 xlated_prog_insns;
73627 	__u64 load_time;
73628 	__u32 created_by_uid;
73629 	__u32 nr_map_ids;
73630 	__u64 map_ids;
73631 	char name[16];
73632 	__u32 ifindex;
73633 	__u32 gpl_compatible: 1;
73634 	__u64 netns_dev;
73635 	__u64 netns_ino;
73636 	__u32 nr_jited_ksyms;
73637 	__u32 nr_jited_func_lens;
73638 	__u64 jited_ksyms;
73639 	__u64 jited_func_lens;
73640 	__u32 btf_id;
73641 	__u32 func_info_rec_size;
73642 	__u64 func_info;
73643 	__u32 nr_func_info;
73644 	__u32 nr_line_info;
73645 	__u64 line_info;
73646 	__u64 jited_line_info;
73647 	__u32 nr_jited_line_info;
73648 	__u32 line_info_rec_size;
73649 	__u32 jited_line_info_rec_size;
73650 	__u32 nr_prog_tags;
73651 	__u64 prog_tags;
73652 	__u64 run_time_ns;
73653 	__u64 run_cnt;
73654 	__u64 recursion_misses;
73655 	__u32 verified_insns;
73656 	__u32 attach_btf_obj_id;
73657 	__u32 attach_btf_id;
73658 };
73659 
73660 struct bpf_map_info {
73661 	__u32 type;
73662 	__u32 id;
73663 	__u32 key_size;
73664 	__u32 value_size;
73665 	__u32 max_entries;
73666 	__u32 map_flags;
73667 	char name[16];
73668 	__u32 ifindex;
73669 	__u32 btf_vmlinux_value_type_id;
73670 	__u64 netns_dev;
73671 	__u64 netns_ino;
73672 	__u32 btf_id;
73673 	__u32 btf_key_type_id;
73674 	__u32 btf_value_type_id;
73675 	__u64 map_extra;
73676 };
73677 
73678 struct bpf_prog_offload_ops {
73679 	int (*insn_hook)(struct bpf_verifier_env *, int, int);
73680 	int (*finalize)(struct bpf_verifier_env *);
73681 	int (*replace_insn)(struct bpf_verifier_env *, u32, struct bpf_insn *);
73682 	int (*remove_insns)(struct bpf_verifier_env *, u32, u32);
73683 	int (*prepare)(struct bpf_prog *);
73684 	int (*translate)(struct bpf_prog *);
73685 	void (*destroy)(struct bpf_prog *);
73686 };
73687 
73688 struct bpf_offload_dev {
73689 	const struct bpf_prog_offload_ops *ops;
73690 	struct list_head netdevs;
73691 	void *priv;
73692 };
73693 
73694 struct bpf_offload_netdev {
73695 	struct rhash_head l;
73696 	struct net_device *netdev;
73697 	struct bpf_offload_dev *offdev;
73698 	struct list_head progs;
73699 	struct list_head maps;
73700 	struct list_head offdev_netdevs;
73701 };
73702 
73703 struct ns_get_path_bpf_prog_args {
73704 	struct bpf_prog *prog;
73705 	struct bpf_prog_info *info;
73706 };
73707 
73708 struct ns_get_path_bpf_map_args {
73709 	struct bpf_offloaded_map *offmap;
73710 	struct bpf_map_info *info;
73711 };
73712 
73713 typedef u64 (*btf_bpf_cgrp_storage_get)(struct bpf_map *, struct cgroup *, void *, u64, gfp_t);
73714 
73715 typedef u64 (*btf_bpf_cgrp_storage_delete)(struct bpf_map *, struct cgroup *);
73716 
73717 struct bpf_tramp_link;
73718 
73719 struct bpf_tramp_links {
73720 	struct bpf_tramp_link *links[38];
73721 	int nr_links;
73722 };
73723 
73724 struct bpf_tramp_link {
73725 	struct bpf_link link;
73726 	struct hlist_node tramp_hlist;
73727 	u64 cookie;
73728 };
73729 
73730 struct bpf_dummy_ops_state {
73731 	int val;
73732 };
73733 
73734 struct bpf_dummy_ops {
73735 	int (*test_1)(struct bpf_dummy_ops_state *);
73736 	int (*test_2)(struct bpf_dummy_ops_state *, int, short unsigned int, char, long unsigned int);
73737 };
73738 
73739 enum bpf_struct_ops_state {
73740 	BPF_STRUCT_OPS_STATE_INIT = 0,
73741 	BPF_STRUCT_OPS_STATE_INUSE = 1,
73742 	BPF_STRUCT_OPS_STATE_TOBEFREE = 2,
73743 };
73744 
73745 struct bpf_struct_ops_value {
73746 	refcount_t refcnt;
73747 	enum bpf_struct_ops_state state;
73748 	long: 64;
73749 	long: 64;
73750 	long: 64;
73751 	long: 64;
73752 	long: 64;
73753 	long: 64;
73754 	long: 64;
73755 	char data[0];
73756 };
73757 
73758 struct bpf_struct_ops_map {
73759 	struct bpf_map map;
73760 	struct callback_head rcu;
73761 	const struct bpf_struct_ops *st_ops;
73762 	struct mutex lock;
73763 	struct bpf_link **links;
73764 	void *image;
73765 	struct bpf_struct_ops_value *uvalue;
73766 	long: 64;
73767 	long: 64;
73768 	long: 64;
73769 	long: 64;
73770 	long: 64;
73771 	long: 64;
73772 	struct bpf_struct_ops_value kvalue;
73773 };
73774 
73775 struct bpf_struct_ops_bpf_dummy_ops {
73776 	refcount_t refcnt;
73777 	enum bpf_struct_ops_state state;
73778 	long: 64;
73779 	long: 64;
73780 	long: 64;
73781 	long: 64;
73782 	long: 64;
73783 	long: 64;
73784 	long: 64;
73785 	struct bpf_dummy_ops data;
73786 	long: 64;
73787 	long: 64;
73788 	long: 64;
73789 	long: 64;
73790 	long: 64;
73791 	long: 64;
73792 };
73793 
73794 struct bpf_struct_ops_tcp_congestion_ops {
73795 	refcount_t refcnt;
73796 	enum bpf_struct_ops_state state;
73797 	long: 64;
73798 	long: 64;
73799 	long: 64;
73800 	long: 64;
73801 	long: 64;
73802 	long: 64;
73803 	long: 64;
73804 	struct tcp_congestion_ops data;
73805 };
73806 
73807 enum {
73808 	BPF_STRUCT_OPS_TYPE_bpf_dummy_ops = 0,
73809 	BPF_STRUCT_OPS_TYPE_tcp_congestion_ops = 1,
73810 	__NR_BPF_STRUCT_OPS_TYPE = 2,
73811 };
73812 
73813 struct workqueue_attrs {
73814 	int nice;
73815 	cpumask_var_t cpumask;
73816 	bool no_numa;
73817 };
73818 
73819 struct parallel_data;
73820 
73821 struct padata_priv {
73822 	struct list_head list;
73823 	struct parallel_data *pd;
73824 	int cb_cpu;
73825 	unsigned int seq_nr;
73826 	int info;
73827 	void (*parallel)(struct padata_priv *);
73828 	void (*serial)(struct padata_priv *);
73829 };
73830 
73831 struct padata_cpumask {
73832 	cpumask_var_t pcpu;
73833 	cpumask_var_t cbcpu;
73834 };
73835 
73836 struct padata_shell;
73837 
73838 struct padata_list;
73839 
73840 struct padata_serial_queue;
73841 
73842 struct parallel_data {
73843 	struct padata_shell *ps;
73844 	struct padata_list *reorder_list;
73845 	struct padata_serial_queue *squeue;
73846 	refcount_t refcnt;
73847 	unsigned int seq_nr;
73848 	unsigned int processed;
73849 	int cpu;
73850 	struct padata_cpumask cpumask;
73851 	struct work_struct reorder_work;
73852 	long: 64;
73853 	long: 64;
73854 	long: 64;
73855 	long: 64;
73856 	long: 64;
73857 	spinlock_t lock;
73858 	long: 32;
73859 	long: 64;
73860 	long: 64;
73861 	long: 64;
73862 	long: 64;
73863 	long: 64;
73864 	long: 64;
73865 	long: 64;
73866 };
73867 
73868 struct padata_list {
73869 	struct list_head list;
73870 	spinlock_t lock;
73871 };
73872 
73873 struct padata_serial_queue {
73874 	struct padata_list serial;
73875 	struct work_struct work;
73876 	struct parallel_data *pd;
73877 };
73878 
73879 struct padata_instance;
73880 
73881 struct padata_shell {
73882 	struct padata_instance *pinst;
73883 	struct parallel_data *pd;
73884 	struct parallel_data *opd;
73885 	struct list_head list;
73886 };
73887 
73888 struct padata_instance {
73889 	struct hlist_node cpu_online_node;
73890 	struct hlist_node cpu_dead_node;
73891 	struct workqueue_struct *parallel_wq;
73892 	struct workqueue_struct *serial_wq;
73893 	struct list_head pslist;
73894 	struct padata_cpumask cpumask;
73895 	struct kobject kobj;
73896 	struct mutex lock;
73897 	u8 flags;
73898 };
73899 
73900 struct padata_mt_job {
73901 	void (*thread_fn)(long unsigned int, long unsigned int, void *);
73902 	void *fn_arg;
73903 	long unsigned int start;
73904 	long unsigned int size;
73905 	long unsigned int align;
73906 	long unsigned int min_chunk;
73907 	int max_threads;
73908 };
73909 
73910 struct padata_work {
73911 	struct work_struct pw_work;
73912 	struct list_head pw_list;
73913 	void *pw_data;
73914 };
73915 
73916 struct padata_mt_job_state {
73917 	spinlock_t lock;
73918 	struct completion completion;
73919 	struct padata_mt_job *job;
73920 	int nworks;
73921 	int nworks_fini;
73922 	long unsigned int chunk_size;
73923 };
73924 
73925 struct padata_sysfs_entry {
73926 	struct attribute attr;
73927 	ssize_t (*show)(struct padata_instance *, struct attribute *, char *);
73928 	ssize_t (*store)(struct padata_instance *, struct attribute *, const char *, size_t);
73929 };
73930 
73931 struct ksignal {
73932 	struct k_sigaction ka;
73933 	kernel_siginfo_t info;
73934 	int sig;
73935 };
73936 
73937 enum rseq_cpu_id_state {
73938 	RSEQ_CPU_ID_UNINITIALIZED = -1,
73939 	RSEQ_CPU_ID_REGISTRATION_FAILED = -2,
73940 };
73941 
73942 enum rseq_flags {
73943 	RSEQ_FLAG_UNREGISTER = 1,
73944 };
73945 
73946 enum rseq_cs_flags {
73947 	RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT = 1,
73948 	RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL = 2,
73949 	RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE = 4,
73950 };
73951 
73952 struct rseq_cs {
73953 	__u32 version;
73954 	__u32 flags;
73955 	__u64 start_ip;
73956 	__u64 post_commit_offset;
73957 	__u64 abort_ip;
73958 };
73959 
73960 struct trace_event_raw_rseq_update {
73961 	struct trace_entry ent;
73962 	s32 cpu_id;
73963 	char __data[0];
73964 };
73965 
73966 struct trace_event_raw_rseq_ip_fixup {
73967 	struct trace_entry ent;
73968 	long unsigned int regs_ip;
73969 	long unsigned int start_ip;
73970 	long unsigned int post_commit_offset;
73971 	long unsigned int abort_ip;
73972 	char __data[0];
73973 };
73974 
73975 struct trace_event_data_offsets_rseq_update {};
73976 
73977 struct trace_event_data_offsets_rseq_ip_fixup {};
73978 
73979 typedef void (*btf_trace_rseq_update)(void *, struct task_struct *);
73980 
73981 typedef void (*btf_trace_rseq_ip_fixup)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int);
73982 
73983 typedef unsigned int zap_flags_t;
73984 
73985 struct zap_details {
73986 	struct folio *single_folio;
73987 	bool even_cows;
73988 	zap_flags_t zap_flags;
73989 };
73990 
73991 struct mmu_gather_batch {
73992 	struct mmu_gather_batch *next;
73993 	unsigned int nr;
73994 	unsigned int max;
73995 	struct encoded_page *encoded_pages[0];
73996 };
73997 
73998 struct mmu_gather {
73999 	struct mm_struct *mm;
74000 	long unsigned int start;
74001 	long unsigned int end;
74002 	unsigned int fullmm: 1;
74003 	unsigned int need_flush_all: 1;
74004 	unsigned int freed_tables: 1;
74005 	unsigned int delayed_rmap: 1;
74006 	unsigned int cleared_ptes: 1;
74007 	unsigned int cleared_pmds: 1;
74008 	unsigned int cleared_puds: 1;
74009 	unsigned int cleared_p4ds: 1;
74010 	unsigned int vma_exec: 1;
74011 	unsigned int vma_huge: 1;
74012 	unsigned int vma_pfn: 1;
74013 	unsigned int batch_count;
74014 	struct mmu_gather_batch *active;
74015 	struct mmu_gather_batch local;
74016 	struct page *__pages[8];
74017 };
74018 
74019 struct trace_event_raw_oom_score_adj_update {
74020 	struct trace_entry ent;
74021 	pid_t pid;
74022 	char comm[16];
74023 	short int oom_score_adj;
74024 	char __data[0];
74025 };
74026 
74027 struct trace_event_raw_reclaim_retry_zone {
74028 	struct trace_entry ent;
74029 	int node;
74030 	int zone_idx;
74031 	int order;
74032 	long unsigned int reclaimable;
74033 	long unsigned int available;
74034 	long unsigned int min_wmark;
74035 	int no_progress_loops;
74036 	bool wmark_check;
74037 	char __data[0];
74038 };
74039 
74040 struct trace_event_raw_mark_victim {
74041 	struct trace_entry ent;
74042 	int pid;
74043 	char __data[0];
74044 };
74045 
74046 struct trace_event_raw_wake_reaper {
74047 	struct trace_entry ent;
74048 	int pid;
74049 	char __data[0];
74050 };
74051 
74052 struct trace_event_raw_start_task_reaping {
74053 	struct trace_entry ent;
74054 	int pid;
74055 	char __data[0];
74056 };
74057 
74058 struct trace_event_raw_finish_task_reaping {
74059 	struct trace_entry ent;
74060 	int pid;
74061 	char __data[0];
74062 };
74063 
74064 struct trace_event_raw_skip_task_reaping {
74065 	struct trace_entry ent;
74066 	int pid;
74067 	char __data[0];
74068 };
74069 
74070 struct trace_event_raw_compact_retry {
74071 	struct trace_entry ent;
74072 	int order;
74073 	int priority;
74074 	int result;
74075 	int retries;
74076 	int max_retries;
74077 	bool ret;
74078 	char __data[0];
74079 };
74080 
74081 struct trace_event_data_offsets_oom_score_adj_update {};
74082 
74083 struct trace_event_data_offsets_reclaim_retry_zone {};
74084 
74085 struct trace_event_data_offsets_mark_victim {};
74086 
74087 struct trace_event_data_offsets_wake_reaper {};
74088 
74089 struct trace_event_data_offsets_start_task_reaping {};
74090 
74091 struct trace_event_data_offsets_finish_task_reaping {};
74092 
74093 struct trace_event_data_offsets_skip_task_reaping {};
74094 
74095 struct trace_event_data_offsets_compact_retry {};
74096 
74097 typedef void (*btf_trace_oom_score_adj_update)(void *, struct task_struct *);
74098 
74099 typedef void (*btf_trace_reclaim_retry_zone)(void *, struct zoneref *, int, long unsigned int, long unsigned int, long unsigned int, int, bool);
74100 
74101 typedef void (*btf_trace_mark_victim)(void *, int);
74102 
74103 typedef void (*btf_trace_wake_reaper)(void *, int);
74104 
74105 typedef void (*btf_trace_start_task_reaping)(void *, int);
74106 
74107 typedef void (*btf_trace_finish_task_reaping)(void *, int);
74108 
74109 typedef void (*btf_trace_skip_task_reaping)(void *, int);
74110 
74111 typedef void (*btf_trace_compact_retry)(void *, int, enum compact_priority, enum compact_result, int, int, bool);
74112 
74113 struct trace_event_raw_mm_lru_insertion {
74114 	struct trace_entry ent;
74115 	struct folio *folio;
74116 	long unsigned int pfn;
74117 	enum lru_list lru;
74118 	long unsigned int flags;
74119 	char __data[0];
74120 };
74121 
74122 struct trace_event_raw_mm_lru_activate {
74123 	struct trace_entry ent;
74124 	struct folio *folio;
74125 	long unsigned int pfn;
74126 	char __data[0];
74127 };
74128 
74129 struct trace_event_data_offsets_mm_lru_insertion {};
74130 
74131 struct trace_event_data_offsets_mm_lru_activate {};
74132 
74133 typedef void (*btf_trace_mm_lru_insertion)(void *, struct folio *);
74134 
74135 typedef void (*btf_trace_mm_lru_activate)(void *, struct folio *);
74136 
74137 struct lru_rotate {
74138 	local_lock_t lock;
74139 	struct folio_batch fbatch;
74140 };
74141 
74142 struct cpu_fbatches {
74143 	local_lock_t lock;
74144 	struct folio_batch lru_add;
74145 	struct folio_batch lru_deactivate_file;
74146 	struct folio_batch lru_deactivate;
74147 	struct folio_batch lru_lazyfree;
74148 	struct folio_batch activate;
74149 };
74150 
74151 typedef void (*move_fn_t)(struct lruvec *, struct folio *);
74152 
74153 struct node {
74154 	struct device dev;
74155 	struct list_head access_list;
74156 	struct list_head cache_attrs;
74157 	struct device *cache_dev;
74158 };
74159 
74160 struct trace_event_raw_mm_compaction_isolate_template {
74161 	struct trace_entry ent;
74162 	long unsigned int start_pfn;
74163 	long unsigned int end_pfn;
74164 	long unsigned int nr_scanned;
74165 	long unsigned int nr_taken;
74166 	char __data[0];
74167 };
74168 
74169 struct trace_event_raw_mm_compaction_migratepages {
74170 	struct trace_entry ent;
74171 	long unsigned int nr_migrated;
74172 	long unsigned int nr_failed;
74173 	char __data[0];
74174 };
74175 
74176 struct trace_event_raw_mm_compaction_begin {
74177 	struct trace_entry ent;
74178 	long unsigned int zone_start;
74179 	long unsigned int migrate_pfn;
74180 	long unsigned int free_pfn;
74181 	long unsigned int zone_end;
74182 	bool sync;
74183 	char __data[0];
74184 };
74185 
74186 struct trace_event_raw_mm_compaction_end {
74187 	struct trace_entry ent;
74188 	long unsigned int zone_start;
74189 	long unsigned int migrate_pfn;
74190 	long unsigned int free_pfn;
74191 	long unsigned int zone_end;
74192 	bool sync;
74193 	int status;
74194 	char __data[0];
74195 };
74196 
74197 struct trace_event_raw_mm_compaction_try_to_compact_pages {
74198 	struct trace_entry ent;
74199 	int order;
74200 	long unsigned int gfp_mask;
74201 	int prio;
74202 	char __data[0];
74203 };
74204 
74205 struct trace_event_raw_mm_compaction_suitable_template {
74206 	struct trace_entry ent;
74207 	int nid;
74208 	enum zone_type idx;
74209 	int order;
74210 	int ret;
74211 	char __data[0];
74212 };
74213 
74214 struct trace_event_raw_mm_compaction_defer_template {
74215 	struct trace_entry ent;
74216 	int nid;
74217 	enum zone_type idx;
74218 	int order;
74219 	unsigned int considered;
74220 	unsigned int defer_shift;
74221 	int order_failed;
74222 	char __data[0];
74223 };
74224 
74225 struct trace_event_raw_mm_compaction_kcompactd_sleep {
74226 	struct trace_entry ent;
74227 	int nid;
74228 	char __data[0];
74229 };
74230 
74231 struct trace_event_raw_kcompactd_wake_template {
74232 	struct trace_entry ent;
74233 	int nid;
74234 	int order;
74235 	enum zone_type highest_zoneidx;
74236 	char __data[0];
74237 };
74238 
74239 struct trace_event_data_offsets_mm_compaction_isolate_template {};
74240 
74241 struct trace_event_data_offsets_mm_compaction_migratepages {};
74242 
74243 struct trace_event_data_offsets_mm_compaction_begin {};
74244 
74245 struct trace_event_data_offsets_mm_compaction_end {};
74246 
74247 struct trace_event_data_offsets_mm_compaction_try_to_compact_pages {};
74248 
74249 struct trace_event_data_offsets_mm_compaction_suitable_template {};
74250 
74251 struct trace_event_data_offsets_mm_compaction_defer_template {};
74252 
74253 struct trace_event_data_offsets_mm_compaction_kcompactd_sleep {};
74254 
74255 struct trace_event_data_offsets_kcompactd_wake_template {};
74256 
74257 typedef void (*btf_trace_mm_compaction_isolate_migratepages)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int);
74258 
74259 typedef void (*btf_trace_mm_compaction_isolate_freepages)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int);
74260 
74261 typedef void (*btf_trace_mm_compaction_migratepages)(void *, struct compact_control *, unsigned int);
74262 
74263 typedef void (*btf_trace_mm_compaction_begin)(void *, struct compact_control *, long unsigned int, long unsigned int, bool);
74264 
74265 typedef void (*btf_trace_mm_compaction_end)(void *, struct compact_control *, long unsigned int, long unsigned int, bool, int);
74266 
74267 typedef void (*btf_trace_mm_compaction_try_to_compact_pages)(void *, int, gfp_t, int);
74268 
74269 typedef void (*btf_trace_mm_compaction_finished)(void *, struct zone *, int, int);
74270 
74271 typedef void (*btf_trace_mm_compaction_suitable)(void *, struct zone *, int, int);
74272 
74273 typedef void (*btf_trace_mm_compaction_deferred)(void *, struct zone *, int);
74274 
74275 typedef void (*btf_trace_mm_compaction_defer_compaction)(void *, struct zone *, int);
74276 
74277 typedef void (*btf_trace_mm_compaction_defer_reset)(void *, struct zone *, int);
74278 
74279 typedef void (*btf_trace_mm_compaction_kcompactd_sleep)(void *, int);
74280 
74281 typedef void (*btf_trace_mm_compaction_wakeup_kcompactd)(void *, int, int, enum zone_type);
74282 
74283 typedef void (*btf_trace_mm_compaction_kcompactd_wake)(void *, int, int, enum zone_type);
74284 
74285 typedef enum {
74286 	ISOLATE_ABORT = 0,
74287 	ISOLATE_NONE = 1,
74288 	ISOLATE_SUCCESS = 2,
74289 } isolate_migrate_t;
74290 
74291 struct follow_page_context {
74292 	struct dev_pagemap *pgmap;
74293 	unsigned int page_mask;
74294 };
74295 
74296 struct vmap_area {
74297 	long unsigned int va_start;
74298 	long unsigned int va_end;
74299 	struct rb_node rb_node;
74300 	struct list_head list;
74301 	union {
74302 		long unsigned int subtree_max_size;
74303 		struct vm_struct *vm;
74304 	};
74305 };
74306 
74307 typedef unsigned int pgtbl_mod_mask;
74308 
74309 typedef unsigned int kasan_vmalloc_flags_t;
74310 
74311 enum memcg_stat_item {
74312 	MEMCG_SWAP = 43,
74313 	MEMCG_SOCK = 44,
74314 	MEMCG_PERCPU_B = 45,
74315 	MEMCG_VMALLOC = 46,
74316 	MEMCG_KMEM = 47,
74317 	MEMCG_ZSWAP_B = 48,
74318 	MEMCG_ZSWAPPED = 49,
74319 	MEMCG_NR_STAT = 50,
74320 };
74321 
74322 struct rb_augment_callbacks {
74323 	void (*propagate)(struct rb_node *, struct rb_node *);
74324 	void (*copy)(struct rb_node *, struct rb_node *);
74325 	void (*rotate)(struct rb_node *, struct rb_node *);
74326 };
74327 
74328 struct trace_event_raw_alloc_vmap_area {
74329 	struct trace_entry ent;
74330 	long unsigned int addr;
74331 	long unsigned int size;
74332 	long unsigned int align;
74333 	long unsigned int vstart;
74334 	long unsigned int vend;
74335 	int failed;
74336 	char __data[0];
74337 };
74338 
74339 struct trace_event_raw_purge_vmap_area_lazy {
74340 	struct trace_entry ent;
74341 	long unsigned int start;
74342 	long unsigned int end;
74343 	unsigned int npurged;
74344 	char __data[0];
74345 };
74346 
74347 struct trace_event_raw_free_vmap_area_noflush {
74348 	struct trace_entry ent;
74349 	long unsigned int va_start;
74350 	long unsigned int nr_lazy;
74351 	long unsigned int nr_lazy_max;
74352 	char __data[0];
74353 };
74354 
74355 struct trace_event_data_offsets_alloc_vmap_area {};
74356 
74357 struct trace_event_data_offsets_purge_vmap_area_lazy {};
74358 
74359 struct trace_event_data_offsets_free_vmap_area_noflush {};
74360 
74361 typedef void (*btf_trace_alloc_vmap_area)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, int);
74362 
74363 typedef void (*btf_trace_purge_vmap_area_lazy)(void *, long unsigned int, long unsigned int, unsigned int);
74364 
74365 typedef void (*btf_trace_free_vmap_area_noflush)(void *, long unsigned int, long unsigned int, long unsigned int);
74366 
74367 struct vfree_deferred {
74368 	struct llist_head list;
74369 	struct work_struct wq;
74370 };
74371 
74372 enum fit_type {
74373 	NOTHING_FIT = 0,
74374 	FL_FIT_TYPE = 1,
74375 	LE_FIT_TYPE = 2,
74376 	RE_FIT_TYPE = 3,
74377 	NE_FIT_TYPE = 4,
74378 };
74379 
74380 struct vmap_block_queue {
74381 	spinlock_t lock;
74382 	struct list_head free;
74383 };
74384 
74385 struct vmap_block {
74386 	spinlock_t lock;
74387 	struct vmap_area *va;
74388 	long unsigned int free;
74389 	long unsigned int dirty;
74390 	long unsigned int dirty_min;
74391 	long unsigned int dirty_max;
74392 	struct list_head free_list;
74393 	struct callback_head callback_head;
74394 	struct list_head purge;
74395 };
74396 
74397 typedef long unsigned int pte_marker;
74398 
74399 struct madvise_walk_private {
74400 	struct mmu_gather *tlb;
74401 	bool pageout;
74402 };
74403 
74404 struct swap_slots_cache {
74405 	bool lock_initialized;
74406 	struct mutex alloc_lock;
74407 	swp_entry_t *slots;
74408 	int nr;
74409 	int cur;
74410 	spinlock_t free_lock;
74411 	swp_entry_t *slots_ret;
74412 	int n_ret;
74413 };
74414 
74415 struct dma_pool {
74416 	struct list_head page_list;
74417 	spinlock_t lock;
74418 	size_t size;
74419 	struct device *dev;
74420 	size_t allocation;
74421 	size_t boundary;
74422 	char name[32];
74423 	struct list_head pools;
74424 };
74425 
74426 struct dma_page {
74427 	struct list_head page_list;
74428 	void *vaddr;
74429 	dma_addr_t dma;
74430 	unsigned int in_use;
74431 	unsigned int offset;
74432 };
74433 
74434 struct nodemask_scratch {
74435 	nodemask_t mask1;
74436 	nodemask_t mask2;
74437 };
74438 
74439 enum {
74440 	MPOL_DEFAULT = 0,
74441 	MPOL_PREFERRED = 1,
74442 	MPOL_BIND = 2,
74443 	MPOL_INTERLEAVE = 3,
74444 	MPOL_LOCAL = 4,
74445 	MPOL_PREFERRED_MANY = 5,
74446 	MPOL_MAX = 6,
74447 };
74448 
74449 struct sp_node {
74450 	struct rb_node nd;
74451 	long unsigned int start;
74452 	long unsigned int end;
74453 	struct mempolicy *policy;
74454 };
74455 
74456 struct shared_policy {
74457 	struct rb_root root;
74458 	rwlock_t lock;
74459 };
74460 
74461 struct mempolicy_operations {
74462 	int (*create)(struct mempolicy *, const nodemask_t *);
74463 	void (*rebind)(struct mempolicy *, const nodemask_t *);
74464 };
74465 
74466 struct queue_pages {
74467 	struct list_head *pagelist;
74468 	long unsigned int flags;
74469 	nodemask_t *nmask;
74470 	long unsigned int start;
74471 	long unsigned int end;
74472 	struct vm_area_struct *first;
74473 };
74474 
74475 typedef void (*swap_r_func_t)(void *, void *, int, const void *);
74476 
74477 typedef int (*cmp_r_func_t)(const void *, const void *, const void *);
74478 
74479 enum stat_item {
74480 	ALLOC_FASTPATH = 0,
74481 	ALLOC_SLOWPATH = 1,
74482 	FREE_FASTPATH = 2,
74483 	FREE_SLOWPATH = 3,
74484 	FREE_FROZEN = 4,
74485 	FREE_ADD_PARTIAL = 5,
74486 	FREE_REMOVE_PARTIAL = 6,
74487 	ALLOC_FROM_PARTIAL = 7,
74488 	ALLOC_SLAB = 8,
74489 	ALLOC_REFILL = 9,
74490 	ALLOC_NODE_MISMATCH = 10,
74491 	FREE_SLAB = 11,
74492 	CPUSLAB_FLUSH = 12,
74493 	DEACTIVATE_FULL = 13,
74494 	DEACTIVATE_EMPTY = 14,
74495 	DEACTIVATE_TO_HEAD = 15,
74496 	DEACTIVATE_TO_TAIL = 16,
74497 	DEACTIVATE_REMOTE_FREES = 17,
74498 	DEACTIVATE_BYPASS = 18,
74499 	ORDER_FALLBACK = 19,
74500 	CMPXCHG_DOUBLE_CPU_FAIL = 20,
74501 	CMPXCHG_DOUBLE_FAIL = 21,
74502 	CPU_PARTIAL_ALLOC = 22,
74503 	CPU_PARTIAL_FREE = 23,
74504 	CPU_PARTIAL_NODE = 24,
74505 	CPU_PARTIAL_DRAIN = 25,
74506 	NR_SLUB_STAT_ITEMS = 26,
74507 };
74508 
74509 struct memory_notify {
74510 	long unsigned int start_pfn;
74511 	long unsigned int nr_pages;
74512 	int status_change_nid_normal;
74513 	int status_change_nid;
74514 };
74515 
74516 struct partial_context {
74517 	struct slab **slab;
74518 	gfp_t flags;
74519 	unsigned int orig_size;
74520 };
74521 
74522 struct track {
74523 	long unsigned int addr;
74524 	depot_stack_handle_t handle;
74525 	int cpu;
74526 	int pid;
74527 	long unsigned int when;
74528 };
74529 
74530 enum track_item {
74531 	TRACK_ALLOC = 0,
74532 	TRACK_FREE = 1,
74533 };
74534 
74535 struct slub_flush_work {
74536 	struct work_struct work;
74537 	struct kmem_cache *s;
74538 	bool skip;
74539 };
74540 
74541 struct detached_freelist {
74542 	struct slab *slab;
74543 	void *tail;
74544 	void *freelist;
74545 	int cnt;
74546 	struct kmem_cache *s;
74547 };
74548 
74549 struct location {
74550 	depot_stack_handle_t handle;
74551 	long unsigned int count;
74552 	long unsigned int addr;
74553 	long unsigned int waste;
74554 	long long int sum_time;
74555 	long int min_time;
74556 	long int max_time;
74557 	long int min_pid;
74558 	long int max_pid;
74559 	long unsigned int cpus[1];
74560 	nodemask_t nodes;
74561 };
74562 
74563 struct loc_track {
74564 	long unsigned int max;
74565 	long unsigned int count;
74566 	struct location *loc;
74567 	loff_t idx;
74568 };
74569 
74570 enum slab_stat_type {
74571 	SL_ALL = 0,
74572 	SL_PARTIAL = 1,
74573 	SL_CPU = 2,
74574 	SL_OBJECTS = 3,
74575 	SL_TOTAL = 4,
74576 };
74577 
74578 struct slab_attribute {
74579 	struct attribute attr;
74580 	ssize_t (*show)(struct kmem_cache *, char *);
74581 	ssize_t (*store)(struct kmem_cache *, const char *, size_t);
74582 };
74583 
74584 struct saved_alias {
74585 	struct kmem_cache *s;
74586 	const char *name;
74587 	struct saved_alias *next;
74588 };
74589 
74590 enum slab_modes {
74591 	M_NONE = 0,
74592 	M_PARTIAL = 1,
74593 	M_FREE = 2,
74594 	M_FULL_NOLIST = 3,
74595 };
74596 
74597 enum vmpressure_levels {
74598 	VMPRESSURE_LOW = 0,
74599 	VMPRESSURE_MEDIUM = 1,
74600 	VMPRESSURE_CRITICAL = 2,
74601 	VMPRESSURE_NUM_LEVELS = 3,
74602 };
74603 
74604 enum vmpressure_modes {
74605 	VMPRESSURE_NO_PASSTHROUGH = 0,
74606 	VMPRESSURE_HIERARCHY = 1,
74607 	VMPRESSURE_LOCAL = 2,
74608 	VMPRESSURE_NUM_MODES = 3,
74609 };
74610 
74611 struct vmpressure_event {
74612 	struct eventfd_ctx *efd;
74613 	enum vmpressure_levels level;
74614 	enum vmpressure_modes mode;
74615 	struct list_head node;
74616 };
74617 
74618 struct swap_cgroup_ctrl {
74619 	struct page **map;
74620 	long unsigned int length;
74621 	spinlock_t lock;
74622 };
74623 
74624 struct swap_cgroup {
74625 	short unsigned int id;
74626 };
74627 
74628 struct zpool {
74629 	struct zpool_driver *driver;
74630 	void *pool;
74631 };
74632 
74633 enum zs_mapmode {
74634 	ZS_MM_RW = 0,
74635 	ZS_MM_RO = 1,
74636 	ZS_MM_WO = 2,
74637 };
74638 
74639 struct zs_pool_stats {
74640 	atomic_long_t pages_compacted;
74641 };
74642 
74643 enum fullness_group {
74644 	ZS_EMPTY = 0,
74645 	ZS_ALMOST_EMPTY = 1,
74646 	ZS_ALMOST_FULL = 2,
74647 	ZS_FULL = 3,
74648 	NR_ZS_FULLNESS = 4,
74649 };
74650 
74651 enum class_stat_type {
74652 	CLASS_EMPTY = 0,
74653 	CLASS_ALMOST_EMPTY = 1,
74654 	CLASS_ALMOST_FULL = 2,
74655 	CLASS_FULL = 3,
74656 	OBJ_ALLOCATED = 4,
74657 	OBJ_USED = 5,
74658 	NR_ZS_STAT_TYPE = 6,
74659 };
74660 
74661 struct zs_size_stat {
74662 	long unsigned int objs[6];
74663 };
74664 
74665 struct size_class {
74666 	struct list_head fullness_list[4];
74667 	int size;
74668 	int objs_per_zspage;
74669 	int pages_per_zspage;
74670 	unsigned int index;
74671 	struct zs_size_stat stats;
74672 };
74673 
74674 struct link_free {
74675 	union {
74676 		long unsigned int next;
74677 		long unsigned int handle;
74678 		long unsigned int deferred_handle;
74679 	};
74680 };
74681 
74682 struct zs_pool {
74683 	const char *name;
74684 	struct size_class *size_class[257];
74685 	struct kmem_cache *handle_cachep;
74686 	struct kmem_cache *zspage_cachep;
74687 	atomic_long_t pages_allocated;
74688 	struct zs_pool_stats stats;
74689 	struct shrinker shrinker;
74690 	struct list_head lru;
74691 	struct zpool *zpool;
74692 	const struct zpool_ops *zpool_ops;
74693 	struct work_struct free_work;
74694 	spinlock_t lock;
74695 };
74696 
74697 struct zspage {
74698 	struct {
74699 		unsigned int huge: 1;
74700 		unsigned int fullness: 2;
74701 		unsigned int class: 9;
74702 		unsigned int isolated: 3;
74703 		unsigned int magic: 8;
74704 	};
74705 	unsigned int inuse;
74706 	unsigned int freeobj;
74707 	struct page *first_page;
74708 	struct list_head list;
74709 	struct list_head lru;
74710 	bool under_reclaim;
74711 	struct zs_pool *pool;
74712 	rwlock_t lock;
74713 };
74714 
74715 struct mapping_area {
74716 	local_lock_t lock;
74717 	char *vm_buf;
74718 	char *vm_addr;
74719 	enum zs_mapmode vm_mm;
74720 };
74721 
74722 struct zs_compact_control {
74723 	struct page *s_page;
74724 	struct page *d_page;
74725 	int obj_idx;
74726 };
74727 
74728 enum mcopy_atomic_mode {
74729 	MCOPY_ATOMIC_NORMAL = 0,
74730 	MCOPY_ATOMIC_ZEROPAGE = 1,
74731 	MCOPY_ATOMIC_CONTINUE = 2,
74732 };
74733 
74734 struct linux_dirent64 {
74735 	u64 d_ino;
74736 	s64 d_off;
74737 	short unsigned int d_reclen;
74738 	unsigned char d_type;
74739 	char d_name[0];
74740 };
74741 
74742 struct linux_dirent {
74743 	long unsigned int d_ino;
74744 	long unsigned int d_off;
74745 	short unsigned int d_reclen;
74746 	char d_name[1];
74747 };
74748 
74749 struct getdents_callback___2 {
74750 	struct dir_context ctx;
74751 	struct linux_dirent *current_dir;
74752 	int prev_reclen;
74753 	int count;
74754 	int error;
74755 };
74756 
74757 struct getdents_callback64 {
74758 	struct dir_context ctx;
74759 	struct linux_dirent64 *current_dir;
74760 	int prev_reclen;
74761 	int count;
74762 	int error;
74763 };
74764 
74765 enum dentry_d_lock_class {
74766 	DENTRY_D_LOCK_NORMAL = 0,
74767 	DENTRY_D_LOCK_NESTED = 1,
74768 };
74769 
74770 struct dentry_stat_t {
74771 	long int nr_dentry;
74772 	long int nr_unused;
74773 	long int age_limit;
74774 	long int want_pages;
74775 	long int nr_negative;
74776 	long int dummy;
74777 };
74778 
74779 struct external_name {
74780 	union {
74781 		atomic_t count;
74782 		struct callback_head head;
74783 	} u;
74784 	unsigned char name[0];
74785 };
74786 
74787 enum d_walk_ret {
74788 	D_WALK_CONTINUE = 0,
74789 	D_WALK_QUIT = 1,
74790 	D_WALK_NORETRY = 2,
74791 	D_WALK_SKIP = 3,
74792 };
74793 
74794 struct check_mount {
74795 	struct vfsmount *mnt;
74796 	unsigned int mounted;
74797 };
74798 
74799 struct select_data {
74800 	struct dentry *start;
74801 	union {
74802 		long int found;
74803 		struct dentry *victim;
74804 	};
74805 	struct list_head dispose;
74806 };
74807 
74808 struct constant_table {
74809 	const char *name;
74810 	int value;
74811 };
74812 
74813 enum legacy_fs_param {
74814 	LEGACY_FS_UNSET_PARAMS = 0,
74815 	LEGACY_FS_MONOLITHIC_PARAMS = 1,
74816 	LEGACY_FS_INDIVIDUAL_PARAMS = 2,
74817 };
74818 
74819 struct legacy_fs_context {
74820 	char *legacy_data;
74821 	size_t data_size;
74822 	enum legacy_fs_param param_type;
74823 };
74824 
74825 typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int);
74826 
74827 struct decrypt_bh_ctx {
74828 	struct work_struct work;
74829 	struct buffer_head *bh;
74830 };
74831 
74832 struct bh_lru {
74833 	struct buffer_head *bhs[16];
74834 };
74835 
74836 struct bh_accounting {
74837 	int nr;
74838 	int ratelimit;
74839 };
74840 
74841 struct fanotify_event_metadata {
74842 	__u32 event_len;
74843 	__u8 vers;
74844 	__u8 reserved;
74845 	__u16 metadata_len;
74846 	__u64 mask;
74847 	__s32 fd;
74848 	__s32 pid;
74849 };
74850 
74851 struct fanotify_event_info_header {
74852 	__u8 info_type;
74853 	__u8 pad;
74854 	__u16 len;
74855 };
74856 
74857 struct fanotify_event_info_fid {
74858 	struct fanotify_event_info_header hdr;
74859 	__kernel_fsid_t fsid;
74860 	unsigned char handle[0];
74861 };
74862 
74863 struct fanotify_event_info_pidfd {
74864 	struct fanotify_event_info_header hdr;
74865 	__s32 pidfd;
74866 };
74867 
74868 struct fanotify_event_info_error {
74869 	struct fanotify_event_info_header hdr;
74870 	__s32 error;
74871 	__u32 error_count;
74872 };
74873 
74874 struct fanotify_response {
74875 	__s32 fd;
74876 	__u32 response;
74877 };
74878 
74879 struct kstatfs {
74880 	long int f_type;
74881 	long int f_bsize;
74882 	u64 f_blocks;
74883 	u64 f_bfree;
74884 	u64 f_bavail;
74885 	u64 f_files;
74886 	u64 f_ffree;
74887 	__kernel_fsid_t f_fsid;
74888 	long int f_namelen;
74889 	long int f_frsize;
74890 	long int f_flags;
74891 	long int f_spare[4];
74892 };
74893 
74894 enum {
74895 	FAN_EVENT_INIT = 0,
74896 	FAN_EVENT_REPORTED = 1,
74897 	FAN_EVENT_ANSWERED = 2,
74898 	FAN_EVENT_CANCELED = 3,
74899 };
74900 
74901 struct fanotify_fh {
74902 	u8 type;
74903 	u8 len;
74904 	u8 flags;
74905 	u8 pad;
74906 	unsigned char buf[0];
74907 };
74908 
74909 struct fanotify_info {
74910 	u8 dir_fh_totlen;
74911 	u8 dir2_fh_totlen;
74912 	u8 file_fh_totlen;
74913 	u8 name_len;
74914 	u8 name2_len;
74915 	u8 pad[3];
74916 	unsigned char buf[0];
74917 };
74918 
74919 enum fanotify_event_type {
74920 	FANOTIFY_EVENT_TYPE_FID = 0,
74921 	FANOTIFY_EVENT_TYPE_FID_NAME = 1,
74922 	FANOTIFY_EVENT_TYPE_PATH = 2,
74923 	FANOTIFY_EVENT_TYPE_PATH_PERM = 3,
74924 	FANOTIFY_EVENT_TYPE_OVERFLOW = 4,
74925 	FANOTIFY_EVENT_TYPE_FS_ERROR = 5,
74926 	__FANOTIFY_EVENT_TYPE_NUM = 6,
74927 };
74928 
74929 struct fanotify_event {
74930 	struct fsnotify_event fse;
74931 	struct hlist_node merge_list;
74932 	u32 mask;
74933 	struct {
74934 		unsigned int type: 3;
74935 		unsigned int hash: 29;
74936 	};
74937 	struct pid *pid;
74938 };
74939 
74940 struct fanotify_fid_event {
74941 	struct fanotify_event fae;
74942 	__kernel_fsid_t fsid;
74943 	struct {
74944 		struct fanotify_fh object_fh;
74945 		unsigned char _inline_fh_buf[12];
74946 	};
74947 };
74948 
74949 struct fanotify_name_event {
74950 	struct fanotify_event fae;
74951 	__kernel_fsid_t fsid;
74952 	struct fanotify_info info;
74953 };
74954 
74955 struct fanotify_error_event {
74956 	struct fanotify_event fae;
74957 	s32 error;
74958 	u32 err_count;
74959 	__kernel_fsid_t fsid;
74960 	struct {
74961 		struct fanotify_fh object_fh;
74962 		unsigned char _inline_fh_buf[128];
74963 	};
74964 };
74965 
74966 struct fanotify_path_event {
74967 	struct fanotify_event fae;
74968 	struct path path;
74969 };
74970 
74971 struct fanotify_perm_event {
74972 	struct fanotify_event fae;
74973 	struct path path;
74974 	short unsigned int response;
74975 	short unsigned int state;
74976 	int fd;
74977 };
74978 
74979 struct eventfd_ctx {
74980 	struct kref kref;
74981 	wait_queue_head_t wqh;
74982 	__u64 count;
74983 	unsigned int flags;
74984 	int id;
74985 };
74986 
74987 struct fscrypt_str {
74988 	unsigned char *name;
74989 	u32 len;
74990 };
74991 
74992 struct fscrypt_name {
74993 	const struct qstr *usr_fname;
74994 	struct fscrypt_str disk_name;
74995 	u32 hash;
74996 	u32 minor_hash;
74997 	struct fscrypt_str crypto_buf;
74998 	bool is_nokey_name;
74999 };
75000 
75001 struct fscrypt_nokey_name {
75002 	u32 dirhash[2];
75003 	u8 bytes[149];
75004 	u8 sha256[32];
75005 };
75006 
75007 struct fscrypt_symlink_data {
75008 	__le16 len;
75009 	char encrypted_path[1];
75010 } __attribute__((packed));
75011 
75012 struct fscrypt_get_policy_ex_arg {
75013 	__u64 policy_size;
75014 	union {
75015 		__u8 version;
75016 		struct fscrypt_policy_v1 v1;
75017 		struct fscrypt_policy_v2 v2;
75018 	} policy;
75019 };
75020 
75021 struct fscrypt_dummy_policy {
75022 	const union fscrypt_policy *policy;
75023 };
75024 
75025 struct ahash_request;
75026 
75027 struct crypto_ahash {
75028 	int (*init)(struct ahash_request *);
75029 	int (*update)(struct ahash_request *);
75030 	int (*final)(struct ahash_request *);
75031 	int (*finup)(struct ahash_request *);
75032 	int (*digest)(struct ahash_request *);
75033 	int (*export)(struct ahash_request *, void *);
75034 	int (*import)(struct ahash_request *, const void *);
75035 	int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int);
75036 	unsigned int reqsize;
75037 	struct crypto_tfm base;
75038 };
75039 
75040 struct hash_alg_common {
75041 	unsigned int digestsize;
75042 	unsigned int statesize;
75043 	struct crypto_alg base;
75044 };
75045 
75046 struct ahash_request {
75047 	struct crypto_async_request base;
75048 	unsigned int nbytes;
75049 	struct scatterlist *src;
75050 	u8 *result;
75051 	void *priv;
75052 	void *__ctx[0];
75053 };
75054 
75055 struct fsverity_descriptor {
75056 	__u8 version;
75057 	__u8 hash_algorithm;
75058 	__u8 log_blocksize;
75059 	__u8 salt_size;
75060 	__le32 sig_size;
75061 	__le64 data_size;
75062 	__u8 root_hash[64];
75063 	__u8 salt[32];
75064 	__u8 __reserved[144];
75065 	__u8 signature[0];
75066 };
75067 
75068 struct flock64 {
75069 	short int l_type;
75070 	short int l_whence;
75071 	__kernel_loff_t l_start;
75072 	__kernel_loff_t l_len;
75073 	__kernel_pid_t l_pid;
75074 };
75075 
75076 struct trace_event_raw_locks_get_lock_context {
75077 	struct trace_entry ent;
75078 	long unsigned int i_ino;
75079 	dev_t s_dev;
75080 	unsigned char type;
75081 	struct file_lock_context *ctx;
75082 	char __data[0];
75083 };
75084 
75085 struct trace_event_raw_filelock_lock {
75086 	struct trace_entry ent;
75087 	struct file_lock *fl;
75088 	long unsigned int i_ino;
75089 	dev_t s_dev;
75090 	struct file_lock *fl_blocker;
75091 	fl_owner_t fl_owner;
75092 	unsigned int fl_pid;
75093 	unsigned int fl_flags;
75094 	unsigned char fl_type;
75095 	loff_t fl_start;
75096 	loff_t fl_end;
75097 	int ret;
75098 	char __data[0];
75099 };
75100 
75101 struct trace_event_raw_filelock_lease {
75102 	struct trace_entry ent;
75103 	struct file_lock *fl;
75104 	long unsigned int i_ino;
75105 	dev_t s_dev;
75106 	struct file_lock *fl_blocker;
75107 	fl_owner_t fl_owner;
75108 	unsigned int fl_flags;
75109 	unsigned char fl_type;
75110 	long unsigned int fl_break_time;
75111 	long unsigned int fl_downgrade_time;
75112 	char __data[0];
75113 };
75114 
75115 struct trace_event_raw_generic_add_lease {
75116 	struct trace_entry ent;
75117 	long unsigned int i_ino;
75118 	int wcount;
75119 	int rcount;
75120 	int icount;
75121 	dev_t s_dev;
75122 	fl_owner_t fl_owner;
75123 	unsigned int fl_flags;
75124 	unsigned char fl_type;
75125 	char __data[0];
75126 };
75127 
75128 struct trace_event_raw_leases_conflict {
75129 	struct trace_entry ent;
75130 	void *lease;
75131 	void *breaker;
75132 	unsigned int l_fl_flags;
75133 	unsigned int b_fl_flags;
75134 	unsigned char l_fl_type;
75135 	unsigned char b_fl_type;
75136 	bool conflict;
75137 	char __data[0];
75138 };
75139 
75140 struct trace_event_data_offsets_locks_get_lock_context {};
75141 
75142 struct trace_event_data_offsets_filelock_lock {};
75143 
75144 struct trace_event_data_offsets_filelock_lease {};
75145 
75146 struct trace_event_data_offsets_generic_add_lease {};
75147 
75148 struct trace_event_data_offsets_leases_conflict {};
75149 
75150 typedef void (*btf_trace_locks_get_lock_context)(void *, struct inode *, int, struct file_lock_context *);
75151 
75152 typedef void (*btf_trace_posix_lock_inode)(void *, struct inode *, struct file_lock *, int);
75153 
75154 typedef void (*btf_trace_fcntl_setlk)(void *, struct inode *, struct file_lock *, int);
75155 
75156 typedef void (*btf_trace_locks_remove_posix)(void *, struct inode *, struct file_lock *, int);
75157 
75158 typedef void (*btf_trace_flock_lock_inode)(void *, struct inode *, struct file_lock *, int);
75159 
75160 typedef void (*btf_trace_break_lease_noblock)(void *, struct inode *, struct file_lock *);
75161 
75162 typedef void (*btf_trace_break_lease_block)(void *, struct inode *, struct file_lock *);
75163 
75164 typedef void (*btf_trace_break_lease_unblock)(void *, struct inode *, struct file_lock *);
75165 
75166 typedef void (*btf_trace_generic_delete_lease)(void *, struct inode *, struct file_lock *);
75167 
75168 typedef void (*btf_trace_time_out_leases)(void *, struct inode *, struct file_lock *);
75169 
75170 typedef void (*btf_trace_generic_add_lease)(void *, struct inode *, struct file_lock *);
75171 
75172 typedef void (*btf_trace_leases_conflict)(void *, bool, struct file_lock *, struct file_lock *);
75173 
75174 struct file_lock_list_struct {
75175 	spinlock_t lock;
75176 	struct hlist_head hlist;
75177 };
75178 
75179 struct locks_iterator {
75180 	int li_cpu;
75181 	loff_t li_pos;
75182 };
75183 
75184 struct core_vma_metadata;
75185 
75186 struct coredump_params {
75187 	const kernel_siginfo_t *siginfo;
75188 	struct file *file;
75189 	long unsigned int limit;
75190 	long unsigned int mm_flags;
75191 	int cpu;
75192 	loff_t written;
75193 	loff_t pos;
75194 	loff_t to_skip;
75195 	int vma_count;
75196 	size_t vma_data_size;
75197 	struct core_vma_metadata *vma_meta;
75198 };
75199 
75200 struct core_vma_metadata {
75201 	long unsigned int start;
75202 	long unsigned int end;
75203 	long unsigned int flags;
75204 	long unsigned int dump_size;
75205 	long unsigned int pgoff;
75206 	struct file *file;
75207 };
75208 
75209 struct core_name {
75210 	char *corename;
75211 	int used;
75212 	int size;
75213 };
75214 
75215 struct folio_iter {
75216 	struct folio *folio;
75217 	size_t offset;
75218 	size_t length;
75219 	struct folio *_next;
75220 	size_t _seg_count;
75221 	int _i;
75222 };
75223 
75224 struct iomap_ioend {
75225 	struct list_head io_list;
75226 	u16 io_type;
75227 	u16 io_flags;
75228 	u32 io_folios;
75229 	struct inode *io_inode;
75230 	size_t io_size;
75231 	loff_t io_offset;
75232 	sector_t io_sector;
75233 	struct bio *io_bio;
75234 	struct bio io_inline_bio;
75235 };
75236 
75237 struct iomap_writepage_ctx;
75238 
75239 struct iomap_writeback_ops {
75240 	int (*map_blocks)(struct iomap_writepage_ctx *, struct inode *, loff_t);
75241 	int (*prepare_ioend)(struct iomap_ioend *, int);
75242 	void (*discard_folio)(struct folio *, loff_t);
75243 };
75244 
75245 struct iomap_writepage_ctx {
75246 	struct iomap iomap;
75247 	struct iomap_ioend *ioend;
75248 	const struct iomap_writeback_ops *ops;
75249 };
75250 
75251 typedef int (*writepage_t)(struct page *, struct writeback_control *, void *);
75252 
75253 typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *);
75254 
75255 struct iomap_page {
75256 	atomic_t read_bytes_pending;
75257 	atomic_t write_bytes_pending;
75258 	spinlock_t uptodate_lock;
75259 	long unsigned int uptodate[0];
75260 };
75261 
75262 struct iomap_readpage_ctx {
75263 	struct folio *cur_folio;
75264 	bool cur_folio_in_bio;
75265 	struct bio *bio;
75266 	struct readahead_control *rac;
75267 };
75268 
75269 struct iomap_swapfile_info {
75270 	struct iomap iomap;
75271 	struct swap_info_struct *sis;
75272 	uint64_t lowest_ppage;
75273 	uint64_t highest_ppage;
75274 	long unsigned int nr_pages;
75275 	int nr_extents;
75276 	struct file *file;
75277 };
75278 
75279 struct proc_maps_private {
75280 	struct inode *inode;
75281 	struct task_struct *task;
75282 	struct mm_struct *mm;
75283 	struct vma_iterator iter;
75284 	struct mempolicy *task_mempolicy;
75285 };
75286 
75287 struct mem_size_stats {
75288 	long unsigned int resident;
75289 	long unsigned int shared_clean;
75290 	long unsigned int shared_dirty;
75291 	long unsigned int private_clean;
75292 	long unsigned int private_dirty;
75293 	long unsigned int referenced;
75294 	long unsigned int anonymous;
75295 	long unsigned int lazyfree;
75296 	long unsigned int anonymous_thp;
75297 	long unsigned int shmem_thp;
75298 	long unsigned int file_thp;
75299 	long unsigned int swap;
75300 	long unsigned int shared_hugetlb;
75301 	long unsigned int private_hugetlb;
75302 	u64 pss;
75303 	u64 pss_anon;
75304 	u64 pss_file;
75305 	u64 pss_shmem;
75306 	u64 pss_dirty;
75307 	u64 pss_locked;
75308 	u64 swap_pss;
75309 };
75310 
75311 enum clear_refs_types {
75312 	CLEAR_REFS_ALL = 1,
75313 	CLEAR_REFS_ANON = 2,
75314 	CLEAR_REFS_MAPPED = 3,
75315 	CLEAR_REFS_SOFT_DIRTY = 4,
75316 	CLEAR_REFS_MM_HIWATER_RSS = 5,
75317 	CLEAR_REFS_LAST = 6,
75318 };
75319 
75320 struct clear_refs_private {
75321 	enum clear_refs_types type;
75322 };
75323 
75324 typedef struct {
75325 	u64 pme;
75326 } pagemap_entry_t;
75327 
75328 struct pagemapread {
75329 	int pos;
75330 	int len;
75331 	pagemap_entry_t *buffer;
75332 	bool show_pfn;
75333 };
75334 
75335 struct numa_maps {
75336 	long unsigned int pages;
75337 	long unsigned int anon;
75338 	long unsigned int active;
75339 	long unsigned int writeback;
75340 	long unsigned int mapcount_max;
75341 	long unsigned int dirty;
75342 	long unsigned int swapcache;
75343 	long unsigned int node[64];
75344 };
75345 
75346 struct numa_maps_private {
75347 	struct proc_maps_private proc_maps;
75348 	struct numa_maps md;
75349 };
75350 
75351 typedef struct dentry *instantiate_t(struct dentry *, struct task_struct *, const void *);
75352 
75353 struct fd_data {
75354 	fmode_t mode;
75355 	unsigned int fd;
75356 };
75357 
75358 struct sysctl_alias {
75359 	const char *kernel_param;
75360 	const char *sysctl_param;
75361 };
75362 
75363 struct kernfs_global_locks {
75364 	struct mutex open_file_mutex[1024];
75365 };
75366 
75367 enum kernfs_root_flag {
75368 	KERNFS_ROOT_CREATE_DEACTIVATED = 1,
75369 	KERNFS_ROOT_EXTRA_OPEN_PERM_CHECK = 2,
75370 	KERNFS_ROOT_SUPPORT_EXPORTOP = 4,
75371 	KERNFS_ROOT_SUPPORT_USER_XATTR = 8,
75372 };
75373 
75374 struct kernfs_open_node {
75375 	struct callback_head callback_head;
75376 	atomic_t event;
75377 	wait_queue_head_t poll;
75378 	struct list_head files;
75379 	unsigned int nr_mmapped;
75380 	unsigned int nr_to_release;
75381 };
75382 
75383 struct kernfs_super_info {
75384 	struct super_block *sb;
75385 	struct kernfs_root *root;
75386 	const void *ns;
75387 	struct list_head node;
75388 };
75389 
75390 struct configfs_buffer {
75391 	size_t count;
75392 	loff_t pos;
75393 	char *page;
75394 	struct configfs_item_operations *ops;
75395 	struct mutex mutex;
75396 	int needs_read_fill;
75397 	bool read_in_progress;
75398 	bool write_in_progress;
75399 	char *bin_buffer;
75400 	int bin_buffer_size;
75401 	int cb_max_size;
75402 	struct config_item *item;
75403 	struct module *owner;
75404 	union {
75405 		struct configfs_attribute *attr;
75406 		struct configfs_bin_attribute *bin_attr;
75407 	};
75408 };
75409 
75410 struct ramfs_mount_opts {
75411 	umode_t mode;
75412 };
75413 
75414 struct ramfs_fs_info {
75415 	struct ramfs_mount_opts mount_opts;
75416 };
75417 
75418 enum ramfs_param {
75419 	Opt_mode = 0,
75420 };
75421 
75422 struct utf8data;
75423 
75424 struct utf8data_table;
75425 
75426 struct unicode_map {
75427 	unsigned int version;
75428 	const struct utf8data *ntab[2];
75429 	const struct utf8data_table *tables;
75430 };
75431 
75432 enum utf8_normalization {
75433 	UTF8_NFDI = 0,
75434 	UTF8_NFDICF = 1,
75435 	UTF8_NMAX = 2,
75436 };
75437 
75438 struct utf8data {
75439 	unsigned int maxage;
75440 	unsigned int offset;
75441 };
75442 
75443 struct utf8data_table {
75444 	const unsigned int *utf8agetab;
75445 	int utf8agetab_size;
75446 	const struct utf8data *utf8nfdicfdata;
75447 	int utf8nfdicfdata_size;
75448 	const struct utf8data *utf8nfdidata;
75449 	int utf8nfdidata_size;
75450 	const unsigned char *utf8data;
75451 };
75452 
75453 struct miscdevice {
75454 	int minor;
75455 	const char *name;
75456 	const struct file_operations *fops;
75457 	struct list_head list;
75458 	struct device *parent;
75459 	struct device *this_device;
75460 	const struct attribute_group **groups;
75461 	const char *nodename;
75462 	umode_t mode;
75463 };
75464 
75465 struct args_protover {
75466 	__u32 version;
75467 };
75468 
75469 struct args_protosubver {
75470 	__u32 sub_version;
75471 };
75472 
75473 struct args_openmount {
75474 	__u32 devid;
75475 };
75476 
75477 struct args_ready {
75478 	__u32 token;
75479 };
75480 
75481 struct args_fail {
75482 	__u32 token;
75483 	__s32 status;
75484 };
75485 
75486 struct args_setpipefd {
75487 	__s32 pipefd;
75488 };
75489 
75490 struct args_timeout {
75491 	__u64 timeout;
75492 };
75493 
75494 struct args_requester {
75495 	__u32 uid;
75496 	__u32 gid;
75497 };
75498 
75499 struct args_expire {
75500 	__u32 how;
75501 };
75502 
75503 struct args_askumount {
75504 	__u32 may_umount;
75505 };
75506 
75507 struct args_in {
75508 	__u32 type;
75509 };
75510 
75511 struct args_out {
75512 	__u32 devid;
75513 	__u32 magic;
75514 };
75515 
75516 struct args_ismountpoint {
75517 	union {
75518 		struct args_in in;
75519 		struct args_out out;
75520 	};
75521 };
75522 
75523 struct autofs_dev_ioctl {
75524 	__u32 ver_major;
75525 	__u32 ver_minor;
75526 	__u32 size;
75527 	__s32 ioctlfd;
75528 	union {
75529 		struct args_protover protover;
75530 		struct args_protosubver protosubver;
75531 		struct args_openmount openmount;
75532 		struct args_ready ready;
75533 		struct args_fail fail;
75534 		struct args_setpipefd setpipefd;
75535 		struct args_timeout timeout;
75536 		struct args_requester requester;
75537 		struct args_expire expire;
75538 		struct args_askumount askumount;
75539 		struct args_ismountpoint ismountpoint;
75540 	};
75541 	char path[0];
75542 };
75543 
75544 enum {
75545 	AUTOFS_DEV_IOCTL_VERSION_CMD = 113,
75546 	AUTOFS_DEV_IOCTL_PROTOVER_CMD = 114,
75547 	AUTOFS_DEV_IOCTL_PROTOSUBVER_CMD = 115,
75548 	AUTOFS_DEV_IOCTL_OPENMOUNT_CMD = 116,
75549 	AUTOFS_DEV_IOCTL_CLOSEMOUNT_CMD = 117,
75550 	AUTOFS_DEV_IOCTL_READY_CMD = 118,
75551 	AUTOFS_DEV_IOCTL_FAIL_CMD = 119,
75552 	AUTOFS_DEV_IOCTL_SETPIPEFD_CMD = 120,
75553 	AUTOFS_DEV_IOCTL_CATATONIC_CMD = 121,
75554 	AUTOFS_DEV_IOCTL_TIMEOUT_CMD = 122,
75555 	AUTOFS_DEV_IOCTL_REQUESTER_CMD = 123,
75556 	AUTOFS_DEV_IOCTL_EXPIRE_CMD = 124,
75557 	AUTOFS_DEV_IOCTL_ASKUMOUNT_CMD = 125,
75558 	AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD = 126,
75559 };
75560 
75561 typedef int (*ioctl_fn)(struct file *, struct autofs_sb_info *, struct autofs_dev_ioctl *);
75562 
75563 struct fileattr {
75564 	u32 flags;
75565 	u32 fsx_xflags;
75566 	u32 fsx_extsize;
75567 	u32 fsx_nextents;
75568 	u32 fsx_projid;
75569 	u32 fsx_cowextsize;
75570 	bool flags_valid: 1;
75571 	bool fsx_valid: 1;
75572 };
75573 
75574 struct ipc_proc_iface {
75575 	const char *path;
75576 	const char *header;
75577 	int ids;
75578 	int (*show)(struct seq_file *, void *);
75579 };
75580 
75581 struct ipc_proc_iter {
75582 	struct ipc_namespace *ns;
75583 	struct pid_namespace *pid_ns;
75584 	struct ipc_proc_iface *iface;
75585 };
75586 
75587 struct sigevent {
75588 	sigval_t sigev_value;
75589 	int sigev_signo;
75590 	int sigev_notify;
75591 	union {
75592 		int _pad[12];
75593 		int _tid;
75594 		struct {
75595 			void (*_function)(sigval_t);
75596 			void *_attribute;
75597 		} _sigev_thread;
75598 	} _sigev_un;
75599 };
75600 
75601 struct msg_msgseg;
75602 
75603 struct msg_msg {
75604 	struct list_head m_list;
75605 	long int m_type;
75606 	size_t m_ts;
75607 	struct msg_msgseg *next;
75608 	void *security;
75609 };
75610 
75611 struct mqueue_fs_context {
75612 	struct ipc_namespace *ipc_ns;
75613 	bool newns;
75614 };
75615 
75616 struct posix_msg_tree_node {
75617 	struct rb_node rb_node;
75618 	struct list_head msg_list;
75619 	int priority;
75620 };
75621 
75622 struct ext_wait_queue {
75623 	struct task_struct *task;
75624 	struct list_head list;
75625 	struct msg_msg *msg;
75626 	int state;
75627 };
75628 
75629 struct mqueue_inode_info {
75630 	spinlock_t lock;
75631 	struct inode vfs_inode;
75632 	wait_queue_head_t wait_q;
75633 	struct rb_root msg_tree;
75634 	struct rb_node *msg_tree_rightmost;
75635 	struct posix_msg_tree_node *node_cache;
75636 	struct mq_attr attr;
75637 	struct sigevent notify;
75638 	struct pid *notify_owner;
75639 	u32 notify_self_exec_id;
75640 	struct user_namespace *notify_user_ns;
75641 	struct ucounts *ucounts;
75642 	struct sock *notify_sock;
75643 	struct sk_buff *notify_cookie;
75644 	struct ext_wait_queue e_wait_q[2];
75645 	long unsigned int qsize;
75646 };
75647 
75648 struct assoc_array_edit;
75649 
75650 struct kpp_request {
75651 	struct crypto_async_request base;
75652 	struct scatterlist *src;
75653 	struct scatterlist *dst;
75654 	unsigned int src_len;
75655 	unsigned int dst_len;
75656 	void *__ctx[0];
75657 };
75658 
75659 struct crypto_kpp {
75660 	unsigned int reqsize;
75661 	struct crypto_tfm base;
75662 };
75663 
75664 struct kpp_alg {
75665 	int (*set_secret)(struct crypto_kpp *, const void *, unsigned int);
75666 	int (*generate_public_key)(struct kpp_request *);
75667 	int (*compute_shared_secret)(struct kpp_request *);
75668 	unsigned int (*max_size)(struct crypto_kpp *);
75669 	int (*init)(struct crypto_kpp *);
75670 	void (*exit)(struct crypto_kpp *);
75671 	struct crypto_alg base;
75672 };
75673 
75674 struct user_key_payload {
75675 	struct callback_head rcu;
75676 	short unsigned int datalen;
75677 	long: 48;
75678 	char data[0];
75679 };
75680 
75681 struct keyctl_dh_params {
75682 	union {
75683 		__s32 private;
75684 		__s32 priv;
75685 	};
75686 	__s32 prime;
75687 	__s32 base;
75688 };
75689 
75690 struct keyctl_kdf_params {
75691 	char *hashname;
75692 	char *otherinfo;
75693 	__u32 otherinfolen;
75694 	__u32 __spare[8];
75695 };
75696 
75697 struct dh_completion {
75698 	struct completion completion;
75699 	int err;
75700 };
75701 
75702 enum sctp_endpoint_type {
75703 	SCTP_EP_TYPE_SOCKET = 0,
75704 	SCTP_EP_TYPE_ASSOCIATION = 1,
75705 };
75706 
75707 struct sctp_chunk;
75708 
75709 struct sctp_inq {
75710 	struct list_head in_chunk_list;
75711 	struct sctp_chunk *in_progress;
75712 	struct work_struct immediate;
75713 };
75714 
75715 struct sctp_bind_addr {
75716 	__u16 port;
75717 	struct list_head address_list;
75718 };
75719 
75720 struct sctp_ep_common {
75721 	enum sctp_endpoint_type type;
75722 	refcount_t refcnt;
75723 	bool dead;
75724 	struct sock *sk;
75725 	struct net *net;
75726 	struct sctp_inq inqueue;
75727 	struct sctp_bind_addr bind_addr;
75728 };
75729 
75730 typedef __s32 sctp_assoc_t;
75731 
75732 union sctp_addr {
75733 	struct sockaddr_in v4;
75734 	struct sockaddr_in6 v6;
75735 	struct sockaddr sa;
75736 };
75737 
75738 struct sctp_chunkhdr {
75739 	__u8 type;
75740 	__u8 flags;
75741 	__be16 length;
75742 };
75743 
75744 struct sctp_inithdr {
75745 	__be32 init_tag;
75746 	__be32 a_rwnd;
75747 	__be16 num_outbound_streams;
75748 	__be16 num_inbound_streams;
75749 	__be32 initial_tsn;
75750 	__u8 params[0];
75751 };
75752 
75753 struct sctp_init_chunk {
75754 	struct sctp_chunkhdr chunk_hdr;
75755 	struct sctp_inithdr init_hdr;
75756 };
75757 
75758 struct sctp_cookie {
75759 	__u32 my_vtag;
75760 	__u32 peer_vtag;
75761 	__u32 my_ttag;
75762 	__u32 peer_ttag;
75763 	ktime_t expiration;
75764 	__u16 sinit_num_ostreams;
75765 	__u16 sinit_max_instreams;
75766 	__u32 initial_tsn;
75767 	union sctp_addr peer_addr;
75768 	__u16 my_port;
75769 	__u8 prsctp_capable;
75770 	__u8 padding;
75771 	__u32 adaptation_ind;
75772 	__u8 auth_random[36];
75773 	__u8 auth_hmacs[10];
75774 	__u8 auth_chunks[20];
75775 	__u32 raw_addr_list_len;
75776 	struct sctp_init_chunk peer_init[0];
75777 };
75778 
75779 struct sctp_tsnmap {
75780 	long unsigned int *tsn_map;
75781 	__u32 base_tsn;
75782 	__u32 cumulative_tsn_ack_point;
75783 	__u32 max_tsn_seen;
75784 	__u16 len;
75785 	__u16 pending_data;
75786 	__u16 num_dup_tsns;
75787 	__be32 dup_tsns[16];
75788 };
75789 
75790 struct sctp_inithdr_host {
75791 	__u32 init_tag;
75792 	__u32 a_rwnd;
75793 	__u16 num_outbound_streams;
75794 	__u16 num_inbound_streams;
75795 	__u32 initial_tsn;
75796 };
75797 
75798 enum sctp_state {
75799 	SCTP_STATE_CLOSED = 0,
75800 	SCTP_STATE_COOKIE_WAIT = 1,
75801 	SCTP_STATE_COOKIE_ECHOED = 2,
75802 	SCTP_STATE_ESTABLISHED = 3,
75803 	SCTP_STATE_SHUTDOWN_PENDING = 4,
75804 	SCTP_STATE_SHUTDOWN_SENT = 5,
75805 	SCTP_STATE_SHUTDOWN_RECEIVED = 6,
75806 	SCTP_STATE_SHUTDOWN_ACK_SENT = 7,
75807 };
75808 
75809 struct genradix_root;
75810 
75811 struct __genradix {
75812 	struct genradix_root *root;
75813 };
75814 
75815 struct sctp_stream_out_ext;
75816 
75817 struct sctp_stream_out {
75818 	union {
75819 		__u32 mid;
75820 		__u16 ssn;
75821 	};
75822 	__u32 mid_uo;
75823 	struct sctp_stream_out_ext *ext;
75824 	__u8 state;
75825 };
75826 
75827 struct sctp_stream_in {
75828 	union {
75829 		__u32 mid;
75830 		__u16 ssn;
75831 	};
75832 	__u32 mid_uo;
75833 	__u32 fsn;
75834 	__u32 fsn_uo;
75835 	char pd_mode;
75836 	char pd_mode_uo;
75837 };
75838 
75839 struct sctp_stream_interleave;
75840 
75841 struct sctp_stream {
75842 	struct {
75843 		struct __genradix tree;
75844 		struct sctp_stream_out type[0];
75845 	} out;
75846 	struct {
75847 		struct __genradix tree;
75848 		struct sctp_stream_in type[0];
75849 	} in;
75850 	__u16 outcnt;
75851 	__u16 incnt;
75852 	struct sctp_stream_out *out_curr;
75853 	union {
75854 		struct {
75855 			struct list_head prio_list;
75856 		};
75857 		struct {
75858 			struct list_head rr_list;
75859 			struct sctp_stream_out_ext *rr_next;
75860 		};
75861 	};
75862 	struct sctp_stream_interleave *si;
75863 };
75864 
75865 struct sctp_sched_ops;
75866 
75867 struct sctp_outq {
75868 	struct sctp_association *asoc;
75869 	struct list_head out_chunk_list;
75870 	struct sctp_sched_ops *sched;
75871 	unsigned int out_qlen;
75872 	unsigned int error;
75873 	struct list_head control_chunk_list;
75874 	struct list_head sacked;
75875 	struct list_head retransmit;
75876 	struct list_head abandoned;
75877 	__u32 outstanding_bytes;
75878 	char fast_rtx;
75879 	char cork;
75880 };
75881 
75882 struct sctp_ulpq {
75883 	char pd_mode;
75884 	struct sctp_association *asoc;
75885 	struct sk_buff_head reasm;
75886 	struct sk_buff_head reasm_uo;
75887 	struct sk_buff_head lobby;
75888 };
75889 
75890 struct sctp_priv_assoc_stats {
75891 	struct __kernel_sockaddr_storage obs_rto_ipaddr;
75892 	__u64 max_obs_rto;
75893 	__u64 isacks;
75894 	__u64 osacks;
75895 	__u64 opackets;
75896 	__u64 ipackets;
75897 	__u64 rtxchunks;
75898 	__u64 outofseqtsns;
75899 	__u64 idupchunks;
75900 	__u64 gapcnt;
75901 	__u64 ouodchunks;
75902 	__u64 iuodchunks;
75903 	__u64 oodchunks;
75904 	__u64 iodchunks;
75905 	__u64 octrlchunks;
75906 	__u64 ictrlchunks;
75907 };
75908 
75909 struct sctp_endpoint;
75910 
75911 struct sctp_transport;
75912 
75913 struct sctp_random_param;
75914 
75915 struct sctp_chunks_param;
75916 
75917 struct sctp_hmac_algo_param;
75918 
75919 struct sctp_auth_bytes;
75920 
75921 struct sctp_shared_key;
75922 
75923 struct sctp_association {
75924 	struct sctp_ep_common base;
75925 	struct list_head asocs;
75926 	sctp_assoc_t assoc_id;
75927 	struct sctp_endpoint *ep;
75928 	struct sctp_cookie c;
75929 	struct {
75930 		struct list_head transport_addr_list;
75931 		__u32 rwnd;
75932 		__u16 transport_count;
75933 		__u16 port;
75934 		struct sctp_transport *primary_path;
75935 		union sctp_addr primary_addr;
75936 		struct sctp_transport *active_path;
75937 		struct sctp_transport *retran_path;
75938 		struct sctp_transport *last_sent_to;
75939 		struct sctp_transport *last_data_from;
75940 		struct sctp_tsnmap tsn_map;
75941 		__be16 addip_disabled_mask;
75942 		__u16 ecn_capable: 1;
75943 		__u16 ipv4_address: 1;
75944 		__u16 ipv6_address: 1;
75945 		__u16 hostname_address: 1;
75946 		__u16 asconf_capable: 1;
75947 		__u16 prsctp_capable: 1;
75948 		__u16 reconf_capable: 1;
75949 		__u16 intl_capable: 1;
75950 		__u16 auth_capable: 1;
75951 		__u16 sack_needed: 1;
75952 		__u16 sack_generation: 1;
75953 		__u16 zero_window_announced: 1;
75954 		__u32 sack_cnt;
75955 		__u32 adaptation_ind;
75956 		struct sctp_inithdr_host i;
75957 		void *cookie;
75958 		int cookie_len;
75959 		__u32 addip_serial;
75960 		struct sctp_random_param *peer_random;
75961 		struct sctp_chunks_param *peer_chunks;
75962 		struct sctp_hmac_algo_param *peer_hmacs;
75963 	} peer;
75964 	enum sctp_state state;
75965 	int overall_error_count;
75966 	ktime_t cookie_life;
75967 	long unsigned int rto_initial;
75968 	long unsigned int rto_max;
75969 	long unsigned int rto_min;
75970 	int max_burst;
75971 	int max_retrans;
75972 	__u16 pf_retrans;
75973 	__u16 ps_retrans;
75974 	__u16 max_init_attempts;
75975 	__u16 init_retries;
75976 	long unsigned int max_init_timeo;
75977 	long unsigned int hbinterval;
75978 	long unsigned int probe_interval;
75979 	__be16 encap_port;
75980 	__u16 pathmaxrxt;
75981 	__u32 flowlabel;
75982 	__u8 dscp;
75983 	__u8 pmtu_pending;
75984 	__u32 pathmtu;
75985 	__u32 param_flags;
75986 	__u32 sackfreq;
75987 	long unsigned int sackdelay;
75988 	long unsigned int timeouts[12];
75989 	struct timer_list timers[12];
75990 	struct sctp_transport *shutdown_last_sent_to;
75991 	struct sctp_transport *init_last_sent_to;
75992 	int shutdown_retries;
75993 	__u32 next_tsn;
75994 	__u32 ctsn_ack_point;
75995 	__u32 adv_peer_ack_point;
75996 	__u32 highest_sacked;
75997 	__u32 fast_recovery_exit;
75998 	__u8 fast_recovery;
75999 	__u16 unack_data;
76000 	__u32 rtx_data_chunks;
76001 	__u32 rwnd;
76002 	__u32 a_rwnd;
76003 	__u32 rwnd_over;
76004 	__u32 rwnd_press;
76005 	int sndbuf_used;
76006 	atomic_t rmem_alloc;
76007 	wait_queue_head_t wait;
76008 	__u32 frag_point;
76009 	__u32 user_frag;
76010 	int init_err_counter;
76011 	int init_cycle;
76012 	__u16 default_stream;
76013 	__u16 default_flags;
76014 	__u32 default_ppid;
76015 	__u32 default_context;
76016 	__u32 default_timetolive;
76017 	__u32 default_rcv_context;
76018 	struct sctp_stream stream;
76019 	struct sctp_outq outqueue;
76020 	struct sctp_ulpq ulpq;
76021 	__u32 last_ecne_tsn;
76022 	__u32 last_cwr_tsn;
76023 	int numduptsns;
76024 	struct sctp_chunk *addip_last_asconf;
76025 	struct list_head asconf_ack_list;
76026 	struct list_head addip_chunk_list;
76027 	__u32 addip_serial;
76028 	int src_out_of_asoc_ok;
76029 	union sctp_addr *asconf_addr_del_pending;
76030 	struct sctp_transport *new_transport;
76031 	struct list_head endpoint_shared_keys;
76032 	struct sctp_auth_bytes *asoc_shared_key;
76033 	struct sctp_shared_key *shkey;
76034 	__u16 default_hmac_id;
76035 	__u16 active_key_id;
76036 	__u8 need_ecne: 1;
76037 	__u8 temp: 1;
76038 	__u8 pf_expose: 2;
76039 	__u8 force_delay: 1;
76040 	__u8 strreset_enable;
76041 	__u8 strreset_outstanding;
76042 	__u32 strreset_outseq;
76043 	__u32 strreset_inseq;
76044 	__u32 strreset_result[2];
76045 	struct sctp_chunk *strreset_chunk;
76046 	struct sctp_priv_assoc_stats stats;
76047 	int sent_cnt_removable;
76048 	__u16 subscribe;
76049 	__u64 abandoned_unsent[3];
76050 	__u64 abandoned_sent[3];
76051 	u32 secid;
76052 	u32 peer_secid;
76053 	struct callback_head rcu;
76054 };
76055 
76056 enum nf_hook_ops_type {
76057 	NF_HOOK_OP_UNDEFINED = 0,
76058 	NF_HOOK_OP_NF_TABLES = 1,
76059 };
76060 
76061 struct nf_hook_ops {
76062 	nf_hookfn *hook;
76063 	struct net_device *dev;
76064 	void *priv;
76065 	u8 pf;
76066 	enum nf_hook_ops_type hook_ops_type: 8;
76067 	unsigned int hooknum;
76068 	int priority;
76069 };
76070 
76071 enum nf_ip_hook_priorities {
76072 	NF_IP_PRI_FIRST = -2147483648,
76073 	NF_IP_PRI_RAW_BEFORE_DEFRAG = -450,
76074 	NF_IP_PRI_CONNTRACK_DEFRAG = -400,
76075 	NF_IP_PRI_RAW = -300,
76076 	NF_IP_PRI_SELINUX_FIRST = -225,
76077 	NF_IP_PRI_CONNTRACK = -200,
76078 	NF_IP_PRI_MANGLE = -150,
76079 	NF_IP_PRI_NAT_DST = -100,
76080 	NF_IP_PRI_FILTER = 0,
76081 	NF_IP_PRI_SECURITY = 50,
76082 	NF_IP_PRI_NAT_SRC = 100,
76083 	NF_IP_PRI_SELINUX_LAST = 225,
76084 	NF_IP_PRI_CONNTRACK_HELPER = 300,
76085 	NF_IP_PRI_CONNTRACK_CONFIRM = 2147483647,
76086 	NF_IP_PRI_LAST = 2147483647,
76087 };
76088 
76089 enum nf_ip6_hook_priorities {
76090 	NF_IP6_PRI_FIRST = -2147483648,
76091 	NF_IP6_PRI_RAW_BEFORE_DEFRAG = -450,
76092 	NF_IP6_PRI_CONNTRACK_DEFRAG = -400,
76093 	NF_IP6_PRI_RAW = -300,
76094 	NF_IP6_PRI_SELINUX_FIRST = -225,
76095 	NF_IP6_PRI_CONNTRACK = -200,
76096 	NF_IP6_PRI_MANGLE = -150,
76097 	NF_IP6_PRI_NAT_DST = -100,
76098 	NF_IP6_PRI_FILTER = 0,
76099 	NF_IP6_PRI_SECURITY = 50,
76100 	NF_IP6_PRI_NAT_SRC = 100,
76101 	NF_IP6_PRI_SELINUX_LAST = 225,
76102 	NF_IP6_PRI_CONNTRACK_HELPER = 300,
76103 	NF_IP6_PRI_LAST = 2147483647,
76104 };
76105 
76106 enum bpf_cmd {
76107 	BPF_MAP_CREATE = 0,
76108 	BPF_MAP_LOOKUP_ELEM = 1,
76109 	BPF_MAP_UPDATE_ELEM = 2,
76110 	BPF_MAP_DELETE_ELEM = 3,
76111 	BPF_MAP_GET_NEXT_KEY = 4,
76112 	BPF_PROG_LOAD = 5,
76113 	BPF_OBJ_PIN = 6,
76114 	BPF_OBJ_GET = 7,
76115 	BPF_PROG_ATTACH = 8,
76116 	BPF_PROG_DETACH = 9,
76117 	BPF_PROG_TEST_RUN = 10,
76118 	BPF_PROG_RUN = 10,
76119 	BPF_PROG_GET_NEXT_ID = 11,
76120 	BPF_MAP_GET_NEXT_ID = 12,
76121 	BPF_PROG_GET_FD_BY_ID = 13,
76122 	BPF_MAP_GET_FD_BY_ID = 14,
76123 	BPF_OBJ_GET_INFO_BY_FD = 15,
76124 	BPF_PROG_QUERY = 16,
76125 	BPF_RAW_TRACEPOINT_OPEN = 17,
76126 	BPF_BTF_LOAD = 18,
76127 	BPF_BTF_GET_FD_BY_ID = 19,
76128 	BPF_TASK_FD_QUERY = 20,
76129 	BPF_MAP_LOOKUP_AND_DELETE_ELEM = 21,
76130 	BPF_MAP_FREEZE = 22,
76131 	BPF_BTF_GET_NEXT_ID = 23,
76132 	BPF_MAP_LOOKUP_BATCH = 24,
76133 	BPF_MAP_LOOKUP_AND_DELETE_BATCH = 25,
76134 	BPF_MAP_UPDATE_BATCH = 26,
76135 	BPF_MAP_DELETE_BATCH = 27,
76136 	BPF_LINK_CREATE = 28,
76137 	BPF_LINK_UPDATE = 29,
76138 	BPF_LINK_GET_FD_BY_ID = 30,
76139 	BPF_LINK_GET_NEXT_ID = 31,
76140 	BPF_ENABLE_STATS = 32,
76141 	BPF_ITER_CREATE = 33,
76142 	BPF_LINK_DETACH = 34,
76143 	BPF_PROG_BIND_MAP = 35,
76144 };
76145 
76146 struct tty_file_private {
76147 	struct tty_struct *tty;
76148 	struct file *file;
76149 	struct list_head list;
76150 };
76151 
76152 struct dccp_hdr {
76153 	__be16 dccph_sport;
76154 	__be16 dccph_dport;
76155 	__u8 dccph_doff;
76156 	__u8 dccph_cscov: 4;
76157 	__u8 dccph_ccval: 4;
76158 	__sum16 dccph_checksum;
76159 	__u8 dccph_x: 1;
76160 	__u8 dccph_type: 4;
76161 	__u8 dccph_reserved: 3;
76162 	__u8 dccph_seq2;
76163 	__be16 dccph_seq;
76164 };
76165 
76166 enum dccp_state {
76167 	DCCP_OPEN = 1,
76168 	DCCP_REQUESTING = 2,
76169 	DCCP_LISTEN = 10,
76170 	DCCP_RESPOND = 3,
76171 	DCCP_ACTIVE_CLOSEREQ = 4,
76172 	DCCP_PASSIVE_CLOSE = 8,
76173 	DCCP_CLOSING = 11,
76174 	DCCP_TIME_WAIT = 6,
76175 	DCCP_CLOSED = 7,
76176 	DCCP_NEW_SYN_RECV = 12,
76177 	DCCP_PARTOPEN = 13,
76178 	DCCP_PASSIVE_CLOSEREQ = 14,
76179 	DCCP_MAX_STATES = 15,
76180 };
76181 
76182 enum sctp_msg_flags {
76183 	MSG_NOTIFICATION = 32768,
76184 };
76185 
76186 struct sctp_initmsg {
76187 	__u16 sinit_num_ostreams;
76188 	__u16 sinit_max_instreams;
76189 	__u16 sinit_max_attempts;
76190 	__u16 sinit_max_init_timeo;
76191 };
76192 
76193 struct sctp_sndrcvinfo {
76194 	__u16 sinfo_stream;
76195 	__u16 sinfo_ssn;
76196 	__u16 sinfo_flags;
76197 	__u32 sinfo_ppid;
76198 	__u32 sinfo_context;
76199 	__u32 sinfo_timetolive;
76200 	__u32 sinfo_tsn;
76201 	__u32 sinfo_cumtsn;
76202 	sctp_assoc_t sinfo_assoc_id;
76203 };
76204 
76205 struct sctp_rtoinfo {
76206 	sctp_assoc_t srto_assoc_id;
76207 	__u32 srto_initial;
76208 	__u32 srto_max;
76209 	__u32 srto_min;
76210 };
76211 
76212 struct sctp_assocparams {
76213 	sctp_assoc_t sasoc_assoc_id;
76214 	__u16 sasoc_asocmaxrxt;
76215 	__u16 sasoc_number_peer_destinations;
76216 	__u32 sasoc_peer_rwnd;
76217 	__u32 sasoc_local_rwnd;
76218 	__u32 sasoc_cookie_life;
76219 };
76220 
76221 struct sctp_paddrparams {
76222 	sctp_assoc_t spp_assoc_id;
76223 	struct __kernel_sockaddr_storage spp_address;
76224 	__u32 spp_hbinterval;
76225 	__u16 spp_pathmaxrxt;
76226 	__u32 spp_pathmtu;
76227 	__u32 spp_sackdelay;
76228 	__u32 spp_flags;
76229 	__u32 spp_ipv6_flowlabel;
76230 	__u8 spp_dscp;
76231 	char: 8;
76232 } __attribute__((packed));
76233 
76234 struct sctphdr {
76235 	__be16 source;
76236 	__be16 dest;
76237 	__be32 vtag;
76238 	__le32 checksum;
76239 };
76240 
76241 enum sctp_cid {
76242 	SCTP_CID_DATA = 0,
76243 	SCTP_CID_INIT = 1,
76244 	SCTP_CID_INIT_ACK = 2,
76245 	SCTP_CID_SACK = 3,
76246 	SCTP_CID_HEARTBEAT = 4,
76247 	SCTP_CID_HEARTBEAT_ACK = 5,
76248 	SCTP_CID_ABORT = 6,
76249 	SCTP_CID_SHUTDOWN = 7,
76250 	SCTP_CID_SHUTDOWN_ACK = 8,
76251 	SCTP_CID_ERROR = 9,
76252 	SCTP_CID_COOKIE_ECHO = 10,
76253 	SCTP_CID_COOKIE_ACK = 11,
76254 	SCTP_CID_ECN_ECNE = 12,
76255 	SCTP_CID_ECN_CWR = 13,
76256 	SCTP_CID_SHUTDOWN_COMPLETE = 14,
76257 	SCTP_CID_AUTH = 15,
76258 	SCTP_CID_I_DATA = 64,
76259 	SCTP_CID_FWD_TSN = 192,
76260 	SCTP_CID_ASCONF = 193,
76261 	SCTP_CID_I_FWD_TSN = 194,
76262 	SCTP_CID_ASCONF_ACK = 128,
76263 	SCTP_CID_RECONF = 130,
76264 	SCTP_CID_PAD = 132,
76265 };
76266 
76267 struct sctp_paramhdr {
76268 	__be16 type;
76269 	__be16 length;
76270 };
76271 
76272 enum sctp_param {
76273 	SCTP_PARAM_HEARTBEAT_INFO = 256,
76274 	SCTP_PARAM_IPV4_ADDRESS = 1280,
76275 	SCTP_PARAM_IPV6_ADDRESS = 1536,
76276 	SCTP_PARAM_STATE_COOKIE = 1792,
76277 	SCTP_PARAM_UNRECOGNIZED_PARAMETERS = 2048,
76278 	SCTP_PARAM_COOKIE_PRESERVATIVE = 2304,
76279 	SCTP_PARAM_HOST_NAME_ADDRESS = 2816,
76280 	SCTP_PARAM_SUPPORTED_ADDRESS_TYPES = 3072,
76281 	SCTP_PARAM_ECN_CAPABLE = 128,
76282 	SCTP_PARAM_RANDOM = 640,
76283 	SCTP_PARAM_CHUNKS = 896,
76284 	SCTP_PARAM_HMAC_ALGO = 1152,
76285 	SCTP_PARAM_SUPPORTED_EXT = 2176,
76286 	SCTP_PARAM_FWD_TSN_SUPPORT = 192,
76287 	SCTP_PARAM_ADD_IP = 448,
76288 	SCTP_PARAM_DEL_IP = 704,
76289 	SCTP_PARAM_ERR_CAUSE = 960,
76290 	SCTP_PARAM_SET_PRIMARY = 1216,
76291 	SCTP_PARAM_SUCCESS_REPORT = 1472,
76292 	SCTP_PARAM_ADAPTATION_LAYER_IND = 1728,
76293 	SCTP_PARAM_RESET_OUT_REQUEST = 3328,
76294 	SCTP_PARAM_RESET_IN_REQUEST = 3584,
76295 	SCTP_PARAM_RESET_TSN_REQUEST = 3840,
76296 	SCTP_PARAM_RESET_RESPONSE = 4096,
76297 	SCTP_PARAM_RESET_ADD_OUT_STREAMS = 4352,
76298 	SCTP_PARAM_RESET_ADD_IN_STREAMS = 4608,
76299 };
76300 
76301 struct sctp_datahdr {
76302 	__be32 tsn;
76303 	__be16 stream;
76304 	__be16 ssn;
76305 	__u32 ppid;
76306 	__u8 payload[0];
76307 };
76308 
76309 struct sctp_idatahdr {
76310 	__be32 tsn;
76311 	__be16 stream;
76312 	__be16 reserved;
76313 	__be32 mid;
76314 	union {
76315 		__u32 ppid;
76316 		__be32 fsn;
76317 	};
76318 	__u8 payload[0];
76319 };
76320 
76321 struct sctp_ipv4addr_param {
76322 	struct sctp_paramhdr param_hdr;
76323 	struct in_addr addr;
76324 };
76325 
76326 struct sctp_ipv6addr_param {
76327 	struct sctp_paramhdr param_hdr;
76328 	struct in6_addr addr;
76329 };
76330 
76331 struct sctp_cookie_preserve_param {
76332 	struct sctp_paramhdr param_hdr;
76333 	__be32 lifespan_increment;
76334 };
76335 
76336 struct sctp_hostname_param {
76337 	struct sctp_paramhdr param_hdr;
76338 	uint8_t hostname[0];
76339 };
76340 
76341 struct sctp_supported_addrs_param {
76342 	struct sctp_paramhdr param_hdr;
76343 	__be16 types[0];
76344 };
76345 
76346 struct sctp_adaptation_ind_param {
76347 	struct sctp_paramhdr param_hdr;
76348 	__be32 adaptation_ind;
76349 };
76350 
76351 struct sctp_supported_ext_param {
76352 	struct sctp_paramhdr param_hdr;
76353 	__u8 chunks[0];
76354 };
76355 
76356 struct sctp_random_param {
76357 	struct sctp_paramhdr param_hdr;
76358 	__u8 random_val[0];
76359 };
76360 
76361 struct sctp_chunks_param {
76362 	struct sctp_paramhdr param_hdr;
76363 	__u8 chunks[0];
76364 };
76365 
76366 struct sctp_hmac_algo_param {
76367 	struct sctp_paramhdr param_hdr;
76368 	__be16 hmac_ids[0];
76369 };
76370 
76371 struct sctp_cookie_param {
76372 	struct sctp_paramhdr p;
76373 	__u8 body[0];
76374 };
76375 
76376 struct sctp_gap_ack_block {
76377 	__be16 start;
76378 	__be16 end;
76379 };
76380 
76381 union sctp_sack_variable {
76382 	struct sctp_gap_ack_block gab;
76383 	__be32 dup;
76384 };
76385 
76386 struct sctp_sackhdr {
76387 	__be32 cum_tsn_ack;
76388 	__be32 a_rwnd;
76389 	__be16 num_gap_ack_blocks;
76390 	__be16 num_dup_tsns;
76391 	union sctp_sack_variable variable[0];
76392 };
76393 
76394 struct sctp_heartbeathdr {
76395 	struct sctp_paramhdr info;
76396 };
76397 
76398 struct sctp_shutdownhdr {
76399 	__be32 cum_tsn_ack;
76400 };
76401 
76402 struct sctp_errhdr {
76403 	__be16 cause;
76404 	__be16 length;
76405 	__u8 variable[0];
76406 };
76407 
76408 struct sctp_ecnehdr {
76409 	__be32 lowest_tsn;
76410 };
76411 
76412 struct sctp_cwrhdr {
76413 	__be32 lowest_tsn;
76414 };
76415 
76416 struct sctp_fwdtsn_skip {
76417 	__be16 stream;
76418 	__be16 ssn;
76419 };
76420 
76421 struct sctp_fwdtsn_hdr {
76422 	__be32 new_cum_tsn;
76423 	struct sctp_fwdtsn_skip skip[0];
76424 };
76425 
76426 struct sctp_ifwdtsn_skip {
76427 	__be16 stream;
76428 	__u8 reserved;
76429 	__u8 flags;
76430 	__be32 mid;
76431 };
76432 
76433 struct sctp_ifwdtsn_hdr {
76434 	__be32 new_cum_tsn;
76435 	struct sctp_ifwdtsn_skip skip[0];
76436 };
76437 
76438 struct sctp_addip_param {
76439 	struct sctp_paramhdr param_hdr;
76440 	__be32 crr_id;
76441 };
76442 
76443 struct sctp_addiphdr {
76444 	__be32 serial;
76445 	__u8 params[0];
76446 };
76447 
76448 struct sctp_authhdr {
76449 	__be16 shkey_id;
76450 	__be16 hmac_id;
76451 	__u8 hmac[0];
76452 };
76453 
76454 struct sctp_auth_bytes {
76455 	refcount_t refcnt;
76456 	__u32 len;
76457 	__u8 data[0];
76458 };
76459 
76460 struct sctp_shared_key {
76461 	struct list_head key_list;
76462 	struct sctp_auth_bytes *key;
76463 	refcount_t refcnt;
76464 	__u16 key_id;
76465 	__u8 deactivated;
76466 };
76467 
76468 enum {
76469 	SCTP_MAX_STREAM = 65535,
76470 };
76471 
76472 enum sctp_event_timeout {
76473 	SCTP_EVENT_TIMEOUT_NONE = 0,
76474 	SCTP_EVENT_TIMEOUT_T1_COOKIE = 1,
76475 	SCTP_EVENT_TIMEOUT_T1_INIT = 2,
76476 	SCTP_EVENT_TIMEOUT_T2_SHUTDOWN = 3,
76477 	SCTP_EVENT_TIMEOUT_T3_RTX = 4,
76478 	SCTP_EVENT_TIMEOUT_T4_RTO = 5,
76479 	SCTP_EVENT_TIMEOUT_T5_SHUTDOWN_GUARD = 6,
76480 	SCTP_EVENT_TIMEOUT_HEARTBEAT = 7,
76481 	SCTP_EVENT_TIMEOUT_RECONF = 8,
76482 	SCTP_EVENT_TIMEOUT_PROBE = 9,
76483 	SCTP_EVENT_TIMEOUT_SACK = 10,
76484 	SCTP_EVENT_TIMEOUT_AUTOCLOSE = 11,
76485 };
76486 
76487 enum {
76488 	SCTP_MAX_DUP_TSNS = 16,
76489 };
76490 
76491 enum sctp_scope {
76492 	SCTP_SCOPE_GLOBAL = 0,
76493 	SCTP_SCOPE_PRIVATE = 1,
76494 	SCTP_SCOPE_LINK = 2,
76495 	SCTP_SCOPE_LOOPBACK = 3,
76496 	SCTP_SCOPE_UNUSABLE = 4,
76497 };
76498 
76499 enum {
76500 	SCTP_AUTH_HMAC_ID_RESERVED_0 = 0,
76501 	SCTP_AUTH_HMAC_ID_SHA1 = 1,
76502 	SCTP_AUTH_HMAC_ID_RESERVED_2 = 2,
76503 	SCTP_AUTH_HMAC_ID_SHA256 = 3,
76504 	__SCTP_AUTH_HMAC_MAX = 4,
76505 };
76506 
76507 struct sctp_ulpevent {
76508 	struct sctp_association *asoc;
76509 	struct sctp_chunk *chunk;
76510 	unsigned int rmem_len;
76511 	union {
76512 		__u32 mid;
76513 		__u16 ssn;
76514 	};
76515 	union {
76516 		__u32 ppid;
76517 		__u32 fsn;
76518 	};
76519 	__u32 tsn;
76520 	__u32 cumtsn;
76521 	__u16 stream;
76522 	__u16 flags;
76523 	__u16 msg_flags;
76524 } __attribute__((packed));
76525 
76526 union sctp_addr_param;
76527 
76528 union sctp_params {
76529 	void *v;
76530 	struct sctp_paramhdr *p;
76531 	struct sctp_cookie_preserve_param *life;
76532 	struct sctp_hostname_param *dns;
76533 	struct sctp_cookie_param *cookie;
76534 	struct sctp_supported_addrs_param *sat;
76535 	struct sctp_ipv4addr_param *v4;
76536 	struct sctp_ipv6addr_param *v6;
76537 	union sctp_addr_param *addr;
76538 	struct sctp_adaptation_ind_param *aind;
76539 	struct sctp_supported_ext_param *ext;
76540 	struct sctp_random_param *random;
76541 	struct sctp_chunks_param *chunks;
76542 	struct sctp_hmac_algo_param *hmac_algo;
76543 	struct sctp_addip_param *addip;
76544 };
76545 
76546 struct sctp_sender_hb_info;
76547 
76548 struct sctp_signed_cookie;
76549 
76550 struct sctp_datamsg;
76551 
76552 struct sctp_chunk {
76553 	struct list_head list;
76554 	refcount_t refcnt;
76555 	int sent_count;
76556 	union {
76557 		struct list_head transmitted_list;
76558 		struct list_head stream_list;
76559 	};
76560 	struct list_head frag_list;
76561 	struct sk_buff *skb;
76562 	union {
76563 		struct sk_buff *head_skb;
76564 		struct sctp_shared_key *shkey;
76565 	};
76566 	union sctp_params param_hdr;
76567 	union {
76568 		__u8 *v;
76569 		struct sctp_datahdr *data_hdr;
76570 		struct sctp_inithdr *init_hdr;
76571 		struct sctp_sackhdr *sack_hdr;
76572 		struct sctp_heartbeathdr *hb_hdr;
76573 		struct sctp_sender_hb_info *hbs_hdr;
76574 		struct sctp_shutdownhdr *shutdown_hdr;
76575 		struct sctp_signed_cookie *cookie_hdr;
76576 		struct sctp_ecnehdr *ecne_hdr;
76577 		struct sctp_cwrhdr *ecn_cwr_hdr;
76578 		struct sctp_errhdr *err_hdr;
76579 		struct sctp_addiphdr *addip_hdr;
76580 		struct sctp_fwdtsn_hdr *fwdtsn_hdr;
76581 		struct sctp_authhdr *auth_hdr;
76582 		struct sctp_idatahdr *idata_hdr;
76583 		struct sctp_ifwdtsn_hdr *ifwdtsn_hdr;
76584 	} subh;
76585 	__u8 *chunk_end;
76586 	struct sctp_chunkhdr *chunk_hdr;
76587 	struct sctphdr *sctp_hdr;
76588 	struct sctp_sndrcvinfo sinfo;
76589 	struct sctp_association *asoc;
76590 	struct sctp_ep_common *rcvr;
76591 	long unsigned int sent_at;
76592 	union sctp_addr source;
76593 	union sctp_addr dest;
76594 	struct sctp_datamsg *msg;
76595 	struct sctp_transport *transport;
76596 	struct sk_buff *auth_chunk;
76597 	__u16 rtt_in_progress: 1;
76598 	__u16 has_tsn: 1;
76599 	__u16 has_ssn: 1;
76600 	__u16 singleton: 1;
76601 	__u16 end_of_packet: 1;
76602 	__u16 ecn_ce_done: 1;
76603 	__u16 pdiscard: 1;
76604 	__u16 tsn_gap_acked: 1;
76605 	__u16 data_accepted: 1;
76606 	__u16 auth: 1;
76607 	__u16 has_asconf: 1;
76608 	__u16 pmtu_probe: 1;
76609 	__u16 tsn_missing_report: 2;
76610 	__u16 fast_retransmit: 2;
76611 };
76612 
76613 struct sctp_stream_interleave {
76614 	__u16 data_chunk_len;
76615 	__u16 ftsn_chunk_len;
76616 	struct sctp_chunk * (*make_datafrag)(const struct sctp_association *, const struct sctp_sndrcvinfo *, int, __u8, gfp_t);
76617 	void (*assign_number)(struct sctp_chunk *);
76618 	bool (*validate_data)(struct sctp_chunk *);
76619 	int (*ulpevent_data)(struct sctp_ulpq *, struct sctp_chunk *, gfp_t);
76620 	int (*enqueue_event)(struct sctp_ulpq *, struct sctp_ulpevent *);
76621 	void (*renege_events)(struct sctp_ulpq *, struct sctp_chunk *, gfp_t);
76622 	void (*start_pd)(struct sctp_ulpq *, gfp_t);
76623 	void (*abort_pd)(struct sctp_ulpq *, gfp_t);
76624 	void (*generate_ftsn)(struct sctp_outq *, __u32);
76625 	bool (*validate_ftsn)(struct sctp_chunk *);
76626 	void (*report_ftsn)(struct sctp_ulpq *, __u32);
76627 	void (*handle_ftsn)(struct sctp_ulpq *, struct sctp_chunk *);
76628 };
76629 
76630 struct sctp_bind_bucket {
76631 	short unsigned int port;
76632 	signed char fastreuse;
76633 	signed char fastreuseport;
76634 	kuid_t fastuid;
76635 	struct hlist_node node;
76636 	struct hlist_head owner;
76637 	struct net *net;
76638 };
76639 
76640 enum sctp_socket_type {
76641 	SCTP_SOCKET_UDP = 0,
76642 	SCTP_SOCKET_UDP_HIGH_BANDWIDTH = 1,
76643 	SCTP_SOCKET_TCP = 2,
76644 };
76645 
76646 struct crypto_shash;
76647 
76648 struct sctp_pf;
76649 
76650 struct sctp_sock {
76651 	struct inet_sock inet;
76652 	enum sctp_socket_type type;
76653 	int: 32;
76654 	struct sctp_pf *pf;
76655 	struct crypto_shash *hmac;
76656 	char *sctp_hmac_alg;
76657 	struct sctp_endpoint *ep;
76658 	struct sctp_bind_bucket *bind_hash;
76659 	__u16 default_stream;
76660 	short: 16;
76661 	__u32 default_ppid;
76662 	__u16 default_flags;
76663 	short: 16;
76664 	__u32 default_context;
76665 	__u32 default_timetolive;
76666 	__u32 default_rcv_context;
76667 	int max_burst;
76668 	__u32 hbinterval;
76669 	__u32 probe_interval;
76670 	__be16 udp_port;
76671 	__be16 encap_port;
76672 	__u16 pathmaxrxt;
76673 	short: 16;
76674 	__u32 flowlabel;
76675 	__u8 dscp;
76676 	char: 8;
76677 	__u16 pf_retrans;
76678 	__u16 ps_retrans;
76679 	short: 16;
76680 	__u32 pathmtu;
76681 	__u32 sackdelay;
76682 	__u32 sackfreq;
76683 	__u32 param_flags;
76684 	__u32 default_ss;
76685 	struct sctp_rtoinfo rtoinfo;
76686 	struct sctp_paddrparams paddrparam;
76687 	struct sctp_assocparams assocparams;
76688 	__u16 subscribe;
76689 	struct sctp_initmsg initmsg;
76690 	short: 16;
76691 	int user_frag;
76692 	__u32 autoclose;
76693 	__u32 adaptation_ind;
76694 	__u32 pd_point;
76695 	__u16 nodelay: 1;
76696 	__u16 pf_expose: 2;
76697 	__u16 reuse: 1;
76698 	__u16 disable_fragments: 1;
76699 	__u16 v4mapped: 1;
76700 	__u16 frag_interleave: 1;
76701 	__u16 recvrcvinfo: 1;
76702 	__u16 recvnxtinfo: 1;
76703 	__u16 data_ready_signalled: 1;
76704 	int: 22;
76705 	atomic_t pd_mode;
76706 	struct sk_buff_head pd_lobby;
76707 	struct list_head auto_asconf_list;
76708 	int do_auto_asconf;
76709 	int: 32;
76710 } __attribute__((packed));
76711 
76712 struct sctp_af;
76713 
76714 struct sctp_pf {
76715 	void (*event_msgname)(struct sctp_ulpevent *, char *, int *);
76716 	void (*skb_msgname)(struct sk_buff *, char *, int *);
76717 	int (*af_supported)(sa_family_t, struct sctp_sock *);
76718 	int (*cmp_addr)(const union sctp_addr *, const union sctp_addr *, struct sctp_sock *);
76719 	int (*bind_verify)(struct sctp_sock *, union sctp_addr *);
76720 	int (*send_verify)(struct sctp_sock *, union sctp_addr *);
76721 	int (*supported_addrs)(const struct sctp_sock *, __be16 *);
76722 	struct sock * (*create_accept_sk)(struct sock *, struct sctp_association *, bool);
76723 	int (*addr_to_user)(struct sctp_sock *, union sctp_addr *);
76724 	void (*to_sk_saddr)(union sctp_addr *, struct sock *);
76725 	void (*to_sk_daddr)(union sctp_addr *, struct sock *);
76726 	void (*copy_ip_options)(struct sock *, struct sock *);
76727 	struct sctp_af *af;
76728 };
76729 
76730 struct sctp_endpoint {
76731 	struct sctp_ep_common base;
76732 	struct hlist_node node;
76733 	int hashent;
76734 	struct list_head asocs;
76735 	__u8 secret_key[32];
76736 	__u8 *digest;
76737 	__u32 sndbuf_policy;
76738 	__u32 rcvbuf_policy;
76739 	struct crypto_shash **auth_hmacs;
76740 	struct sctp_hmac_algo_param *auth_hmacs_list;
76741 	struct sctp_chunks_param *auth_chunk_list;
76742 	struct list_head endpoint_shared_keys;
76743 	__u16 active_key_id;
76744 	__u8 ecn_enable: 1;
76745 	__u8 auth_enable: 1;
76746 	__u8 intl_enable: 1;
76747 	__u8 prsctp_enable: 1;
76748 	__u8 asconf_enable: 1;
76749 	__u8 reconf_enable: 1;
76750 	__u8 strreset_enable;
76751 	struct callback_head rcu;
76752 };
76753 
76754 struct sctp_signed_cookie {
76755 	__u8 signature[32];
76756 	__u32 __pad;
76757 	struct sctp_cookie c;
76758 } __attribute__((packed));
76759 
76760 union sctp_addr_param {
76761 	struct sctp_paramhdr p;
76762 	struct sctp_ipv4addr_param v4;
76763 	struct sctp_ipv6addr_param v6;
76764 };
76765 
76766 struct sctp_sender_hb_info {
76767 	struct sctp_paramhdr param_hdr;
76768 	union sctp_addr daddr;
76769 	long unsigned int sent_at;
76770 	__u64 hb_nonce;
76771 	__u32 probe_size;
76772 };
76773 
76774 struct sctp_af {
76775 	int (*sctp_xmit)(struct sk_buff *, struct sctp_transport *);
76776 	int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int);
76777 	int (*getsockopt)(struct sock *, int, int, char *, int *);
76778 	void (*get_dst)(struct sctp_transport *, union sctp_addr *, struct flowi *, struct sock *);
76779 	void (*get_saddr)(struct sctp_sock *, struct sctp_transport *, struct flowi *);
76780 	void (*copy_addrlist)(struct list_head *, struct net_device *);
76781 	int (*cmp_addr)(const union sctp_addr *, const union sctp_addr *);
76782 	void (*addr_copy)(union sctp_addr *, union sctp_addr *);
76783 	void (*from_skb)(union sctp_addr *, struct sk_buff *, int);
76784 	void (*from_sk)(union sctp_addr *, struct sock *);
76785 	bool (*from_addr_param)(union sctp_addr *, union sctp_addr_param *, __be16, int);
76786 	int (*to_addr_param)(const union sctp_addr *, union sctp_addr_param *);
76787 	int (*addr_valid)(union sctp_addr *, struct sctp_sock *, const struct sk_buff *);
76788 	enum sctp_scope (*scope)(union sctp_addr *);
76789 	void (*inaddr_any)(union sctp_addr *, __be16);
76790 	int (*is_any)(const union sctp_addr *);
76791 	int (*available)(union sctp_addr *, struct sctp_sock *);
76792 	int (*skb_iif)(const struct sk_buff *);
76793 	int (*skb_sdif)(const struct sk_buff *);
76794 	int (*is_ce)(const struct sk_buff *);
76795 	void (*seq_dump_addr)(struct seq_file *, union sctp_addr *);
76796 	void (*ecn_capable)(struct sock *);
76797 	__u16 net_header_len;
76798 	int sockaddr_len;
76799 	int (*ip_options_len)(struct sock *);
76800 	sa_family_t sa_family;
76801 	struct list_head list;
76802 };
76803 
76804 struct sctp_packet {
76805 	__u16 source_port;
76806 	__u16 destination_port;
76807 	__u32 vtag;
76808 	struct list_head chunk_list;
76809 	size_t overhead;
76810 	size_t size;
76811 	size_t max_size;
76812 	struct sctp_transport *transport;
76813 	struct sctp_chunk *auth;
76814 	u8 has_cookie_echo: 1;
76815 	u8 has_sack: 1;
76816 	u8 has_auth: 1;
76817 	u8 has_data: 1;
76818 	u8 ipfragok: 1;
76819 };
76820 
76821 struct sctp_transport {
76822 	struct list_head transports;
76823 	struct rhlist_head node;
76824 	refcount_t refcnt;
76825 	__u32 rto_pending: 1;
76826 	__u32 hb_sent: 1;
76827 	__u32 pmtu_pending: 1;
76828 	__u32 dst_pending_confirm: 1;
76829 	__u32 sack_generation: 1;
76830 	u32 dst_cookie;
76831 	struct flowi fl;
76832 	union sctp_addr ipaddr;
76833 	struct sctp_af *af_specific;
76834 	struct sctp_association *asoc;
76835 	long unsigned int rto;
76836 	__u32 rtt;
76837 	__u32 rttvar;
76838 	__u32 srtt;
76839 	__u32 cwnd;
76840 	__u32 ssthresh;
76841 	__u32 partial_bytes_acked;
76842 	__u32 flight_size;
76843 	__u32 burst_limited;
76844 	struct dst_entry *dst;
76845 	union sctp_addr saddr;
76846 	long unsigned int hbinterval;
76847 	long unsigned int probe_interval;
76848 	long unsigned int sackdelay;
76849 	__u32 sackfreq;
76850 	atomic_t mtu_info;
76851 	ktime_t last_time_heard;
76852 	long unsigned int last_time_sent;
76853 	long unsigned int last_time_ecne_reduced;
76854 	__be16 encap_port;
76855 	__u16 pathmaxrxt;
76856 	__u32 flowlabel;
76857 	__u8 dscp;
76858 	__u16 pf_retrans;
76859 	__u16 ps_retrans;
76860 	__u32 pathmtu;
76861 	__u32 param_flags;
76862 	int init_sent_count;
76863 	int state;
76864 	short unsigned int error_count;
76865 	struct timer_list T3_rtx_timer;
76866 	struct timer_list hb_timer;
76867 	struct timer_list proto_unreach_timer;
76868 	struct timer_list reconf_timer;
76869 	struct timer_list probe_timer;
76870 	struct list_head transmitted;
76871 	struct sctp_packet packet;
76872 	struct list_head send_ready;
76873 	struct {
76874 		__u32 next_tsn_at_change;
76875 		char changeover_active;
76876 		char cycling_changeover;
76877 		char cacc_saw_newack;
76878 	} cacc;
76879 	struct {
76880 		__u16 pmtu;
76881 		__u16 probe_size;
76882 		__u16 probe_high;
76883 		__u8 probe_count;
76884 		__u8 state;
76885 	} pl;
76886 	__u64 hb_nonce;
76887 	struct callback_head rcu;
76888 };
76889 
76890 struct sctp_datamsg {
76891 	struct list_head chunks;
76892 	refcount_t refcnt;
76893 	long unsigned int expires_at;
76894 	int send_error;
76895 	u8 send_failed: 1;
76896 	u8 can_delay: 1;
76897 	u8 abandoned: 1;
76898 };
76899 
76900 struct sctp_stream_priorities {
76901 	struct list_head prio_sched;
76902 	struct list_head active;
76903 	struct sctp_stream_out_ext *next;
76904 	__u16 prio;
76905 };
76906 
76907 struct sctp_stream_out_ext {
76908 	__u64 abandoned_unsent[3];
76909 	__u64 abandoned_sent[3];
76910 	struct list_head outq;
76911 	union {
76912 		struct {
76913 			struct list_head prio_list;
76914 			struct sctp_stream_priorities *prio_head;
76915 		};
76916 		struct {
76917 			struct list_head rr_list;
76918 		};
76919 	};
76920 };
76921 
76922 struct file_security_struct {
76923 	u32 sid;
76924 	u32 fown_sid;
76925 	u32 isid;
76926 	u32 pseqno;
76927 };
76928 
76929 struct superblock_security_struct {
76930 	u32 sid;
76931 	u32 def_sid;
76932 	u32 mntpoint_sid;
76933 	short unsigned int behavior;
76934 	short unsigned int flags;
76935 	struct mutex lock;
76936 	struct list_head isec_head;
76937 	spinlock_t isec_lock;
76938 };
76939 
76940 struct msg_security_struct {
76941 	u32 sid;
76942 };
76943 
76944 struct ipc_security_struct {
76945 	u16 sclass;
76946 	u32 sid;
76947 };
76948 
76949 struct sk_security_struct {
76950 	u32 sid;
76951 	u32 peer_sid;
76952 	u16 sclass;
76953 	enum {
76954 		SCTP_ASSOC_UNSET = 0,
76955 		SCTP_ASSOC_SET = 1,
76956 	} sctp_assoc_state;
76957 };
76958 
76959 struct tun_security_struct {
76960 	u32 sid;
76961 };
76962 
76963 struct key_security_struct {
76964 	u32 sid;
76965 };
76966 
76967 struct bpf_security_struct {
76968 	u32 sid;
76969 };
76970 
76971 struct perf_event_security_struct {
76972 	u32 sid;
76973 };
76974 
76975 struct security_class_mapping {
76976 	const char *name;
76977 	const char *perms[33];
76978 };
76979 
76980 struct selinux_mnt_opts {
76981 	u32 fscontext_sid;
76982 	u32 context_sid;
76983 	u32 rootcontext_sid;
76984 	u32 defcontext_sid;
76985 };
76986 
76987 enum {
76988 	Opt_error = -1,
76989 	Opt_context = 0,
76990 	Opt_defcontext = 1,
76991 	Opt_fscontext = 2,
76992 	Opt_rootcontext = 3,
76993 	Opt_seclabel = 4,
76994 };
76995 
76996 struct selinux_kernel_status {
76997 	u32 version;
76998 	u32 sequence;
76999 	u32 enforcing;
77000 	u32 policyload;
77001 	u32 deny_unknown;
77002 };
77003 
77004 struct perm_datum {
77005 	u32 value;
77006 };
77007 
77008 struct role_trans_key {
77009 	u32 role;
77010 	u32 type;
77011 	u32 tclass;
77012 };
77013 
77014 struct role_trans_datum {
77015 	u32 new_role;
77016 };
77017 
77018 struct filename_trans_key {
77019 	u32 ttype;
77020 	u16 tclass;
77021 	const char *name;
77022 };
77023 
77024 struct filename_trans_datum {
77025 	struct ebitmap stypes;
77026 	u32 otype;
77027 	struct filename_trans_datum *next;
77028 };
77029 
77030 struct level_datum {
77031 	struct mls_level *level;
77032 	unsigned char isalias;
77033 };
77034 
77035 struct cat_datum {
77036 	u32 value;
77037 	unsigned char isalias;
77038 };
77039 
77040 struct range_trans {
77041 	u32 source_type;
77042 	u32 target_type;
77043 	u32 target_class;
77044 };
77045 
77046 struct policydb_compat_info {
77047 	int version;
77048 	int sym_num;
77049 	int ocon_num;
77050 };
77051 
77052 struct audit_cache {
77053 	struct aa_profile *profile;
77054 	kernel_cap_t caps;
77055 };
77056 
77057 struct match_workbuf {
77058 	unsigned int count;
77059 	unsigned int pos;
77060 	unsigned int len;
77061 	unsigned int size;
77062 	unsigned int history[24];
77063 };
77064 
77065 struct aa_file_ctx {
77066 	spinlock_t lock;
77067 	struct aa_label *label;
77068 	u32 allow;
77069 };
77070 
77071 struct ptrace_relation {
77072 	struct task_struct *tracer;
77073 	struct task_struct *tracee;
77074 	bool invalid;
77075 	struct list_head node;
77076 	struct callback_head rcu;
77077 };
77078 
77079 struct access_report_info {
77080 	struct callback_head work;
77081 	const char *access;
77082 	struct task_struct *target;
77083 	struct task_struct *agent;
77084 };
77085 
77086 enum integrity_status {
77087 	INTEGRITY_PASS = 0,
77088 	INTEGRITY_PASS_IMMUTABLE = 1,
77089 	INTEGRITY_FAIL = 2,
77090 	INTEGRITY_FAIL_IMMUTABLE = 3,
77091 	INTEGRITY_NOLABEL = 4,
77092 	INTEGRITY_NOXATTRS = 5,
77093 	INTEGRITY_UNKNOWN = 6,
77094 };
77095 
77096 struct ima_digest_data {
77097 	u8 algo;
77098 	u8 length;
77099 	union {
77100 		struct {
77101 			u8 unused;
77102 			u8 type;
77103 		} sha1;
77104 		struct {
77105 			u8 type;
77106 			u8 algo;
77107 		} ng;
77108 		u8 data[2];
77109 	} xattr;
77110 	u8 digest[0];
77111 };
77112 
77113 struct integrity_iint_cache {
77114 	struct rb_node rb_node;
77115 	struct mutex mutex;
77116 	struct inode *inode;
77117 	u64 version;
77118 	long unsigned int flags;
77119 	long unsigned int measured_pcrs;
77120 	long unsigned int atomic_flags;
77121 	enum integrity_status ima_file_status: 4;
77122 	enum integrity_status ima_mmap_status: 4;
77123 	enum integrity_status ima_bprm_status: 4;
77124 	enum integrity_status ima_read_status: 4;
77125 	enum integrity_status ima_creds_status: 4;
77126 	enum integrity_status evm_status: 4;
77127 	struct ima_digest_data *ima_hash;
77128 };
77129 
77130 enum {
77131 	CRYPTO_MSG_ALG_REQUEST = 0,
77132 	CRYPTO_MSG_ALG_REGISTER = 1,
77133 	CRYPTO_MSG_ALG_LOADED = 2,
77134 };
77135 
77136 struct crypto_larval {
77137 	struct crypto_alg alg;
77138 	struct crypto_alg *adult;
77139 	struct completion completion;
77140 	u32 mask;
77141 	bool test_started;
77142 };
77143 
77144 struct aead_instance {
77145 	void (*free)(struct aead_instance *);
77146 	union {
77147 		struct {
77148 			char head[64];
77149 			struct crypto_instance base;
77150 		} s;
77151 		struct aead_alg alg;
77152 	};
77153 };
77154 
77155 struct crypto_aead_spawn {
77156 	struct crypto_spawn base;
77157 };
77158 
77159 struct crypto_sync_skcipher;
77160 
77161 struct aead_geniv_ctx {
77162 	spinlock_t lock;
77163 	struct crypto_aead *child;
77164 	struct crypto_sync_skcipher *sknull;
77165 	u8 salt[0];
77166 };
77167 
77168 struct crypto_report_akcipher {
77169 	char type[64];
77170 };
77171 
77172 struct akcipher_instance {
77173 	void (*free)(struct akcipher_instance *);
77174 	union {
77175 		struct {
77176 			char head[72];
77177 			struct crypto_instance base;
77178 		} s;
77179 		struct akcipher_alg alg;
77180 	};
77181 };
77182 
77183 struct crypto_akcipher_spawn {
77184 	struct crypto_spawn base;
77185 };
77186 
77187 struct rsa_asn1_template {
77188 	const char *name;
77189 	const u8 *data;
77190 	size_t size;
77191 };
77192 
77193 struct pkcs1pad_ctx {
77194 	struct crypto_akcipher *child;
77195 	unsigned int key_size;
77196 };
77197 
77198 struct pkcs1pad_inst_ctx {
77199 	struct crypto_akcipher_spawn spawn;
77200 	const struct rsa_asn1_template *digest_info;
77201 };
77202 
77203 struct pkcs1pad_request {
77204 	struct scatterlist in_sg[2];
77205 	struct scatterlist out_sg[1];
77206 	uint8_t *in_buf;
77207 	uint8_t *out_buf;
77208 	struct akcipher_request child_req;
77209 };
77210 
77211 struct md5_state {
77212 	u32 hash[4];
77213 	u32 block[16];
77214 	u64 byte_count;
77215 };
77216 
77217 struct sha512_state {
77218 	u64 state[8];
77219 	u64 count[2];
77220 	u8 buf[128];
77221 };
77222 
77223 typedef void sha512_block_fn(struct sha512_state *, const u8 *, int);
77224 
77225 struct chksum_ctx {
77226 	u32 key;
77227 };
77228 
77229 struct chksum_desc_ctx {
77230 	u32 crc;
77231 };
77232 
77233 struct xxhash64_tfm_ctx {
77234 	u64 seed;
77235 };
77236 
77237 struct xxhash64_desc_ctx {
77238 	struct xxh64_state xxhstate;
77239 };
77240 
77241 struct zstd_ctx {
77242 	zstd_cctx *cctx;
77243 	zstd_dctx *dctx;
77244 	void *cwksp;
77245 	void *dwksp;
77246 };
77247 
77248 struct asymmetric_key_subtype {
77249 	struct module *owner;
77250 	const char *name;
77251 	short unsigned int name_len;
77252 	void (*describe)(const struct key *, struct seq_file *);
77253 	void (*destroy)(void *, void *);
77254 	int (*query)(const struct kernel_pkey_params *, struct kernel_pkey_query *);
77255 	int (*eds_op)(struct kernel_pkey_params *, const void *, void *);
77256 	int (*verify_signature)(const struct key *, const struct public_key_signature *);
77257 };
77258 
77259 struct x509_parse_context {
77260 	struct x509_certificate *cert;
77261 	long unsigned int data;
77262 	const void *key;
77263 	size_t key_size;
77264 	const void *params;
77265 	size_t params_size;
77266 	enum OID key_algo;
77267 	enum OID last_oid;
77268 	enum OID sig_algo;
77269 	u8 o_size;
77270 	u8 cn_size;
77271 	u8 email_size;
77272 	u16 o_offset;
77273 	u16 cn_offset;
77274 	u16 email_offset;
77275 	unsigned int raw_akid_size;
77276 	const void *raw_akid;
77277 	const void *akid_raw_issuer;
77278 	unsigned int akid_raw_issuer_size;
77279 };
77280 
77281 struct kdf_testvec {
77282 	unsigned char *key;
77283 	size_t keylen;
77284 	unsigned char *ikm;
77285 	size_t ikmlen;
77286 	struct kvec info;
77287 	unsigned char *expected;
77288 	size_t expectedlen;
77289 };
77290 
77291 enum {
77292 	REQ_FSEQ_PREFLUSH = 1,
77293 	REQ_FSEQ_DATA = 2,
77294 	REQ_FSEQ_POSTFLUSH = 4,
77295 	REQ_FSEQ_DONE = 8,
77296 	REQ_FSEQ_ACTIONS = 7,
77297 	FLUSH_PENDING_TIMEOUT = 1250,
77298 };
77299 
77300 struct rq_map_data {
77301 	struct page **pages;
77302 	long unsigned int offset;
77303 	short unsigned int page_order;
77304 	short unsigned int nr_entries;
77305 	bool null_mapped;
77306 	bool from_user;
77307 };
77308 
77309 struct bio_map_data {
77310 	bool is_our_pages: 1;
77311 	bool is_null_mapped: 1;
77312 	struct iov_iter iter;
77313 	struct iovec iov[0];
77314 };
77315 
77316 struct mq_inflight {
77317 	struct block_device *part;
77318 	unsigned int inflight[2];
77319 };
77320 
77321 struct blk_rq_wait {
77322 	struct completion done;
77323 	blk_status_t ret;
77324 };
77325 
77326 struct blk_expired_data {
77327 	bool has_timedout_rq;
77328 	long unsigned int next;
77329 	long unsigned int timeout_start;
77330 };
77331 
77332 struct flush_busy_ctx_data {
77333 	struct blk_mq_hw_ctx *hctx;
77334 	struct list_head *list;
77335 };
77336 
77337 struct dispatch_rq_data {
77338 	struct blk_mq_hw_ctx *hctx;
77339 	struct request *rq;
77340 };
77341 
77342 enum prep_dispatch {
77343 	PREP_DISPATCH_OK = 0,
77344 	PREP_DISPATCH_NO_TAG = 1,
77345 	PREP_DISPATCH_NO_BUDGET = 2,
77346 };
77347 
77348 struct rq_iter_data {
77349 	struct blk_mq_hw_ctx *hctx;
77350 	bool has_rq;
77351 };
77352 
77353 struct blk_mq_qe_pair {
77354 	struct list_head node;
77355 	struct request_queue *q;
77356 	struct elevator_type *type;
77357 };
77358 
77359 struct class_dev_iter {
77360 	struct klist_iter ki;
77361 	const struct device_type *type;
77362 };
77363 
77364 struct badblocks {
77365 	struct device *dev;
77366 	int count;
77367 	int unacked_exist;
77368 	int shift;
77369 	u64 *page;
77370 	int changed;
77371 	seqlock_t lock;
77372 	sector_t sector;
77373 	sector_t size;
77374 };
77375 
77376 struct blk_major_name {
77377 	struct blk_major_name *next;
77378 	int major;
77379 	char name[16];
77380 	void (*probe)(dev_t);
77381 };
77382 
77383 struct rq_wait {
77384 	wait_queue_head_t wait;
77385 	atomic_t inflight;
77386 };
77387 
77388 struct rq_depth {
77389 	unsigned int max_depth;
77390 	int scale_step;
77391 	bool scaled_max;
77392 	unsigned int queue_depth;
77393 	unsigned int default_depth;
77394 };
77395 
77396 typedef bool acquire_inflight_cb_t(struct rq_wait *, void *);
77397 
77398 typedef void cleanup_cb_t(struct rq_wait *, void *);
77399 
77400 struct rq_qos_wait_data {
77401 	struct wait_queue_entry wq;
77402 	struct task_struct *task;
77403 	struct rq_wait *rqw;
77404 	acquire_inflight_cb_t *cb;
77405 	void *private_data;
77406 	bool got_token;
77407 };
77408 
77409 typedef int bsg_job_fn(struct bsg_job *);
77410 
77411 typedef enum blk_eh_timer_return bsg_timeout_fn(struct request *);
77412 
77413 struct bsg_set {
77414 	struct blk_mq_tag_set tag_set;
77415 	struct bsg_device *bd;
77416 	bsg_job_fn *job_fn;
77417 	bsg_timeout_fn *timeout_fn;
77418 };
77419 
77420 struct blk_iolatency {
77421 	struct rq_qos rqos;
77422 	struct timer_list timer;
77423 	bool enabled;
77424 	atomic_t enable_cnt;
77425 	struct work_struct enable_work;
77426 };
77427 
77428 struct iolatency_grp;
77429 
77430 struct child_latency_info {
77431 	spinlock_t lock;
77432 	u64 last_scale_event;
77433 	u64 scale_lat;
77434 	u64 nr_samples;
77435 	struct iolatency_grp *scale_grp;
77436 	atomic_t scale_cookie;
77437 };
77438 
77439 struct percentile_stats {
77440 	u64 total;
77441 	u64 missed;
77442 };
77443 
77444 struct latency_stat {
77445 	union {
77446 		struct percentile_stats ps;
77447 		struct blk_rq_stat rqs;
77448 	};
77449 };
77450 
77451 struct iolatency_grp {
77452 	struct blkg_policy_data pd;
77453 	struct latency_stat *stats;
77454 	struct latency_stat cur_stat;
77455 	struct blk_iolatency *blkiolat;
77456 	unsigned int max_depth;
77457 	struct rq_wait rq_wait;
77458 	atomic64_t window_start;
77459 	atomic_t scale_cookie;
77460 	u64 min_lat_nsec;
77461 	u64 cur_win_nsec;
77462 	u64 lat_avg;
77463 	u64 nr_samples;
77464 	bool ssd;
77465 	struct child_latency_info child_lat;
77466 };
77467 
77468 struct trace_event_raw_kyber_latency {
77469 	struct trace_entry ent;
77470 	dev_t dev;
77471 	char domain[16];
77472 	char type[8];
77473 	u8 percentile;
77474 	u8 numerator;
77475 	u8 denominator;
77476 	unsigned int samples;
77477 	char __data[0];
77478 };
77479 
77480 struct trace_event_raw_kyber_adjust {
77481 	struct trace_entry ent;
77482 	dev_t dev;
77483 	char domain[16];
77484 	unsigned int depth;
77485 	char __data[0];
77486 };
77487 
77488 struct trace_event_raw_kyber_throttled {
77489 	struct trace_entry ent;
77490 	dev_t dev;
77491 	char domain[16];
77492 	char __data[0];
77493 };
77494 
77495 struct trace_event_data_offsets_kyber_latency {};
77496 
77497 struct trace_event_data_offsets_kyber_adjust {};
77498 
77499 struct trace_event_data_offsets_kyber_throttled {};
77500 
77501 typedef void (*btf_trace_kyber_latency)(void *, dev_t, const char *, const char *, unsigned int, unsigned int, unsigned int, unsigned int);
77502 
77503 typedef void (*btf_trace_kyber_adjust)(void *, dev_t, const char *, unsigned int);
77504 
77505 typedef void (*btf_trace_kyber_throttled)(void *, dev_t, const char *);
77506 
77507 enum {
77508 	KYBER_READ = 0,
77509 	KYBER_WRITE = 1,
77510 	KYBER_DISCARD = 2,
77511 	KYBER_OTHER = 3,
77512 	KYBER_NUM_DOMAINS = 4,
77513 };
77514 
77515 enum {
77516 	KYBER_ASYNC_PERCENT = 75,
77517 };
77518 
77519 enum {
77520 	KYBER_LATENCY_SHIFT = 2,
77521 	KYBER_GOOD_BUCKETS = 4,
77522 	KYBER_LATENCY_BUCKETS = 8,
77523 };
77524 
77525 enum {
77526 	KYBER_TOTAL_LATENCY = 0,
77527 	KYBER_IO_LATENCY = 1,
77528 };
77529 
77530 struct kyber_cpu_latency {
77531 	atomic_t buckets[48];
77532 };
77533 
77534 struct kyber_ctx_queue {
77535 	spinlock_t lock;
77536 	struct list_head rq_list[4];
77537 	long: 64;
77538 	long: 64;
77539 	long: 64;
77540 	long: 64;
77541 	long: 64;
77542 	long: 64;
77543 	long: 64;
77544 };
77545 
77546 struct kyber_queue_data {
77547 	struct request_queue *q;
77548 	dev_t dev;
77549 	struct sbitmap_queue domain_tokens[4];
77550 	unsigned int async_depth;
77551 	struct kyber_cpu_latency *cpu_latency;
77552 	struct timer_list timer;
77553 	unsigned int latency_buckets[48];
77554 	long unsigned int latency_timeout[3];
77555 	int domain_p99[3];
77556 	u64 latency_targets[3];
77557 };
77558 
77559 struct kyber_hctx_data {
77560 	spinlock_t lock;
77561 	struct list_head rqs[4];
77562 	unsigned int cur_domain;
77563 	unsigned int batching;
77564 	struct kyber_ctx_queue *kcqs;
77565 	struct sbitmap kcq_map[4];
77566 	struct sbq_wait domain_wait[4];
77567 	struct sbq_wait_state *domain_ws[4];
77568 	atomic_t wait_index[4];
77569 };
77570 
77571 struct flush_kcq_data {
77572 	struct kyber_hctx_data *khd;
77573 	unsigned int sched_domain;
77574 	struct list_head *list;
77575 };
77576 
77577 struct bfq_group_data {
77578 	struct blkcg_policy_data pd;
77579 	unsigned int weight;
77580 };
77581 
77582 struct virtqueue {
77583 	struct list_head list;
77584 	void (*callback)(struct virtqueue *);
77585 	const char *name;
77586 	struct virtio_device *vdev;
77587 	unsigned int index;
77588 	unsigned int num_free;
77589 	unsigned int num_max;
77590 	void *priv;
77591 	bool reset;
77592 };
77593 
77594 struct virtio_shm_region {
77595 	u64 addr;
77596 	u64 len;
77597 };
77598 
77599 struct show_busy_params {
77600 	struct seq_file *m;
77601 	struct blk_mq_hw_ctx *hctx;
77602 };
77603 
77604 enum opal_mbr {
77605 	OPAL_MBR_ENABLE = 0,
77606 	OPAL_MBR_DISABLE = 1,
77607 };
77608 
77609 enum opal_mbr_done_flag {
77610 	OPAL_MBR_NOT_DONE = 0,
77611 	OPAL_MBR_DONE = 1,
77612 };
77613 
77614 enum opal_user {
77615 	OPAL_ADMIN1 = 0,
77616 	OPAL_USER1 = 1,
77617 	OPAL_USER2 = 2,
77618 	OPAL_USER3 = 3,
77619 	OPAL_USER4 = 4,
77620 	OPAL_USER5 = 5,
77621 	OPAL_USER6 = 6,
77622 	OPAL_USER7 = 7,
77623 	OPAL_USER8 = 8,
77624 	OPAL_USER9 = 9,
77625 };
77626 
77627 enum opal_lock_state {
77628 	OPAL_RO = 1,
77629 	OPAL_RW = 2,
77630 	OPAL_LK = 4,
77631 };
77632 
77633 enum opal_lock_flags {
77634 	OPAL_SAVE_FOR_LOCK = 1,
77635 };
77636 
77637 struct opal_key {
77638 	__u8 lr;
77639 	__u8 key_len;
77640 	__u8 __align[6];
77641 	__u8 key[256];
77642 };
77643 
77644 struct opal_lr_act {
77645 	struct opal_key key;
77646 	__u32 sum;
77647 	__u8 num_lrs;
77648 	__u8 lr[9];
77649 	__u8 align[2];
77650 };
77651 
77652 struct opal_session_info {
77653 	__u32 sum;
77654 	__u32 who;
77655 	struct opal_key opal_key;
77656 };
77657 
77658 struct opal_user_lr_setup {
77659 	__u64 range_start;
77660 	__u64 range_length;
77661 	__u32 RLE;
77662 	__u32 WLE;
77663 	struct opal_session_info session;
77664 };
77665 
77666 struct opal_lock_unlock {
77667 	struct opal_session_info session;
77668 	__u32 l_state;
77669 	__u16 flags;
77670 	__u8 __align[2];
77671 };
77672 
77673 struct opal_new_pw {
77674 	struct opal_session_info session;
77675 	struct opal_session_info new_user_pw;
77676 };
77677 
77678 struct opal_mbr_data {
77679 	struct opal_key key;
77680 	__u8 enable_disable;
77681 	__u8 __align[7];
77682 };
77683 
77684 struct opal_mbr_done {
77685 	struct opal_key key;
77686 	__u8 done_flag;
77687 	__u8 __align[7];
77688 };
77689 
77690 struct opal_shadow_mbr {
77691 	struct opal_key key;
77692 	const __u64 data;
77693 	__u64 offset;
77694 	__u64 size;
77695 };
77696 
77697 enum opal_table_ops {
77698 	OPAL_READ_TABLE = 0,
77699 	OPAL_WRITE_TABLE = 1,
77700 };
77701 
77702 struct opal_read_write_table {
77703 	struct opal_key key;
77704 	const __u64 data;
77705 	const __u8 table_uid[8];
77706 	__u64 offset;
77707 	__u64 size;
77708 	__u64 flags;
77709 	__u64 priv;
77710 };
77711 
77712 struct opal_status {
77713 	__u32 flags;
77714 	__u32 reserved;
77715 };
77716 
77717 enum {
77718 	TCG_SECP_00 = 0,
77719 	TCG_SECP_01 = 1,
77720 };
77721 
77722 enum opal_response_token {
77723 	OPAL_DTA_TOKENID_BYTESTRING = 224,
77724 	OPAL_DTA_TOKENID_SINT = 225,
77725 	OPAL_DTA_TOKENID_UINT = 226,
77726 	OPAL_DTA_TOKENID_TOKEN = 227,
77727 	OPAL_DTA_TOKENID_INVALID = 0,
77728 };
77729 
77730 enum opal_uid {
77731 	OPAL_SMUID_UID = 0,
77732 	OPAL_THISSP_UID = 1,
77733 	OPAL_ADMINSP_UID = 2,
77734 	OPAL_LOCKINGSP_UID = 3,
77735 	OPAL_ENTERPRISE_LOCKINGSP_UID = 4,
77736 	OPAL_ANYBODY_UID = 5,
77737 	OPAL_SID_UID = 6,
77738 	OPAL_ADMIN1_UID = 7,
77739 	OPAL_USER1_UID = 8,
77740 	OPAL_USER2_UID = 9,
77741 	OPAL_PSID_UID = 10,
77742 	OPAL_ENTERPRISE_BANDMASTER0_UID = 11,
77743 	OPAL_ENTERPRISE_ERASEMASTER_UID = 12,
77744 	OPAL_TABLE_TABLE = 13,
77745 	OPAL_LOCKINGRANGE_GLOBAL = 14,
77746 	OPAL_LOCKINGRANGE_ACE_RDLOCKED = 15,
77747 	OPAL_LOCKINGRANGE_ACE_WRLOCKED = 16,
77748 	OPAL_MBRCONTROL = 17,
77749 	OPAL_MBR = 18,
77750 	OPAL_AUTHORITY_TABLE = 19,
77751 	OPAL_C_PIN_TABLE = 20,
77752 	OPAL_LOCKING_INFO_TABLE = 21,
77753 	OPAL_ENTERPRISE_LOCKING_INFO_TABLE = 22,
77754 	OPAL_DATASTORE = 23,
77755 	OPAL_C_PIN_MSID = 24,
77756 	OPAL_C_PIN_SID = 25,
77757 	OPAL_C_PIN_ADMIN1 = 26,
77758 	OPAL_HALF_UID_AUTHORITY_OBJ_REF = 27,
77759 	OPAL_HALF_UID_BOOLEAN_ACE = 28,
77760 	OPAL_UID_HEXFF = 29,
77761 };
77762 
77763 enum opal_method {
77764 	OPAL_PROPERTIES = 0,
77765 	OPAL_STARTSESSION = 1,
77766 	OPAL_REVERT = 2,
77767 	OPAL_ACTIVATE = 3,
77768 	OPAL_EGET = 4,
77769 	OPAL_ESET = 5,
77770 	OPAL_NEXT = 6,
77771 	OPAL_EAUTHENTICATE = 7,
77772 	OPAL_GETACL = 8,
77773 	OPAL_GENKEY = 9,
77774 	OPAL_REVERTSP = 10,
77775 	OPAL_GET = 11,
77776 	OPAL_SET = 12,
77777 	OPAL_AUTHENTICATE = 13,
77778 	OPAL_RANDOM = 14,
77779 	OPAL_ERASE = 15,
77780 };
77781 
77782 enum opal_token {
77783 	OPAL_TRUE = 1,
77784 	OPAL_FALSE = 0,
77785 	OPAL_BOOLEAN_EXPR = 3,
77786 	OPAL_TABLE = 0,
77787 	OPAL_STARTROW = 1,
77788 	OPAL_ENDROW = 2,
77789 	OPAL_STARTCOLUMN = 3,
77790 	OPAL_ENDCOLUMN = 4,
77791 	OPAL_VALUES = 1,
77792 	OPAL_TABLE_UID = 0,
77793 	OPAL_TABLE_NAME = 1,
77794 	OPAL_TABLE_COMMON = 2,
77795 	OPAL_TABLE_TEMPLATE = 3,
77796 	OPAL_TABLE_KIND = 4,
77797 	OPAL_TABLE_COLUMN = 5,
77798 	OPAL_TABLE_COLUMNS = 6,
77799 	OPAL_TABLE_ROWS = 7,
77800 	OPAL_TABLE_ROWS_FREE = 8,
77801 	OPAL_TABLE_ROW_BYTES = 9,
77802 	OPAL_TABLE_LASTID = 10,
77803 	OPAL_TABLE_MIN = 11,
77804 	OPAL_TABLE_MAX = 12,
77805 	OPAL_PIN = 3,
77806 	OPAL_RANGESTART = 3,
77807 	OPAL_RANGELENGTH = 4,
77808 	OPAL_READLOCKENABLED = 5,
77809 	OPAL_WRITELOCKENABLED = 6,
77810 	OPAL_READLOCKED = 7,
77811 	OPAL_WRITELOCKED = 8,
77812 	OPAL_ACTIVEKEY = 10,
77813 	OPAL_LIFECYCLE = 6,
77814 	OPAL_MAXRANGES = 4,
77815 	OPAL_MBRENABLE = 1,
77816 	OPAL_MBRDONE = 2,
77817 	OPAL_HOSTPROPERTIES = 0,
77818 	OPAL_STARTLIST = 240,
77819 	OPAL_ENDLIST = 241,
77820 	OPAL_STARTNAME = 242,
77821 	OPAL_ENDNAME = 243,
77822 	OPAL_CALL = 248,
77823 	OPAL_ENDOFDATA = 249,
77824 	OPAL_ENDOFSESSION = 250,
77825 	OPAL_STARTTRANSACTON = 251,
77826 	OPAL_ENDTRANSACTON = 252,
77827 	OPAL_EMPTYATOM = 255,
77828 	OPAL_WHERE = 0,
77829 };
77830 
77831 enum opal_parameter {
77832 	OPAL_SUM_SET_LIST = 393216,
77833 };
77834 
77835 struct opal_compacket {
77836 	__be32 reserved0;
77837 	u8 extendedComID[4];
77838 	__be32 outstandingData;
77839 	__be32 minTransfer;
77840 	__be32 length;
77841 };
77842 
77843 struct opal_packet {
77844 	__be32 tsn;
77845 	__be32 hsn;
77846 	__be32 seq_number;
77847 	__be16 reserved0;
77848 	__be16 ack_type;
77849 	__be32 acknowledgment;
77850 	__be32 length;
77851 };
77852 
77853 struct opal_data_subpacket {
77854 	u8 reserved0[6];
77855 	__be16 kind;
77856 	__be32 length;
77857 };
77858 
77859 struct opal_header {
77860 	struct opal_compacket cp;
77861 	struct opal_packet pkt;
77862 	struct opal_data_subpacket subpkt;
77863 };
77864 
77865 struct d0_header {
77866 	__be32 length;
77867 	__be32 revision;
77868 	__be32 reserved01;
77869 	__be32 reserved02;
77870 	u8 ignored[32];
77871 };
77872 
77873 struct d0_tper_features {
77874 	u8 supported_features;
77875 	u8 reserved01[3];
77876 	__be32 reserved02;
77877 	__be32 reserved03;
77878 };
77879 
77880 struct d0_locking_features {
77881 	u8 supported_features;
77882 	u8 reserved01[3];
77883 	__be32 reserved02;
77884 	__be32 reserved03;
77885 };
77886 
77887 struct d0_geometry_features {
77888 	u8 header[4];
77889 	u8 reserved01;
77890 	u8 reserved02[7];
77891 	__be32 logical_block_size;
77892 	__be64 alignment_granularity;
77893 	__be64 lowest_aligned_lba;
77894 };
77895 
77896 struct d0_opal_v100 {
77897 	__be16 baseComID;
77898 	__be16 numComIDs;
77899 };
77900 
77901 struct d0_single_user_mode {
77902 	__be32 num_locking_objects;
77903 	u8 reserved01;
77904 	u8 reserved02;
77905 	__be16 reserved03;
77906 	__be32 reserved04;
77907 };
77908 
77909 struct d0_opal_v200 {
77910 	__be16 baseComID;
77911 	__be16 numComIDs;
77912 	u8 range_crossing;
77913 	u8 num_locking_admin_auth[2];
77914 	u8 num_locking_user_auth[2];
77915 	u8 initialPIN;
77916 	u8 revertedPIN;
77917 	u8 reserved01;
77918 	__be32 reserved02;
77919 };
77920 
77921 struct d0_features {
77922 	__be16 code;
77923 	u8 r_version;
77924 	u8 length;
77925 	u8 features[0];
77926 };
77927 
77928 struct opal_dev;
77929 
77930 struct opal_step {
77931 	int (*fn)(struct opal_dev *, void *);
77932 	void *data;
77933 };
77934 
77935 enum opal_atom_width {
77936 	OPAL_WIDTH_TINY = 0,
77937 	OPAL_WIDTH_SHORT = 1,
77938 	OPAL_WIDTH_MEDIUM = 2,
77939 	OPAL_WIDTH_LONG = 3,
77940 	OPAL_WIDTH_TOKEN = 4,
77941 };
77942 
77943 struct opal_resp_tok {
77944 	const u8 *pos;
77945 	size_t len;
77946 	enum opal_response_token type;
77947 	enum opal_atom_width width;
77948 	union {
77949 		u64 u;
77950 		s64 s;
77951 	} stored;
77952 };
77953 
77954 struct parsed_resp {
77955 	int num;
77956 	struct opal_resp_tok toks[64];
77957 };
77958 
77959 struct opal_dev {
77960 	u32 flags;
77961 	void *data;
77962 	sec_send_recv *send_recv;
77963 	struct mutex dev_lock;
77964 	u16 comid;
77965 	u32 hsn;
77966 	u32 tsn;
77967 	u64 align;
77968 	u64 lowest_lba;
77969 	size_t pos;
77970 	u8 *cmd;
77971 	u8 *resp;
77972 	struct parsed_resp parsed;
77973 	size_t prev_d_len;
77974 	void *prev_data;
77975 	struct list_head unlk_lst;
77976 };
77977 
77978 typedef int cont_fn(struct opal_dev *);
77979 
77980 struct opal_suspend_data {
77981 	struct opal_lock_unlock unlk;
77982 	u8 lr;
77983 	struct list_head node;
77984 };
77985 
77986 struct blk_crypto_mode {
77987 	const char *name;
77988 	const char *cipher_str;
77989 	unsigned int keysize;
77990 	unsigned int ivsize;
77991 };
77992 
77993 struct blk_crypto_kobj {
77994 	struct kobject kobj;
77995 	struct blk_crypto_profile *profile;
77996 };
77997 
77998 struct blk_crypto_attr {
77999 	struct attribute attr;
78000 	ssize_t (*show)(struct blk_crypto_profile *, struct blk_crypto_attr *, char *);
78001 };
78002 
78003 struct io_splice {
78004 	struct file *file_out;
78005 	loff_t off_out;
78006 	loff_t off_in;
78007 	u64 len;
78008 	int splice_fd_in;
78009 	unsigned int flags;
78010 };
78011 
78012 struct io_statx {
78013 	struct file *file;
78014 	int dfd;
78015 	unsigned int mask;
78016 	unsigned int flags;
78017 	struct filename *filename;
78018 	struct statx *buffer;
78019 };
78020 
78021 enum {
78022 	IO_SQ_THREAD_SHOULD_STOP = 0,
78023 	IO_SQ_THREAD_SHOULD_PARK = 1,
78024 };
78025 
78026 struct io_cancel_data {
78027 	struct io_ring_ctx *ctx;
78028 	union {
78029 		u64 data;
78030 		struct file *file;
78031 	};
78032 	u32 flags;
78033 	int seq;
78034 };
78035 
78036 struct io_poll_update {
78037 	struct file *file;
78038 	u64 old_user_data;
78039 	u64 new_user_data;
78040 	__poll_t events;
78041 	bool update_events;
78042 	bool update_user_data;
78043 };
78044 
78045 struct io_poll_table {
78046 	struct poll_table_struct pt;
78047 	struct io_kiocb *req;
78048 	int nr_entries;
78049 	int error;
78050 	bool owning;
78051 	__poll_t result_mask;
78052 };
78053 
78054 enum {
78055 	IOU_POLL_DONE = 0,
78056 	IOU_POLL_NO_ACTION = 1,
78057 	IOU_POLL_REMOVE_POLL_USE_RES = 2,
78058 	IOU_POLL_REISSUE = 3,
78059 };
78060 
78061 struct iov_iter_state {
78062 	size_t iov_offset;
78063 	size_t count;
78064 	long unsigned int nr_segs;
78065 };
78066 
78067 struct io_rw_state {
78068 	struct iov_iter iter;
78069 	struct iov_iter_state iter_state;
78070 	struct iovec fast_iov[8];
78071 };
78072 
78073 struct io_async_rw {
78074 	struct io_rw_state s;
78075 	const struct iovec *free_iovec;
78076 	size_t bytes_done;
78077 	struct wait_page_queue wpq;
78078 };
78079 
78080 struct io_rw {
78081 	struct kiocb kiocb;
78082 	u64 addr;
78083 	u32 len;
78084 	rwf_t flags;
78085 };
78086 
78087 struct wrapper {
78088 	cmp_func_t cmp;
78089 	swap_func_t swap;
78090 };
78091 
78092 struct match_token {
78093 	int token;
78094 	const char *pattern;
78095 };
78096 
78097 enum {
78098 	MAX_OPT_ARGS = 3,
78099 };
78100 
78101 struct region {
78102 	unsigned int start;
78103 	unsigned int off;
78104 	unsigned int group_len;
78105 	unsigned int end;
78106 	unsigned int nbits;
78107 };
78108 
78109 enum {
78110 	REG_OP_ISFREE = 0,
78111 	REG_OP_ALLOC = 1,
78112 	REG_OP_RELEASE = 2,
78113 };
78114 
78115 union nested_table {
78116 	union nested_table *table;
78117 	struct rhash_lock_head *bucket;
78118 };
78119 
78120 typedef enum {
78121 	trustInput = 0,
78122 	checkMaxSymbolValue = 1,
78123 } HIST_checkInput_e;
78124 
78125 typedef struct {
78126 	FSE_CTable CTable[59];
78127 	U32 scratchBuffer[41];
78128 	unsigned int count[13];
78129 	S16 norm[13];
78130 } HUF_CompressWeightsWksp;
78131 
78132 typedef struct {
78133 	HUF_CompressWeightsWksp wksp;
78134 	BYTE bitsToWeight[13];
78135 	BYTE huffWeight[255];
78136 } HUF_WriteCTableWksp;
78137 
78138 struct nodeElt_s {
78139 	U32 count;
78140 	U16 parent;
78141 	BYTE byte;
78142 	BYTE nbBits;
78143 };
78144 
78145 typedef struct nodeElt_s nodeElt;
78146 
78147 typedef struct {
78148 	U16 base;
78149 	U16 curr;
78150 } rankPos;
78151 
78152 typedef nodeElt huffNodeTable[512];
78153 
78154 typedef struct {
78155 	huffNodeTable huffNodeTbl;
78156 	rankPos rankPosition[192];
78157 } HUF_buildCTable_wksp_tables;
78158 
78159 typedef struct {
78160 	size_t bitContainer[2];
78161 	size_t bitPos[2];
78162 	BYTE *startPtr;
78163 	BYTE *ptr;
78164 	BYTE *endPtr;
78165 } HUF_CStream_t;
78166 
78167 typedef enum {
78168 	HUF_singleStream = 0,
78169 	HUF_fourStreams = 1,
78170 } HUF_nbStreams_e;
78171 
78172 typedef struct {
78173 	unsigned int count[256];
78174 	HUF_CElt CTable[257];
78175 	union {
78176 		HUF_buildCTable_wksp_tables buildCTable_wksp;
78177 		HUF_WriteCTableWksp writeCTable_wksp;
78178 		U32 hist_wksp[1024];
78179 	} wksps;
78180 } HUF_compress_tables_t;
78181 
78182 typedef enum {
78183 	ZSTDcs_created = 0,
78184 	ZSTDcs_init = 1,
78185 	ZSTDcs_ongoing = 2,
78186 	ZSTDcs_ending = 3,
78187 } ZSTD_compressionStage_e;
78188 
78189 typedef enum {
78190 	ZSTD_dictDefaultAttach = 0,
78191 	ZSTD_dictForceAttach = 1,
78192 	ZSTD_dictForceCopy = 2,
78193 	ZSTD_dictForceLoad = 3,
78194 } ZSTD_dictAttachPref_e;
78195 
78196 typedef struct {
78197 	ZSTD_paramSwitch_e enableLdm;
78198 	U32 hashLog;
78199 	U32 bucketSizeLog;
78200 	U32 minMatchLength;
78201 	U32 hashRateLog;
78202 	U32 windowLog;
78203 } ldmParams_t;
78204 
78205 typedef enum {
78206 	ZSTD_sf_noBlockDelimiters = 0,
78207 	ZSTD_sf_explicitBlockDelimiters = 1,
78208 } ZSTD_sequenceFormat_e;
78209 
78210 struct ZSTD_CCtx_params_s {
78211 	ZSTD_format_e format;
78212 	ZSTD_compressionParameters cParams;
78213 	ZSTD_frameParameters fParams;
78214 	int compressionLevel;
78215 	int forceWindow;
78216 	size_t targetCBlockSize;
78217 	int srcSizeHint;
78218 	ZSTD_dictAttachPref_e attachDictPref;
78219 	ZSTD_paramSwitch_e literalCompressionMode;
78220 	int nbWorkers;
78221 	size_t jobSize;
78222 	int overlapLog;
78223 	int rsyncable;
78224 	ldmParams_t ldmParams;
78225 	int enableDedicatedDictSearch;
78226 	ZSTD_bufferMode_e inBufferMode;
78227 	ZSTD_bufferMode_e outBufferMode;
78228 	ZSTD_sequenceFormat_e blockDelimiters;
78229 	int validateSequences;
78230 	ZSTD_paramSwitch_e useBlockSplitter;
78231 	ZSTD_paramSwitch_e useRowMatchFinder;
78232 	int deterministicRefPrefix;
78233 	ZSTD_customMem customMem;
78234 };
78235 
78236 typedef struct ZSTD_CCtx_params_s ZSTD_CCtx_params;
78237 
78238 typedef enum {
78239 	ZSTD_cwksp_alloc_objects = 0,
78240 	ZSTD_cwksp_alloc_buffers = 1,
78241 	ZSTD_cwksp_alloc_aligned = 2,
78242 } ZSTD_cwksp_alloc_phase_e;
78243 
78244 typedef enum {
78245 	ZSTD_cwksp_dynamic_alloc = 0,
78246 	ZSTD_cwksp_static_alloc = 1,
78247 } ZSTD_cwksp_static_alloc_e;
78248 
78249 typedef struct {
78250 	void *workspace;
78251 	void *workspaceEnd;
78252 	void *objectEnd;
78253 	void *tableEnd;
78254 	void *tableValidEnd;
78255 	void *allocStart;
78256 	BYTE allocFailed;
78257 	int workspaceOversizedDuration;
78258 	ZSTD_cwksp_alloc_phase_e phase;
78259 	ZSTD_cwksp_static_alloc_e isStatic;
78260 } ZSTD_cwksp;
78261 
78262 struct POOL_ctx_s;
78263 
78264 typedef struct POOL_ctx_s ZSTD_threadPool;
78265 
78266 typedef struct {
78267 	unsigned int offset;
78268 	unsigned int litLength;
78269 	unsigned int matchLength;
78270 	unsigned int rep;
78271 } ZSTD_Sequence;
78272 
78273 typedef struct {
78274 	int collectSequences;
78275 	ZSTD_Sequence *seqStart;
78276 	size_t seqIndex;
78277 	size_t maxSequences;
78278 } SeqCollector;
78279 
78280 typedef struct {
78281 	U32 offset;
78282 	U32 checksum;
78283 } ldmEntry_t;
78284 
78285 typedef struct {
78286 	const BYTE *split;
78287 	U32 hash;
78288 	U32 checksum;
78289 	ldmEntry_t *bucket;
78290 } ldmMatchCandidate_t;
78291 
78292 typedef struct {
78293 	ZSTD_window_t window;
78294 	ldmEntry_t *hashTable;
78295 	U32 loadedDictEnd;
78296 	BYTE *bucketOffsets;
78297 	size_t splitIndices[64];
78298 	ldmMatchCandidate_t matchCandidates[64];
78299 } ldmState_t;
78300 
78301 typedef struct {
78302 	ZSTD_entropyCTables_t entropy;
78303 	U32 rep[3];
78304 } ZSTD_compressedBlockState_t;
78305 
78306 typedef struct {
78307 	ZSTD_compressedBlockState_t *prevCBlock;
78308 	ZSTD_compressedBlockState_t *nextCBlock;
78309 	ZSTD_matchState_t matchState;
78310 } ZSTD_blockState_t;
78311 
78312 typedef enum {
78313 	ZSTDb_not_buffered = 0,
78314 	ZSTDb_buffered = 1,
78315 } ZSTD_buffered_policy_e;
78316 
78317 typedef enum {
78318 	zcss_init = 0,
78319 	zcss_load = 1,
78320 	zcss_flush = 2,
78321 } ZSTD_cStreamStage;
78322 
78323 typedef enum {
78324 	ZSTD_dct_auto = 0,
78325 	ZSTD_dct_rawContent = 1,
78326 	ZSTD_dct_fullDict = 2,
78327 } ZSTD_dictContentType_e;
78328 
78329 struct ZSTD_CDict_s;
78330 
78331 typedef struct ZSTD_CDict_s ZSTD_CDict;
78332 
78333 typedef struct {
78334 	void *dictBuffer;
78335 	const void *dict;
78336 	size_t dictSize;
78337 	ZSTD_dictContentType_e dictContentType;
78338 	ZSTD_CDict *cdict;
78339 } ZSTD_localDict;
78340 
78341 struct ZSTD_prefixDict_s {
78342 	const void *dict;
78343 	size_t dictSize;
78344 	ZSTD_dictContentType_e dictContentType;
78345 };
78346 
78347 typedef struct ZSTD_prefixDict_s ZSTD_prefixDict;
78348 
78349 typedef struct {
78350 	symbolEncodingType_e hType;
78351 	BYTE hufDesBuffer[128];
78352 	size_t hufDesSize;
78353 } ZSTD_hufCTablesMetadata_t;
78354 
78355 typedef struct {
78356 	symbolEncodingType_e llType;
78357 	symbolEncodingType_e ofType;
78358 	symbolEncodingType_e mlType;
78359 	BYTE fseTablesBuffer[133];
78360 	size_t fseTablesSize;
78361 	size_t lastCountSize;
78362 } ZSTD_fseCTablesMetadata_t;
78363 
78364 typedef struct {
78365 	ZSTD_hufCTablesMetadata_t hufMetadata;
78366 	ZSTD_fseCTablesMetadata_t fseMetadata;
78367 } ZSTD_entropyCTablesMetadata_t;
78368 
78369 typedef struct {
78370 	seqStore_t fullSeqStoreChunk;
78371 	seqStore_t firstHalfSeqStore;
78372 	seqStore_t secondHalfSeqStore;
78373 	seqStore_t currSeqStore;
78374 	seqStore_t nextSeqStore;
78375 	U32 partitions[196];
78376 	ZSTD_entropyCTablesMetadata_t entropyMetadata;
78377 } ZSTD_blockSplitCtx;
78378 
78379 struct ZSTD_CCtx_s {
78380 	ZSTD_compressionStage_e stage;
78381 	int cParamsChanged;
78382 	int bmi2;
78383 	ZSTD_CCtx_params requestedParams;
78384 	ZSTD_CCtx_params appliedParams;
78385 	ZSTD_CCtx_params simpleApiParams;
78386 	U32 dictID;
78387 	size_t dictContentSize;
78388 	ZSTD_cwksp workspace;
78389 	size_t blockSize;
78390 	long long unsigned int pledgedSrcSizePlusOne;
78391 	long long unsigned int consumedSrcSize;
78392 	long long unsigned int producedCSize;
78393 	struct xxh64_state xxhState;
78394 	ZSTD_customMem customMem;
78395 	ZSTD_threadPool *pool;
78396 	size_t staticSize;
78397 	SeqCollector seqCollector;
78398 	int isFirstBlock;
78399 	int initialized;
78400 	seqStore_t seqStore;
78401 	ldmState_t ldmState;
78402 	rawSeq *ldmSequences;
78403 	size_t maxNbLdmSequences;
78404 	rawSeqStore_t externSeqStore;
78405 	ZSTD_blockState_t blockState;
78406 	U32 *entropyWorkspace;
78407 	ZSTD_buffered_policy_e bufferedPolicy;
78408 	char *inBuff;
78409 	size_t inBuffSize;
78410 	size_t inToCompress;
78411 	size_t inBuffPos;
78412 	size_t inBuffTarget;
78413 	char *outBuff;
78414 	size_t outBuffSize;
78415 	size_t outBuffContentSize;
78416 	size_t outBuffFlushedSize;
78417 	ZSTD_cStreamStage streamStage;
78418 	U32 frameEnded;
78419 	ZSTD_inBuffer expectedInBuffer;
78420 	size_t expectedOutBufferSize;
78421 	ZSTD_localDict localDict;
78422 	const ZSTD_CDict *cdict;
78423 	ZSTD_prefixDict prefixDict;
78424 	ZSTD_blockSplitCtx blockSplitCtx;
78425 };
78426 
78427 typedef struct ZSTD_CCtx_s ZSTD_CCtx___2;
78428 
78429 struct ZSTD_CDict_s {
78430 	const void *dictContent;
78431 	size_t dictContentSize;
78432 	ZSTD_dictContentType_e dictContentType;
78433 	U32 *entropyWorkspace;
78434 	ZSTD_cwksp workspace;
78435 	ZSTD_matchState_t matchState;
78436 	ZSTD_compressedBlockState_t cBlockState;
78437 	ZSTD_customMem customMem;
78438 	U32 dictID;
78439 	int compressionLevel;
78440 	ZSTD_paramSwitch_e useRowMatchFinder;
78441 };
78442 
78443 typedef struct {
78444 	U32 litLength;
78445 	U32 matchLength;
78446 } ZSTD_sequenceLength;
78447 
78448 typedef U64 ZSTD_VecMask;
78449 
78450 typedef enum {
78451 	search_hashChain = 0,
78452 	search_binaryTree = 1,
78453 	search_rowHash = 2,
78454 } searchMethod_e;
78455 
78456 enum gcry_mpi_format {
78457 	GCRYMPI_FMT_NONE = 0,
78458 	GCRYMPI_FMT_STD = 1,
78459 	GCRYMPI_FMT_PGP = 2,
78460 	GCRYMPI_FMT_SSH = 3,
78461 	GCRYMPI_FMT_HEX = 4,
78462 	GCRYMPI_FMT_USG = 5,
78463 	GCRYMPI_FMT_OPAQUE = 8,
78464 };
78465 
78466 struct barrett_ctx_s;
78467 
78468 typedef struct barrett_ctx_s *mpi_barrett_t;
78469 
78470 struct barrett_ctx_s {
78471 	MPI m;
78472 	int m_copied;
78473 	int k;
78474 	MPI y;
78475 	MPI r1;
78476 	MPI r2;
78477 	MPI r3;
78478 };
78479 
78480 struct karatsuba_ctx {
78481 	struct karatsuba_ctx *next;
78482 	mpi_ptr_t tspace;
78483 	mpi_size_t tspace_size;
78484 	mpi_ptr_t tp;
78485 	mpi_size_t tp_size;
78486 };
78487 
78488 struct dim_cq_moder {
78489 	u16 usec;
78490 	u16 pkts;
78491 	u16 comps;
78492 	u8 cq_period_mode;
78493 };
78494 
78495 enum dim_cq_period_mode {
78496 	DIM_CQ_PERIOD_MODE_START_FROM_EQE = 0,
78497 	DIM_CQ_PERIOD_MODE_START_FROM_CQE = 1,
78498 	DIM_CQ_PERIOD_NUM_MODES = 2,
78499 };
78500 
78501 enum dim_state {
78502 	DIM_START_MEASURE = 0,
78503 	DIM_MEASURE_IN_PROGRESS = 1,
78504 	DIM_APPLY_NEW_PROFILE = 2,
78505 };
78506 
78507 enum dim_tune_state {
78508 	DIM_PARKING_ON_TOP = 0,
78509 	DIM_PARKING_TIRED = 1,
78510 	DIM_GOING_RIGHT = 2,
78511 	DIM_GOING_LEFT = 3,
78512 };
78513 
78514 enum dim_stats_state {
78515 	DIM_STATS_WORSE = 0,
78516 	DIM_STATS_SAME = 1,
78517 	DIM_STATS_BETTER = 2,
78518 };
78519 
78520 enum dim_step_result {
78521 	DIM_STEPPED = 0,
78522 	DIM_TOO_TIRED = 1,
78523 	DIM_ON_EDGE = 2,
78524 };
78525 
78526 struct acpi_vector_group {
78527 	int node;
78528 	int pci_segment;
78529 	struct irq_domain *parent;
78530 };
78531 
78532 struct acpi_madt_msi_pic {
78533 	struct acpi_subtable_header header;
78534 	u8 version;
78535 	u64 msg_address;
78536 	u32 start;
78537 	u32 count;
78538 } __attribute__((packed));
78539 
78540 enum {
78541 	IRQ_SET_MASK_OK = 0,
78542 	IRQ_SET_MASK_OK_NOCOPY = 1,
78543 	IRQ_SET_MASK_OK_DONE = 2,
78544 };
78545 
78546 struct eiointc_priv {
78547 	u32 node;
78548 	nodemask_t node_map;
78549 	cpumask_t cpuspan_map;
78550 	struct fwnode_handle *domain_handle;
78551 	struct irq_domain *eiointc_domain;
78552 };
78553 
78554 struct eiointc;
78555 
78556 struct pch_lpc {
78557 	void *base;
78558 	struct irq_domain *lpc_domain;
78559 	raw_spinlock_t lpc_lock;
78560 	u32 saved_reg_ctl;
78561 	u32 saved_reg_ena;
78562 	u32 saved_reg_pol;
78563 };
78564 
78565 struct gpio {
78566 	unsigned int gpio;
78567 	long unsigned int flags;
78568 	const char *label;
78569 };
78570 
78571 struct class_attribute {
78572 	struct attribute attr;
78573 	ssize_t (*show)(struct class *, struct class_attribute *, char *);
78574 	ssize_t (*store)(struct class *, struct class_attribute *, const char *, size_t);
78575 };
78576 
78577 struct gpiod_data {
78578 	struct gpio_desc *desc;
78579 	struct mutex mutex;
78580 	struct kernfs_node *value_kn;
78581 	int irq;
78582 	unsigned char irq_flags;
78583 	bool direction_can_change;
78584 };
78585 
78586 struct msi_map {
78587 	int index;
78588 	int virq;
78589 };
78590 
78591 enum pm_qos_flags_status {
78592 	PM_QOS_FLAGS_UNDEFINED = -1,
78593 	PM_QOS_FLAGS_NONE = 0,
78594 	PM_QOS_FLAGS_SOME = 1,
78595 	PM_QOS_FLAGS_ALL = 2,
78596 };
78597 
78598 struct hpx_type0 {
78599 	u32 revision;
78600 	u8 cache_line_size;
78601 	u8 latency_timer;
78602 	u8 enable_serr;
78603 	u8 enable_perr;
78604 };
78605 
78606 struct hpx_type1 {
78607 	u32 revision;
78608 	u8 max_mem_read;
78609 	u8 avg_max_split;
78610 	u16 tot_max_split;
78611 };
78612 
78613 struct hpx_type2 {
78614 	u32 revision;
78615 	u32 unc_err_mask_and;
78616 	u32 unc_err_mask_or;
78617 	u32 unc_err_sever_and;
78618 	u32 unc_err_sever_or;
78619 	u32 cor_err_mask_and;
78620 	u32 cor_err_mask_or;
78621 	u32 adv_err_cap_and;
78622 	u32 adv_err_cap_or;
78623 	u16 pci_exp_devctl_and;
78624 	u16 pci_exp_devctl_or;
78625 	u16 pci_exp_lnkctl_and;
78626 	u16 pci_exp_lnkctl_or;
78627 	u32 sec_unc_err_sever_and;
78628 	u32 sec_unc_err_sever_or;
78629 	u32 sec_unc_err_mask_and;
78630 	u32 sec_unc_err_mask_or;
78631 };
78632 
78633 struct hpx_type3 {
78634 	u16 device_type;
78635 	u16 function_type;
78636 	u16 config_space_location;
78637 	u16 pci_exp_cap_id;
78638 	u16 pci_exp_cap_ver;
78639 	u16 pci_exp_vendor_id;
78640 	u16 dvsec_id;
78641 	u16 dvsec_rev;
78642 	u16 match_offset;
78643 	u32 match_mask_and;
78644 	u32 match_value;
78645 	u16 reg_offset;
78646 	u32 reg_mask_and;
78647 	u32 reg_mask_or;
78648 };
78649 
78650 enum hpx_type3_dev_type {
78651 	HPX_TYPE_ENDPOINT = 1,
78652 	HPX_TYPE_LEG_END = 2,
78653 	HPX_TYPE_RC_END = 4,
78654 	HPX_TYPE_RC_EC = 8,
78655 	HPX_TYPE_ROOT_PORT = 16,
78656 	HPX_TYPE_UPSTREAM = 32,
78657 	HPX_TYPE_DOWNSTREAM = 64,
78658 	HPX_TYPE_PCI_BRIDGE = 128,
78659 	HPX_TYPE_PCIE_BRIDGE = 256,
78660 };
78661 
78662 enum hpx_type3_fn_type {
78663 	HPX_FN_NORMAL = 1,
78664 	HPX_FN_SRIOV_PHYS = 2,
78665 	HPX_FN_SRIOV_VIRT = 4,
78666 };
78667 
78668 enum hpx_type3_cfg_loc {
78669 	HPX_CFG_PCICFG = 0,
78670 	HPX_CFG_PCIE_CAP = 1,
78671 	HPX_CFG_PCIE_CAP_EXT = 2,
78672 	HPX_CFG_VEND_CAP = 3,
78673 	HPX_CFG_DVSEC = 4,
78674 	HPX_CFG_MAX = 5,
78675 };
78676 
78677 enum dmi_device_type {
78678 	DMI_DEV_TYPE_ANY = 0,
78679 	DMI_DEV_TYPE_OTHER = 1,
78680 	DMI_DEV_TYPE_UNKNOWN = 2,
78681 	DMI_DEV_TYPE_VIDEO = 3,
78682 	DMI_DEV_TYPE_SCSI = 4,
78683 	DMI_DEV_TYPE_ETHERNET = 5,
78684 	DMI_DEV_TYPE_TOKENRING = 6,
78685 	DMI_DEV_TYPE_SOUND = 7,
78686 	DMI_DEV_TYPE_PATA = 8,
78687 	DMI_DEV_TYPE_SATA = 9,
78688 	DMI_DEV_TYPE_SAS = 10,
78689 	DMI_DEV_TYPE_IPMI = -1,
78690 	DMI_DEV_TYPE_OEM_STRING = -2,
78691 	DMI_DEV_TYPE_DEV_ONBOARD = -3,
78692 	DMI_DEV_TYPE_DEV_SLOT = -4,
78693 };
78694 
78695 struct dmi_device {
78696 	struct list_head list;
78697 	int type;
78698 	const char *name;
78699 	void *device_data;
78700 };
78701 
78702 struct dmi_dev_onboard {
78703 	struct dmi_device dev;
78704 	int instance;
78705 	int segment;
78706 	int bus;
78707 	int devfn;
78708 };
78709 
78710 enum smbios_attr_enum {
78711 	SMBIOS_ATTR_NONE = 0,
78712 	SMBIOS_ATTR_LABEL_SHOW = 1,
78713 	SMBIOS_ATTR_INSTANCE_SHOW = 2,
78714 };
78715 
78716 enum acpi_attr_enum {
78717 	ACPI_ATTR_LABEL_SHOW = 0,
78718 	ACPI_ATTR_INDEX_SHOW = 1,
78719 };
78720 
78721 enum rio_device_state {
78722 	RIO_DEVICE_INITIALIZING = 0,
78723 	RIO_DEVICE_RUNNING = 1,
78724 	RIO_DEVICE_GONE = 2,
78725 	RIO_DEVICE_SHUTDOWN = 3,
78726 };
78727 
78728 struct rio_scan_node {
78729 	int mport_id;
78730 	struct list_head node;
78731 	struct rio_scan *ops;
78732 };
78733 
78734 struct rio_pwrite {
78735 	struct list_head node;
78736 	int (*pwcback)(struct rio_mport *, void *, union rio_pw_msg *, int);
78737 	void *context;
78738 };
78739 
78740 struct rio_disc_work {
78741 	struct work_struct work;
78742 	struct rio_mport *mport;
78743 };
78744 
78745 struct aperture_range {
78746 	struct device *dev;
78747 	resource_size_t base;
78748 	resource_size_t size;
78749 	struct list_head lh;
78750 	void (*detach)(struct device *);
78751 };
78752 
78753 struct linux_logo {
78754 	int type;
78755 	unsigned int width;
78756 	unsigned int height;
78757 	unsigned int clutsize;
78758 	const unsigned char *clut;
78759 	const unsigned char *data;
78760 };
78761 
78762 struct fb_modelist {
78763 	struct list_head list;
78764 	struct fb_videomode mode;
78765 };
78766 
78767 typedef unsigned int u_int;
78768 
78769 struct fb_con2fbmap {
78770 	__u32 console;
78771 	__u32 framebuffer;
78772 };
78773 
78774 enum {
78775 	FB_BLANK_UNBLANK = 0,
78776 	FB_BLANK_NORMAL = 1,
78777 	FB_BLANK_VSYNC_SUSPEND = 2,
78778 	FB_BLANK_HSYNC_SUSPEND = 3,
78779 	FB_BLANK_POWERDOWN = 4,
78780 };
78781 
78782 enum {
78783 	FBCON_LOGO_CANSHOW = -1,
78784 	FBCON_LOGO_DRAW = -2,
78785 	FBCON_LOGO_DONTSHOW = -3,
78786 };
78787 
78788 enum ipmi_addr_src {
78789 	SI_INVALID = 0,
78790 	SI_HOTMOD = 1,
78791 	SI_HARDCODED = 2,
78792 	SI_SPMI = 3,
78793 	SI_ACPI = 4,
78794 	SI_SMBIOS = 5,
78795 	SI_PCI = 6,
78796 	SI_DEVICETREE = 7,
78797 	SI_PLATFORM = 8,
78798 	SI_LAST = 9,
78799 };
78800 
78801 enum ipmi_plat_interface_type {
78802 	IPMI_PLAT_IF_SI = 0,
78803 	IPMI_PLAT_IF_SSIF = 1,
78804 };
78805 
78806 struct ipmi_plat_data {
78807 	enum ipmi_plat_interface_type iftype;
78808 	unsigned int type;
78809 	unsigned int space;
78810 	long unsigned int addr;
78811 	unsigned int regspacing;
78812 	unsigned int regsize;
78813 	unsigned int regshift;
78814 	unsigned int irq;
78815 	unsigned int slave_addr;
78816 	enum ipmi_addr_src addr_source;
78817 };
78818 
78819 enum si_type {
78820 	SI_TYPE_INVALID = 0,
78821 	SI_KCS = 1,
78822 	SI_SMIC = 2,
78823 	SI_BT = 3,
78824 	SI_TYPE_MAX = 4,
78825 };
78826 
78827 enum ipmi_addr_space {
78828 	IPMI_IO_ADDR_SPACE = 0,
78829 	IPMI_MEM_ADDR_SPACE = 1,
78830 };
78831 
78832 struct acpi_pld_info {
78833 	u8 revision;
78834 	u8 ignore_color;
78835 	u8 red;
78836 	u8 green;
78837 	u8 blue;
78838 	u16 width;
78839 	u16 height;
78840 	u8 user_visible;
78841 	u8 dock;
78842 	u8 lid;
78843 	u8 panel;
78844 	u8 vertical_position;
78845 	u8 horizontal_position;
78846 	u8 shape;
78847 	u8 group_orientation;
78848 	u8 group_token;
78849 	u8 group_position;
78850 	u8 bay;
78851 	u8 ejectable;
78852 	u8 ospm_eject_required;
78853 	u8 cabinet_number;
78854 	u8 card_cage_number;
78855 	u8 reference;
78856 	u8 rotation;
78857 	u8 order;
78858 	u8 reserved;
78859 	u16 vertical_offset;
78860 	u16 horizontal_offset;
78861 };
78862 
78863 struct acpi_handle_list {
78864 	u32 count;
78865 	acpi_handle handles[10];
78866 };
78867 
78868 enum acpi_predicate {
78869 	all_versions = 0,
78870 	less_than_or_equal = 1,
78871 	equal = 2,
78872 	greater_than_or_equal = 3,
78873 };
78874 
78875 struct acpi_platform_list {
78876 	char oem_id[7];
78877 	char oem_table_id[9];
78878 	u32 oem_revision;
78879 	char *table;
78880 	enum acpi_predicate pred;
78881 	char *reason;
78882 	u32 data;
78883 };
78884 
78885 struct acpi_device_bus_id {
78886 	const char *bus_id;
78887 	struct ida instance_ida;
78888 	struct list_head node;
78889 };
78890 
78891 struct acpi_dev_match_info {
78892 	struct acpi_device_id hid[2];
78893 	const char *uid;
78894 	s64 hrv;
78895 };
78896 
78897 struct acpi_data_node {
78898 	const char *name;
78899 	acpi_handle handle;
78900 	struct fwnode_handle fwnode;
78901 	struct fwnode_handle *parent;
78902 	struct acpi_device_data data;
78903 	struct list_head sibling;
78904 	struct kobject kobj;
78905 	struct completion kobj_done;
78906 };
78907 
78908 struct acpi_data_node_attr {
78909 	struct attribute attr;
78910 	ssize_t (*show)(struct acpi_data_node *, char *);
78911 	ssize_t (*store)(struct acpi_data_node *, const char *, size_t);
78912 };
78913 
78914 enum acpi_bus_device_type {
78915 	ACPI_BUS_TYPE_DEVICE = 0,
78916 	ACPI_BUS_TYPE_POWER = 1,
78917 	ACPI_BUS_TYPE_PROCESSOR = 2,
78918 	ACPI_BUS_TYPE_THERMAL = 3,
78919 	ACPI_BUS_TYPE_POWER_BUTTON = 4,
78920 	ACPI_BUS_TYPE_SLEEP_BUTTON = 5,
78921 	ACPI_BUS_TYPE_ECDT_EC = 6,
78922 	ACPI_BUS_DEVICE_TYPE_COUNT = 7,
78923 };
78924 
78925 struct acpi_dev_walk_context {
78926 	int (*fn)(struct acpi_device *, void *);
78927 	void *data;
78928 };
78929 
78930 struct acpi_processor_errata {
78931 	u8 smp;
78932 	struct {
78933 		u8 throttle: 1;
78934 		u8 fdma: 1;
78935 		u8 reserved: 6;
78936 		u32 bmisx;
78937 	} piix4;
78938 };
78939 
78940 struct acpi_pci_link_irq {
78941 	u32 active;
78942 	u8 triggering;
78943 	u8 polarity;
78944 	u8 resource_type;
78945 	u8 possible_count;
78946 	u32 possible[16];
78947 	u8 initialized: 1;
78948 	u8 reserved: 7;
78949 };
78950 
78951 struct acpi_pci_link {
78952 	struct list_head list;
78953 	struct acpi_device *device;
78954 	struct acpi_pci_link_irq irq;
78955 	int refcnt;
78956 };
78957 
78958 struct apd_private_data;
78959 
78960 struct apd_device_desc {
78961 	unsigned int fixed_clk_rate;
78962 	struct property_entry *properties;
78963 	int (*setup)(struct apd_private_data *);
78964 };
78965 
78966 struct apd_private_data {
78967 	struct clk *clk;
78968 	struct acpi_device *adev;
78969 	const struct apd_device_desc *dev_desc;
78970 };
78971 
78972 struct acpi_power_dependent_device {
78973 	struct device *dev;
78974 	struct list_head node;
78975 };
78976 
78977 struct acpi_power_resource {
78978 	struct acpi_device device;
78979 	struct list_head list_node;
78980 	u32 system_level;
78981 	u32 order;
78982 	unsigned int ref_count;
78983 	u8 state;
78984 	struct mutex resource_lock;
78985 	struct list_head dependents;
78986 };
78987 
78988 struct acpi_power_resource_entry {
78989 	struct list_head node;
78990 	struct acpi_power_resource *resource;
78991 };
78992 
78993 struct acpi_device_properties {
78994 	const guid_t *guid;
78995 	union acpi_object *properties;
78996 	struct list_head list;
78997 	void **bufs;
78998 };
78999 
79000 typedef acpi_status (*acpi_execute_op)(struct acpi_walk_state *);
79001 
79002 struct acpi_pcc_info {
79003 	u8 subspace_id;
79004 	u16 length;
79005 	u8 *internal_buffer;
79006 };
79007 
79008 struct acpi_ffh_info {
79009 	u64 offset;
79010 	u64 length;
79011 };
79012 
79013 struct acpi_reg_walk_info {
79014 	u32 function;
79015 	u32 reg_run_count;
79016 	acpi_adr_space_type space_id;
79017 };
79018 
79019 struct acpi_fixed_event_handler {
79020 	acpi_event_handler handler;
79021 	void *context;
79022 };
79023 
79024 struct acpi_fixed_event_info {
79025 	u8 status_register_id;
79026 	u8 enable_register_id;
79027 	u16 status_bit_mask;
79028 	u16 enable_bit_mask;
79029 };
79030 
79031 enum {
79032 	AML_FIELD_UPDATE_PRESERVE = 0,
79033 	AML_FIELD_UPDATE_WRITE_AS_ONES = 32,
79034 	AML_FIELD_UPDATE_WRITE_AS_ZEROS = 64,
79035 };
79036 
79037 struct acpi_bit_register_info {
79038 	u8 parent_register;
79039 	u8 bit_position;
79040 	u16 access_bit_mask;
79041 };
79042 
79043 typedef acpi_status (*acpi_init_handler)(acpi_handle, u32);
79044 
79045 struct acpi_init_walk_info {
79046 	u32 table_index;
79047 	u32 object_count;
79048 	u32 method_count;
79049 	u32 serial_method_count;
79050 	u32 non_serial_method_count;
79051 	u32 serialized_method_count;
79052 	u32 device_count;
79053 	u32 op_region_count;
79054 	u32 field_count;
79055 	u32 buffer_count;
79056 	u32 package_count;
79057 	u32 op_region_init;
79058 	u32 field_init;
79059 	u32 buffer_init;
79060 	u32 package_init;
79061 	acpi_owner_id owner_id;
79062 };
79063 
79064 struct acpi_device_walk_info {
79065 	struct acpi_table_desc *table_desc;
79066 	struct acpi_evaluate_info *evaluate_info;
79067 	u32 device_count;
79068 	u32 num_STA;
79069 	u32 num_INI;
79070 };
79071 
79072 typedef acpi_status (*acpi_repair_function)(struct acpi_evaluate_info *, union acpi_operand_object **);
79073 
79074 struct acpi_repair_info {
79075 	char name[4];
79076 	acpi_repair_function repair_function;
79077 };
79078 
79079 struct acpi_device_info {
79080 	u32 info_size;
79081 	u32 name;
79082 	acpi_object_type type;
79083 	u8 param_count;
79084 	u16 valid;
79085 	u8 flags;
79086 	u8 highest_dstates[4];
79087 	u8 lowest_dstates[5];
79088 	u64 address;
79089 	struct acpi_pnp_device_id hardware_id;
79090 	struct acpi_pnp_device_id unique_id;
79091 	struct acpi_pnp_device_id class_code;
79092 	struct acpi_pnp_device_id_list compatible_id_list;
79093 };
79094 
79095 typedef u16 acpi_rs_length;
79096 
79097 struct acpi_vendor_uuid {
79098 	u8 subtype;
79099 	u8 data[16];
79100 };
79101 
79102 struct acpi_vendor_walk_info {
79103 	struct acpi_vendor_uuid *uuid;
79104 	struct acpi_buffer *buffer;
79105 	acpi_status status;
79106 };
79107 
79108 typedef u32 (*acpi_sci_handler)(void *);
79109 
79110 typedef u32 (*acpi_interface_handler)(acpi_string, u32);
79111 
79112 struct acpi_mutex_info {
79113 	void *mutex;
79114 	u32 use_count;
79115 	u64 thread_id;
79116 };
79117 
79118 struct acpi_sci_handler_info {
79119 	struct acpi_sci_handler_info *next;
79120 	acpi_sci_handler address;
79121 	void *context;
79122 };
79123 
79124 struct acpi_comment_node {
79125 	char *comment;
79126 	struct acpi_comment_node *next;
79127 };
79128 
79129 struct acpi_interface_info {
79130 	char *name;
79131 	struct acpi_interface_info *next;
79132 	u8 flags;
79133 	u8 value;
79134 };
79135 
79136 struct acpi_pkg_info {
79137 	u8 *free_space;
79138 	acpi_size length;
79139 	u32 object_space;
79140 	u32 num_packages;
79141 };
79142 
79143 struct acpi_ac {
79144 	struct power_supply *charger;
79145 	struct power_supply_desc charger_desc;
79146 	struct acpi_device *device;
79147 	long long unsigned int state;
79148 	struct notifier_block battery_nb;
79149 };
79150 
79151 struct acpi_fan_fps {
79152 	u64 control;
79153 	u64 trip_point;
79154 	u64 speed;
79155 	u64 noise_level;
79156 	u64 power;
79157 	char name[20];
79158 	struct device_attribute dev_attr;
79159 };
79160 
79161 struct acpi_fan_fif {
79162 	u8 revision;
79163 	u8 fine_grain_ctrl;
79164 	u8 step_size;
79165 	u8 low_speed_notification;
79166 };
79167 
79168 struct acpi_fan_fst {
79169 	u64 revision;
79170 	u64 control;
79171 	u64 speed;
79172 };
79173 
79174 struct acpi_fan {
79175 	bool acpi4;
79176 	struct acpi_fan_fif fif;
79177 	struct acpi_fan_fps *fps;
79178 	int fps_count;
79179 	struct thermal_cooling_device *cdev;
79180 	struct device_attribute fst_speed;
79181 	struct device_attribute fine_grain_control;
79182 };
79183 
79184 typedef int mhp_t;
79185 
79186 struct memory_group {
79187 	int nid;
79188 	struct list_head memory_blocks;
79189 	long unsigned int present_kernel_pages;
79190 	long unsigned int present_movable_pages;
79191 	bool is_dynamic;
79192 	union {
79193 		struct {
79194 			long unsigned int max_pages;
79195 		} s;
79196 		struct {
79197 			long unsigned int unit_pages;
79198 		} d;
79199 	};
79200 };
79201 
79202 struct memory_block {
79203 	long unsigned int start_section_nr;
79204 	long unsigned int state;
79205 	int online_type;
79206 	int nid;
79207 	struct zone *zone;
79208 	struct device dev;
79209 	long unsigned int nr_vmemmap_pages;
79210 	struct memory_group *group;
79211 	struct list_head group_next;
79212 };
79213 
79214 typedef int (*walk_memory_blocks_func_t)(struct memory_block *, void *);
79215 
79216 struct acpi_memory_info {
79217 	struct list_head list;
79218 	u64 start_addr;
79219 	u64 length;
79220 	short unsigned int caching;
79221 	short unsigned int write_protect;
79222 	unsigned int enabled: 1;
79223 };
79224 
79225 struct acpi_memory_device {
79226 	struct acpi_device *device;
79227 	struct list_head res_list;
79228 	int mgid;
79229 };
79230 
79231 struct pnp_fixup {
79232 	char id[7];
79233 	void (*quirk_function)(struct pnp_dev *);
79234 };
79235 
79236 struct devm_clk_state {
79237 	struct clk *clk;
79238 	void (*exit)(struct clk *);
79239 };
79240 
79241 struct clk_bulk_devres {
79242 	struct clk_bulk_data *clks;
79243 	int num_clks;
79244 };
79245 
79246 struct clk_div_table {
79247 	unsigned int val;
79248 	unsigned int div;
79249 };
79250 
79251 struct clk_divider {
79252 	struct clk_hw hw;
79253 	void *reg;
79254 	u8 shift;
79255 	u8 width;
79256 	u8 flags;
79257 	const struct clk_div_table *table;
79258 	spinlock_t *lock;
79259 };
79260 
79261 struct clk_gate {
79262 	struct clk_hw hw;
79263 	void *reg;
79264 	u8 bit_idx;
79265 	u8 flags;
79266 	spinlock_t *lock;
79267 };
79268 
79269 struct u32_fract {
79270 	__u32 numerator;
79271 	__u32 denominator;
79272 };
79273 
79274 struct clk_fractional_divider {
79275 	struct clk_hw hw;
79276 	void *reg;
79277 	u8 mshift;
79278 	u8 mwidth;
79279 	u32 mmask;
79280 	u8 nshift;
79281 	u8 nwidth;
79282 	u32 nmask;
79283 	u8 flags;
79284 	void (*approximation)(struct clk_hw *, long unsigned int, long unsigned int *, long unsigned int *, long unsigned int *);
79285 	spinlock_t *lock;
79286 };
79287 
79288 struct acpi_table_csrt {
79289 	struct acpi_table_header header;
79290 };
79291 
79292 struct acpi_csrt_group {
79293 	u32 length;
79294 	u32 vendor_id;
79295 	u32 subvendor_id;
79296 	u16 device_id;
79297 	u16 subdevice_id;
79298 	u16 revision;
79299 	u16 reserved;
79300 	u32 shared_info_length;
79301 };
79302 
79303 struct acpi_csrt_shared_info {
79304 	u16 major_version;
79305 	u16 minor_version;
79306 	u32 mmio_base_low;
79307 	u32 mmio_base_high;
79308 	u32 gsi_interrupt;
79309 	u8 interrupt_polarity;
79310 	u8 interrupt_mode;
79311 	u8 num_channels;
79312 	u8 dma_address_width;
79313 	u16 base_request_line;
79314 	u16 num_handshake_signals;
79315 	u32 max_block_size;
79316 };
79317 
79318 struct acpi_dma_spec {
79319 	int chan_id;
79320 	int slave_id;
79321 	struct device *dev;
79322 };
79323 
79324 struct acpi_dma {
79325 	struct list_head dma_controllers;
79326 	struct device *dev;
79327 	struct dma_chan * (*acpi_dma_xlate)(struct acpi_dma_spec *, struct acpi_dma *);
79328 	void *data;
79329 	short unsigned int base_request_line;
79330 	short unsigned int end_request_line;
79331 };
79332 
79333 struct acpi_dma_filter_info {
79334 	dma_cap_mask_t dma_cap;
79335 	dma_filter_fn filter_fn;
79336 };
79337 
79338 struct acpi_dma_parser_data {
79339 	struct acpi_dma_spec dma_spec;
79340 	size_t index;
79341 	size_t n;
79342 };
79343 
79344 struct fixed_voltage_config {
79345 	const char *supply_name;
79346 	const char *input_supply;
79347 	int microvolts;
79348 	unsigned int startup_delay;
79349 	unsigned int off_on_delay;
79350 	unsigned int enabled_at_boot: 1;
79351 	struct regulator_init_data *init_data;
79352 };
79353 
79354 struct fixed_regulator_data {
79355 	struct fixed_voltage_config cfg;
79356 	struct regulator_init_data init_data;
79357 	struct platform_device pdev;
79358 };
79359 
79360 struct regulator_bulk_data {
79361 	const char *supply;
79362 	int init_load_uA;
79363 	struct regulator *consumer;
79364 	int ret;
79365 };
79366 
79367 enum regulator_get_type {
79368 	NORMAL_GET = 0,
79369 	EXCLUSIVE_GET = 1,
79370 	OPTIONAL_GET = 2,
79371 	MAX_GET_TYPE = 3,
79372 };
79373 
79374 struct regulator_bulk_devres {
79375 	struct regulator_bulk_data *consumers;
79376 	int num_consumers;
79377 };
79378 
79379 struct regulator_supply_alias_match {
79380 	struct device *dev;
79381 	const char *id;
79382 };
79383 
79384 struct regulator_notifier_match {
79385 	struct regulator *regulator;
79386 	struct notifier_block *nb;
79387 };
79388 
79389 struct sysrq_state {
79390 	struct input_handle handle;
79391 	struct work_struct reinject_work;
79392 	long unsigned int key_down[12];
79393 	unsigned int alt;
79394 	unsigned int alt_use;
79395 	unsigned int shift;
79396 	unsigned int shift_use;
79397 	bool active;
79398 	bool need_reinject;
79399 	bool reinjecting;
79400 	bool reset_canceled;
79401 	bool reset_requested;
79402 	long unsigned int reset_keybit[12];
79403 	int reset_seq_len;
79404 	int reset_seq_cnt;
79405 	int reset_seq_version;
79406 	struct timer_list keyreset_timer;
79407 };
79408 
79409 typedef uint32_t char32_t;
79410 
79411 struct uni_screen {
79412 	char32_t *lines[0];
79413 };
79414 
79415 struct vt_notifier_param {
79416 	struct vc_data *vc;
79417 	unsigned int c;
79418 };
79419 
79420 struct tiocl_selection {
79421 	short unsigned int xs;
79422 	short unsigned int ys;
79423 	short unsigned int xe;
79424 	short unsigned int ye;
79425 	short unsigned int sel_mode;
79426 };
79427 
79428 struct con_driver {
79429 	const struct consw *con;
79430 	const char *desc;
79431 	struct device *dev;
79432 	int node;
79433 	int first;
79434 	int last;
79435 	int flag;
79436 };
79437 
79438 enum {
79439 	blank_off = 0,
79440 	blank_normal_wait = 1,
79441 	blank_vesa_wait = 2,
79442 };
79443 
79444 enum {
79445 	EPecma = 0,
79446 	EPdec = 1,
79447 	EPeq = 2,
79448 	EPgt = 3,
79449 	EPlt = 4,
79450 };
79451 
79452 struct rgb {
79453 	u8 r;
79454 	u8 g;
79455 	u8 b;
79456 };
79457 
79458 enum {
79459 	ESnormal = 0,
79460 	ESesc = 1,
79461 	ESsquare = 2,
79462 	ESgetpars = 3,
79463 	ESfunckey = 4,
79464 	EShash = 5,
79465 	ESsetG0 = 6,
79466 	ESsetG1 = 7,
79467 	ESpercent = 8,
79468 	EScsiignore = 9,
79469 	ESnonstd = 10,
79470 	ESpalette = 11,
79471 	ESosc = 12,
79472 	ESapc = 13,
79473 	ESpm = 14,
79474 	ESdcs = 15,
79475 };
79476 
79477 struct interval {
79478 	uint32_t first;
79479 	uint32_t last;
79480 };
79481 
79482 struct vc_draw_region {
79483 	long unsigned int from;
79484 	long unsigned int to;
79485 	int x;
79486 };
79487 
79488 struct pciserial_board {
79489 	unsigned int flags;
79490 	unsigned int num_ports;
79491 	unsigned int base_baud;
79492 	unsigned int uart_offset;
79493 	unsigned int reg_shift;
79494 	unsigned int first_offset;
79495 };
79496 
79497 struct serial_private;
79498 
79499 struct pci_serial_quirk {
79500 	u32 vendor;
79501 	u32 device;
79502 	u32 subvendor;
79503 	u32 subdevice;
79504 	int (*probe)(struct pci_dev *);
79505 	int (*init)(struct pci_dev *);
79506 	int (*setup)(struct serial_private *, const struct pciserial_board *, struct uart_8250_port *, int);
79507 	void (*exit)(struct pci_dev *);
79508 };
79509 
79510 struct serial_private {
79511 	struct pci_dev *dev;
79512 	unsigned int nr;
79513 	struct pci_serial_quirk *quirk;
79514 	const struct pciserial_board *board;
79515 	int line[0];
79516 };
79517 
79518 struct f815xxa_data {
79519 	spinlock_t lock;
79520 	int idx;
79521 };
79522 
79523 struct timedia_struct {
79524 	int num;
79525 	const short unsigned int *ids;
79526 };
79527 
79528 enum pci_board_num_t {
79529 	pbn_default = 0,
79530 	pbn_b0_1_115200 = 1,
79531 	pbn_b0_2_115200 = 2,
79532 	pbn_b0_4_115200 = 3,
79533 	pbn_b0_5_115200 = 4,
79534 	pbn_b0_8_115200 = 5,
79535 	pbn_b0_1_921600 = 6,
79536 	pbn_b0_2_921600 = 7,
79537 	pbn_b0_4_921600 = 8,
79538 	pbn_b0_2_1130000 = 9,
79539 	pbn_b0_4_1152000 = 10,
79540 	pbn_b0_4_1250000 = 11,
79541 	pbn_b0_2_1843200 = 12,
79542 	pbn_b0_4_1843200 = 13,
79543 	pbn_b0_1_15625000 = 14,
79544 	pbn_b0_bt_1_115200 = 15,
79545 	pbn_b0_bt_2_115200 = 16,
79546 	pbn_b0_bt_4_115200 = 17,
79547 	pbn_b0_bt_8_115200 = 18,
79548 	pbn_b0_bt_1_460800 = 19,
79549 	pbn_b0_bt_2_460800 = 20,
79550 	pbn_b0_bt_4_460800 = 21,
79551 	pbn_b0_bt_1_921600 = 22,
79552 	pbn_b0_bt_2_921600 = 23,
79553 	pbn_b0_bt_4_921600 = 24,
79554 	pbn_b0_bt_8_921600 = 25,
79555 	pbn_b1_1_115200 = 26,
79556 	pbn_b1_2_115200 = 27,
79557 	pbn_b1_4_115200 = 28,
79558 	pbn_b1_8_115200 = 29,
79559 	pbn_b1_16_115200 = 30,
79560 	pbn_b1_1_921600 = 31,
79561 	pbn_b1_2_921600 = 32,
79562 	pbn_b1_4_921600 = 33,
79563 	pbn_b1_8_921600 = 34,
79564 	pbn_b1_2_1250000 = 35,
79565 	pbn_b1_bt_1_115200 = 36,
79566 	pbn_b1_bt_2_115200 = 37,
79567 	pbn_b1_bt_4_115200 = 38,
79568 	pbn_b1_bt_2_921600 = 39,
79569 	pbn_b1_1_1382400 = 40,
79570 	pbn_b1_2_1382400 = 41,
79571 	pbn_b1_4_1382400 = 42,
79572 	pbn_b1_8_1382400 = 43,
79573 	pbn_b2_1_115200 = 44,
79574 	pbn_b2_2_115200 = 45,
79575 	pbn_b2_4_115200 = 46,
79576 	pbn_b2_8_115200 = 47,
79577 	pbn_b2_1_460800 = 48,
79578 	pbn_b2_4_460800 = 49,
79579 	pbn_b2_8_460800 = 50,
79580 	pbn_b2_16_460800 = 51,
79581 	pbn_b2_1_921600 = 52,
79582 	pbn_b2_4_921600 = 53,
79583 	pbn_b2_8_921600 = 54,
79584 	pbn_b2_8_1152000 = 55,
79585 	pbn_b2_bt_1_115200 = 56,
79586 	pbn_b2_bt_2_115200 = 57,
79587 	pbn_b2_bt_4_115200 = 58,
79588 	pbn_b2_bt_2_921600 = 59,
79589 	pbn_b2_bt_4_921600 = 60,
79590 	pbn_b3_2_115200 = 61,
79591 	pbn_b3_4_115200 = 62,
79592 	pbn_b3_8_115200 = 63,
79593 	pbn_b4_bt_2_921600 = 64,
79594 	pbn_b4_bt_4_921600 = 65,
79595 	pbn_b4_bt_8_921600 = 66,
79596 	pbn_panacom = 67,
79597 	pbn_panacom2 = 68,
79598 	pbn_panacom4 = 69,
79599 	pbn_plx_romulus = 70,
79600 	pbn_oxsemi = 71,
79601 	pbn_oxsemi_1_15625000 = 72,
79602 	pbn_oxsemi_2_15625000 = 73,
79603 	pbn_oxsemi_4_15625000 = 74,
79604 	pbn_oxsemi_8_15625000 = 75,
79605 	pbn_intel_i960 = 76,
79606 	pbn_sgi_ioc3 = 77,
79607 	pbn_computone_4 = 78,
79608 	pbn_computone_6 = 79,
79609 	pbn_computone_8 = 80,
79610 	pbn_sbsxrsio = 81,
79611 	pbn_pasemi_1682M = 82,
79612 	pbn_ni8430_2 = 83,
79613 	pbn_ni8430_4 = 84,
79614 	pbn_ni8430_8 = 85,
79615 	pbn_ni8430_16 = 86,
79616 	pbn_ADDIDATA_PCIe_1_3906250 = 87,
79617 	pbn_ADDIDATA_PCIe_2_3906250 = 88,
79618 	pbn_ADDIDATA_PCIe_4_3906250 = 89,
79619 	pbn_ADDIDATA_PCIe_8_3906250 = 90,
79620 	pbn_ce4100_1_115200 = 91,
79621 	pbn_omegapci = 92,
79622 	pbn_NETMOS9900_2s_115200 = 93,
79623 	pbn_brcm_trumanage = 94,
79624 	pbn_fintek_4 = 95,
79625 	pbn_fintek_8 = 96,
79626 	pbn_fintek_12 = 97,
79627 	pbn_fintek_F81504A = 98,
79628 	pbn_fintek_F81508A = 99,
79629 	pbn_fintek_F81512A = 100,
79630 	pbn_wch382_2 = 101,
79631 	pbn_wch384_4 = 102,
79632 	pbn_wch384_8 = 103,
79633 	pbn_sunix_pci_1s = 104,
79634 	pbn_sunix_pci_2s = 105,
79635 	pbn_sunix_pci_4s = 106,
79636 	pbn_sunix_pci_8s = 107,
79637 	pbn_sunix_pci_16s = 108,
79638 	pbn_titan_1_4000000 = 109,
79639 	pbn_titan_2_4000000 = 110,
79640 	pbn_titan_4_4000000 = 111,
79641 	pbn_titan_8_4000000 = 112,
79642 	pbn_moxa8250_2p = 113,
79643 	pbn_moxa8250_4p = 114,
79644 	pbn_moxa8250_8p = 115,
79645 };
79646 
79647 struct gpio_array;
79648 
79649 enum mctrl_gpio_idx {
79650 	UART_GPIO_CTS = 0,
79651 	UART_GPIO_DSR = 1,
79652 	UART_GPIO_DCD = 2,
79653 	UART_GPIO_RNG = 3,
79654 	UART_GPIO_RI = 3,
79655 	UART_GPIO_RTS = 4,
79656 	UART_GPIO_DTR = 5,
79657 	UART_GPIO_MAX = 6,
79658 };
79659 
79660 struct mctrl_gpios {
79661 	struct uart_port *port;
79662 	struct gpio_desc *gpio[6];
79663 	int irq[6];
79664 	unsigned int mctrl_prev;
79665 	bool mctrl_on;
79666 };
79667 
79668 struct iommu_group {
79669 	struct kobject kobj;
79670 	struct kobject *devices_kobj;
79671 	struct list_head devices;
79672 	struct xarray pasid_array;
79673 	struct mutex mutex;
79674 	void *iommu_data;
79675 	void (*iommu_data_release)(void *);
79676 	char *name;
79677 	int id;
79678 	struct iommu_domain *default_domain;
79679 	struct iommu_domain *blocking_domain;
79680 	struct iommu_domain *domain;
79681 	struct list_head entry;
79682 	unsigned int owner_cnt;
79683 	void *owner;
79684 };
79685 
79686 enum iommu_fault_type {
79687 	IOMMU_FAULT_DMA_UNRECOV = 1,
79688 	IOMMU_FAULT_PAGE_REQ = 2,
79689 };
79690 
79691 enum iommu_resv_type {
79692 	IOMMU_RESV_DIRECT = 0,
79693 	IOMMU_RESV_DIRECT_RELAXABLE = 1,
79694 	IOMMU_RESV_RESERVED = 2,
79695 	IOMMU_RESV_MSI = 3,
79696 	IOMMU_RESV_SW_MSI = 4,
79697 };
79698 
79699 struct iommu_resv_region {
79700 	struct list_head list;
79701 	phys_addr_t start;
79702 	size_t length;
79703 	int prot;
79704 	enum iommu_resv_type type;
79705 	void (*free)(struct device *, struct iommu_resv_region *);
79706 };
79707 
79708 struct fsl_mc_obj_desc {
79709 	char type[16];
79710 	int id;
79711 	u16 vendor;
79712 	u16 ver_major;
79713 	u16 ver_minor;
79714 	u8 irq_count;
79715 	u8 region_count;
79716 	u32 state;
79717 	char label[16];
79718 	u16 flags;
79719 };
79720 
79721 struct fsl_mc_io;
79722 
79723 struct fsl_mc_device_irq;
79724 
79725 struct fsl_mc_resource;
79726 
79727 struct fsl_mc_device {
79728 	struct device dev;
79729 	u64 dma_mask;
79730 	u16 flags;
79731 	u32 icid;
79732 	u16 mc_handle;
79733 	struct fsl_mc_io *mc_io;
79734 	struct fsl_mc_obj_desc obj_desc;
79735 	struct resource *regions;
79736 	struct fsl_mc_device_irq **irqs;
79737 	struct fsl_mc_resource *resource;
79738 	struct device_link *consumer_link;
79739 	const char *driver_override;
79740 };
79741 
79742 enum fsl_mc_pool_type {
79743 	FSL_MC_POOL_DPMCP = 0,
79744 	FSL_MC_POOL_DPBP = 1,
79745 	FSL_MC_POOL_DPCON = 2,
79746 	FSL_MC_POOL_IRQ = 3,
79747 	FSL_MC_NUM_POOL_TYPES = 4,
79748 };
79749 
79750 struct fsl_mc_resource_pool;
79751 
79752 struct fsl_mc_resource {
79753 	enum fsl_mc_pool_type type;
79754 	s32 id;
79755 	void *data;
79756 	struct fsl_mc_resource_pool *parent_pool;
79757 	struct list_head node;
79758 };
79759 
79760 struct fsl_mc_device_irq {
79761 	unsigned int virq;
79762 	struct fsl_mc_device *mc_dev;
79763 	u8 dev_irq_index;
79764 	struct fsl_mc_resource resource;
79765 };
79766 
79767 struct fsl_mc_io {
79768 	struct device *dev;
79769 	u16 flags;
79770 	u32 portal_size;
79771 	phys_addr_t portal_phys_addr;
79772 	void *portal_virt_addr;
79773 	struct fsl_mc_device *dpmcp_dev;
79774 	union {
79775 		struct mutex mutex;
79776 		raw_spinlock_t spinlock;
79777 	};
79778 };
79779 
79780 enum cc_attr {
79781 	CC_ATTR_MEM_ENCRYPT = 0,
79782 	CC_ATTR_HOST_MEM_ENCRYPT = 1,
79783 	CC_ATTR_GUEST_MEM_ENCRYPT = 2,
79784 	CC_ATTR_GUEST_STATE_ENCRYPT = 3,
79785 	CC_ATTR_GUEST_UNROLL_STRING_IO = 4,
79786 	CC_ATTR_GUEST_SEV_SNP = 5,
79787 	CC_ATTR_HOTPLUG_DISABLED = 6,
79788 };
79789 
79790 struct group_device {
79791 	struct list_head list;
79792 	struct device *dev;
79793 	char *name;
79794 };
79795 
79796 struct iommu_group_attribute {
79797 	struct attribute attr;
79798 	ssize_t (*show)(struct iommu_group *, char *);
79799 	ssize_t (*store)(struct iommu_group *, const char *, size_t);
79800 };
79801 
79802 struct group_for_pci_data {
79803 	struct pci_dev *pdev;
79804 	struct iommu_group *group;
79805 };
79806 
79807 struct __group_domain_type {
79808 	struct device *dev;
79809 	unsigned int type;
79810 };
79811 
79812 struct drm_auth {
79813 	drm_magic_t magic;
79814 };
79815 
79816 struct drm_mode_crtc_lut {
79817 	__u32 crtc_id;
79818 	__u32 gamma_size;
79819 	__u64 red;
79820 	__u64 green;
79821 	__u64 blue;
79822 };
79823 
79824 struct drm_color_lut {
79825 	__u16 red;
79826 	__u16 green;
79827 	__u16 blue;
79828 	__u16 reserved;
79829 };
79830 
79831 enum drm_color_lut_tests {
79832 	DRM_COLOR_LUT_EQUAL_CHANNELS = 1,
79833 	DRM_COLOR_LUT_NON_DECREASING = 2,
79834 };
79835 
79836 enum drm_minor_type {
79837 	DRM_MINOR_PRIMARY = 0,
79838 	DRM_MINOR_CONTROL = 1,
79839 	DRM_MINOR_RENDER = 2,
79840 	DRM_MINOR_ACCEL = 32,
79841 };
79842 
79843 struct drm_version {
79844 	int version_major;
79845 	int version_minor;
79846 	int version_patchlevel;
79847 	__kernel_size_t name_len;
79848 	char *name;
79849 	__kernel_size_t date_len;
79850 	char *date;
79851 	__kernel_size_t desc_len;
79852 	char *desc;
79853 };
79854 
79855 struct drm_unique {
79856 	__kernel_size_t unique_len;
79857 	char *unique;
79858 };
79859 
79860 struct drm_client {
79861 	int idx;
79862 	int auth;
79863 	long unsigned int pid;
79864 	long unsigned int uid;
79865 	long unsigned int magic;
79866 	long unsigned int iocs;
79867 };
79868 
79869 enum drm_stat_type {
79870 	_DRM_STAT_LOCK = 0,
79871 	_DRM_STAT_OPENS = 1,
79872 	_DRM_STAT_CLOSES = 2,
79873 	_DRM_STAT_IOCTLS = 3,
79874 	_DRM_STAT_LOCKS = 4,
79875 	_DRM_STAT_UNLOCKS = 5,
79876 	_DRM_STAT_VALUE = 6,
79877 	_DRM_STAT_BYTE = 7,
79878 	_DRM_STAT_COUNT = 8,
79879 	_DRM_STAT_IRQ = 9,
79880 	_DRM_STAT_PRIMARY = 10,
79881 	_DRM_STAT_SECONDARY = 11,
79882 	_DRM_STAT_DMA = 12,
79883 	_DRM_STAT_SPECIAL = 13,
79884 	_DRM_STAT_MISSED = 14,
79885 };
79886 
79887 struct drm_stats {
79888 	long unsigned int count;
79889 	struct {
79890 		long unsigned int value;
79891 		enum drm_stat_type type;
79892 	} data[15];
79893 };
79894 
79895 struct drm_set_version {
79896 	int drm_di_major;
79897 	int drm_di_minor;
79898 	int drm_dd_major;
79899 	int drm_dd_minor;
79900 };
79901 
79902 struct drm_get_cap {
79903 	__u64 capability;
79904 	__u64 value;
79905 };
79906 
79907 struct drm_set_client_cap {
79908 	__u64 capability;
79909 	__u64 value;
79910 };
79911 
79912 enum drm_mm_insert_mode {
79913 	DRM_MM_INSERT_BEST = 0,
79914 	DRM_MM_INSERT_LOW = 1,
79915 	DRM_MM_INSERT_HIGH = 2,
79916 	DRM_MM_INSERT_EVICT = 3,
79917 	DRM_MM_INSERT_ONCE = 2147483648,
79918 	DRM_MM_INSERT_HIGHEST = 2147483650,
79919 	DRM_MM_INSERT_LOWEST = 2147483649,
79920 };
79921 
79922 struct drm_mm_scan {
79923 	struct drm_mm *mm;
79924 	u64 size;
79925 	u64 alignment;
79926 	u64 remainder_mask;
79927 	u64 range_start;
79928 	u64 range_end;
79929 	u64 hit_start;
79930 	u64 hit_end;
79931 	long unsigned int color;
79932 	enum drm_mm_insert_mode mode;
79933 };
79934 
79935 struct drm_print_iterator {
79936 	void *data;
79937 	ssize_t start;
79938 	ssize_t remain;
79939 	ssize_t offset;
79940 };
79941 
79942 struct trace_event_raw_drm_vblank_event {
79943 	struct trace_entry ent;
79944 	int crtc;
79945 	unsigned int seq;
79946 	ktime_t time;
79947 	bool high_prec;
79948 	char __data[0];
79949 };
79950 
79951 struct trace_event_raw_drm_vblank_event_queued {
79952 	struct trace_entry ent;
79953 	struct drm_file *file;
79954 	int crtc;
79955 	unsigned int seq;
79956 	char __data[0];
79957 };
79958 
79959 struct trace_event_raw_drm_vblank_event_delivered {
79960 	struct trace_entry ent;
79961 	struct drm_file *file;
79962 	int crtc;
79963 	unsigned int seq;
79964 	char __data[0];
79965 };
79966 
79967 struct trace_event_data_offsets_drm_vblank_event {};
79968 
79969 struct trace_event_data_offsets_drm_vblank_event_queued {};
79970 
79971 struct trace_event_data_offsets_drm_vblank_event_delivered {};
79972 
79973 typedef void (*btf_trace_drm_vblank_event)(void *, int, unsigned int, ktime_t, bool);
79974 
79975 typedef void (*btf_trace_drm_vblank_event_queued)(void *, struct drm_file *, int, unsigned int);
79976 
79977 typedef void (*btf_trace_drm_vblank_event_delivered)(void *, struct drm_file *, int, unsigned int);
79978 
79979 struct drm_vblank_work {
79980 	struct kthread_work base;
79981 	struct drm_vblank_crtc *vblank;
79982 	u64 count;
79983 	int cancelling;
79984 	struct list_head node;
79985 };
79986 
79987 struct drm_property_blob;
79988 
79989 struct drm_connector___2;
79990 
79991 struct drm_connector_state___2 {
79992 	struct drm_connector___2 *connector;
79993 	struct drm_crtc *crtc;
79994 	struct drm_encoder *best_encoder;
79995 	enum drm_link_status link_status;
79996 	struct drm_atomic_state *state;
79997 	struct drm_crtc_commit *commit;
79998 	struct drm_tv_connector_state tv;
79999 	bool self_refresh_aware;
80000 	enum hdmi_picture_aspect picture_aspect_ratio;
80001 	unsigned int content_type;
80002 	unsigned int hdcp_content_type;
80003 	unsigned int scaling_mode;
80004 	unsigned int content_protection;
80005 	u32 colorspace;
80006 	struct drm_writeback_job *writeback_job;
80007 	u8 max_requested_bpc;
80008 	u8 max_bpc;
80009 	enum drm_privacy_screen_status privacy_screen_sw_state;
80010 	struct drm_property_blob *hdr_output_metadata;
80011 };
80012 
80013 struct drm_device___2;
80014 
80015 struct drm_connector_funcs___2;
80016 
80017 struct drm_tile_group___2;
80018 
80019 struct drm_connector___2 {
80020 	struct drm_device___2 *dev;
80021 	struct device *kdev;
80022 	struct device_attribute *attr;
80023 	struct fwnode_handle *fwnode;
80024 	struct list_head head;
80025 	struct list_head global_connector_list_entry;
80026 	struct drm_mode_object base;
80027 	char *name;
80028 	struct mutex mutex;
80029 	unsigned int index;
80030 	int connector_type;
80031 	int connector_type_id;
80032 	bool interlace_allowed;
80033 	bool doublescan_allowed;
80034 	bool stereo_allowed;
80035 	bool ycbcr_420_allowed;
80036 	enum drm_connector_registration_state registration_state;
80037 	struct list_head modes;
80038 	enum drm_connector_status status;
80039 	struct list_head probed_modes;
80040 	struct drm_display_info display_info;
80041 	const struct drm_connector_funcs___2 *funcs;
80042 	struct drm_property_blob *edid_blob_ptr;
80043 	struct drm_object_properties properties;
80044 	struct drm_property *scaling_mode_property;
80045 	struct drm_property *vrr_capable_property;
80046 	struct drm_property *colorspace_property;
80047 	struct drm_property_blob *path_blob_ptr;
80048 	struct drm_property *max_bpc_property;
80049 	struct drm_privacy_screen *privacy_screen;
80050 	struct notifier_block privacy_screen_notifier;
80051 	struct drm_property *privacy_screen_sw_state_property;
80052 	struct drm_property *privacy_screen_hw_state_property;
80053 	uint8_t polled;
80054 	int dpms;
80055 	const struct drm_connector_helper_funcs *helper_private;
80056 	struct drm_cmdline_mode cmdline_mode;
80057 	enum drm_connector_force force;
80058 	const struct drm_edid *edid_override;
80059 	struct mutex edid_override_mutex;
80060 	u64 epoch_counter;
80061 	u32 possible_encoders;
80062 	struct drm_encoder *encoder;
80063 	uint8_t eld[128];
80064 	bool latency_present[2];
80065 	int video_latency[2];
80066 	int audio_latency[2];
80067 	struct i2c_adapter *ddc;
80068 	int null_edid_counter;
80069 	unsigned int bad_edid_counter;
80070 	bool edid_corrupt;
80071 	u8 real_edid_checksum;
80072 	struct dentry *debugfs_entry;
80073 	struct drm_connector_state___2 *state;
80074 	struct drm_property_blob *tile_blob_ptr;
80075 	bool has_tile;
80076 	struct drm_tile_group___2 *tile_group;
80077 	bool tile_is_single_monitor;
80078 	uint8_t num_h_tile;
80079 	uint8_t num_v_tile;
80080 	uint8_t tile_h_loc;
80081 	uint8_t tile_v_loc;
80082 	uint16_t tile_h_size;
80083 	uint16_t tile_v_size;
80084 	struct llist_node free_node;
80085 	struct hdr_sink_metadata hdr_sink_metadata;
80086 };
80087 
80088 struct drm_connector_funcs___2 {
80089 	int (*dpms)(struct drm_connector___2 *, int);
80090 	void (*reset)(struct drm_connector___2 *);
80091 	enum drm_connector_status (*detect)(struct drm_connector___2 *, bool);
80092 	void (*force)(struct drm_connector___2 *);
80093 	int (*fill_modes)(struct drm_connector___2 *, uint32_t, uint32_t);
80094 	int (*set_property)(struct drm_connector___2 *, struct drm_property *, uint64_t);
80095 	int (*late_register)(struct drm_connector___2 *);
80096 	void (*early_unregister)(struct drm_connector___2 *);
80097 	void (*destroy)(struct drm_connector___2 *);
80098 	struct drm_connector_state___2 * (*atomic_duplicate_state)(struct drm_connector___2 *);
80099 	void (*atomic_destroy_state)(struct drm_connector___2 *, struct drm_connector_state___2 *);
80100 	int (*atomic_set_property)(struct drm_connector___2 *, struct drm_connector_state___2 *, struct drm_property *, uint64_t);
80101 	int (*atomic_get_property)(struct drm_connector___2 *, const struct drm_connector_state___2 *, struct drm_property *, uint64_t *);
80102 	void (*atomic_print_state)(struct drm_printer *, const struct drm_connector_state___2 *);
80103 	void (*oob_hotplug_event)(struct drm_connector___2 *);
80104 	void (*debugfs_init)(struct drm_connector___2 *, struct dentry *);
80105 };
80106 
80107 struct drm_mode_config_funcs___2;
80108 
80109 struct drm_mode_config___2 {
80110 	struct mutex mutex;
80111 	struct drm_modeset_lock connection_mutex;
80112 	struct drm_modeset_acquire_ctx *acquire_ctx;
80113 	struct mutex idr_mutex;
80114 	struct idr object_idr;
80115 	struct idr tile_idr;
80116 	struct mutex fb_lock;
80117 	int num_fb;
80118 	struct list_head fb_list;
80119 	spinlock_t connector_list_lock;
80120 	int num_connector;
80121 	struct ida connector_ida;
80122 	struct list_head connector_list;
80123 	struct llist_head connector_free_list;
80124 	struct work_struct connector_free_work;
80125 	int num_encoder;
80126 	struct list_head encoder_list;
80127 	int num_total_plane;
80128 	struct list_head plane_list;
80129 	int num_crtc;
80130 	struct list_head crtc_list;
80131 	struct list_head property_list;
80132 	struct list_head privobj_list;
80133 	int min_width;
80134 	int min_height;
80135 	int max_width;
80136 	int max_height;
80137 	const struct drm_mode_config_funcs___2 *funcs;
80138 	bool poll_enabled;
80139 	bool poll_running;
80140 	bool delayed_event;
80141 	struct delayed_work output_poll_work;
80142 	struct mutex blob_lock;
80143 	struct list_head property_blob_list;
80144 	struct drm_property *edid_property;
80145 	struct drm_property *dpms_property;
80146 	struct drm_property *path_property;
80147 	struct drm_property *tile_property;
80148 	struct drm_property *link_status_property;
80149 	struct drm_property *plane_type_property;
80150 	struct drm_property *prop_src_x;
80151 	struct drm_property *prop_src_y;
80152 	struct drm_property *prop_src_w;
80153 	struct drm_property *prop_src_h;
80154 	struct drm_property *prop_crtc_x;
80155 	struct drm_property *prop_crtc_y;
80156 	struct drm_property *prop_crtc_w;
80157 	struct drm_property *prop_crtc_h;
80158 	struct drm_property *prop_fb_id;
80159 	struct drm_property *prop_in_fence_fd;
80160 	struct drm_property *prop_out_fence_ptr;
80161 	struct drm_property *prop_crtc_id;
80162 	struct drm_property *prop_fb_damage_clips;
80163 	struct drm_property *prop_active;
80164 	struct drm_property *prop_mode_id;
80165 	struct drm_property *prop_vrr_enabled;
80166 	struct drm_property *dvi_i_subconnector_property;
80167 	struct drm_property *dvi_i_select_subconnector_property;
80168 	struct drm_property *dp_subconnector_property;
80169 	struct drm_property *tv_subconnector_property;
80170 	struct drm_property *tv_select_subconnector_property;
80171 	struct drm_property *tv_mode_property;
80172 	struct drm_property *tv_left_margin_property;
80173 	struct drm_property *tv_right_margin_property;
80174 	struct drm_property *tv_top_margin_property;
80175 	struct drm_property *tv_bottom_margin_property;
80176 	struct drm_property *tv_brightness_property;
80177 	struct drm_property *tv_contrast_property;
80178 	struct drm_property *tv_flicker_reduction_property;
80179 	struct drm_property *tv_overscan_property;
80180 	struct drm_property *tv_saturation_property;
80181 	struct drm_property *tv_hue_property;
80182 	struct drm_property *scaling_mode_property;
80183 	struct drm_property *aspect_ratio_property;
80184 	struct drm_property *content_type_property;
80185 	struct drm_property *degamma_lut_property;
80186 	struct drm_property *degamma_lut_size_property;
80187 	struct drm_property *ctm_property;
80188 	struct drm_property *gamma_lut_property;
80189 	struct drm_property *gamma_lut_size_property;
80190 	struct drm_property *suggested_x_property;
80191 	struct drm_property *suggested_y_property;
80192 	struct drm_property *non_desktop_property;
80193 	struct drm_property *panel_orientation_property;
80194 	struct drm_property *writeback_fb_id_property;
80195 	struct drm_property *writeback_pixel_formats_property;
80196 	struct drm_property *writeback_out_fence_ptr_property;
80197 	struct drm_property *hdr_output_metadata_property;
80198 	struct drm_property *content_protection_property;
80199 	struct drm_property *hdcp_content_type_property;
80200 	uint32_t preferred_depth;
80201 	uint32_t prefer_shadow;
80202 	bool prefer_shadow_fbdev;
80203 	bool quirk_addfb_prefer_xbgr_30bpp;
80204 	bool quirk_addfb_prefer_host_byte_order;
80205 	bool async_page_flip;
80206 	bool fb_modifiers_not_supported;
80207 	bool normalize_zpos;
80208 	struct drm_property *modifiers_property;
80209 	uint32_t cursor_width;
80210 	uint32_t cursor_height;
80211 	struct drm_atomic_state *suspend_state;
80212 	const struct drm_mode_config_helper_funcs *helper_private;
80213 };
80214 
80215 struct drm_driver___2;
80216 
80217 struct drm_master___2;
80218 
80219 struct drm_device___2 {
80220 	int if_version;
80221 	struct kref ref;
80222 	struct device *dev;
80223 	struct {
80224 		struct list_head resources;
80225 		void *final_kfree;
80226 		spinlock_t lock;
80227 	} managed;
80228 	const struct drm_driver___2 *driver;
80229 	void *dev_private;
80230 	struct drm_minor *primary;
80231 	struct drm_minor *render;
80232 	struct drm_minor *accel;
80233 	bool registered;
80234 	struct drm_master___2 *master;
80235 	u32 driver_features;
80236 	bool unplugged;
80237 	struct inode *anon_inode;
80238 	char *unique;
80239 	struct mutex struct_mutex;
80240 	struct mutex master_mutex;
80241 	atomic_t open_count;
80242 	struct mutex filelist_mutex;
80243 	struct list_head filelist;
80244 	struct list_head filelist_internal;
80245 	struct mutex clientlist_mutex;
80246 	struct list_head clientlist;
80247 	bool vblank_disable_immediate;
80248 	struct drm_vblank_crtc *vblank;
80249 	spinlock_t vblank_time_lock;
80250 	spinlock_t vbl_lock;
80251 	u32 max_vblank_count;
80252 	struct list_head vblank_event_list;
80253 	spinlock_t event_lock;
80254 	unsigned int num_crtcs;
80255 	struct drm_mode_config___2 mode_config;
80256 	struct mutex object_name_lock;
80257 	struct idr object_name_idr;
80258 	struct drm_vma_offset_manager *vma_offset_manager;
80259 	struct drm_vram_mm *vram_mm;
80260 	enum switch_power_state switch_power_state;
80261 	struct drm_fb_helper *fb_helper;
80262 };
80263 
80264 struct drm_tile_group___2 {
80265 	struct kref refcount;
80266 	struct drm_device___2 *dev;
80267 	int id;
80268 	u8 group_data[8];
80269 };
80270 
80271 struct drm_master___2 {
80272 	struct kref refcount;
80273 	struct drm_device___2 *dev;
80274 	char *unique;
80275 	int unique_len;
80276 	struct idr magic_map;
80277 	void *driver_priv;
80278 	struct drm_master___2 *lessor;
80279 	int lessee_id;
80280 	struct list_head lessee_list;
80281 	struct list_head lessees;
80282 	struct idr leases;
80283 	struct idr lessee_idr;
80284 };
80285 
80286 enum drm_mode_status;
80287 
80288 struct drm_display_mode;
80289 
80290 struct drm_mode_config_funcs___2 {
80291 	struct drm_framebuffer * (*fb_create)(struct drm_device___2 *, struct drm_file *, const struct drm_mode_fb_cmd2 *);
80292 	const struct drm_format_info * (*get_format_info)(const struct drm_mode_fb_cmd2 *);
80293 	void (*output_poll_changed)(struct drm_device___2 *);
80294 	enum drm_mode_status (*mode_valid)(struct drm_device___2 *, const struct drm_display_mode *);
80295 	int (*atomic_check)(struct drm_device___2 *, struct drm_atomic_state *);
80296 	int (*atomic_commit)(struct drm_device___2 *, struct drm_atomic_state *, bool);
80297 	struct drm_atomic_state * (*atomic_state_alloc)(struct drm_device___2 *);
80298 	void (*atomic_state_clear)(struct drm_atomic_state *);
80299 	void (*atomic_state_free)(struct drm_atomic_state *);
80300 };
80301 
80302 struct drm_driver___2 {
80303 	int (*load)(struct drm_device___2 *, long unsigned int);
80304 	int (*open)(struct drm_device___2 *, struct drm_file *);
80305 	void (*postclose)(struct drm_device___2 *, struct drm_file *);
80306 	void (*lastclose)(struct drm_device___2 *);
80307 	void (*unload)(struct drm_device___2 *);
80308 	void (*release)(struct drm_device___2 *);
80309 	void (*master_set)(struct drm_device___2 *, struct drm_file *, bool);
80310 	void (*master_drop)(struct drm_device___2 *, struct drm_file *);
80311 	void (*debugfs_init)(struct drm_minor *);
80312 	struct drm_gem_object * (*gem_create_object)(struct drm_device___2 *, size_t);
80313 	int (*prime_handle_to_fd)(struct drm_device___2 *, struct drm_file *, uint32_t, uint32_t, int *);
80314 	int (*prime_fd_to_handle)(struct drm_device___2 *, struct drm_file *, int, uint32_t *);
80315 	struct drm_gem_object * (*gem_prime_import)(struct drm_device___2 *, struct dma_buf *);
80316 	struct drm_gem_object * (*gem_prime_import_sg_table)(struct drm_device___2 *, struct dma_buf_attachment *, struct sg_table *);
80317 	int (*gem_prime_mmap)(struct drm_gem_object *, struct vm_area_struct *);
80318 	int (*dumb_create)(struct drm_file *, struct drm_device___2 *, struct drm_mode_create_dumb *);
80319 	int (*dumb_map_offset)(struct drm_file *, struct drm_device___2 *, uint32_t, uint64_t *);
80320 	int (*dumb_destroy)(struct drm_file *, struct drm_device___2 *, uint32_t);
80321 	int major;
80322 	int minor;
80323 	int patchlevel;
80324 	char *name;
80325 	char *desc;
80326 	char *date;
80327 	u32 driver_features;
80328 	const struct drm_ioctl_desc *ioctls;
80329 	int num_ioctls;
80330 	const struct file_operations *fops;
80331 };
80332 
80333 struct subsys_dev_iter {
80334 	struct klist_iter ki;
80335 	const struct device_type *type;
80336 };
80337 
80338 struct subsys_interface {
80339 	const char *name;
80340 	struct bus_type *subsys;
80341 	struct list_head node;
80342 	int (*add_dev)(struct device *, struct subsys_interface *);
80343 	void (*remove_dev)(struct device *, struct subsys_interface *);
80344 };
80345 
80346 struct cpu_attr {
80347 	struct device_attribute attr;
80348 	const struct cpumask * const map;
80349 };
80350 
80351 struct devres_node {
80352 	struct list_head entry;
80353 	dr_release_t release;
80354 	const char *name;
80355 	size_t size;
80356 };
80357 
80358 struct devres {
80359 	struct devres_node node;
80360 	u8 data[0];
80361 };
80362 
80363 struct devres_group {
80364 	struct devres_node node[2];
80365 	void *id;
80366 	int color;
80367 };
80368 
80369 struct action_devres {
80370 	void *data;
80371 	void (*action)(void *);
80372 };
80373 
80374 struct pages_devres {
80375 	long unsigned int addr;
80376 	unsigned int order;
80377 };
80378 
80379 typedef void * (*devcon_match_fn_t)(const struct fwnode_handle *, const char *, void *);
80380 
80381 struct builtin_fw {
80382 	char *name;
80383 	void *data;
80384 	long unsigned int size;
80385 };
80386 
80387 struct node_hmem_attrs {
80388 	unsigned int read_bandwidth;
80389 	unsigned int write_bandwidth;
80390 	unsigned int read_latency;
80391 	unsigned int write_latency;
80392 };
80393 
80394 enum cache_indexing {
80395 	NODE_CACHE_DIRECT_MAP = 0,
80396 	NODE_CACHE_INDEXED = 1,
80397 	NODE_CACHE_OTHER = 2,
80398 };
80399 
80400 enum cache_write_policy {
80401 	NODE_CACHE_WRITE_BACK = 0,
80402 	NODE_CACHE_WRITE_THROUGH = 1,
80403 	NODE_CACHE_WRITE_OTHER = 2,
80404 };
80405 
80406 struct node_cache_attrs {
80407 	enum cache_indexing indexing;
80408 	enum cache_write_policy write_policy;
80409 	u64 size;
80410 	u16 line_size;
80411 	u8 level;
80412 };
80413 
80414 struct node_access_nodes {
80415 	struct device dev;
80416 	struct list_head list_node;
80417 	unsigned int access;
80418 	struct node_hmem_attrs hmem_attrs;
80419 };
80420 
80421 struct node_cache_info {
80422 	struct device dev;
80423 	struct list_head node;
80424 	struct node_cache_attrs cache_attrs;
80425 };
80426 
80427 struct node_attr {
80428 	struct device_attribute attr;
80429 	enum node_states state;
80430 };
80431 
80432 struct regcache_rbtree_node {
80433 	void *block;
80434 	long int *cache_present;
80435 	unsigned int base_reg;
80436 	unsigned int blklen;
80437 	struct rb_node node;
80438 };
80439 
80440 struct regcache_rbtree_ctx {
80441 	struct rb_root root;
80442 	struct regcache_rbtree_node *cached_rbnode;
80443 };
80444 
80445 struct regmap_irq_type {
80446 	unsigned int type_reg_offset;
80447 	unsigned int type_reg_mask;
80448 	unsigned int type_rising_val;
80449 	unsigned int type_falling_val;
80450 	unsigned int type_level_low_val;
80451 	unsigned int type_level_high_val;
80452 	unsigned int types_supported;
80453 };
80454 
80455 struct regmap_irq {
80456 	unsigned int reg_offset;
80457 	unsigned int mask;
80458 	struct regmap_irq_type type;
80459 };
80460 
80461 struct regmap_irq_sub_irq_map {
80462 	unsigned int num_regs;
80463 	unsigned int *offset;
80464 };
80465 
80466 struct regmap_irq_chip_data;
80467 
80468 struct regmap_irq_chip {
80469 	const char *name;
80470 	unsigned int main_status;
80471 	unsigned int num_main_status_bits;
80472 	struct regmap_irq_sub_irq_map *sub_reg_offsets;
80473 	int num_main_regs;
80474 	unsigned int status_base;
80475 	unsigned int mask_base;
80476 	unsigned int unmask_base;
80477 	unsigned int ack_base;
80478 	unsigned int wake_base;
80479 	unsigned int type_base;
80480 	unsigned int *virt_reg_base;
80481 	const unsigned int *config_base;
80482 	unsigned int irq_reg_stride;
80483 	unsigned int init_ack_masked: 1;
80484 	unsigned int mask_invert: 1;
80485 	unsigned int mask_unmask_non_inverted: 1;
80486 	unsigned int use_ack: 1;
80487 	unsigned int ack_invert: 1;
80488 	unsigned int clear_ack: 1;
80489 	unsigned int wake_invert: 1;
80490 	unsigned int runtime_pm: 1;
80491 	unsigned int type_invert: 1;
80492 	unsigned int type_in_mask: 1;
80493 	unsigned int clear_on_unmask: 1;
80494 	unsigned int not_fixed_stride: 1;
80495 	unsigned int status_invert: 1;
80496 	int num_regs;
80497 	const struct regmap_irq *irqs;
80498 	int num_irqs;
80499 	int num_type_reg;
80500 	int num_virt_regs;
80501 	int num_config_bases;
80502 	int num_config_regs;
80503 	int (*handle_pre_irq)(void *);
80504 	int (*handle_post_irq)(void *);
80505 	int (*handle_mask_sync)(struct regmap *, int, unsigned int, unsigned int, void *);
80506 	int (*set_type_virt)(unsigned int **, unsigned int, long unsigned int, int);
80507 	int (*set_type_config)(unsigned int **, unsigned int, const struct regmap_irq *, int);
80508 	unsigned int (*get_irq_reg)(struct regmap_irq_chip_data *, unsigned int, int);
80509 	void *irq_drv_data;
80510 };
80511 
80512 struct regmap_irq_chip_data {
80513 	struct mutex lock;
80514 	struct irq_chip irq_chip;
80515 	struct regmap *map;
80516 	const struct regmap_irq_chip *chip;
80517 	int irq_base;
80518 	struct irq_domain *domain;
80519 	int irq;
80520 	int wake_count;
80521 	unsigned int mask_base;
80522 	unsigned int unmask_base;
80523 	void *status_reg_buf;
80524 	unsigned int *main_status_buf;
80525 	unsigned int *status_buf;
80526 	unsigned int *mask_buf;
80527 	unsigned int *mask_buf_def;
80528 	unsigned int *wake_buf;
80529 	unsigned int *type_buf;
80530 	unsigned int *type_buf_def;
80531 	unsigned int **virt_buf;
80532 	unsigned int **config_buf;
80533 	unsigned int irq_reg_stride;
80534 	unsigned int (*get_irq_reg)(struct regmap_irq_chip_data *, unsigned int, int);
80535 	unsigned int clear_status: 1;
80536 };
80537 
80538 struct trace_event_raw_devres {
80539 	struct trace_entry ent;
80540 	u32 __data_loc_devname;
80541 	struct device *dev;
80542 	const char *op;
80543 	void *node;
80544 	const char *name;
80545 	size_t size;
80546 	char __data[0];
80547 };
80548 
80549 struct trace_event_data_offsets_devres {
80550 	u32 devname;
80551 };
80552 
80553 typedef void (*btf_trace_devres_log)(void *, struct device *, const char *, void *, const char *, size_t);
80554 
80555 struct dma_fence_array_cb {
80556 	struct dma_fence_cb cb;
80557 	struct dma_fence_array *array;
80558 };
80559 
80560 struct sync_merge_data {
80561 	char name[32];
80562 	__s32 fd2;
80563 	__s32 fence;
80564 	__u32 flags;
80565 	__u32 pad;
80566 };
80567 
80568 struct sync_fence_info {
80569 	char obj_name[32];
80570 	char driver_name[32];
80571 	__s32 status;
80572 	__u32 flags;
80573 	__u64 timestamp_ns;
80574 };
80575 
80576 struct sync_file_info {
80577 	char name[32];
80578 	__s32 status;
80579 	__u32 flags;
80580 	__u32 num_fences;
80581 	__u32 pad;
80582 	__u64 sync_fence_info;
80583 };
80584 
80585 struct request_sense;
80586 
80587 struct cdrom_generic_command {
80588 	unsigned char cmd[12];
80589 	unsigned char *buffer;
80590 	unsigned int buflen;
80591 	int stat;
80592 	struct request_sense *sense;
80593 	unsigned char data_direction;
80594 	int quiet;
80595 	int timeout;
80596 	union {
80597 		void *reserved[1];
80598 		void *unused;
80599 	};
80600 };
80601 
80602 struct request_sense {
80603 	__u8 error_code: 7;
80604 	__u8 valid: 1;
80605 	__u8 segment_number;
80606 	__u8 sense_key: 4;
80607 	__u8 reserved2: 1;
80608 	__u8 ili: 1;
80609 	__u8 reserved1: 2;
80610 	__u8 information[4];
80611 	__u8 add_sense_len;
80612 	__u8 command_info[4];
80613 	__u8 asc;
80614 	__u8 ascq;
80615 	__u8 fruc;
80616 	__u8 sks[3];
80617 	__u8 asb[46];
80618 };
80619 
80620 enum scsi_msg_byte {
80621 	COMMAND_COMPLETE = 0,
80622 	EXTENDED_MESSAGE = 1,
80623 	SAVE_POINTERS = 2,
80624 	RESTORE_POINTERS = 3,
80625 	DISCONNECT = 4,
80626 	INITIATOR_ERROR = 5,
80627 	ABORT_TASK_SET = 6,
80628 	MESSAGE_REJECT = 7,
80629 	NOP = 8,
80630 	MSG_PARITY_ERROR = 9,
80631 	LINKED_CMD_COMPLETE = 10,
80632 	LINKED_FLG_CMD_COMPLETE = 11,
80633 	TARGET_RESET = 12,
80634 	ABORT_TASK = 13,
80635 	CLEAR_TASK_SET = 14,
80636 	INITIATE_RECOVERY = 15,
80637 	RELEASE_RECOVERY = 16,
80638 	TERMINATE_IO_PROC = 17,
80639 	CLEAR_ACA = 22,
80640 	LOGICAL_UNIT_RESET = 23,
80641 	SIMPLE_QUEUE_TAG = 32,
80642 	HEAD_OF_QUEUE_TAG = 33,
80643 	ORDERED_QUEUE_TAG = 34,
80644 	IGNORE_WIDE_RESIDUE = 35,
80645 	ACA = 36,
80646 	QAS_REQUEST = 85,
80647 	BUS_DEVICE_RESET = 12,
80648 	ABORT = 6,
80649 };
80650 
80651 struct scsi_ioctl_command {
80652 	unsigned int inlen;
80653 	unsigned int outlen;
80654 	unsigned char data[0];
80655 };
80656 
80657 struct scsi_idlun {
80658 	__u32 dev_id;
80659 	__u32 host_unique_id;
80660 };
80661 
80662 struct sg_io_hdr {
80663 	int interface_id;
80664 	int dxfer_direction;
80665 	unsigned char cmd_len;
80666 	unsigned char mx_sb_len;
80667 	short unsigned int iovec_count;
80668 	unsigned int dxfer_len;
80669 	void *dxferp;
80670 	unsigned char *cmdp;
80671 	void *sbp;
80672 	unsigned int timeout;
80673 	unsigned int flags;
80674 	int pack_id;
80675 	void *usr_ptr;
80676 	unsigned char status;
80677 	unsigned char masked_status;
80678 	unsigned char msg_status;
80679 	unsigned char sb_len_wr;
80680 	short unsigned int host_status;
80681 	short unsigned int driver_status;
80682 	int resid;
80683 	unsigned int duration;
80684 	unsigned int info;
80685 };
80686 
80687 enum scsi_devinfo_key {
80688 	SCSI_DEVINFO_GLOBAL = 0,
80689 	SCSI_DEVINFO_SPI = 1,
80690 };
80691 
80692 struct scsi_dev_info_list {
80693 	struct list_head dev_info_list;
80694 	char vendor[8];
80695 	char model[16];
80696 	blist_flags_t flags;
80697 	unsigned int compatible;
80698 };
80699 
80700 struct scsi_dev_info_list_table {
80701 	struct list_head node;
80702 	struct list_head scsi_dev_info_list;
80703 	const char *name;
80704 	int key;
80705 };
80706 
80707 struct double_list {
80708 	struct list_head *top;
80709 	struct list_head *bottom;
80710 };
80711 
80712 struct scsi_proc_entry {
80713 	struct list_head entry;
80714 	const struct scsi_host_template *sht;
80715 	struct proc_dir_entry *proc_dir;
80716 	unsigned int present;
80717 };
80718 
80719 struct transport_class {
80720 	struct class class;
80721 	int (*setup)(struct transport_container *, struct device *, struct device *);
80722 	int (*configure)(struct transport_container *, struct device *, struct device *);
80723 	int (*remove)(struct transport_container *, struct device *, struct device *);
80724 };
80725 
80726 struct sas_end_device {
80727 	struct sas_rphy rphy;
80728 	unsigned int ready_led_meaning: 1;
80729 	unsigned int tlr_supported: 1;
80730 	unsigned int tlr_enabled: 1;
80731 	u16 I_T_nexus_loss_timeout;
80732 	u16 initiator_response_timeout;
80733 };
80734 
80735 struct sas_host_attrs {
80736 	struct list_head rphy_list;
80737 	struct mutex lock;
80738 	struct request_queue *q;
80739 	u32 next_target_id;
80740 	u32 next_expander_id;
80741 	int next_port_id;
80742 };
80743 
80744 typedef char *__kernel_caddr_t;
80745 
80746 typedef __kernel_caddr_t caddr_t;
80747 
80748 typedef struct {
80749 	uint8_t cmd;
80750 	uint8_t cmdid;
80751 	uint16_t numsectors;
80752 	uint32_t lba;
80753 	uint32_t xferaddr;
80754 	uint8_t logdrv;
80755 	uint8_t numsge;
80756 	uint8_t resvd;
80757 	uint8_t busy;
80758 	uint8_t numstatus;
80759 	uint8_t status;
80760 	uint8_t completed[46];
80761 	uint8_t poll;
80762 	uint8_t ack;
80763 } __attribute__((packed)) mbox_t;
80764 
80765 typedef struct {
80766 	uint32_t xferaddr_lo;
80767 	uint32_t xferaddr_hi;
80768 	mbox_t mbox32;
80769 } __attribute__((packed)) mbox64_t;
80770 
80771 typedef struct {
80772 	uint8_t timeout: 3;
80773 	uint8_t ars: 1;
80774 	uint8_t reserved: 3;
80775 	uint8_t islogical: 1;
80776 	uint8_t logdrv;
80777 	uint8_t channel;
80778 	uint8_t target;
80779 	uint8_t queuetag;
80780 	uint8_t queueaction;
80781 	uint8_t cdb[10];
80782 	uint8_t cdblen;
80783 	uint8_t reqsenselen;
80784 	uint8_t reqsensearea[32];
80785 	uint8_t numsge;
80786 	uint8_t scsistatus;
80787 	uint32_t dataxferaddr;
80788 	uint32_t dataxferlen;
80789 } mraid_passthru_t;
80790 
80791 struct uioc {
80792 	uint8_t signature[16];
80793 	uint16_t mb_type;
80794 	uint16_t app_type;
80795 	uint32_t opcode;
80796 	uint32_t adapno;
80797 	uint64_t cmdbuf;
80798 	uint32_t xferlen;
80799 	uint32_t data_dir;
80800 	int32_t status;
80801 	uint8_t reserved[128];
80802 	void *user_data;
80803 	uint32_t user_data_len;
80804 	uint32_t pad_for_64bit_align;
80805 	mraid_passthru_t *user_pthru;
80806 	mraid_passthru_t *pthru32;
80807 	dma_addr_t pthru32_h;
80808 	struct list_head list;
80809 	void (*done)(struct uioc *);
80810 	caddr_t buf_vaddr;
80811 	dma_addr_t buf_paddr;
80812 	int8_t pool_index;
80813 	uint8_t free_buf;
80814 	uint8_t timedout;
80815 	long: 40;
80816 	long: 64;
80817 	long: 64;
80818 	long: 64;
80819 	long: 64;
80820 	long: 64;
80821 	long: 64;
80822 	long: 64;
80823 	long: 64;
80824 	long: 64;
80825 	long: 64;
80826 	long: 64;
80827 	long: 64;
80828 	long: 64;
80829 	long: 64;
80830 	long: 64;
80831 	long: 64;
80832 	long: 64;
80833 	long: 64;
80834 	long: 64;
80835 	long: 64;
80836 	long: 64;
80837 	long: 64;
80838 	long: 64;
80839 	long: 64;
80840 	long: 64;
80841 	long: 64;
80842 	long: 64;
80843 	long: 64;
80844 	long: 64;
80845 	long: 64;
80846 	long: 64;
80847 	long: 64;
80848 	long: 64;
80849 	long: 64;
80850 	long: 64;
80851 	long: 64;
80852 	long: 64;
80853 	long: 64;
80854 	long: 64;
80855 	long: 64;
80856 	long: 64;
80857 	long: 64;
80858 	long: 64;
80859 	long: 64;
80860 	long: 64;
80861 	long: 64;
80862 	long: 64;
80863 	long: 64;
80864 	long: 64;
80865 	long: 64;
80866 	long: 64;
80867 	long: 64;
80868 	long: 64;
80869 	long: 64;
80870 	long: 64;
80871 	long: 64;
80872 	long: 64;
80873 	long: 64;
80874 	long: 64;
80875 	long: 64;
80876 	long: 64;
80877 	long: 64;
80878 	long: 64;
80879 	long: 64;
80880 	long: 64;
80881 	long: 64;
80882 	long: 64;
80883 	long: 64;
80884 	long: 64;
80885 	long: 64;
80886 	long: 64;
80887 	long: 64;
80888 	long: 64;
80889 	long: 64;
80890 	long: 64;
80891 	long: 64;
80892 	long: 64;
80893 	long: 64;
80894 	long: 64;
80895 	long: 64;
80896 	long: 64;
80897 	long: 64;
80898 	long: 64;
80899 	long: 64;
80900 	long: 64;
80901 	long: 64;
80902 	long: 64;
80903 	long: 64;
80904 	long: 64;
80905 	long: 64;
80906 	long: 64;
80907 	long: 64;
80908 	long: 64;
80909 	long: 64;
80910 	long: 64;
80911 } __attribute__((packed));
80912 
80913 typedef struct uioc uioc_t;
80914 
80915 struct uioc_timeout {
80916 	struct timer_list timer;
80917 	uioc_t *uioc;
80918 };
80919 
80920 struct mraid_hba_info {
80921 	uint16_t pci_vendor_id;
80922 	uint16_t pci_device_id;
80923 	uint16_t subsys_vendor_id;
80924 	uint16_t subsys_device_id;
80925 	uint64_t baseport;
80926 	uint8_t pci_bus;
80927 	uint8_t pci_dev_fn;
80928 	uint8_t pci_slot;
80929 	uint8_t irq;
80930 	uint32_t unique_id;
80931 	uint32_t host_no;
80932 	uint8_t num_ldrv;
80933 	long: 24;
80934 	long: 64;
80935 	long: 64;
80936 	long: 64;
80937 	long: 64;
80938 	long: 64;
80939 	long: 64;
80940 	long: 64;
80941 	long: 64;
80942 	long: 64;
80943 	long: 64;
80944 	long: 64;
80945 	long: 64;
80946 	long: 64;
80947 	long: 64;
80948 	long: 64;
80949 	long: 64;
80950 	long: 64;
80951 	long: 64;
80952 	long: 64;
80953 	long: 64;
80954 	long: 64;
80955 	long: 64;
80956 	long: 64;
80957 	long: 64;
80958 	long: 64;
80959 	long: 64;
80960 	long: 64;
80961 	long: 64;
80962 };
80963 
80964 typedef struct mraid_hba_info mraid_hba_info_t;
80965 
80966 struct mcontroller {
80967 	uint64_t base;
80968 	uint8_t irq;
80969 	uint8_t numldrv;
80970 	uint8_t pcibus;
80971 	uint16_t pcidev;
80972 	uint8_t pcifun;
80973 	uint16_t pciid;
80974 	uint16_t pcivendor;
80975 	uint8_t pcislot;
80976 	uint32_t uid;
80977 } __attribute__((packed));
80978 
80979 typedef struct mcontroller mcontroller_t;
80980 
80981 struct mm_dmapool {
80982 	caddr_t vaddr;
80983 	dma_addr_t paddr;
80984 	uint32_t buf_size;
80985 	struct dma_pool *handle;
80986 	spinlock_t lock;
80987 	uint8_t in_use;
80988 };
80989 
80990 typedef struct mm_dmapool mm_dmapool_t;
80991 
80992 struct mraid_mmadp {
80993 	uint32_t unique_id;
80994 	uint32_t drvr_type;
80995 	long unsigned int drvr_data;
80996 	uint16_t timeout;
80997 	uint8_t max_kioc;
80998 	struct pci_dev *pdev;
80999 	int (*issue_uioc)(long unsigned int, uioc_t *, uint32_t);
81000 	uint32_t quiescent;
81001 	struct list_head list;
81002 	uioc_t *kioc_list;
81003 	struct list_head kioc_pool;
81004 	spinlock_t kioc_pool_lock;
81005 	struct semaphore kioc_semaphore;
81006 	mbox64_t *mbox_list;
81007 	struct dma_pool *pthru_dma_pool;
81008 	mm_dmapool_t dma_pool_list[5];
81009 };
81010 
81011 typedef struct mraid_mmadp mraid_mmadp_t;
81012 
81013 struct mimd {
81014 	uint32_t inlen;
81015 	uint32_t outlen;
81016 	union {
81017 		uint8_t fca[16];
81018 		struct {
81019 			uint8_t opcode;
81020 			uint8_t subopcode;
81021 			uint16_t adapno;
81022 			uint8_t *buffer;
81023 			uint32_t length;
81024 		} __attribute__((packed)) fcs;
81025 	} ui;
81026 	uint8_t mbox[18];
81027 	mraid_passthru_t pthru;
81028 	char *data;
81029 } __attribute__((packed));
81030 
81031 typedef struct mimd mimd_t;
81032 
81033 enum MR_RAID_FLAGS_IO_SUB_TYPE {
81034 	MR_RAID_FLAGS_IO_SUB_TYPE_NONE = 0,
81035 	MR_RAID_FLAGS_IO_SUB_TYPE_SYSTEM_PD = 1,
81036 	MR_RAID_FLAGS_IO_SUB_TYPE_RMW_DATA = 2,
81037 	MR_RAID_FLAGS_IO_SUB_TYPE_RMW_P = 3,
81038 	MR_RAID_FLAGS_IO_SUB_TYPE_RMW_Q = 4,
81039 	MR_RAID_FLAGS_IO_SUB_TYPE_CACHE_BYPASS = 6,
81040 	MR_RAID_FLAGS_IO_SUB_TYPE_LDIO_BW_LIMIT = 7,
81041 	MR_RAID_FLAGS_IO_SUB_TYPE_R56_DIV_OFFLOAD = 8,
81042 };
81043 
81044 enum REGION_TYPE {
81045 	REGION_TYPE_UNUSED = 0,
81046 	REGION_TYPE_SHARED_READ = 1,
81047 	REGION_TYPE_SHARED_WRITE = 2,
81048 	REGION_TYPE_EXCLUSIVE = 3,
81049 };
81050 
81051 struct MPI25_IEEE_SGE_CHAIN64 {
81052 	__le64 Address;
81053 	__le32 Length;
81054 	__le16 Reserved1;
81055 	u8 NextChainOffset;
81056 	u8 Flags;
81057 };
81058 
81059 struct MPI2_SCSI_TASK_MANAGE_REQUEST {
81060 	u16 DevHandle;
81061 	u8 ChainOffset;
81062 	u8 Function;
81063 	u8 Reserved1;
81064 	u8 TaskType;
81065 	u8 Reserved2;
81066 	u8 MsgFlags;
81067 	u8 VP_ID;
81068 	u8 VF_ID;
81069 	u16 Reserved3;
81070 	u8 LUN[8];
81071 	u32 Reserved4[7];
81072 	u16 TaskMID;
81073 	u16 Reserved5;
81074 };
81075 
81076 struct MPI2_SCSI_TASK_MANAGE_REPLY {
81077 	u16 DevHandle;
81078 	u8 MsgLength;
81079 	u8 Function;
81080 	u8 ResponseCode;
81081 	u8 TaskType;
81082 	u8 Reserved1;
81083 	u8 MsgFlags;
81084 	u8 VP_ID;
81085 	u8 VF_ID;
81086 	u16 Reserved2;
81087 	u16 Reserved3;
81088 	u16 IOCStatus;
81089 	u32 IOCLogInfo;
81090 	u32 TerminationCount;
81091 	u32 ResponseInfo;
81092 };
81093 
81094 struct MR_TM_REQUEST {
81095 	char request[128];
81096 };
81097 
81098 struct MR_TM_REPLY {
81099 	char reply[128];
81100 };
81101 
81102 struct MR_TASK_MANAGE_REQUEST {
81103 	struct MR_TM_REQUEST TmRequest;
81104 	union {
81105 		struct {
81106 			u32 isTMForLD: 1;
81107 			u32 isTMForPD: 1;
81108 			u32 reserved1: 30;
81109 			u32 reserved2;
81110 		} tmReqFlags;
81111 		struct MR_TM_REPLY TMReply;
81112 	};
81113 };
81114 
81115 struct IO_REQUEST_INFO {
81116 	u64 ldStartBlock;
81117 	u32 numBlocks;
81118 	u16 ldTgtId;
81119 	u8 isRead;
81120 	__le16 devHandle;
81121 	u8 pd_interface;
81122 	u64 pdBlock;
81123 	u8 fpOkForIo;
81124 	u8 IoforUnevenSpan;
81125 	u8 start_span;
81126 	u8 do_fp_rlbypass;
81127 	u64 start_row;
81128 	u8 span_arm;
81129 	u8 pd_after_lb;
81130 	u16 r1_alt_dev_handle;
81131 	bool ra_capable;
81132 	u8 data_arms;
81133 };
81134 
81135 struct MR_LD_TARGET_SYNC {
81136 	u8 targetId;
81137 	u8 reserved;
81138 	__le16 seqNum;
81139 };
81140 
81141 typedef struct LOG_BLOCK_SPAN_INFO *PLD_SPAN_INFO;
81142 
81143 union desc_value {
81144 	__le64 word;
81145 	struct {
81146 		__le32 low;
81147 		__le32 high;
81148 	} u;
81149 };
81150 
81151 enum CMD_RET_VALUES {
81152 	REFIRE_CMD = 1,
81153 	COMPLETE_CMD = 2,
81154 	RETURN_CMD = 3,
81155 };
81156 
81157 enum FW_BOOT_CONTEXT {
81158 	PROBE_CONTEXT = 0,
81159 	OCR_CONTEXT = 1,
81160 };
81161 
81162 struct _MPI2_MANPAGE7_CONNECTOR_INFO {
81163 	U32___2 Pinout;
81164 	U8___2 Connector[16];
81165 	U8___2 Location;
81166 	U8___2 ReceptacleID;
81167 	U16___2 Slot;
81168 	U16___2 Slotx2;
81169 	U16___2 Slotx4;
81170 };
81171 
81172 typedef struct _MPI2_MANPAGE7_CONNECTOR_INFO MPI2_MANPAGE7_CONNECTOR_INFO;
81173 
81174 struct _MPI2_CONFIG_PAGE_MAN_7 {
81175 	MPI2_CONFIG_PAGE_HEADER Header;
81176 	U32___2 Reserved1;
81177 	U32___2 Reserved2;
81178 	U32___2 Flags;
81179 	U8___2 EnclosureName[16];
81180 	U8___2 NumPhys;
81181 	U8___2 Reserved3;
81182 	U16___2 Reserved4;
81183 	MPI2_MANPAGE7_CONNECTOR_INFO ConnectorInfo[1];
81184 };
81185 
81186 typedef struct _MPI2_CONFIG_PAGE_MAN_7 Mpi2ManufacturingPage7_t;
81187 
81188 struct _MPI2_CONFIG_PAGE_IO_UNIT_3 {
81189 	MPI2_CONFIG_PAGE_HEADER Header;
81190 	U8___2 GPIOCount;
81191 	U8___2 Reserved1;
81192 	U16___2 Reserved2;
81193 	U16___2 GPIOVal[36];
81194 };
81195 
81196 typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_3 Mpi2IOUnitPage3_t;
81197 
81198 struct _MPI2_RAIDVOL0_PHYS_DISK {
81199 	U8___2 RAIDSetNum;
81200 	U8___2 PhysDiskMap;
81201 	U8___2 PhysDiskNum;
81202 	U8___2 Reserved;
81203 };
81204 
81205 typedef struct _MPI2_RAIDVOL0_PHYS_DISK MPI2_RAIDVOL0_PHYS_DISK;
81206 
81207 struct _MPI2_RAIDVOL0_SETTINGS {
81208 	U16___2 Settings;
81209 	U8___2 HotSparePool;
81210 	U8___2 Reserved;
81211 };
81212 
81213 typedef struct _MPI2_RAIDVOL0_SETTINGS MPI2_RAIDVOL0_SETTINGS;
81214 
81215 struct _MPI2_CONFIG_PAGE_RAID_VOL_0 {
81216 	MPI2_CONFIG_PAGE_HEADER Header;
81217 	U16___2 DevHandle;
81218 	U8___2 VolumeState;
81219 	U8___2 VolumeType;
81220 	U32___2 VolumeStatusFlags;
81221 	MPI2_RAIDVOL0_SETTINGS VolumeSettings;
81222 	U64___2 MaxLBA;
81223 	U32___2 StripeSize;
81224 	U16___2 BlockSize;
81225 	U16___2 Reserved1;
81226 	U8___2 SupportedPhysDisks;
81227 	U8___2 ResyncRate;
81228 	U16___2 DataScrubDuration;
81229 	U8___2 NumPhysDisks;
81230 	U8___2 Reserved2;
81231 	U8___2 Reserved3;
81232 	U8___2 InactiveStatus;
81233 	MPI2_RAIDVOL0_PHYS_DISK PhysDisk[1];
81234 } __attribute__((packed));
81235 
81236 typedef struct _MPI2_CONFIG_PAGE_RAID_VOL_0 Mpi2RaidVolPage0_t;
81237 
81238 struct _MPI2_CONFIG_PAGE_RAID_VOL_1 {
81239 	MPI2_CONFIG_PAGE_HEADER Header;
81240 	U16___2 DevHandle;
81241 	U16___2 Reserved0;
81242 	U8___2 GUID[24];
81243 	U8___2 Name[16];
81244 	U64___2 WWID;
81245 	U32___2 Reserved1;
81246 	U32___2 Reserved2;
81247 };
81248 
81249 typedef struct _MPI2_CONFIG_PAGE_RAID_VOL_1 Mpi2RaidVolPage1_t;
81250 
81251 struct _MPI2_RAIDPHYSDISK0_SETTINGS {
81252 	U16___2 Reserved1;
81253 	U8___2 HotSparePool;
81254 	U8___2 Reserved2;
81255 };
81256 
81257 typedef struct _MPI2_RAIDPHYSDISK0_SETTINGS MPI2_RAIDPHYSDISK0_SETTINGS;
81258 
81259 struct _MPI2_RAIDPHYSDISK0_INQUIRY_DATA {
81260 	U8___2 VendorID[8];
81261 	U8___2 ProductID[16];
81262 	U8___2 ProductRevLevel[4];
81263 	U8___2 SerialNum[32];
81264 };
81265 
81266 typedef struct _MPI2_RAIDPHYSDISK0_INQUIRY_DATA MPI2_RAIDPHYSDISK0_INQUIRY_DATA;
81267 
81268 struct _MPI2_CONFIG_PAGE_RD_PDISK_0 {
81269 	MPI2_CONFIG_PAGE_HEADER Header;
81270 	U16___2 DevHandle;
81271 	U8___2 Reserved1;
81272 	U8___2 PhysDiskNum;
81273 	MPI2_RAIDPHYSDISK0_SETTINGS PhysDiskSettings;
81274 	U32___2 Reserved2;
81275 	MPI2_RAIDPHYSDISK0_INQUIRY_DATA InquiryData;
81276 	U32___2 Reserved3;
81277 	U8___2 PhysDiskState;
81278 	U8___2 OfflineReason;
81279 	U8___2 IncompatibleReason;
81280 	U8___2 PhysDiskAttributes;
81281 	U32___2 PhysDiskStatusFlags;
81282 	U64___2 DeviceMaxLBA;
81283 	U64___2 HostMaxLBA;
81284 	U64___2 CoercedMaxLBA;
81285 	U16___2 BlockSize;
81286 	U16___2 Reserved5;
81287 	U32___2 Reserved6;
81288 };
81289 
81290 typedef struct _MPI2_CONFIG_PAGE_RD_PDISK_0 Mpi2RaidPhysDiskPage0_t;
81291 
81292 struct _MPI2_SAS_IO_UNIT0_PHY_DATA {
81293 	U8___2 Port;
81294 	U8___2 PortFlags;
81295 	U8___2 PhyFlags;
81296 	U8___2 NegotiatedLinkRate;
81297 	U32___2 ControllerPhyDeviceInfo;
81298 	U16___2 AttachedDevHandle;
81299 	U16___2 ControllerDevHandle;
81300 	U32___2 DiscoveryStatus;
81301 	U32___2 Reserved;
81302 };
81303 
81304 typedef struct _MPI2_SAS_IO_UNIT0_PHY_DATA MPI2_SAS_IO_UNIT0_PHY_DATA;
81305 
81306 struct _MPI2_CONFIG_PAGE_SASIOUNIT_0 {
81307 	MPI2_CONFIG_EXTENDED_PAGE_HEADER Header;
81308 	U32___2 Reserved1;
81309 	U8___2 NumPhys;
81310 	U8___2 Reserved2;
81311 	U16___2 Reserved3;
81312 	MPI2_SAS_IO_UNIT0_PHY_DATA PhyData[1];
81313 };
81314 
81315 typedef struct _MPI2_CONFIG_PAGE_SASIOUNIT_0 Mpi2SasIOUnitPage0_t;
81316 
81317 struct _MPI2_CONFIG_PAGE_EXPANDER_0 {
81318 	MPI2_CONFIG_EXTENDED_PAGE_HEADER Header;
81319 	U8___2 PhysicalPort;
81320 	U8___2 ReportGenLength;
81321 	U16___2 EnclosureHandle;
81322 	U64___2 SASAddress;
81323 	U32___2 DiscoveryStatus;
81324 	U16___2 DevHandle;
81325 	U16___2 ParentDevHandle;
81326 	U16___2 ExpanderChangeCount;
81327 	U16___2 ExpanderRouteIndexes;
81328 	U8___2 NumPhys;
81329 	U8___2 SASLevel;
81330 	U16___2 Flags;
81331 	U16___2 STPBusInactivityTimeLimit;
81332 	U16___2 STPMaxConnectTimeLimit;
81333 	U16___2 STP_SMP_NexusLossTime;
81334 	U16___2 MaxNumRoutedSasAddresses;
81335 	U64___2 ActiveZoneManagerSASAddress;
81336 	U16___2 ZoneLockInactivityLimit;
81337 	U16___2 Reserved1;
81338 	U8___2 TimeToReducedFunc;
81339 	U8___2 InitialTimeToReducedFunc;
81340 	U8___2 MaxReducedFuncTime;
81341 	U8___2 Reserved2;
81342 } __attribute__((packed));
81343 
81344 typedef struct _MPI2_CONFIG_PAGE_EXPANDER_0 Mpi2ExpanderPage0_t;
81345 
81346 struct _MPI2_CONFIG_PAGE_EXPANDER_1 {
81347 	MPI2_CONFIG_EXTENDED_PAGE_HEADER Header;
81348 	U8___2 PhysicalPort;
81349 	U8___2 Reserved1;
81350 	U16___2 Reserved2;
81351 	U8___2 NumPhys;
81352 	U8___2 Phy;
81353 	U16___2 NumTableEntriesProgrammed;
81354 	U8___2 ProgrammedLinkRate;
81355 	U8___2 HwLinkRate;
81356 	U16___2 AttachedDevHandle;
81357 	U32___2 PhyInfo;
81358 	U32___2 AttachedDeviceInfo;
81359 	U16___2 ExpanderDevHandle;
81360 	U8___2 ChangeCount;
81361 	U8___2 NegotiatedLinkRate;
81362 	U8___2 PhyIdentifier;
81363 	U8___2 AttachedPhyIdentifier;
81364 	U8___2 Reserved3;
81365 	U8___2 DiscoveryInfo;
81366 	U32___2 AttachedPhyInfo;
81367 	U8___2 ZoneGroup;
81368 	U8___2 SelfConfigStatus;
81369 	U16___2 Reserved4;
81370 };
81371 
81372 typedef struct _MPI2_CONFIG_PAGE_EXPANDER_1 Mpi2ExpanderPage1_t;
81373 
81374 struct _MPI2_CONFIG_PAGE_SAS_DEV_0 {
81375 	MPI2_CONFIG_EXTENDED_PAGE_HEADER Header;
81376 	U16___2 Slot;
81377 	U16___2 EnclosureHandle;
81378 	U64___2 SASAddress;
81379 	U16___2 ParentDevHandle;
81380 	U8___2 PhyNum;
81381 	U8___2 AccessStatus;
81382 	U16___2 DevHandle;
81383 	U8___2 AttachedPhyIdentifier;
81384 	U8___2 ZoneGroup;
81385 	U32___2 DeviceInfo;
81386 	U16___2 Flags;
81387 	U8___2 PhysicalPort;
81388 	U8___2 MaxPortConnections;
81389 	U64___2 DeviceName;
81390 	U8___2 PortGroups;
81391 	U8___2 DmaGroup;
81392 	U8___2 ControlGroup;
81393 	U8___2 EnclosureLevel;
81394 	U32___2 ConnectorName[4];
81395 	U32___2 Reserved3;
81396 } __attribute__((packed));
81397 
81398 typedef struct _MPI2_CONFIG_PAGE_SAS_DEV_0 Mpi2SasDevicePage0_t;
81399 
81400 struct _MPI2_CONFIG_PAGE_SAS_DEV_1 {
81401 	MPI2_CONFIG_EXTENDED_PAGE_HEADER Header;
81402 	U32___2 Reserved1;
81403 	U64___2 SASAddress;
81404 	U32___2 Reserved2;
81405 	U16___2 DevHandle;
81406 	U16___2 Reserved3;
81407 	U8___2 InitialRegDeviceFIS[20];
81408 } __attribute__((packed));
81409 
81410 typedef struct _MPI2_CONFIG_PAGE_SAS_DEV_1 Mpi2SasDevicePage1_t;
81411 
81412 struct _MPI2_CONFIG_PAGE_SAS_PHY_0 {
81413 	MPI2_CONFIG_EXTENDED_PAGE_HEADER Header;
81414 	U16___2 OwnerDevHandle;
81415 	U16___2 Reserved1;
81416 	U16___2 AttachedDevHandle;
81417 	U8___2 AttachedPhyIdentifier;
81418 	U8___2 Reserved2;
81419 	U32___2 AttachedPhyInfo;
81420 	U8___2 ProgrammedLinkRate;
81421 	U8___2 HwLinkRate;
81422 	U8___2 ChangeCount;
81423 	U8___2 Flags;
81424 	U32___2 PhyInfo;
81425 	U8___2 NegotiatedLinkRate;
81426 	U8___2 Reserved3;
81427 	U16___2 Reserved4;
81428 };
81429 
81430 typedef struct _MPI2_CONFIG_PAGE_SAS_PHY_0 Mpi2SasPhyPage0_t;
81431 
81432 struct _MPI2_CONFIG_PAGE_SAS_PHY_1 {
81433 	MPI2_CONFIG_EXTENDED_PAGE_HEADER Header;
81434 	U32___2 Reserved1;
81435 	U32___2 InvalidDwordCount;
81436 	U32___2 RunningDisparityErrorCount;
81437 	U32___2 LossDwordSynchCount;
81438 	U32___2 PhyResetProblemCount;
81439 };
81440 
81441 typedef struct _MPI2_CONFIG_PAGE_SAS_PHY_1 Mpi2SasPhyPage1_t;
81442 
81443 struct _MPI2_RAIDCONFIG0_CONFIG_ELEMENT {
81444 	U16___2 ElementFlags;
81445 	U16___2 VolDevHandle;
81446 	U8___2 HotSparePool;
81447 	U8___2 PhysDiskNum;
81448 	U16___2 PhysDiskDevHandle;
81449 };
81450 
81451 typedef struct _MPI2_RAIDCONFIG0_CONFIG_ELEMENT MPI2_RAIDCONFIG0_CONFIG_ELEMENT;
81452 
81453 struct _MPI2_CONFIG_PAGE_RAID_CONFIGURATION_0 {
81454 	MPI2_CONFIG_EXTENDED_PAGE_HEADER Header;
81455 	U8___2 NumHotSpares;
81456 	U8___2 NumPhysDisks;
81457 	U8___2 NumVolumes;
81458 	U8___2 ConfigNum;
81459 	U32___2 Flags;
81460 	U8___2 ConfigGUID[24];
81461 	U32___2 Reserved1;
81462 	U8___2 NumElements;
81463 	U8___2 Reserved2;
81464 	U16___2 Reserved3;
81465 	MPI2_RAIDCONFIG0_CONFIG_ELEMENT ConfigElement[1];
81466 };
81467 
81468 typedef struct _MPI2_CONFIG_PAGE_RAID_CONFIGURATION_0 Mpi2RaidConfigurationPage0_t;
81469 
81470 struct _MPI26_CONFIG_PAGE_PCIEDEV_0 {
81471 	MPI2_CONFIG_EXTENDED_PAGE_HEADER Header;
81472 	U16___2 Slot;
81473 	U16___2 EnclosureHandle;
81474 	U64___2 WWID;
81475 	U16___2 ParentDevHandle;
81476 	U8___2 PortNum;
81477 	U8___2 AccessStatus;
81478 	U16___2 DevHandle;
81479 	U8___2 PhysicalPort;
81480 	U8___2 Reserved1;
81481 	U32___2 DeviceInfo;
81482 	U32___2 Flags;
81483 	U8___2 SupportedLinkRates;
81484 	U8___2 MaxPortWidth;
81485 	U8___2 NegotiatedPortWidth;
81486 	U8___2 NegotiatedLinkRate;
81487 	U8___2 EnclosureLevel;
81488 	U8___2 Reserved2;
81489 	U16___2 Reserved3;
81490 	U8___2 ConnectorName[4];
81491 	U32___2 Reserved4;
81492 	U32___2 Reserved5;
81493 } __attribute__((packed));
81494 
81495 typedef struct _MPI26_CONFIG_PAGE_PCIEDEV_0 Mpi26PCIeDevicePage0_t;
81496 
81497 struct _MPI26_CONFIG_PAGE_PCIEDEV_2 {
81498 	MPI2_CONFIG_EXTENDED_PAGE_HEADER Header;
81499 	U16___2 DevHandle;
81500 	U8___2 ControllerResetTO;
81501 	U8___2 Reserved1;
81502 	U32___2 MaximumDataTransferSize;
81503 	U32___2 Capabilities;
81504 	U16___2 NOIOB;
81505 	U16___2 ShutdownLatency;
81506 	U16___2 VendorID;
81507 	U16___2 DeviceID;
81508 	U16___2 SubsystemVendorID;
81509 	U16___2 SubsystemID;
81510 	U8___2 RevisionID;
81511 	U8___2 Reserved21[3];
81512 };
81513 
81514 typedef struct _MPI26_CONFIG_PAGE_PCIEDEV_2 Mpi26PCIeDevicePage2_t;
81515 
81516 struct config_request {
81517 	u16 sz;
81518 	void *page;
81519 	dma_addr_t page_dma;
81520 };
81521 
81522 union _MPI2_SIMPLE_SGE_UNION {
81523 	MPI2_SGE_SIMPLE_UNION MpiSimple;
81524 	MPI2_IEEE_SGE_SIMPLE_UNION IeeeSimple;
81525 };
81526 
81527 typedef union _MPI2_SIMPLE_SGE_UNION MPI2_SIMPLE_SGE_UNION;
81528 
81529 struct _MPI2_SCSI_IO_REPLY {
81530 	U16___2 DevHandle;
81531 	U8___2 MsgLength;
81532 	U8___2 Function;
81533 	U16___2 Reserved1;
81534 	U8___2 Reserved2;
81535 	U8___2 MsgFlags;
81536 	U8___2 VP_ID;
81537 	U8___2 VF_ID;
81538 	U16___2 Reserved3;
81539 	U8___2 SCSIStatus;
81540 	U8___2 SCSIState;
81541 	U16___2 IOCStatus;
81542 	U32___2 IOCLogInfo;
81543 	U32___2 TransferCount;
81544 	U32___2 SenseCount;
81545 	U32___2 ResponseInfo;
81546 	U16___2 TaskTag;
81547 	U16___2 SCSIStatusQualifier;
81548 	U32___2 BidirectionalTransferCount;
81549 	U32___2 EEDPErrorOffset;
81550 	U16___2 EEDPObservedAppTag;
81551 	U16___2 EEDPObservedGuard;
81552 	U32___2 EEDPObservedRefTag;
81553 };
81554 
81555 typedef struct _MPI2_SCSI_IO_REPLY Mpi2SCSIIOReply_t;
81556 
81557 struct _MPI2_SCSI_TASK_MANAGE_REQUEST {
81558 	U16___2 DevHandle;
81559 	U8___2 ChainOffset;
81560 	U8___2 Function;
81561 	U8___2 Reserved1;
81562 	U8___2 TaskType;
81563 	U8___2 Reserved2;
81564 	U8___2 MsgFlags;
81565 	U8___2 VP_ID;
81566 	U8___2 VF_ID;
81567 	U16___2 Reserved3;
81568 	U8___2 LUN[8];
81569 	U32___2 Reserved4[7];
81570 	U16___2 TaskMID;
81571 	U16___2 Reserved5;
81572 };
81573 
81574 typedef struct _MPI2_SCSI_TASK_MANAGE_REQUEST Mpi2SCSITaskManagementRequest_t;
81575 
81576 struct _MPI2_SCSI_TASK_MANAGE_REPLY {
81577 	U16___2 DevHandle;
81578 	U8___2 MsgLength;
81579 	U8___2 Function;
81580 	U8___2 ResponseCode;
81581 	U8___2 TaskType;
81582 	U8___2 Reserved1;
81583 	U8___2 MsgFlags;
81584 	U8___2 VP_ID;
81585 	U8___2 VF_ID;
81586 	U16___2 Reserved2;
81587 	U16___2 Reserved3;
81588 	U16___2 IOCStatus;
81589 	U32___2 IOCLogInfo;
81590 	U32___2 TerminationCount;
81591 	U32___2 ResponseInfo;
81592 };
81593 
81594 typedef struct _MPI2_SCSI_TASK_MANAGE_REPLY Mpi2SCSITaskManagementReply_t;
81595 
81596 struct _MPI2_TOOLBOX_CLEAN_REQUEST {
81597 	U8___2 Tool;
81598 	U8___2 Reserved1;
81599 	U8___2 ChainOffset;
81600 	U8___2 Function;
81601 	U16___2 Reserved2;
81602 	U8___2 Reserved3;
81603 	U8___2 MsgFlags;
81604 	U8___2 VP_ID;
81605 	U8___2 VF_ID;
81606 	U16___2 Reserved4;
81607 	U32___2 Flags;
81608 };
81609 
81610 typedef struct _MPI2_TOOLBOX_CLEAN_REQUEST Mpi2ToolboxCleanRequest_t;
81611 
81612 struct _MPI2_TOOLBOX_MEM_MOVE_REQUEST {
81613 	U8___2 Tool;
81614 	U8___2 Reserved1;
81615 	U8___2 ChainOffset;
81616 	U8___2 Function;
81617 	U16___2 Reserved2;
81618 	U8___2 Reserved3;
81619 	U8___2 MsgFlags;
81620 	U8___2 VP_ID;
81621 	U8___2 VF_ID;
81622 	U16___2 Reserved4;
81623 	MPI2_SGE_SIMPLE_UNION SGL;
81624 } __attribute__((packed));
81625 
81626 typedef struct _MPI2_TOOLBOX_MEM_MOVE_REQUEST Mpi2ToolboxMemMoveRequest_t;
81627 
81628 struct _MPI2_DIAG_BUFFER_POST_REQUEST {
81629 	U8___2 ExtendedType;
81630 	U8___2 BufferType;
81631 	U8___2 ChainOffset;
81632 	U8___2 Function;
81633 	U16___2 Reserved2;
81634 	U8___2 Reserved3;
81635 	U8___2 MsgFlags;
81636 	U8___2 VP_ID;
81637 	U8___2 VF_ID;
81638 	U16___2 Reserved4;
81639 	U64___2 BufferAddress;
81640 	U32___2 BufferLength;
81641 	U32___2 Reserved5;
81642 	U32___2 Reserved6;
81643 	U32___2 Flags;
81644 	U32___2 ProductSpecific[23];
81645 } __attribute__((packed));
81646 
81647 typedef struct _MPI2_DIAG_BUFFER_POST_REQUEST Mpi2DiagBufferPostRequest_t;
81648 
81649 struct _MPI2_DIAG_BUFFER_POST_REPLY {
81650 	U8___2 ExtendedType;
81651 	U8___2 BufferType;
81652 	U8___2 MsgLength;
81653 	U8___2 Function;
81654 	U16___2 Reserved2;
81655 	U8___2 Reserved3;
81656 	U8___2 MsgFlags;
81657 	U8___2 VP_ID;
81658 	U8___2 VF_ID;
81659 	U16___2 Reserved4;
81660 	U16___2 Reserved5;
81661 	U16___2 IOCStatus;
81662 	U32___2 IOCLogInfo;
81663 	U32___2 TransferLength;
81664 };
81665 
81666 typedef struct _MPI2_DIAG_BUFFER_POST_REPLY Mpi2DiagBufferPostReply_t;
81667 
81668 struct _MPI2_DIAG_RELEASE_REQUEST {
81669 	U8___2 Reserved1;
81670 	U8___2 BufferType;
81671 	U8___2 ChainOffset;
81672 	U8___2 Function;
81673 	U16___2 Reserved2;
81674 	U8___2 Reserved3;
81675 	U8___2 MsgFlags;
81676 	U8___2 VP_ID;
81677 	U8___2 VF_ID;
81678 	U16___2 Reserved4;
81679 };
81680 
81681 typedef struct _MPI2_DIAG_RELEASE_REQUEST Mpi2DiagReleaseRequest_t;
81682 
81683 struct _MPI2_DIAG_RELEASE_REPLY {
81684 	U8___2 Reserved1;
81685 	U8___2 BufferType;
81686 	U8___2 MsgLength;
81687 	U8___2 Function;
81688 	U16___2 Reserved2;
81689 	U8___2 Reserved3;
81690 	U8___2 MsgFlags;
81691 	U8___2 VP_ID;
81692 	U8___2 VF_ID;
81693 	U16___2 Reserved4;
81694 	U16___2 Reserved5;
81695 	U16___2 IOCStatus;
81696 	U32___2 IOCLogInfo;
81697 };
81698 
81699 typedef struct _MPI2_DIAG_RELEASE_REPLY Mpi2DiagReleaseReply_t;
81700 
81701 struct _MPI2_SMP_PASSTHROUGH_REQUEST {
81702 	U8___2 PassthroughFlags;
81703 	U8___2 PhysicalPort;
81704 	U8___2 ChainOffset;
81705 	U8___2 Function;
81706 	U16___2 RequestDataLength;
81707 	U8___2 SGLFlags;
81708 	U8___2 MsgFlags;
81709 	U8___2 VP_ID;
81710 	U8___2 VF_ID;
81711 	U16___2 Reserved1;
81712 	U32___2 Reserved2;
81713 	U64___2 SASAddress;
81714 	U32___2 Reserved3;
81715 	U32___2 Reserved4;
81716 	MPI2_SIMPLE_SGE_UNION SGL;
81717 };
81718 
81719 typedef struct _MPI2_SMP_PASSTHROUGH_REQUEST Mpi2SmpPassthroughRequest_t;
81720 
81721 struct _MPI26_NVME_ENCAPSULATED_ERROR_REPLY {
81722 	U16___2 DevHandle;
81723 	U8___2 MsgLength;
81724 	U8___2 Function;
81725 	U16___2 EncapsulatedCommandLength;
81726 	U8___2 Reserved1;
81727 	U8___2 MsgFlags;
81728 	U8___2 VP_ID;
81729 	U8___2 VF_ID;
81730 	U16___2 Reserved2;
81731 	U16___2 Reserved3;
81732 	U16___2 IOCStatus;
81733 	U32___2 IOCLogInfo;
81734 	U16___2 ErrorResponseCount;
81735 	U16___2 Reserved4;
81736 };
81737 
81738 typedef struct _MPI26_NVME_ENCAPSULATED_ERROR_REPLY Mpi26NVMeEncapsulatedErrorReply_t;
81739 
81740 struct _raid_device;
81741 
81742 struct _sas_device;
81743 
81744 struct MPT3SAS_TARGET {
81745 	struct scsi_target *starget;
81746 	u64 sas_address;
81747 	struct _raid_device *raid_device;
81748 	u16 handle;
81749 	int num_luns;
81750 	u32 flags;
81751 	u8 deleted;
81752 	u8 tm_busy;
81753 	struct hba_port *port;
81754 	struct _sas_device *sas_dev;
81755 	struct _pcie_device *pcie_dev;
81756 };
81757 
81758 struct _raid_device {
81759 	struct list_head list;
81760 	struct scsi_target *starget;
81761 	struct scsi_device *sdev;
81762 	u64 wwid;
81763 	u16 handle;
81764 	u16 block_sz;
81765 	int id;
81766 	int channel;
81767 	u8 volume_type;
81768 	u8 num_pds;
81769 	u8 responding;
81770 	u8 percent_complete;
81771 	u8 direct_io_enabled;
81772 	u8 stripe_exponent;
81773 	u8 block_exponent;
81774 	u64 max_lba;
81775 	u32 stripe_sz;
81776 	u32 device_info;
81777 	u16 pd_handle[8];
81778 };
81779 
81780 struct _sas_device {
81781 	struct list_head list;
81782 	struct scsi_target *starget;
81783 	u64 sas_address;
81784 	u64 device_name;
81785 	u16 handle;
81786 	u64 sas_address_parent;
81787 	u16 enclosure_handle;
81788 	u64 enclosure_logical_id;
81789 	u16 volume_handle;
81790 	u64 volume_wwid;
81791 	u32 device_info;
81792 	int id;
81793 	int channel;
81794 	u16 slot;
81795 	u8 phy;
81796 	u8 responding;
81797 	u8 fast_path;
81798 	u8 pfa_led_on;
81799 	u8 pend_sas_rphy_add;
81800 	u8 enclosure_level;
81801 	u8 chassis_slot;
81802 	u8 is_chassis_slot_valid;
81803 	u8 connector_name[5];
81804 	struct kref refcount;
81805 	u8 port_type;
81806 	struct hba_port *port;
81807 	struct sas_rphy *rphy;
81808 };
81809 
81810 struct MPT3SAS_DEVICE {
81811 	struct MPT3SAS_TARGET *sas_target;
81812 	unsigned int lun;
81813 	u32 flags;
81814 	u8 configured_lun;
81815 	u8 block;
81816 	u8 tlr_snoop_check;
81817 	u8 ignore_delay_remove;
81818 	u8 ncq_prio_enable;
81819 	long unsigned int ata_command_pending;
81820 };
81821 
81822 struct mpt3_ioctl_header {
81823 	uint32_t ioc_number;
81824 	uint32_t port_number;
81825 	uint32_t max_data_size;
81826 };
81827 
81828 struct mpt3_ioctl_diag_reset {
81829 	struct mpt3_ioctl_header hdr;
81830 };
81831 
81832 struct mpt3_ioctl_pci_info {
81833 	union {
81834 		struct {
81835 			uint32_t device: 5;
81836 			uint32_t function: 3;
81837 			uint32_t bus: 24;
81838 		} bits;
81839 		uint32_t word;
81840 	} u;
81841 	uint32_t segment_id;
81842 };
81843 
81844 struct mpt3_ioctl_iocinfo {
81845 	struct mpt3_ioctl_header hdr;
81846 	uint32_t adapter_type;
81847 	uint32_t port_number;
81848 	uint32_t pci_id;
81849 	uint32_t hw_rev;
81850 	uint32_t subsystem_device;
81851 	uint32_t subsystem_vendor;
81852 	uint32_t rsvd0;
81853 	uint32_t firmware_version;
81854 	uint32_t bios_version;
81855 	uint8_t driver_version[32];
81856 	uint8_t rsvd1;
81857 	uint8_t scsi_id;
81858 	uint16_t rsvd2;
81859 	struct mpt3_ioctl_pci_info pci_information;
81860 };
81861 
81862 struct mpt3_ioctl_eventquery {
81863 	struct mpt3_ioctl_header hdr;
81864 	uint16_t event_entries;
81865 	uint16_t rsvd;
81866 	uint32_t event_types[4];
81867 };
81868 
81869 struct mpt3_ioctl_eventenable {
81870 	struct mpt3_ioctl_header hdr;
81871 	uint32_t event_types[4];
81872 };
81873 
81874 struct MPT3_IOCTL_EVENTS {
81875 	uint32_t event;
81876 	uint32_t context;
81877 	uint8_t data[192];
81878 };
81879 
81880 struct mpt3_ioctl_eventreport {
81881 	struct mpt3_ioctl_header hdr;
81882 	struct MPT3_IOCTL_EVENTS event_data[1];
81883 };
81884 
81885 struct mpt3_ioctl_command {
81886 	struct mpt3_ioctl_header hdr;
81887 	uint32_t timeout;
81888 	void *reply_frame_buf_ptr;
81889 	void *data_in_buf_ptr;
81890 	void *data_out_buf_ptr;
81891 	void *sense_data_ptr;
81892 	uint32_t max_reply_bytes;
81893 	uint32_t data_in_size;
81894 	uint32_t data_out_size;
81895 	uint32_t max_sense_bytes;
81896 	uint32_t data_sge_offset;
81897 	uint8_t mf[1];
81898 };
81899 
81900 struct mpt3_ioctl_btdh_mapping {
81901 	struct mpt3_ioctl_header hdr;
81902 	uint32_t id;
81903 	uint32_t bus;
81904 	uint16_t handle;
81905 	uint16_t rsvd;
81906 };
81907 
81908 struct mpt3_diag_register {
81909 	struct mpt3_ioctl_header hdr;
81910 	uint8_t reserved;
81911 	uint8_t buffer_type;
81912 	uint16_t application_flags;
81913 	uint32_t diagnostic_flags;
81914 	uint32_t product_specific[23];
81915 	uint32_t requested_buffer_size;
81916 	uint32_t unique_id;
81917 };
81918 
81919 struct mpt3_diag_unregister {
81920 	struct mpt3_ioctl_header hdr;
81921 	uint32_t unique_id;
81922 };
81923 
81924 struct mpt3_diag_query {
81925 	struct mpt3_ioctl_header hdr;
81926 	uint8_t reserved;
81927 	uint8_t buffer_type;
81928 	uint16_t application_flags;
81929 	uint32_t diagnostic_flags;
81930 	uint32_t product_specific[23];
81931 	uint32_t total_buffer_size;
81932 	uint32_t driver_added_buffer_size;
81933 	uint32_t unique_id;
81934 };
81935 
81936 struct mpt3_diag_release {
81937 	struct mpt3_ioctl_header hdr;
81938 	uint32_t unique_id;
81939 };
81940 
81941 struct mpt3_diag_read_buffer {
81942 	struct mpt3_ioctl_header hdr;
81943 	uint8_t status;
81944 	uint8_t reserved;
81945 	uint16_t flags;
81946 	uint32_t starting_offset;
81947 	uint32_t bytes_to_read;
81948 	uint32_t unique_id;
81949 	uint32_t diagnostic_data[1];
81950 };
81951 
81952 struct mpt3_addnl_diag_query {
81953 	struct mpt3_ioctl_header hdr;
81954 	uint32_t unique_id;
81955 	struct htb_rel_query rel_query;
81956 	uint32_t reserved2[2];
81957 };
81958 
81959 enum block_state {
81960 	NON_BLOCKING = 0,
81961 	BLOCKING = 1,
81962 };
81963 
81964 struct DIAG_BUFFER_START {
81965 	__le32 Size;
81966 	__le32 DiagVersion;
81967 	u8 BufferType;
81968 	u8 Reserved[3];
81969 	__le32 Reserved1;
81970 	__le32 Reserved2;
81971 	__le32 Reserved3;
81972 };
81973 
81974 enum chip_flavors {
81975 	chip_6320 = 0,
81976 	chip_6440 = 1,
81977 	chip_6485 = 2,
81978 	chip_9480 = 3,
81979 	chip_9180 = 4,
81980 	chip_9445 = 5,
81981 	chip_9485 = 6,
81982 	chip_1300 = 7,
81983 	chip_1320 = 8,
81984 };
81985 
81986 enum mvumi_qc_result {
81987 	MV_QUEUE_COMMAND_RESULT_SENT = 0,
81988 	MV_QUEUE_COMMAND_RESULT_NO_RESOURCE = 1,
81989 };
81990 
81991 struct mvumi_hw_regs {
81992 	void *main_int_cause_reg;
81993 	void *enpointa_mask_reg;
81994 	void *enpointb_mask_reg;
81995 	void *rstoutn_en_reg;
81996 	void *ctrl_sts_reg;
81997 	void *rstoutn_mask_reg;
81998 	void *sys_soft_rst_reg;
81999 	void *pciea_to_arm_drbl_reg;
82000 	void *arm_to_pciea_drbl_reg;
82001 	void *arm_to_pciea_mask_reg;
82002 	void *pciea_to_arm_msg0;
82003 	void *pciea_to_arm_msg1;
82004 	void *arm_to_pciea_msg0;
82005 	void *arm_to_pciea_msg1;
82006 	void *reset_request;
82007 	void *reset_enable;
82008 	void *inb_list_basel;
82009 	void *inb_list_baseh;
82010 	void *inb_aval_count_basel;
82011 	void *inb_aval_count_baseh;
82012 	void *inb_write_pointer;
82013 	void *inb_read_pointer;
82014 	void *outb_list_basel;
82015 	void *outb_list_baseh;
82016 	void *outb_copy_basel;
82017 	void *outb_copy_baseh;
82018 	void *outb_copy_pointer;
82019 	void *outb_read_pointer;
82020 	void *inb_isr_cause;
82021 	void *outb_isr_cause;
82022 	void *outb_coal_cfg;
82023 	void *outb_coal_timeout;
82024 	u32 int_comaout;
82025 	u32 int_comaerr;
82026 	u32 int_dl_cpu2pciea;
82027 	u32 int_mu;
82028 	u32 int_drbl_int_mask;
82029 	u32 int_main_int_mask;
82030 	u32 cl_pointer_toggle;
82031 	u32 cl_slot_num_mask;
82032 	u32 clic_irq;
82033 	u32 clic_in_err;
82034 	u32 clic_out_err;
82035 };
82036 
82037 struct mvumi_dyn_list_entry {
82038 	u32 src_low_addr;
82039 	u32 src_high_addr;
82040 	u32 if_length;
82041 	u32 reserve;
82042 };
82043 
82044 enum {
82045 	DRBL_HANDSHAKE = 1,
82046 	DRBL_SOFT_RESET = 2,
82047 	DRBL_BUS_CHANGE = 4,
82048 	DRBL_EVENT_NOTIFY = 8,
82049 	DRBL_MU_RESET = 16,
82050 	DRBL_HANDSHAKE_ISR = 1,
82051 	CMD_FLAG_NON_DATA = 1,
82052 	CMD_FLAG_DMA = 2,
82053 	CMD_FLAG_PIO = 4,
82054 	CMD_FLAG_DATA_IN = 8,
82055 	CMD_FLAG_DATA_OUT = 16,
82056 	CMD_FLAG_PRDT_IN_HOST = 32,
82057 };
82058 
82059 struct mvumi_hotplug_event {
82060 	u16 size;
82061 	u8 dummy[2];
82062 	u8 bitmap[0];
82063 };
82064 
82065 struct mvumi_driver_event {
82066 	u32 time_stamp;
82067 	u32 sequence_no;
82068 	u32 event_id;
82069 	u8 severity;
82070 	u8 param_count;
82071 	u16 device_id;
82072 	u32 params[4];
82073 	u8 sense_data_length;
82074 	u8 Reserved1;
82075 	u8 sense_data[30];
82076 };
82077 
82078 struct mvumi_event_req {
82079 	unsigned char count;
82080 	unsigned char reserved[3];
82081 	struct mvumi_driver_event events[6];
82082 };
82083 
82084 struct mvumi_hba;
82085 
82086 struct mvumi_events_wq {
82087 	struct work_struct work_q;
82088 	struct mvumi_hba *mhba;
82089 	unsigned int event;
82090 	void *param;
82091 };
82092 
82093 struct mvumi_tag {
82094 	short unsigned int *stack;
82095 	short unsigned int top;
82096 	short unsigned int size;
82097 };
82098 
82099 struct mvumi_instance_template;
82100 
82101 struct mvumi_cmd;
82102 
82103 struct mvumi_hba {
82104 	void *base_addr[6];
82105 	u32 pci_base[6];
82106 	void *mmio;
82107 	struct list_head cmd_pool;
82108 	struct Scsi_Host *shost;
82109 	wait_queue_head_t int_cmd_wait_q;
82110 	struct pci_dev *pdev;
82111 	unsigned int unique_id;
82112 	atomic_t fw_outstanding;
82113 	struct mvumi_instance_template *instancet;
82114 	void *ib_list;
82115 	dma_addr_t ib_list_phys;
82116 	void *ib_frame;
82117 	dma_addr_t ib_frame_phys;
82118 	void *ob_list;
82119 	dma_addr_t ob_list_phys;
82120 	void *ib_shadow;
82121 	dma_addr_t ib_shadow_phys;
82122 	void *ob_shadow;
82123 	dma_addr_t ob_shadow_phys;
82124 	void *handshake_page;
82125 	dma_addr_t handshake_page_phys;
82126 	unsigned int global_isr;
82127 	unsigned int isr_status;
82128 	short unsigned int max_sge;
82129 	short unsigned int max_target_id;
82130 	unsigned char *target_map;
82131 	unsigned int max_io;
82132 	unsigned int list_num_io;
82133 	unsigned int ib_max_size;
82134 	unsigned int ob_max_size;
82135 	unsigned int ib_max_size_setting;
82136 	unsigned int ob_max_size_setting;
82137 	unsigned int max_transfer_size;
82138 	unsigned char hba_total_pages;
82139 	unsigned char fw_flag;
82140 	unsigned char request_id_enabled;
82141 	unsigned char eot_flag;
82142 	short unsigned int hba_capability;
82143 	short unsigned int io_seq;
82144 	unsigned int ib_cur_slot;
82145 	unsigned int ob_cur_slot;
82146 	unsigned int fw_state;
82147 	struct mutex sas_discovery_mutex;
82148 	struct list_head ob_data_list;
82149 	struct list_head free_ob_list;
82150 	struct list_head res_list;
82151 	struct list_head waiting_req_list;
82152 	struct mvumi_tag tag_pool;
82153 	struct mvumi_cmd **tag_cmd;
82154 	struct mvumi_hw_regs *regs;
82155 	struct mutex device_lock;
82156 	struct list_head mhba_dev_list;
82157 	struct list_head shost_dev_list;
82158 	struct task_struct *dm_thread;
82159 	atomic_t pnp_count;
82160 };
82161 
82162 struct mvumi_sgl {
82163 	u32 baseaddr_l;
82164 	u32 baseaddr_h;
82165 	u32 flags;
82166 	u32 size;
82167 };
82168 
82169 struct mvumi_compact_sgl {
82170 	u32 baseaddr_l;
82171 	u32 baseaddr_h;
82172 	u32 flags;
82173 };
82174 
82175 struct mvumi_res {
82176 	struct list_head entry;
82177 	dma_addr_t bus_addr;
82178 	void *virt_addr;
82179 	unsigned int size;
82180 	short unsigned int type;
82181 };
82182 
82183 enum resource_type {
82184 	RESOURCE_CACHED_MEMORY = 0,
82185 	RESOURCE_UNCACHED_MEMORY = 1,
82186 };
82187 
82188 struct mvumi_msg_frame;
82189 
82190 struct mvumi_cmd {
82191 	struct list_head queue_pointer;
82192 	struct mvumi_msg_frame *frame;
82193 	dma_addr_t frame_phys;
82194 	struct scsi_cmnd *scmd;
82195 	atomic_t sync_cmd;
82196 	void *data_buf;
82197 	short unsigned int request_id;
82198 	unsigned char cmd_status;
82199 };
82200 
82201 struct mvumi_msg_frame {
82202 	u16 device_id;
82203 	u16 tag;
82204 	u8 cmd_flag;
82205 	u8 req_function;
82206 	u8 cdb_length;
82207 	u8 sg_counts;
82208 	u32 data_transfer_length;
82209 	u16 request_id;
82210 	u16 reserved1;
82211 	u8 cdb[16];
82212 	u32 payload[1];
82213 };
82214 
82215 struct mvumi_cmd_priv {
82216 	struct mvumi_cmd *cmd_priv;
82217 };
82218 
82219 struct mvumi_rsp_frame {
82220 	u16 device_id;
82221 	u16 tag;
82222 	u8 req_status;
82223 	u8 rsp_flag;
82224 	u16 request_id;
82225 	u32 payload[1];
82226 };
82227 
82228 struct mvumi_ob_data {
82229 	struct list_head list;
82230 	unsigned char data[0];
82231 };
82232 
82233 struct version_info {
82234 	u32 ver_major;
82235 	u32 ver_minor;
82236 	u32 ver_oem;
82237 	u32 ver_build;
82238 };
82239 
82240 struct mvumi_hs_header {
82241 	u8 page_code;
82242 	u8 checksum;
82243 	u16 frame_length;
82244 	u32 frame_content[1];
82245 };
82246 
82247 struct mvumi_hs_page1 {
82248 	u8 pagecode;
82249 	u8 checksum;
82250 	u16 frame_length;
82251 	u16 number_of_ports;
82252 	u16 max_devices_support;
82253 	u16 max_io_support;
82254 	u16 umi_ver;
82255 	u32 max_transfer_size;
82256 	struct version_info fw_ver;
82257 	u8 cl_in_max_entry_size;
82258 	u8 cl_out_max_entry_size;
82259 	u8 cl_inout_list_depth;
82260 	u8 total_pages;
82261 	u16 capability;
82262 	u16 reserved1;
82263 };
82264 
82265 struct mvumi_hs_page2 {
82266 	u8 pagecode;
82267 	u8 checksum;
82268 	u16 frame_length;
82269 	u8 host_type;
82270 	u8 host_cap;
82271 	u8 reserved[2];
82272 	struct version_info host_ver;
82273 	u32 system_io_bus;
82274 	u32 slot_number;
82275 	u32 intr_level;
82276 	u32 intr_vector;
82277 	u64 seconds_since1970;
82278 };
82279 
82280 struct mvumi_hs_page3 {
82281 	u8 pagecode;
82282 	u8 checksum;
82283 	u16 frame_length;
82284 	u16 control;
82285 	u8 reserved[2];
82286 	u32 host_bufferaddr_l;
82287 	u32 host_bufferaddr_h;
82288 	u32 host_eventaddr_l;
82289 	u32 host_eventaddr_h;
82290 };
82291 
82292 struct mvumi_hs_page4 {
82293 	u8 pagecode;
82294 	u8 checksum;
82295 	u16 frame_length;
82296 	u32 ib_baseaddr_l;
82297 	u32 ib_baseaddr_h;
82298 	u32 ob_baseaddr_l;
82299 	u32 ob_baseaddr_h;
82300 	u8 ib_entry_size;
82301 	u8 ob_entry_size;
82302 	u8 ob_depth;
82303 	u8 ib_depth;
82304 };
82305 
82306 struct mvumi_device {
82307 	struct list_head list;
82308 	struct scsi_device *sdev;
82309 	u64 wwid;
82310 	u8 dev_type;
82311 	int id;
82312 };
82313 
82314 struct mvumi_instance_template {
82315 	void (*fire_cmd)(struct mvumi_hba *, struct mvumi_cmd *);
82316 	void (*enable_intr)(struct mvumi_hba *);
82317 	void (*disable_intr)(struct mvumi_hba *);
82318 	int (*clear_intr)(void *);
82319 	unsigned int (*read_fw_status_reg)(struct mvumi_hba *);
82320 	unsigned int (*check_ib_list)(struct mvumi_hba *);
82321 	int (*check_ob_list)(struct mvumi_hba *, unsigned int *, unsigned int *);
82322 	int (*reset_host)(struct mvumi_hba *);
82323 };
82324 
82325 enum ata_xfer_mask {
82326 	ATA_MASK_PIO = 127,
82327 	ATA_MASK_MWDMA = 3968,
82328 	ATA_MASK_UDMA = 1044480,
82329 };
82330 
82331 enum hsm_task_states {
82332 	HSM_ST_IDLE = 0,
82333 	HSM_ST_FIRST = 1,
82334 	HSM_ST = 2,
82335 	HSM_ST_LAST = 3,
82336 	HSM_ST_ERR = 4,
82337 };
82338 
82339 struct pci_bits {
82340 	unsigned int reg;
82341 	unsigned int width;
82342 	long unsigned int mask;
82343 	long unsigned int val;
82344 };
82345 
82346 struct trace_event_raw_ata_qc_issue_template {
82347 	struct trace_entry ent;
82348 	unsigned int ata_port;
82349 	unsigned int ata_dev;
82350 	unsigned int tag;
82351 	unsigned char cmd;
82352 	unsigned char dev;
82353 	unsigned char lbal;
82354 	unsigned char lbam;
82355 	unsigned char lbah;
82356 	unsigned char nsect;
82357 	unsigned char feature;
82358 	unsigned char hob_lbal;
82359 	unsigned char hob_lbam;
82360 	unsigned char hob_lbah;
82361 	unsigned char hob_nsect;
82362 	unsigned char hob_feature;
82363 	unsigned char ctl;
82364 	unsigned char proto;
82365 	long unsigned int flags;
82366 	char __data[0];
82367 };
82368 
82369 struct trace_event_raw_ata_qc_complete_template {
82370 	struct trace_entry ent;
82371 	unsigned int ata_port;
82372 	unsigned int ata_dev;
82373 	unsigned int tag;
82374 	unsigned char status;
82375 	unsigned char dev;
82376 	unsigned char lbal;
82377 	unsigned char lbam;
82378 	unsigned char lbah;
82379 	unsigned char nsect;
82380 	unsigned char error;
82381 	unsigned char hob_lbal;
82382 	unsigned char hob_lbam;
82383 	unsigned char hob_lbah;
82384 	unsigned char hob_nsect;
82385 	unsigned char hob_feature;
82386 	unsigned char ctl;
82387 	long unsigned int flags;
82388 	char __data[0];
82389 };
82390 
82391 struct trace_event_raw_ata_tf_load {
82392 	struct trace_entry ent;
82393 	unsigned int ata_port;
82394 	unsigned char cmd;
82395 	unsigned char dev;
82396 	unsigned char lbal;
82397 	unsigned char lbam;
82398 	unsigned char lbah;
82399 	unsigned char nsect;
82400 	unsigned char feature;
82401 	unsigned char hob_lbal;
82402 	unsigned char hob_lbam;
82403 	unsigned char hob_lbah;
82404 	unsigned char hob_nsect;
82405 	unsigned char hob_feature;
82406 	unsigned char proto;
82407 	char __data[0];
82408 };
82409 
82410 struct trace_event_raw_ata_exec_command_template {
82411 	struct trace_entry ent;
82412 	unsigned int ata_port;
82413 	unsigned int tag;
82414 	unsigned char cmd;
82415 	unsigned char feature;
82416 	unsigned char hob_nsect;
82417 	unsigned char proto;
82418 	char __data[0];
82419 };
82420 
82421 struct trace_event_raw_ata_bmdma_status {
82422 	struct trace_entry ent;
82423 	unsigned int ata_port;
82424 	unsigned int tag;
82425 	unsigned char host_stat;
82426 	char __data[0];
82427 };
82428 
82429 struct trace_event_raw_ata_eh_link_autopsy {
82430 	struct trace_entry ent;
82431 	unsigned int ata_port;
82432 	unsigned int ata_dev;
82433 	unsigned int eh_action;
82434 	unsigned int eh_err_mask;
82435 	char __data[0];
82436 };
82437 
82438 struct trace_event_raw_ata_eh_link_autopsy_qc {
82439 	struct trace_entry ent;
82440 	unsigned int ata_port;
82441 	unsigned int ata_dev;
82442 	unsigned int tag;
82443 	unsigned int qc_flags;
82444 	unsigned int eh_err_mask;
82445 	char __data[0];
82446 };
82447 
82448 struct trace_event_raw_ata_eh_action_template {
82449 	struct trace_entry ent;
82450 	unsigned int ata_port;
82451 	unsigned int ata_dev;
82452 	unsigned int eh_action;
82453 	char __data[0];
82454 };
82455 
82456 struct trace_event_raw_ata_link_reset_begin_template {
82457 	struct trace_entry ent;
82458 	unsigned int ata_port;
82459 	unsigned int class[2];
82460 	long unsigned int deadline;
82461 	char __data[0];
82462 };
82463 
82464 struct trace_event_raw_ata_link_reset_end_template {
82465 	struct trace_entry ent;
82466 	unsigned int ata_port;
82467 	unsigned int class[2];
82468 	int rc;
82469 	char __data[0];
82470 };
82471 
82472 struct trace_event_raw_ata_port_eh_begin_template {
82473 	struct trace_entry ent;
82474 	unsigned int ata_port;
82475 	char __data[0];
82476 };
82477 
82478 struct trace_event_raw_ata_sff_hsm_template {
82479 	struct trace_entry ent;
82480 	unsigned int ata_port;
82481 	unsigned int ata_dev;
82482 	unsigned int tag;
82483 	unsigned int qc_flags;
82484 	unsigned int protocol;
82485 	unsigned int hsm_state;
82486 	unsigned char dev_state;
82487 	char __data[0];
82488 };
82489 
82490 struct trace_event_raw_ata_transfer_data_template {
82491 	struct trace_entry ent;
82492 	unsigned int ata_port;
82493 	unsigned int ata_dev;
82494 	unsigned int tag;
82495 	unsigned int flags;
82496 	unsigned int offset;
82497 	unsigned int bytes;
82498 	char __data[0];
82499 };
82500 
82501 struct trace_event_raw_ata_sff_template {
82502 	struct trace_entry ent;
82503 	unsigned int ata_port;
82504 	unsigned char hsm_state;
82505 	char __data[0];
82506 };
82507 
82508 struct trace_event_data_offsets_ata_qc_issue_template {};
82509 
82510 struct trace_event_data_offsets_ata_qc_complete_template {};
82511 
82512 struct trace_event_data_offsets_ata_tf_load {};
82513 
82514 struct trace_event_data_offsets_ata_exec_command_template {};
82515 
82516 struct trace_event_data_offsets_ata_bmdma_status {};
82517 
82518 struct trace_event_data_offsets_ata_eh_link_autopsy {};
82519 
82520 struct trace_event_data_offsets_ata_eh_link_autopsy_qc {};
82521 
82522 struct trace_event_data_offsets_ata_eh_action_template {};
82523 
82524 struct trace_event_data_offsets_ata_link_reset_begin_template {};
82525 
82526 struct trace_event_data_offsets_ata_link_reset_end_template {};
82527 
82528 struct trace_event_data_offsets_ata_port_eh_begin_template {};
82529 
82530 struct trace_event_data_offsets_ata_sff_hsm_template {};
82531 
82532 struct trace_event_data_offsets_ata_transfer_data_template {};
82533 
82534 struct trace_event_data_offsets_ata_sff_template {};
82535 
82536 typedef void (*btf_trace_ata_qc_prep)(void *, struct ata_queued_cmd *);
82537 
82538 typedef void (*btf_trace_ata_qc_issue)(void *, struct ata_queued_cmd *);
82539 
82540 typedef void (*btf_trace_ata_qc_complete_internal)(void *, struct ata_queued_cmd *);
82541 
82542 typedef void (*btf_trace_ata_qc_complete_failed)(void *, struct ata_queued_cmd *);
82543 
82544 typedef void (*btf_trace_ata_qc_complete_done)(void *, struct ata_queued_cmd *);
82545 
82546 typedef void (*btf_trace_ata_tf_load)(void *, struct ata_port *, const struct ata_taskfile *);
82547 
82548 typedef void (*btf_trace_ata_exec_command)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int);
82549 
82550 typedef void (*btf_trace_ata_bmdma_setup)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int);
82551 
82552 typedef void (*btf_trace_ata_bmdma_start)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int);
82553 
82554 typedef void (*btf_trace_ata_bmdma_stop)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int);
82555 
82556 typedef void (*btf_trace_ata_bmdma_status)(void *, struct ata_port *, unsigned int);
82557 
82558 typedef void (*btf_trace_ata_eh_link_autopsy)(void *, struct ata_device *, unsigned int, unsigned int);
82559 
82560 typedef void (*btf_trace_ata_eh_link_autopsy_qc)(void *, struct ata_queued_cmd *);
82561 
82562 typedef void (*btf_trace_ata_eh_about_to_do)(void *, struct ata_link *, unsigned int, unsigned int);
82563 
82564 typedef void (*btf_trace_ata_eh_done)(void *, struct ata_link *, unsigned int, unsigned int);
82565 
82566 typedef void (*btf_trace_ata_link_hardreset_begin)(void *, struct ata_link *, unsigned int *, long unsigned int);
82567 
82568 typedef void (*btf_trace_ata_slave_hardreset_begin)(void *, struct ata_link *, unsigned int *, long unsigned int);
82569 
82570 typedef void (*btf_trace_ata_link_softreset_begin)(void *, struct ata_link *, unsigned int *, long unsigned int);
82571 
82572 typedef void (*btf_trace_ata_link_hardreset_end)(void *, struct ata_link *, unsigned int *, int);
82573 
82574 typedef void (*btf_trace_ata_slave_hardreset_end)(void *, struct ata_link *, unsigned int *, int);
82575 
82576 typedef void (*btf_trace_ata_link_softreset_end)(void *, struct ata_link *, unsigned int *, int);
82577 
82578 typedef void (*btf_trace_ata_link_postreset)(void *, struct ata_link *, unsigned int *, int);
82579 
82580 typedef void (*btf_trace_ata_slave_postreset)(void *, struct ata_link *, unsigned int *, int);
82581 
82582 typedef void (*btf_trace_ata_std_sched_eh)(void *, struct ata_port *);
82583 
82584 typedef void (*btf_trace_ata_port_freeze)(void *, struct ata_port *);
82585 
82586 typedef void (*btf_trace_ata_port_thaw)(void *, struct ata_port *);
82587 
82588 typedef void (*btf_trace_ata_sff_hsm_state)(void *, struct ata_queued_cmd *, unsigned char);
82589 
82590 typedef void (*btf_trace_ata_sff_hsm_command_complete)(void *, struct ata_queued_cmd *, unsigned char);
82591 
82592 typedef void (*btf_trace_ata_sff_port_intr)(void *, struct ata_queued_cmd *, unsigned char);
82593 
82594 typedef void (*btf_trace_ata_sff_pio_transfer_data)(void *, struct ata_queued_cmd *, unsigned int, unsigned int);
82595 
82596 typedef void (*btf_trace_atapi_pio_transfer_data)(void *, struct ata_queued_cmd *, unsigned int, unsigned int);
82597 
82598 typedef void (*btf_trace_atapi_send_cdb)(void *, struct ata_queued_cmd *, unsigned int, unsigned int);
82599 
82600 typedef void (*btf_trace_ata_sff_flush_pio_task)(void *, struct ata_port *);
82601 
82602 struct ata_force_param {
82603 	const char *name;
82604 	u8 cbl;
82605 	u8 spd_limit;
82606 	unsigned int xfer_mask;
82607 	unsigned int horkage_on;
82608 	unsigned int horkage_off;
82609 	u16 lflags_on;
82610 	u16 lflags_off;
82611 };
82612 
82613 struct ata_force_ent {
82614 	int port;
82615 	int device;
82616 	struct ata_force_param param;
82617 };
82618 
82619 struct ata_xfer_ent {
82620 	int shift;
82621 	int bits;
82622 	u8 base;
82623 };
82624 
82625 struct ata_blacklist_entry {
82626 	const char *model_num;
82627 	const char *model_rev;
82628 	long unsigned int horkage;
82629 };
82630 
82631 struct spi_device_id {
82632 	char name[32];
82633 	kernel_ulong_t driver_data;
82634 };
82635 
82636 struct spi_statistics {
82637 	struct u64_stats_sync syncp;
82638 	u64_stats_t messages;
82639 	u64_stats_t transfers;
82640 	u64_stats_t errors;
82641 	u64_stats_t timedout;
82642 	u64_stats_t spi_sync;
82643 	u64_stats_t spi_sync_immediate;
82644 	u64_stats_t spi_async;
82645 	u64_stats_t bytes;
82646 	u64_stats_t bytes_rx;
82647 	u64_stats_t bytes_tx;
82648 	u64_stats_t transfer_bytes_histo[17];
82649 	u64_stats_t transfers_split_maxsize;
82650 };
82651 
82652 struct spi_delay {
82653 	u16 value;
82654 	u8 unit;
82655 };
82656 
82657 struct spi_controller;
82658 
82659 struct spi_device {
82660 	struct device dev;
82661 	struct spi_controller *controller;
82662 	struct spi_controller *master;
82663 	u32 max_speed_hz;
82664 	u8 chip_select;
82665 	u8 bits_per_word;
82666 	bool rt;
82667 	u32 mode;
82668 	int irq;
82669 	void *controller_state;
82670 	void *controller_data;
82671 	char modalias[32];
82672 	const char *driver_override;
82673 	struct gpio_desc *cs_gpiod;
82674 	struct spi_delay word_delay;
82675 	struct spi_delay cs_setup;
82676 	struct spi_delay cs_hold;
82677 	struct spi_delay cs_inactive;
82678 	struct spi_statistics *pcpu_statistics;
82679 };
82680 
82681 struct spi_message;
82682 
82683 struct spi_transfer;
82684 
82685 struct spi_controller_mem_ops;
82686 
82687 struct spi_controller_mem_caps;
82688 
82689 struct spi_controller {
82690 	struct device dev;
82691 	struct list_head list;
82692 	s16 bus_num;
82693 	u16 num_chipselect;
82694 	u16 dma_alignment;
82695 	u32 mode_bits;
82696 	u32 buswidth_override_bits;
82697 	u32 bits_per_word_mask;
82698 	u32 min_speed_hz;
82699 	u32 max_speed_hz;
82700 	u16 flags;
82701 	bool devm_allocated;
82702 	union {
82703 		bool slave;
82704 		bool target;
82705 	};
82706 	size_t (*max_transfer_size)(struct spi_device *);
82707 	size_t (*max_message_size)(struct spi_device *);
82708 	struct mutex io_mutex;
82709 	struct mutex add_lock;
82710 	spinlock_t bus_lock_spinlock;
82711 	struct mutex bus_lock_mutex;
82712 	bool bus_lock_flag;
82713 	int (*setup)(struct spi_device *);
82714 	int (*set_cs_timing)(struct spi_device *);
82715 	int (*transfer)(struct spi_device *, struct spi_message *);
82716 	void (*cleanup)(struct spi_device *);
82717 	bool (*can_dma)(struct spi_controller *, struct spi_device *, struct spi_transfer *);
82718 	struct device *dma_map_dev;
82719 	struct device *cur_rx_dma_dev;
82720 	struct device *cur_tx_dma_dev;
82721 	bool queued;
82722 	struct kthread_worker *kworker;
82723 	struct kthread_work pump_messages;
82724 	spinlock_t queue_lock;
82725 	struct list_head queue;
82726 	struct spi_message *cur_msg;
82727 	struct completion cur_msg_completion;
82728 	bool cur_msg_incomplete;
82729 	bool cur_msg_need_completion;
82730 	bool busy;
82731 	bool running;
82732 	bool rt;
82733 	bool auto_runtime_pm;
82734 	bool cur_msg_mapped;
82735 	char last_cs;
82736 	bool last_cs_mode_high;
82737 	bool fallback;
82738 	struct completion xfer_completion;
82739 	size_t max_dma_len;
82740 	int (*prepare_transfer_hardware)(struct spi_controller *);
82741 	int (*transfer_one_message)(struct spi_controller *, struct spi_message *);
82742 	int (*unprepare_transfer_hardware)(struct spi_controller *);
82743 	int (*prepare_message)(struct spi_controller *, struct spi_message *);
82744 	int (*unprepare_message)(struct spi_controller *, struct spi_message *);
82745 	union {
82746 		int (*slave_abort)(struct spi_controller *);
82747 		int (*target_abort)(struct spi_controller *);
82748 	};
82749 	void (*set_cs)(struct spi_device *, bool);
82750 	int (*transfer_one)(struct spi_controller *, struct spi_device *, struct spi_transfer *);
82751 	void (*handle_err)(struct spi_controller *, struct spi_message *);
82752 	const struct spi_controller_mem_ops *mem_ops;
82753 	const struct spi_controller_mem_caps *mem_caps;
82754 	struct gpio_desc **cs_gpiods;
82755 	bool use_gpio_descriptors;
82756 	s8 unused_native_cs;
82757 	s8 max_native_cs;
82758 	struct spi_statistics *pcpu_statistics;
82759 	struct dma_chan *dma_tx;
82760 	struct dma_chan *dma_rx;
82761 	void *dummy_rx;
82762 	void *dummy_tx;
82763 	int (*fw_translate_cs)(struct spi_controller *, unsigned int);
82764 	bool ptp_sts_supported;
82765 	long unsigned int irq_flags;
82766 	bool queue_empty;
82767 	bool must_async;
82768 };
82769 
82770 struct spi_driver {
82771 	const struct spi_device_id *id_table;
82772 	int (*probe)(struct spi_device *);
82773 	void (*remove)(struct spi_device *);
82774 	void (*shutdown)(struct spi_device *);
82775 	struct device_driver driver;
82776 };
82777 
82778 struct spi_message {
82779 	struct list_head transfers;
82780 	struct spi_device *spi;
82781 	unsigned int is_dma_mapped: 1;
82782 	void (*complete)(void *);
82783 	void *context;
82784 	unsigned int frame_length;
82785 	unsigned int actual_length;
82786 	int status;
82787 	struct list_head queue;
82788 	void *state;
82789 	struct list_head resources;
82790 	bool prepared;
82791 };
82792 
82793 struct spi_transfer {
82794 	const void *tx_buf;
82795 	void *rx_buf;
82796 	unsigned int len;
82797 	dma_addr_t tx_dma;
82798 	dma_addr_t rx_dma;
82799 	struct sg_table tx_sg;
82800 	struct sg_table rx_sg;
82801 	unsigned int dummy_data: 1;
82802 	unsigned int cs_off: 1;
82803 	unsigned int cs_change: 1;
82804 	unsigned int tx_nbits: 3;
82805 	unsigned int rx_nbits: 3;
82806 	u8 bits_per_word;
82807 	struct spi_delay delay;
82808 	struct spi_delay cs_change_delay;
82809 	struct spi_delay word_delay;
82810 	u32 speed_hz;
82811 	u32 effective_speed_hz;
82812 	unsigned int ptp_sts_word_pre;
82813 	unsigned int ptp_sts_word_post;
82814 	struct ptp_system_timestamp *ptp_sts;
82815 	bool timestamped;
82816 	struct list_head transfer_list;
82817 	u16 error;
82818 };
82819 
82820 struct spi_mem;
82821 
82822 struct spi_mem_op;
82823 
82824 struct spi_mem_dirmap_desc;
82825 
82826 struct spi_controller_mem_ops {
82827 	int (*adjust_op_size)(struct spi_mem *, struct spi_mem_op *);
82828 	bool (*supports_op)(struct spi_mem *, const struct spi_mem_op *);
82829 	int (*exec_op)(struct spi_mem *, const struct spi_mem_op *);
82830 	const char * (*get_name)(struct spi_mem *);
82831 	int (*dirmap_create)(struct spi_mem_dirmap_desc *);
82832 	void (*dirmap_destroy)(struct spi_mem_dirmap_desc *);
82833 	ssize_t (*dirmap_read)(struct spi_mem_dirmap_desc *, u64, size_t, void *);
82834 	ssize_t (*dirmap_write)(struct spi_mem_dirmap_desc *, u64, size_t, const void *);
82835 	int (*poll_status)(struct spi_mem *, const struct spi_mem_op *, u16, u16, long unsigned int, long unsigned int, long unsigned int);
82836 };
82837 
82838 struct spi_controller_mem_caps {
82839 	bool dtr;
82840 	bool ecc;
82841 };
82842 
82843 typedef void (*spi_res_release_t)(struct spi_controller *, struct spi_message *, void *);
82844 
82845 struct spi_res {
82846 	struct list_head entry;
82847 	spi_res_release_t release;
82848 	long long unsigned int data[0];
82849 };
82850 
82851 struct spi_replaced_transfers;
82852 
82853 typedef void (*spi_replaced_release_t)(struct spi_controller *, struct spi_message *, struct spi_replaced_transfers *);
82854 
82855 struct spi_replaced_transfers {
82856 	spi_replaced_release_t release;
82857 	void *extradata;
82858 	struct list_head replaced_transfers;
82859 	struct list_head *replaced_after;
82860 	size_t inserted;
82861 	struct spi_transfer inserted_transfers[0];
82862 };
82863 
82864 struct spi_board_info {
82865 	char modalias[32];
82866 	const void *platform_data;
82867 	const struct software_node *swnode;
82868 	void *controller_data;
82869 	int irq;
82870 	u32 max_speed_hz;
82871 	u16 bus_num;
82872 	u16 chip_select;
82873 	u32 mode;
82874 };
82875 
82876 enum spi_mem_data_dir {
82877 	SPI_MEM_NO_DATA = 0,
82878 	SPI_MEM_DATA_IN = 1,
82879 	SPI_MEM_DATA_OUT = 2,
82880 };
82881 
82882 struct spi_mem_op {
82883 	struct {
82884 		u8 nbytes;
82885 		u8 buswidth;
82886 		u8 dtr: 1;
82887 		u16 opcode;
82888 	} cmd;
82889 	struct {
82890 		u8 nbytes;
82891 		u8 buswidth;
82892 		u8 dtr: 1;
82893 		u64 val;
82894 	} addr;
82895 	struct {
82896 		u8 nbytes;
82897 		u8 buswidth;
82898 		u8 dtr: 1;
82899 	} dummy;
82900 	struct {
82901 		u8 buswidth;
82902 		u8 dtr: 1;
82903 		u8 ecc: 1;
82904 		enum spi_mem_data_dir dir;
82905 		unsigned int nbytes;
82906 		union {
82907 			void *in;
82908 			const void *out;
82909 		} buf;
82910 	} data;
82911 };
82912 
82913 struct spi_mem_dirmap_info {
82914 	struct spi_mem_op op_tmpl;
82915 	u64 offset;
82916 	u64 length;
82917 };
82918 
82919 struct spi_mem_dirmap_desc {
82920 	struct spi_mem *mem;
82921 	struct spi_mem_dirmap_info info;
82922 	unsigned int nodirmap;
82923 	void *priv;
82924 };
82925 
82926 struct spi_mem {
82927 	struct spi_device *spi;
82928 	void *drvpriv;
82929 	const char *name;
82930 };
82931 
82932 struct trace_event_raw_spi_controller {
82933 	struct trace_entry ent;
82934 	int bus_num;
82935 	char __data[0];
82936 };
82937 
82938 struct trace_event_raw_spi_setup {
82939 	struct trace_entry ent;
82940 	int bus_num;
82941 	int chip_select;
82942 	long unsigned int mode;
82943 	unsigned int bits_per_word;
82944 	unsigned int max_speed_hz;
82945 	int status;
82946 	char __data[0];
82947 };
82948 
82949 struct trace_event_raw_spi_set_cs {
82950 	struct trace_entry ent;
82951 	int bus_num;
82952 	int chip_select;
82953 	long unsigned int mode;
82954 	bool enable;
82955 	char __data[0];
82956 };
82957 
82958 struct trace_event_raw_spi_message {
82959 	struct trace_entry ent;
82960 	int bus_num;
82961 	int chip_select;
82962 	struct spi_message *msg;
82963 	char __data[0];
82964 };
82965 
82966 struct trace_event_raw_spi_message_done {
82967 	struct trace_entry ent;
82968 	int bus_num;
82969 	int chip_select;
82970 	struct spi_message *msg;
82971 	unsigned int frame;
82972 	unsigned int actual;
82973 	char __data[0];
82974 };
82975 
82976 struct trace_event_raw_spi_transfer {
82977 	struct trace_entry ent;
82978 	int bus_num;
82979 	int chip_select;
82980 	struct spi_transfer *xfer;
82981 	int len;
82982 	u32 __data_loc_rx_buf;
82983 	u32 __data_loc_tx_buf;
82984 	char __data[0];
82985 };
82986 
82987 struct trace_event_data_offsets_spi_controller {};
82988 
82989 struct trace_event_data_offsets_spi_setup {};
82990 
82991 struct trace_event_data_offsets_spi_set_cs {};
82992 
82993 struct trace_event_data_offsets_spi_message {};
82994 
82995 struct trace_event_data_offsets_spi_message_done {};
82996 
82997 struct trace_event_data_offsets_spi_transfer {
82998 	u32 rx_buf;
82999 	u32 tx_buf;
83000 };
83001 
83002 typedef void (*btf_trace_spi_controller_idle)(void *, struct spi_controller *);
83003 
83004 typedef void (*btf_trace_spi_controller_busy)(void *, struct spi_controller *);
83005 
83006 typedef void (*btf_trace_spi_setup)(void *, struct spi_device *, int);
83007 
83008 typedef void (*btf_trace_spi_set_cs)(void *, struct spi_device *, bool);
83009 
83010 typedef void (*btf_trace_spi_message_submit)(void *, struct spi_message *);
83011 
83012 typedef void (*btf_trace_spi_message_start)(void *, struct spi_message *);
83013 
83014 typedef void (*btf_trace_spi_message_done)(void *, struct spi_message *);
83015 
83016 typedef void (*btf_trace_spi_transfer_start)(void *, struct spi_message *, struct spi_transfer *);
83017 
83018 typedef void (*btf_trace_spi_transfer_stop)(void *, struct spi_message *, struct spi_transfer *);
83019 
83020 struct boardinfo {
83021 	struct list_head list;
83022 	struct spi_board_info board_info;
83023 };
83024 
83025 struct acpi_spi_lookup {
83026 	struct spi_controller *ctlr;
83027 	u32 max_speed_hz;
83028 	u32 mode;
83029 	int irq;
83030 	u8 bits_per_word;
83031 	u8 chip_select;
83032 	int n;
83033 	int index;
83034 };
83035 
83036 struct phy_setting {
83037 	u32 speed;
83038 	u8 duplex;
83039 	u8 bit;
83040 };
83041 
83042 struct mdio_driver {
83043 	struct mdio_driver_common mdiodrv;
83044 	int (*probe)(struct mdio_device *);
83045 	void (*remove)(struct mdio_device *);
83046 	void (*shutdown)(struct mdio_device *);
83047 };
83048 
83049 struct mii_timestamping_ctrl {
83050 	struct mii_timestamper * (*probe_channel)(struct device *, unsigned int);
83051 	void (*release_channel)(struct device *, struct mii_timestamper *);
83052 };
83053 
83054 struct mii_timestamping_desc {
83055 	struct list_head list;
83056 	struct mii_timestamping_ctrl *ctrl;
83057 	struct device *device;
83058 };
83059 
83060 typedef enum {
83061 	e1000_undefined___2 = 0,
83062 	e1000_82542_rev2_0 = 1,
83063 	e1000_82542_rev2_1 = 2,
83064 	e1000_82543 = 3,
83065 	e1000_82544 = 4,
83066 	e1000_82540 = 5,
83067 	e1000_82545 = 6,
83068 	e1000_82545_rev_3 = 7,
83069 	e1000_82546 = 8,
83070 	e1000_ce4100 = 9,
83071 	e1000_82546_rev_3 = 10,
83072 	e1000_82541 = 11,
83073 	e1000_82541_rev_2 = 12,
83074 	e1000_82547 = 13,
83075 	e1000_82547_rev_2 = 14,
83076 	e1000_num_macs___2 = 15,
83077 } e1000_mac_type;
83078 
83079 typedef enum {
83080 	e1000_eeprom_uninitialized = 0,
83081 	e1000_eeprom_spi = 1,
83082 	e1000_eeprom_microwire = 2,
83083 	e1000_eeprom_flash = 3,
83084 	e1000_eeprom_none = 4,
83085 	e1000_num_eeprom_types = 5,
83086 } e1000_eeprom_type;
83087 
83088 typedef enum {
83089 	e1000_media_type_copper___2 = 0,
83090 	e1000_media_type_fiber___2 = 1,
83091 	e1000_media_type_internal_serdes___2 = 2,
83092 	e1000_num_media_types___2 = 3,
83093 } e1000_media_type;
83094 
83095 enum {
83096 	e1000_10_half = 0,
83097 	e1000_10_full = 1,
83098 	e1000_100_half = 2,
83099 	e1000_100_full = 3,
83100 };
83101 
83102 typedef enum {
83103 	E1000_FC_NONE = 0,
83104 	E1000_FC_RX_PAUSE = 1,
83105 	E1000_FC_TX_PAUSE = 2,
83106 	E1000_FC_FULL = 3,
83107 	E1000_FC_DEFAULT = 255,
83108 } e1000_fc_type;
83109 
83110 struct e1000_shadow_ram___2 {
83111 	u16 eeprom_word;
83112 	bool modified;
83113 };
83114 
83115 typedef enum {
83116 	e1000_bus_type_unknown___2 = 0,
83117 	e1000_bus_type_pci___2 = 1,
83118 	e1000_bus_type_pcix___2 = 2,
83119 	e1000_bus_type_reserved___2 = 3,
83120 } e1000_bus_type;
83121 
83122 typedef enum {
83123 	e1000_bus_speed_unknown___2 = 0,
83124 	e1000_bus_speed_33___2 = 1,
83125 	e1000_bus_speed_66___2 = 2,
83126 	e1000_bus_speed_100___2 = 3,
83127 	e1000_bus_speed_120___2 = 4,
83128 	e1000_bus_speed_133___2 = 5,
83129 	e1000_bus_speed_reserved___2 = 6,
83130 } e1000_bus_speed;
83131 
83132 typedef enum {
83133 	e1000_bus_width_unknown___2 = 0,
83134 	e1000_bus_width_32___2 = 1,
83135 	e1000_bus_width_64___2 = 2,
83136 	e1000_bus_width_reserved___2 = 3,
83137 } e1000_bus_width;
83138 
83139 typedef enum {
83140 	e1000_cable_length_50 = 0,
83141 	e1000_cable_length_50_80 = 1,
83142 	e1000_cable_length_80_110 = 2,
83143 	e1000_cable_length_110_140 = 3,
83144 	e1000_cable_length_140 = 4,
83145 	e1000_cable_length_undefined = 255,
83146 } e1000_cable_length;
83147 
83148 enum {
83149 	e1000_igp_cable_length_10 = 10,
83150 	e1000_igp_cable_length_20 = 20,
83151 	e1000_igp_cable_length_30 = 30,
83152 	e1000_igp_cable_length_40 = 40,
83153 	e1000_igp_cable_length_50 = 50,
83154 	e1000_igp_cable_length_60 = 60,
83155 	e1000_igp_cable_length_70 = 70,
83156 	e1000_igp_cable_length_80 = 80,
83157 	e1000_igp_cable_length_90 = 90,
83158 	e1000_igp_cable_length_100 = 100,
83159 	e1000_igp_cable_length_110 = 110,
83160 	e1000_igp_cable_length_115 = 115,
83161 	e1000_igp_cable_length_120 = 120,
83162 	e1000_igp_cable_length_130 = 130,
83163 	e1000_igp_cable_length_140 = 140,
83164 	e1000_igp_cable_length_150 = 150,
83165 	e1000_igp_cable_length_160 = 160,
83166 	e1000_igp_cable_length_170 = 170,
83167 	e1000_igp_cable_length_180 = 180,
83168 };
83169 
83170 typedef enum {
83171 	e1000_10bt_ext_dist_enable_normal = 0,
83172 	e1000_10bt_ext_dist_enable_lower = 1,
83173 	e1000_10bt_ext_dist_enable_undefined = 255,
83174 } e1000_10bt_ext_dist_enable;
83175 
83176 typedef enum {
83177 	e1000_rev_polarity_normal___2 = 0,
83178 	e1000_rev_polarity_reversed___2 = 1,
83179 	e1000_rev_polarity_undefined___2 = 255,
83180 } e1000_rev_polarity;
83181 
83182 typedef enum {
83183 	e1000_downshift_normal = 0,
83184 	e1000_downshift_activated = 1,
83185 	e1000_downshift_undefined = 255,
83186 } e1000_downshift;
83187 
83188 typedef enum {
83189 	e1000_smart_speed_default___2 = 0,
83190 	e1000_smart_speed_on___2 = 1,
83191 	e1000_smart_speed_off___2 = 2,
83192 } e1000_smart_speed;
83193 
83194 typedef enum {
83195 	e1000_polarity_reversal_enabled = 0,
83196 	e1000_polarity_reversal_disabled = 1,
83197 	e1000_polarity_reversal_undefined = 255,
83198 } e1000_polarity_reversal;
83199 
83200 typedef enum {
83201 	e1000_auto_x_mode_manual_mdi = 0,
83202 	e1000_auto_x_mode_manual_mdix = 1,
83203 	e1000_auto_x_mode_auto1 = 2,
83204 	e1000_auto_x_mode_auto2 = 3,
83205 	e1000_auto_x_mode_undefined = 255,
83206 } e1000_auto_x_mode;
83207 
83208 typedef enum {
83209 	e1000_1000t_rx_status_not_ok___2 = 0,
83210 	e1000_1000t_rx_status_ok___2 = 1,
83211 	e1000_1000t_rx_status_undefined___2 = 255,
83212 } e1000_1000t_rx_status;
83213 
83214 typedef enum {
83215 	e1000_phy_m88___3 = 0,
83216 	e1000_phy_igp___3 = 1,
83217 	e1000_phy_8211 = 2,
83218 	e1000_phy_8201 = 3,
83219 	e1000_phy_undefined = 255,
83220 } e1000_phy_type;
83221 
83222 typedef enum {
83223 	e1000_ms_hw_default___2 = 0,
83224 	e1000_ms_force_master___2 = 1,
83225 	e1000_ms_force_slave___2 = 2,
83226 	e1000_ms_auto___2 = 3,
83227 } e1000_ms_type;
83228 
83229 typedef enum {
83230 	e1000_ffe_config_enabled = 0,
83231 	e1000_ffe_config_active = 1,
83232 	e1000_ffe_config_blocked = 2,
83233 } e1000_ffe_config;
83234 
83235 typedef enum {
83236 	e1000_dsp_config_disabled = 0,
83237 	e1000_dsp_config_enabled = 1,
83238 	e1000_dsp_config_activated = 2,
83239 	e1000_dsp_config_undefined = 255,
83240 } e1000_dsp_config;
83241 
83242 struct e1000_phy_info___3 {
83243 	e1000_cable_length cable_length;
83244 	e1000_10bt_ext_dist_enable extended_10bt_distance;
83245 	e1000_rev_polarity cable_polarity;
83246 	e1000_downshift downshift;
83247 	e1000_polarity_reversal polarity_correction;
83248 	e1000_auto_x_mode mdix_mode;
83249 	e1000_1000t_rx_status local_rx;
83250 	e1000_1000t_rx_status remote_rx;
83251 };
83252 
83253 struct e1000_eeprom_info {
83254 	e1000_eeprom_type type;
83255 	u16 word_size;
83256 	u16 opcode_bits;
83257 	u16 address_bits;
83258 	u16 delay_usec;
83259 	u16 page_size;
83260 };
83261 
83262 struct e1000_hw___3 {
83263 	u8 *hw_addr;
83264 	u8 *flash_address;
83265 	void *ce4100_gbe_mdio_base_virt;
83266 	e1000_mac_type mac_type;
83267 	e1000_phy_type phy_type;
83268 	u32 phy_init_script;
83269 	e1000_media_type media_type;
83270 	void *back;
83271 	struct e1000_shadow_ram___2 *eeprom_shadow_ram;
83272 	u32 flash_bank_size;
83273 	u32 flash_base_addr;
83274 	e1000_fc_type fc;
83275 	e1000_bus_speed bus_speed;
83276 	e1000_bus_width bus_width;
83277 	e1000_bus_type bus_type;
83278 	struct e1000_eeprom_info eeprom;
83279 	e1000_ms_type master_slave;
83280 	e1000_ms_type original_master_slave;
83281 	e1000_ffe_config ffe_config_state;
83282 	u32 asf_firmware_present;
83283 	u32 eeprom_semaphore_present;
83284 	long unsigned int io_base;
83285 	u32 phy_id;
83286 	u32 phy_revision;
83287 	u32 phy_addr;
83288 	u32 original_fc;
83289 	u32 txcw;
83290 	u32 autoneg_failed;
83291 	u32 max_frame_size;
83292 	u32 min_frame_size;
83293 	u32 mc_filter_type;
83294 	u32 num_mc_addrs;
83295 	u32 collision_delta;
83296 	u32 tx_packet_delta;
83297 	u32 ledctl_default;
83298 	u32 ledctl_mode1;
83299 	u32 ledctl_mode2;
83300 	bool tx_pkt_filtering;
83301 	struct e1000_host_mng_dhcp_cookie mng_cookie;
83302 	u16 phy_spd_default;
83303 	u16 autoneg_advertised;
83304 	u16 pci_cmd_word;
83305 	u16 fc_high_water;
83306 	u16 fc_low_water;
83307 	u16 fc_pause_time;
83308 	u16 current_ifs_val;
83309 	u16 ifs_min_val;
83310 	u16 ifs_max_val;
83311 	u16 ifs_step_size;
83312 	u16 ifs_ratio;
83313 	u16 device_id;
83314 	u16 vendor_id;
83315 	u16 subsystem_id;
83316 	u16 subsystem_vendor_id;
83317 	u8 revision_id;
83318 	u8 autoneg;
83319 	u8 mdix;
83320 	u8 forced_speed_duplex;
83321 	u8 wait_autoneg_complete;
83322 	u8 dma_fairness;
83323 	u8 mac_addr[6];
83324 	u8 perm_mac_addr[6];
83325 	bool disable_polarity_correction;
83326 	bool speed_downgraded;
83327 	e1000_smart_speed smart_speed;
83328 	e1000_dsp_config dsp_config_state;
83329 	bool get_link_status;
83330 	bool serdes_has_link;
83331 	bool tbi_compatibility_en;
83332 	bool tbi_compatibility_on;
83333 	bool laa_is_present;
83334 	bool phy_reset_disable;
83335 	bool initialize_hw_bits_disable;
83336 	bool fc_send_xon;
83337 	bool fc_strict_ieee;
83338 	bool report_tx_early;
83339 	bool adaptive_ifs;
83340 	bool ifs_params_forced;
83341 	bool in_ifs_mode;
83342 	bool mng_reg_access_disabled;
83343 	bool leave_av_bit_off;
83344 	bool bad_tx_carr_stats_fd;
83345 	bool has_smbus;
83346 };
83347 
83348 struct e1000_hw_stats___3 {
83349 	u64 crcerrs;
83350 	u64 algnerrc;
83351 	u64 symerrs;
83352 	u64 rxerrc;
83353 	u64 txerrc;
83354 	u64 mpc;
83355 	u64 scc;
83356 	u64 ecol;
83357 	u64 mcc;
83358 	u64 latecol;
83359 	u64 colc;
83360 	u64 dc;
83361 	u64 tncrs;
83362 	u64 sec;
83363 	u64 cexterr;
83364 	u64 rlec;
83365 	u64 xonrxc;
83366 	u64 xontxc;
83367 	u64 xoffrxc;
83368 	u64 xofftxc;
83369 	u64 fcruc;
83370 	u64 prc64;
83371 	u64 prc127;
83372 	u64 prc255;
83373 	u64 prc511;
83374 	u64 prc1023;
83375 	u64 prc1522;
83376 	u64 gprc;
83377 	u64 bprc;
83378 	u64 mprc;
83379 	u64 gptc;
83380 	u64 gorcl;
83381 	u64 gorch;
83382 	u64 gotcl;
83383 	u64 gotch;
83384 	u64 rnbc;
83385 	u64 ruc;
83386 	u64 rfc;
83387 	u64 roc;
83388 	u64 rlerrc;
83389 	u64 rjc;
83390 	u64 mgprc;
83391 	u64 mgpdc;
83392 	u64 mgptc;
83393 	u64 torl;
83394 	u64 torh;
83395 	u64 totl;
83396 	u64 toth;
83397 	u64 tpr;
83398 	u64 tpt;
83399 	u64 ptc64;
83400 	u64 ptc127;
83401 	u64 ptc255;
83402 	u64 ptc511;
83403 	u64 ptc1023;
83404 	u64 ptc1522;
83405 	u64 mptc;
83406 	u64 bptc;
83407 	u64 tsctc;
83408 	u64 tsctfc;
83409 	u64 iac;
83410 	u64 icrxptc;
83411 	u64 icrxatc;
83412 	u64 ictxptc;
83413 	u64 ictxatc;
83414 	u64 ictxqec;
83415 	u64 ictxqmtc;
83416 	u64 icrxdmtc;
83417 	u64 icrxoc;
83418 };
83419 
83420 struct e1000_tx_buffer {
83421 	struct sk_buff *skb;
83422 	dma_addr_t dma;
83423 	long unsigned int time_stamp;
83424 	u16 length;
83425 	u16 next_to_watch;
83426 	bool mapped_as_page;
83427 	short unsigned int segs;
83428 	unsigned int bytecount;
83429 };
83430 
83431 struct e1000_rx_buffer {
83432 	union {
83433 		struct page *page;
83434 		u8 *data;
83435 	} rxbuf;
83436 	dma_addr_t dma;
83437 };
83438 
83439 struct e1000_tx_ring {
83440 	void *desc;
83441 	dma_addr_t dma;
83442 	unsigned int size;
83443 	unsigned int count;
83444 	unsigned int next_to_use;
83445 	unsigned int next_to_clean;
83446 	struct e1000_tx_buffer *buffer_info;
83447 	u16 tdh;
83448 	u16 tdt;
83449 	bool last_tx_tso;
83450 };
83451 
83452 struct e1000_rx_ring {
83453 	void *desc;
83454 	dma_addr_t dma;
83455 	unsigned int size;
83456 	unsigned int count;
83457 	unsigned int next_to_use;
83458 	unsigned int next_to_clean;
83459 	struct e1000_rx_buffer *buffer_info;
83460 	struct sk_buff *rx_skb_top;
83461 	int cpu;
83462 	u16 rdh;
83463 	u16 rdt;
83464 };
83465 
83466 struct e1000_adapter___2 {
83467 	long unsigned int active_vlans[64];
83468 	u16 mng_vlan_id;
83469 	u32 bd_number;
83470 	u32 rx_buffer_len;
83471 	u32 wol;
83472 	u32 smartspeed;
83473 	u32 en_mng_pt;
83474 	u16 link_speed;
83475 	u16 link_duplex;
83476 	spinlock_t stats_lock;
83477 	unsigned int total_tx_bytes;
83478 	unsigned int total_tx_packets;
83479 	unsigned int total_rx_bytes;
83480 	unsigned int total_rx_packets;
83481 	u32 itr;
83482 	u32 itr_setting;
83483 	u16 tx_itr;
83484 	u16 rx_itr;
83485 	u8 fc_autoneg;
83486 	struct e1000_tx_ring *tx_ring;
83487 	unsigned int restart_queue;
83488 	u32 txd_cmd;
83489 	u32 tx_int_delay;
83490 	u32 tx_abs_int_delay;
83491 	u32 gotcl;
83492 	u64 gotcl_old;
83493 	u64 tpt_old;
83494 	u64 colc_old;
83495 	u32 tx_timeout_count;
83496 	u32 tx_fifo_head;
83497 	u32 tx_head_addr;
83498 	u32 tx_fifo_size;
83499 	u8 tx_timeout_factor;
83500 	atomic_t tx_fifo_stall;
83501 	bool pcix_82544;
83502 	bool detect_tx_hung;
83503 	bool dump_buffers;
83504 	bool (*clean_rx)(struct e1000_adapter___2 *, struct e1000_rx_ring *, int *, int);
83505 	void (*alloc_rx_buf)(struct e1000_adapter___2 *, struct e1000_rx_ring *, int);
83506 	struct e1000_rx_ring *rx_ring;
83507 	struct napi_struct napi;
83508 	int num_tx_queues;
83509 	int num_rx_queues;
83510 	u64 hw_csum_err;
83511 	u64 hw_csum_good;
83512 	u32 alloc_rx_buff_failed;
83513 	u32 rx_int_delay;
83514 	u32 rx_abs_int_delay;
83515 	bool rx_csum;
83516 	u32 gorcl;
83517 	u64 gorcl_old;
83518 	struct net_device *netdev;
83519 	struct pci_dev *pdev;
83520 	struct e1000_hw___3 hw;
83521 	struct e1000_hw_stats___3 stats;
83522 	struct e1000_phy_info___3 phy_info;
83523 	struct e1000_phy_stats phy_stats;
83524 	u32 test_icr;
83525 	struct e1000_tx_ring test_tx_ring;
83526 	struct e1000_rx_ring test_rx_ring;
83527 	int msg_enable;
83528 	bool tso_force;
83529 	bool smart_power_down;
83530 	bool quad_port_a;
83531 	long unsigned int flags;
83532 	u32 eeprom_wol;
83533 	int bars;
83534 	int need_ioport;
83535 	bool discarding;
83536 	struct work_struct reset_task;
83537 	struct delayed_work watchdog_task;
83538 	struct delayed_work fifo_stall_task;
83539 	struct delayed_work phy_info_task;
83540 };
83541 
83542 struct e1000_opt_list {
83543 	int i;
83544 	char *str;
83545 };
83546 
83547 struct e1000_option {
83548 	enum {
83549 		enable_option = 0,
83550 		range_option = 1,
83551 		list_option = 2,
83552 	} type;
83553 	const char *name;
83554 	const char *err;
83555 	int def;
83556 	union {
83557 		struct {
83558 			int min;
83559 			int max;
83560 		} r;
83561 		struct {
83562 			int nr;
83563 			const struct e1000_opt_list *p;
83564 		} l;
83565 	} arg;
83566 };
83567 
83568 union e1000_rx_desc_extended {
83569 	struct {
83570 		__le64 buffer_addr;
83571 		__le64 reserved;
83572 	} read;
83573 	struct {
83574 		struct {
83575 			__le32 mrq;
83576 			union {
83577 				__le32 rss;
83578 				struct {
83579 					__le16 ip_id;
83580 					__le16 csum;
83581 				} csum_ip;
83582 			} hi_dword;
83583 		} lower;
83584 		struct {
83585 			__le32 status_error;
83586 			__le16 length;
83587 			__le16 vlan;
83588 		} upper;
83589 	} wb;
83590 };
83591 
83592 struct e1000_tx_desc {
83593 	__le64 buffer_addr;
83594 	union {
83595 		__le32 data;
83596 		struct {
83597 			__le16 length;
83598 			u8 cso;
83599 			u8 cmd;
83600 		} flags;
83601 	} lower;
83602 	union {
83603 		__le32 data;
83604 		struct {
83605 			u8 status;
83606 			u8 css;
83607 			__le16 special;
83608 		} fields;
83609 	} upper;
83610 };
83611 
83612 enum {
83613 	NETDEV_STATS___3 = 0,
83614 	E1000_STATS = 1,
83615 };
83616 
83617 struct e1000_stats {
83618 	char stat_string[32];
83619 	int type;
83620 	int sizeof_stat;
83621 	int stat_offset;
83622 };
83623 
83624 union e1000_adv_rx_desc {
83625 	struct {
83626 		__le64 pkt_addr;
83627 		__le64 hdr_addr;
83628 	} read;
83629 	struct {
83630 		struct {
83631 			struct {
83632 				__le16 pkt_info;
83633 				__le16 hdr_info;
83634 			} lo_dword;
83635 			union {
83636 				__le32 rss;
83637 				struct {
83638 					__le16 ip_id;
83639 					__le16 csum;
83640 				} csum_ip;
83641 			} hi_dword;
83642 		} lower;
83643 		struct {
83644 			__le32 status_error;
83645 			__le16 length;
83646 			__le16 vlan;
83647 		} upper;
83648 	} wb;
83649 };
83650 
83651 enum igb_filter_match_flags {
83652 	IGB_FILTER_FLAG_ETHER_TYPE = 1,
83653 	IGB_FILTER_FLAG_VLAN_TCI = 2,
83654 	IGB_FILTER_FLAG_SRC_MAC_ADDR = 4,
83655 	IGB_FILTER_FLAG_DST_MAC_ADDR = 8,
83656 };
83657 
83658 struct igb_nfc_input {
83659 	u8 match_flags;
83660 	__be16 etype;
83661 	__be16 vlan_tci;
83662 	u8 src_addr[6];
83663 	u8 dst_addr[6];
83664 };
83665 
83666 struct igb_nfc_filter {
83667 	struct hlist_node nfc_node;
83668 	struct igb_nfc_input filter;
83669 	long unsigned int cookie;
83670 	u16 etype_reg_index;
83671 	u16 sw_idx;
83672 	u16 action;
83673 };
83674 
83675 enum e1000_state_t___2 {
83676 	__IGB_TESTING = 0,
83677 	__IGB_RESETTING = 1,
83678 	__IGB_DOWN = 2,
83679 	__IGB_PTP_TX_IN_PROGRESS = 3,
83680 };
83681 
83682 struct igb_stats {
83683 	char stat_string[32];
83684 	int sizeof_stat;
83685 	int stat_offset;
83686 };
83687 
83688 enum igb_diagnostics_results {
83689 	TEST_REG = 0,
83690 	TEST_EEP = 1,
83691 	TEST_IRQ = 2,
83692 	TEST_LOOP = 3,
83693 	TEST_LINK = 4,
83694 };
83695 
83696 struct igb_reg_test {
83697 	u16 reg;
83698 	u16 reg_offset;
83699 	u16 array_len;
83700 	u16 test_type;
83701 	u32 mask;
83702 	u32 write;
83703 };
83704 
83705 struct e1000_fw_version {
83706 	u32 etrack_id;
83707 	u16 eep_major;
83708 	u16 eep_minor;
83709 	u16 eep_build;
83710 	u8 invm_major;
83711 	u8 invm_minor;
83712 	u8 invm_img_type;
83713 	bool or_valid;
83714 	u16 or_major;
83715 	u16 or_build;
83716 	u16 or_patch;
83717 };
83718 
83719 union ixgbe_atr_hash_dword {
83720 	struct {
83721 		u8 vm_pool;
83722 		u8 flow_type;
83723 		__be16 vlan_id;
83724 	} formatted;
83725 	__be32 ip;
83726 	struct {
83727 		__be16 src;
83728 		__be16 dst;
83729 	} port;
83730 	__be16 flex_bytes;
83731 	__be32 dword;
83732 };
83733 
83734 struct ixgbe_info {
83735 	enum ixgbe_mac_type mac;
83736 	s32 (*get_invariants)(struct ixgbe_hw *);
83737 	const struct ixgbe_mac_operations *mac_ops;
83738 	const struct ixgbe_eeprom_operations *eeprom_ops;
83739 	const struct ixgbe_phy_operations *phy_ops;
83740 	const struct ixgbe_mbx_operations *mbx_ops;
83741 	const struct ixgbe_link_operations *link_ops;
83742 	const u32 *mvals;
83743 };
83744 
83745 struct ixgbe_hic_hdr {
83746 	u8 cmd;
83747 	u8 buf_len;
83748 	union {
83749 		u8 cmd_resv;
83750 		u8 ret_status;
83751 	} cmd_or_resp;
83752 	u8 checksum;
83753 };
83754 
83755 struct ixgbe_hic_hdr2_req {
83756 	u8 cmd;
83757 	u8 buf_lenh;
83758 	u8 buf_lenl;
83759 	u8 checksum;
83760 };
83761 
83762 struct ixgbe_hic_hdr2_rsp {
83763 	u8 cmd;
83764 	u8 buf_lenl;
83765 	u8 buf_lenh_status;
83766 	u8 checksum;
83767 };
83768 
83769 union ixgbe_hic_hdr2 {
83770 	struct ixgbe_hic_hdr2_req req;
83771 	struct ixgbe_hic_hdr2_rsp rsp;
83772 };
83773 
83774 struct ixgbe_hic_drv_info2 {
83775 	struct ixgbe_hic_hdr hdr;
83776 	u8 port_num;
83777 	u8 ver_sub;
83778 	u8 ver_build;
83779 	u8 ver_min;
83780 	u8 ver_maj;
83781 	char driver_string[39];
83782 };
83783 
83784 struct ixgbe_hic_read_shadow_ram {
83785 	union ixgbe_hic_hdr2 hdr;
83786 	u32 address;
83787 	u16 length;
83788 	u16 pad2;
83789 	u16 data;
83790 	u16 pad3;
83791 };
83792 
83793 struct ixgbe_hic_write_shadow_ram {
83794 	union ixgbe_hic_hdr2 hdr;
83795 	__be32 address;
83796 	__be16 length;
83797 	u16 pad2;
83798 	u16 data;
83799 	u16 pad3;
83800 };
83801 
83802 struct ixgbe_hic_disable_rxen {
83803 	struct ixgbe_hic_hdr hdr;
83804 	u8 port_number;
83805 	u8 pad2;
83806 	u16 pad3;
83807 };
83808 
83809 struct ixgbe_hic_phy_token_req {
83810 	struct ixgbe_hic_hdr hdr;
83811 	u8 port_number;
83812 	u8 command_type;
83813 	u16 pad;
83814 };
83815 
83816 struct ixgbe_hic_internal_phy_req {
83817 	struct ixgbe_hic_hdr hdr;
83818 	u8 port_number;
83819 	u8 command_type;
83820 	__be16 address;
83821 	u16 rsv1;
83822 	__be32 write_data;
83823 	u16 pad;
83824 } __attribute__((packed));
83825 
83826 struct ixgbe_hic_internal_phy_resp {
83827 	struct ixgbe_hic_hdr hdr;
83828 	__be32 read_data;
83829 };
83830 
83831 struct ixgbe_hic_phy_activity_req {
83832 	struct ixgbe_hic_hdr hdr;
83833 	u8 port_number;
83834 	u8 pad;
83835 	__le16 activity_id;
83836 	__be32 data[4];
83837 };
83838 
83839 struct ixgbe_hic_phy_activity_resp {
83840 	struct ixgbe_hic_hdr hdr;
83841 	__be32 data[4];
83842 };
83843 
83844 struct ixgb_rx_desc {
83845 	__le64 buff_addr;
83846 	__le16 length;
83847 	__le16 reserved;
83848 	u8 status;
83849 	u8 errors;
83850 	__le16 special;
83851 };
83852 
83853 struct ixgb_tx_desc {
83854 	__le64 buff_addr;
83855 	__le32 cmd_type_len;
83856 	u8 status;
83857 	u8 popts;
83858 	__le16 vlan;
83859 };
83860 
83861 struct ixgb_context_desc {
83862 	u8 ipcss;
83863 	u8 ipcso;
83864 	__le16 ipcse;
83865 	u8 tucss;
83866 	u8 tucso;
83867 	__le16 tucse;
83868 	__le32 cmd_type_len;
83869 	u8 status;
83870 	u8 hdr_len;
83871 	__le16 mss;
83872 };
83873 
83874 enum ixgb_state_t {
83875 	__IXGB_DOWN = 0,
83876 };
83877 
83878 struct stmmac_stats {
83879 	char stat_string[32];
83880 	int sizeof_stat;
83881 	int stat_offset;
83882 };
83883 
83884 struct stmmac_regs_off {
83885 	u32 ptp_off;
83886 	u32 mmc_off;
83887 };
83888 
83889 struct stmmac_hwif_entry {
83890 	bool gmac;
83891 	bool gmac4;
83892 	bool xgmac;
83893 	u32 min_id;
83894 	u32 dev_id;
83895 	const struct stmmac_regs_off regs;
83896 	const void *desc;
83897 	const void *dma;
83898 	const void *mac;
83899 	const void *hwtimestamp;
83900 	const void *mode;
83901 	const void *tc;
83902 	const void *mmc;
83903 	int (*setup)(struct stmmac_priv *);
83904 	int (*quirks)(struct stmmac_priv *);
83905 };
83906 
83907 enum rx_frame_status {
83908 	good_frame = 0,
83909 	discard_frame = 1,
83910 	csum_none = 2,
83911 	llc_snap = 4,
83912 	dma_own = 8,
83913 	rx_not_ls = 16,
83914 };
83915 
83916 enum tx_frame_status {
83917 	tx_done = 0,
83918 	tx_not_ls = 1,
83919 	tx_err = 2,
83920 	tx_dma_own = 4,
83921 	tx_err_bump_tc = 8,
83922 };
83923 
83924 struct stmmac_resources {
83925 	void *addr;
83926 	u8 mac[6];
83927 	int wol_irq;
83928 	int lpi_irq;
83929 	int irq;
83930 	int sfty_ce_irq;
83931 	int sfty_ue_irq;
83932 	int rx_irq[8];
83933 	int tx_irq[8];
83934 };
83935 
83936 struct usb_qualifier_descriptor {
83937 	__u8 bLength;
83938 	__u8 bDescriptorType;
83939 	__le16 bcdUSB;
83940 	__u8 bDeviceClass;
83941 	__u8 bDeviceSubClass;
83942 	__u8 bDeviceProtocol;
83943 	__u8 bMaxPacketSize0;
83944 	__u8 bNumConfigurations;
83945 	__u8 bRESERVED;
83946 };
83947 
83948 struct usb_set_sel_req {
83949 	__u8 u1_sel;
83950 	__u8 u1_pel;
83951 	__le16 u2_sel;
83952 	__le16 u2_pel;
83953 };
83954 
83955 struct usbdevfs_hub_portinfo {
83956 	char nports;
83957 	char port[127];
83958 };
83959 
83960 enum hub_led_mode {
83961 	INDICATOR_AUTO = 0,
83962 	INDICATOR_CYCLE = 1,
83963 	INDICATOR_GREEN_BLINK = 2,
83964 	INDICATOR_GREEN_BLINK_OFF = 3,
83965 	INDICATOR_AMBER_BLINK = 4,
83966 	INDICATOR_AMBER_BLINK_OFF = 5,
83967 	INDICATOR_ALT_BLINK = 6,
83968 	INDICATOR_ALT_BLINK_OFF = 7,
83969 };
83970 
83971 struct usb_tt_clear {
83972 	struct list_head clear_list;
83973 	unsigned int tt;
83974 	u16 devinfo;
83975 	struct usb_hcd *hcd;
83976 	struct usb_host_endpoint *ep;
83977 };
83978 
83979 enum hub_activation_type {
83980 	HUB_INIT = 0,
83981 	HUB_INIT2 = 1,
83982 	HUB_INIT3 = 2,
83983 	HUB_POST_RESET = 3,
83984 	HUB_RESUME = 4,
83985 	HUB_RESET_RESUME = 5,
83986 };
83987 
83988 enum hub_quiescing_type {
83989 	HUB_DISCONNECT = 0,
83990 	HUB_PRE_RESET = 1,
83991 	HUB_SUSPEND = 2,
83992 };
83993 
83994 struct usb_class_driver {
83995 	char *name;
83996 	char * (*devnode)(const struct device *, umode_t *);
83997 	const struct file_operations *fops;
83998 	int minor_base;
83999 };
84000 
84001 struct usb_class {
84002 	struct kref kref;
84003 	struct class *class;
84004 };
84005 
84006 struct usbdevfs_ctrltransfer {
84007 	__u8 bRequestType;
84008 	__u8 bRequest;
84009 	__u16 wValue;
84010 	__u16 wIndex;
84011 	__u16 wLength;
84012 	__u32 timeout;
84013 	void *data;
84014 };
84015 
84016 struct usbdevfs_bulktransfer {
84017 	unsigned int ep;
84018 	unsigned int len;
84019 	unsigned int timeout;
84020 	void *data;
84021 };
84022 
84023 struct usbdevfs_setinterface {
84024 	unsigned int interface;
84025 	unsigned int altsetting;
84026 };
84027 
84028 struct usbdevfs_disconnectsignal {
84029 	unsigned int signr;
84030 	void *context;
84031 };
84032 
84033 struct usbdevfs_getdriver {
84034 	unsigned int interface;
84035 	char driver[256];
84036 };
84037 
84038 struct usbdevfs_connectinfo {
84039 	unsigned int devnum;
84040 	unsigned char slow;
84041 };
84042 
84043 struct usbdevfs_conninfo_ex {
84044 	__u32 size;
84045 	__u32 busnum;
84046 	__u32 devnum;
84047 	__u32 speed;
84048 	__u8 num_ports;
84049 	__u8 ports[7];
84050 };
84051 
84052 struct usbdevfs_iso_packet_desc {
84053 	unsigned int length;
84054 	unsigned int actual_length;
84055 	unsigned int status;
84056 };
84057 
84058 struct usbdevfs_urb {
84059 	unsigned char type;
84060 	unsigned char endpoint;
84061 	int status;
84062 	unsigned int flags;
84063 	void *buffer;
84064 	int buffer_length;
84065 	int actual_length;
84066 	int start_frame;
84067 	union {
84068 		int number_of_packets;
84069 		unsigned int stream_id;
84070 	};
84071 	int error_count;
84072 	unsigned int signr;
84073 	void *usercontext;
84074 	struct usbdevfs_iso_packet_desc iso_frame_desc[0];
84075 };
84076 
84077 struct usbdevfs_ioctl {
84078 	int ifno;
84079 	int ioctl_code;
84080 	void *data;
84081 };
84082 
84083 struct usbdevfs_disconnect_claim {
84084 	unsigned int interface;
84085 	unsigned int flags;
84086 	char driver[256];
84087 };
84088 
84089 struct usbdevfs_streams {
84090 	unsigned int num_streams;
84091 	unsigned int num_eps;
84092 	unsigned char eps[0];
84093 };
84094 
84095 struct usb_dev_state {
84096 	struct list_head list;
84097 	struct usb_device *dev;
84098 	struct file *file;
84099 	spinlock_t lock;
84100 	struct list_head async_pending;
84101 	struct list_head async_completed;
84102 	struct list_head memory_list;
84103 	wait_queue_head_t wait;
84104 	wait_queue_head_t wait_for_resume;
84105 	unsigned int discsignr;
84106 	struct pid *disc_pid;
84107 	const struct cred *cred;
84108 	sigval_t disccontext;
84109 	long unsigned int ifclaimed;
84110 	u32 disabled_bulk_eps;
84111 	long unsigned int interface_allowed_mask;
84112 	int not_yet_resumed;
84113 	bool suspend_allowed;
84114 	bool privileges_dropped;
84115 };
84116 
84117 struct usb_memory {
84118 	struct list_head memlist;
84119 	int vma_use_count;
84120 	int urb_use_count;
84121 	u32 size;
84122 	void *mem;
84123 	dma_addr_t dma_handle;
84124 	long unsigned int vm_start;
84125 	struct usb_dev_state *ps;
84126 };
84127 
84128 struct async {
84129 	struct list_head asynclist;
84130 	struct usb_dev_state *ps;
84131 	struct pid *pid;
84132 	const struct cred *cred;
84133 	unsigned int signr;
84134 	unsigned int ifnum;
84135 	void *userbuffer;
84136 	void *userurb;
84137 	sigval_t userurb_sigval;
84138 	struct urb *urb;
84139 	struct usb_memory *usbm;
84140 	unsigned int mem_usage;
84141 	int status;
84142 	u8 bulk_addr;
84143 	u8 bulk_status;
84144 };
84145 
84146 enum snoop_when {
84147 	SUBMIT = 0,
84148 	COMPLETE = 1,
84149 };
84150 
84151 struct usb_phy_roothub {
84152 	struct phy *phy;
84153 	struct list_head list;
84154 };
84155 
84156 struct acpi_bus_type {
84157 	struct list_head list;
84158 	const char *name;
84159 	bool (*match)(struct device *);
84160 	struct acpi_device * (*find_companion)(struct device *);
84161 	void (*setup)(struct device *);
84162 };
84163 
84164 struct ehci_stats {
84165 	long unsigned int normal;
84166 	long unsigned int error;
84167 	long unsigned int iaa;
84168 	long unsigned int lost_iaa;
84169 	long unsigned int complete;
84170 	long unsigned int unlink;
84171 };
84172 
84173 struct ehci_per_sched {
84174 	struct usb_device *udev;
84175 	struct usb_host_endpoint *ep;
84176 	struct list_head ps_list;
84177 	u16 tt_usecs;
84178 	u16 cs_mask;
84179 	u16 period;
84180 	u16 phase;
84181 	u8 bw_phase;
84182 	u8 phase_uf;
84183 	u8 usecs;
84184 	u8 c_usecs;
84185 	u8 bw_uperiod;
84186 	u8 bw_period;
84187 };
84188 
84189 enum ehci_rh_state {
84190 	EHCI_RH_HALTED = 0,
84191 	EHCI_RH_SUSPENDED = 1,
84192 	EHCI_RH_RUNNING = 2,
84193 	EHCI_RH_STOPPING = 3,
84194 };
84195 
84196 enum ehci_hrtimer_event {
84197 	EHCI_HRTIMER_POLL_ASS = 0,
84198 	EHCI_HRTIMER_POLL_PSS = 1,
84199 	EHCI_HRTIMER_POLL_DEAD = 2,
84200 	EHCI_HRTIMER_UNLINK_INTR = 3,
84201 	EHCI_HRTIMER_FREE_ITDS = 4,
84202 	EHCI_HRTIMER_ACTIVE_UNLINK = 5,
84203 	EHCI_HRTIMER_START_UNLINK_INTR = 6,
84204 	EHCI_HRTIMER_ASYNC_UNLINKS = 7,
84205 	EHCI_HRTIMER_IAA_WATCHDOG = 8,
84206 	EHCI_HRTIMER_DISABLE_PERIODIC = 9,
84207 	EHCI_HRTIMER_DISABLE_ASYNC = 10,
84208 	EHCI_HRTIMER_IO_WATCHDOG = 11,
84209 	EHCI_HRTIMER_NUM_EVENTS = 12,
84210 };
84211 
84212 struct ehci_caps;
84213 
84214 struct ehci_regs;
84215 
84216 struct ehci_dbg_port;
84217 
84218 struct ehci_qh;
84219 
84220 union ehci_shadow;
84221 
84222 struct ehci_itd;
84223 
84224 struct ehci_sitd;
84225 
84226 struct ehci_hcd {
84227 	enum ehci_hrtimer_event next_hrtimer_event;
84228 	unsigned int enabled_hrtimer_events;
84229 	ktime_t hr_timeouts[12];
84230 	struct hrtimer hrtimer;
84231 	int PSS_poll_count;
84232 	int ASS_poll_count;
84233 	int died_poll_count;
84234 	struct ehci_caps *caps;
84235 	struct ehci_regs *regs;
84236 	struct ehci_dbg_port *debug;
84237 	__u32 hcs_params;
84238 	spinlock_t lock;
84239 	enum ehci_rh_state rh_state;
84240 	bool scanning: 1;
84241 	bool need_rescan: 1;
84242 	bool intr_unlinking: 1;
84243 	bool iaa_in_progress: 1;
84244 	bool async_unlinking: 1;
84245 	bool shutdown: 1;
84246 	struct ehci_qh *qh_scan_next;
84247 	struct ehci_qh *async;
84248 	struct ehci_qh *dummy;
84249 	struct list_head async_unlink;
84250 	struct list_head async_idle;
84251 	unsigned int async_unlink_cycle;
84252 	unsigned int async_count;
84253 	__le32 old_current;
84254 	__le32 old_token;
84255 	unsigned int periodic_size;
84256 	__le32 *periodic;
84257 	dma_addr_t periodic_dma;
84258 	struct list_head intr_qh_list;
84259 	unsigned int i_thresh;
84260 	union ehci_shadow *pshadow;
84261 	struct list_head intr_unlink_wait;
84262 	struct list_head intr_unlink;
84263 	unsigned int intr_unlink_wait_cycle;
84264 	unsigned int intr_unlink_cycle;
84265 	unsigned int now_frame;
84266 	unsigned int last_iso_frame;
84267 	unsigned int intr_count;
84268 	unsigned int isoc_count;
84269 	unsigned int periodic_count;
84270 	unsigned int uframe_periodic_max;
84271 	struct list_head cached_itd_list;
84272 	struct ehci_itd *last_itd_to_free;
84273 	struct list_head cached_sitd_list;
84274 	struct ehci_sitd *last_sitd_to_free;
84275 	long unsigned int reset_done[15];
84276 	long unsigned int bus_suspended;
84277 	long unsigned int companion_ports;
84278 	long unsigned int owned_ports;
84279 	long unsigned int port_c_suspend;
84280 	long unsigned int suspended_ports;
84281 	long unsigned int resuming_ports;
84282 	struct dma_pool *qh_pool;
84283 	struct dma_pool *qtd_pool;
84284 	struct dma_pool *itd_pool;
84285 	struct dma_pool *sitd_pool;
84286 	unsigned int random_frame;
84287 	long unsigned int next_statechange;
84288 	ktime_t last_periodic_enable;
84289 	u32 command;
84290 	unsigned int no_selective_suspend: 1;
84291 	unsigned int has_fsl_port_bug: 1;
84292 	unsigned int has_fsl_hs_errata: 1;
84293 	unsigned int has_fsl_susp_errata: 1;
84294 	unsigned int big_endian_mmio: 1;
84295 	unsigned int big_endian_desc: 1;
84296 	unsigned int big_endian_capbase: 1;
84297 	unsigned int has_amcc_usb23: 1;
84298 	unsigned int need_io_watchdog: 1;
84299 	unsigned int amd_pll_fix: 1;
84300 	unsigned int use_dummy_qh: 1;
84301 	unsigned int has_synopsys_hc_bug: 1;
84302 	unsigned int frame_index_bug: 1;
84303 	unsigned int need_oc_pp_cycle: 1;
84304 	unsigned int imx28_write_fix: 1;
84305 	unsigned int spurious_oc: 1;
84306 	unsigned int is_aspeed: 1;
84307 	unsigned int zx_wakeup_clear_needed: 1;
84308 	__le32 *ohci_hcctrl_reg;
84309 	unsigned int has_hostpc: 1;
84310 	unsigned int has_tdi_phy_lpm: 1;
84311 	unsigned int has_ppcd: 1;
84312 	u8 sbrn;
84313 	struct ehci_stats stats;
84314 	struct dentry *debug_dir;
84315 	u8 bandwidth[64];
84316 	u8 tt_budget[64];
84317 	struct list_head tt_list;
84318 	long unsigned int priv[0];
84319 };
84320 
84321 struct ehci_caps {
84322 	u32 hc_capbase;
84323 	u32 hcs_params;
84324 	u32 hcc_params;
84325 	u8 portroute[8];
84326 };
84327 
84328 struct ehci_regs {
84329 	u32 command;
84330 	u32 status;
84331 	u32 intr_enable;
84332 	u32 frame_index;
84333 	u32 segment;
84334 	u32 frame_list;
84335 	u32 async_next;
84336 	u32 reserved1[2];
84337 	u32 txfill_tuning;
84338 	u32 reserved2[6];
84339 	u32 configured_flag;
84340 	union {
84341 		u32 port_status[15];
84342 		struct {
84343 			u32 reserved3[9];
84344 			u32 usbmode;
84345 		};
84346 	};
84347 	union {
84348 		struct {
84349 			u32 reserved4;
84350 			u32 hostpc[15];
84351 		};
84352 		u32 brcm_insnreg[4];
84353 	};
84354 	u32 reserved5[2];
84355 	u32 usbmode_ex;
84356 };
84357 
84358 struct ehci_dbg_port {
84359 	u32 control;
84360 	u32 pids;
84361 	u32 data03;
84362 	u32 data47;
84363 	u32 address;
84364 };
84365 
84366 struct ehci_fstn;
84367 
84368 union ehci_shadow {
84369 	struct ehci_qh *qh;
84370 	struct ehci_itd *itd;
84371 	struct ehci_sitd *sitd;
84372 	struct ehci_fstn *fstn;
84373 	__le32 *hw_next;
84374 	void *ptr;
84375 };
84376 
84377 struct ehci_qh_hw;
84378 
84379 struct ehci_qtd;
84380 
84381 struct ehci_qh {
84382 	struct ehci_qh_hw *hw;
84383 	dma_addr_t qh_dma;
84384 	union ehci_shadow qh_next;
84385 	struct list_head qtd_list;
84386 	struct list_head intr_node;
84387 	struct ehci_qtd *dummy;
84388 	struct list_head unlink_node;
84389 	struct ehci_per_sched ps;
84390 	unsigned int unlink_cycle;
84391 	u8 qh_state;
84392 	u8 xacterrs;
84393 	u8 unlink_reason;
84394 	u8 gap_uf;
84395 	unsigned int is_out: 1;
84396 	unsigned int clearing_tt: 1;
84397 	unsigned int dequeue_during_giveback: 1;
84398 	unsigned int should_be_inactive: 1;
84399 };
84400 
84401 struct ehci_iso_stream;
84402 
84403 struct ehci_itd {
84404 	__le32 hw_next;
84405 	__le32 hw_transaction[8];
84406 	__le32 hw_bufp[7];
84407 	__le32 hw_bufp_hi[7];
84408 	dma_addr_t itd_dma;
84409 	union ehci_shadow itd_next;
84410 	struct urb *urb;
84411 	struct ehci_iso_stream *stream;
84412 	struct list_head itd_list;
84413 	unsigned int frame;
84414 	unsigned int pg;
84415 	unsigned int index[8];
84416 	long: 64;
84417 };
84418 
84419 struct ehci_sitd {
84420 	__le32 hw_next;
84421 	__le32 hw_fullspeed_ep;
84422 	__le32 hw_uframe;
84423 	__le32 hw_results;
84424 	__le32 hw_buf[2];
84425 	__le32 hw_backpointer;
84426 	__le32 hw_buf_hi[2];
84427 	dma_addr_t sitd_dma;
84428 	union ehci_shadow sitd_next;
84429 	struct urb *urb;
84430 	struct ehci_iso_stream *stream;
84431 	struct list_head sitd_list;
84432 	unsigned int frame;
84433 	unsigned int index;
84434 };
84435 
84436 struct ehci_qtd {
84437 	__le32 hw_next;
84438 	__le32 hw_alt_next;
84439 	__le32 hw_token;
84440 	__le32 hw_buf[5];
84441 	__le32 hw_buf_hi[5];
84442 	dma_addr_t qtd_dma;
84443 	struct list_head qtd_list;
84444 	struct urb *urb;
84445 	size_t length;
84446 };
84447 
84448 struct ehci_fstn {
84449 	__le32 hw_next;
84450 	__le32 hw_prev;
84451 	dma_addr_t fstn_dma;
84452 	union ehci_shadow fstn_next;
84453 	long: 64;
84454 };
84455 
84456 struct ehci_qh_hw {
84457 	__le32 hw_next;
84458 	__le32 hw_info1;
84459 	__le32 hw_info2;
84460 	__le32 hw_current;
84461 	__le32 hw_qtd_next;
84462 	__le32 hw_alt_next;
84463 	__le32 hw_token;
84464 	__le32 hw_buf[5];
84465 	__le32 hw_buf_hi[5];
84466 	long: 32;
84467 	long: 64;
84468 	long: 64;
84469 	long: 64;
84470 };
84471 
84472 struct ehci_iso_packet {
84473 	u64 bufp;
84474 	__le32 transaction;
84475 	u8 cross;
84476 	u32 buf1;
84477 };
84478 
84479 struct ehci_iso_sched {
84480 	struct list_head td_list;
84481 	unsigned int span;
84482 	unsigned int first_packet;
84483 	struct ehci_iso_packet packet[0];
84484 };
84485 
84486 struct ehci_iso_stream {
84487 	struct ehci_qh_hw *hw;
84488 	u8 bEndpointAddress;
84489 	u8 highspeed;
84490 	struct list_head td_list;
84491 	struct list_head free_list;
84492 	struct ehci_per_sched ps;
84493 	unsigned int next_uframe;
84494 	__le32 splits;
84495 	u16 uperiod;
84496 	u16 maxp;
84497 	unsigned int bandwidth;
84498 	__le32 buf0;
84499 	__le32 buf1;
84500 	__le32 buf2;
84501 	__le32 address;
84502 };
84503 
84504 struct ehci_tt {
84505 	u16 bandwidth[8];
84506 	struct list_head tt_list;
84507 	struct list_head ps_list;
84508 	struct usb_tt *usb_tt;
84509 	int tt_port;
84510 };
84511 
84512 struct ehci_driver_overrides {
84513 	size_t extra_priv_size;
84514 	int (*reset)(struct usb_hcd *);
84515 	int (*port_power)(struct usb_hcd *, int, bool);
84516 };
84517 
84518 struct debug_buffer {
84519 	ssize_t (*fill_func)(struct debug_buffer *);
84520 	struct usb_bus *bus;
84521 	struct mutex mutex;
84522 	size_t count;
84523 	char *output_buf;
84524 	size_t alloc_size;
84525 };
84526 
84527 enum {
84528 	KERNEL_PARAM_OPS_FL_NOARG = 1,
84529 };
84530 
84531 enum i8042_controller_reset_mode {
84532 	I8042_RESET_NEVER = 0,
84533 	I8042_RESET_ALWAYS = 1,
84534 	I8042_RESET_ON_S2RAM = 2,
84535 };
84536 
84537 struct i8042_port {
84538 	struct serio *serio;
84539 	int irq;
84540 	bool exists;
84541 	bool driver_bound;
84542 	signed char mux;
84543 };
84544 
84545 struct input_dev_poller {
84546 	void (*poll)(struct input_dev *);
84547 	unsigned int poll_interval;
84548 	unsigned int poll_interval_max;
84549 	unsigned int poll_interval_min;
84550 	struct input_dev *input;
84551 	struct delayed_work work;
84552 };
84553 
84554 struct key_entry {
84555 	int type;
84556 	u32 code;
84557 	union {
84558 		u16 keycode;
84559 		struct {
84560 			u8 code;
84561 			u8 value;
84562 		} sw;
84563 	};
84564 };
84565 
84566 struct rmi_2d_axis_alignment {
84567 	bool swap_axes;
84568 	bool flip_x;
84569 	bool flip_y;
84570 	u16 clip_x_low;
84571 	u16 clip_y_low;
84572 	u16 clip_x_high;
84573 	u16 clip_y_high;
84574 	u16 offset_x;
84575 	u16 offset_y;
84576 	u8 delta_x_threshold;
84577 	u8 delta_y_threshold;
84578 };
84579 
84580 enum rmi_sensor_type {
84581 	rmi_sensor_default = 0,
84582 	rmi_sensor_touchscreen = 1,
84583 	rmi_sensor_touchpad = 2,
84584 };
84585 
84586 struct rmi_2d_sensor_platform_data {
84587 	struct rmi_2d_axis_alignment axis_align;
84588 	enum rmi_sensor_type sensor_type;
84589 	int x_mm;
84590 	int y_mm;
84591 	int disable_report_mask;
84592 	u16 rezero_wait;
84593 	bool topbuttonpad;
84594 	bool kernel_tracking;
84595 	int dmax;
84596 	int dribble;
84597 	int palm_detect;
84598 };
84599 
84600 struct rmi_gpio_data {
84601 	bool buttonpad;
84602 	bool trackstick_buttons;
84603 	bool disable;
84604 };
84605 
84606 enum rmi_reg_state {
84607 	RMI_REG_STATE_DEFAULT = 0,
84608 	RMI_REG_STATE_OFF = 1,
84609 	RMI_REG_STATE_ON = 2,
84610 };
84611 
84612 struct rmi_f01_power_management {
84613 	enum rmi_reg_state nosleep;
84614 	u8 wakeup_threshold;
84615 	u8 doze_holdoff;
84616 	u8 doze_interval;
84617 };
84618 
84619 struct rmi_device_platform_data_spi {
84620 	u32 block_delay_us;
84621 	u32 split_read_block_delay_us;
84622 	u32 read_delay_us;
84623 	u32 write_delay_us;
84624 	u32 split_read_byte_delay_us;
84625 	u32 pre_delay_us;
84626 	u32 post_delay_us;
84627 	u8 bits_per_word;
84628 	u16 mode;
84629 	void *cs_assert_data;
84630 	int (*cs_assert)(const void *, const bool);
84631 };
84632 
84633 struct rmi_device_platform_data {
84634 	int reset_delay_ms;
84635 	int irq;
84636 	struct rmi_device_platform_data_spi spi_data;
84637 	struct rmi_2d_sensor_platform_data sensor_pdata;
84638 	struct rmi_f01_power_management power_management;
84639 	struct rmi_gpio_data gpio_data;
84640 };
84641 
84642 enum synaptics_pkt_type {
84643 	SYN_NEWABS = 0,
84644 	SYN_NEWABS_STRICT = 1,
84645 	SYN_NEWABS_RELAXED = 2,
84646 	SYN_OLDABS = 3,
84647 };
84648 
84649 struct synaptics_hw_state {
84650 	int x;
84651 	int y;
84652 	int z;
84653 	int w;
84654 	unsigned int left: 1;
84655 	unsigned int right: 1;
84656 	unsigned int middle: 1;
84657 	unsigned int up: 1;
84658 	unsigned int down: 1;
84659 	u8 ext_buttons;
84660 	s8 scroll;
84661 };
84662 
84663 struct synaptics_device_info {
84664 	u32 model_id;
84665 	u32 firmware_id;
84666 	u32 board_id;
84667 	u32 capabilities;
84668 	u32 ext_cap;
84669 	u32 ext_cap_0c;
84670 	u32 ext_cap_10;
84671 	u32 identity;
84672 	u32 x_res;
84673 	u32 y_res;
84674 	u32 x_max;
84675 	u32 y_max;
84676 	u32 x_min;
84677 	u32 y_min;
84678 };
84679 
84680 struct synaptics_data {
84681 	struct synaptics_device_info info;
84682 	enum synaptics_pkt_type pkt_type;
84683 	u8 mode;
84684 	int scroll;
84685 	bool absolute_mode;
84686 	bool disable_gesture;
84687 	struct serio *pt_port;
84688 	struct synaptics_hw_state agm;
84689 	unsigned int agm_count;
84690 	long unsigned int press_start;
84691 	bool press;
84692 	bool report_press;
84693 	bool is_forcepad;
84694 };
84695 
84696 struct min_max_quirk {
84697 	const char * const *pnp_ids;
84698 	struct {
84699 		u32 min;
84700 		u32 max;
84701 	} board_id;
84702 	u32 x_min;
84703 	u32 x_max;
84704 	u32 y_min;
84705 	u32 y_max;
84706 };
84707 
84708 enum {
84709 	SYNAPTICS_INTERTOUCH_NOT_SET = -1,
84710 	SYNAPTICS_INTERTOUCH_OFF = 0,
84711 	SYNAPTICS_INTERTOUCH_ON = 1,
84712 };
84713 
84714 struct ps2pp_info {
84715 	u8 model;
84716 	u8 kind;
84717 	u16 features;
84718 };
84719 
84720 struct psmouse_smbus_dev {
84721 	struct i2c_board_info board;
84722 	struct psmouse *psmouse;
84723 	struct i2c_client *client;
84724 	struct list_head node;
84725 	bool dead;
84726 	bool need_deactivate;
84727 };
84728 
84729 struct psmouse_smbus_removal_work {
84730 	struct work_struct work;
84731 	struct i2c_client *client;
84732 };
84733 
84734 struct i2c_devinfo {
84735 	struct list_head list;
84736 	int busnum;
84737 	struct i2c_board_info board_info;
84738 };
84739 
84740 struct i2c_gpio_platform_data {
84741 	int udelay;
84742 	int timeout;
84743 	unsigned int sda_is_open_drain: 1;
84744 	unsigned int scl_is_open_drain: 1;
84745 	unsigned int scl_is_output_only: 1;
84746 };
84747 
84748 struct i2c_gpio_private_data {
84749 	struct gpio_desc *sda;
84750 	struct gpio_desc *scl;
84751 	struct i2c_adapter adap;
84752 	struct i2c_algo_bit_data bit_data;
84753 	struct i2c_gpio_platform_data pdata;
84754 };
84755 
84756 struct power_supply_hwmon {
84757 	struct power_supply *psy;
84758 	long unsigned int *props;
84759 };
84760 
84761 struct hwmon_type_attr_list {
84762 	const u32 *attrs;
84763 	size_t n_attrs;
84764 };
84765 
84766 enum dev_pm_opp_event {
84767 	OPP_EVENT_ADD = 0,
84768 	OPP_EVENT_REMOVE = 1,
84769 	OPP_EVENT_ENABLE = 2,
84770 	OPP_EVENT_DISABLE = 3,
84771 	OPP_EVENT_ADJUST_VOLTAGE = 4,
84772 };
84773 
84774 struct dev_pm_opp_config {
84775 	const char * const *clk_names;
84776 	config_clks_t config_clks;
84777 	const char *prop_name;
84778 	config_regulators_t config_regulators;
84779 	const unsigned int *supported_hw;
84780 	unsigned int supported_hw_count;
84781 	const char * const *regulator_names;
84782 	const char * const *genpd_names;
84783 	struct device ***virt_devs;
84784 };
84785 
84786 struct opp_config_data {
84787 	struct opp_table *opp_table;
84788 	unsigned int flags;
84789 };
84790 
84791 struct simplefb_platform_data {
84792 	u32 width;
84793 	u32 height;
84794 	u32 stride;
84795 	const char *format;
84796 };
84797 
84798 enum sys_off_mode {
84799 	SYS_OFF_MODE_POWER_OFF_PREPARE = 0,
84800 	SYS_OFF_MODE_POWER_OFF = 1,
84801 	SYS_OFF_MODE_RESTART_PREPARE = 2,
84802 	SYS_OFF_MODE_RESTART = 3,
84803 };
84804 
84805 struct sys_off_data {
84806 	int mode;
84807 	void *cb_data;
84808 	const char *cmd;
84809 };
84810 
84811 struct sys_off_handler;
84812 
84813 typedef struct {
84814 	u64 length;
84815 	u64 data;
84816 } efi_capsule_block_desc_t;
84817 
84818 struct hid_debug_list {
84819 	struct {
84820 		union {
84821 			struct __kfifo kfifo;
84822 			char *type;
84823 			const char *const_type;
84824 			char (*rectype)[0];
84825 			char *ptr;
84826 			const char *ptr_const;
84827 		};
84828 		char buf[0];
84829 	} hid_debug_fifo;
84830 	struct fasync_struct *fasync;
84831 	struct hid_device *hdev;
84832 	struct list_head node;
84833 	struct mutex read_mutex;
84834 };
84835 
84836 struct hid_usage_entry {
84837 	unsigned int page;
84838 	unsigned int usage;
84839 	const char *description;
84840 };
84841 
84842 struct alias_prop {
84843 	struct list_head link;
84844 	const char *alias;
84845 	struct device_node *np;
84846 	int id;
84847 	char stem[0];
84848 };
84849 
84850 struct of_intc_desc {
84851 	struct list_head list;
84852 	of_irq_init_cb_t irq_init_cb;
84853 	struct device_node *dev;
84854 	struct device_node *interrupt_parent;
84855 };
84856 
84857 struct sensor_device_attribute {
84858 	struct device_attribute dev_attr;
84859 	int index;
84860 };
84861 
84862 struct devfreq_simple_ondemand_data {
84863 	unsigned int upthreshold;
84864 	unsigned int downdifferential;
84865 };
84866 
84867 struct userspace_data {
84868 	long unsigned int user_frequency;
84869 	bool valid;
84870 };
84871 
84872 struct net_device_devres {
84873 	struct net_device *ndev;
84874 };
84875 
84876 struct ts_state {
84877 	unsigned int offset;
84878 	char cb[48];
84879 };
84880 
84881 struct ts_config;
84882 
84883 struct ts_ops {
84884 	const char *name;
84885 	struct ts_config * (*init)(const void *, unsigned int, gfp_t, int);
84886 	unsigned int (*find)(struct ts_config *, struct ts_state *);
84887 	void (*destroy)(struct ts_config *);
84888 	void * (*get_pattern)(struct ts_config *);
84889 	unsigned int (*get_pattern_len)(struct ts_config *);
84890 	struct module *owner;
84891 	struct list_head list;
84892 };
84893 
84894 struct ts_config {
84895 	struct ts_ops *ops;
84896 	int flags;
84897 	unsigned int (*get_next_block)(unsigned int, const u8 **, struct ts_config *, struct ts_state *);
84898 	void (*finish)(struct ts_config *, struct ts_state *);
84899 };
84900 
84901 struct ubuf_info_msgzc {
84902 	struct ubuf_info ubuf;
84903 	union {
84904 		struct {
84905 			long unsigned int desc;
84906 			void *ctx;
84907 		};
84908 		struct {
84909 			u32 id;
84910 			u16 len;
84911 			u16 zerocopy: 1;
84912 			u32 bytelen;
84913 		};
84914 	};
84915 	struct mmpin mmp;
84916 };
84917 
84918 struct skb_seq_state {
84919 	__u32 lower_offset;
84920 	__u32 upper_offset;
84921 	__u32 frag_idx;
84922 	__u32 stepped_offset;
84923 	struct sk_buff *root_skb;
84924 	struct sk_buff *cur_skb;
84925 	__u8 *frag_data;
84926 	__u32 frag_off;
84927 };
84928 
84929 struct skb_checksum_ops {
84930 	__wsum (*update)(const void *, int, __wsum);
84931 	__wsum (*combine)(__wsum, __wsum, int, int);
84932 };
84933 
84934 struct vlan_ethhdr {
84935 	union {
84936 		struct {
84937 			unsigned char h_dest[6];
84938 			unsigned char h_source[6];
84939 		};
84940 		struct {
84941 			unsigned char h_dest[6];
84942 			unsigned char h_source[6];
84943 		} addrs;
84944 	};
84945 	__be16 h_vlan_proto;
84946 	__be16 h_vlan_TCI;
84947 	__be16 h_vlan_encapsulated_proto;
84948 };
84949 
84950 struct ip_auth_hdr {
84951 	__u8 nexthdr;
84952 	__u8 hdrlen;
84953 	__be16 reserved;
84954 	__be32 spi;
84955 	__be32 seq_no;
84956 	__u8 auth_data[0];
84957 };
84958 
84959 struct frag_hdr {
84960 	__u8 nexthdr;
84961 	__u8 reserved;
84962 	__be16 frag_off;
84963 	__be32 identification;
84964 };
84965 
84966 enum {
84967 	SCM_TSTAMP_SND = 0,
84968 	SCM_TSTAMP_SCHED = 1,
84969 	SCM_TSTAMP_ACK = 2,
84970 };
84971 
84972 struct mpls_shim_hdr {
84973 	__be32 label_stack_entry;
84974 };
84975 
84976 struct page_frag_1k {};
84977 
84978 struct napi_alloc_cache {
84979 	struct page_frag_cache page;
84980 	struct page_frag_1k page_small;
84981 	unsigned int skb_count;
84982 	void *skb_cache[64];
84983 };
84984 
84985 typedef int (*sendmsg_func)(struct sock *, struct msghdr *, struct kvec *, size_t, size_t);
84986 
84987 typedef int (*sendpage_func)(struct sock *, struct page *, int, size_t, int);
84988 
84989 enum {
84990 	NETNSA_NONE = 0,
84991 	NETNSA_NSID = 1,
84992 	NETNSA_PID = 2,
84993 	NETNSA_FD = 3,
84994 	NETNSA_TARGET_NSID = 4,
84995 	NETNSA_CURRENT_NSID = 5,
84996 	__NETNSA_MAX = 6,
84997 };
84998 
84999 struct net_fill_args {
85000 	u32 portid;
85001 	u32 seq;
85002 	int flags;
85003 	int cmd;
85004 	int nsid;
85005 	bool add_ref;
85006 	int ref_nsid;
85007 };
85008 
85009 struct rtnl_net_dump_cb {
85010 	struct net *tgt_net;
85011 	struct net *ref_net;
85012 	struct sk_buff *skb;
85013 	struct net_fill_args fillargs;
85014 	int idx;
85015 	int s_idx;
85016 };
85017 
85018 struct ifbond {
85019 	__s32 bond_mode;
85020 	__s32 num_slaves;
85021 	__s32 miimon;
85022 };
85023 
85024 typedef struct ifbond ifbond;
85025 
85026 struct ifslave {
85027 	__s32 slave_id;
85028 	char slave_name[16];
85029 	__s8 link;
85030 	__s8 state;
85031 	__u32 link_failure_count;
85032 };
85033 
85034 typedef struct ifslave ifslave;
85035 
85036 enum {
85037 	NAPIF_STATE_SCHED = 1,
85038 	NAPIF_STATE_MISSED = 2,
85039 	NAPIF_STATE_DISABLE = 4,
85040 	NAPIF_STATE_NPSVC = 8,
85041 	NAPIF_STATE_LISTED = 16,
85042 	NAPIF_STATE_NO_BUSY_POLL = 32,
85043 	NAPIF_STATE_IN_BUSY_POLL = 64,
85044 	NAPIF_STATE_PREFER_BUSY_POLL = 128,
85045 	NAPIF_STATE_THREADED = 256,
85046 	NAPIF_STATE_SCHED_THREADED = 512,
85047 };
85048 
85049 struct rps_sock_flow_table {
85050 	u32 mask;
85051 	long: 32;
85052 	long: 64;
85053 	long: 64;
85054 	long: 64;
85055 	long: 64;
85056 	long: 64;
85057 	long: 64;
85058 	long: 64;
85059 	u32 ents[0];
85060 };
85061 
85062 struct net_device_path_stack {
85063 	int num_paths;
85064 	struct net_device_path path[5];
85065 };
85066 
85067 struct bpf_xdp_link {
85068 	struct bpf_link link;
85069 	struct net_device *dev;
85070 	int flags;
85071 };
85072 
85073 struct netdev_net_notifier {
85074 	struct list_head list;
85075 	struct notifier_block *nb;
85076 };
85077 
85078 struct netdev_notifier_info_ext {
85079 	struct netdev_notifier_info info;
85080 	union {
85081 		u32 mtu;
85082 	} ext;
85083 };
85084 
85085 struct netdev_notifier_changelowerstate_info {
85086 	struct netdev_notifier_info info;
85087 	void *lower_state_info;
85088 };
85089 
85090 struct netdev_notifier_pre_changeaddr_info {
85091 	struct netdev_notifier_info info;
85092 	const unsigned char *dev_addr;
85093 };
85094 
85095 enum netdev_offload_xstats_type {
85096 	NETDEV_OFFLOAD_XSTATS_TYPE_L3 = 1,
85097 };
85098 
85099 struct netdev_notifier_offload_xstats_rd {
85100 	struct rtnl_hw_stats64 stats;
85101 	bool used;
85102 };
85103 
85104 struct netdev_notifier_offload_xstats_ru {
85105 	bool used;
85106 };
85107 
85108 struct netdev_notifier_offload_xstats_info {
85109 	struct netdev_notifier_info info;
85110 	enum netdev_offload_xstats_type type;
85111 	union {
85112 		struct netdev_notifier_offload_xstats_rd *report_delta;
85113 		struct netdev_notifier_offload_xstats_ru *report_used;
85114 	};
85115 };
85116 
85117 enum {
85118 	NESTED_SYNC_IMM_BIT = 0,
85119 	NESTED_SYNC_TODO_BIT = 1,
85120 };
85121 
85122 struct netdev_nested_priv {
85123 	unsigned char flags;
85124 	void *data;
85125 };
85126 
85127 struct netdev_bonding_info {
85128 	ifslave slave;
85129 	ifbond master;
85130 };
85131 
85132 struct netdev_notifier_bonding_info {
85133 	struct netdev_notifier_info info;
85134 	struct netdev_bonding_info bonding_info;
85135 };
85136 
85137 enum qdisc_state2_t {
85138 	__QDISC_STATE2_RUNNING = 0,
85139 };
85140 
85141 struct tc_skb_cb {
85142 	struct qdisc_skb_cb qdisc_cb;
85143 	u16 mru;
85144 	u8 post_ct: 1;
85145 	u8 post_ct_snat: 1;
85146 	u8 post_ct_dnat: 1;
85147 	u16 zone;
85148 };
85149 
85150 typedef int (*bpf_op_t)(struct net_device *, struct netdev_bpf *);
85151 
85152 struct dev_kfree_skb_cb {
85153 	enum skb_free_reason reason;
85154 };
85155 
85156 struct netdev_adjacent {
85157 	struct net_device *dev;
85158 	netdevice_tracker dev_tracker;
85159 	bool master;
85160 	bool ignore;
85161 	u16 ref_nr;
85162 	void *private;
85163 	struct list_head list;
85164 	struct callback_head rcu;
85165 };
85166 
85167 typedef u64 u_int64_t;
85168 
85169 enum {
85170 	BPF_F_RECOMPUTE_CSUM = 1,
85171 	BPF_F_INVALIDATE_HASH = 2,
85172 };
85173 
85174 enum {
85175 	BPF_F_HDR_FIELD_MASK = 15,
85176 };
85177 
85178 enum {
85179 	BPF_F_PSEUDO_HDR = 16,
85180 	BPF_F_MARK_MANGLED_0 = 32,
85181 	BPF_F_MARK_ENFORCE = 64,
85182 };
85183 
85184 enum {
85185 	BPF_F_TUNINFO_IPV6 = 1,
85186 };
85187 
85188 enum {
85189 	BPF_F_ZERO_CSUM_TX = 2,
85190 	BPF_F_DONT_FRAGMENT = 4,
85191 	BPF_F_SEQ_NUMBER = 8,
85192 };
85193 
85194 enum {
85195 	BPF_F_TUNINFO_FLAGS = 16,
85196 };
85197 
85198 enum {
85199 	BPF_F_INDEX_MASK = 4294967295ULL,
85200 	BPF_F_CURRENT_CPU = 4294967295ULL,
85201 	BPF_F_CTXLEN_MASK = 4503595332403200ULL,
85202 };
85203 
85204 enum {
85205 	BPF_CSUM_LEVEL_QUERY = 0,
85206 	BPF_CSUM_LEVEL_INC = 1,
85207 	BPF_CSUM_LEVEL_DEC = 2,
85208 	BPF_CSUM_LEVEL_RESET = 3,
85209 };
85210 
85211 enum {
85212 	BPF_F_ADJ_ROOM_FIXED_GSO = 1,
85213 	BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 2,
85214 	BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 4,
85215 	BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 8,
85216 	BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 16,
85217 	BPF_F_ADJ_ROOM_NO_CSUM_RESET = 32,
85218 	BPF_F_ADJ_ROOM_ENCAP_L2_ETH = 64,
85219 };
85220 
85221 enum {
85222 	BPF_ADJ_ROOM_ENCAP_L2_MASK = 255,
85223 	BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 56,
85224 };
85225 
85226 enum {
85227 	BPF_SK_LOOKUP_F_REPLACE = 1,
85228 	BPF_SK_LOOKUP_F_NO_REUSEPORT = 2,
85229 };
85230 
85231 enum bpf_adj_room_mode {
85232 	BPF_ADJ_ROOM_NET = 0,
85233 	BPF_ADJ_ROOM_MAC = 1,
85234 };
85235 
85236 enum bpf_hdr_start_off {
85237 	BPF_HDR_START_MAC = 0,
85238 	BPF_HDR_START_NET = 1,
85239 };
85240 
85241 enum bpf_lwt_encap_mode {
85242 	BPF_LWT_ENCAP_SEG6 = 0,
85243 	BPF_LWT_ENCAP_SEG6_INLINE = 1,
85244 	BPF_LWT_ENCAP_IP = 2,
85245 };
85246 
85247 enum {
85248 	BPF_SKB_TSTAMP_UNSPEC = 0,
85249 	BPF_SKB_TSTAMP_DELIVERY_MONO = 1,
85250 };
85251 
85252 struct bpf_tunnel_key {
85253 	__u32 tunnel_id;
85254 	union {
85255 		__u32 remote_ipv4;
85256 		__u32 remote_ipv6[4];
85257 	};
85258 	__u8 tunnel_tos;
85259 	__u8 tunnel_ttl;
85260 	union {
85261 		__u16 tunnel_ext;
85262 		__be16 tunnel_flags;
85263 	};
85264 	__u32 tunnel_label;
85265 	union {
85266 		__u32 local_ipv4;
85267 		__u32 local_ipv6[4];
85268 	};
85269 };
85270 
85271 struct bpf_xfrm_state {
85272 	__u32 reqid;
85273 	__u32 spi;
85274 	__u16 family;
85275 	__u16 ext;
85276 	union {
85277 		__u32 remote_ipv4;
85278 		__u32 remote_ipv6[4];
85279 	};
85280 };
85281 
85282 struct bpf_tcp_sock {
85283 	__u32 snd_cwnd;
85284 	__u32 srtt_us;
85285 	__u32 rtt_min;
85286 	__u32 snd_ssthresh;
85287 	__u32 rcv_nxt;
85288 	__u32 snd_nxt;
85289 	__u32 snd_una;
85290 	__u32 mss_cache;
85291 	__u32 ecn_flags;
85292 	__u32 rate_delivered;
85293 	__u32 rate_interval_us;
85294 	__u32 packets_out;
85295 	__u32 retrans_out;
85296 	__u32 total_retrans;
85297 	__u32 segs_in;
85298 	__u32 data_segs_in;
85299 	__u32 segs_out;
85300 	__u32 data_segs_out;
85301 	__u32 lost_out;
85302 	__u32 sacked_out;
85303 	__u64 bytes_received;
85304 	__u64 bytes_acked;
85305 	__u32 dsack_dups;
85306 	__u32 delivered;
85307 	__u32 delivered_ce;
85308 	__u32 icsk_retransmits;
85309 };
85310 
85311 struct bpf_sock_tuple {
85312 	union {
85313 		struct {
85314 			__be32 saddr;
85315 			__be32 daddr;
85316 			__be16 sport;
85317 			__be16 dport;
85318 		} ipv4;
85319 		struct {
85320 			__be32 saddr[4];
85321 			__be32 daddr[4];
85322 			__be16 sport;
85323 			__be16 dport;
85324 		} ipv6;
85325 	};
85326 };
85327 
85328 struct bpf_xdp_sock {
85329 	__u32 queue_id;
85330 };
85331 
85332 struct sk_msg_md {
85333 	union {
85334 		void *data;
85335 	};
85336 	union {
85337 		void *data_end;
85338 	};
85339 	__u32 family;
85340 	__u32 remote_ip4;
85341 	__u32 local_ip4;
85342 	__u32 remote_ip6[4];
85343 	__u32 local_ip6[4];
85344 	__u32 remote_port;
85345 	__u32 local_port;
85346 	__u32 size;
85347 	union {
85348 		struct bpf_sock *sk;
85349 	};
85350 };
85351 
85352 struct sk_reuseport_md {
85353 	union {
85354 		void *data;
85355 	};
85356 	union {
85357 		void *data_end;
85358 	};
85359 	__u32 len;
85360 	__u32 eth_protocol;
85361 	__u32 ip_protocol;
85362 	__u32 bind_inany;
85363 	__u32 hash;
85364 	union {
85365 		struct bpf_sock *sk;
85366 	};
85367 	union {
85368 		struct bpf_sock *migrating_sk;
85369 	};
85370 };
85371 
85372 struct bpf_sock_addr {
85373 	__u32 user_family;
85374 	__u32 user_ip4;
85375 	__u32 user_ip6[4];
85376 	__u32 user_port;
85377 	__u32 family;
85378 	__u32 type;
85379 	__u32 protocol;
85380 	__u32 msg_src_ip4;
85381 	__u32 msg_src_ip6[4];
85382 	union {
85383 		struct bpf_sock *sk;
85384 	};
85385 };
85386 
85387 struct bpf_sock_ops {
85388 	__u32 op;
85389 	union {
85390 		__u32 args[4];
85391 		__u32 reply;
85392 		__u32 replylong[4];
85393 	};
85394 	__u32 family;
85395 	__u32 remote_ip4;
85396 	__u32 local_ip4;
85397 	__u32 remote_ip6[4];
85398 	__u32 local_ip6[4];
85399 	__u32 remote_port;
85400 	__u32 local_port;
85401 	__u32 is_fullsock;
85402 	__u32 snd_cwnd;
85403 	__u32 srtt_us;
85404 	__u32 bpf_sock_ops_cb_flags;
85405 	__u32 state;
85406 	__u32 rtt_min;
85407 	__u32 snd_ssthresh;
85408 	__u32 rcv_nxt;
85409 	__u32 snd_nxt;
85410 	__u32 snd_una;
85411 	__u32 mss_cache;
85412 	__u32 ecn_flags;
85413 	__u32 rate_delivered;
85414 	__u32 rate_interval_us;
85415 	__u32 packets_out;
85416 	__u32 retrans_out;
85417 	__u32 total_retrans;
85418 	__u32 segs_in;
85419 	__u32 data_segs_in;
85420 	__u32 segs_out;
85421 	__u32 data_segs_out;
85422 	__u32 lost_out;
85423 	__u32 sacked_out;
85424 	__u32 sk_txhash;
85425 	__u64 bytes_received;
85426 	__u64 bytes_acked;
85427 	union {
85428 		struct bpf_sock *sk;
85429 	};
85430 	union {
85431 		void *skb_data;
85432 	};
85433 	union {
85434 		void *skb_data_end;
85435 	};
85436 	__u32 skb_len;
85437 	__u32 skb_tcp_flags;
85438 	__u64 skb_hwtstamp;
85439 };
85440 
85441 enum {
85442 	TCP_BPF_IW = 1001,
85443 	TCP_BPF_SNDCWND_CLAMP = 1002,
85444 	TCP_BPF_DELACK_MAX = 1003,
85445 	TCP_BPF_RTO_MIN = 1004,
85446 	TCP_BPF_SYN = 1005,
85447 	TCP_BPF_SYN_IP = 1006,
85448 	TCP_BPF_SYN_MAC = 1007,
85449 };
85450 
85451 enum {
85452 	BPF_LOAD_HDR_OPT_TCP_SYN = 1,
85453 };
85454 
85455 enum {
85456 	BPF_FIB_LOOKUP_DIRECT = 1,
85457 	BPF_FIB_LOOKUP_OUTPUT = 2,
85458 };
85459 
85460 enum {
85461 	BPF_FIB_LKUP_RET_SUCCESS = 0,
85462 	BPF_FIB_LKUP_RET_BLACKHOLE = 1,
85463 	BPF_FIB_LKUP_RET_UNREACHABLE = 2,
85464 	BPF_FIB_LKUP_RET_PROHIBIT = 3,
85465 	BPF_FIB_LKUP_RET_NOT_FWDED = 4,
85466 	BPF_FIB_LKUP_RET_FWD_DISABLED = 5,
85467 	BPF_FIB_LKUP_RET_UNSUPP_LWT = 6,
85468 	BPF_FIB_LKUP_RET_NO_NEIGH = 7,
85469 	BPF_FIB_LKUP_RET_FRAG_NEEDED = 8,
85470 };
85471 
85472 struct bpf_fib_lookup {
85473 	__u8 family;
85474 	__u8 l4_protocol;
85475 	__be16 sport;
85476 	__be16 dport;
85477 	union {
85478 		__u16 tot_len;
85479 		__u16 mtu_result;
85480 	};
85481 	__u32 ifindex;
85482 	union {
85483 		__u8 tos;
85484 		__be32 flowinfo;
85485 		__u32 rt_metric;
85486 	};
85487 	union {
85488 		__be32 ipv4_src;
85489 		__u32 ipv6_src[4];
85490 	};
85491 	union {
85492 		__be32 ipv4_dst;
85493 		__u32 ipv6_dst[4];
85494 	};
85495 	__be16 h_vlan_proto;
85496 	__be16 h_vlan_TCI;
85497 	__u8 smac[6];
85498 	__u8 dmac[6];
85499 };
85500 
85501 struct bpf_redir_neigh {
85502 	__u32 nh_family;
85503 	union {
85504 		__be32 ipv4_nh;
85505 		__u32 ipv6_nh[4];
85506 	};
85507 };
85508 
85509 enum bpf_check_mtu_flags {
85510 	BPF_MTU_CHK_SEGS = 1,
85511 };
85512 
85513 enum bpf_check_mtu_ret {
85514 	BPF_MTU_CHK_RET_SUCCESS = 0,
85515 	BPF_MTU_CHK_RET_FRAG_NEEDED = 1,
85516 	BPF_MTU_CHK_RET_SEGS_TOOBIG = 2,
85517 };
85518 
85519 struct bpf_sk_lookup {
85520 	union {
85521 		union {
85522 			struct bpf_sock *sk;
85523 		};
85524 		__u64 cookie;
85525 	};
85526 	__u32 family;
85527 	__u32 protocol;
85528 	__u32 remote_ip4;
85529 	__u32 remote_ip6[4];
85530 	__be16 remote_port;
85531 	__u32 local_ip4;
85532 	__u32 local_ip6[4];
85533 	__u32 local_port;
85534 	__u32 ingress_ifindex;
85535 };
85536 
85537 struct sk_reuseport_kern {
85538 	struct sk_buff *skb;
85539 	struct sock *sk;
85540 	struct sock *selected_sk;
85541 	struct sock *migrating_sk;
85542 	void *data_end;
85543 	u32 hash;
85544 	u32 reuseport_id;
85545 	bool bind_inany;
85546 };
85547 
85548 struct bpf_flow_dissector {
85549 	struct bpf_flow_keys *flow_keys;
85550 	const struct sk_buff *skb;
85551 	const void *data;
85552 	const void *data_end;
85553 };
85554 
85555 union nf_inet_addr {
85556 	__u32 all[4];
85557 	__be32 ip;
85558 	__be32 ip6[4];
85559 	struct in_addr in;
85560 	struct in6_addr in6;
85561 };
85562 
85563 struct ip_ct_tcp_state {
85564 	u_int32_t td_end;
85565 	u_int32_t td_maxend;
85566 	u_int32_t td_maxwin;
85567 	u_int32_t td_maxack;
85568 	u_int8_t td_scale;
85569 	u_int8_t flags;
85570 };
85571 
85572 struct ip_ct_tcp {
85573 	struct ip_ct_tcp_state seen[2];
85574 	u_int8_t state;
85575 	u_int8_t last_dir;
85576 	u_int8_t retrans;
85577 	u_int8_t last_index;
85578 	u_int32_t last_seq;
85579 	u_int32_t last_ack;
85580 	u_int32_t last_end;
85581 	u_int16_t last_win;
85582 	u_int8_t last_wscale;
85583 	u_int8_t last_flags;
85584 };
85585 
85586 union nf_conntrack_man_proto {
85587 	__be16 all;
85588 	struct {
85589 		__be16 port;
85590 	} tcp;
85591 	struct {
85592 		__be16 port;
85593 	} udp;
85594 	struct {
85595 		__be16 id;
85596 	} icmp;
85597 	struct {
85598 		__be16 port;
85599 	} dccp;
85600 	struct {
85601 		__be16 port;
85602 	} sctp;
85603 	struct {
85604 		__be16 key;
85605 	} gre;
85606 };
85607 
85608 struct nf_ct_dccp {
85609 	u_int8_t role[2];
85610 	u_int8_t state;
85611 	u_int8_t last_pkt;
85612 	u_int8_t last_dir;
85613 	u_int64_t handshake_seq;
85614 };
85615 
85616 struct ip_ct_sctp {
85617 	enum sctp_conntrack state;
85618 	__be32 vtag[2];
85619 	u8 last_dir;
85620 	u8 flags;
85621 };
85622 
85623 struct compat_sock_fprog {
85624 	u16 len;
85625 	compat_uptr_t filter;
85626 };
85627 
85628 struct bpf_skb_data_end {
85629 	struct qdisc_skb_cb qdisc_cb;
85630 	void *data_meta;
85631 	void *data_end;
85632 };
85633 
85634 struct bpf_sock_addr_kern {
85635 	struct sock *sk;
85636 	struct sockaddr *uaddr;
85637 	u64 tmp_reg;
85638 	void *t_ctx;
85639 };
85640 
85641 struct udp6_sock {
85642 	struct udp_sock udp;
85643 	struct ipv6_pinfo inet6;
85644 	long: 64;
85645 	long: 64;
85646 	long: 64;
85647 	long: 64;
85648 };
85649 
85650 struct tcp6_sock {
85651 	struct tcp_sock tcp;
85652 	struct ipv6_pinfo inet6;
85653 };
85654 
85655 struct ipv6_bpf_stub {
85656 	int (*inet6_bind)(struct sock *, struct sockaddr *, int, u32);
85657 	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 *);
85658 	int (*ipv6_setsockopt)(struct sock *, int, int, sockptr_t, unsigned int);
85659 	int (*ipv6_getsockopt)(struct sock *, int, int, sockptr_t, sockptr_t);
85660 };
85661 
85662 struct mptcp_sock {};
85663 
85664 struct strp_msg {
85665 	int full_len;
85666 	int offset;
85667 };
85668 
85669 struct _strp_msg {
85670 	struct strp_msg strp;
85671 	int accum_len;
85672 };
85673 
85674 struct tls_msg {
85675 	u8 control;
85676 };
85677 
85678 struct sk_skb_cb {
85679 	unsigned char data[20];
85680 	unsigned char pad[4];
85681 	struct _strp_msg strp;
85682 	struct tls_msg tls;
85683 	u64 temp_reg;
85684 };
85685 
85686 struct xdp_sock {
85687 	struct sock sk;
85688 	long: 64;
85689 	long: 64;
85690 	long: 64;
85691 	long: 64;
85692 	long: 64;
85693 	long: 64;
85694 	long: 64;
85695 	struct xsk_queue *rx;
85696 	struct net_device *dev;
85697 	struct xdp_umem *umem;
85698 	struct list_head flush_node;
85699 	struct xsk_buff_pool *pool;
85700 	u16 queue_id;
85701 	bool zc;
85702 	enum {
85703 		XSK_READY = 0,
85704 		XSK_BOUND = 1,
85705 		XSK_UNBOUND = 2,
85706 	} state;
85707 	long: 64;
85708 	struct xsk_queue *tx;
85709 	struct list_head tx_list;
85710 	spinlock_t rx_lock;
85711 	u64 rx_dropped;
85712 	u64 rx_queue_full;
85713 	struct list_head map_list;
85714 	spinlock_t map_list_lock;
85715 	struct mutex mutex;
85716 	struct xsk_queue *fq_tmp;
85717 	struct xsk_queue *cq_tmp;
85718 	long: 64;
85719 };
85720 
85721 enum {
85722 	SEG6_LOCAL_ACTION_UNSPEC = 0,
85723 	SEG6_LOCAL_ACTION_END = 1,
85724 	SEG6_LOCAL_ACTION_END_X = 2,
85725 	SEG6_LOCAL_ACTION_END_T = 3,
85726 	SEG6_LOCAL_ACTION_END_DX2 = 4,
85727 	SEG6_LOCAL_ACTION_END_DX6 = 5,
85728 	SEG6_LOCAL_ACTION_END_DX4 = 6,
85729 	SEG6_LOCAL_ACTION_END_DT6 = 7,
85730 	SEG6_LOCAL_ACTION_END_DT4 = 8,
85731 	SEG6_LOCAL_ACTION_END_B6 = 9,
85732 	SEG6_LOCAL_ACTION_END_B6_ENCAP = 10,
85733 	SEG6_LOCAL_ACTION_END_BM = 11,
85734 	SEG6_LOCAL_ACTION_END_S = 12,
85735 	SEG6_LOCAL_ACTION_END_AS = 13,
85736 	SEG6_LOCAL_ACTION_END_AM = 14,
85737 	SEG6_LOCAL_ACTION_END_BPF = 15,
85738 	SEG6_LOCAL_ACTION_END_DT46 = 16,
85739 	__SEG6_LOCAL_ACTION_MAX = 17,
85740 };
85741 
85742 struct seg6_bpf_srh_state {
85743 	struct ipv6_sr_hdr *srh;
85744 	u16 hdrlen;
85745 	bool valid;
85746 };
85747 
85748 struct tls_crypto_info {
85749 	__u16 version;
85750 	__u16 cipher_type;
85751 };
85752 
85753 struct tls12_crypto_info_aes_gcm_128 {
85754 	struct tls_crypto_info info;
85755 	unsigned char iv[8];
85756 	unsigned char key[16];
85757 	unsigned char salt[4];
85758 	unsigned char rec_seq[8];
85759 };
85760 
85761 struct tls12_crypto_info_aes_gcm_256 {
85762 	struct tls_crypto_info info;
85763 	unsigned char iv[8];
85764 	unsigned char key[32];
85765 	unsigned char salt[4];
85766 	unsigned char rec_seq[8];
85767 };
85768 
85769 struct tls12_crypto_info_chacha20_poly1305 {
85770 	struct tls_crypto_info info;
85771 	unsigned char iv[12];
85772 	unsigned char key[32];
85773 	unsigned char salt[0];
85774 	unsigned char rec_seq[8];
85775 };
85776 
85777 struct tls12_crypto_info_sm4_gcm {
85778 	struct tls_crypto_info info;
85779 	unsigned char iv[8];
85780 	unsigned char key[16];
85781 	unsigned char salt[4];
85782 	unsigned char rec_seq[8];
85783 };
85784 
85785 struct tls12_crypto_info_sm4_ccm {
85786 	struct tls_crypto_info info;
85787 	unsigned char iv[8];
85788 	unsigned char key[16];
85789 	unsigned char salt[4];
85790 	unsigned char rec_seq[8];
85791 };
85792 
85793 struct tls_strparser {
85794 	struct sock *sk;
85795 	u32 mark: 8;
85796 	u32 stopped: 1;
85797 	u32 copy_mode: 1;
85798 	u32 msg_ready: 1;
85799 	struct strp_msg stm;
85800 	struct sk_buff *anchor;
85801 	struct work_struct work;
85802 };
85803 
85804 struct tls_sw_context_rx {
85805 	struct crypto_aead *aead_recv;
85806 	struct crypto_wait async_wait;
85807 	struct sk_buff_head rx_list;
85808 	void (*saved_data_ready)(struct sock *);
85809 	u8 reader_present;
85810 	u8 async_capable: 1;
85811 	u8 zc_capable: 1;
85812 	u8 reader_contended: 1;
85813 	struct tls_strparser strp;
85814 	atomic_t decrypt_pending;
85815 	spinlock_t decrypt_compl_lock;
85816 	struct sk_buff_head async_hold;
85817 	struct wait_queue_head wq;
85818 };
85819 
85820 struct tls_prot_info {
85821 	u16 version;
85822 	u16 cipher_type;
85823 	u16 prepend_size;
85824 	u16 tag_size;
85825 	u16 overhead_size;
85826 	u16 iv_size;
85827 	u16 salt_size;
85828 	u16 rec_seq_size;
85829 	u16 aad_size;
85830 	u16 tail_size;
85831 };
85832 
85833 struct cipher_context {
85834 	char *iv;
85835 	char *rec_seq;
85836 };
85837 
85838 union tls_crypto_context {
85839 	struct tls_crypto_info info;
85840 	union {
85841 		struct tls12_crypto_info_aes_gcm_128 aes_gcm_128;
85842 		struct tls12_crypto_info_aes_gcm_256 aes_gcm_256;
85843 		struct tls12_crypto_info_chacha20_poly1305 chacha20_poly1305;
85844 		struct tls12_crypto_info_sm4_gcm sm4_gcm;
85845 		struct tls12_crypto_info_sm4_ccm sm4_ccm;
85846 	};
85847 };
85848 
85849 struct tls_context {
85850 	struct tls_prot_info prot_info;
85851 	u8 tx_conf: 3;
85852 	u8 rx_conf: 3;
85853 	u8 zerocopy_sendfile: 1;
85854 	u8 rx_no_pad: 1;
85855 	int (*push_pending_record)(struct sock *, int);
85856 	void (*sk_write_space)(struct sock *);
85857 	void *priv_ctx_tx;
85858 	void *priv_ctx_rx;
85859 	struct net_device *netdev;
85860 	struct cipher_context tx;
85861 	struct cipher_context rx;
85862 	struct scatterlist *partially_sent_record;
85863 	u16 partially_sent_offset;
85864 	bool in_tcp_sendpages;
85865 	bool pending_open_record_frags;
85866 	struct mutex tx_lock;
85867 	long unsigned int flags;
85868 	struct proto *sk_proto;
85869 	struct sock *sk;
85870 	void (*sk_destruct)(struct sock *);
85871 	union tls_crypto_context crypto_send;
85872 	union tls_crypto_context crypto_recv;
85873 	struct list_head list;
85874 	refcount_t refcount;
85875 	struct callback_head rcu;
85876 };
85877 
85878 struct nf_ct_gre {
85879 	unsigned int stream_timeout;
85880 	unsigned int timeout;
85881 };
85882 
85883 struct nf_conntrack_man {
85884 	union nf_inet_addr u3;
85885 	union nf_conntrack_man_proto u;
85886 	u_int16_t l3num;
85887 };
85888 
85889 struct nf_conntrack_tuple {
85890 	struct nf_conntrack_man src;
85891 	struct {
85892 		union nf_inet_addr u3;
85893 		union {
85894 			__be16 all;
85895 			struct {
85896 				__be16 port;
85897 			} tcp;
85898 			struct {
85899 				__be16 port;
85900 			} udp;
85901 			struct {
85902 				u_int8_t type;
85903 				u_int8_t code;
85904 			} icmp;
85905 			struct {
85906 				__be16 port;
85907 			} dccp;
85908 			struct {
85909 				__be16 port;
85910 			} sctp;
85911 			struct {
85912 				__be16 key;
85913 			} gre;
85914 		} u;
85915 		u_int8_t protonum;
85916 		u_int8_t dir;
85917 	} dst;
85918 };
85919 
85920 struct nf_conntrack_tuple_hash {
85921 	struct hlist_nulls_node hnnode;
85922 	struct nf_conntrack_tuple tuple;
85923 };
85924 
85925 struct nf_ct_udp {
85926 	long unsigned int stream_ts;
85927 };
85928 
85929 union nf_conntrack_proto {
85930 	struct nf_ct_dccp dccp;
85931 	struct ip_ct_sctp sctp;
85932 	struct ip_ct_tcp tcp;
85933 	struct nf_ct_udp udp;
85934 	struct nf_ct_gre gre;
85935 	unsigned int tmpl_padto;
85936 };
85937 
85938 struct nf_ct_ext;
85939 
85940 struct nf_conn {
85941 	struct nf_conntrack ct_general;
85942 	spinlock_t lock;
85943 	u32 timeout;
85944 	struct nf_conntrack_tuple_hash tuplehash[2];
85945 	long unsigned int status;
85946 	possible_net_t ct_net;
85947 	struct hlist_node nat_bysource;
85948 	struct {	} __nfct_init_offset;
85949 	struct nf_conn *master;
85950 	u_int32_t mark;
85951 	struct nf_ct_ext *ext;
85952 	union nf_conntrack_proto proto;
85953 };
85954 
85955 struct nf_conn___init {
85956 	struct nf_conn ct;
85957 };
85958 
85959 typedef u64 (*btf_bpf_skb_get_pay_offset)(struct sk_buff *);
85960 
85961 typedef u64 (*btf_bpf_skb_get_nlattr)(struct sk_buff *, u32, u32);
85962 
85963 typedef u64 (*btf_bpf_skb_get_nlattr_nest)(struct sk_buff *, u32, u32);
85964 
85965 typedef u64 (*btf_bpf_skb_load_helper_8)(const struct sk_buff *, const void *, int, int);
85966 
85967 typedef u64 (*btf_bpf_skb_load_helper_8_no_cache)(const struct sk_buff *, int);
85968 
85969 typedef u64 (*btf_bpf_skb_load_helper_16)(const struct sk_buff *, const void *, int, int);
85970 
85971 typedef u64 (*btf_bpf_skb_load_helper_16_no_cache)(const struct sk_buff *, int);
85972 
85973 typedef u64 (*btf_bpf_skb_load_helper_32)(const struct sk_buff *, const void *, int, int);
85974 
85975 typedef u64 (*btf_bpf_skb_load_helper_32_no_cache)(const struct sk_buff *, int);
85976 
85977 struct bpf_scratchpad {
85978 	union {
85979 		__be32 diff[128];
85980 		u8 buff[512];
85981 	};
85982 };
85983 
85984 typedef u64 (*btf_bpf_skb_store_bytes)(struct sk_buff *, u32, const void *, u32, u64);
85985 
85986 typedef u64 (*btf_bpf_skb_load_bytes)(const struct sk_buff *, u32, void *, u32);
85987 
85988 typedef u64 (*btf_bpf_flow_dissector_load_bytes)(const struct bpf_flow_dissector *, u32, void *, u32);
85989 
85990 typedef u64 (*btf_bpf_skb_load_bytes_relative)(const struct sk_buff *, u32, void *, u32, u32);
85991 
85992 typedef u64 (*btf_bpf_skb_pull_data)(struct sk_buff *, u32);
85993 
85994 typedef u64 (*btf_bpf_sk_fullsock)(struct sock *);
85995 
85996 typedef u64 (*btf_sk_skb_pull_data)(struct sk_buff *, u32);
85997 
85998 typedef u64 (*btf_bpf_l3_csum_replace)(struct sk_buff *, u32, u64, u64, u64);
85999 
86000 typedef u64 (*btf_bpf_l4_csum_replace)(struct sk_buff *, u32, u64, u64, u64);
86001 
86002 typedef u64 (*btf_bpf_csum_diff)(__be32 *, u32, __be32 *, u32, __wsum);
86003 
86004 typedef u64 (*btf_bpf_csum_update)(struct sk_buff *, __wsum);
86005 
86006 typedef u64 (*btf_bpf_csum_level)(struct sk_buff *, u64);
86007 
86008 enum {
86009 	BPF_F_NEIGH = 2,
86010 	BPF_F_PEER = 4,
86011 	BPF_F_NEXTHOP = 8,
86012 };
86013 
86014 typedef u64 (*btf_bpf_clone_redirect)(struct sk_buff *, u32, u64);
86015 
86016 typedef u64 (*btf_bpf_redirect)(u32, u64);
86017 
86018 typedef u64 (*btf_bpf_redirect_peer)(u32, u64);
86019 
86020 typedef u64 (*btf_bpf_redirect_neigh)(u32, struct bpf_redir_neigh *, int, u64);
86021 
86022 typedef u64 (*btf_bpf_msg_apply_bytes)(struct sk_msg *, u32);
86023 
86024 typedef u64 (*btf_bpf_msg_cork_bytes)(struct sk_msg *, u32);
86025 
86026 typedef u64 (*btf_bpf_msg_pull_data)(struct sk_msg *, u32, u32, u64);
86027 
86028 typedef u64 (*btf_bpf_msg_push_data)(struct sk_msg *, u32, u32, u64);
86029 
86030 typedef u64 (*btf_bpf_msg_pop_data)(struct sk_msg *, u32, u32, u64);
86031 
86032 typedef u64 (*btf_bpf_get_cgroup_classid_curr)();
86033 
86034 typedef u64 (*btf_bpf_skb_cgroup_classid)(const struct sk_buff *);
86035 
86036 typedef u64 (*btf_bpf_get_cgroup_classid)(const struct sk_buff *);
86037 
86038 typedef u64 (*btf_bpf_get_route_realm)(const struct sk_buff *);
86039 
86040 typedef u64 (*btf_bpf_get_hash_recalc)(struct sk_buff *);
86041 
86042 typedef u64 (*btf_bpf_set_hash_invalid)(struct sk_buff *);
86043 
86044 typedef u64 (*btf_bpf_set_hash)(struct sk_buff *, u32);
86045 
86046 typedef u64 (*btf_bpf_skb_vlan_push)(struct sk_buff *, __be16, u16);
86047 
86048 typedef u64 (*btf_bpf_skb_vlan_pop)(struct sk_buff *);
86049 
86050 typedef u64 (*btf_bpf_skb_change_proto)(struct sk_buff *, __be16, u64);
86051 
86052 typedef u64 (*btf_bpf_skb_change_type)(struct sk_buff *, u32);
86053 
86054 typedef u64 (*btf_sk_skb_adjust_room)(struct sk_buff *, s32, u32, u64);
86055 
86056 typedef u64 (*btf_bpf_skb_adjust_room)(struct sk_buff *, s32, u32, u64);
86057 
86058 typedef u64 (*btf_bpf_skb_change_tail)(struct sk_buff *, u32, u64);
86059 
86060 typedef u64 (*btf_sk_skb_change_tail)(struct sk_buff *, u32, u64);
86061 
86062 typedef u64 (*btf_bpf_skb_change_head)(struct sk_buff *, u32, u64);
86063 
86064 typedef u64 (*btf_sk_skb_change_head)(struct sk_buff *, u32, u64);
86065 
86066 typedef u64 (*btf_bpf_xdp_get_buff_len)(struct xdp_buff *);
86067 
86068 typedef u64 (*btf_bpf_xdp_adjust_head)(struct xdp_buff *, int);
86069 
86070 typedef u64 (*btf_bpf_xdp_load_bytes)(struct xdp_buff *, u32, void *, u32);
86071 
86072 typedef u64 (*btf_bpf_xdp_store_bytes)(struct xdp_buff *, u32, void *, u32);
86073 
86074 typedef u64 (*btf_bpf_xdp_adjust_tail)(struct xdp_buff *, int);
86075 
86076 typedef u64 (*btf_bpf_xdp_adjust_meta)(struct xdp_buff *, int);
86077 
86078 typedef u64 (*btf_bpf_xdp_redirect)(u32, u64);
86079 
86080 typedef u64 (*btf_bpf_xdp_redirect_map)(struct bpf_map *, u64, u64);
86081 
86082 typedef u64 (*btf_bpf_skb_event_output)(struct sk_buff *, struct bpf_map *, u64, void *, u64);
86083 
86084 typedef u64 (*btf_bpf_skb_get_tunnel_key)(struct sk_buff *, struct bpf_tunnel_key *, u32, u64);
86085 
86086 typedef u64 (*btf_bpf_skb_get_tunnel_opt)(struct sk_buff *, u8 *, u32);
86087 
86088 typedef u64 (*btf_bpf_skb_set_tunnel_key)(struct sk_buff *, const struct bpf_tunnel_key *, u32, u64);
86089 
86090 typedef u64 (*btf_bpf_skb_set_tunnel_opt)(struct sk_buff *, const u8 *, u32);
86091 
86092 typedef u64 (*btf_bpf_skb_under_cgroup)(struct sk_buff *, struct bpf_map *, u32);
86093 
86094 typedef u64 (*btf_bpf_skb_cgroup_id)(const struct sk_buff *);
86095 
86096 typedef u64 (*btf_bpf_skb_ancestor_cgroup_id)(const struct sk_buff *, int);
86097 
86098 typedef u64 (*btf_bpf_sk_cgroup_id)(struct sock *);
86099 
86100 typedef u64 (*btf_bpf_sk_ancestor_cgroup_id)(struct sock *, int);
86101 
86102 typedef u64 (*btf_bpf_xdp_event_output)(struct xdp_buff *, struct bpf_map *, u64, void *, u64);
86103 
86104 typedef u64 (*btf_bpf_get_socket_cookie)(struct sk_buff *);
86105 
86106 typedef u64 (*btf_bpf_get_socket_cookie_sock_addr)(struct bpf_sock_addr_kern *);
86107 
86108 typedef u64 (*btf_bpf_get_socket_cookie_sock)(struct sock *);
86109 
86110 typedef u64 (*btf_bpf_get_socket_ptr_cookie)(struct sock *);
86111 
86112 typedef u64 (*btf_bpf_get_socket_cookie_sock_ops)(struct bpf_sock_ops_kern *);
86113 
86114 typedef u64 (*btf_bpf_get_netns_cookie_sock)(struct sock *);
86115 
86116 typedef u64 (*btf_bpf_get_netns_cookie_sock_addr)(struct bpf_sock_addr_kern *);
86117 
86118 typedef u64 (*btf_bpf_get_netns_cookie_sock_ops)(struct bpf_sock_ops_kern *);
86119 
86120 typedef u64 (*btf_bpf_get_netns_cookie_sk_msg)(struct sk_msg *);
86121 
86122 typedef u64 (*btf_bpf_get_socket_uid)(struct sk_buff *);
86123 
86124 typedef u64 (*btf_bpf_sk_setsockopt)(struct sock *, int, int, char *, int);
86125 
86126 typedef u64 (*btf_bpf_sk_getsockopt)(struct sock *, int, int, char *, int);
86127 
86128 typedef u64 (*btf_bpf_unlocked_sk_setsockopt)(struct sock *, int, int, char *, int);
86129 
86130 typedef u64 (*btf_bpf_unlocked_sk_getsockopt)(struct sock *, int, int, char *, int);
86131 
86132 typedef u64 (*btf_bpf_sock_addr_setsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int);
86133 
86134 typedef u64 (*btf_bpf_sock_addr_getsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int);
86135 
86136 typedef u64 (*btf_bpf_sock_ops_setsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int);
86137 
86138 typedef u64 (*btf_bpf_sock_ops_getsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int);
86139 
86140 typedef u64 (*btf_bpf_sock_ops_cb_flags_set)(struct bpf_sock_ops_kern *, int);
86141 
86142 typedef u64 (*btf_bpf_bind)(struct bpf_sock_addr_kern *, struct sockaddr *, int);
86143 
86144 typedef u64 (*btf_bpf_skb_get_xfrm_state)(struct sk_buff *, u32, struct bpf_xfrm_state *, u32, u64);
86145 
86146 typedef u64 (*btf_bpf_xdp_fib_lookup)(struct xdp_buff *, struct bpf_fib_lookup *, int, u32);
86147 
86148 typedef u64 (*btf_bpf_skb_fib_lookup)(struct sk_buff *, struct bpf_fib_lookup *, int, u32);
86149 
86150 typedef u64 (*btf_bpf_skb_check_mtu)(struct sk_buff *, u32, u32 *, s32, u64);
86151 
86152 typedef u64 (*btf_bpf_xdp_check_mtu)(struct xdp_buff *, u32, u32 *, s32, u64);
86153 
86154 typedef u64 (*btf_bpf_lwt_in_push_encap)(struct sk_buff *, u32, void *, u32);
86155 
86156 typedef u64 (*btf_bpf_lwt_xmit_push_encap)(struct sk_buff *, u32, void *, u32);
86157 
86158 typedef u64 (*btf_bpf_lwt_seg6_store_bytes)(struct sk_buff *, u32, const void *, u32);
86159 
86160 typedef u64 (*btf_bpf_lwt_seg6_action)(struct sk_buff *, u32, void *, u32);
86161 
86162 typedef u64 (*btf_bpf_lwt_seg6_adjust_srh)(struct sk_buff *, u32, s32);
86163 
86164 typedef u64 (*btf_bpf_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64);
86165 
86166 typedef u64 (*btf_bpf_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64);
86167 
86168 typedef u64 (*btf_bpf_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64);
86169 
86170 typedef u64 (*btf_bpf_sk_release)(struct sock *);
86171 
86172 typedef u64 (*btf_bpf_xdp_sk_lookup_udp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64);
86173 
86174 typedef u64 (*btf_bpf_xdp_skc_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64);
86175 
86176 typedef u64 (*btf_bpf_xdp_sk_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64);
86177 
86178 typedef u64 (*btf_bpf_sock_addr_skc_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64);
86179 
86180 typedef u64 (*btf_bpf_sock_addr_sk_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64);
86181 
86182 typedef u64 (*btf_bpf_sock_addr_sk_lookup_udp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64);
86183 
86184 typedef u64 (*btf_bpf_tcp_sock)(struct sock *);
86185 
86186 typedef u64 (*btf_bpf_get_listener_sock)(struct sock *);
86187 
86188 typedef u64 (*btf_bpf_skb_ecn_set_ce)(struct sk_buff *);
86189 
86190 typedef u64 (*btf_bpf_tcp_check_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32);
86191 
86192 typedef u64 (*btf_bpf_tcp_gen_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32);
86193 
86194 typedef u64 (*btf_bpf_sk_assign)(struct sk_buff *, struct sock *, u64);
86195 
86196 typedef u64 (*btf_bpf_sock_ops_load_hdr_opt)(struct bpf_sock_ops_kern *, void *, u32, u64);
86197 
86198 typedef u64 (*btf_bpf_sock_ops_store_hdr_opt)(struct bpf_sock_ops_kern *, const void *, u32, u64);
86199 
86200 typedef u64 (*btf_bpf_sock_ops_reserve_hdr_opt)(struct bpf_sock_ops_kern *, u32, u64);
86201 
86202 typedef u64 (*btf_bpf_skb_set_tstamp)(struct sk_buff *, u64, u32);
86203 
86204 typedef u64 (*btf_bpf_tcp_raw_gen_syncookie_ipv4)(struct iphdr *, struct tcphdr *, u32);
86205 
86206 typedef u64 (*btf_bpf_tcp_raw_gen_syncookie_ipv6)(struct ipv6hdr *, struct tcphdr *, u32);
86207 
86208 typedef u64 (*btf_bpf_tcp_raw_check_syncookie_ipv4)(struct iphdr *, struct tcphdr *);
86209 
86210 typedef u64 (*btf_bpf_tcp_raw_check_syncookie_ipv6)(struct ipv6hdr *, struct tcphdr *);
86211 
86212 typedef u64 (*btf_sk_select_reuseport)(struct sk_reuseport_kern *, struct bpf_map *, void *, u32);
86213 
86214 typedef u64 (*btf_sk_reuseport_load_bytes)(const struct sk_reuseport_kern *, u32, void *, u32);
86215 
86216 typedef u64 (*btf_sk_reuseport_load_bytes_relative)(const struct sk_reuseport_kern *, u32, void *, u32, u32);
86217 
86218 typedef u64 (*btf_bpf_sk_lookup_assign)(struct bpf_sk_lookup_kern *, struct sock *, u64);
86219 
86220 typedef u64 (*btf_bpf_skc_to_tcp6_sock)(struct sock *);
86221 
86222 typedef u64 (*btf_bpf_skc_to_tcp_sock)(struct sock *);
86223 
86224 typedef u64 (*btf_bpf_skc_to_tcp_timewait_sock)(struct sock *);
86225 
86226 typedef u64 (*btf_bpf_skc_to_tcp_request_sock)(struct sock *);
86227 
86228 typedef u64 (*btf_bpf_skc_to_udp6_sock)(struct sock *);
86229 
86230 typedef u64 (*btf_bpf_skc_to_unix_sock)(struct sock *);
86231 
86232 typedef u64 (*btf_bpf_skc_to_mptcp_sock)(struct sock *);
86233 
86234 typedef u64 (*btf_bpf_sock_from_file)(struct file *);
86235 
86236 struct bpf_cpu_map_entry;
86237 
86238 struct bpf_dtab_netdev;
86239 
86240 struct unix_sock;
86241 
86242 struct rx_queue_attribute {
86243 	struct attribute attr;
86244 	ssize_t (*show)(struct netdev_rx_queue *, char *);
86245 	ssize_t (*store)(struct netdev_rx_queue *, const char *, size_t);
86246 };
86247 
86248 struct netdev_queue_attribute {
86249 	struct attribute attr;
86250 	ssize_t (*show)(struct netdev_queue *, char *);
86251 	ssize_t (*store)(struct netdev_queue *, const char *, size_t);
86252 };
86253 
86254 struct trace_event_raw_kfree_skb {
86255 	struct trace_entry ent;
86256 	void *skbaddr;
86257 	void *location;
86258 	short unsigned int protocol;
86259 	enum skb_drop_reason reason;
86260 	char __data[0];
86261 };
86262 
86263 struct trace_event_raw_consume_skb {
86264 	struct trace_entry ent;
86265 	void *skbaddr;
86266 	char __data[0];
86267 };
86268 
86269 struct trace_event_raw_skb_copy_datagram_iovec {
86270 	struct trace_entry ent;
86271 	const void *skbaddr;
86272 	int len;
86273 	char __data[0];
86274 };
86275 
86276 struct trace_event_data_offsets_kfree_skb {};
86277 
86278 struct trace_event_data_offsets_consume_skb {};
86279 
86280 struct trace_event_data_offsets_skb_copy_datagram_iovec {};
86281 
86282 typedef void (*btf_trace_kfree_skb)(void *, struct sk_buff *, void *, enum skb_drop_reason);
86283 
86284 typedef void (*btf_trace_consume_skb)(void *, struct sk_buff *);
86285 
86286 typedef void (*btf_trace_skb_copy_datagram_iovec)(void *, const struct sk_buff *, int);
86287 
86288 struct trace_event_raw_net_dev_start_xmit {
86289 	struct trace_entry ent;
86290 	u32 __data_loc_name;
86291 	u16 queue_mapping;
86292 	const void *skbaddr;
86293 	bool vlan_tagged;
86294 	u16 vlan_proto;
86295 	u16 vlan_tci;
86296 	u16 protocol;
86297 	u8 ip_summed;
86298 	unsigned int len;
86299 	unsigned int data_len;
86300 	int network_offset;
86301 	bool transport_offset_valid;
86302 	int transport_offset;
86303 	u8 tx_flags;
86304 	u16 gso_size;
86305 	u16 gso_segs;
86306 	u16 gso_type;
86307 	char __data[0];
86308 };
86309 
86310 struct trace_event_raw_net_dev_xmit {
86311 	struct trace_entry ent;
86312 	void *skbaddr;
86313 	unsigned int len;
86314 	int rc;
86315 	u32 __data_loc_name;
86316 	char __data[0];
86317 };
86318 
86319 struct trace_event_raw_net_dev_xmit_timeout {
86320 	struct trace_entry ent;
86321 	u32 __data_loc_name;
86322 	u32 __data_loc_driver;
86323 	int queue_index;
86324 	char __data[0];
86325 };
86326 
86327 struct trace_event_raw_net_dev_template {
86328 	struct trace_entry ent;
86329 	void *skbaddr;
86330 	unsigned int len;
86331 	u32 __data_loc_name;
86332 	char __data[0];
86333 };
86334 
86335 struct trace_event_raw_net_dev_rx_verbose_template {
86336 	struct trace_entry ent;
86337 	u32 __data_loc_name;
86338 	unsigned int napi_id;
86339 	u16 queue_mapping;
86340 	const void *skbaddr;
86341 	bool vlan_tagged;
86342 	u16 vlan_proto;
86343 	u16 vlan_tci;
86344 	u16 protocol;
86345 	u8 ip_summed;
86346 	u32 hash;
86347 	bool l4_hash;
86348 	unsigned int len;
86349 	unsigned int data_len;
86350 	unsigned int truesize;
86351 	bool mac_header_valid;
86352 	int mac_header;
86353 	unsigned char nr_frags;
86354 	u16 gso_size;
86355 	u16 gso_type;
86356 	char __data[0];
86357 };
86358 
86359 struct trace_event_raw_net_dev_rx_exit_template {
86360 	struct trace_entry ent;
86361 	int ret;
86362 	char __data[0];
86363 };
86364 
86365 struct trace_event_data_offsets_net_dev_start_xmit {
86366 	u32 name;
86367 };
86368 
86369 struct trace_event_data_offsets_net_dev_xmit {
86370 	u32 name;
86371 };
86372 
86373 struct trace_event_data_offsets_net_dev_xmit_timeout {
86374 	u32 name;
86375 	u32 driver;
86376 };
86377 
86378 struct trace_event_data_offsets_net_dev_template {
86379 	u32 name;
86380 };
86381 
86382 struct trace_event_data_offsets_net_dev_rx_verbose_template {
86383 	u32 name;
86384 };
86385 
86386 struct trace_event_data_offsets_net_dev_rx_exit_template {};
86387 
86388 typedef void (*btf_trace_net_dev_start_xmit)(void *, const struct sk_buff *, const struct net_device *);
86389 
86390 typedef void (*btf_trace_net_dev_xmit)(void *, struct sk_buff *, int, struct net_device *, unsigned int);
86391 
86392 typedef void (*btf_trace_net_dev_xmit_timeout)(void *, struct net_device *, int);
86393 
86394 typedef void (*btf_trace_net_dev_queue)(void *, struct sk_buff *);
86395 
86396 typedef void (*btf_trace_netif_receive_skb)(void *, struct sk_buff *);
86397 
86398 typedef void (*btf_trace_netif_rx)(void *, struct sk_buff *);
86399 
86400 typedef void (*btf_trace_napi_gro_frags_entry)(void *, const struct sk_buff *);
86401 
86402 typedef void (*btf_trace_napi_gro_receive_entry)(void *, const struct sk_buff *);
86403 
86404 typedef void (*btf_trace_netif_receive_skb_entry)(void *, const struct sk_buff *);
86405 
86406 typedef void (*btf_trace_netif_receive_skb_list_entry)(void *, const struct sk_buff *);
86407 
86408 typedef void (*btf_trace_netif_rx_entry)(void *, const struct sk_buff *);
86409 
86410 typedef void (*btf_trace_napi_gro_frags_exit)(void *, int);
86411 
86412 typedef void (*btf_trace_napi_gro_receive_exit)(void *, int);
86413 
86414 typedef void (*btf_trace_netif_receive_skb_exit)(void *, int);
86415 
86416 typedef void (*btf_trace_netif_rx_exit)(void *, int);
86417 
86418 typedef void (*btf_trace_netif_receive_skb_list_exit)(void *, int);
86419 
86420 struct trace_event_raw_napi_poll {
86421 	struct trace_entry ent;
86422 	struct napi_struct *napi;
86423 	u32 __data_loc_dev_name;
86424 	int work;
86425 	int budget;
86426 	char __data[0];
86427 };
86428 
86429 struct trace_event_data_offsets_napi_poll {
86430 	u32 dev_name;
86431 };
86432 
86433 typedef void (*btf_trace_napi_poll)(void *, struct napi_struct *, int, int);
86434 
86435 struct trace_event_raw_sock_rcvqueue_full {
86436 	struct trace_entry ent;
86437 	int rmem_alloc;
86438 	unsigned int truesize;
86439 	int sk_rcvbuf;
86440 	char __data[0];
86441 };
86442 
86443 struct trace_event_raw_sock_exceed_buf_limit {
86444 	struct trace_entry ent;
86445 	char name[32];
86446 	long int sysctl_mem[3];
86447 	long int allocated;
86448 	int sysctl_rmem;
86449 	int rmem_alloc;
86450 	int sysctl_wmem;
86451 	int wmem_alloc;
86452 	int wmem_queued;
86453 	int kind;
86454 	char __data[0];
86455 };
86456 
86457 struct trace_event_raw_inet_sock_set_state {
86458 	struct trace_entry ent;
86459 	const void *skaddr;
86460 	int oldstate;
86461 	int newstate;
86462 	__u16 sport;
86463 	__u16 dport;
86464 	__u16 family;
86465 	__u16 protocol;
86466 	__u8 saddr[4];
86467 	__u8 daddr[4];
86468 	__u8 saddr_v6[16];
86469 	__u8 daddr_v6[16];
86470 	char __data[0];
86471 };
86472 
86473 struct trace_event_raw_inet_sk_error_report {
86474 	struct trace_entry ent;
86475 	int error;
86476 	__u16 sport;
86477 	__u16 dport;
86478 	__u16 family;
86479 	__u16 protocol;
86480 	__u8 saddr[4];
86481 	__u8 daddr[4];
86482 	__u8 saddr_v6[16];
86483 	__u8 daddr_v6[16];
86484 	char __data[0];
86485 };
86486 
86487 struct trace_event_data_offsets_sock_rcvqueue_full {};
86488 
86489 struct trace_event_data_offsets_sock_exceed_buf_limit {};
86490 
86491 struct trace_event_data_offsets_inet_sock_set_state {};
86492 
86493 struct trace_event_data_offsets_inet_sk_error_report {};
86494 
86495 typedef void (*btf_trace_sock_rcvqueue_full)(void *, struct sock *, struct sk_buff *);
86496 
86497 typedef void (*btf_trace_sock_exceed_buf_limit)(void *, struct sock *, struct proto *, long int, int);
86498 
86499 typedef void (*btf_trace_inet_sock_set_state)(void *, const struct sock *, const int, const int);
86500 
86501 typedef void (*btf_trace_inet_sk_error_report)(void *, const struct sock *);
86502 
86503 struct trace_event_raw_udp_fail_queue_rcv_skb {
86504 	struct trace_entry ent;
86505 	int rc;
86506 	__u16 lport;
86507 	char __data[0];
86508 };
86509 
86510 struct trace_event_data_offsets_udp_fail_queue_rcv_skb {};
86511 
86512 typedef void (*btf_trace_udp_fail_queue_rcv_skb)(void *, int, struct sock *);
86513 
86514 struct trace_event_raw_tcp_event_sk_skb {
86515 	struct trace_entry ent;
86516 	const void *skbaddr;
86517 	const void *skaddr;
86518 	int state;
86519 	__u16 sport;
86520 	__u16 dport;
86521 	__u16 family;
86522 	__u8 saddr[4];
86523 	__u8 daddr[4];
86524 	__u8 saddr_v6[16];
86525 	__u8 daddr_v6[16];
86526 	char __data[0];
86527 };
86528 
86529 struct trace_event_raw_tcp_event_sk {
86530 	struct trace_entry ent;
86531 	const void *skaddr;
86532 	__u16 sport;
86533 	__u16 dport;
86534 	__u16 family;
86535 	__u8 saddr[4];
86536 	__u8 daddr[4];
86537 	__u8 saddr_v6[16];
86538 	__u8 daddr_v6[16];
86539 	__u64 sock_cookie;
86540 	char __data[0];
86541 };
86542 
86543 struct trace_event_raw_tcp_retransmit_synack {
86544 	struct trace_entry ent;
86545 	const void *skaddr;
86546 	const void *req;
86547 	__u16 sport;
86548 	__u16 dport;
86549 	__u16 family;
86550 	__u8 saddr[4];
86551 	__u8 daddr[4];
86552 	__u8 saddr_v6[16];
86553 	__u8 daddr_v6[16];
86554 	char __data[0];
86555 };
86556 
86557 struct trace_event_raw_tcp_probe {
86558 	struct trace_entry ent;
86559 	__u8 saddr[28];
86560 	__u8 daddr[28];
86561 	__u16 sport;
86562 	__u16 dport;
86563 	__u16 family;
86564 	__u32 mark;
86565 	__u16 data_len;
86566 	__u32 snd_nxt;
86567 	__u32 snd_una;
86568 	__u32 snd_cwnd;
86569 	__u32 ssthresh;
86570 	__u32 snd_wnd;
86571 	__u32 srtt;
86572 	__u32 rcv_wnd;
86573 	__u64 sock_cookie;
86574 	char __data[0];
86575 };
86576 
86577 struct trace_event_raw_tcp_event_skb {
86578 	struct trace_entry ent;
86579 	const void *skbaddr;
86580 	__u8 saddr[28];
86581 	__u8 daddr[28];
86582 	char __data[0];
86583 };
86584 
86585 struct trace_event_raw_tcp_cong_state_set {
86586 	struct trace_entry ent;
86587 	const void *skaddr;
86588 	__u16 sport;
86589 	__u16 dport;
86590 	__u8 saddr[4];
86591 	__u8 daddr[4];
86592 	__u8 saddr_v6[16];
86593 	__u8 daddr_v6[16];
86594 	__u8 cong_state;
86595 	char __data[0];
86596 };
86597 
86598 struct trace_event_data_offsets_tcp_event_sk_skb {};
86599 
86600 struct trace_event_data_offsets_tcp_event_sk {};
86601 
86602 struct trace_event_data_offsets_tcp_retransmit_synack {};
86603 
86604 struct trace_event_data_offsets_tcp_probe {};
86605 
86606 struct trace_event_data_offsets_tcp_event_skb {};
86607 
86608 struct trace_event_data_offsets_tcp_cong_state_set {};
86609 
86610 typedef void (*btf_trace_tcp_retransmit_skb)(void *, const struct sock *, const struct sk_buff *);
86611 
86612 typedef void (*btf_trace_tcp_send_reset)(void *, const struct sock *, const struct sk_buff *);
86613 
86614 typedef void (*btf_trace_tcp_receive_reset)(void *, struct sock *);
86615 
86616 typedef void (*btf_trace_tcp_destroy_sock)(void *, struct sock *);
86617 
86618 typedef void (*btf_trace_tcp_rcv_space_adjust)(void *, struct sock *);
86619 
86620 typedef void (*btf_trace_tcp_retransmit_synack)(void *, const struct sock *, const struct request_sock *);
86621 
86622 typedef void (*btf_trace_tcp_probe)(void *, struct sock *, struct sk_buff *);
86623 
86624 typedef void (*btf_trace_tcp_bad_csum)(void *, const struct sk_buff *);
86625 
86626 typedef void (*btf_trace_tcp_cong_state_set)(void *, struct sock *, const u8);
86627 
86628 struct trace_event_raw_fib_table_lookup {
86629 	struct trace_entry ent;
86630 	u32 tb_id;
86631 	int err;
86632 	int oif;
86633 	int iif;
86634 	u8 proto;
86635 	__u8 tos;
86636 	__u8 scope;
86637 	__u8 flags;
86638 	__u8 src[4];
86639 	__u8 dst[4];
86640 	__u8 gw4[4];
86641 	__u8 gw6[16];
86642 	u16 sport;
86643 	u16 dport;
86644 	char name[16];
86645 	char __data[0];
86646 };
86647 
86648 struct trace_event_data_offsets_fib_table_lookup {};
86649 
86650 typedef void (*btf_trace_fib_table_lookup)(void *, u32, const struct flowi4 *, const struct fib_nh_common *, int);
86651 
86652 struct trace_event_raw_qdisc_dequeue {
86653 	struct trace_entry ent;
86654 	struct Qdisc *qdisc;
86655 	const struct netdev_queue *txq;
86656 	int packets;
86657 	void *skbaddr;
86658 	int ifindex;
86659 	u32 handle;
86660 	u32 parent;
86661 	long unsigned int txq_state;
86662 	char __data[0];
86663 };
86664 
86665 struct trace_event_raw_qdisc_enqueue {
86666 	struct trace_entry ent;
86667 	struct Qdisc *qdisc;
86668 	const struct netdev_queue *txq;
86669 	void *skbaddr;
86670 	int ifindex;
86671 	u32 handle;
86672 	u32 parent;
86673 	char __data[0];
86674 };
86675 
86676 struct trace_event_raw_qdisc_reset {
86677 	struct trace_entry ent;
86678 	u32 __data_loc_dev;
86679 	u32 __data_loc_kind;
86680 	u32 parent;
86681 	u32 handle;
86682 	char __data[0];
86683 };
86684 
86685 struct trace_event_raw_qdisc_destroy {
86686 	struct trace_entry ent;
86687 	u32 __data_loc_dev;
86688 	u32 __data_loc_kind;
86689 	u32 parent;
86690 	u32 handle;
86691 	char __data[0];
86692 };
86693 
86694 struct trace_event_raw_qdisc_create {
86695 	struct trace_entry ent;
86696 	u32 __data_loc_dev;
86697 	u32 __data_loc_kind;
86698 	u32 parent;
86699 	char __data[0];
86700 };
86701 
86702 struct trace_event_data_offsets_qdisc_dequeue {};
86703 
86704 struct trace_event_data_offsets_qdisc_enqueue {};
86705 
86706 struct trace_event_data_offsets_qdisc_reset {
86707 	u32 dev;
86708 	u32 kind;
86709 };
86710 
86711 struct trace_event_data_offsets_qdisc_destroy {
86712 	u32 dev;
86713 	u32 kind;
86714 };
86715 
86716 struct trace_event_data_offsets_qdisc_create {
86717 	u32 dev;
86718 	u32 kind;
86719 };
86720 
86721 typedef void (*btf_trace_qdisc_dequeue)(void *, struct Qdisc *, const struct netdev_queue *, int, struct sk_buff *);
86722 
86723 typedef void (*btf_trace_qdisc_enqueue)(void *, struct Qdisc *, const struct netdev_queue *, struct sk_buff *);
86724 
86725 typedef void (*btf_trace_qdisc_reset)(void *, struct Qdisc *);
86726 
86727 typedef void (*btf_trace_qdisc_destroy)(void *, struct Qdisc *);
86728 
86729 typedef void (*btf_trace_qdisc_create)(void *, const struct Qdisc_ops *, struct net_device *, u32);
86730 
86731 struct bridge_stp_xstats {
86732 	__u64 transition_blk;
86733 	__u64 transition_fwd;
86734 	__u64 rx_bpdu;
86735 	__u64 tx_bpdu;
86736 	__u64 rx_tcn;
86737 	__u64 tx_tcn;
86738 };
86739 
86740 struct br_mcast_stats {
86741 	__u64 igmp_v1queries[2];
86742 	__u64 igmp_v2queries[2];
86743 	__u64 igmp_v3queries[2];
86744 	__u64 igmp_leaves[2];
86745 	__u64 igmp_v1reports[2];
86746 	__u64 igmp_v2reports[2];
86747 	__u64 igmp_v3reports[2];
86748 	__u64 igmp_parse_errors;
86749 	__u64 mld_v1queries[2];
86750 	__u64 mld_v2queries[2];
86751 	__u64 mld_leaves[2];
86752 	__u64 mld_v1reports[2];
86753 	__u64 mld_v2reports[2];
86754 	__u64 mld_parse_errors;
86755 	__u64 mcast_bytes[2];
86756 	__u64 mcast_packets[2];
86757 };
86758 
86759 struct br_ip {
86760 	union {
86761 		__be32 ip4;
86762 		struct in6_addr ip6;
86763 	} src;
86764 	union {
86765 		__be32 ip4;
86766 		struct in6_addr ip6;
86767 		unsigned char mac_addr[6];
86768 	} dst;
86769 	__be16 proto;
86770 	__u16 vid;
86771 };
86772 
86773 struct bridge_id {
86774 	unsigned char prio[2];
86775 	unsigned char addr[6];
86776 };
86777 
86778 typedef struct bridge_id bridge_id;
86779 
86780 struct mac_addr {
86781 	unsigned char addr[6];
86782 };
86783 
86784 typedef struct mac_addr mac_addr;
86785 
86786 typedef __u16 port_id;
86787 
86788 struct bridge_mcast_own_query {
86789 	struct timer_list timer;
86790 	u32 startup_sent;
86791 };
86792 
86793 struct bridge_mcast_other_query {
86794 	struct timer_list timer;
86795 	long unsigned int delay_time;
86796 };
86797 
86798 struct bridge_mcast_querier {
86799 	struct br_ip addr;
86800 	int port_ifidx;
86801 	seqcount_spinlock_t seq;
86802 };
86803 
86804 struct bridge_mcast_stats {
86805 	struct br_mcast_stats mstats;
86806 	struct u64_stats_sync syncp;
86807 };
86808 
86809 struct net_bridge;
86810 
86811 struct net_bridge_vlan;
86812 
86813 struct net_bridge_mcast {
86814 	struct net_bridge *br;
86815 	struct net_bridge_vlan *vlan;
86816 	u32 multicast_last_member_count;
86817 	u32 multicast_startup_query_count;
86818 	u8 multicast_querier;
86819 	u8 multicast_igmp_version;
86820 	u8 multicast_router;
86821 	u8 multicast_mld_version;
86822 	long unsigned int multicast_last_member_interval;
86823 	long unsigned int multicast_membership_interval;
86824 	long unsigned int multicast_querier_interval;
86825 	long unsigned int multicast_query_interval;
86826 	long unsigned int multicast_query_response_interval;
86827 	long unsigned int multicast_startup_query_interval;
86828 	struct hlist_head ip4_mc_router_list;
86829 	struct timer_list ip4_mc_router_timer;
86830 	struct bridge_mcast_other_query ip4_other_query;
86831 	struct bridge_mcast_own_query ip4_own_query;
86832 	struct bridge_mcast_querier ip4_querier;
86833 	struct hlist_head ip6_mc_router_list;
86834 	struct timer_list ip6_mc_router_timer;
86835 	struct bridge_mcast_other_query ip6_other_query;
86836 	struct bridge_mcast_own_query ip6_own_query;
86837 	struct bridge_mcast_querier ip6_querier;
86838 };
86839 
86840 struct net_bridge {
86841 	spinlock_t lock;
86842 	spinlock_t hash_lock;
86843 	struct hlist_head frame_type_list;
86844 	struct net_device *dev;
86845 	long unsigned int options;
86846 	struct rhashtable fdb_hash_tbl;
86847 	struct list_head port_list;
86848 	union {
86849 		struct rtable fake_rtable;
86850 		struct rt6_info fake_rt6_info;
86851 	};
86852 	u16 group_fwd_mask;
86853 	u16 group_fwd_mask_required;
86854 	bridge_id designated_root;
86855 	bridge_id bridge_id;
86856 	unsigned char topology_change;
86857 	unsigned char topology_change_detected;
86858 	u16 root_port;
86859 	long unsigned int max_age;
86860 	long unsigned int hello_time;
86861 	long unsigned int forward_delay;
86862 	long unsigned int ageing_time;
86863 	long unsigned int bridge_max_age;
86864 	long unsigned int bridge_hello_time;
86865 	long unsigned int bridge_forward_delay;
86866 	long unsigned int bridge_ageing_time;
86867 	u32 root_path_cost;
86868 	u8 group_addr[6];
86869 	enum {
86870 		BR_NO_STP = 0,
86871 		BR_KERNEL_STP = 1,
86872 		BR_USER_STP = 2,
86873 	} stp_enabled;
86874 	struct net_bridge_mcast multicast_ctx;
86875 	struct bridge_mcast_stats *mcast_stats;
86876 	u32 hash_max;
86877 	spinlock_t multicast_lock;
86878 	struct rhashtable mdb_hash_tbl;
86879 	struct rhashtable sg_port_tbl;
86880 	struct hlist_head mcast_gc_list;
86881 	struct hlist_head mdb_list;
86882 	struct work_struct mcast_gc_work;
86883 	struct timer_list hello_timer;
86884 	struct timer_list tcn_timer;
86885 	struct timer_list topology_change_timer;
86886 	struct delayed_work gc_work;
86887 	struct kobject *ifobj;
86888 	u32 auto_cnt;
86889 	struct hlist_head fdb_list;
86890 };
86891 
86892 struct net_bridge_port;
86893 
86894 struct net_bridge_mcast_port {
86895 	struct net_bridge_port *port;
86896 	struct net_bridge_vlan *vlan;
86897 	struct bridge_mcast_own_query ip4_own_query;
86898 	struct timer_list ip4_mc_router_timer;
86899 	struct hlist_node ip4_rlist;
86900 	struct bridge_mcast_own_query ip6_own_query;
86901 	struct timer_list ip6_mc_router_timer;
86902 	struct hlist_node ip6_rlist;
86903 	unsigned char multicast_router;
86904 };
86905 
86906 struct net_bridge_port {
86907 	struct net_bridge *br;
86908 	struct net_device *dev;
86909 	netdevice_tracker dev_tracker;
86910 	struct list_head list;
86911 	long unsigned int flags;
86912 	struct net_bridge_port *backup_port;
86913 	u8 priority;
86914 	u8 state;
86915 	u16 port_no;
86916 	unsigned char topology_change_ack;
86917 	unsigned char config_pending;
86918 	port_id port_id;
86919 	port_id designated_port;
86920 	bridge_id designated_root;
86921 	bridge_id designated_bridge;
86922 	u32 path_cost;
86923 	u32 designated_cost;
86924 	long unsigned int designated_age;
86925 	struct timer_list forward_delay_timer;
86926 	struct timer_list hold_timer;
86927 	struct timer_list message_age_timer;
86928 	struct kobject kobj;
86929 	struct callback_head rcu;
86930 	struct net_bridge_mcast_port multicast_ctx;
86931 	struct bridge_mcast_stats *mcast_stats;
86932 	u32 multicast_eht_hosts_limit;
86933 	u32 multicast_eht_hosts_cnt;
86934 	struct hlist_head mglist;
86935 	char sysfs_name[16];
86936 	struct netpoll *np;
86937 	u16 group_fwd_mask;
86938 	u16 backup_redirected_cnt;
86939 	struct bridge_stp_xstats stp_xstats;
86940 };
86941 
86942 struct br_tunnel_info {
86943 	__be64 tunnel_id;
86944 	struct metadata_dst *tunnel_dst;
86945 };
86946 
86947 struct net_bridge_vlan {
86948 	struct rhash_head vnode;
86949 	struct rhash_head tnode;
86950 	u16 vid;
86951 	u16 flags;
86952 	u16 priv_flags;
86953 	u8 state;
86954 	struct pcpu_sw_netstats *stats;
86955 	union {
86956 		struct net_bridge *br;
86957 		struct net_bridge_port *port;
86958 	};
86959 	union {
86960 		refcount_t refcnt;
86961 		struct net_bridge_vlan *brvlan;
86962 	};
86963 	struct br_tunnel_info tinfo;
86964 	union {
86965 		struct net_bridge_mcast br_mcast_ctx;
86966 		struct net_bridge_mcast_port port_mcast_ctx;
86967 	};
86968 	u16 msti;
86969 	struct list_head vlist;
86970 	struct callback_head rcu;
86971 };
86972 
86973 struct net_bridge_fdb_key {
86974 	mac_addr addr;
86975 	u16 vlan_id;
86976 };
86977 
86978 struct net_bridge_fdb_entry {
86979 	struct rhash_head rhnode;
86980 	struct net_bridge_port *dst;
86981 	struct net_bridge_fdb_key key;
86982 	struct hlist_node fdb_node;
86983 	long unsigned int flags;
86984 	long: 64;
86985 	long: 64;
86986 	long unsigned int updated;
86987 	long unsigned int used;
86988 	struct callback_head rcu;
86989 	long: 64;
86990 	long: 64;
86991 	long: 64;
86992 	long: 64;
86993 };
86994 
86995 struct trace_event_raw_br_fdb_add {
86996 	struct trace_entry ent;
86997 	u8 ndm_flags;
86998 	u32 __data_loc_dev;
86999 	unsigned char addr[6];
87000 	u16 vid;
87001 	u16 nlh_flags;
87002 	char __data[0];
87003 };
87004 
87005 struct trace_event_raw_br_fdb_external_learn_add {
87006 	struct trace_entry ent;
87007 	u32 __data_loc_br_dev;
87008 	u32 __data_loc_dev;
87009 	unsigned char addr[6];
87010 	u16 vid;
87011 	char __data[0];
87012 };
87013 
87014 struct trace_event_raw_fdb_delete {
87015 	struct trace_entry ent;
87016 	u32 __data_loc_br_dev;
87017 	u32 __data_loc_dev;
87018 	unsigned char addr[6];
87019 	u16 vid;
87020 	char __data[0];
87021 };
87022 
87023 struct trace_event_raw_br_fdb_update {
87024 	struct trace_entry ent;
87025 	u32 __data_loc_br_dev;
87026 	u32 __data_loc_dev;
87027 	unsigned char addr[6];
87028 	u16 vid;
87029 	long unsigned int flags;
87030 	char __data[0];
87031 };
87032 
87033 struct trace_event_data_offsets_br_fdb_add {
87034 	u32 dev;
87035 };
87036 
87037 struct trace_event_data_offsets_br_fdb_external_learn_add {
87038 	u32 br_dev;
87039 	u32 dev;
87040 };
87041 
87042 struct trace_event_data_offsets_fdb_delete {
87043 	u32 br_dev;
87044 	u32 dev;
87045 };
87046 
87047 struct trace_event_data_offsets_br_fdb_update {
87048 	u32 br_dev;
87049 	u32 dev;
87050 };
87051 
87052 typedef void (*btf_trace_br_fdb_add)(void *, struct ndmsg *, struct net_device *, const unsigned char *, u16, u16);
87053 
87054 typedef void (*btf_trace_br_fdb_external_learn_add)(void *, struct net_bridge *, struct net_bridge_port *, const unsigned char *, u16);
87055 
87056 typedef void (*btf_trace_fdb_delete)(void *, struct net_bridge *, struct net_bridge_fdb_entry *);
87057 
87058 typedef void (*btf_trace_br_fdb_update)(void *, struct net_bridge *, struct net_bridge_port *, const unsigned char *, u16, long unsigned int);
87059 
87060 struct trace_event_raw_page_pool_release {
87061 	struct trace_entry ent;
87062 	const struct page_pool *pool;
87063 	s32 inflight;
87064 	u32 hold;
87065 	u32 release;
87066 	u64 cnt;
87067 	char __data[0];
87068 };
87069 
87070 struct trace_event_raw_page_pool_state_release {
87071 	struct trace_entry ent;
87072 	const struct page_pool *pool;
87073 	const struct page *page;
87074 	u32 release;
87075 	long unsigned int pfn;
87076 	char __data[0];
87077 };
87078 
87079 struct trace_event_raw_page_pool_state_hold {
87080 	struct trace_entry ent;
87081 	const struct page_pool *pool;
87082 	const struct page *page;
87083 	u32 hold;
87084 	long unsigned int pfn;
87085 	char __data[0];
87086 };
87087 
87088 struct trace_event_raw_page_pool_update_nid {
87089 	struct trace_entry ent;
87090 	const struct page_pool *pool;
87091 	int pool_nid;
87092 	int new_nid;
87093 	char __data[0];
87094 };
87095 
87096 struct trace_event_data_offsets_page_pool_release {};
87097 
87098 struct trace_event_data_offsets_page_pool_state_release {};
87099 
87100 struct trace_event_data_offsets_page_pool_state_hold {};
87101 
87102 struct trace_event_data_offsets_page_pool_update_nid {};
87103 
87104 typedef void (*btf_trace_page_pool_release)(void *, const struct page_pool *, s32, u32, u32);
87105 
87106 typedef void (*btf_trace_page_pool_state_release)(void *, const struct page_pool *, const struct page *, u32);
87107 
87108 typedef void (*btf_trace_page_pool_state_hold)(void *, const struct page_pool *, const struct page *, u32);
87109 
87110 typedef void (*btf_trace_page_pool_update_nid)(void *, const struct page_pool *, int);
87111 
87112 struct trace_event_raw_neigh_create {
87113 	struct trace_entry ent;
87114 	u32 family;
87115 	u32 __data_loc_dev;
87116 	int entries;
87117 	u8 created;
87118 	u8 gc_exempt;
87119 	u8 primary_key4[4];
87120 	u8 primary_key6[16];
87121 	char __data[0];
87122 };
87123 
87124 struct trace_event_raw_neigh_update {
87125 	struct trace_entry ent;
87126 	u32 family;
87127 	u32 __data_loc_dev;
87128 	u8 lladdr[32];
87129 	u8 lladdr_len;
87130 	u8 flags;
87131 	u8 nud_state;
87132 	u8 type;
87133 	u8 dead;
87134 	int refcnt;
87135 	__u8 primary_key4[4];
87136 	__u8 primary_key6[16];
87137 	long unsigned int confirmed;
87138 	long unsigned int updated;
87139 	long unsigned int used;
87140 	u8 new_lladdr[32];
87141 	u8 new_state;
87142 	u32 update_flags;
87143 	u32 pid;
87144 	char __data[0];
87145 };
87146 
87147 struct trace_event_raw_neigh__update {
87148 	struct trace_entry ent;
87149 	u32 family;
87150 	u32 __data_loc_dev;
87151 	u8 lladdr[32];
87152 	u8 lladdr_len;
87153 	u8 flags;
87154 	u8 nud_state;
87155 	u8 type;
87156 	u8 dead;
87157 	int refcnt;
87158 	__u8 primary_key4[4];
87159 	__u8 primary_key6[16];
87160 	long unsigned int confirmed;
87161 	long unsigned int updated;
87162 	long unsigned int used;
87163 	u32 err;
87164 	char __data[0];
87165 };
87166 
87167 struct trace_event_data_offsets_neigh_create {
87168 	u32 dev;
87169 };
87170 
87171 struct trace_event_data_offsets_neigh_update {
87172 	u32 dev;
87173 };
87174 
87175 struct trace_event_data_offsets_neigh__update {
87176 	u32 dev;
87177 };
87178 
87179 typedef void (*btf_trace_neigh_create)(void *, struct neigh_table *, struct net_device *, const void *, const struct neighbour *, bool);
87180 
87181 typedef void (*btf_trace_neigh_update)(void *, struct neighbour *, const u8 *, u8, u32, u32);
87182 
87183 typedef void (*btf_trace_neigh_update_done)(void *, struct neighbour *, int);
87184 
87185 typedef void (*btf_trace_neigh_timer_handler)(void *, struct neighbour *, int);
87186 
87187 typedef void (*btf_trace_neigh_event_send_done)(void *, struct neighbour *, int);
87188 
87189 typedef void (*btf_trace_neigh_event_send_dead)(void *, struct neighbour *, int);
87190 
87191 typedef void (*btf_trace_neigh_cleanup_and_release)(void *, struct neighbour *, int);
87192 
87193 enum bpf_ret_code {
87194 	BPF_OK = 0,
87195 	BPF_DROP = 2,
87196 	BPF_REDIRECT = 7,
87197 	BPF_LWT_REROUTE = 128,
87198 	BPF_FLOW_DISSECTOR_CONTINUE = 129,
87199 };
87200 
87201 enum {
87202 	LWT_BPF_PROG_UNSPEC = 0,
87203 	LWT_BPF_PROG_FD = 1,
87204 	LWT_BPF_PROG_NAME = 2,
87205 	__LWT_BPF_PROG_MAX = 3,
87206 };
87207 
87208 enum {
87209 	LWT_BPF_UNSPEC = 0,
87210 	LWT_BPF_IN = 1,
87211 	LWT_BPF_OUT = 2,
87212 	LWT_BPF_XMIT = 3,
87213 	LWT_BPF_XMIT_HEADROOM = 4,
87214 	__LWT_BPF_MAX = 5,
87215 };
87216 
87217 enum {
87218 	LWTUNNEL_XMIT_DONE = 0,
87219 	LWTUNNEL_XMIT_CONTINUE = 1,
87220 };
87221 
87222 struct bpf_lwt_prog {
87223 	struct bpf_prog *prog;
87224 	char *name;
87225 };
87226 
87227 struct bpf_lwt {
87228 	struct bpf_lwt_prog in;
87229 	struct bpf_lwt_prog out;
87230 	struct bpf_lwt_prog xmit;
87231 	int family;
87232 };
87233 
87234 enum __sk_action {
87235 	__SK_DROP = 0,
87236 	__SK_PASS = 1,
87237 	__SK_REDIRECT = 2,
87238 	__SK_NONE = 3,
87239 };
87240 
87241 enum sk_psock_state_bits {
87242 	SK_PSOCK_TX_ENABLED = 0,
87243 };
87244 
87245 enum tc_mq_command {
87246 	TC_MQ_CREATE = 0,
87247 	TC_MQ_DESTROY = 1,
87248 	TC_MQ_STATS = 2,
87249 	TC_MQ_GRAFT = 3,
87250 };
87251 
87252 struct tc_mq_opt_offload_graft_params {
87253 	long unsigned int queue;
87254 	u32 child_handle;
87255 };
87256 
87257 struct tc_mq_qopt_offload {
87258 	enum tc_mq_command command;
87259 	u32 handle;
87260 	union {
87261 		struct tc_qopt_offload_stats stats;
87262 		struct tc_mq_opt_offload_graft_params graft_params;
87263 	};
87264 };
87265 
87266 struct mq_sched {
87267 	struct Qdisc **qdiscs;
87268 };
87269 
87270 enum net_xmit_qdisc_t {
87271 	__NET_XMIT_STOLEN = 65536,
87272 	__NET_XMIT_BYPASS = 131072,
87273 };
87274 
87275 struct tcf_ematch_tree_hdr {
87276 	__u16 nmatches;
87277 	__u16 progid;
87278 };
87279 
87280 enum {
87281 	TCA_EMATCH_TREE_UNSPEC = 0,
87282 	TCA_EMATCH_TREE_HDR = 1,
87283 	TCA_EMATCH_TREE_LIST = 2,
87284 	__TCA_EMATCH_TREE_MAX = 3,
87285 };
87286 
87287 struct tcf_ematch_hdr {
87288 	__u16 matchid;
87289 	__u16 kind;
87290 	__u16 flags;
87291 	__u16 pad;
87292 };
87293 
87294 struct tcf_pkt_info {
87295 	unsigned char *ptr;
87296 	int nexthdr;
87297 };
87298 
87299 struct tcf_ematch_ops;
87300 
87301 struct tcf_ematch {
87302 	struct tcf_ematch_ops *ops;
87303 	long unsigned int data;
87304 	unsigned int datalen;
87305 	u16 matchid;
87306 	u16 flags;
87307 	struct net *net;
87308 };
87309 
87310 struct tcf_ematch_ops {
87311 	int kind;
87312 	int datalen;
87313 	int (*change)(struct net *, void *, int, struct tcf_ematch *);
87314 	int (*match)(struct sk_buff *, struct tcf_ematch *, struct tcf_pkt_info *);
87315 	void (*destroy)(struct tcf_ematch *);
87316 	int (*dump)(struct sk_buff *, struct tcf_ematch *);
87317 	struct module *owner;
87318 	struct list_head link;
87319 };
87320 
87321 struct tcf_ematch_tree {
87322 	struct tcf_ematch_tree_hdr hdr;
87323 	struct tcf_ematch *matches;
87324 };
87325 
87326 enum {
87327 	CTRL_CMD_UNSPEC = 0,
87328 	CTRL_CMD_NEWFAMILY = 1,
87329 	CTRL_CMD_DELFAMILY = 2,
87330 	CTRL_CMD_GETFAMILY = 3,
87331 	CTRL_CMD_NEWOPS = 4,
87332 	CTRL_CMD_DELOPS = 5,
87333 	CTRL_CMD_GETOPS = 6,
87334 	CTRL_CMD_NEWMCAST_GRP = 7,
87335 	CTRL_CMD_DELMCAST_GRP = 8,
87336 	CTRL_CMD_GETMCAST_GRP = 9,
87337 	CTRL_CMD_GETPOLICY = 10,
87338 	__CTRL_CMD_MAX = 11,
87339 };
87340 
87341 enum {
87342 	CTRL_ATTR_UNSPEC = 0,
87343 	CTRL_ATTR_FAMILY_ID = 1,
87344 	CTRL_ATTR_FAMILY_NAME = 2,
87345 	CTRL_ATTR_VERSION = 3,
87346 	CTRL_ATTR_HDRSIZE = 4,
87347 	CTRL_ATTR_MAXATTR = 5,
87348 	CTRL_ATTR_OPS = 6,
87349 	CTRL_ATTR_MCAST_GROUPS = 7,
87350 	CTRL_ATTR_POLICY = 8,
87351 	CTRL_ATTR_OP_POLICY = 9,
87352 	CTRL_ATTR_OP = 10,
87353 	__CTRL_ATTR_MAX = 11,
87354 };
87355 
87356 enum {
87357 	CTRL_ATTR_OP_UNSPEC = 0,
87358 	CTRL_ATTR_OP_ID = 1,
87359 	CTRL_ATTR_OP_FLAGS = 2,
87360 	__CTRL_ATTR_OP_MAX = 3,
87361 };
87362 
87363 enum {
87364 	CTRL_ATTR_MCAST_GRP_UNSPEC = 0,
87365 	CTRL_ATTR_MCAST_GRP_NAME = 1,
87366 	CTRL_ATTR_MCAST_GRP_ID = 2,
87367 	__CTRL_ATTR_MCAST_GRP_MAX = 3,
87368 };
87369 
87370 enum {
87371 	CTRL_ATTR_POLICY_UNSPEC = 0,
87372 	CTRL_ATTR_POLICY_DO = 1,
87373 	CTRL_ATTR_POLICY_DUMP = 2,
87374 	__CTRL_ATTR_POLICY_DUMP_MAX = 3,
87375 	CTRL_ATTR_POLICY_DUMP_MAX = 2,
87376 };
87377 
87378 enum genl_validate_flags {
87379 	GENL_DONT_VALIDATE_STRICT = 1,
87380 	GENL_DONT_VALIDATE_DUMP = 2,
87381 	GENL_DONT_VALIDATE_DUMP_STRICT = 4,
87382 };
87383 
87384 struct genl_op_iter {
87385 	const struct genl_family *family;
87386 	struct genl_split_ops doit;
87387 	struct genl_split_ops dumpit;
87388 	int cmd_idx;
87389 	int entry_idx;
87390 	u32 cmd;
87391 	u8 flags;
87392 };
87393 
87394 struct genl_start_context {
87395 	const struct genl_family *family;
87396 	struct nlmsghdr *nlh;
87397 	struct netlink_ext_ack *extack;
87398 	const struct genl_split_ops *ops;
87399 	int hdrlen;
87400 };
87401 
87402 struct netlink_policy_dump_state;
87403 
87404 struct ctrl_dump_policy_ctx {
87405 	struct netlink_policy_dump_state *state;
87406 	const struct genl_family *rt;
87407 	struct genl_op_iter *op_iter;
87408 	u32 op;
87409 	u16 fam_id;
87410 	u8 dump_map: 1;
87411 	u8 single_op: 1;
87412 };
87413 
87414 typedef int (*dummy_ops_test_ret_fn)(struct bpf_dummy_ops_state *, ...);
87415 
87416 struct bpf_dummy_ops_test_args {
87417 	u64 args[12];
87418 	struct bpf_dummy_ops_state state;
87419 };
87420 
87421 enum ethtool_multicast_groups {
87422 	ETHNL_MCGRP_MONITOR = 0,
87423 };
87424 
87425 struct ethnl_dump_ctx {
87426 	const struct ethnl_request_ops *ops;
87427 	struct ethnl_req_info *req_info;
87428 	struct ethnl_reply_data *reply_data;
87429 	int pos_hash;
87430 	int pos_idx;
87431 };
87432 
87433 typedef void (*ethnl_notify_handler_t)(struct net_device *, unsigned int, const void *);
87434 
87435 struct rss_req_info {
87436 	struct ethnl_req_info base;
87437 	u32 rss_context;
87438 };
87439 
87440 struct rss_reply_data {
87441 	struct ethnl_reply_data base;
87442 	u32 indir_size;
87443 	u32 hkey_size;
87444 	u32 hfunc;
87445 	u32 *indir_table;
87446 	u8 *hkey;
87447 };
87448 
87449 struct wol_reply_data {
87450 	struct ethnl_reply_data base;
87451 	struct ethtool_wolinfo wol;
87452 	bool show_sopass;
87453 };
87454 
87455 struct channels_reply_data {
87456 	struct ethnl_reply_data base;
87457 	struct ethtool_channels channels;
87458 };
87459 
87460 struct tsinfo_reply_data {
87461 	struct ethnl_reply_data base;
87462 	struct ethtool_ts_info ts_info;
87463 };
87464 
87465 struct eeprom_req_info {
87466 	struct ethnl_req_info base;
87467 	u32 offset;
87468 	u32 length;
87469 	u8 page;
87470 	u8 bank;
87471 	u8 i2c_address;
87472 };
87473 
87474 struct eeprom_reply_data {
87475 	struct ethnl_reply_data base;
87476 	u32 length;
87477 	u8 *data;
87478 };
87479 
87480 enum ethtool_podl_pse_admin_state {
87481 	ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN = 1,
87482 	ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED = 2,
87483 	ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED = 3,
87484 };
87485 
87486 enum ethtool_podl_pse_pw_d_status {
87487 	ETHTOOL_PODL_PSE_PW_D_STATUS_UNKNOWN = 1,
87488 	ETHTOOL_PODL_PSE_PW_D_STATUS_DISABLED = 2,
87489 	ETHTOOL_PODL_PSE_PW_D_STATUS_SEARCHING = 3,
87490 	ETHTOOL_PODL_PSE_PW_D_STATUS_DELIVERING = 4,
87491 	ETHTOOL_PODL_PSE_PW_D_STATUS_SLEEP = 5,
87492 	ETHTOOL_PODL_PSE_PW_D_STATUS_IDLE = 6,
87493 	ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR = 7,
87494 };
87495 
87496 struct pse_control_config {
87497 	enum ethtool_podl_pse_admin_state admin_cotrol;
87498 };
87499 
87500 struct pse_control_status {
87501 	enum ethtool_podl_pse_admin_state podl_admin_state;
87502 	enum ethtool_podl_pse_pw_d_status podl_pw_status;
87503 };
87504 
87505 struct pse_reply_data {
87506 	struct ethnl_reply_data base;
87507 	struct pse_control_status status;
87508 };
87509 
87510 struct nf_sockopt_ops {
87511 	struct list_head list;
87512 	u_int8_t pf;
87513 	int set_optmin;
87514 	int set_optmax;
87515 	int (*set)(struct sock *, int, sockptr_t, unsigned int);
87516 	int get_optmin;
87517 	int get_optmax;
87518 	int (*get)(struct sock *, int, void *, int *);
87519 	struct module *owner;
87520 };
87521 
87522 struct ip_rt_acct {
87523 	__u32 o_bytes;
87524 	__u32 o_packets;
87525 	__u32 i_bytes;
87526 	__u32 i_packets;
87527 };
87528 
87529 enum tcp_fastopen_client_fail {
87530 	TFO_STATUS_UNSPEC = 0,
87531 	TFO_COOKIE_UNAVAILABLE = 1,
87532 	TFO_DATA_NOT_ACKED = 2,
87533 	TFO_SYN_RETRANSMITTED = 3,
87534 };
87535 
87536 struct tcp_sack_block_wire {
87537 	__be32 start_seq;
87538 	__be32 end_seq;
87539 };
87540 
87541 enum tcp_ca_ack_event_flags {
87542 	CA_ACK_SLOWPATH = 1,
87543 	CA_ACK_WIN_UPDATE = 2,
87544 	CA_ACK_ECE = 4,
87545 };
87546 
87547 struct tcp_sacktag_state {
87548 	u64 first_sackt;
87549 	u64 last_sackt;
87550 	u32 reord;
87551 	u32 sack_delivered;
87552 	int flag;
87553 	unsigned int mss_now;
87554 	struct rate_sample *rate;
87555 };
87556 
87557 struct tcp_plb_state {
87558 	u8 consec_cong_rounds: 5;
87559 	u8 unused: 3;
87560 	u32 pause_until;
87561 };
87562 
87563 typedef struct sock * (*udp_lookup_t)(const struct sk_buff *, __be16, __be16);
87564 
87565 typedef struct sk_buff * (*gro_receive_sk_t)(struct sock *, struct list_head *, struct sk_buff *);
87566 
87567 enum {
87568 	IFLA_INET_UNSPEC = 0,
87569 	IFLA_INET_CONF = 1,
87570 	__IFLA_INET_MAX = 2,
87571 };
87572 
87573 struct in_validator_info {
87574 	__be32 ivi_addr;
87575 	struct in_device *ivi_dev;
87576 	struct netlink_ext_ack *extack;
87577 };
87578 
87579 struct inet_fill_args {
87580 	u32 portid;
87581 	u32 seq;
87582 	int event;
87583 	unsigned int flags;
87584 	int netnsid;
87585 	int ifindex;
87586 };
87587 
87588 struct devinet_sysctl_table {
87589 	struct ctl_table_header *sysctl_header;
87590 	struct ctl_table devinet_vars[34];
87591 };
87592 
87593 struct rtvia {
87594 	__kernel_sa_family_t rtvia_family;
87595 	__u8 rtvia_addr[0];
87596 };
87597 
87598 struct fib_result_nl {
87599 	__be32 fl_addr;
87600 	u32 fl_mark;
87601 	unsigned char fl_tos;
87602 	unsigned char fl_scope;
87603 	unsigned char tb_id_in;
87604 	unsigned char tb_id;
87605 	unsigned char prefixlen;
87606 	unsigned char nh_sel;
87607 	unsigned char type;
87608 	unsigned char scope;
87609 	int err;
87610 };
87611 
87612 struct rtentry {
87613 	long unsigned int rt_pad1;
87614 	struct sockaddr rt_dst;
87615 	struct sockaddr rt_gateway;
87616 	struct sockaddr rt_genmask;
87617 	short unsigned int rt_flags;
87618 	short int rt_pad2;
87619 	long unsigned int rt_pad3;
87620 	void *rt_pad4;
87621 	short int rt_metric;
87622 	char *rt_dev;
87623 	long unsigned int rt_mtu;
87624 	long unsigned int rt_window;
87625 	short unsigned int rt_irtt;
87626 };
87627 
87628 enum {
87629 	INET_FRAG_FIRST_IN = 1,
87630 	INET_FRAG_LAST_IN = 2,
87631 	INET_FRAG_COMPLETE = 4,
87632 	INET_FRAG_HASH_DEAD = 8,
87633 	INET_FRAG_DROP = 16,
87634 };
87635 
87636 struct ipfrag_skb_cb {
87637 	union {
87638 		struct inet_skb_parm h4;
87639 		struct inet6_skb_parm h6;
87640 	};
87641 	struct sk_buff *next_frag;
87642 	int frag_run_len;
87643 };
87644 
87645 struct umd_info {
87646 	const char *driver_name;
87647 	struct file *pipe_to_umh;
87648 	struct file *pipe_from_umh;
87649 	struct path wd;
87650 	struct pid *tgid;
87651 };
87652 
87653 struct bpfilter_umh_ops {
87654 	struct umd_info info;
87655 	struct mutex lock;
87656 	int (*sockopt)(struct sock *, int, sockptr_t, unsigned int, bool);
87657 	int (*start)();
87658 };
87659 
87660 struct rta_mfc_stats {
87661 	__u64 mfcs_packets;
87662 	__u64 mfcs_bytes;
87663 	__u64 mfcs_wrong_if;
87664 };
87665 
87666 struct arphdr {
87667 	__be16 ar_hrd;
87668 	__be16 ar_pro;
87669 	unsigned char ar_hln;
87670 	unsigned char ar_pln;
87671 	__be16 ar_op;
87672 };
87673 
87674 enum rpc_display_format_t {
87675 	RPC_DISPLAY_ADDR = 0,
87676 	RPC_DISPLAY_PORT = 1,
87677 	RPC_DISPLAY_PROTO = 2,
87678 	RPC_DISPLAY_HEX_ADDR = 3,
87679 	RPC_DISPLAY_HEX_PORT = 4,
87680 	RPC_DISPLAY_NETID = 5,
87681 	RPC_DISPLAY_MAX = 6,
87682 };
87683 
87684 enum nfs_opnum4 {
87685 	OP_ACCESS = 3,
87686 	OP_CLOSE = 4,
87687 	OP_COMMIT = 5,
87688 	OP_CREATE = 6,
87689 	OP_DELEGPURGE = 7,
87690 	OP_DELEGRETURN = 8,
87691 	OP_GETATTR = 9,
87692 	OP_GETFH = 10,
87693 	OP_LINK = 11,
87694 	OP_LOCK = 12,
87695 	OP_LOCKT = 13,
87696 	OP_LOCKU = 14,
87697 	OP_LOOKUP = 15,
87698 	OP_LOOKUPP = 16,
87699 	OP_NVERIFY = 17,
87700 	OP_OPEN = 18,
87701 	OP_OPENATTR = 19,
87702 	OP_OPEN_CONFIRM = 20,
87703 	OP_OPEN_DOWNGRADE = 21,
87704 	OP_PUTFH = 22,
87705 	OP_PUTPUBFH = 23,
87706 	OP_PUTROOTFH = 24,
87707 	OP_READ = 25,
87708 	OP_READDIR = 26,
87709 	OP_READLINK = 27,
87710 	OP_REMOVE = 28,
87711 	OP_RENAME = 29,
87712 	OP_RENEW = 30,
87713 	OP_RESTOREFH = 31,
87714 	OP_SAVEFH = 32,
87715 	OP_SECINFO = 33,
87716 	OP_SETATTR = 34,
87717 	OP_SETCLIENTID = 35,
87718 	OP_SETCLIENTID_CONFIRM = 36,
87719 	OP_VERIFY = 37,
87720 	OP_WRITE = 38,
87721 	OP_RELEASE_LOCKOWNER = 39,
87722 	OP_BACKCHANNEL_CTL = 40,
87723 	OP_BIND_CONN_TO_SESSION = 41,
87724 	OP_EXCHANGE_ID = 42,
87725 	OP_CREATE_SESSION = 43,
87726 	OP_DESTROY_SESSION = 44,
87727 	OP_FREE_STATEID = 45,
87728 	OP_GET_DIR_DELEGATION = 46,
87729 	OP_GETDEVICEINFO = 47,
87730 	OP_GETDEVICELIST = 48,
87731 	OP_LAYOUTCOMMIT = 49,
87732 	OP_LAYOUTGET = 50,
87733 	OP_LAYOUTRETURN = 51,
87734 	OP_SECINFO_NO_NAME = 52,
87735 	OP_SEQUENCE = 53,
87736 	OP_SET_SSV = 54,
87737 	OP_TEST_STATEID = 55,
87738 	OP_WANT_DELEGATION = 56,
87739 	OP_DESTROY_CLIENTID = 57,
87740 	OP_RECLAIM_COMPLETE = 58,
87741 	OP_ALLOCATE = 59,
87742 	OP_COPY = 60,
87743 	OP_COPY_NOTIFY = 61,
87744 	OP_DEALLOCATE = 62,
87745 	OP_IO_ADVISE = 63,
87746 	OP_LAYOUTERROR = 64,
87747 	OP_LAYOUTSTATS = 65,
87748 	OP_OFFLOAD_CANCEL = 66,
87749 	OP_OFFLOAD_STATUS = 67,
87750 	OP_READ_PLUS = 68,
87751 	OP_SEEK = 69,
87752 	OP_WRITE_SAME = 70,
87753 	OP_CLONE = 71,
87754 	OP_GETXATTR = 72,
87755 	OP_SETXATTR = 73,
87756 	OP_LISTXATTRS = 74,
87757 	OP_REMOVEXATTR = 75,
87758 	OP_ILLEGAL = 10044,
87759 };
87760 
87761 struct ic_device {
87762 	struct ic_device *next;
87763 	struct net_device *dev;
87764 	short unsigned int flags;
87765 	short int able;
87766 	__be32 xid;
87767 };
87768 
87769 struct bootp_pkt {
87770 	struct iphdr iph;
87771 	struct udphdr udph;
87772 	u8 op;
87773 	u8 htype;
87774 	u8 hlen;
87775 	u8 hops;
87776 	__be32 xid;
87777 	__be16 secs;
87778 	__be16 flags;
87779 	__be32 client_ip;
87780 	__be32 your_ip;
87781 	__be32 server_ip;
87782 	__be32 relay_ip;
87783 	u8 hw_addr[16];
87784 	u8 serv_name[64];
87785 	u8 boot_file[128];
87786 	u8 exten[312];
87787 };
87788 
87789 struct xfrm_input_afinfo {
87790 	u8 family;
87791 	bool is_ipip;
87792 	int (*callback)(struct sk_buff *, u8, int);
87793 };
87794 
87795 struct xfrm4_protocol {
87796 	int (*handler)(struct sk_buff *);
87797 	int (*input_handler)(struct sk_buff *, int, __be32, int);
87798 	int (*cb_handler)(struct sk_buff *, int);
87799 	int (*err_handler)(struct sk_buff *, u32);
87800 	struct xfrm4_protocol *next;
87801 	int priority;
87802 };
87803 
87804 struct ip_beet_phdr {
87805 	__u8 nexthdr;
87806 	__u8 hdrlen;
87807 	__u8 padlen;
87808 	__u8 reserved;
87809 };
87810 
87811 enum {
87812 	XFRM_MODE_FLAG_TUNNEL = 1,
87813 };
87814 
87815 struct __ip6_tnl_parm {
87816 	char name[16];
87817 	int link;
87818 	__u8 proto;
87819 	__u8 encap_limit;
87820 	__u8 hop_limit;
87821 	bool collect_md;
87822 	__be32 flowinfo;
87823 	__u32 flags;
87824 	struct in6_addr laddr;
87825 	struct in6_addr raddr;
87826 	__be16 i_flags;
87827 	__be16 o_flags;
87828 	__be32 i_key;
87829 	__be32 o_key;
87830 	__u32 fwmark;
87831 	__u32 index;
87832 	__u8 erspan_ver;
87833 	__u8 dir;
87834 	__u16 hwid;
87835 };
87836 
87837 struct ip6_tnl {
87838 	struct ip6_tnl *next;
87839 	struct net_device *dev;
87840 	netdevice_tracker dev_tracker;
87841 	struct net *net;
87842 	struct __ip6_tnl_parm parms;
87843 	struct flowi fl;
87844 	struct dst_cache dst_cache;
87845 	struct gro_cells gro_cells;
87846 	int err_count;
87847 	long unsigned int err_time;
87848 	__u32 i_seqno;
87849 	atomic_t o_seqno;
87850 	int hlen;
87851 	int tun_hlen;
87852 	int encap_hlen;
87853 	struct ip_tunnel_encap encap;
87854 	int mlink;
87855 };
87856 
87857 struct xfrm_trans_tasklet {
87858 	struct work_struct work;
87859 	spinlock_t queue_lock;
87860 	struct sk_buff_head queue;
87861 };
87862 
87863 struct xfrm_trans_cb {
87864 	union {
87865 		struct inet_skb_parm h4;
87866 		struct inet6_skb_parm h6;
87867 	} header;
87868 	int (*finish)(struct net *, struct sock *, struct sk_buff *);
87869 	struct net *net;
87870 };
87871 
87872 struct in6_rtmsg {
87873 	struct in6_addr rtmsg_dst;
87874 	struct in6_addr rtmsg_src;
87875 	struct in6_addr rtmsg_gateway;
87876 	__u32 rtmsg_type;
87877 	__u16 rtmsg_dst_len;
87878 	__u16 rtmsg_src_len;
87879 	__u32 rtmsg_metric;
87880 	long unsigned int rtmsg_info;
87881 	__u32 rtmsg_flags;
87882 	int rtmsg_ifindex;
87883 };
87884 
87885 struct fib6_gc_args {
87886 	int timeout;
87887 	int more;
87888 };
87889 
87890 struct rt6_exception {
87891 	struct hlist_node hlist;
87892 	struct rt6_info *rt6i;
87893 	long unsigned int stamp;
87894 	struct callback_head rcu;
87895 };
87896 
87897 struct uncached_list {
87898 	spinlock_t lock;
87899 	struct list_head head;
87900 	struct list_head quarantine;
87901 };
87902 
87903 typedef struct rt6_info * (*pol_lookup_t)(struct net *, struct fib6_table *, struct flowi6 *, const struct sk_buff *, int);
87904 
87905 struct rt6_rtnl_dump_arg {
87906 	struct sk_buff *skb;
87907 	struct netlink_callback *cb;
87908 	struct net *net;
87909 	struct fib_dump_filter filter;
87910 };
87911 
87912 struct netevent_redirect {
87913 	struct dst_entry *old;
87914 	struct dst_entry *new;
87915 	struct neighbour *neigh;
87916 	const void *daddr;
87917 };
87918 
87919 struct trace_event_raw_fib6_table_lookup {
87920 	struct trace_entry ent;
87921 	u32 tb_id;
87922 	int err;
87923 	int oif;
87924 	int iif;
87925 	__u8 tos;
87926 	__u8 scope;
87927 	__u8 flags;
87928 	__u8 src[16];
87929 	__u8 dst[16];
87930 	u16 sport;
87931 	u16 dport;
87932 	u8 proto;
87933 	u8 rt_type;
87934 	char name[16];
87935 	__u8 gw[16];
87936 	char __data[0];
87937 };
87938 
87939 struct trace_event_data_offsets_fib6_table_lookup {};
87940 
87941 typedef void (*btf_trace_fib6_table_lookup)(void *, const struct net *, const struct fib6_result *, struct fib6_table *, const struct flowi6 *);
87942 
87943 enum rt6_nud_state {
87944 	RT6_NUD_FAIL_HARD = -3,
87945 	RT6_NUD_FAIL_PROBE = -2,
87946 	RT6_NUD_FAIL_DO_RR = -1,
87947 	RT6_NUD_SUCCEED = 1,
87948 };
87949 
87950 struct fib6_nh_dm_arg {
87951 	struct net *net;
87952 	const struct in6_addr *saddr;
87953 	int oif;
87954 	int flags;
87955 	struct fib6_nh *nh;
87956 };
87957 
87958 struct __rt6_probe_work {
87959 	struct work_struct work;
87960 	struct in6_addr target;
87961 	struct net_device *dev;
87962 	netdevice_tracker dev_tracker;
87963 };
87964 
87965 struct fib6_nh_frl_arg {
87966 	u32 flags;
87967 	int oif;
87968 	int strict;
87969 	int *mpri;
87970 	bool *do_rr;
87971 	struct fib6_nh *nh;
87972 };
87973 
87974 struct fib6_nh_excptn_arg {
87975 	struct rt6_info *rt;
87976 	int plen;
87977 };
87978 
87979 struct fib6_nh_match_arg {
87980 	const struct net_device *dev;
87981 	const struct in6_addr *gw;
87982 	struct fib6_nh *match;
87983 };
87984 
87985 struct fib6_nh_age_excptn_arg {
87986 	struct fib6_gc_args *gc_args;
87987 	long unsigned int now;
87988 };
87989 
87990 struct fib6_nh_rd_arg {
87991 	struct fib6_result *res;
87992 	struct flowi6 *fl6;
87993 	const struct in6_addr *gw;
87994 	struct rt6_info **ret;
87995 };
87996 
87997 struct ip6rd_flowi {
87998 	struct flowi6 fl6;
87999 	struct in6_addr gateway;
88000 };
88001 
88002 struct fib6_nh_del_cached_rt_arg {
88003 	struct fib6_config *cfg;
88004 	struct fib6_info *f6i;
88005 };
88006 
88007 struct arg_dev_net_ip {
88008 	struct net_device *dev;
88009 	struct net *net;
88010 	struct in6_addr *addr;
88011 };
88012 
88013 struct arg_netdev_event {
88014 	const struct net_device *dev;
88015 	union {
88016 		unsigned char nh_flags;
88017 		long unsigned int event;
88018 	};
88019 };
88020 
88021 struct rt6_mtu_change_arg {
88022 	struct net_device *dev;
88023 	unsigned int mtu;
88024 	struct fib6_info *f6i;
88025 };
88026 
88027 struct rt6_nh {
88028 	struct fib6_info *fib6_info;
88029 	struct fib6_config r_cfg;
88030 	struct list_head next;
88031 };
88032 
88033 struct fib6_nh_exception_dump_walker {
88034 	struct rt6_rtnl_dump_arg *dump;
88035 	struct fib6_info *rt;
88036 	unsigned int flags;
88037 	unsigned int skip;
88038 	unsigned int count;
88039 };
88040 
88041 struct raw_iter_state {
88042 	struct seq_net_private p;
88043 	int bucket;
88044 };
88045 
88046 struct raw6_frag_vec {
88047 	struct msghdr *msg;
88048 	int hlen;
88049 	char c[4];
88050 };
88051 
88052 enum tcp_seq_states {
88053 	TCP_SEQ_STATE_LISTENING = 0,
88054 	TCP_SEQ_STATE_ESTABLISHED = 1,
88055 };
88056 
88057 struct tcp_seq_afinfo {
88058 	sa_family_t family;
88059 };
88060 
88061 struct tcp_iter_state {
88062 	struct seq_net_private p;
88063 	enum tcp_seq_states state;
88064 	struct sock *syn_wait_sk;
88065 	int bucket;
88066 	int offset;
88067 	int sbucket;
88068 	int num;
88069 	loff_t last_pos;
88070 };
88071 
88072 struct ipv6_rpl_sr_hdr {
88073 	__u8 nexthdr;
88074 	__u8 hdrlen;
88075 	__u8 type;
88076 	__u8 segments_left;
88077 	__u32 cmpre: 4;
88078 	__u32 cmpri: 4;
88079 	__u32 reserved: 4;
88080 	__u32 pad: 4;
88081 	__u32 reserved1: 16;
88082 	union {
88083 		struct in6_addr addr[0];
88084 		__u8 data[0];
88085 	} segments;
88086 };
88087 
88088 enum {
88089 	RPL_IPTUNNEL_UNSPEC = 0,
88090 	RPL_IPTUNNEL_SRH = 1,
88091 	__RPL_IPTUNNEL_MAX = 2,
88092 };
88093 
88094 struct rpl_iptunnel_encap {
88095 	struct ipv6_rpl_sr_hdr srh[0];
88096 };
88097 
88098 struct rpl_lwt {
88099 	struct dst_cache cache;
88100 	struct rpl_iptunnel_encap tuninfo;
88101 };
88102 
88103 enum {
88104 	IP6_FH_F_FRAG = 1,
88105 	IP6_FH_F_AUTH = 2,
88106 	IP6_FH_F_SKIP_RH = 4,
88107 };
88108 
88109 struct rds_info_counter {
88110 	__u8 name[32];
88111 	__u64 value;
88112 };
88113 
88114 struct rds_page_remainder {
88115 	struct page *r_page;
88116 	long unsigned int r_offset;
88117 };
88118 
88119 struct iw_thrspy {
88120 	struct sockaddr addr;
88121 	struct iw_quality qual;
88122 	struct iw_quality low;
88123 	struct iw_quality high;
88124 };
88125 
88126 struct cfmuxl {
88127 	struct cflayer layer;
88128 	struct list_head srvl_list;
88129 	struct list_head frml_list;
88130 	struct cflayer *up_cache[8];
88131 	struct cflayer *dn_cache[8];
88132 	spinlock_t transmit_lock;
88133 	spinlock_t receive_lock;
88134 };
88135 
88136 enum ifla_caif {
88137 	__IFLA_CAIF_UNSPEC = 0,
88138 	IFLA_CAIF_IPV4_CONNID = 1,
88139 	IFLA_CAIF_IPV6_CONNID = 2,
88140 	IFLA_CAIF_LOOPBACK = 3,
88141 	__IFLA_CAIF_MAX = 4,
88142 };
88143 
88144 enum caif_states___2 {
88145 	CAIF_CONNECTED___2 = 1,
88146 	CAIF_CONNECTING___2 = 2,
88147 	CAIF_DISCONNECTED___2 = 3,
88148 	CAIF_SHUTDOWN = 4,
88149 };
88150 
88151 struct chnl_net {
88152 	struct cflayer chnl;
88153 	struct caif_connect_request conn_req;
88154 	struct list_head list_field;
88155 	struct net_device *netdev;
88156 	char name[256];
88157 	wait_queue_head_t netmgmt_wq;
88158 	bool flowenabled;
88159 	enum caif_states___2 state;
88160 };
88161 
88162 enum dns_payload_content_type {
88163 	DNS_PAYLOAD_IS_SERVER_LIST = 0,
88164 };
88165 
88166 struct dns_payload_header {
88167 	__u8 zero;
88168 	__u8 content;
88169 	__u8 version;
88170 };
88171 
88172 enum {
88173 	dns_key_data = 0,
88174 	dns_key_error = 1,
88175 };
88176 
88177 struct xdp_umem_reg {
88178 	__u64 addr;
88179 	__u64 len;
88180 	__u32 chunk_size;
88181 	__u32 headroom;
88182 	__u32 flags;
88183 };
88184 
88185 struct group_data {
88186 	int limit[21];
88187 	int base[20];
88188 	int permute[258];
88189 	int minLen;
88190 	int maxLen;
88191 };
88192 
88193 struct bunzip_data {
88194 	int writeCopies;
88195 	int writePos;
88196 	int writeRunCountdown;
88197 	int writeCount;
88198 	int writeCurrent;
88199 	long int (*fill)(void *, long unsigned int);
88200 	long int inbufCount;
88201 	long int inbufPos;
88202 	unsigned char *inbuf;
88203 	unsigned int inbufBitCount;
88204 	unsigned int inbufBits;
88205 	unsigned int crc32Table[256];
88206 	unsigned int headerCRC;
88207 	unsigned int totalCRC;
88208 	unsigned int writeCRC;
88209 	unsigned int *dbuf;
88210 	unsigned int dbufSize;
88211 	unsigned char selectors[32768];
88212 	struct group_data groups[6];
88213 	int io_error;
88214 	int byteCount[256];
88215 	unsigned char symToByte[256];
88216 	unsigned char mtfSymbol[256];
88217 };
88218 
88219 struct fdt_errtabent {
88220 	const char *str;
88221 };
88222 
88223 struct ida_bitmap {
88224 	long unsigned int bitmap[16];
88225 };
88226 
88227 struct uevent_sock {
88228 	struct list_head list;
88229 	struct sock *sk;
88230 };
88231 
88232 typedef struct {
88233 	long unsigned int key[2];
88234 } hsiphash_key_t;
88235 
88236 typedef __u32 Elf32_Word;
88237 
88238 struct elf32_note {
88239 	Elf32_Word n_namesz;
88240 	Elf32_Word n_descsz;
88241 	Elf32_Word n_type;
88242 };
88243 
88244 struct acpi_table_mcfg {
88245 	struct acpi_table_header header;
88246 	u8 reserved[8];
88247 };
88248 
88249 struct acpi_mcfg_allocation {
88250 	u64 address;
88251 	u16 pci_segment;
88252 	u8 start_bus_number;
88253 	u8 end_bus_number;
88254 	u32 reserved;
88255 };
88256 
88257 struct sigcontext {
88258 	__u64 sc_pc;
88259 	__u64 sc_regs[32];
88260 	__u32 sc_flags;
88261 	__u64 sc_extcontext[0];
88262 };
88263 
88264 struct sctx_info {
88265 	__u32 magic;
88266 	__u32 size;
88267 	__u64 padding;
88268 };
88269 
88270 struct fpu_context {
88271 	__u64 regs[32];
88272 	__u64 fcc;
88273 	__u32 fcsr;
88274 };
88275 
88276 struct lsx_context {
88277 	__u64 regs[64];
88278 	__u64 fcc;
88279 	__u32 fcsr;
88280 };
88281 
88282 struct lasx_context {
88283 	__u64 regs[128];
88284 	__u64 fcc;
88285 	__u32 fcsr;
88286 };
88287 
88288 struct sigaltstack {
88289 	void *ss_sp;
88290 	int ss_flags;
88291 	__kernel_size_t ss_size;
88292 };
88293 
88294 typedef struct sigaltstack stack_t;
88295 
88296 struct ucontext {
88297 	long unsigned int uc_flags;
88298 	struct ucontext *uc_link;
88299 	stack_t uc_stack;
88300 	sigset_t uc_sigmask;
88301 	__u8 __unused[120];
88302 	long: 64;
88303 	struct sigcontext uc_mcontext;
88304 };
88305 
88306 struct rt_sigframe {
88307 	struct siginfo rs_info;
88308 	struct ucontext rs_uctx;
88309 };
88310 
88311 struct _ctx_layout {
88312 	struct sctx_info *addr;
88313 	unsigned int size;
88314 };
88315 
88316 struct extctx_layout {
88317 	long unsigned int size;
88318 	unsigned int flags;
88319 	struct _ctx_layout fpu;
88320 	struct _ctx_layout lsx;
88321 	struct _ctx_layout lasx;
88322 	struct _ctx_layout end;
88323 };
88324 
88325 struct efi_memory_map_data {
88326 	phys_addr_t phys_map;
88327 	long unsigned int size;
88328 	long unsigned int desc_version;
88329 	long unsigned int desc_size;
88330 	long unsigned int flags;
88331 };
88332 
88333 struct got_entry {
88334 	Elf64_Addr symbol_addr;
88335 };
88336 
88337 struct plt_idx_entry {
88338 	Elf64_Addr symbol_addr;
88339 };
88340 
88341 typedef int pcpu_fc_cpu_to_node_fn_t(int);
88342 
88343 typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int);
88344 
88345 struct numa_memblk {
88346 	u64 start;
88347 	u64 end;
88348 	int nid;
88349 };
88350 
88351 struct numa_meminfo {
88352 	int nr_blks;
88353 	struct numa_memblk blk[128];
88354 };
88355 
88356 enum invtlb_ops {
88357 	INVTLB_ALL = 0,
88358 	INVTLB_CURRENT_ALL = 1,
88359 	INVTLB_CURRENT_GTRUE = 2,
88360 	INVTLB_CURRENT_GFALSE = 3,
88361 	INVTLB_GFALSE_AND_ASID = 4,
88362 	INVTLB_ADDR_GFALSE_AND_ASID = 5,
88363 	INVTLB_ADDR_GTRUE_OR_ASID = 6,
88364 	INVGTLB_GID = 9,
88365 	INVGTLB_GID_GTRUE = 10,
88366 	INVGTLB_GID_GFALSE = 11,
88367 	INVGTLB_GID_GFALSE_ASID = 12,
88368 	INVGTLB_GID_GFALSE_ASID_ADDR = 13,
88369 	INVGTLB_GID_GTRUE_ASID_ADDR = 14,
88370 	INVGTLB_ALLGID_GVA_TO_GPA = 16,
88371 	INVTLB_ALLGID_GPA_TO_HPA = 17,
88372 	INVTLB_ALLGID = 18,
88373 	INVGTLB_GID_GVA_TO_GPA = 19,
88374 	INVTLB_GID_GPA_TO_HPA = 20,
88375 	INVTLB_GID_ALL = 21,
88376 	INVTLB_GID_ADDR = 22,
88377 };
88378 
88379 enum error_detector {
88380 	ERROR_DETECTOR_KFENCE = 0,
88381 	ERROR_DETECTOR_KASAN = 1,
88382 	ERROR_DETECTOR_WARN = 2,
88383 };
88384 
88385 struct warn_args {
88386 	const char *fmt;
88387 	va_list args;
88388 };
88389 
88390 struct waitid_info {
88391 	pid_t pid;
88392 	uid_t uid;
88393 	int status;
88394 	int cause;
88395 };
88396 
88397 struct wait_opts {
88398 	enum pid_type wo_type;
88399 	int wo_flags;
88400 	struct pid *wo_pid;
88401 	struct waitid_info *wo_info;
88402 	int wo_stat;
88403 	struct rusage *wo_rusage;
88404 	wait_queue_entry_t child_wait;
88405 	int notask_error;
88406 };
88407 
88408 enum siginfo_layout {
88409 	SIL_KILL = 0,
88410 	SIL_TIMER = 1,
88411 	SIL_POLL = 2,
88412 	SIL_FAULT = 3,
88413 	SIL_FAULT_TRAPNO = 4,
88414 	SIL_FAULT_MCEERR = 5,
88415 	SIL_FAULT_BNDERR = 6,
88416 	SIL_FAULT_PKUERR = 7,
88417 	SIL_FAULT_PERF_EVENT = 8,
88418 	SIL_CHLD = 9,
88419 	SIL_RT = 10,
88420 	SIL_SYS = 11,
88421 };
88422 
88423 enum {
88424 	TRACE_SIGNAL_DELIVERED = 0,
88425 	TRACE_SIGNAL_IGNORED = 1,
88426 	TRACE_SIGNAL_ALREADY_PENDING = 2,
88427 	TRACE_SIGNAL_OVERFLOW_FAIL = 3,
88428 	TRACE_SIGNAL_LOSE_INFO = 4,
88429 };
88430 
88431 struct trace_event_raw_signal_generate {
88432 	struct trace_entry ent;
88433 	int sig;
88434 	int errno;
88435 	int code;
88436 	char comm[16];
88437 	pid_t pid;
88438 	int group;
88439 	int result;
88440 	char __data[0];
88441 };
88442 
88443 struct trace_event_raw_signal_deliver {
88444 	struct trace_entry ent;
88445 	int sig;
88446 	int errno;
88447 	int code;
88448 	long unsigned int sa_handler;
88449 	long unsigned int sa_flags;
88450 	char __data[0];
88451 };
88452 
88453 struct trace_event_data_offsets_signal_generate {};
88454 
88455 struct trace_event_data_offsets_signal_deliver {};
88456 
88457 typedef void (*btf_trace_signal_generate)(void *, int, struct kernel_siginfo *, struct task_struct *, int, int);
88458 
88459 typedef void (*btf_trace_signal_deliver)(void *, int, struct kernel_siginfo *, struct k_sigaction *);
88460 
88461 enum sig_handler {
88462 	HANDLER_CURRENT = 0,
88463 	HANDLER_SIG_DFL = 1,
88464 	HANDLER_EXIT = 2,
88465 };
88466 
88467 enum {
88468 	KTW_FREEZABLE = 1,
88469 };
88470 
88471 struct kthread_create_info {
88472 	int (*threadfn)(void *);
88473 	void *data;
88474 	int node;
88475 	struct task_struct *result;
88476 	struct completion *done;
88477 	struct list_head list;
88478 };
88479 
88480 struct kthread {
88481 	long unsigned int flags;
88482 	unsigned int cpu;
88483 	int result;
88484 	int (*threadfn)(void *);
88485 	void *data;
88486 	struct completion parked;
88487 	struct completion exited;
88488 	struct cgroup_subsys_state *blkcg_css;
88489 	char *full_name;
88490 };
88491 
88492 enum KTHREAD_BITS {
88493 	KTHREAD_IS_PER_CPU = 0,
88494 	KTHREAD_SHOULD_STOP = 1,
88495 	KTHREAD_SHOULD_PARK = 2,
88496 };
88497 
88498 struct kthread_flush_work {
88499 	struct kthread_work work;
88500 	struct completion done;
88501 };
88502 
88503 enum what {
88504 	PROC_EVENT_NONE = 0,
88505 	PROC_EVENT_FORK = 1,
88506 	PROC_EVENT_EXEC = 2,
88507 	PROC_EVENT_UID = 4,
88508 	PROC_EVENT_GID = 64,
88509 	PROC_EVENT_SID = 128,
88510 	PROC_EVENT_PTRACE = 256,
88511 	PROC_EVENT_COMM = 512,
88512 	PROC_EVENT_COREDUMP = 1073741824,
88513 	PROC_EVENT_EXIT = 2147483648,
88514 };
88515 
88516 enum uclamp_id {
88517 	UCLAMP_MIN = 0,
88518 	UCLAMP_MAX = 1,
88519 	UCLAMP_CNT = 2,
88520 };
88521 
88522 struct numa_group {
88523 	refcount_t refcount;
88524 	spinlock_t lock;
88525 	int nr_tasks;
88526 	pid_t gid;
88527 	int active_nodes;
88528 	struct callback_head rcu;
88529 	long unsigned int total_faults;
88530 	long unsigned int max_faults_cpu;
88531 	long unsigned int faults[0];
88532 };
88533 
88534 enum sched_tunable_scaling {
88535 	SCHED_TUNABLESCALING_NONE = 0,
88536 	SCHED_TUNABLESCALING_LOG = 1,
88537 	SCHED_TUNABLESCALING_LINEAR = 2,
88538 	SCHED_TUNABLESCALING_END = 3,
88539 };
88540 
88541 enum numa_faults_stats {
88542 	NUMA_MEM = 0,
88543 	NUMA_CPU = 1,
88544 	NUMA_MEMBUF = 2,
88545 	NUMA_CPUBUF = 3,
88546 };
88547 
88548 enum numa_type {
88549 	node_has_spare = 0,
88550 	node_fully_busy = 1,
88551 	node_overloaded = 2,
88552 };
88553 
88554 struct numa_stats {
88555 	long unsigned int load;
88556 	long unsigned int runnable;
88557 	long unsigned int util;
88558 	long unsigned int compute_capacity;
88559 	unsigned int nr_running;
88560 	unsigned int weight;
88561 	enum numa_type node_type;
88562 	int idle_cpu;
88563 };
88564 
88565 struct task_numa_env {
88566 	struct task_struct *p;
88567 	int src_cpu;
88568 	int src_nid;
88569 	int dst_cpu;
88570 	int dst_nid;
88571 	int imb_numa_nr;
88572 	struct numa_stats src_stats;
88573 	struct numa_stats dst_stats;
88574 	int imbalance_pct;
88575 	int dist;
88576 	struct task_struct *best_task;
88577 	long int best_imp;
88578 	int best_cpu;
88579 };
88580 
88581 struct energy_env {
88582 	long unsigned int task_busy_time;
88583 	long unsigned int pd_busy_time;
88584 	long unsigned int cpu_cap;
88585 	long unsigned int pd_cap;
88586 };
88587 
88588 enum fbq_type {
88589 	regular = 0,
88590 	remote = 1,
88591 	all = 2,
88592 };
88593 
88594 enum group_type {
88595 	group_has_spare = 0,
88596 	group_fully_busy = 1,
88597 	group_misfit_task = 2,
88598 	group_asym_packing = 3,
88599 	group_imbalanced = 4,
88600 	group_overloaded = 5,
88601 };
88602 
88603 enum migration_type {
88604 	migrate_load = 0,
88605 	migrate_util = 1,
88606 	migrate_task = 2,
88607 	migrate_misfit = 3,
88608 };
88609 
88610 struct lb_env {
88611 	struct sched_domain *sd;
88612 	struct rq *src_rq;
88613 	int src_cpu;
88614 	int dst_cpu;
88615 	struct rq *dst_rq;
88616 	struct cpumask *dst_grpmask;
88617 	int new_dst_cpu;
88618 	enum cpu_idle_type idle;
88619 	long int imbalance;
88620 	struct cpumask *cpus;
88621 	unsigned int flags;
88622 	unsigned int loop;
88623 	unsigned int loop_break;
88624 	unsigned int loop_max;
88625 	enum fbq_type fbq_type;
88626 	enum migration_type migration_type;
88627 	struct list_head tasks;
88628 };
88629 
88630 struct sg_lb_stats {
88631 	long unsigned int avg_load;
88632 	long unsigned int group_load;
88633 	long unsigned int group_capacity;
88634 	long unsigned int group_util;
88635 	long unsigned int group_runnable;
88636 	unsigned int sum_nr_running;
88637 	unsigned int sum_h_nr_running;
88638 	unsigned int idle_cpus;
88639 	unsigned int group_weight;
88640 	enum group_type group_type;
88641 	unsigned int group_asym_packing;
88642 	long unsigned int group_misfit_task_load;
88643 	unsigned int nr_numa_running;
88644 	unsigned int nr_preferred_running;
88645 };
88646 
88647 struct sd_lb_stats {
88648 	struct sched_group *busiest;
88649 	struct sched_group *local;
88650 	long unsigned int total_load;
88651 	long unsigned int total_capacity;
88652 	long unsigned int avg_load;
88653 	unsigned int prefer_sibling;
88654 	struct sg_lb_stats busiest_stat;
88655 	struct sg_lb_stats local_stat;
88656 };
88657 
88658 enum rwsem_waiter_type {
88659 	RWSEM_WAITING_FOR_WRITE = 0,
88660 	RWSEM_WAITING_FOR_READ = 1,
88661 };
88662 
88663 struct rwsem_waiter {
88664 	struct list_head list;
88665 	struct task_struct *task;
88666 	enum rwsem_waiter_type type;
88667 	long unsigned int timeout;
88668 	bool handoff_set;
88669 };
88670 
88671 enum rwsem_wake_type {
88672 	RWSEM_WAKE_ANY = 0,
88673 	RWSEM_WAKE_READERS = 1,
88674 	RWSEM_WAKE_READ_OWNED = 2,
88675 };
88676 
88677 enum owner_state {
88678 	OWNER_NULL = 1,
88679 	OWNER_WRITER = 2,
88680 	OWNER_READER = 4,
88681 	OWNER_NONSPINNABLE = 8,
88682 };
88683 
88684 struct optimistic_spin_node {
88685 	struct optimistic_spin_node *next;
88686 	struct optimistic_spin_node *prev;
88687 	int locked;
88688 	int cpu;
88689 };
88690 
88691 struct pm_vt_switch {
88692 	struct list_head head;
88693 	struct device *dev;
88694 	bool required;
88695 };
88696 
88697 struct dev_printk_info;
88698 
88699 enum {
88700 	IRQC_IS_HARDIRQ = 0,
88701 	IRQC_IS_NESTED = 1,
88702 };
88703 
88704 struct irqchip_fwid {
88705 	struct fwnode_handle fwnode;
88706 	unsigned int type;
88707 	char *name;
88708 	phys_addr_t *pa;
88709 };
88710 
88711 struct msi_domain_template {
88712 	char name[48];
88713 	struct irq_chip chip;
88714 	struct msi_domain_ops ops;
88715 	struct msi_domain_info info;
88716 };
88717 
88718 struct msi_ctrl {
88719 	unsigned int domid;
88720 	unsigned int first;
88721 	unsigned int last;
88722 	unsigned int nirqs;
88723 };
88724 
88725 struct dma_map_ops {
88726 	unsigned int flags;
88727 	void * (*alloc)(struct device *, size_t, dma_addr_t *, gfp_t, long unsigned int);
88728 	void (*free)(struct device *, size_t, void *, dma_addr_t, long unsigned int);
88729 	struct page * (*alloc_pages)(struct device *, size_t, dma_addr_t *, enum dma_data_direction, gfp_t);
88730 	void (*free_pages)(struct device *, size_t, struct page *, dma_addr_t, enum dma_data_direction);
88731 	struct sg_table * (*alloc_noncontiguous)(struct device *, size_t, enum dma_data_direction, gfp_t, long unsigned int);
88732 	void (*free_noncontiguous)(struct device *, size_t, struct sg_table *, enum dma_data_direction);
88733 	int (*mmap)(struct device *, struct vm_area_struct *, void *, dma_addr_t, size_t, long unsigned int);
88734 	int (*get_sgtable)(struct device *, struct sg_table *, void *, dma_addr_t, size_t, long unsigned int);
88735 	dma_addr_t (*map_page)(struct device *, struct page *, long unsigned int, size_t, enum dma_data_direction, long unsigned int);
88736 	void (*unmap_page)(struct device *, dma_addr_t, size_t, enum dma_data_direction, long unsigned int);
88737 	int (*map_sg)(struct device *, struct scatterlist *, int, enum dma_data_direction, long unsigned int);
88738 	void (*unmap_sg)(struct device *, struct scatterlist *, int, enum dma_data_direction, long unsigned int);
88739 	dma_addr_t (*map_resource)(struct device *, phys_addr_t, size_t, enum dma_data_direction, long unsigned int);
88740 	void (*unmap_resource)(struct device *, dma_addr_t, size_t, enum dma_data_direction, long unsigned int);
88741 	void (*sync_single_for_cpu)(struct device *, dma_addr_t, size_t, enum dma_data_direction);
88742 	void (*sync_single_for_device)(struct device *, dma_addr_t, size_t, enum dma_data_direction);
88743 	void (*sync_sg_for_cpu)(struct device *, struct scatterlist *, int, enum dma_data_direction);
88744 	void (*sync_sg_for_device)(struct device *, struct scatterlist *, int, enum dma_data_direction);
88745 	void (*cache_sync)(struct device *, void *, size_t, enum dma_data_direction);
88746 	int (*dma_supported)(struct device *, u64);
88747 	u64 (*get_required_mask)(struct device *);
88748 	size_t (*max_mapping_size)(struct device *);
88749 	size_t (*opt_mapping_size)();
88750 	long unsigned int (*get_merge_boundary)(struct device *);
88751 };
88752 
88753 struct dma_sgt_handle {
88754 	struct sg_table sgt;
88755 	struct page **pages;
88756 };
88757 
88758 struct dma_devres {
88759 	size_t size;
88760 	void *vaddr;
88761 	dma_addr_t dma_handle;
88762 	long unsigned int attrs;
88763 };
88764 
88765 struct dma_coherent_mem {
88766 	void *virt_base;
88767 	dma_addr_t device_base;
88768 	long unsigned int pfn_base;
88769 	int size;
88770 	long unsigned int *bitmap;
88771 	spinlock_t spinlock;
88772 	bool use_dev_dma_pfn_offset;
88773 };
88774 
88775 struct trace_event_raw_sys_enter {
88776 	struct trace_entry ent;
88777 	long int id;
88778 	long unsigned int args[6];
88779 	char __data[0];
88780 };
88781 
88782 struct trace_event_raw_sys_exit {
88783 	struct trace_entry ent;
88784 	long int id;
88785 	long int ret;
88786 	char __data[0];
88787 };
88788 
88789 struct trace_event_data_offsets_sys_enter {};
88790 
88791 struct trace_event_data_offsets_sys_exit {};
88792 
88793 typedef void (*btf_trace_sys_enter)(void *, struct pt_regs *, long int);
88794 
88795 typedef void (*btf_trace_sys_exit)(void *, struct pt_regs *, long int);
88796 
88797 struct ktime_timestamps {
88798 	u64 mono;
88799 	u64 boot;
88800 	u64 real;
88801 };
88802 
88803 enum timekeeping_adv_mode {
88804 	TK_ADV_TICK = 0,
88805 	TK_ADV_FREQ = 1,
88806 };
88807 
88808 struct tk_fast {
88809 	seqcount_latch_t seq;
88810 	struct tk_read_base base[2];
88811 };
88812 
88813 struct class_interface {
88814 	struct list_head node;
88815 	struct class *class;
88816 	int (*add_dev)(struct device *, struct class_interface *);
88817 	void (*remove_dev)(struct device *, struct class_interface *);
88818 };
88819 
88820 struct trace_event_raw_alarmtimer_suspend {
88821 	struct trace_entry ent;
88822 	s64 expires;
88823 	unsigned char alarm_type;
88824 	char __data[0];
88825 };
88826 
88827 struct trace_event_raw_alarm_class {
88828 	struct trace_entry ent;
88829 	void *alarm;
88830 	unsigned char alarm_type;
88831 	s64 expires;
88832 	s64 now;
88833 	char __data[0];
88834 };
88835 
88836 struct trace_event_data_offsets_alarmtimer_suspend {};
88837 
88838 struct trace_event_data_offsets_alarm_class {};
88839 
88840 typedef void (*btf_trace_alarmtimer_suspend)(void *, ktime_t, int);
88841 
88842 typedef void (*btf_trace_alarmtimer_fired)(void *, struct alarm *, ktime_t);
88843 
88844 typedef void (*btf_trace_alarmtimer_start)(void *, struct alarm *, ktime_t);
88845 
88846 typedef void (*btf_trace_alarmtimer_cancel)(void *, struct alarm *, ktime_t);
88847 
88848 struct alarm_base {
88849 	spinlock_t lock;
88850 	struct timerqueue_head timerqueue;
88851 	ktime_t (*get_ktime)();
88852 	void (*get_timespec)(struct timespec64 *);
88853 	clockid_t base_clockid;
88854 };
88855 
88856 struct clock_read_data {
88857 	u64 epoch_ns;
88858 	u64 epoch_cyc;
88859 	u64 sched_clock_mask;
88860 	u64 (*read_sched_clock)();
88861 	u32 mult;
88862 	u32 shift;
88863 };
88864 
88865 struct clock_data {
88866 	seqcount_latch_t seq;
88867 	struct clock_read_data read_data[2];
88868 	ktime_t wrap_kt;
88869 	long unsigned int rate;
88870 	u64 (*actual_read_sched_clock)();
88871 };
88872 
88873 struct kallsym_iter {
88874 	loff_t pos;
88875 	loff_t pos_arch_end;
88876 	loff_t pos_mod_end;
88877 	loff_t pos_ftrace_mod_end;
88878 	loff_t pos_bpf_end;
88879 	long unsigned int value;
88880 	unsigned int nameoff;
88881 	char type;
88882 	char name[512];
88883 	char module_name[56];
88884 	int exported;
88885 	int show_value;
88886 };
88887 
88888 struct bpf_iter__ksym {
88889 	union {
88890 		struct bpf_iter_meta *meta;
88891 	};
88892 	union {
88893 		struct kallsym_iter *ksym;
88894 	};
88895 };
88896 
88897 struct btf_id_set8 {
88898 	u32 cnt;
88899 	u32 flags;
88900 	struct {
88901 		u32 id;
88902 		u32 flags;
88903 	} pairs[0];
88904 };
88905 
88906 struct btf_kfunc_id_set {
88907 	struct module *owner;
88908 	struct btf_id_set8 *set;
88909 };
88910 
88911 enum freezer_state_flags {
88912 	CGROUP_FREEZER_ONLINE = 1,
88913 	CGROUP_FREEZING_SELF = 2,
88914 	CGROUP_FREEZING_PARENT = 4,
88915 	CGROUP_FROZEN = 8,
88916 	CGROUP_FREEZING = 6,
88917 };
88918 
88919 struct freezer {
88920 	struct cgroup_subsys_state css;
88921 	unsigned int state;
88922 };
88923 
88924 struct root_domain;
88925 
88926 struct fmeter {
88927 	int cnt;
88928 	int val;
88929 	time64_t time;
88930 	spinlock_t lock;
88931 };
88932 
88933 enum prs_errcode {
88934 	PERR_NONE = 0,
88935 	PERR_INVCPUS = 1,
88936 	PERR_INVPARENT = 2,
88937 	PERR_NOTPART = 3,
88938 	PERR_NOTEXCL = 4,
88939 	PERR_NOCPUS = 5,
88940 	PERR_HOTPLUG = 6,
88941 	PERR_CPUSEMPTY = 7,
88942 };
88943 
88944 struct cpuset {
88945 	struct cgroup_subsys_state css;
88946 	long unsigned int flags;
88947 	cpumask_var_t cpus_allowed;
88948 	nodemask_t mems_allowed;
88949 	cpumask_var_t effective_cpus;
88950 	nodemask_t effective_mems;
88951 	cpumask_var_t subparts_cpus;
88952 	nodemask_t old_mems_allowed;
88953 	struct fmeter fmeter;
88954 	int attach_in_progress;
88955 	int pn;
88956 	int relax_domain_level;
88957 	int nr_subparts_cpus;
88958 	int partition_root_state;
88959 	int use_parent_ecpus;
88960 	int child_ecpus_count;
88961 	enum prs_errcode prs_err;
88962 	struct cgroup_file partition_file;
88963 };
88964 
88965 struct tmpmasks {
88966 	cpumask_var_t addmask;
88967 	cpumask_var_t delmask;
88968 	cpumask_var_t new_cpus;
88969 };
88970 
88971 typedef enum {
88972 	CS_ONLINE = 0,
88973 	CS_CPU_EXCLUSIVE = 1,
88974 	CS_MEM_EXCLUSIVE = 2,
88975 	CS_MEM_HARDWALL = 3,
88976 	CS_MEMORY_MIGRATE = 4,
88977 	CS_SCHED_LOAD_BALANCE = 5,
88978 	CS_SPREAD_PAGE = 6,
88979 	CS_SPREAD_SLAB = 7,
88980 } cpuset_flagbits_t;
88981 
88982 enum subparts_cmd {
88983 	partcmd_enable = 0,
88984 	partcmd_disable = 1,
88985 	partcmd_update = 2,
88986 	partcmd_invalidate = 3,
88987 };
88988 
88989 struct cpuset_migrate_mm_work {
88990 	struct work_struct work;
88991 	struct mm_struct *mm;
88992 	nodemask_t from;
88993 	nodemask_t to;
88994 };
88995 
88996 typedef enum {
88997 	FILE_MEMORY_MIGRATE = 0,
88998 	FILE_CPULIST = 1,
88999 	FILE_MEMLIST = 2,
89000 	FILE_EFFECTIVE_CPULIST = 3,
89001 	FILE_EFFECTIVE_MEMLIST = 4,
89002 	FILE_SUBPARTS_CPULIST = 5,
89003 	FILE_CPU_EXCLUSIVE = 6,
89004 	FILE_MEM_EXCLUSIVE = 7,
89005 	FILE_MEM_HARDWALL = 8,
89006 	FILE_SCHED_LOAD_BALANCE = 9,
89007 	FILE_PARTITION_ROOT = 10,
89008 	FILE_SCHED_RELAX_DOMAIN_LEVEL = 11,
89009 	FILE_MEMORY_PRESSURE_ENABLED = 12,
89010 	FILE_MEMORY_PRESSURE = 13,
89011 	FILE_SPREAD_PAGE = 14,
89012 	FILE_SPREAD_SLAB = 15,
89013 } cpuset_filetype_t;
89014 
89015 enum audit_nlgrps {
89016 	AUDIT_NLGRP_NONE = 0,
89017 	AUDIT_NLGRP_READLOG = 1,
89018 	__AUDIT_NLGRP_MAX = 2,
89019 };
89020 
89021 struct audit_status {
89022 	__u32 mask;
89023 	__u32 enabled;
89024 	__u32 failure;
89025 	__u32 pid;
89026 	__u32 rate_limit;
89027 	__u32 backlog_limit;
89028 	__u32 lost;
89029 	__u32 backlog;
89030 	union {
89031 		__u32 version;
89032 		__u32 feature_bitmap;
89033 	};
89034 	__u32 backlog_wait_time;
89035 	__u32 backlog_wait_time_actual;
89036 };
89037 
89038 struct audit_features {
89039 	__u32 vers;
89040 	__u32 mask;
89041 	__u32 features;
89042 	__u32 lock;
89043 };
89044 
89045 struct audit_tty_status {
89046 	__u32 enabled;
89047 	__u32 log_passwd;
89048 };
89049 
89050 struct audit_sig_info {
89051 	uid_t uid;
89052 	pid_t pid;
89053 	char ctx[0];
89054 };
89055 
89056 struct audit_net {
89057 	struct sock *sk;
89058 };
89059 
89060 struct auditd_connection {
89061 	struct pid *pid;
89062 	u32 portid;
89063 	struct net *net;
89064 	struct callback_head rcu;
89065 };
89066 
89067 struct audit_ctl_mutex {
89068 	struct mutex lock;
89069 	void *owner;
89070 };
89071 
89072 struct audit_buffer {
89073 	struct sk_buff *skb;
89074 	struct audit_context *ctx;
89075 	gfp_t gfp_mask;
89076 };
89077 
89078 struct audit_reply {
89079 	__u32 portid;
89080 	struct net *net;
89081 	struct sk_buff *skb;
89082 };
89083 
89084 struct kprobe_blacklist_entry {
89085 	struct list_head list;
89086 	long unsigned int start_addr;
89087 	long unsigned int end_addr;
89088 };
89089 
89090 struct kprobe_insn_page {
89091 	struct list_head list;
89092 	kprobe_opcode_t *insns;
89093 	struct kprobe_insn_cache *cache;
89094 	int nused;
89095 	int ngarbage;
89096 	char slot_used[0];
89097 };
89098 
89099 enum kprobe_slot_state {
89100 	SLOT_CLEAN = 0,
89101 	SLOT_DIRTY = 1,
89102 	SLOT_USED = 2,
89103 };
89104 
89105 enum {
89106 	TASKSTATS_TYPE_UNSPEC = 0,
89107 	TASKSTATS_TYPE_PID = 1,
89108 	TASKSTATS_TYPE_TGID = 2,
89109 	TASKSTATS_TYPE_STATS = 3,
89110 	TASKSTATS_TYPE_AGGR_PID = 4,
89111 	TASKSTATS_TYPE_AGGR_TGID = 5,
89112 	TASKSTATS_TYPE_NULL = 6,
89113 	__TASKSTATS_TYPE_MAX = 7,
89114 };
89115 
89116 enum {
89117 	TASKSTATS_CMD_ATTR_UNSPEC = 0,
89118 	TASKSTATS_CMD_ATTR_PID = 1,
89119 	TASKSTATS_CMD_ATTR_TGID = 2,
89120 	TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 3,
89121 	TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 4,
89122 	__TASKSTATS_CMD_ATTR_MAX = 5,
89123 };
89124 
89125 enum {
89126 	CGROUPSTATS_CMD_UNSPEC = 3,
89127 	CGROUPSTATS_CMD_GET = 4,
89128 	CGROUPSTATS_CMD_NEW = 5,
89129 	__CGROUPSTATS_CMD_MAX = 6,
89130 };
89131 
89132 enum {
89133 	CGROUPSTATS_TYPE_UNSPEC = 0,
89134 	CGROUPSTATS_TYPE_CGROUP_STATS = 1,
89135 	__CGROUPSTATS_TYPE_MAX = 2,
89136 };
89137 
89138 enum {
89139 	CGROUPSTATS_CMD_ATTR_UNSPEC = 0,
89140 	CGROUPSTATS_CMD_ATTR_FD = 1,
89141 	__CGROUPSTATS_CMD_ATTR_MAX = 2,
89142 };
89143 
89144 struct listener {
89145 	struct list_head list;
89146 	pid_t pid;
89147 	char valid;
89148 };
89149 
89150 struct listener_list {
89151 	struct rw_semaphore sem;
89152 	struct list_head list;
89153 };
89154 
89155 enum actions {
89156 	REGISTER = 0,
89157 	DEREGISTER = 1,
89158 	CPU_DONT_CARE = 2,
89159 };
89160 
89161 enum ring_buffer_type {
89162 	RINGBUF_TYPE_DATA_TYPE_LEN_MAX = 28,
89163 	RINGBUF_TYPE_PADDING = 29,
89164 	RINGBUF_TYPE_TIME_EXTEND = 30,
89165 	RINGBUF_TYPE_TIME_STAMP = 31,
89166 };
89167 
89168 enum ring_buffer_flags {
89169 	RB_FL_OVERWRITE = 1,
89170 };
89171 
89172 struct ring_buffer_per_cpu;
89173 
89174 struct buffer_page;
89175 
89176 struct ring_buffer_iter {
89177 	struct ring_buffer_per_cpu *cpu_buffer;
89178 	long unsigned int head;
89179 	long unsigned int next_event;
89180 	struct buffer_page *head_page;
89181 	struct buffer_page *cache_reader_page;
89182 	long unsigned int cache_read;
89183 	u64 read_stamp;
89184 	u64 page_stamp;
89185 	struct ring_buffer_event *event;
89186 	int missed_events;
89187 };
89188 
89189 struct rb_irq_work {
89190 	struct irq_work work;
89191 	wait_queue_head_t waiters;
89192 	wait_queue_head_t full_waiters;
89193 	long int wait_index;
89194 	bool waiters_pending;
89195 	bool full_waiters_pending;
89196 	bool wakeup_full;
89197 };
89198 
89199 struct trace_buffer {
89200 	unsigned int flags;
89201 	int cpus;
89202 	atomic_t record_disabled;
89203 	cpumask_var_t cpumask;
89204 	struct lock_class_key *reader_lock_key;
89205 	struct mutex mutex;
89206 	struct ring_buffer_per_cpu **buffers;
89207 	struct hlist_node node;
89208 	u64 (*clock)();
89209 	struct rb_irq_work irq_work;
89210 	bool time_stamp_abs;
89211 };
89212 
89213 enum {
89214 	RB_LEN_TIME_EXTEND = 8,
89215 	RB_LEN_TIME_STAMP = 8,
89216 };
89217 
89218 struct buffer_data_page {
89219 	u64 time_stamp;
89220 	local_t commit;
89221 	unsigned char data[0];
89222 };
89223 
89224 struct buffer_page {
89225 	struct list_head list;
89226 	local_t write;
89227 	unsigned int read;
89228 	local_t entries;
89229 	long unsigned int real_end;
89230 	struct buffer_data_page *page;
89231 };
89232 
89233 struct rb_event_info {
89234 	u64 ts;
89235 	u64 delta;
89236 	u64 before;
89237 	u64 after;
89238 	long unsigned int length;
89239 	struct buffer_page *tail_page;
89240 	int add_timestamp;
89241 };
89242 
89243 enum {
89244 	RB_ADD_STAMP_NONE = 0,
89245 	RB_ADD_STAMP_EXTEND = 2,
89246 	RB_ADD_STAMP_ABSOLUTE = 4,
89247 	RB_ADD_STAMP_FORCE = 8,
89248 };
89249 
89250 enum {
89251 	RB_CTX_TRANSITION = 0,
89252 	RB_CTX_NMI = 1,
89253 	RB_CTX_IRQ = 2,
89254 	RB_CTX_SOFTIRQ = 3,
89255 	RB_CTX_NORMAL = 4,
89256 	RB_CTX_MAX = 5,
89257 };
89258 
89259 struct rb_time_struct {
89260 	local64_t time;
89261 };
89262 
89263 typedef struct rb_time_struct rb_time_t;
89264 
89265 struct ring_buffer_per_cpu {
89266 	int cpu;
89267 	atomic_t record_disabled;
89268 	atomic_t resize_disabled;
89269 	struct trace_buffer *buffer;
89270 	raw_spinlock_t reader_lock;
89271 	arch_spinlock_t lock;
89272 	struct lock_class_key lock_key;
89273 	struct buffer_data_page *free_page;
89274 	long unsigned int nr_pages;
89275 	unsigned int current_context;
89276 	struct list_head *pages;
89277 	struct buffer_page *head_page;
89278 	struct buffer_page *tail_page;
89279 	struct buffer_page *commit_page;
89280 	struct buffer_page *reader_page;
89281 	long unsigned int lost_events;
89282 	long unsigned int last_overrun;
89283 	long unsigned int nest;
89284 	local_t entries_bytes;
89285 	local_t entries;
89286 	local_t overrun;
89287 	local_t commit_overrun;
89288 	local_t dropped_events;
89289 	local_t committing;
89290 	local_t commits;
89291 	local_t pages_touched;
89292 	local_t pages_lost;
89293 	local_t pages_read;
89294 	long int last_pages_touch;
89295 	size_t shortest_full;
89296 	long unsigned int read;
89297 	long unsigned int read_bytes;
89298 	rb_time_t write_stamp;
89299 	rb_time_t before_stamp;
89300 	u64 event_stamp[5];
89301 	u64 read_stamp;
89302 	long int nr_pages_to_update;
89303 	struct list_head new_pages;
89304 	struct work_struct update_pages_work;
89305 	struct completion update_done;
89306 	struct rb_irq_work irq_work;
89307 };
89308 
89309 struct trace_bprintk_fmt {
89310 	struct list_head list;
89311 	const char *fmt;
89312 };
89313 
89314 enum {
89315 	TRACE_NOP_OPT_ACCEPT = 1,
89316 	TRACE_NOP_OPT_REFUSE = 2,
89317 };
89318 
89319 struct module_string {
89320 	struct list_head next;
89321 	struct module *module;
89322 	char *str;
89323 };
89324 
89325 enum {
89326 	FORMAT_HEADER = 1,
89327 	FORMAT_FIELD_SEPERATOR = 2,
89328 	FORMAT_PRINTFMT = 3,
89329 };
89330 
89331 struct boot_triggers {
89332 	const char *event;
89333 	char *trigger;
89334 };
89335 
89336 struct event_probe_data {
89337 	struct trace_event_file *file;
89338 	long unsigned int count;
89339 	int ref;
89340 	bool enable;
89341 };
89342 
89343 struct filter_pred;
89344 
89345 struct prog_entry {
89346 	int target;
89347 	int when_to_branch;
89348 	struct filter_pred *pred;
89349 };
89350 
89351 struct regex;
89352 
89353 typedef int (*regex_match_func)(char *, struct regex *, int);
89354 
89355 struct regex {
89356 	char pattern[256];
89357 	int len;
89358 	int field_len;
89359 	regex_match_func match;
89360 };
89361 
89362 enum filter_op_ids {
89363 	OP_GLOB = 0,
89364 	OP_NE = 1,
89365 	OP_EQ = 2,
89366 	OP_LE = 3,
89367 	OP_LT = 4,
89368 	OP_GE = 5,
89369 	OP_GT = 6,
89370 	OP_BAND = 7,
89371 	OP_MAX = 8,
89372 };
89373 
89374 enum filter_pred_fn {
89375 	FILTER_PRED_FN_NOP = 0,
89376 	FILTER_PRED_FN_64 = 1,
89377 	FILTER_PRED_FN_S64 = 2,
89378 	FILTER_PRED_FN_U64 = 3,
89379 	FILTER_PRED_FN_32 = 4,
89380 	FILTER_PRED_FN_S32 = 5,
89381 	FILTER_PRED_FN_U32 = 6,
89382 	FILTER_PRED_FN_16 = 7,
89383 	FILTER_PRED_FN_S16 = 8,
89384 	FILTER_PRED_FN_U16 = 9,
89385 	FILTER_PRED_FN_8 = 10,
89386 	FILTER_PRED_FN_S8 = 11,
89387 	FILTER_PRED_FN_U8 = 12,
89388 	FILTER_PRED_FN_COMM = 13,
89389 	FILTER_PRED_FN_STRING = 14,
89390 	FILTER_PRED_FN_STRLOC = 15,
89391 	FILTER_PRED_FN_STRRELLOC = 16,
89392 	FILTER_PRED_FN_PCHAR_USER = 17,
89393 	FILTER_PRED_FN_PCHAR = 18,
89394 	FILTER_PRED_FN_CPU = 19,
89395 	FILTER_PRED_FN_ = 20,
89396 	FILTER_PRED_TEST_VISITED = 21,
89397 };
89398 
89399 struct filter_pred {
89400 	enum filter_pred_fn fn_num;
89401 	u64 val;
89402 	struct regex regex;
89403 	short unsigned int *ops;
89404 	struct ftrace_event_field *field;
89405 	int offset;
89406 	int not;
89407 	int op;
89408 };
89409 
89410 enum {
89411 	FILT_ERR_NONE = 0,
89412 	FILT_ERR_INVALID_OP = 1,
89413 	FILT_ERR_TOO_MANY_OPEN = 2,
89414 	FILT_ERR_TOO_MANY_CLOSE = 3,
89415 	FILT_ERR_MISSING_QUOTE = 4,
89416 	FILT_ERR_OPERAND_TOO_LONG = 5,
89417 	FILT_ERR_EXPECT_STRING = 6,
89418 	FILT_ERR_EXPECT_DIGIT = 7,
89419 	FILT_ERR_ILLEGAL_FIELD_OP = 8,
89420 	FILT_ERR_FIELD_NOT_FOUND = 9,
89421 	FILT_ERR_ILLEGAL_INTVAL = 10,
89422 	FILT_ERR_BAD_SUBSYS_FILTER = 11,
89423 	FILT_ERR_TOO_MANY_PREDS = 12,
89424 	FILT_ERR_INVALID_FILTER = 13,
89425 	FILT_ERR_IP_FIELD_ONLY = 14,
89426 	FILT_ERR_INVALID_VALUE = 15,
89427 	FILT_ERR_ERRNO = 16,
89428 	FILT_ERR_NO_FILTER = 17,
89429 };
89430 
89431 struct filter_parse_error {
89432 	int lasterr;
89433 	int lasterr_pos;
89434 };
89435 
89436 typedef int (*parse_pred_fn)(const char *, void *, int, struct filter_parse_error *, struct filter_pred **);
89437 
89438 enum {
89439 	INVERT = 1,
89440 	PROCESS_AND = 2,
89441 	PROCESS_OR = 4,
89442 };
89443 
89444 struct ustring_buffer {
89445 	char buffer[1024];
89446 };
89447 
89448 enum {
89449 	TOO_MANY_CLOSE = -1,
89450 	TOO_MANY_OPEN = -2,
89451 	MISSING_QUOTE = -3,
89452 };
89453 
89454 struct filter_list {
89455 	struct list_head list;
89456 	struct event_filter *filter;
89457 };
89458 
89459 struct function_filter_data {
89460 	struct ftrace_ops *ops;
89461 	int first_filter;
89462 	int first_notrace;
89463 };
89464 
89465 struct trace_event_raw_error_report_template {
89466 	struct trace_entry ent;
89467 	enum error_detector error_detector;
89468 	long unsigned int id;
89469 	char __data[0];
89470 };
89471 
89472 struct trace_event_data_offsets_error_report_template {};
89473 
89474 typedef void (*btf_trace_error_report_end)(void *, enum error_detector, long unsigned int);
89475 
89476 struct trace_event_raw_rpm_internal {
89477 	struct trace_entry ent;
89478 	u32 __data_loc_name;
89479 	int flags;
89480 	int usage_count;
89481 	int disable_depth;
89482 	int runtime_auto;
89483 	int request_pending;
89484 	int irq_safe;
89485 	int child_count;
89486 	char __data[0];
89487 };
89488 
89489 struct trace_event_raw_rpm_return_int {
89490 	struct trace_entry ent;
89491 	u32 __data_loc_name;
89492 	long unsigned int ip;
89493 	int ret;
89494 	char __data[0];
89495 };
89496 
89497 struct trace_event_data_offsets_rpm_internal {
89498 	u32 name;
89499 };
89500 
89501 struct trace_event_data_offsets_rpm_return_int {
89502 	u32 name;
89503 };
89504 
89505 typedef void (*btf_trace_rpm_suspend)(void *, struct device *, int);
89506 
89507 typedef void (*btf_trace_rpm_resume)(void *, struct device *, int);
89508 
89509 typedef void (*btf_trace_rpm_idle)(void *, struct device *, int);
89510 
89511 typedef void (*btf_trace_rpm_usage)(void *, struct device *, int);
89512 
89513 typedef void (*btf_trace_rpm_return_int)(void *, struct device *, long unsigned int, int);
89514 
89515 struct trace_probe_log {
89516 	const char *subsystem;
89517 	const char **argv;
89518 	int argc;
89519 	int index;
89520 };
89521 
89522 struct bpf_preload_info {
89523 	char link_name[16];
89524 	struct bpf_link *link;
89525 };
89526 
89527 struct bpf_preload_ops {
89528 	int (*preload)(struct bpf_preload_info *);
89529 	struct module *owner;
89530 };
89531 
89532 enum bpf_type {
89533 	BPF_TYPE_UNSPEC = 0,
89534 	BPF_TYPE_PROG = 1,
89535 	BPF_TYPE_MAP = 2,
89536 	BPF_TYPE_LINK = 3,
89537 };
89538 
89539 struct map_iter {
89540 	void *key;
89541 	bool done;
89542 };
89543 
89544 enum {
89545 	OPT_MODE = 0,
89546 };
89547 
89548 struct bpf_mount_opts {
89549 	umode_t mode;
89550 };
89551 
89552 struct bpf_spin_lock {
89553 	__u32 val;
89554 };
89555 
89556 struct bpf_timer {
89557 	long: 64;
89558 	long: 64;};
89559 
89560 struct bpf_dynptr {
89561 	long: 64;
89562 	long: 64;};
89563 
89564 struct bpf_list_head {
89565 	long: 64;
89566 	long: 64;};
89567 
89568 struct bpf_list_node {
89569 	long: 64;
89570 	long: 64;};
89571 
89572 struct bpf_pidns_info {
89573 	__u32 pid;
89574 	__u32 tgid;
89575 };
89576 
89577 struct btf_id_dtor_kfunc {
89578 	u32 btf_id;
89579 	u32 kfunc_btf_id;
89580 };
89581 
89582 struct bpf_dynptr_kern {
89583 	void *data;
89584 	u32 size;
89585 	u32 offset;
89586 };
89587 
89588 typedef u64 (*btf_bpf_map_lookup_elem)(struct bpf_map *, void *);
89589 
89590 typedef u64 (*btf_bpf_map_update_elem)(struct bpf_map *, void *, void *, u64);
89591 
89592 typedef u64 (*btf_bpf_map_delete_elem)(struct bpf_map *, void *);
89593 
89594 typedef u64 (*btf_bpf_map_push_elem)(struct bpf_map *, void *, u64);
89595 
89596 typedef u64 (*btf_bpf_map_pop_elem)(struct bpf_map *, void *);
89597 
89598 typedef u64 (*btf_bpf_map_peek_elem)(struct bpf_map *, void *);
89599 
89600 typedef u64 (*btf_bpf_map_lookup_percpu_elem)(struct bpf_map *, void *, u32);
89601 
89602 typedef u64 (*btf_bpf_get_smp_processor_id)();
89603 
89604 typedef u64 (*btf_bpf_get_numa_node_id)();
89605 
89606 typedef u64 (*btf_bpf_ktime_get_ns)();
89607 
89608 typedef u64 (*btf_bpf_ktime_get_boot_ns)();
89609 
89610 typedef u64 (*btf_bpf_ktime_get_coarse_ns)();
89611 
89612 typedef u64 (*btf_bpf_ktime_get_tai_ns)();
89613 
89614 typedef u64 (*btf_bpf_get_current_pid_tgid)();
89615 
89616 typedef u64 (*btf_bpf_get_current_uid_gid)();
89617 
89618 typedef u64 (*btf_bpf_get_current_comm)(char *, u32);
89619 
89620 typedef u64 (*btf_bpf_spin_lock)(struct bpf_spin_lock *);
89621 
89622 typedef u64 (*btf_bpf_spin_unlock)(struct bpf_spin_lock *);
89623 
89624 typedef u64 (*btf_bpf_jiffies64)();
89625 
89626 typedef u64 (*btf_bpf_get_current_cgroup_id)();
89627 
89628 typedef u64 (*btf_bpf_get_current_ancestor_cgroup_id)(int);
89629 
89630 typedef u64 (*btf_bpf_strtol)(const char *, size_t, u64, long int *);
89631 
89632 typedef u64 (*btf_bpf_strtoul)(const char *, size_t, u64, long unsigned int *);
89633 
89634 typedef u64 (*btf_bpf_strncmp)(const char *, u32, const char *);
89635 
89636 typedef u64 (*btf_bpf_get_ns_current_pid_tgid)(u64, u64, struct bpf_pidns_info *, u32);
89637 
89638 typedef u64 (*btf_bpf_event_output_data)(void *, struct bpf_map *, u64, void *, u64);
89639 
89640 typedef u64 (*btf_bpf_copy_from_user)(void *, u32, const void *);
89641 
89642 typedef u64 (*btf_bpf_copy_from_user_task)(void *, u32, const void *, struct task_struct *, u64);
89643 
89644 typedef u64 (*btf_bpf_per_cpu_ptr)(const void *, u32);
89645 
89646 typedef u64 (*btf_bpf_this_cpu_ptr)(const void *);
89647 
89648 struct bpf_bprintf_buffers {
89649 	char tmp_bufs[1536];
89650 };
89651 
89652 typedef u64 (*btf_bpf_snprintf)(char *, u32, char *, const void *, u32);
89653 
89654 struct bpf_hrtimer {
89655 	struct hrtimer timer;
89656 	struct bpf_map *map;
89657 	struct bpf_prog *prog;
89658 	void *callback_fn;
89659 	void *value;
89660 };
89661 
89662 struct bpf_timer_kern {
89663 	struct bpf_hrtimer *timer;
89664 	struct bpf_spin_lock lock;
89665 };
89666 
89667 typedef u64 (*btf_bpf_timer_init)(struct bpf_timer_kern *, struct bpf_map *, u64);
89668 
89669 typedef u64 (*btf_bpf_timer_set_callback)(struct bpf_timer_kern *, void *, struct bpf_prog_aux *);
89670 
89671 typedef u64 (*btf_bpf_timer_start)(struct bpf_timer_kern *, u64, u64);
89672 
89673 typedef u64 (*btf_bpf_timer_cancel)(struct bpf_timer_kern *);
89674 
89675 typedef u64 (*btf_bpf_kptr_xchg)(void *, void *);
89676 
89677 typedef u64 (*btf_bpf_dynptr_from_mem)(void *, u32, u64, struct bpf_dynptr_kern *);
89678 
89679 typedef u64 (*btf_bpf_dynptr_read)(void *, u32, const struct bpf_dynptr_kern *, u32, u64);
89680 
89681 typedef u64 (*btf_bpf_dynptr_write)(const struct bpf_dynptr_kern *, u32, void *, u32, u64);
89682 
89683 typedef u64 (*btf_bpf_dynptr_data)(const struct bpf_dynptr_kern *, u32, u32);
89684 
89685 struct bpf_iter_seq_link_info {
89686 	u32 link_id;
89687 };
89688 
89689 struct bpf_iter__bpf_link {
89690 	union {
89691 		struct bpf_iter_meta *meta;
89692 	};
89693 	union {
89694 		struct bpf_link *link;
89695 	};
89696 };
89697 
89698 enum bpf_lru_list_type {
89699 	BPF_LRU_LIST_T_ACTIVE = 0,
89700 	BPF_LRU_LIST_T_INACTIVE = 1,
89701 	BPF_LRU_LIST_T_FREE = 2,
89702 	BPF_LRU_LOCAL_LIST_T_FREE = 3,
89703 	BPF_LRU_LOCAL_LIST_T_PENDING = 4,
89704 };
89705 
89706 struct bpf_lru_node {
89707 	struct list_head list;
89708 	u16 cpu;
89709 	u8 type;
89710 	u8 ref;
89711 };
89712 
89713 struct bpf_lru_list {
89714 	struct list_head lists[3];
89715 	unsigned int counts[2];
89716 	struct list_head *next_inactive_rotation;
89717 	raw_spinlock_t lock;
89718 	long: 32;
89719 	long: 64;
89720 	long: 64;
89721 	long: 64;
89722 	long: 64;
89723 	long: 64;
89724 	long: 64;
89725 	long: 64;
89726 };
89727 
89728 struct bpf_lru_locallist {
89729 	struct list_head lists[2];
89730 	u16 next_steal;
89731 	raw_spinlock_t lock;
89732 };
89733 
89734 struct bpf_common_lru {
89735 	struct bpf_lru_list lru_list;
89736 	struct bpf_lru_locallist *local_list;
89737 	long: 64;
89738 	long: 64;
89739 	long: 64;
89740 	long: 64;
89741 	long: 64;
89742 	long: 64;
89743 	long: 64;
89744 };
89745 
89746 typedef bool (*del_from_htab_func)(void *, struct bpf_lru_node *);
89747 
89748 struct bpf_lru {
89749 	union {
89750 		struct bpf_common_lru common_lru;
89751 		struct bpf_lru_list *percpu_lru;
89752 	};
89753 	del_from_htab_func del_from_htab;
89754 	void *del_arg;
89755 	unsigned int hash_offset;
89756 	unsigned int nr_scans;
89757 	bool percpu;
89758 	long: 56;
89759 	long: 64;
89760 	long: 64;
89761 	long: 64;
89762 	long: 64;
89763 };
89764 
89765 struct bpf_cgroup_storage_map {
89766 	struct bpf_map map;
89767 	spinlock_t lock;
89768 	struct rb_root root;
89769 	struct list_head list;
89770 	long: 64;
89771 	long: 64;
89772 	long: 64;
89773 	long: 64;
89774 };
89775 
89776 enum {
89777 	BTF_VAR_STATIC = 0,
89778 	BTF_VAR_GLOBAL_ALLOCATED = 1,
89779 	BTF_VAR_GLOBAL_EXTERN = 2,
89780 };
89781 
89782 struct btf_var {
89783 	__u32 linkage;
89784 };
89785 
89786 struct btf_decl_tag {
89787 	__s32 component_idx;
89788 };
89789 
89790 struct xdp_md {
89791 	__u32 data;
89792 	__u32 data_end;
89793 	__u32 data_meta;
89794 	__u32 ingress_ifindex;
89795 	__u32 rx_queue_index;
89796 	__u32 egress_ifindex;
89797 };
89798 
89799 struct bpf_btf_info {
89800 	__u64 btf;
89801 	__u32 btf_size;
89802 	__u32 id;
89803 	__u64 name;
89804 	__u32 name_len;
89805 	__u32 kernel_btf;
89806 };
89807 
89808 struct bpf_cgroup_dev_ctx {
89809 	__u32 access_type;
89810 	__u32 major;
89811 	__u32 minor;
89812 };
89813 
89814 struct bpf_raw_tracepoint_args {
89815 	__u64 args[0];
89816 };
89817 
89818 struct bpf_sysctl {
89819 	__u32 write;
89820 	__u32 file_pos;
89821 };
89822 
89823 struct bpf_sockopt {
89824 	union {
89825 		struct bpf_sock *sk;
89826 	};
89827 	union {
89828 		void *optval;
89829 	};
89830 	union {
89831 		void *optval_end;
89832 	};
89833 	__s32 level;
89834 	__s32 optname;
89835 	__s32 optlen;
89836 	__s32 retval;
89837 };
89838 
89839 enum {
89840 	BTF_F_COMPACT = 1,
89841 	BTF_F_NONAME = 2,
89842 	BTF_F_PTR_RAW = 4,
89843 	BTF_F_ZERO = 8,
89844 };
89845 
89846 struct bpf_perf_event_data {
89847 	bpf_user_pt_regs_t regs;
89848 	__u64 sample_period;
89849 	__u64 addr;
89850 };
89851 
89852 struct btf_struct_metas {
89853 	u32 cnt;
89854 	struct btf_struct_meta types[0];
89855 };
89856 
89857 struct bpf_sysctl_kern {
89858 	struct ctl_table_header *head;
89859 	struct ctl_table *table;
89860 	void *cur_val;
89861 	size_t cur_len;
89862 	void *new_val;
89863 	size_t new_len;
89864 	int new_updated;
89865 	int write;
89866 	loff_t *ppos;
89867 	u64 tmp_reg;
89868 };
89869 
89870 struct bpf_sockopt_kern {
89871 	struct sock *sk;
89872 	u8 *optval;
89873 	u8 *optval_end;
89874 	s32 level;
89875 	s32 optname;
89876 	s32 optlen;
89877 	struct task_struct *current_task;
89878 	u64 tmp_reg;
89879 };
89880 
89881 enum btf_kfunc_hook {
89882 	BTF_KFUNC_HOOK_COMMON = 0,
89883 	BTF_KFUNC_HOOK_XDP = 1,
89884 	BTF_KFUNC_HOOK_TC = 2,
89885 	BTF_KFUNC_HOOK_STRUCT_OPS = 3,
89886 	BTF_KFUNC_HOOK_TRACING = 4,
89887 	BTF_KFUNC_HOOK_SYSCALL = 5,
89888 	BTF_KFUNC_HOOK_FMODRET = 6,
89889 	BTF_KFUNC_HOOK_MAX = 7,
89890 };
89891 
89892 enum {
89893 	BTF_KFUNC_SET_MAX_CNT = 256,
89894 	BTF_DTOR_KFUNC_MAX_CNT = 256,
89895 };
89896 
89897 struct btf_kfunc_set_tab {
89898 	struct btf_id_set8 *sets[7];
89899 };
89900 
89901 struct btf_id_dtor_kfunc_tab {
89902 	u32 cnt;
89903 	struct btf_id_dtor_kfunc dtors[0];
89904 };
89905 
89906 enum verifier_phase {
89907 	CHECK_META = 0,
89908 	CHECK_TYPE = 1,
89909 };
89910 
89911 struct resolve_vertex {
89912 	const struct btf_type *t;
89913 	u32 type_id;
89914 	u16 next_member;
89915 };
89916 
89917 enum visit_state {
89918 	NOT_VISITED = 0,
89919 	VISITED = 1,
89920 	RESOLVED = 2,
89921 };
89922 
89923 enum resolve_mode {
89924 	RESOLVE_TBD = 0,
89925 	RESOLVE_PTR = 1,
89926 	RESOLVE_STRUCT_OR_ARRAY = 2,
89927 };
89928 
89929 struct btf_sec_info {
89930 	u32 off;
89931 	u32 len;
89932 };
89933 
89934 struct btf_verifier_env {
89935 	struct btf *btf;
89936 	u8 *visit_states;
89937 	struct resolve_vertex stack[32];
89938 	struct bpf_verifier_log log;
89939 	u32 log_type_id;
89940 	u32 top_stack;
89941 	enum verifier_phase phase;
89942 	enum resolve_mode resolve_mode;
89943 };
89944 
89945 struct btf_show {
89946 	u64 flags;
89947 	void *target;
89948 	void (*showfn)(struct btf_show *, const char *, va_list);
89949 	const struct btf *btf;
89950 	struct {
89951 		u8 depth;
89952 		u8 depth_to_show;
89953 		u8 depth_check;
89954 		u8 array_member: 1;
89955 		u8 array_terminated: 1;
89956 		u16 array_encoding;
89957 		u32 type_id;
89958 		int status;
89959 		const struct btf_type *type;
89960 		const struct btf_member *member;
89961 		char name[80];
89962 	} state;
89963 	struct {
89964 		u32 size;
89965 		void *head;
89966 		void *data;
89967 		u8 safe[32];
89968 	} obj;
89969 };
89970 
89971 struct btf_kind_operations {
89972 	s32 (*check_meta)(struct btf_verifier_env *, const struct btf_type *, u32);
89973 	int (*resolve)(struct btf_verifier_env *, const struct resolve_vertex *);
89974 	int (*check_member)(struct btf_verifier_env *, const struct btf_type *, const struct btf_member *, const struct btf_type *);
89975 	int (*check_kflag_member)(struct btf_verifier_env *, const struct btf_type *, const struct btf_member *, const struct btf_type *);
89976 	void (*log_details)(struct btf_verifier_env *, const struct btf_type *);
89977 	void (*show)(const struct btf *, const struct btf_type *, u32, void *, u8, struct btf_show *);
89978 };
89979 
89980 enum {
89981 	BTF_FIELD_IGNORE = 0,
89982 	BTF_FIELD_FOUND = 1,
89983 };
89984 
89985 struct btf_field_info {
89986 	enum btf_field_type type;
89987 	u32 off;
89988 	union {
89989 		struct {
89990 			u32 type_id;
89991 		} kptr;
89992 		struct {
89993 			const char *node_name;
89994 			u32 value_btf_id;
89995 		} list_head;
89996 	};
89997 };
89998 
89999 struct bpf_ctx_convert {
90000 	struct __sk_buff BPF_PROG_TYPE_SOCKET_FILTER_prog;
90001 	struct sk_buff BPF_PROG_TYPE_SOCKET_FILTER_kern;
90002 	struct __sk_buff BPF_PROG_TYPE_SCHED_CLS_prog;
90003 	struct sk_buff BPF_PROG_TYPE_SCHED_CLS_kern;
90004 	struct __sk_buff BPF_PROG_TYPE_SCHED_ACT_prog;
90005 	struct sk_buff BPF_PROG_TYPE_SCHED_ACT_kern;
90006 	struct xdp_md BPF_PROG_TYPE_XDP_prog;
90007 	struct xdp_buff BPF_PROG_TYPE_XDP_kern;
90008 	struct __sk_buff BPF_PROG_TYPE_CGROUP_SKB_prog;
90009 	struct sk_buff BPF_PROG_TYPE_CGROUP_SKB_kern;
90010 	struct bpf_sock BPF_PROG_TYPE_CGROUP_SOCK_prog;
90011 	struct sock BPF_PROG_TYPE_CGROUP_SOCK_kern;
90012 	struct bpf_sock_addr BPF_PROG_TYPE_CGROUP_SOCK_ADDR_prog;
90013 	struct bpf_sock_addr_kern BPF_PROG_TYPE_CGROUP_SOCK_ADDR_kern;
90014 	struct __sk_buff BPF_PROG_TYPE_LWT_IN_prog;
90015 	struct sk_buff BPF_PROG_TYPE_LWT_IN_kern;
90016 	struct __sk_buff BPF_PROG_TYPE_LWT_OUT_prog;
90017 	struct sk_buff BPF_PROG_TYPE_LWT_OUT_kern;
90018 	struct __sk_buff BPF_PROG_TYPE_LWT_XMIT_prog;
90019 	struct sk_buff BPF_PROG_TYPE_LWT_XMIT_kern;
90020 	struct __sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_prog;
90021 	struct sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_kern;
90022 	struct bpf_sock_ops BPF_PROG_TYPE_SOCK_OPS_prog;
90023 	struct bpf_sock_ops_kern BPF_PROG_TYPE_SOCK_OPS_kern;
90024 	struct __sk_buff BPF_PROG_TYPE_SK_SKB_prog;
90025 	struct sk_buff BPF_PROG_TYPE_SK_SKB_kern;
90026 	struct sk_msg_md BPF_PROG_TYPE_SK_MSG_prog;
90027 	struct sk_msg BPF_PROG_TYPE_SK_MSG_kern;
90028 	struct __sk_buff BPF_PROG_TYPE_FLOW_DISSECTOR_prog;
90029 	struct bpf_flow_dissector BPF_PROG_TYPE_FLOW_DISSECTOR_kern;
90030 	bpf_user_pt_regs_t BPF_PROG_TYPE_KPROBE_prog;
90031 	struct pt_regs BPF_PROG_TYPE_KPROBE_kern;
90032 	__u64 BPF_PROG_TYPE_TRACEPOINT_prog;
90033 	u64 BPF_PROG_TYPE_TRACEPOINT_kern;
90034 	struct bpf_perf_event_data BPF_PROG_TYPE_PERF_EVENT_prog;
90035 	struct bpf_perf_event_data_kern BPF_PROG_TYPE_PERF_EVENT_kern;
90036 	struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_prog;
90037 	u64 BPF_PROG_TYPE_RAW_TRACEPOINT_kern;
90038 	struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_prog;
90039 	u64 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_kern;
90040 	void *BPF_PROG_TYPE_TRACING_prog;
90041 	void *BPF_PROG_TYPE_TRACING_kern;
90042 	struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_prog;
90043 	struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_kern;
90044 	struct bpf_sysctl BPF_PROG_TYPE_CGROUP_SYSCTL_prog;
90045 	struct bpf_sysctl_kern BPF_PROG_TYPE_CGROUP_SYSCTL_kern;
90046 	struct bpf_sockopt BPF_PROG_TYPE_CGROUP_SOCKOPT_prog;
90047 	struct bpf_sockopt_kern BPF_PROG_TYPE_CGROUP_SOCKOPT_kern;
90048 	struct sk_reuseport_md BPF_PROG_TYPE_SK_REUSEPORT_prog;
90049 	struct sk_reuseport_kern BPF_PROG_TYPE_SK_REUSEPORT_kern;
90050 	struct bpf_sk_lookup BPF_PROG_TYPE_SK_LOOKUP_prog;
90051 	struct bpf_sk_lookup_kern BPF_PROG_TYPE_SK_LOOKUP_kern;
90052 	void *BPF_PROG_TYPE_STRUCT_OPS_prog;
90053 	void *BPF_PROG_TYPE_STRUCT_OPS_kern;
90054 	void *BPF_PROG_TYPE_EXT_prog;
90055 	void *BPF_PROG_TYPE_EXT_kern;
90056 	void *BPF_PROG_TYPE_SYSCALL_prog;
90057 	void *BPF_PROG_TYPE_SYSCALL_kern;
90058 };
90059 
90060 enum {
90061 	__ctx_convertBPF_PROG_TYPE_SOCKET_FILTER = 0,
90062 	__ctx_convertBPF_PROG_TYPE_SCHED_CLS = 1,
90063 	__ctx_convertBPF_PROG_TYPE_SCHED_ACT = 2,
90064 	__ctx_convertBPF_PROG_TYPE_XDP = 3,
90065 	__ctx_convertBPF_PROG_TYPE_CGROUP_SKB = 4,
90066 	__ctx_convertBPF_PROG_TYPE_CGROUP_SOCK = 5,
90067 	__ctx_convertBPF_PROG_TYPE_CGROUP_SOCK_ADDR = 6,
90068 	__ctx_convertBPF_PROG_TYPE_LWT_IN = 7,
90069 	__ctx_convertBPF_PROG_TYPE_LWT_OUT = 8,
90070 	__ctx_convertBPF_PROG_TYPE_LWT_XMIT = 9,
90071 	__ctx_convertBPF_PROG_TYPE_LWT_SEG6LOCAL = 10,
90072 	__ctx_convertBPF_PROG_TYPE_SOCK_OPS = 11,
90073 	__ctx_convertBPF_PROG_TYPE_SK_SKB = 12,
90074 	__ctx_convertBPF_PROG_TYPE_SK_MSG = 13,
90075 	__ctx_convertBPF_PROG_TYPE_FLOW_DISSECTOR = 14,
90076 	__ctx_convertBPF_PROG_TYPE_KPROBE = 15,
90077 	__ctx_convertBPF_PROG_TYPE_TRACEPOINT = 16,
90078 	__ctx_convertBPF_PROG_TYPE_PERF_EVENT = 17,
90079 	__ctx_convertBPF_PROG_TYPE_RAW_TRACEPOINT = 18,
90080 	__ctx_convertBPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 19,
90081 	__ctx_convertBPF_PROG_TYPE_TRACING = 20,
90082 	__ctx_convertBPF_PROG_TYPE_CGROUP_DEVICE = 21,
90083 	__ctx_convertBPF_PROG_TYPE_CGROUP_SYSCTL = 22,
90084 	__ctx_convertBPF_PROG_TYPE_CGROUP_SOCKOPT = 23,
90085 	__ctx_convertBPF_PROG_TYPE_SK_REUSEPORT = 24,
90086 	__ctx_convertBPF_PROG_TYPE_SK_LOOKUP = 25,
90087 	__ctx_convertBPF_PROG_TYPE_STRUCT_OPS = 26,
90088 	__ctx_convertBPF_PROG_TYPE_EXT = 27,
90089 	__ctx_convertBPF_PROG_TYPE_SYSCALL = 28,
90090 	__ctx_convert_unused = 29,
90091 };
90092 
90093 enum bpf_struct_walk_result {
90094 	WALK_SCALAR = 0,
90095 	WALK_PTR = 1,
90096 	WALK_STRUCT = 2,
90097 };
90098 
90099 struct btf_show_snprintf {
90100 	struct btf_show show;
90101 	int len_left;
90102 	int len;
90103 };
90104 
90105 enum {
90106 	BTF_MODULE_F_LIVE = 1,
90107 };
90108 
90109 struct btf_module {
90110 	struct list_head list;
90111 	struct module *module;
90112 	struct btf *btf;
90113 	struct bin_attribute *sysfs_attr;
90114 	int flags;
90115 };
90116 
90117 typedef u64 (*btf_bpf_btf_find_by_name_kind)(char *, int, u32, int);
90118 
90119 struct bpf_cand_cache {
90120 	const char *name;
90121 	u32 name_len;
90122 	u16 kind;
90123 	u16 cnt;
90124 	struct {
90125 		const struct btf *btf;
90126 		u32 id;
90127 	} cands[0];
90128 };
90129 
90130 struct bpf_netns_link {
90131 	struct bpf_link link;
90132 	enum bpf_attach_type type;
90133 	enum netns_bpf_attach_type netns_type;
90134 	struct net *net;
90135 	struct list_head node;
90136 };
90137 
90138 struct reuseport_array {
90139 	struct bpf_map map;
90140 	struct sock *ptrs[0];
90141 };
90142 
90143 enum perf_event_task_context {
90144 	perf_invalid_context = -1,
90145 	perf_hw_context = 0,
90146 	perf_sw_context = 1,
90147 	perf_nr_task_contexts = 2,
90148 };
90149 
90150 enum perf_branch_sample_type {
90151 	PERF_SAMPLE_BRANCH_USER = 1,
90152 	PERF_SAMPLE_BRANCH_KERNEL = 2,
90153 	PERF_SAMPLE_BRANCH_HV = 4,
90154 	PERF_SAMPLE_BRANCH_ANY = 8,
90155 	PERF_SAMPLE_BRANCH_ANY_CALL = 16,
90156 	PERF_SAMPLE_BRANCH_ANY_RETURN = 32,
90157 	PERF_SAMPLE_BRANCH_IND_CALL = 64,
90158 	PERF_SAMPLE_BRANCH_ABORT_TX = 128,
90159 	PERF_SAMPLE_BRANCH_IN_TX = 256,
90160 	PERF_SAMPLE_BRANCH_NO_TX = 512,
90161 	PERF_SAMPLE_BRANCH_COND = 1024,
90162 	PERF_SAMPLE_BRANCH_CALL_STACK = 2048,
90163 	PERF_SAMPLE_BRANCH_IND_JUMP = 4096,
90164 	PERF_SAMPLE_BRANCH_CALL = 8192,
90165 	PERF_SAMPLE_BRANCH_NO_FLAGS = 16384,
90166 	PERF_SAMPLE_BRANCH_NO_CYCLES = 32768,
90167 	PERF_SAMPLE_BRANCH_TYPE_SAVE = 65536,
90168 	PERF_SAMPLE_BRANCH_HW_INDEX = 131072,
90169 	PERF_SAMPLE_BRANCH_PRIV_SAVE = 262144,
90170 	PERF_SAMPLE_BRANCH_MAX = 524288,
90171 };
90172 
90173 enum perf_sample_regs_abi {
90174 	PERF_SAMPLE_REGS_ABI_NONE = 0,
90175 	PERF_SAMPLE_REGS_ABI_32 = 1,
90176 	PERF_SAMPLE_REGS_ABI_64 = 2,
90177 };
90178 
90179 enum perf_event_read_format {
90180 	PERF_FORMAT_TOTAL_TIME_ENABLED = 1,
90181 	PERF_FORMAT_TOTAL_TIME_RUNNING = 2,
90182 	PERF_FORMAT_ID = 4,
90183 	PERF_FORMAT_GROUP = 8,
90184 	PERF_FORMAT_LOST = 16,
90185 	PERF_FORMAT_MAX = 32,
90186 };
90187 
90188 enum perf_event_ioc_flags {
90189 	PERF_IOC_FLAG_GROUP = 1,
90190 };
90191 
90192 struct perf_event_mmap_page {
90193 	__u32 version;
90194 	__u32 compat_version;
90195 	__u32 lock;
90196 	__u32 index;
90197 	__s64 offset;
90198 	__u64 time_enabled;
90199 	__u64 time_running;
90200 	union {
90201 		__u64 capabilities;
90202 		struct {
90203 			__u64 cap_bit0: 1;
90204 			__u64 cap_bit0_is_deprecated: 1;
90205 			__u64 cap_user_rdpmc: 1;
90206 			__u64 cap_user_time: 1;
90207 			__u64 cap_user_time_zero: 1;
90208 			__u64 cap_user_time_short: 1;
90209 			__u64 cap_____res: 58;
90210 		};
90211 	};
90212 	__u16 pmc_width;
90213 	__u16 time_shift;
90214 	__u32 time_mult;
90215 	__u64 time_offset;
90216 	__u64 time_zero;
90217 	__u32 size;
90218 	__u32 __reserved_1;
90219 	__u64 time_cycles;
90220 	__u64 time_mask;
90221 	__u8 __reserved[928];
90222 	__u64 data_head;
90223 	__u64 data_tail;
90224 	__u64 data_offset;
90225 	__u64 data_size;
90226 	__u64 aux_head;
90227 	__u64 aux_tail;
90228 	__u64 aux_offset;
90229 	__u64 aux_size;
90230 };
90231 
90232 struct perf_event_header {
90233 	__u32 type;
90234 	__u16 misc;
90235 	__u16 size;
90236 };
90237 
90238 struct perf_ns_link_info {
90239 	__u64 dev;
90240 	__u64 ino;
90241 };
90242 
90243 enum {
90244 	NET_NS_INDEX = 0,
90245 	UTS_NS_INDEX = 1,
90246 	IPC_NS_INDEX = 2,
90247 	PID_NS_INDEX = 3,
90248 	USER_NS_INDEX = 4,
90249 	MNT_NS_INDEX = 5,
90250 	CGROUP_NS_INDEX = 6,
90251 	NR_NAMESPACES = 7,
90252 };
90253 
90254 enum perf_event_type {
90255 	PERF_RECORD_MMAP = 1,
90256 	PERF_RECORD_LOST = 2,
90257 	PERF_RECORD_COMM = 3,
90258 	PERF_RECORD_EXIT = 4,
90259 	PERF_RECORD_THROTTLE = 5,
90260 	PERF_RECORD_UNTHROTTLE = 6,
90261 	PERF_RECORD_FORK = 7,
90262 	PERF_RECORD_READ = 8,
90263 	PERF_RECORD_SAMPLE = 9,
90264 	PERF_RECORD_MMAP2 = 10,
90265 	PERF_RECORD_AUX = 11,
90266 	PERF_RECORD_ITRACE_START = 12,
90267 	PERF_RECORD_LOST_SAMPLES = 13,
90268 	PERF_RECORD_SWITCH = 14,
90269 	PERF_RECORD_SWITCH_CPU_WIDE = 15,
90270 	PERF_RECORD_NAMESPACES = 16,
90271 	PERF_RECORD_KSYMBOL = 17,
90272 	PERF_RECORD_BPF_EVENT = 18,
90273 	PERF_RECORD_CGROUP = 19,
90274 	PERF_RECORD_TEXT_POKE = 20,
90275 	PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
90276 	PERF_RECORD_MAX = 22,
90277 };
90278 
90279 enum perf_bpf_event_type {
90280 	PERF_BPF_EVENT_UNKNOWN = 0,
90281 	PERF_BPF_EVENT_PROG_LOAD = 1,
90282 	PERF_BPF_EVENT_PROG_UNLOAD = 2,
90283 	PERF_BPF_EVENT_MAX = 3,
90284 };
90285 
90286 enum perf_addr_filter_action_t {
90287 	PERF_ADDR_FILTER_ACTION_STOP = 0,
90288 	PERF_ADDR_FILTER_ACTION_START = 1,
90289 	PERF_ADDR_FILTER_ACTION_FILTER = 2,
90290 };
90291 
90292 struct perf_addr_filter {
90293 	struct list_head entry;
90294 	struct path path;
90295 	long unsigned int offset;
90296 	long unsigned int size;
90297 	enum perf_addr_filter_action_t action;
90298 };
90299 
90300 struct swevent_hlist {
90301 	struct hlist_head heads[256];
90302 	struct callback_head callback_head;
90303 };
90304 
90305 struct pmu_event_list {
90306 	raw_spinlock_t lock;
90307 	struct list_head list;
90308 };
90309 
90310 struct perf_buffer {
90311 	refcount_t refcount;
90312 	struct callback_head callback_head;
90313 	struct work_struct work;
90314 	int page_order;
90315 	int nr_pages;
90316 	int overwrite;
90317 	int paused;
90318 	atomic_t poll;
90319 	local_t head;
90320 	unsigned int nest;
90321 	local_t events;
90322 	local_t wakeup;
90323 	local_t lost;
90324 	long int watermark;
90325 	long int aux_watermark;
90326 	spinlock_t event_lock;
90327 	struct list_head event_list;
90328 	atomic_t mmap_count;
90329 	long unsigned int mmap_locked;
90330 	struct user_struct *mmap_user;
90331 	long int aux_head;
90332 	unsigned int aux_nest;
90333 	long int aux_wakeup;
90334 	long unsigned int aux_pgoff;
90335 	int aux_nr_pages;
90336 	int aux_overwrite;
90337 	atomic_t aux_mmap_count;
90338 	long unsigned int aux_mmap_locked;
90339 	void (*free_aux)(void *);
90340 	refcount_t aux_refcount;
90341 	int aux_in_sampling;
90342 	void **aux_pages;
90343 	void *aux_priv;
90344 	struct perf_event_mmap_page *user_page;
90345 	void *data_pages[0];
90346 };
90347 
90348 struct perf_cpu_context {
90349 	struct perf_event_context ctx;
90350 	struct perf_event_context *task_ctx;
90351 	int online;
90352 	struct perf_cgroup *cgrp;
90353 	int heap_size;
90354 	struct perf_event **heap;
90355 	struct perf_event *heap_default[2];
90356 };
90357 
90358 struct perf_pmu_events_attr {
90359 	struct device_attribute attr;
90360 	u64 id;
90361 	const char *event_str;
90362 };
90363 
90364 struct min_heap {
90365 	void *data;
90366 	int nr;
90367 	int size;
90368 };
90369 
90370 struct min_heap_callbacks {
90371 	int elem_size;
90372 	bool (*less)(const void *, const void *);
90373 	void (*swp)(void *, void *);
90374 };
90375 
90376 typedef int (*remote_function_f)(void *);
90377 
90378 struct remote_function_call {
90379 	struct task_struct *p;
90380 	remote_function_f func;
90381 	void *info;
90382 	int ret;
90383 };
90384 
90385 typedef void (*event_f)(struct perf_event *, struct perf_cpu_context *, struct perf_event_context *, void *);
90386 
90387 struct event_function_struct {
90388 	struct perf_event *event;
90389 	event_f func;
90390 	void *data;
90391 };
90392 
90393 enum event_type_t {
90394 	EVENT_FLEXIBLE = 1,
90395 	EVENT_PINNED = 2,
90396 	EVENT_TIME = 4,
90397 	EVENT_CPU = 8,
90398 	EVENT_ALL = 3,
90399 };
90400 
90401 struct __group_key {
90402 	int cpu;
90403 	struct pmu *pmu;
90404 	struct cgroup *cgroup;
90405 };
90406 
90407 struct stop_event_data {
90408 	struct perf_event *event;
90409 	unsigned int restart;
90410 };
90411 
90412 struct perf_read_data {
90413 	struct perf_event *event;
90414 	bool group;
90415 	int ret;
90416 };
90417 
90418 struct perf_read_event {
90419 	struct perf_event_header header;
90420 	u32 pid;
90421 	u32 tid;
90422 };
90423 
90424 typedef void perf_iterate_f(struct perf_event *, void *);
90425 
90426 struct remote_output {
90427 	struct perf_buffer *rb;
90428 	int err;
90429 };
90430 
90431 struct perf_task_event {
90432 	struct task_struct *task;
90433 	struct perf_event_context *task_ctx;
90434 	struct {
90435 		struct perf_event_header header;
90436 		u32 pid;
90437 		u32 ppid;
90438 		u32 tid;
90439 		u32 ptid;
90440 		u64 time;
90441 	} event_id;
90442 };
90443 
90444 struct perf_comm_event {
90445 	struct task_struct *task;
90446 	char *comm;
90447 	int comm_size;
90448 	struct {
90449 		struct perf_event_header header;
90450 		u32 pid;
90451 		u32 tid;
90452 	} event_id;
90453 };
90454 
90455 struct perf_namespaces_event {
90456 	struct task_struct *task;
90457 	struct {
90458 		struct perf_event_header header;
90459 		u32 pid;
90460 		u32 tid;
90461 		u64 nr_namespaces;
90462 		struct perf_ns_link_info link_info[7];
90463 	} event_id;
90464 };
90465 
90466 struct perf_cgroup_event {
90467 	char *path;
90468 	int path_size;
90469 	struct {
90470 		struct perf_event_header header;
90471 		u64 id;
90472 		char path[0];
90473 	} event_id;
90474 };
90475 
90476 struct perf_mmap_event {
90477 	struct vm_area_struct *vma;
90478 	const char *file_name;
90479 	int file_size;
90480 	int maj;
90481 	int min;
90482 	u64 ino;
90483 	u64 ino_generation;
90484 	u32 prot;
90485 	u32 flags;
90486 	u8 build_id[20];
90487 	u32 build_id_size;
90488 	struct {
90489 		struct perf_event_header header;
90490 		u32 pid;
90491 		u32 tid;
90492 		u64 start;
90493 		u64 len;
90494 		u64 pgoff;
90495 	} event_id;
90496 };
90497 
90498 struct perf_switch_event {
90499 	struct task_struct *task;
90500 	struct task_struct *next_prev;
90501 	struct {
90502 		struct perf_event_header header;
90503 		u32 next_prev_pid;
90504 		u32 next_prev_tid;
90505 	} event_id;
90506 };
90507 
90508 struct perf_ksymbol_event {
90509 	const char *name;
90510 	int name_len;
90511 	struct {
90512 		struct perf_event_header header;
90513 		u64 addr;
90514 		u32 len;
90515 		u16 ksym_type;
90516 		u16 flags;
90517 	} event_id;
90518 };
90519 
90520 struct perf_bpf_event {
90521 	struct bpf_prog *prog;
90522 	struct {
90523 		struct perf_event_header header;
90524 		u16 type;
90525 		u16 flags;
90526 		u32 id;
90527 		u8 tag[8];
90528 	} event_id;
90529 };
90530 
90531 struct perf_text_poke_event {
90532 	const void *old_bytes;
90533 	const void *new_bytes;
90534 	size_t pad;
90535 	u16 old_len;
90536 	u16 new_len;
90537 	struct {
90538 		struct perf_event_header header;
90539 		u64 addr;
90540 	} event_id;
90541 };
90542 
90543 struct swevent_htable {
90544 	struct swevent_hlist *swevent_hlist;
90545 	struct mutex hlist_mutex;
90546 	int hlist_refcount;
90547 	int recursion[4];
90548 };
90549 
90550 enum perf_probe_config {
90551 	PERF_PROBE_CONFIG_IS_RETPROBE = 1,
90552 	PERF_UPROBE_REF_CTR_OFFSET_BITS = 32,
90553 	PERF_UPROBE_REF_CTR_OFFSET_SHIFT = 32,
90554 };
90555 
90556 enum {
90557 	IF_ACT_NONE = -1,
90558 	IF_ACT_FILTER = 0,
90559 	IF_ACT_START = 1,
90560 	IF_ACT_STOP = 2,
90561 	IF_SRC_FILE = 3,
90562 	IF_SRC_KERNEL = 4,
90563 	IF_SRC_FILEADDR = 5,
90564 	IF_SRC_KERNELADDR = 6,
90565 };
90566 
90567 enum {
90568 	IF_STATE_ACTION = 0,
90569 	IF_STATE_SOURCE = 1,
90570 	IF_STATE_END = 2,
90571 };
90572 
90573 struct perf_aux_event {
90574 	struct perf_event_header header;
90575 	u64 hw_id;
90576 };
90577 
90578 struct perf_aux_event___2 {
90579 	struct perf_event_header header;
90580 	u32 pid;
90581 	u32 tid;
90582 };
90583 
90584 struct perf_aux_event___3 {
90585 	struct perf_event_header header;
90586 	u64 offset;
90587 	u64 size;
90588 	u64 flags;
90589 };
90590 
90591 enum lruvec_flags {
90592 	LRUVEC_CONGESTED = 0,
90593 };
90594 
90595 enum pgdat_flags {
90596 	PGDAT_DIRTY = 0,
90597 	PGDAT_WRITEBACK = 1,
90598 	PGDAT_RECLAIM_LOCKED = 2,
90599 };
90600 
90601 struct reclaim_stat {
90602 	unsigned int nr_dirty;
90603 	unsigned int nr_unqueued_dirty;
90604 	unsigned int nr_congested;
90605 	unsigned int nr_writeback;
90606 	unsigned int nr_immediate;
90607 	unsigned int nr_pageout;
90608 	unsigned int nr_activate[2];
90609 	unsigned int nr_ref_keep;
90610 	unsigned int nr_unmap_fail;
90611 	unsigned int nr_lazyfree_fail;
90612 };
90613 
90614 struct mem_cgroup_reclaim_cookie {
90615 	pg_data_t *pgdat;
90616 	unsigned int generation;
90617 };
90618 
90619 enum {
90620 	SWP_USED = 1,
90621 	SWP_WRITEOK = 2,
90622 	SWP_DISCARDABLE = 4,
90623 	SWP_DISCARDING = 8,
90624 	SWP_SOLIDSTATE = 16,
90625 	SWP_CONTINUED = 32,
90626 	SWP_BLKDEV = 64,
90627 	SWP_ACTIVATED = 128,
90628 	SWP_FS_OPS = 256,
90629 	SWP_AREA_DISCARD = 512,
90630 	SWP_PAGE_DISCARD = 1024,
90631 	SWP_STABLE_WRITES = 2048,
90632 	SWP_SYNCHRONOUS_IO = 4096,
90633 	SWP_SCANNING = 16384,
90634 };
90635 
90636 struct trace_event_raw_mm_vmscan_kswapd_sleep {
90637 	struct trace_entry ent;
90638 	int nid;
90639 	char __data[0];
90640 };
90641 
90642 struct trace_event_raw_mm_vmscan_kswapd_wake {
90643 	struct trace_entry ent;
90644 	int nid;
90645 	int zid;
90646 	int order;
90647 	char __data[0];
90648 };
90649 
90650 struct trace_event_raw_mm_vmscan_wakeup_kswapd {
90651 	struct trace_entry ent;
90652 	int nid;
90653 	int zid;
90654 	int order;
90655 	long unsigned int gfp_flags;
90656 	char __data[0];
90657 };
90658 
90659 struct trace_event_raw_mm_vmscan_direct_reclaim_begin_template {
90660 	struct trace_entry ent;
90661 	int order;
90662 	long unsigned int gfp_flags;
90663 	char __data[0];
90664 };
90665 
90666 struct trace_event_raw_mm_vmscan_direct_reclaim_end_template {
90667 	struct trace_entry ent;
90668 	long unsigned int nr_reclaimed;
90669 	char __data[0];
90670 };
90671 
90672 struct trace_event_raw_mm_shrink_slab_start {
90673 	struct trace_entry ent;
90674 	struct shrinker *shr;
90675 	void *shrink;
90676 	int nid;
90677 	long int nr_objects_to_shrink;
90678 	long unsigned int gfp_flags;
90679 	long unsigned int cache_items;
90680 	long long unsigned int delta;
90681 	long unsigned int total_scan;
90682 	int priority;
90683 	char __data[0];
90684 };
90685 
90686 struct trace_event_raw_mm_shrink_slab_end {
90687 	struct trace_entry ent;
90688 	struct shrinker *shr;
90689 	int nid;
90690 	void *shrink;
90691 	long int unused_scan;
90692 	long int new_scan;
90693 	int retval;
90694 	long int total_scan;
90695 	char __data[0];
90696 };
90697 
90698 struct trace_event_raw_mm_vmscan_lru_isolate {
90699 	struct trace_entry ent;
90700 	int highest_zoneidx;
90701 	int order;
90702 	long unsigned int nr_requested;
90703 	long unsigned int nr_scanned;
90704 	long unsigned int nr_skipped;
90705 	long unsigned int nr_taken;
90706 	unsigned int isolate_mode;
90707 	int lru;
90708 	char __data[0];
90709 };
90710 
90711 struct trace_event_raw_mm_vmscan_write_folio {
90712 	struct trace_entry ent;
90713 	long unsigned int pfn;
90714 	int reclaim_flags;
90715 	char __data[0];
90716 };
90717 
90718 struct trace_event_raw_mm_vmscan_lru_shrink_inactive {
90719 	struct trace_entry ent;
90720 	int nid;
90721 	long unsigned int nr_scanned;
90722 	long unsigned int nr_reclaimed;
90723 	long unsigned int nr_dirty;
90724 	long unsigned int nr_writeback;
90725 	long unsigned int nr_congested;
90726 	long unsigned int nr_immediate;
90727 	unsigned int nr_activate0;
90728 	unsigned int nr_activate1;
90729 	long unsigned int nr_ref_keep;
90730 	long unsigned int nr_unmap_fail;
90731 	int priority;
90732 	int reclaim_flags;
90733 	char __data[0];
90734 };
90735 
90736 struct trace_event_raw_mm_vmscan_lru_shrink_active {
90737 	struct trace_entry ent;
90738 	int nid;
90739 	long unsigned int nr_taken;
90740 	long unsigned int nr_active;
90741 	long unsigned int nr_deactivated;
90742 	long unsigned int nr_referenced;
90743 	int priority;
90744 	int reclaim_flags;
90745 	char __data[0];
90746 };
90747 
90748 struct trace_event_raw_mm_vmscan_node_reclaim_begin {
90749 	struct trace_entry ent;
90750 	int nid;
90751 	int order;
90752 	long unsigned int gfp_flags;
90753 	char __data[0];
90754 };
90755 
90756 struct trace_event_raw_mm_vmscan_throttled {
90757 	struct trace_entry ent;
90758 	int nid;
90759 	int usec_timeout;
90760 	int usec_delayed;
90761 	int reason;
90762 	char __data[0];
90763 };
90764 
90765 struct trace_event_data_offsets_mm_vmscan_kswapd_sleep {};
90766 
90767 struct trace_event_data_offsets_mm_vmscan_kswapd_wake {};
90768 
90769 struct trace_event_data_offsets_mm_vmscan_wakeup_kswapd {};
90770 
90771 struct trace_event_data_offsets_mm_vmscan_direct_reclaim_begin_template {};
90772 
90773 struct trace_event_data_offsets_mm_vmscan_direct_reclaim_end_template {};
90774 
90775 struct trace_event_data_offsets_mm_shrink_slab_start {};
90776 
90777 struct trace_event_data_offsets_mm_shrink_slab_end {};
90778 
90779 struct trace_event_data_offsets_mm_vmscan_lru_isolate {};
90780 
90781 struct trace_event_data_offsets_mm_vmscan_write_folio {};
90782 
90783 struct trace_event_data_offsets_mm_vmscan_lru_shrink_inactive {};
90784 
90785 struct trace_event_data_offsets_mm_vmscan_lru_shrink_active {};
90786 
90787 struct trace_event_data_offsets_mm_vmscan_node_reclaim_begin {};
90788 
90789 struct trace_event_data_offsets_mm_vmscan_throttled {};
90790 
90791 typedef void (*btf_trace_mm_vmscan_kswapd_sleep)(void *, int);
90792 
90793 typedef void (*btf_trace_mm_vmscan_kswapd_wake)(void *, int, int, int);
90794 
90795 typedef void (*btf_trace_mm_vmscan_wakeup_kswapd)(void *, int, int, int, gfp_t);
90796 
90797 typedef void (*btf_trace_mm_vmscan_direct_reclaim_begin)(void *, int, gfp_t);
90798 
90799 typedef void (*btf_trace_mm_vmscan_memcg_reclaim_begin)(void *, int, gfp_t);
90800 
90801 typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_begin)(void *, int, gfp_t);
90802 
90803 typedef void (*btf_trace_mm_vmscan_direct_reclaim_end)(void *, long unsigned int);
90804 
90805 typedef void (*btf_trace_mm_vmscan_memcg_reclaim_end)(void *, long unsigned int);
90806 
90807 typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_end)(void *, long unsigned int);
90808 
90809 typedef void (*btf_trace_mm_shrink_slab_start)(void *, struct shrinker *, struct shrink_control *, long int, long unsigned int, long long unsigned int, long unsigned int, int);
90810 
90811 typedef void (*btf_trace_mm_shrink_slab_end)(void *, struct shrinker *, int, int, long int, long int, long int);
90812 
90813 typedef void (*btf_trace_mm_vmscan_lru_isolate)(void *, int, int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, isolate_mode_t, int);
90814 
90815 typedef void (*btf_trace_mm_vmscan_write_folio)(void *, struct folio *);
90816 
90817 typedef void (*btf_trace_mm_vmscan_lru_shrink_inactive)(void *, int, long unsigned int, long unsigned int, struct reclaim_stat *, int, int);
90818 
90819 typedef void (*btf_trace_mm_vmscan_lru_shrink_active)(void *, int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, int, int);
90820 
90821 typedef void (*btf_trace_mm_vmscan_node_reclaim_begin)(void *, int, int, gfp_t);
90822 
90823 typedef void (*btf_trace_mm_vmscan_node_reclaim_end)(void *, long unsigned int);
90824 
90825 typedef void (*btf_trace_mm_vmscan_throttled)(void *, int, int, int, int);
90826 
90827 struct scan_control {
90828 	long unsigned int nr_to_reclaim;
90829 	nodemask_t *nodemask;
90830 	struct mem_cgroup *target_mem_cgroup;
90831 	long unsigned int anon_cost;
90832 	long unsigned int file_cost;
90833 	unsigned int may_deactivate: 2;
90834 	unsigned int force_deactivate: 1;
90835 	unsigned int skipped_deactivate: 1;
90836 	unsigned int may_writepage: 1;
90837 	unsigned int may_unmap: 1;
90838 	unsigned int may_swap: 1;
90839 	unsigned int proactive: 1;
90840 	unsigned int memcg_low_reclaim: 1;
90841 	unsigned int memcg_low_skipped: 1;
90842 	unsigned int hibernation_mode: 1;
90843 	unsigned int compaction_ready: 1;
90844 	unsigned int cache_trim_mode: 1;
90845 	unsigned int file_is_tiny: 1;
90846 	unsigned int no_demotion: 1;
90847 	s8 order;
90848 	s8 priority;
90849 	s8 reclaim_idx;
90850 	gfp_t gfp_mask;
90851 	long unsigned int nr_scanned;
90852 	long unsigned int nr_reclaimed;
90853 	struct {
90854 		unsigned int dirty;
90855 		unsigned int unqueued_dirty;
90856 		unsigned int congested;
90857 		unsigned int writeback;
90858 		unsigned int immediate;
90859 		unsigned int file_taken;
90860 		unsigned int taken;
90861 	} nr;
90862 	struct reclaim_state reclaim_state;
90863 };
90864 
90865 typedef enum {
90866 	PAGE_KEEP = 0,
90867 	PAGE_ACTIVATE = 1,
90868 	PAGE_SUCCESS = 2,
90869 	PAGE_CLEAN = 3,
90870 } pageout_t;
90871 
90872 enum folio_references {
90873 	FOLIOREF_RECLAIM = 0,
90874 	FOLIOREF_RECLAIM_CLEAN = 1,
90875 	FOLIOREF_KEEP = 2,
90876 	FOLIOREF_ACTIVATE = 3,
90877 };
90878 
90879 enum scan_balance {
90880 	SCAN_EQUAL = 0,
90881 	SCAN_FRACT = 1,
90882 	SCAN_ANON = 2,
90883 	SCAN_FILE = 3,
90884 };
90885 
90886 struct pcpu_group_info {
90887 	int nr_units;
90888 	long unsigned int base_offset;
90889 	unsigned int *cpu_map;
90890 };
90891 
90892 struct pcpu_alloc_info {
90893 	size_t static_size;
90894 	size_t reserved_size;
90895 	size_t dyn_size;
90896 	size_t unit_size;
90897 	size_t atom_size;
90898 	size_t alloc_size;
90899 	size_t __ai_size;
90900 	int nr_groups;
90901 	struct pcpu_group_info groups[0];
90902 };
90903 
90904 struct trace_event_raw_percpu_alloc_percpu {
90905 	struct trace_entry ent;
90906 	long unsigned int call_site;
90907 	bool reserved;
90908 	bool is_atomic;
90909 	size_t size;
90910 	size_t align;
90911 	void *base_addr;
90912 	int off;
90913 	void *ptr;
90914 	size_t bytes_alloc;
90915 	long unsigned int gfp_flags;
90916 	char __data[0];
90917 };
90918 
90919 struct trace_event_raw_percpu_free_percpu {
90920 	struct trace_entry ent;
90921 	void *base_addr;
90922 	int off;
90923 	void *ptr;
90924 	char __data[0];
90925 };
90926 
90927 struct trace_event_raw_percpu_alloc_percpu_fail {
90928 	struct trace_entry ent;
90929 	bool reserved;
90930 	bool is_atomic;
90931 	size_t size;
90932 	size_t align;
90933 	char __data[0];
90934 };
90935 
90936 struct trace_event_raw_percpu_create_chunk {
90937 	struct trace_entry ent;
90938 	void *base_addr;
90939 	char __data[0];
90940 };
90941 
90942 struct trace_event_raw_percpu_destroy_chunk {
90943 	struct trace_entry ent;
90944 	void *base_addr;
90945 	char __data[0];
90946 };
90947 
90948 struct trace_event_data_offsets_percpu_alloc_percpu {};
90949 
90950 struct trace_event_data_offsets_percpu_free_percpu {};
90951 
90952 struct trace_event_data_offsets_percpu_alloc_percpu_fail {};
90953 
90954 struct trace_event_data_offsets_percpu_create_chunk {};
90955 
90956 struct trace_event_data_offsets_percpu_destroy_chunk {};
90957 
90958 typedef void (*btf_trace_percpu_alloc_percpu)(void *, long unsigned int, bool, bool, size_t, size_t, void *, int, void *, size_t, gfp_t);
90959 
90960 typedef void (*btf_trace_percpu_free_percpu)(void *, void *, int, void *);
90961 
90962 typedef void (*btf_trace_percpu_alloc_percpu_fail)(void *, bool, bool, size_t, size_t);
90963 
90964 typedef void (*btf_trace_percpu_create_chunk)(void *, void *);
90965 
90966 typedef void (*btf_trace_percpu_destroy_chunk)(void *, void *);
90967 
90968 struct pcpu_block_md {
90969 	int scan_hint;
90970 	int scan_hint_start;
90971 	int contig_hint;
90972 	int contig_hint_start;
90973 	int left_free;
90974 	int right_free;
90975 	int first_free;
90976 	int nr_bits;
90977 };
90978 
90979 struct pcpu_chunk {
90980 	struct list_head list;
90981 	int free_bytes;
90982 	struct pcpu_block_md chunk_md;
90983 	void *base_addr;
90984 	long unsigned int *alloc_map;
90985 	long unsigned int *bound_map;
90986 	struct pcpu_block_md *md_blocks;
90987 	void *data;
90988 	bool immutable;
90989 	bool isolated;
90990 	int start_offset;
90991 	int end_offset;
90992 	struct obj_cgroup **obj_cgroups;
90993 	int nr_pages;
90994 	int nr_populated;
90995 	int nr_empty_pop_pages;
90996 	long unsigned int populated[0];
90997 };
90998 
90999 struct list_lru_memcg {
91000 	struct callback_head rcu;
91001 	struct list_lru_one node[0];
91002 };
91003 
91004 struct list_lru_memcg_table {
91005 	struct list_lru_memcg *mlru;
91006 	struct mem_cgroup *memcg;
91007 };
91008 
91009 struct trace_event_raw_mmap_lock {
91010 	struct trace_entry ent;
91011 	struct mm_struct *mm;
91012 	u32 __data_loc_memcg_path;
91013 	bool write;
91014 	char __data[0];
91015 };
91016 
91017 struct trace_event_raw_mmap_lock_acquire_returned {
91018 	struct trace_entry ent;
91019 	struct mm_struct *mm;
91020 	u32 __data_loc_memcg_path;
91021 	bool write;
91022 	bool success;
91023 	char __data[0];
91024 };
91025 
91026 struct trace_event_data_offsets_mmap_lock {
91027 	u32 memcg_path;
91028 };
91029 
91030 struct trace_event_data_offsets_mmap_lock_acquire_returned {
91031 	u32 memcg_path;
91032 };
91033 
91034 typedef void (*btf_trace_mmap_lock_start_locking)(void *, struct mm_struct *, const char *, bool);
91035 
91036 typedef void (*btf_trace_mmap_lock_released)(void *, struct mm_struct *, const char *, bool);
91037 
91038 typedef void (*btf_trace_mmap_lock_acquire_returned)(void *, struct mm_struct *, const char *, bool, bool);
91039 
91040 struct memcg_path {
91041 	local_lock_t lock;
91042 	char *buf;
91043 	local_t buf_idx;
91044 };
91045 
91046 enum {
91047 	HUGETLB_SHMFS_INODE = 1,
91048 	HUGETLB_ANONHUGE_INODE = 2,
91049 };
91050 
91051 struct anon_vma_chain {
91052 	struct vm_area_struct *vma;
91053 	struct anon_vma *anon_vma;
91054 	struct list_head same_vma;
91055 	struct rb_node rb;
91056 	long unsigned int rb_subtree_last;
91057 };
91058 
91059 struct trace_event_raw_vm_unmapped_area {
91060 	struct trace_entry ent;
91061 	long unsigned int addr;
91062 	long unsigned int total_vm;
91063 	long unsigned int flags;
91064 	long unsigned int length;
91065 	long unsigned int low_limit;
91066 	long unsigned int high_limit;
91067 	long unsigned int align_mask;
91068 	long unsigned int align_offset;
91069 	char __data[0];
91070 };
91071 
91072 struct trace_event_raw_vma_mas_szero {
91073 	struct trace_entry ent;
91074 	struct maple_tree *mt;
91075 	long unsigned int start;
91076 	long unsigned int end;
91077 	char __data[0];
91078 };
91079 
91080 struct trace_event_raw_vma_store {
91081 	struct trace_entry ent;
91082 	struct maple_tree *mt;
91083 	struct vm_area_struct *vma;
91084 	long unsigned int vm_start;
91085 	long unsigned int vm_end;
91086 	char __data[0];
91087 };
91088 
91089 struct trace_event_raw_exit_mmap {
91090 	struct trace_entry ent;
91091 	struct mm_struct *mm;
91092 	struct maple_tree *mt;
91093 	char __data[0];
91094 };
91095 
91096 struct trace_event_data_offsets_vm_unmapped_area {};
91097 
91098 struct trace_event_data_offsets_vma_mas_szero {};
91099 
91100 struct trace_event_data_offsets_vma_store {};
91101 
91102 struct trace_event_data_offsets_exit_mmap {};
91103 
91104 typedef void (*btf_trace_vm_unmapped_area)(void *, long unsigned int, struct vm_unmapped_area_info *);
91105 
91106 typedef void (*btf_trace_vma_mas_szero)(void *, struct maple_tree *, long unsigned int, long unsigned int);
91107 
91108 typedef void (*btf_trace_vma_store)(void *, struct maple_tree *, struct vm_area_struct *);
91109 
91110 typedef void (*btf_trace_exit_mmap)(void *, struct mm_struct *);
91111 
91112 struct swap_iocb {
91113 	struct kiocb iocb;
91114 	struct bio_vec bvec[32];
91115 	int pages;
91116 	int len;
91117 };
91118 
91119 struct resv_map {
91120 	struct kref refs;
91121 	spinlock_t lock;
91122 	struct list_head regions;
91123 	long int adds_in_progress;
91124 	struct list_head region_cache;
91125 	long int region_cache_count;
91126 	struct page_counter *reservation_counter;
91127 	long unsigned int pages_per_hpage;
91128 	struct cgroup_subsys_state *css;
91129 };
91130 
91131 struct file_region {
91132 	struct list_head link;
91133 	long int from;
91134 	long int to;
91135 	struct page_counter *reservation_counter;
91136 	struct cgroup_subsys_state *css;
91137 };
91138 
91139 struct hugetlb_vma_lock {
91140 	struct kref refs;
91141 	struct rw_semaphore rw_sema;
91142 	struct vm_area_struct *vma;
91143 };
91144 
91145 enum hugetlb_page_flags {
91146 	HPG_restore_reserve = 0,
91147 	HPG_migratable = 1,
91148 	HPG_temporary = 2,
91149 	HPG_freed = 3,
91150 	HPG_vmemmap_optimized = 4,
91151 	HPG_raw_hwp_unreliable = 5,
91152 	__NR_HPAGEFLAGS = 6,
91153 };
91154 
91155 struct huge_bootmem_page {
91156 	struct list_head list;
91157 	struct hstate *hstate;
91158 };
91159 
91160 struct hugetlb_cgroup_per_node {
91161 	long unsigned int usage[1];
91162 };
91163 
91164 struct hugetlb_cgroup {
91165 	struct cgroup_subsys_state css;
91166 	long: 64;
91167 	long: 64;
91168 	long: 64;
91169 	long: 64;
91170 	long: 64;
91171 	long: 64;
91172 	long: 64;
91173 	struct page_counter hugepage[1];
91174 	struct page_counter rsvd_hugepage[1];
91175 	atomic_long_t events[1];
91176 	atomic_long_t events_local[1];
91177 	struct cgroup_file events_file[1];
91178 	struct cgroup_file events_local_file[1];
91179 	struct hugetlb_cgroup_per_node *nodeinfo[0];
91180 };
91181 
91182 enum vma_resv_mode {
91183 	VMA_NEEDS_RESV = 0,
91184 	VMA_COMMIT_RESV = 1,
91185 	VMA_END_RESV = 2,
91186 	VMA_ADD_RESV = 3,
91187 	VMA_DEL_RESV = 4,
91188 };
91189 
91190 struct node_hstate {
91191 	struct kobject *hugepages_kobj;
91192 	struct kobject *hstate_kobjs[1];
91193 };
91194 
91195 struct memory_tier {
91196 	struct list_head list;
91197 	struct list_head memory_types;
91198 	int adistance_start;
91199 	struct device dev;
91200 	nodemask_t lower_tier_mask;
91201 };
91202 
91203 struct memory_dev_type {
91204 	struct list_head tier_sibiling;
91205 	int adistance;
91206 	nodemask_t nodes;
91207 	struct kref kref;
91208 };
91209 
91210 struct demotion_nodes {
91211 	nodemask_t preferred;
91212 };
91213 
91214 struct node_memory_type_map {
91215 	struct memory_dev_type *memtype;
91216 	int map_count;
91217 };
91218 
91219 enum mem_cgroup_events_target {
91220 	MEM_CGROUP_TARGET_THRESH = 0,
91221 	MEM_CGROUP_TARGET_SOFTLIMIT = 1,
91222 	MEM_CGROUP_NTARGETS = 2,
91223 };
91224 
91225 struct memcg_vmstats {
91226 	long int state[50];
91227 	long unsigned int events[19];
91228 	long int state_pending[50];
91229 	long unsigned int events_pending[19];
91230 };
91231 
91232 struct memcg_vmstats_percpu {
91233 	long int state[50];
91234 	long unsigned int events[19];
91235 	long int state_prev[50];
91236 	long unsigned int events_prev[19];
91237 	long unsigned int nr_page_events;
91238 	long unsigned int targets[2];
91239 };
91240 
91241 struct mem_cgroup_tree_per_node {
91242 	struct rb_root rb_root;
91243 	struct rb_node *rb_rightmost;
91244 	spinlock_t lock;
91245 };
91246 
91247 struct mem_cgroup_tree {
91248 	struct mem_cgroup_tree_per_node *rb_tree_per_node[64];
91249 };
91250 
91251 struct mem_cgroup_eventfd_list {
91252 	struct list_head list;
91253 	struct eventfd_ctx *eventfd;
91254 };
91255 
91256 struct mem_cgroup_event {
91257 	struct mem_cgroup *memcg;
91258 	struct eventfd_ctx *eventfd;
91259 	struct list_head list;
91260 	int (*register_event)(struct mem_cgroup *, struct eventfd_ctx *, const char *);
91261 	void (*unregister_event)(struct mem_cgroup *, struct eventfd_ctx *);
91262 	poll_table pt;
91263 	wait_queue_head_t *wqh;
91264 	wait_queue_entry_t wait;
91265 	struct work_struct remove;
91266 };
91267 
91268 struct move_charge_struct {
91269 	spinlock_t lock;
91270 	struct mm_struct *mm;
91271 	struct mem_cgroup *from;
91272 	struct mem_cgroup *to;
91273 	long unsigned int flags;
91274 	long unsigned int precharge;
91275 	long unsigned int moved_charge;
91276 	long unsigned int moved_swap;
91277 	struct task_struct *moving_task;
91278 	wait_queue_head_t waitq;
91279 };
91280 
91281 enum res_type {
91282 	_MEM = 0,
91283 	_MEMSWAP = 1,
91284 	_KMEM = 2,
91285 	_TCP = 3,
91286 };
91287 
91288 struct memory_stat {
91289 	const char *name;
91290 	unsigned int idx;
91291 };
91292 
91293 struct oom_wait_info {
91294 	struct mem_cgroup *memcg;
91295 	wait_queue_entry_t wait;
91296 };
91297 
91298 struct memcg_stock_pcp {
91299 	local_lock_t stock_lock;
91300 	struct mem_cgroup *cached;
91301 	unsigned int nr_pages;
91302 	struct obj_cgroup *cached_objcg;
91303 	struct pglist_data *cached_pgdat;
91304 	unsigned int nr_bytes;
91305 	int nr_slab_reclaimable_b;
91306 	int nr_slab_unreclaimable_b;
91307 	struct work_struct work;
91308 	long unsigned int flags;
91309 };
91310 
91311 enum {
91312 	RES_USAGE = 0,
91313 	RES_LIMIT = 1,
91314 	RES_MAX_USAGE = 2,
91315 	RES_FAILCNT = 3,
91316 	RES_SOFT_LIMIT = 4,
91317 };
91318 
91319 union mc_target {
91320 	struct page *page;
91321 	swp_entry_t ent;
91322 };
91323 
91324 enum mc_target_type {
91325 	MC_TARGET_NONE = 0,
91326 	MC_TARGET_PAGE = 1,
91327 	MC_TARGET_SWAP = 2,
91328 	MC_TARGET_DEVICE = 3,
91329 };
91330 
91331 struct uncharge_gather {
91332 	struct mem_cgroup *memcg;
91333 	long unsigned int nr_memory;
91334 	long unsigned int pgpgout;
91335 	long unsigned int nr_kmem;
91336 	int nid;
91337 };
91338 
91339 struct numa_stat {
91340 	const char *name;
91341 	unsigned int lru_mask;
91342 };
91343 
91344 struct balloon_dev_info {
91345 	long unsigned int isolated_pages;
91346 	spinlock_t pages_lock;
91347 	struct list_head pages;
91348 	int (*migratepage)(struct balloon_dev_info *, struct page *, struct page *, enum migrate_mode);
91349 };
91350 
91351 enum {
91352 	XA_CHECK_SCHED = 4096,
91353 };
91354 
91355 struct hugetlbfs_inode_info {
91356 	struct shared_policy policy;
91357 	struct inode vfs_inode;
91358 	unsigned int seals;
91359 };
91360 
91361 struct shmem_inode_info {
91362 	spinlock_t lock;
91363 	unsigned int seals;
91364 	long unsigned int flags;
91365 	long unsigned int alloced;
91366 	long unsigned int swapped;
91367 	long unsigned int fallocend;
91368 	struct list_head shrinklist;
91369 	struct list_head swaplist;
91370 	struct shared_policy policy;
91371 	struct simple_xattrs xattrs;
91372 	atomic_t stop_eviction;
91373 	struct timespec64 i_crtime;
91374 	unsigned int fsflags;
91375 	struct inode vfs_inode;
91376 };
91377 
91378 struct files_stat_struct {
91379 	long unsigned int nr_files;
91380 	long unsigned int nr_free_files;
91381 	long unsigned int max_files;
91382 };
91383 
91384 typedef struct kobject *kobj_probe_t(dev_t, int *, void *);
91385 
91386 struct kobj_map;
91387 
91388 struct char_device_struct {
91389 	struct char_device_struct *next;
91390 	unsigned int major;
91391 	unsigned int baseminor;
91392 	int minorct;
91393 	char name[64];
91394 	struct cdev *cdev;
91395 };
91396 
91397 struct saved {
91398 	struct path link;
91399 	struct delayed_call done;
91400 	const char *name;
91401 	unsigned int seq;
91402 };
91403 
91404 struct nameidata {
91405 	struct path path;
91406 	struct qstr last;
91407 	struct path root;
91408 	struct inode *inode;
91409 	unsigned int flags;
91410 	unsigned int state;
91411 	unsigned int seq;
91412 	unsigned int next_seq;
91413 	unsigned int m_seq;
91414 	unsigned int r_seq;
91415 	int last_type;
91416 	unsigned int depth;
91417 	int total_link_count;
91418 	struct saved *stack;
91419 	struct saved internal[2];
91420 	struct filename *name;
91421 	struct nameidata *saved;
91422 	unsigned int root_seq;
91423 	int dfd;
91424 	vfsuid_t dir_vfsuid;
91425 	umode_t dir_mode;
91426 };
91427 
91428 struct renamedata {
91429 	struct user_namespace *old_mnt_userns;
91430 	struct inode *old_dir;
91431 	struct dentry *old_dentry;
91432 	struct user_namespace *new_mnt_userns;
91433 	struct inode *new_dir;
91434 	struct dentry *new_dentry;
91435 	struct inode **delegated_inode;
91436 	unsigned int flags;
91437 };
91438 
91439 enum {
91440 	LAST_NORM = 0,
91441 	LAST_ROOT = 1,
91442 	LAST_DOT = 2,
91443 	LAST_DOTDOT = 3,
91444 };
91445 
91446 struct open_flags {
91447 	int open_flag;
91448 	umode_t mode;
91449 	int acc_mode;
91450 	int intent;
91451 	int lookup_flags;
91452 };
91453 
91454 enum {
91455 	WALK_TRAILING = 1,
91456 	WALK_MORE = 2,
91457 	WALK_NOFOLLOW = 4,
91458 };
91459 
91460 struct simple_transaction_argresp {
91461 	ssize_t size;
91462 	char data[0];
91463 };
91464 
91465 struct simple_attr {
91466 	int (*get)(void *, u64 *);
91467 	int (*set)(void *, u64);
91468 	char get_buf[24];
91469 	char set_buf[24];
91470 	void *data;
91471 	const char *fmt;
91472 	struct mutex mutex;
91473 };
91474 
91475 struct prepend_buffer {
91476 	char *buf;
91477 	int len;
91478 };
91479 
91480 typedef int dio_iodone_t(struct kiocb *, loff_t, ssize_t, void *);
91481 
91482 typedef void dio_submit_t(struct bio *, struct inode *, loff_t);
91483 
91484 enum {
91485 	DIO_LOCKING = 1,
91486 	DIO_SKIP_HOLES = 2,
91487 };
91488 
91489 struct dio_submit {
91490 	struct bio *bio;
91491 	unsigned int blkbits;
91492 	unsigned int blkfactor;
91493 	unsigned int start_zero_done;
91494 	int pages_in_io;
91495 	sector_t block_in_file;
91496 	unsigned int blocks_available;
91497 	int reap_counter;
91498 	sector_t final_block_in_request;
91499 	int boundary;
91500 	get_block_t *get_block;
91501 	dio_submit_t *submit_io;
91502 	loff_t logical_offset_in_bio;
91503 	sector_t final_block_in_bio;
91504 	sector_t next_block_for_io;
91505 	struct page *cur_page;
91506 	unsigned int cur_page_offset;
91507 	unsigned int cur_page_len;
91508 	sector_t cur_page_block;
91509 	loff_t cur_page_fs_offset;
91510 	struct iov_iter *iter;
91511 	unsigned int head;
91512 	unsigned int tail;
91513 	size_t from;
91514 	size_t to;
91515 };
91516 
91517 struct dio {
91518 	int flags;
91519 	blk_opf_t opf;
91520 	struct gendisk *bio_disk;
91521 	struct inode *inode;
91522 	loff_t i_size;
91523 	dio_iodone_t *end_io;
91524 	void *private;
91525 	spinlock_t bio_lock;
91526 	int page_errors;
91527 	int is_async;
91528 	bool defer_completion;
91529 	bool should_dirty;
91530 	int io_error;
91531 	long unsigned int refcount;
91532 	struct bio *bio_list;
91533 	struct task_struct *waiter;
91534 	struct kiocb *iocb;
91535 	ssize_t result;
91536 	union {
91537 		struct page *pages[64];
91538 		struct work_struct complete_work;
91539 	};
91540 	long: 64;
91541 	long: 64;
91542 };
91543 
91544 struct fs_error_report {
91545 	int error;
91546 	struct inode *inode;
91547 	struct super_block *sb;
91548 };
91549 
91550 struct dnotify_struct {
91551 	struct dnotify_struct *dn_next;
91552 	__u32 dn_mask;
91553 	int dn_fd;
91554 	struct file *dn_filp;
91555 	fl_owner_t dn_owner;
91556 };
91557 
91558 struct dnotify_mark {
91559 	struct fsnotify_mark fsn_mark;
91560 	struct dnotify_struct *dn;
91561 };
91562 
91563 struct timerfd_ctx {
91564 	union {
91565 		struct hrtimer tmr;
91566 		struct alarm alarm;
91567 	} t;
91568 	ktime_t tintv;
91569 	ktime_t moffs;
91570 	wait_queue_head_t wqh;
91571 	u64 ticks;
91572 	int clockid;
91573 	short unsigned int expired;
91574 	short unsigned int settime_flags;
91575 	struct callback_head rcu;
91576 	struct list_head clist;
91577 	spinlock_t cancel_lock;
91578 	bool might_cancel;
91579 };
91580 
91581 typedef enum {
91582 	FS_DECRYPT = 0,
91583 	FS_ENCRYPT = 1,
91584 } fscrypt_direction_t;
91585 
91586 struct fscrypt_key {
91587 	__u32 mode;
91588 	__u8 raw[64];
91589 	__u32 size;
91590 };
91591 
91592 struct fscrypt_direct_key {
91593 	struct super_block *dk_sb;
91594 	struct hlist_node dk_node;
91595 	refcount_t dk_refcount;
91596 	const struct fscrypt_mode *dk_mode;
91597 	struct fscrypt_prepared_key dk_key;
91598 	u8 dk_descriptor[8];
91599 	u8 dk_raw[64];
91600 };
91601 
91602 struct fsverity_enable_arg {
91603 	__u32 version;
91604 	__u32 hash_algorithm;
91605 	__u32 block_size;
91606 	__u32 salt_size;
91607 	__u64 salt_ptr;
91608 	__u32 sig_size;
91609 	__u32 __reserved1;
91610 	__u64 sig_ptr;
91611 	__u64 __reserved2[11];
91612 };
91613 
91614 enum {
91615 	PER_LINUX = 0,
91616 	PER_LINUX_32BIT = 8388608,
91617 	PER_LINUX_FDPIC = 524288,
91618 	PER_SVR4 = 68157441,
91619 	PER_SVR3 = 83886082,
91620 	PER_SCOSVR3 = 117440515,
91621 	PER_OSR5 = 100663299,
91622 	PER_WYSEV386 = 83886084,
91623 	PER_ISCR4 = 67108869,
91624 	PER_BSD = 6,
91625 	PER_SUNOS = 67108870,
91626 	PER_XENIX = 83886087,
91627 	PER_LINUX32 = 8,
91628 	PER_LINUX32_3GB = 134217736,
91629 	PER_IRIX32 = 67108873,
91630 	PER_IRIXN32 = 67108874,
91631 	PER_IRIX64 = 67108875,
91632 	PER_RISCOS = 12,
91633 	PER_SOLARIS = 67108877,
91634 	PER_UW7 = 68157454,
91635 	PER_OSF4 = 15,
91636 	PER_HPUX = 16,
91637 	PER_MASK = 255,
91638 };
91639 
91640 struct memelfnote {
91641 	const char *name;
91642 	int type;
91643 	unsigned int datasz;
91644 	void *data;
91645 };
91646 
91647 struct elf_thread_core_info {
91648 	struct elf_thread_core_info *next;
91649 	struct task_struct *task;
91650 	struct elf_prstatus prstatus;
91651 	struct memelfnote notes[0];
91652 };
91653 
91654 struct elf_note_info {
91655 	struct elf_thread_core_info *thread;
91656 	struct memelfnote psinfo;
91657 	struct memelfnote signote;
91658 	struct memelfnote auxv;
91659 	struct memelfnote files;
91660 	siginfo_t csigdata;
91661 	size_t size;
91662 	int thread_notes;
91663 };
91664 
91665 struct trace_event_raw_iomap_readpage_class {
91666 	struct trace_entry ent;
91667 	dev_t dev;
91668 	u64 ino;
91669 	int nr_pages;
91670 	char __data[0];
91671 };
91672 
91673 struct trace_event_raw_iomap_range_class {
91674 	struct trace_entry ent;
91675 	dev_t dev;
91676 	u64 ino;
91677 	loff_t size;
91678 	loff_t offset;
91679 	u64 length;
91680 	char __data[0];
91681 };
91682 
91683 struct trace_event_raw_iomap_class {
91684 	struct trace_entry ent;
91685 	dev_t dev;
91686 	u64 ino;
91687 	u64 addr;
91688 	loff_t offset;
91689 	u64 length;
91690 	u16 type;
91691 	u16 flags;
91692 	dev_t bdev;
91693 	char __data[0];
91694 };
91695 
91696 struct trace_event_raw_iomap_iter {
91697 	struct trace_entry ent;
91698 	dev_t dev;
91699 	u64 ino;
91700 	loff_t pos;
91701 	u64 length;
91702 	unsigned int flags;
91703 	const void *ops;
91704 	long unsigned int caller;
91705 	char __data[0];
91706 };
91707 
91708 struct trace_event_data_offsets_iomap_readpage_class {};
91709 
91710 struct trace_event_data_offsets_iomap_range_class {};
91711 
91712 struct trace_event_data_offsets_iomap_class {};
91713 
91714 struct trace_event_data_offsets_iomap_iter {};
91715 
91716 typedef void (*btf_trace_iomap_readpage)(void *, struct inode *, int);
91717 
91718 typedef void (*btf_trace_iomap_readahead)(void *, struct inode *, int);
91719 
91720 typedef void (*btf_trace_iomap_writepage)(void *, struct inode *, loff_t, u64);
91721 
91722 typedef void (*btf_trace_iomap_release_folio)(void *, struct inode *, loff_t, u64);
91723 
91724 typedef void (*btf_trace_iomap_invalidate_folio)(void *, struct inode *, loff_t, u64);
91725 
91726 typedef void (*btf_trace_iomap_dio_invalidate_fail)(void *, struct inode *, loff_t, u64);
91727 
91728 typedef void (*btf_trace_iomap_iter_dstmap)(void *, struct inode *, struct iomap *);
91729 
91730 typedef void (*btf_trace_iomap_iter_srcmap)(void *, struct inode *, struct iomap *);
91731 
91732 typedef void (*btf_trace_iomap_writepage_map)(void *, struct inode *, struct iomap *);
91733 
91734 typedef void (*btf_trace_iomap_iter)(void *, struct iomap_iter *, const void *, long unsigned int);
91735 
91736 enum {
91737 	QUOTA_NL_C_UNSPEC = 0,
91738 	QUOTA_NL_C_WARNING = 1,
91739 	__QUOTA_NL_C_MAX = 2,
91740 };
91741 
91742 enum {
91743 	QUOTA_NL_A_UNSPEC = 0,
91744 	QUOTA_NL_A_QTYPE = 1,
91745 	QUOTA_NL_A_EXCESS_ID = 2,
91746 	QUOTA_NL_A_WARNING = 3,
91747 	QUOTA_NL_A_DEV_MAJOR = 4,
91748 	QUOTA_NL_A_DEV_MINOR = 5,
91749 	QUOTA_NL_A_CAUSED_ID = 6,
91750 	QUOTA_NL_A_PAD = 7,
91751 	__QUOTA_NL_A_MAX = 8,
91752 };
91753 
91754 enum resctrl_conf_type {
91755 	CDP_NONE = 0,
91756 	CDP_CODE = 1,
91757 	CDP_DATA = 2,
91758 };
91759 
91760 struct pid_entry {
91761 	const char *name;
91762 	unsigned int len;
91763 	umode_t mode;
91764 	const struct inode_operations *iop;
91765 	const struct file_operations *fop;
91766 	union proc_op op;
91767 };
91768 
91769 struct limit_names {
91770 	const char *name;
91771 	const char *unit;
91772 };
91773 
91774 struct map_files_info {
91775 	long unsigned int start;
91776 	long unsigned int end;
91777 	fmode_t mode;
91778 };
91779 
91780 struct timers_private {
91781 	struct pid *pid;
91782 	struct task_struct *task;
91783 	struct sighand_struct *sighand;
91784 	struct pid_namespace *ns;
91785 	long unsigned int flags;
91786 };
91787 
91788 struct tgid_iter {
91789 	unsigned int tgid;
91790 	struct task_struct *task;
91791 };
91792 
91793 enum hugetlbfs_size_type {
91794 	NO_SIZE = 0,
91795 	SIZE_STD = 1,
91796 	SIZE_PERCENT = 2,
91797 };
91798 
91799 struct hugetlbfs_fs_context {
91800 	struct hstate *hstate;
91801 	long long unsigned int max_size_opt;
91802 	long long unsigned int min_size_opt;
91803 	long int max_hpages;
91804 	long int nr_inodes;
91805 	long int min_hpages;
91806 	enum hugetlbfs_size_type max_val_type;
91807 	enum hugetlbfs_size_type min_val_type;
91808 	kuid_t uid;
91809 	kgid_t gid;
91810 	umode_t mode;
91811 };
91812 
91813 enum hugetlb_param {
91814 	Opt_gid = 0,
91815 	Opt_min_size = 1,
91816 	Opt_mode___2 = 2,
91817 	Opt_nr_inodes = 3,
91818 	Opt_pagesize = 4,
91819 	Opt_size = 5,
91820 	Opt_uid = 6,
91821 };
91822 
91823 struct utf8cursor {
91824 	const struct unicode_map *um;
91825 	enum utf8_normalization n;
91826 	const char *s;
91827 	const char *p;
91828 	const char *ss;
91829 	const char *sp;
91830 	unsigned int len;
91831 	unsigned int slen;
91832 	short int ccc;
91833 	short int nccc;
91834 	unsigned char hangul[12];
91835 };
91836 
91837 enum {
91838 	AUTOFS_IOC_READY_CMD = 96,
91839 	AUTOFS_IOC_FAIL_CMD = 97,
91840 	AUTOFS_IOC_CATATONIC_CMD = 98,
91841 	AUTOFS_IOC_PROTOVER_CMD = 99,
91842 	AUTOFS_IOC_SETTIMEOUT_CMD = 100,
91843 	AUTOFS_IOC_EXPIRE_CMD = 101,
91844 };
91845 
91846 enum {
91847 	AUTOFS_IOC_EXPIRE_MULTI_CMD = 102,
91848 	AUTOFS_IOC_PROTOSUBVER_CMD = 103,
91849 	AUTOFS_IOC_ASKUMOUNT_CMD = 112,
91850 };
91851 
91852 typedef struct vfsmount * (*debugfs_automount_t)(struct dentry *, void *);
91853 
91854 struct debugfs_mount_opts {
91855 	kuid_t uid;
91856 	kgid_t gid;
91857 	umode_t mode;
91858 	unsigned int opts;
91859 };
91860 
91861 enum {
91862 	Opt_uid___2 = 0,
91863 	Opt_gid___2 = 1,
91864 	Opt_mode___3 = 2,
91865 	Opt_err = 3,
91866 };
91867 
91868 struct debugfs_fs_info {
91869 	struct debugfs_mount_opts mount_opts;
91870 };
91871 
91872 struct msg_msgseg {
91873 	struct msg_msgseg *next;
91874 };
91875 
91876 typedef int __kernel_ipc_pid_t;
91877 
91878 struct shmid_ds {
91879 	struct ipc_perm shm_perm;
91880 	int shm_segsz;
91881 	__kernel_old_time_t shm_atime;
91882 	__kernel_old_time_t shm_dtime;
91883 	__kernel_old_time_t shm_ctime;
91884 	__kernel_ipc_pid_t shm_cpid;
91885 	__kernel_ipc_pid_t shm_lpid;
91886 	short unsigned int shm_nattch;
91887 	short unsigned int shm_unused;
91888 	void *shm_unused2;
91889 	void *shm_unused3;
91890 };
91891 
91892 struct shmid64_ds {
91893 	struct ipc64_perm shm_perm;
91894 	__kernel_size_t shm_segsz;
91895 	long int shm_atime;
91896 	long int shm_dtime;
91897 	long int shm_ctime;
91898 	__kernel_pid_t shm_cpid;
91899 	__kernel_pid_t shm_lpid;
91900 	long unsigned int shm_nattch;
91901 	long unsigned int __unused4;
91902 	long unsigned int __unused5;
91903 };
91904 
91905 struct shminfo64 {
91906 	long unsigned int shmmax;
91907 	long unsigned int shmmin;
91908 	long unsigned int shmmni;
91909 	long unsigned int shmseg;
91910 	long unsigned int shmall;
91911 	long unsigned int __unused1;
91912 	long unsigned int __unused2;
91913 	long unsigned int __unused3;
91914 	long unsigned int __unused4;
91915 };
91916 
91917 struct shminfo {
91918 	int shmmax;
91919 	int shmmin;
91920 	int shmmni;
91921 	int shmseg;
91922 	int shmall;
91923 };
91924 
91925 struct shm_info {
91926 	int used_ids;
91927 	__kernel_ulong_t shm_tot;
91928 	__kernel_ulong_t shm_rss;
91929 	__kernel_ulong_t shm_swp;
91930 	__kernel_ulong_t swap_attempts;
91931 	__kernel_ulong_t swap_successes;
91932 };
91933 
91934 struct shmid_kernel {
91935 	struct kern_ipc_perm shm_perm;
91936 	struct file *shm_file;
91937 	long unsigned int shm_nattch;
91938 	long unsigned int shm_segsz;
91939 	time64_t shm_atim;
91940 	time64_t shm_dtim;
91941 	time64_t shm_ctim;
91942 	struct pid *shm_cprid;
91943 	struct pid *shm_lprid;
91944 	struct ucounts *mlock_ucounts;
91945 	struct task_struct *shm_creator;
91946 	struct list_head shm_clist;
91947 	struct ipc_namespace *ns;
91948 	long: 64;
91949 	long: 64;
91950 	long: 64;
91951 };
91952 
91953 struct shm_file_data {
91954 	int id;
91955 	struct ipc_namespace *ns;
91956 	struct file *file;
91957 	const struct vm_operations_struct *vm_ops;
91958 };
91959 
91960 enum key_lookup_flag {
91961 	KEY_LOOKUP_CREATE = 1,
91962 	KEY_LOOKUP_PARTIAL = 2,
91963 	KEY_LOOKUP_ALL = 3,
91964 };
91965 
91966 struct keyctl_pkey_query {
91967 	__u32 supported_ops;
91968 	__u32 key_size;
91969 	__u16 max_data_size;
91970 	__u16 max_sig_size;
91971 	__u16 max_enc_size;
91972 	__u16 max_dec_size;
91973 	__u32 __spare[10];
91974 };
91975 
91976 struct keyctl_pkey_params {
91977 	__s32 key_id;
91978 	__u32 in_len;
91979 	union {
91980 		__u32 out_len;
91981 		__u32 in2_len;
91982 	};
91983 	__u32 __spare[7];
91984 };
91985 
91986 enum {
91987 	Opt_err___2 = 0,
91988 	Opt_enc = 1,
91989 	Opt_hash = 2,
91990 };
91991 
91992 struct xattr;
91993 
91994 typedef int (*initxattrs)(struct inode *, const struct xattr *, void *);
91995 
91996 struct xattr {
91997 	const char *name;
91998 	void *value;
91999 	size_t value_len;
92000 };
92001 
92002 enum {
92003 	SELNL_MSG_SETENFORCE = 16,
92004 	SELNL_MSG_POLICYLOAD = 17,
92005 	SELNL_MSG_MAX = 18,
92006 };
92007 
92008 enum selinux_nlgroups {
92009 	SELNLGRP_NONE = 0,
92010 	SELNLGRP_AVC = 1,
92011 	__SELNLGRP_MAX = 2,
92012 };
92013 
92014 struct selnl_msg_setenforce {
92015 	__s32 val;
92016 };
92017 
92018 struct selnl_msg_policyload {
92019 	__u32 seqno;
92020 };
92021 
92022 struct netif_security_struct {
92023 	struct net *ns;
92024 	int ifindex;
92025 	u32 sid;
92026 };
92027 
92028 struct sel_netif {
92029 	struct list_head list;
92030 	struct netif_security_struct nsec;
92031 	struct callback_head callback_head;
92032 };
92033 
92034 struct selinux_policy_convert_data {
92035 	struct convert_context_args args;
92036 	struct sidtab_convert_params sidtab_params;
92037 };
92038 
92039 struct selinux_audit_rule {
92040 	u32 au_seqno;
92041 	struct context au_ctxt;
92042 };
92043 
92044 struct aa_task_ctx {
92045 	struct aa_label *nnp;
92046 	struct aa_label *onexec;
92047 	struct aa_label *previous;
92048 	u64 token;
92049 };
92050 
92051 struct aa_sk_ctx {
92052 	struct aa_label *label;
92053 	struct aa_label *peer;
92054 };
92055 
92056 union aa_buffer {
92057 	struct list_head list;
92058 	char buffer[1];
92059 };
92060 
92061 enum devcg_behavior {
92062 	DEVCG_DEFAULT_NONE = 0,
92063 	DEVCG_DEFAULT_ALLOW = 1,
92064 	DEVCG_DEFAULT_DENY = 2,
92065 };
92066 
92067 struct dev_exception_item {
92068 	u32 major;
92069 	u32 minor;
92070 	short int type;
92071 	short int access;
92072 	struct list_head list;
92073 	struct callback_head rcu;
92074 };
92075 
92076 struct dev_cgroup {
92077 	struct cgroup_subsys_state css;
92078 	struct list_head exceptions;
92079 	enum devcg_behavior behavior;
92080 };
92081 
92082 struct crypto_queue {
92083 	struct list_head list;
92084 	struct list_head *backlog;
92085 	unsigned int qlen;
92086 	unsigned int max_qlen;
92087 };
92088 
92089 struct crypto_attr_alg {
92090 	char name[128];
92091 };
92092 
92093 struct crypto_attr_type {
92094 	u32 type;
92095 	u32 mask;
92096 };
92097 
92098 enum {
92099 	CRYPTOA_UNSPEC = 0,
92100 	CRYPTOA_ALG = 1,
92101 	CRYPTOA_TYPE = 2,
92102 	__CRYPTOA_MAX = 3,
92103 };
92104 
92105 struct crypto_hash_walk {
92106 	char *data;
92107 	unsigned int offset;
92108 	unsigned int alignmask;
92109 	struct page *pg;
92110 	unsigned int entrylen;
92111 	unsigned int total;
92112 	struct scatterlist *sg;
92113 	unsigned int flags;
92114 };
92115 
92116 struct shash_instance {
92117 	void (*free)(struct shash_instance *);
92118 	union {
92119 		struct {
92120 			char head[96];
92121 			struct crypto_instance base;
92122 		} s;
92123 		struct shash_alg alg;
92124 	};
92125 };
92126 
92127 struct crypto_shash_spawn {
92128 	struct crypto_spawn base;
92129 };
92130 
92131 struct crypto_report_hash {
92132 	char type[64];
92133 	unsigned int blocksize;
92134 	unsigned int digestsize;
92135 };
92136 
92137 struct dh_ctx {
92138 	MPI p;
92139 	MPI g;
92140 	MPI xa;
92141 };
92142 
92143 struct ecc_point {
92144 	u64 *x;
92145 	u64 *y;
92146 	u8 ndigits;
92147 };
92148 
92149 struct ecc_curve {
92150 	char *name;
92151 	struct ecc_point g;
92152 	u64 *p;
92153 	u64 *n;
92154 	u64 *a;
92155 	u64 *b;
92156 };
92157 
92158 struct ecc_ctx {
92159 	unsigned int curve_id;
92160 	const struct ecc_curve *curve;
92161 	bool pub_key_set;
92162 	u64 x[8];
92163 	u64 y[8];
92164 	struct ecc_point pub_key;
92165 };
92166 
92167 struct ecdsa_signature_ctx {
92168 	const struct ecc_curve *curve;
92169 	u64 r[8];
92170 	u64 s[8];
92171 };
92172 
92173 struct cryptomgr_param {
92174 	struct rtattr *tb[34];
92175 	struct {
92176 		struct rtattr attr;
92177 		struct crypto_attr_type data;
92178 	} type;
92179 	struct {
92180 		struct rtattr attr;
92181 		struct crypto_attr_alg data;
92182 	} attrs[32];
92183 	char template[128];
92184 	struct crypto_larval *larval;
92185 	u32 otype;
92186 	u32 omask;
92187 };
92188 
92189 struct crypto_test_param {
92190 	char driver[128];
92191 	char alg[128];
92192 	u32 type;
92193 };
92194 
92195 enum blake2b_lengths {
92196 	BLAKE2B_BLOCK_SIZE = 128,
92197 	BLAKE2B_HASH_SIZE = 64,
92198 	BLAKE2B_KEY_SIZE = 64,
92199 	BLAKE2B_160_HASH_SIZE = 20,
92200 	BLAKE2B_256_HASH_SIZE = 32,
92201 	BLAKE2B_384_HASH_SIZE = 48,
92202 	BLAKE2B_512_HASH_SIZE = 64,
92203 };
92204 
92205 struct blake2b_state {
92206 	u64 h[8];
92207 	u64 t[2];
92208 	u64 f[2];
92209 	u8 buf[128];
92210 	unsigned int buflen;
92211 	unsigned int outlen;
92212 };
92213 
92214 enum blake2b_iv {
92215 	BLAKE2B_IV0 = 7640891576956012808ULL,
92216 	BLAKE2B_IV1 = 13503953896175478587ULL,
92217 	BLAKE2B_IV2 = 4354685564936845355ULL,
92218 	BLAKE2B_IV3 = 11912009170470909681ULL,
92219 	BLAKE2B_IV4 = 5840696475078001361ULL,
92220 	BLAKE2B_IV5 = 11170449401992604703ULL,
92221 	BLAKE2B_IV6 = 2270897969802886507ULL,
92222 	BLAKE2B_IV7 = 6620516959819538809ULL,
92223 };
92224 
92225 typedef void (*blake2b_compress_t)(struct blake2b_state *, const u8 *, size_t, u32);
92226 
92227 struct blake2b_tfm_ctx {
92228 	u8 key[64];
92229 	unsigned int keylen;
92230 };
92231 
92232 struct crypto_report_rng {
92233 	char type[64];
92234 	unsigned int seedsize;
92235 };
92236 
92237 typedef struct {
92238 	u64 m_low;
92239 	u64 m_high;
92240 } uint128_t;
92241 
92242 struct bdev_inode {
92243 	struct block_device bdev;
92244 	struct inode vfs_inode;
92245 };
92246 
92247 enum {
92248 	PERCPU_REF_INIT_ATOMIC = 1,
92249 	PERCPU_REF_INIT_DEAD = 2,
92250 	PERCPU_REF_ALLOW_REINIT = 4,
92251 };
92252 
92253 struct blk_plug_cb;
92254 
92255 typedef void (*blk_plug_cb_fn)(struct blk_plug_cb *, bool);
92256 
92257 struct blk_plug_cb {
92258 	struct list_head list;
92259 	blk_plug_cb_fn callback;
92260 	void *data;
92261 };
92262 
92263 struct trace_event_raw_block_buffer {
92264 	struct trace_entry ent;
92265 	dev_t dev;
92266 	sector_t sector;
92267 	size_t size;
92268 	char __data[0];
92269 };
92270 
92271 struct trace_event_raw_block_rq_requeue {
92272 	struct trace_entry ent;
92273 	dev_t dev;
92274 	sector_t sector;
92275 	unsigned int nr_sector;
92276 	char rwbs[8];
92277 	u32 __data_loc_cmd;
92278 	char __data[0];
92279 };
92280 
92281 struct trace_event_raw_block_rq_completion {
92282 	struct trace_entry ent;
92283 	dev_t dev;
92284 	sector_t sector;
92285 	unsigned int nr_sector;
92286 	int error;
92287 	char rwbs[8];
92288 	u32 __data_loc_cmd;
92289 	char __data[0];
92290 };
92291 
92292 struct trace_event_raw_block_rq {
92293 	struct trace_entry ent;
92294 	dev_t dev;
92295 	sector_t sector;
92296 	unsigned int nr_sector;
92297 	unsigned int bytes;
92298 	char rwbs[8];
92299 	char comm[16];
92300 	u32 __data_loc_cmd;
92301 	char __data[0];
92302 };
92303 
92304 struct trace_event_raw_block_bio_complete {
92305 	struct trace_entry ent;
92306 	dev_t dev;
92307 	sector_t sector;
92308 	unsigned int nr_sector;
92309 	int error;
92310 	char rwbs[8];
92311 	char __data[0];
92312 };
92313 
92314 struct trace_event_raw_block_bio {
92315 	struct trace_entry ent;
92316 	dev_t dev;
92317 	sector_t sector;
92318 	unsigned int nr_sector;
92319 	char rwbs[8];
92320 	char comm[16];
92321 	char __data[0];
92322 };
92323 
92324 struct trace_event_raw_block_plug {
92325 	struct trace_entry ent;
92326 	char comm[16];
92327 	char __data[0];
92328 };
92329 
92330 struct trace_event_raw_block_unplug {
92331 	struct trace_entry ent;
92332 	int nr_rq;
92333 	char comm[16];
92334 	char __data[0];
92335 };
92336 
92337 struct trace_event_raw_block_split {
92338 	struct trace_entry ent;
92339 	dev_t dev;
92340 	sector_t sector;
92341 	sector_t new_sector;
92342 	char rwbs[8];
92343 	char comm[16];
92344 	char __data[0];
92345 };
92346 
92347 struct trace_event_raw_block_bio_remap {
92348 	struct trace_entry ent;
92349 	dev_t dev;
92350 	sector_t sector;
92351 	unsigned int nr_sector;
92352 	dev_t old_dev;
92353 	sector_t old_sector;
92354 	char rwbs[8];
92355 	char __data[0];
92356 };
92357 
92358 struct trace_event_raw_block_rq_remap {
92359 	struct trace_entry ent;
92360 	dev_t dev;
92361 	sector_t sector;
92362 	unsigned int nr_sector;
92363 	dev_t old_dev;
92364 	sector_t old_sector;
92365 	unsigned int nr_bios;
92366 	char rwbs[8];
92367 	char __data[0];
92368 };
92369 
92370 struct trace_event_data_offsets_block_buffer {};
92371 
92372 struct trace_event_data_offsets_block_rq_requeue {
92373 	u32 cmd;
92374 };
92375 
92376 struct trace_event_data_offsets_block_rq_completion {
92377 	u32 cmd;
92378 };
92379 
92380 struct trace_event_data_offsets_block_rq {
92381 	u32 cmd;
92382 };
92383 
92384 struct trace_event_data_offsets_block_bio_complete {};
92385 
92386 struct trace_event_data_offsets_block_bio {};
92387 
92388 struct trace_event_data_offsets_block_plug {};
92389 
92390 struct trace_event_data_offsets_block_unplug {};
92391 
92392 struct trace_event_data_offsets_block_split {};
92393 
92394 struct trace_event_data_offsets_block_bio_remap {};
92395 
92396 struct trace_event_data_offsets_block_rq_remap {};
92397 
92398 typedef void (*btf_trace_block_touch_buffer)(void *, struct buffer_head *);
92399 
92400 typedef void (*btf_trace_block_dirty_buffer)(void *, struct buffer_head *);
92401 
92402 typedef void (*btf_trace_block_rq_requeue)(void *, struct request *);
92403 
92404 typedef void (*btf_trace_block_rq_complete)(void *, struct request *, blk_status_t, unsigned int);
92405 
92406 typedef void (*btf_trace_block_rq_error)(void *, struct request *, blk_status_t, unsigned int);
92407 
92408 typedef void (*btf_trace_block_rq_insert)(void *, struct request *);
92409 
92410 typedef void (*btf_trace_block_rq_issue)(void *, struct request *);
92411 
92412 typedef void (*btf_trace_block_rq_merge)(void *, struct request *);
92413 
92414 typedef void (*btf_trace_block_bio_complete)(void *, struct request_queue *, struct bio *);
92415 
92416 typedef void (*btf_trace_block_bio_bounce)(void *, struct bio *);
92417 
92418 typedef void (*btf_trace_block_bio_backmerge)(void *, struct bio *);
92419 
92420 typedef void (*btf_trace_block_bio_frontmerge)(void *, struct bio *);
92421 
92422 typedef void (*btf_trace_block_bio_queue)(void *, struct bio *);
92423 
92424 typedef void (*btf_trace_block_getrq)(void *, struct bio *);
92425 
92426 typedef void (*btf_trace_block_plug)(void *, struct request_queue *);
92427 
92428 typedef void (*btf_trace_block_unplug)(void *, struct request_queue *, unsigned int, bool);
92429 
92430 typedef void (*btf_trace_block_split)(void *, struct bio *, unsigned int);
92431 
92432 typedef void (*btf_trace_block_bio_remap)(void *, struct bio *, dev_t, sector_t);
92433 
92434 typedef void (*btf_trace_block_rq_remap)(void *, struct request *, dev_t, sector_t);
92435 
92436 struct blk_queue_stats {
92437 	struct list_head callbacks;
92438 	spinlock_t lock;
92439 	int accounting;
92440 };
92441 
92442 struct _gpt_header {
92443 	__le64 signature;
92444 	__le32 revision;
92445 	__le32 header_size;
92446 	__le32 header_crc32;
92447 	__le32 reserved1;
92448 	__le64 my_lba;
92449 	__le64 alternate_lba;
92450 	__le64 first_usable_lba;
92451 	__le64 last_usable_lba;
92452 	efi_guid_t disk_guid;
92453 	__le64 partition_entry_lba;
92454 	__le32 num_partition_entries;
92455 	__le32 sizeof_partition_entry;
92456 	__le32 partition_entry_array_crc32;
92457 } __attribute__((packed));
92458 
92459 typedef struct _gpt_header gpt_header;
92460 
92461 struct _gpt_entry_attributes {
92462 	u64 required_to_function: 1;
92463 	u64 reserved: 47;
92464 	u64 type_guid_specific: 16;
92465 };
92466 
92467 typedef struct _gpt_entry_attributes gpt_entry_attributes;
92468 
92469 struct _gpt_entry {
92470 	efi_guid_t partition_type_guid;
92471 	efi_guid_t unique_partition_guid;
92472 	__le64 starting_lba;
92473 	__le64 ending_lba;
92474 	gpt_entry_attributes attributes;
92475 	__le16 partition_name[36];
92476 };
92477 
92478 typedef struct _gpt_entry gpt_entry;
92479 
92480 struct _gpt_mbr_record {
92481 	u8 boot_indicator;
92482 	u8 start_head;
92483 	u8 start_sector;
92484 	u8 start_track;
92485 	u8 os_type;
92486 	u8 end_head;
92487 	u8 end_sector;
92488 	u8 end_track;
92489 	__le32 starting_lba;
92490 	__le32 size_in_lba;
92491 };
92492 
92493 typedef struct _gpt_mbr_record gpt_mbr_record;
92494 
92495 struct _legacy_mbr {
92496 	u8 boot_code[440];
92497 	__le32 unique_mbr_signature;
92498 	__le16 unknown;
92499 	gpt_mbr_record partition_record[4];
92500 	__le16 signature;
92501 } __attribute__((packed));
92502 
92503 typedef struct _legacy_mbr legacy_mbr;
92504 
92505 struct blk_ia_range_sysfs_entry {
92506 	struct attribute attr;
92507 	ssize_t (*show)(struct blk_independent_access_range *, char *);
92508 };
92509 
92510 enum {
92511 	MILLION = 1000000,
92512 	MIN_PERIOD = 1000,
92513 	MAX_PERIOD = 1000000,
92514 	MARGIN_MIN_PCT = 10,
92515 	MARGIN_LOW_PCT = 20,
92516 	MARGIN_TARGET_PCT = 50,
92517 	INUSE_ADJ_STEP_PCT = 25,
92518 	TIMER_SLACK_PCT = 1,
92519 	WEIGHT_ONE = 65536,
92520 };
92521 
92522 enum {
92523 	VTIME_PER_SEC_SHIFT = 37ULL,
92524 	VTIME_PER_SEC = 137438953472ULL,
92525 	VTIME_PER_USEC = 137438ULL,
92526 	VTIME_PER_NSEC = 137ULL,
92527 	VRATE_MIN_PPM = 10000ULL,
92528 	VRATE_MAX_PPM = 100000000ULL,
92529 	VRATE_MIN = 1374ULL,
92530 	VRATE_CLAMP_ADJ_PCT = 4ULL,
92531 	RQ_WAIT_BUSY_PCT = 5ULL,
92532 	UNBUSY_THR_PCT = 75ULL,
92533 	MIN_DELAY_THR_PCT = 500ULL,
92534 	MAX_DELAY_THR_PCT = 25000ULL,
92535 	MIN_DELAY = 250ULL,
92536 	MAX_DELAY = 250000ULL,
92537 	DFGV_USAGE_PCT = 50ULL,
92538 	DFGV_PERIOD = 100000ULL,
92539 	MAX_LAGGING_PERIODS = 10ULL,
92540 	AUTOP_CYCLE_NSEC = 10000000000ULL,
92541 	IOC_PAGE_SHIFT = 12ULL,
92542 	IOC_PAGE_SIZE = 4096ULL,
92543 	IOC_SECT_TO_PAGE_SHIFT = 3ULL,
92544 	LCOEF_RANDIO_PAGES = 4096ULL,
92545 };
92546 
92547 enum ioc_running {
92548 	IOC_IDLE = 0,
92549 	IOC_RUNNING = 1,
92550 	IOC_STOP = 2,
92551 };
92552 
92553 enum {
92554 	QOS_ENABLE = 0,
92555 	QOS_CTRL = 1,
92556 	NR_QOS_CTRL_PARAMS = 2,
92557 };
92558 
92559 enum {
92560 	QOS_RPPM = 0,
92561 	QOS_RLAT = 1,
92562 	QOS_WPPM = 2,
92563 	QOS_WLAT = 3,
92564 	QOS_MIN = 4,
92565 	QOS_MAX = 5,
92566 	NR_QOS_PARAMS = 6,
92567 };
92568 
92569 enum {
92570 	COST_CTRL = 0,
92571 	COST_MODEL = 1,
92572 	NR_COST_CTRL_PARAMS = 2,
92573 };
92574 
92575 enum {
92576 	I_LCOEF_RBPS = 0,
92577 	I_LCOEF_RSEQIOPS = 1,
92578 	I_LCOEF_RRANDIOPS = 2,
92579 	I_LCOEF_WBPS = 3,
92580 	I_LCOEF_WSEQIOPS = 4,
92581 	I_LCOEF_WRANDIOPS = 5,
92582 	NR_I_LCOEFS = 6,
92583 };
92584 
92585 enum {
92586 	LCOEF_RPAGE = 0,
92587 	LCOEF_RSEQIO = 1,
92588 	LCOEF_RRANDIO = 2,
92589 	LCOEF_WPAGE = 3,
92590 	LCOEF_WSEQIO = 4,
92591 	LCOEF_WRANDIO = 5,
92592 	NR_LCOEFS = 6,
92593 };
92594 
92595 enum {
92596 	AUTOP_INVALID = 0,
92597 	AUTOP_HDD = 1,
92598 	AUTOP_SSD_QD1 = 2,
92599 	AUTOP_SSD_DFL = 3,
92600 	AUTOP_SSD_FAST = 4,
92601 };
92602 
92603 struct ioc_params {
92604 	u32 qos[6];
92605 	u64 i_lcoefs[6];
92606 	u64 lcoefs[6];
92607 	u32 too_fast_vrate_pct;
92608 	u32 too_slow_vrate_pct;
92609 };
92610 
92611 struct ioc_margins {
92612 	s64 min;
92613 	s64 low;
92614 	s64 target;
92615 };
92616 
92617 struct ioc_missed {
92618 	local_t nr_met;
92619 	local_t nr_missed;
92620 	u32 last_met;
92621 	u32 last_missed;
92622 };
92623 
92624 struct ioc_pcpu_stat {
92625 	struct ioc_missed missed[2];
92626 	local64_t rq_wait_ns;
92627 	u64 last_rq_wait_ns;
92628 };
92629 
92630 struct ioc {
92631 	struct rq_qos rqos;
92632 	bool enabled;
92633 	struct ioc_params params;
92634 	struct ioc_margins margins;
92635 	u32 period_us;
92636 	u32 timer_slack_ns;
92637 	u64 vrate_min;
92638 	u64 vrate_max;
92639 	spinlock_t lock;
92640 	struct timer_list timer;
92641 	struct list_head active_iocgs;
92642 	struct ioc_pcpu_stat *pcpu_stat;
92643 	enum ioc_running running;
92644 	atomic64_t vtime_rate;
92645 	u64 vtime_base_rate;
92646 	s64 vtime_err;
92647 	seqcount_spinlock_t period_seqcount;
92648 	u64 period_at;
92649 	u64 period_at_vtime;
92650 	atomic64_t cur_period;
92651 	int busy_level;
92652 	bool weights_updated;
92653 	atomic_t hweight_gen;
92654 	u64 dfgv_period_at;
92655 	u64 dfgv_period_rem;
92656 	u64 dfgv_usage_us_sum;
92657 	u64 autop_too_fast_at;
92658 	u64 autop_too_slow_at;
92659 	int autop_idx;
92660 	bool user_qos_params: 1;
92661 	bool user_cost_model: 1;
92662 };
92663 
92664 struct iocg_pcpu_stat {
92665 	local64_t abs_vusage;
92666 };
92667 
92668 struct iocg_stat {
92669 	u64 usage_us;
92670 	u64 wait_us;
92671 	u64 indebt_us;
92672 	u64 indelay_us;
92673 };
92674 
92675 struct ioc_gq {
92676 	struct blkg_policy_data pd;
92677 	struct ioc *ioc;
92678 	u32 cfg_weight;
92679 	u32 weight;
92680 	u32 active;
92681 	u32 inuse;
92682 	u32 last_inuse;
92683 	s64 saved_margin;
92684 	sector_t cursor;
92685 	atomic64_t vtime;
92686 	atomic64_t done_vtime;
92687 	u64 abs_vdebt;
92688 	u64 delay;
92689 	u64 delay_at;
92690 	atomic64_t active_period;
92691 	struct list_head active_list;
92692 	u64 child_active_sum;
92693 	u64 child_inuse_sum;
92694 	u64 child_adjusted_sum;
92695 	int hweight_gen;
92696 	u32 hweight_active;
92697 	u32 hweight_inuse;
92698 	u32 hweight_donating;
92699 	u32 hweight_after_donation;
92700 	struct list_head walk_list;
92701 	struct list_head surplus_list;
92702 	struct wait_queue_head waitq;
92703 	struct hrtimer waitq_timer;
92704 	u64 activated_at;
92705 	struct iocg_pcpu_stat *pcpu_stat;
92706 	struct iocg_stat stat;
92707 	struct iocg_stat last_stat;
92708 	u64 last_stat_abs_vusage;
92709 	u64 usage_delta_us;
92710 	u64 wait_since;
92711 	u64 indebt_since;
92712 	u64 indelay_since;
92713 	int level;
92714 	struct ioc_gq *ancestors[0];
92715 };
92716 
92717 struct ioc_cgrp {
92718 	struct blkcg_policy_data cpd;
92719 	unsigned int dfl_weight;
92720 };
92721 
92722 struct ioc_now {
92723 	u64 now_ns;
92724 	u64 now;
92725 	u64 vnow;
92726 };
92727 
92728 struct iocg_wait {
92729 	struct wait_queue_entry wait;
92730 	struct bio *bio;
92731 	u64 abs_cost;
92732 	bool committed;
92733 };
92734 
92735 struct iocg_wake_ctx {
92736 	struct ioc_gq *iocg;
92737 	u32 hw_inuse;
92738 	s64 vbudget;
92739 };
92740 
92741 struct trace_event_raw_iocost_iocg_state {
92742 	struct trace_entry ent;
92743 	u32 __data_loc_devname;
92744 	u32 __data_loc_cgroup;
92745 	u64 now;
92746 	u64 vnow;
92747 	u64 vrate;
92748 	u64 last_period;
92749 	u64 cur_period;
92750 	u64 vtime;
92751 	u32 weight;
92752 	u32 inuse;
92753 	u64 hweight_active;
92754 	u64 hweight_inuse;
92755 	char __data[0];
92756 };
92757 
92758 struct trace_event_raw_iocg_inuse_update {
92759 	struct trace_entry ent;
92760 	u32 __data_loc_devname;
92761 	u32 __data_loc_cgroup;
92762 	u64 now;
92763 	u32 old_inuse;
92764 	u32 new_inuse;
92765 	u64 old_hweight_inuse;
92766 	u64 new_hweight_inuse;
92767 	char __data[0];
92768 };
92769 
92770 struct trace_event_raw_iocost_ioc_vrate_adj {
92771 	struct trace_entry ent;
92772 	u32 __data_loc_devname;
92773 	u64 old_vrate;
92774 	u64 new_vrate;
92775 	int busy_level;
92776 	u32 read_missed_ppm;
92777 	u32 write_missed_ppm;
92778 	u32 rq_wait_pct;
92779 	int nr_lagging;
92780 	int nr_shortages;
92781 	char __data[0];
92782 };
92783 
92784 struct trace_event_raw_iocost_iocg_forgive_debt {
92785 	struct trace_entry ent;
92786 	u32 __data_loc_devname;
92787 	u32 __data_loc_cgroup;
92788 	u64 now;
92789 	u64 vnow;
92790 	u32 usage_pct;
92791 	u64 old_debt;
92792 	u64 new_debt;
92793 	u64 old_delay;
92794 	u64 new_delay;
92795 	char __data[0];
92796 };
92797 
92798 struct trace_event_data_offsets_iocost_iocg_state {
92799 	u32 devname;
92800 	u32 cgroup;
92801 };
92802 
92803 struct trace_event_data_offsets_iocg_inuse_update {
92804 	u32 devname;
92805 	u32 cgroup;
92806 };
92807 
92808 struct trace_event_data_offsets_iocost_ioc_vrate_adj {
92809 	u32 devname;
92810 };
92811 
92812 struct trace_event_data_offsets_iocost_iocg_forgive_debt {
92813 	u32 devname;
92814 	u32 cgroup;
92815 };
92816 
92817 typedef void (*btf_trace_iocost_iocg_activate)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64);
92818 
92819 typedef void (*btf_trace_iocost_iocg_idle)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64);
92820 
92821 typedef void (*btf_trace_iocost_inuse_shortage)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64);
92822 
92823 typedef void (*btf_trace_iocost_inuse_transfer)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64);
92824 
92825 typedef void (*btf_trace_iocost_inuse_adjust)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64);
92826 
92827 typedef void (*btf_trace_iocost_ioc_vrate_adj)(void *, struct ioc *, u64, u32 *, u32, int, int);
92828 
92829 typedef void (*btf_trace_iocost_iocg_forgive_debt)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u64, u64, u64, u64);
92830 
92831 enum wbt_flags {
92832 	WBT_TRACKED = 1,
92833 	WBT_READ = 2,
92834 	WBT_KSWAPD = 4,
92835 	WBT_DISCARD = 8,
92836 	WBT_NR_BITS = 4,
92837 };
92838 
92839 enum {
92840 	WBT_STATE_ON_DEFAULT = 1,
92841 	WBT_STATE_ON_MANUAL = 2,
92842 	WBT_STATE_OFF_DEFAULT = 3,
92843 	WBT_STATE_OFF_MANUAL = 4,
92844 };
92845 
92846 struct rq_wb {
92847 	unsigned int wb_background;
92848 	unsigned int wb_normal;
92849 	short int enable_state;
92850 	unsigned int unknown_cnt;
92851 	u64 win_nsec;
92852 	u64 cur_win_nsec;
92853 	struct blk_stat_callback *cb;
92854 	u64 sync_issue;
92855 	void *sync_cookie;
92856 	unsigned int wc;
92857 	long unsigned int last_issue;
92858 	long unsigned int last_comp;
92859 	long unsigned int min_lat_nsec;
92860 	struct rq_qos rqos;
92861 	struct rq_wait rq_wait[3];
92862 	struct rq_depth rq_depth;
92863 };
92864 
92865 struct trace_event_raw_wbt_stat {
92866 	struct trace_entry ent;
92867 	char name[32];
92868 	s64 rmean;
92869 	u64 rmin;
92870 	u64 rmax;
92871 	s64 rnr_samples;
92872 	s64 rtime;
92873 	s64 wmean;
92874 	u64 wmin;
92875 	u64 wmax;
92876 	s64 wnr_samples;
92877 	s64 wtime;
92878 	char __data[0];
92879 };
92880 
92881 struct trace_event_raw_wbt_lat {
92882 	struct trace_entry ent;
92883 	char name[32];
92884 	long unsigned int lat;
92885 	char __data[0];
92886 };
92887 
92888 struct trace_event_raw_wbt_step {
92889 	struct trace_entry ent;
92890 	char name[32];
92891 	const char *msg;
92892 	int step;
92893 	long unsigned int window;
92894 	unsigned int bg;
92895 	unsigned int normal;
92896 	unsigned int max;
92897 	char __data[0];
92898 };
92899 
92900 struct trace_event_raw_wbt_timer {
92901 	struct trace_entry ent;
92902 	char name[32];
92903 	unsigned int status;
92904 	int step;
92905 	unsigned int inflight;
92906 	char __data[0];
92907 };
92908 
92909 struct trace_event_data_offsets_wbt_stat {};
92910 
92911 struct trace_event_data_offsets_wbt_lat {};
92912 
92913 struct trace_event_data_offsets_wbt_step {};
92914 
92915 struct trace_event_data_offsets_wbt_timer {};
92916 
92917 typedef void (*btf_trace_wbt_stat)(void *, struct backing_dev_info *, struct blk_rq_stat *);
92918 
92919 typedef void (*btf_trace_wbt_lat)(void *, struct backing_dev_info *, long unsigned int);
92920 
92921 typedef void (*btf_trace_wbt_step)(void *, struct backing_dev_info *, const char *, int, long unsigned int, unsigned int, unsigned int, unsigned int);
92922 
92923 typedef void (*btf_trace_wbt_timer)(void *, struct backing_dev_info *, unsigned int, int, unsigned int);
92924 
92925 enum {
92926 	RWB_DEF_DEPTH = 16,
92927 	RWB_WINDOW_NSEC = 100000000,
92928 	RWB_MIN_WRITE_SAMPLES = 3,
92929 	RWB_UNKNOWN_BUMP = 5,
92930 };
92931 
92932 enum {
92933 	LAT_OK = 1,
92934 	LAT_UNKNOWN = 2,
92935 	LAT_UNKNOWN_WRITES = 3,
92936 	LAT_EXCEEDED = 4,
92937 };
92938 
92939 struct wbt_wait_data {
92940 	struct rq_wb *rwb;
92941 	enum wbt_flags wb_acct;
92942 	blk_opf_t opf;
92943 };
92944 
92945 struct bd_holder_disk {
92946 	struct list_head list;
92947 	struct kobject *holder_dir;
92948 	int refcnt;
92949 };
92950 
92951 struct io_xattr {
92952 	struct file *file;
92953 	struct xattr_ctx ctx;
92954 	struct filename *filename;
92955 };
92956 
92957 struct io_sync {
92958 	struct file *file;
92959 	loff_t len;
92960 	loff_t off;
92961 	int flags;
92962 	int mode;
92963 };
92964 
92965 struct io_open {
92966 	struct file *file;
92967 	int dfd;
92968 	u32 file_slot;
92969 	struct filename *filename;
92970 	struct open_how how;
92971 	long unsigned int nofile;
92972 };
92973 
92974 struct io_close {
92975 	struct file *file;
92976 	int fd;
92977 	u32 file_slot;
92978 };
92979 
92980 struct user_msghdr {
92981 	void *msg_name;
92982 	int msg_namelen;
92983 	struct iovec *msg_iov;
92984 	__kernel_size_t msg_iovlen;
92985 	void *msg_control;
92986 	__kernel_size_t msg_controllen;
92987 	unsigned int msg_flags;
92988 };
92989 
92990 typedef s32 compat_int_t;
92991 
92992 struct compat_msghdr {
92993 	compat_uptr_t msg_name;
92994 	compat_int_t msg_namelen;
92995 	compat_uptr_t msg_iov;
92996 	compat_size_t msg_iovlen;
92997 	compat_uptr_t msg_control;
92998 	compat_size_t msg_controllen;
92999 	compat_uint_t msg_flags;
93000 };
93001 
93002 struct io_uring_recvmsg_out {
93003 	__u32 namelen;
93004 	__u32 controllen;
93005 	__u32 payloadlen;
93006 	__u32 flags;
93007 };
93008 
93009 struct io_async_msghdr {
93010 	union {
93011 		struct iovec fast_iov[8];
93012 		struct {
93013 			struct iovec fast_iov_one;
93014 			__kernel_size_t controllen;
93015 			int namelen;
93016 			__kernel_size_t payloadlen;
93017 		};
93018 		struct io_cache_entry cache;
93019 	};
93020 	struct iovec *free_iov;
93021 	struct sockaddr *uaddr;
93022 	struct msghdr msg;
93023 	struct __kernel_sockaddr_storage addr;
93024 };
93025 
93026 struct io_async_connect {
93027 	struct __kernel_sockaddr_storage address;
93028 };
93029 
93030 struct io_shutdown {
93031 	struct file *file;
93032 	int how;
93033 };
93034 
93035 struct io_accept {
93036 	struct file *file;
93037 	struct sockaddr *addr;
93038 	int *addr_len;
93039 	int flags;
93040 	u32 file_slot;
93041 	long unsigned int nofile;
93042 };
93043 
93044 struct io_socket {
93045 	struct file *file;
93046 	int domain;
93047 	int type;
93048 	int protocol;
93049 	int flags;
93050 	u32 file_slot;
93051 	long unsigned int nofile;
93052 };
93053 
93054 struct io_connect {
93055 	struct file *file;
93056 	struct sockaddr *addr;
93057 	int addr_len;
93058 	bool in_progress;
93059 };
93060 
93061 struct io_sr_msg {
93062 	struct file *file;
93063 	union {
93064 		struct compat_msghdr *umsg_compat;
93065 		struct user_msghdr *umsg;
93066 		void *buf;
93067 	};
93068 	unsigned int len;
93069 	unsigned int done_io;
93070 	unsigned int msg_flags;
93071 	u16 flags;
93072 	u16 addr_len;
93073 	u16 buf_group;
93074 	void *addr;
93075 	struct io_kiocb *notif;
93076 };
93077 
93078 struct io_recvmsg_multishot_hdr {
93079 	struct io_uring_recvmsg_out msg;
93080 	struct __kernel_sockaddr_storage addr;
93081 };
93082 
93083 struct io_uring_sync_cancel_reg {
93084 	__u64 addr;
93085 	__s32 fd;
93086 	__u32 flags;
93087 	struct __kernel_timespec timeout;
93088 	__u64 pad[4];
93089 };
93090 
93091 struct io_cancel {
93092 	struct file *file;
93093 	u64 addr;
93094 	u32 flags;
93095 	s32 fd;
93096 };
93097 
93098 struct io_uring_rsrc_register {
93099 	__u32 nr;
93100 	__u32 flags;
93101 	__u64 resv2;
93102 	__u64 data;
93103 	__u64 tags;
93104 };
93105 
93106 struct io_uring_rsrc_update2 {
93107 	__u32 offset;
93108 	__u32 resv;
93109 	__u64 data;
93110 	__u64 tags;
93111 	__u32 nr;
93112 	__u32 resv2;
93113 };
93114 
93115 struct io_rsrc_update {
93116 	struct file *file;
93117 	u64 arg;
93118 	u32 nr_args;
93119 	u32 offset;
93120 };
93121 
93122 struct csum_state {
93123 	__wsum csum;
93124 	size_t off;
93125 };
93126 
93127 typedef s32 compat_ssize_t;
93128 
93129 struct once_work {
93130 	struct work_struct work;
93131 	struct static_key_true *key;
93132 	struct module *module;
93133 };
93134 
93135 struct btree_head {
93136 	long unsigned int *node;
93137 	mempool_t *mempool;
93138 	int height;
93139 };
93140 
93141 struct btree_geo {
93142 	int keylen;
93143 	int no_pairs;
93144 	int no_longs;
93145 };
93146 
93147 typedef void (*visitor128_t)(void *, long unsigned int, u64, u64, size_t);
93148 
93149 typedef void (*visitorl_t)(void *, long unsigned int, long unsigned int, size_t);
93150 
93151 typedef void (*visitor32_t)(void *, long unsigned int, u32, size_t);
93152 
93153 typedef void (*visitor64_t)(void *, long unsigned int, u64, size_t);
93154 
93155 struct gen_pool_chunk {
93156 	struct list_head next_chunk;
93157 	atomic_long_t avail;
93158 	phys_addr_t phys_addr;
93159 	void *owner;
93160 	long unsigned int start_addr;
93161 	long unsigned int end_addr;
93162 	long unsigned int bits[0];
93163 };
93164 
93165 struct genpool_data_align {
93166 	int align;
93167 };
93168 
93169 struct genpool_data_fixed {
93170 	long unsigned int offset;
93171 };
93172 
93173 typedef enum {
93174 	ZSTD_c_compressionLevel = 100,
93175 	ZSTD_c_windowLog = 101,
93176 	ZSTD_c_hashLog = 102,
93177 	ZSTD_c_chainLog = 103,
93178 	ZSTD_c_searchLog = 104,
93179 	ZSTD_c_minMatch = 105,
93180 	ZSTD_c_targetLength = 106,
93181 	ZSTD_c_strategy = 107,
93182 	ZSTD_c_enableLongDistanceMatching = 160,
93183 	ZSTD_c_ldmHashLog = 161,
93184 	ZSTD_c_ldmMinMatch = 162,
93185 	ZSTD_c_ldmBucketSizeLog = 163,
93186 	ZSTD_c_ldmHashRateLog = 164,
93187 	ZSTD_c_contentSizeFlag = 200,
93188 	ZSTD_c_checksumFlag = 201,
93189 	ZSTD_c_dictIDFlag = 202,
93190 	ZSTD_c_nbWorkers = 400,
93191 	ZSTD_c_jobSize = 401,
93192 	ZSTD_c_overlapLog = 402,
93193 	ZSTD_c_experimentalParam1 = 500,
93194 	ZSTD_c_experimentalParam2 = 10,
93195 	ZSTD_c_experimentalParam3 = 1000,
93196 	ZSTD_c_experimentalParam4 = 1001,
93197 	ZSTD_c_experimentalParam5 = 1002,
93198 	ZSTD_c_experimentalParam6 = 1003,
93199 	ZSTD_c_experimentalParam7 = 1004,
93200 	ZSTD_c_experimentalParam8 = 1005,
93201 	ZSTD_c_experimentalParam9 = 1006,
93202 	ZSTD_c_experimentalParam10 = 1007,
93203 	ZSTD_c_experimentalParam11 = 1008,
93204 	ZSTD_c_experimentalParam12 = 1009,
93205 	ZSTD_c_experimentalParam13 = 1010,
93206 	ZSTD_c_experimentalParam14 = 1011,
93207 	ZSTD_c_experimentalParam15 = 1012,
93208 } ZSTD_cParameter;
93209 
93210 typedef enum {
93211 	ZSTD_reset_session_only = 1,
93212 	ZSTD_reset_parameters = 2,
93213 	ZSTD_reset_session_and_parameters = 3,
93214 } ZSTD_ResetDirective;
93215 
93216 typedef ZSTD_CCtx ZSTD_CStream;
93217 
93218 typedef ZSTD_CStream zstd_cstream;
93219 
93220 struct nla_bitfield32 {
93221 	__u32 value;
93222 	__u32 selector;
93223 };
93224 
93225 struct barrett_ctx_s;
93226 
93227 typedef struct barrett_ctx_s *mpi_barrett_t___2;
93228 
93229 struct gcry_mpi_point {
93230 	MPI x;
93231 	MPI y;
93232 	MPI z;
93233 };
93234 
93235 typedef struct gcry_mpi_point *MPI_POINT;
93236 
93237 enum gcry_mpi_ec_models {
93238 	MPI_EC_WEIERSTRASS = 0,
93239 	MPI_EC_MONTGOMERY = 1,
93240 	MPI_EC_EDWARDS = 2,
93241 };
93242 
93243 enum ecc_dialects {
93244 	ECC_DIALECT_STANDARD = 0,
93245 	ECC_DIALECT_ED25519 = 1,
93246 	ECC_DIALECT_SAFECURVE = 2,
93247 };
93248 
93249 struct mpi_ec_ctx {
93250 	enum gcry_mpi_ec_models model;
93251 	enum ecc_dialects dialect;
93252 	int flags;
93253 	unsigned int nbits;
93254 	MPI p;
93255 	MPI a;
93256 	MPI b;
93257 	MPI_POINT G;
93258 	MPI n;
93259 	unsigned int h;
93260 	MPI_POINT Q;
93261 	MPI d;
93262 	const char *name;
93263 	struct {
93264 		struct {
93265 			unsigned int a_is_pminus3: 1;
93266 			unsigned int two_inv_p: 1;
93267 		} valid;
93268 		int a_is_pminus3;
93269 		MPI two_inv_p;
93270 		mpi_barrett_t___2 p_barrett;
93271 		MPI scratch[11];
93272 	} t;
93273 	void (*addm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
93274 	void (*subm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
93275 	void (*mulm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
93276 	void (*pow2)(MPI, const MPI, struct mpi_ec_ctx *);
93277 	void (*mul2)(MPI, MPI, struct mpi_ec_ctx *);
93278 };
93279 
93280 struct field_table {
93281 	const char *p;
93282 	void (*addm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
93283 	void (*subm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
93284 	void (*mulm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
93285 	void (*mul2)(MPI, MPI, struct mpi_ec_ctx *);
93286 	void (*pow2)(MPI, const MPI, struct mpi_ec_ctx *);
93287 };
93288 
93289 enum {
93290 	IRQ_POLL_F_SCHED = 0,
93291 	IRQ_POLL_F_DISABLE = 1,
93292 };
93293 
93294 struct acpi_madt_ht_pic {
93295 	struct acpi_subtable_header header;
93296 	u8 version;
93297 	u64 address;
93298 	u16 size;
93299 	u8 cascade[8];
93300 } __attribute__((packed));
93301 
93302 struct htvec {
93303 	int num_parents;
93304 	void *base;
93305 	struct irq_domain *htvec_domain;
93306 	raw_spinlock_t htvec_lock;
93307 	u32 saved_vec_en[8];
93308 };
93309 
93310 enum of_gpio_flags {
93311 	OF_GPIO_ACTIVE_LOW = 1,
93312 	OF_GPIO_SINGLE_ENDED = 2,
93313 	OF_GPIO_OPEN_DRAIN = 4,
93314 	OF_GPIO_TRANSITORY = 8,
93315 	OF_GPIO_PULL_UP = 16,
93316 	OF_GPIO_PULL_DOWN = 32,
93317 	OF_GPIO_PULL_DISABLE = 64,
93318 };
93319 
93320 struct of_mm_gpio_chip {
93321 	struct gpio_chip gc;
93322 	void (*save_regs)(struct of_mm_gpio_chip *);
93323 	void *regs;
93324 };
93325 
93326 typedef struct gpio_desc * (*of_find_gpio_quirk)(struct device_node *, const char *, unsigned int, enum of_gpio_flags *);
93327 
93328 struct of_rename_gpio {
93329 	const char *con_id;
93330 	const char *legacy_id;
93331 	const char *compatible;
93332 };
93333 
93334 struct acpi_gpiolib_dmi_quirk {
93335 	bool no_edge_events_on_boot;
93336 	char *ignore_wake;
93337 	char *ignore_interrupt;
93338 };
93339 
93340 struct acpi_gpio_event {
93341 	struct list_head node;
93342 	acpi_handle handle;
93343 	irq_handler_t handler;
93344 	unsigned int pin;
93345 	unsigned int irq;
93346 	long unsigned int irqflags;
93347 	bool irq_is_wake;
93348 	bool irq_requested;
93349 	struct gpio_desc *desc;
93350 };
93351 
93352 struct acpi_gpio_connection {
93353 	struct list_head node;
93354 	unsigned int pin;
93355 	struct gpio_desc *desc;
93356 };
93357 
93358 struct acpi_gpio_chip {
93359 	struct acpi_connection_info conn_info;
93360 	struct list_head conns;
93361 	struct mutex conn_lock;
93362 	struct gpio_chip *chip;
93363 	struct list_head events;
93364 	struct list_head deferred_req_irqs_list_entry;
93365 };
93366 
93367 struct acpi_gpio_info {
93368 	struct acpi_device *adev;
93369 	enum gpiod_flags flags;
93370 	bool gpioint;
93371 	int pin_config;
93372 	int polarity;
93373 	int triggering;
93374 	bool wake_capable;
93375 	unsigned int debounce;
93376 	unsigned int quirks;
93377 };
93378 
93379 struct acpi_gpio_lookup {
93380 	struct acpi_gpio_info info;
93381 	int index;
93382 	u16 pin_index;
93383 	bool active_low;
93384 	struct gpio_desc *desc;
93385 	int n;
93386 };
93387 
93388 struct pwm_lookup {
93389 	struct list_head list;
93390 	const char *provider;
93391 	unsigned int index;
93392 	const char *dev_id;
93393 	const char *con_id;
93394 	unsigned int period;
93395 	enum pwm_polarity polarity;
93396 	const char *module;
93397 };
93398 
93399 struct trace_event_raw_pwm {
93400 	struct trace_entry ent;
93401 	struct pwm_device *pwm;
93402 	u64 period;
93403 	u64 duty_cycle;
93404 	enum pwm_polarity polarity;
93405 	bool enabled;
93406 	int err;
93407 	char __data[0];
93408 };
93409 
93410 struct trace_event_data_offsets_pwm {};
93411 
93412 typedef void (*btf_trace_pwm_apply)(void *, struct pwm_device *, const struct pwm_state *, int);
93413 
93414 typedef void (*btf_trace_pwm_get)(void *, struct pwm_device *, const struct pwm_state *, int);
93415 
93416 enum pci_bar_type {
93417 	pci_bar_unknown = 0,
93418 	pci_bar_io = 1,
93419 	pci_bar_mem32 = 2,
93420 	pci_bar_mem64 = 3,
93421 };
93422 
93423 struct pci_domain_busn_res {
93424 	struct list_head list;
93425 	struct resource res;
93426 	int domain_nr;
93427 };
93428 
93429 struct pci_dev_resource {
93430 	struct list_head list;
93431 	struct resource *res;
93432 	struct pci_dev *dev;
93433 	resource_size_t start;
93434 	resource_size_t end;
93435 	resource_size_t add_size;
93436 	resource_size_t min_align;
93437 	long unsigned int flags;
93438 };
93439 
93440 enum release_type {
93441 	leaf_only = 0,
93442 	whole_subtree = 1,
93443 };
93444 
93445 enum enable_type {
93446 	undefined = -1,
93447 	user_disabled = 0,
93448 	auto_disabled = 1,
93449 	user_enabled = 2,
93450 	auto_enabled = 3,
93451 };
93452 
93453 struct aer_stats {
93454 	u64 dev_cor_errs[16];
93455 	u64 dev_fatal_errs[27];
93456 	u64 dev_nonfatal_errs[27];
93457 	u64 dev_total_cor_errs;
93458 	u64 dev_total_fatal_errs;
93459 	u64 dev_total_nonfatal_errs;
93460 	u64 rootport_total_cor_errs;
93461 	u64 rootport_total_fatal_errs;
93462 	u64 rootport_total_nonfatal_errs;
93463 };
93464 
93465 struct aer_err_info {
93466 	struct pci_dev *dev[5];
93467 	int error_dev_num;
93468 	unsigned int id: 16;
93469 	unsigned int severity: 2;
93470 	unsigned int __pad1: 5;
93471 	unsigned int multi_error_valid: 1;
93472 	unsigned int first_error: 5;
93473 	unsigned int __pad2: 2;
93474 	unsigned int tlp_header_valid: 1;
93475 	unsigned int status;
93476 	unsigned int mask;
93477 	struct aer_header_log_regs tlp;
93478 };
93479 
93480 struct aer_err_source {
93481 	unsigned int status;
93482 	unsigned int id;
93483 };
93484 
93485 struct aer_rpc {
93486 	struct pci_dev *rpd;
93487 	struct {
93488 		union {
93489 			struct __kfifo kfifo;
93490 			struct aer_err_source *type;
93491 			const struct aer_err_source *const_type;
93492 			char (*rectype)[0];
93493 			struct aer_err_source *ptr;
93494 			const struct aer_err_source *ptr_const;
93495 		};
93496 		struct aer_err_source buf[128];
93497 	} aer_fifo;
93498 };
93499 
93500 struct pci_slot_attribute {
93501 	struct attribute attr;
93502 	ssize_t (*show)(struct pci_slot *, char *);
93503 	ssize_t (*store)(struct pci_slot *, const char *, size_t);
93504 };
93505 
93506 struct event_info {
93507 	u32 event_type;
93508 	struct slot *p_slot;
93509 	struct work_struct work;
93510 };
93511 
93512 struct pushbutton_work_info {
93513 	struct slot *p_slot;
93514 	struct work_struct work;
93515 };
93516 
93517 struct vga_device {
93518 	struct list_head list;
93519 	struct pci_dev *pdev;
93520 	unsigned int decodes;
93521 	unsigned int owns;
93522 	unsigned int locks;
93523 	unsigned int io_lock_cnt;
93524 	unsigned int mem_lock_cnt;
93525 	unsigned int io_norm_cnt;
93526 	unsigned int mem_norm_cnt;
93527 	bool bridge_has_one_vga;
93528 	bool is_firmware_default;
93529 	unsigned int (*set_decode)(struct pci_dev *, bool);
93530 };
93531 
93532 struct vga_arb_user_card {
93533 	struct pci_dev *pdev;
93534 	unsigned int mem_cnt;
93535 	unsigned int io_cnt;
93536 };
93537 
93538 struct vga_arb_private {
93539 	struct list_head list;
93540 	struct pci_dev *target;
93541 	struct vga_arb_user_card cards[16];
93542 	spinlock_t lock;
93543 };
93544 
93545 struct fb_event {
93546 	struct fb_info *info;
93547 	void *data;
93548 };
93549 
93550 enum backlight_update_reason {
93551 	BACKLIGHT_UPDATE_HOTKEY = 0,
93552 	BACKLIGHT_UPDATE_SYSFS = 1,
93553 };
93554 
93555 enum backlight_notification {
93556 	BACKLIGHT_REGISTERED = 0,
93557 	BACKLIGHT_UNREGISTERED = 1,
93558 };
93559 
93560 struct fb_cmap_user {
93561 	__u32 start;
93562 	__u32 len;
93563 	__u16 *red;
93564 	__u16 *green;
93565 	__u16 *blue;
93566 	__u16 *transp;
93567 };
93568 
93569 struct logo_data {
93570 	int depth;
93571 	int needs_directpalette;
93572 	int needs_truepalette;
93573 	int needs_cmapreset;
93574 	const struct linux_logo *logo;
93575 };
93576 
93577 struct acpi_madt_local_apic {
93578 	struct acpi_subtable_header header;
93579 	u8 processor_id;
93580 	u8 id;
93581 	u32 lapic_flags;
93582 };
93583 
93584 struct acpi_madt_io_apic {
93585 	struct acpi_subtable_header header;
93586 	u8 id;
93587 	u8 reserved;
93588 	u32 address;
93589 	u32 global_irq_base;
93590 };
93591 
93592 struct acpi_madt_interrupt_override {
93593 	struct acpi_subtable_header header;
93594 	u8 bus;
93595 	u8 source_irq;
93596 	u32 global_irq;
93597 	u16 inti_flags;
93598 } __attribute__((packed));
93599 
93600 struct acpi_madt_nmi_source {
93601 	struct acpi_subtable_header header;
93602 	u16 inti_flags;
93603 	u32 global_irq;
93604 };
93605 
93606 struct acpi_madt_local_apic_nmi {
93607 	struct acpi_subtable_header header;
93608 	u8 processor_id;
93609 	u16 inti_flags;
93610 	u8 lint;
93611 } __attribute__((packed));
93612 
93613 struct acpi_madt_local_apic_override {
93614 	struct acpi_subtable_header header;
93615 	u16 reserved;
93616 	u64 address;
93617 } __attribute__((packed));
93618 
93619 struct acpi_madt_io_sapic {
93620 	struct acpi_subtable_header header;
93621 	u8 id;
93622 	u8 reserved;
93623 	u32 global_irq_base;
93624 	u64 address;
93625 };
93626 
93627 struct acpi_madt_local_sapic {
93628 	struct acpi_subtable_header header;
93629 	u8 processor_id;
93630 	u8 id;
93631 	u8 eid;
93632 	u8 reserved[3];
93633 	u32 lapic_flags;
93634 	u32 uid;
93635 	char uid_string[1];
93636 } __attribute__((packed));
93637 
93638 struct acpi_madt_interrupt_source {
93639 	struct acpi_subtable_header header;
93640 	u16 inti_flags;
93641 	u8 type;
93642 	u8 id;
93643 	u8 eid;
93644 	u8 io_sapic_vector;
93645 	u32 global_irq;
93646 	u32 flags;
93647 };
93648 
93649 struct acpi_madt_local_x2apic {
93650 	struct acpi_subtable_header header;
93651 	u16 reserved;
93652 	u32 local_apic_id;
93653 	u32 lapic_flags;
93654 	u32 uid;
93655 };
93656 
93657 struct acpi_madt_local_x2apic_nmi {
93658 	struct acpi_subtable_header header;
93659 	u16 inti_flags;
93660 	u32 uid;
93661 	u8 lint;
93662 	u8 reserved[3];
93663 };
93664 
93665 struct acpi_madt_generic_interrupt {
93666 	struct acpi_subtable_header header;
93667 	u16 reserved;
93668 	u32 cpu_interface_number;
93669 	u32 uid;
93670 	u32 flags;
93671 	u32 parking_version;
93672 	u32 performance_interrupt;
93673 	u64 parked_address;
93674 	u64 base_address;
93675 	u64 gicv_base_address;
93676 	u64 gich_base_address;
93677 	u32 vgic_interrupt;
93678 	u64 gicr_base_address;
93679 	u64 arm_mpidr;
93680 	u8 efficiency_class;
93681 	u8 reserved2[1];
93682 	u16 spe_interrupt;
93683 } __attribute__((packed));
93684 
93685 struct acpi_madt_generic_distributor {
93686 	struct acpi_subtable_header header;
93687 	u16 reserved;
93688 	u32 gic_id;
93689 	u64 base_address;
93690 	u32 global_irq_base;
93691 	u8 version;
93692 	u8 reserved2[3];
93693 };
93694 
93695 struct acpi_madt_core_pic {
93696 	struct acpi_subtable_header header;
93697 	u8 version;
93698 	u32 processor_id;
93699 	u32 core_id;
93700 	u32 flags;
93701 } __attribute__((packed));
93702 
93703 struct cpio_data {
93704 	void *data;
93705 	size_t size;
93706 	char name[18];
93707 };
93708 
93709 enum acpi_subtable_type {
93710 	ACPI_SUBTABLE_COMMON = 0,
93711 	ACPI_SUBTABLE_HMAT = 1,
93712 	ACPI_SUBTABLE_PRMT = 2,
93713 	ACPI_SUBTABLE_CEDT = 3,
93714 };
93715 
93716 struct acpi_subtable_entry {
93717 	union acpi_subtable_headers *hdr;
93718 	enum acpi_subtable_type type;
93719 };
93720 
93721 struct nvs_region {
93722 	__u64 phys_start;
93723 	__u64 size;
93724 	struct list_head node;
93725 };
93726 
93727 struct nvs_page {
93728 	long unsigned int phys_start;
93729 	unsigned int size;
93730 	void *kaddr;
93731 	void *data;
93732 	bool unmap;
93733 	struct list_head node;
93734 };
93735 
93736 struct find_child_walk_data {
93737 	struct acpi_device *adev;
93738 	u64 address;
93739 	int score;
93740 	bool check_sta;
93741 	bool check_children;
93742 };
93743 
93744 struct acpi_table_madt {
93745 	struct acpi_table_header header;
93746 	u32 address;
93747 	u32 flags;
93748 };
93749 
93750 struct dock_station {
93751 	acpi_handle handle;
93752 	long unsigned int last_dock_time;
93753 	u32 flags;
93754 	struct list_head dependent_devices;
93755 	struct list_head sibling;
93756 	struct platform_device *dock_device;
93757 };
93758 
93759 struct dock_dependent_device {
93760 	struct list_head list;
93761 	struct acpi_device *adev;
93762 };
93763 
93764 enum dock_callback_type {
93765 	DOCK_CALL_HANDLER = 0,
93766 	DOCK_CALL_FIXUP = 1,
93767 	DOCK_CALL_UEVENT = 2,
93768 };
93769 
93770 struct acpi_pci_routing_table {
93771 	u32 length;
93772 	u32 pin;
93773 	u64 address;
93774 	u32 source_index;
93775 	char source[4];
93776 };
93777 
93778 struct acpi_prt_entry {
93779 	struct acpi_pci_id id;
93780 	u8 pin;
93781 	acpi_handle link;
93782 	u32 index;
93783 };
93784 
93785 struct prt_quirk {
93786 	const struct dmi_system_id *system;
93787 	unsigned int segment;
93788 	unsigned int bus;
93789 	unsigned int device;
93790 	unsigned char pin;
93791 	const char *source;
93792 	const char *actual_source;
93793 };
93794 
93795 struct acpi_table_bert {
93796 	struct acpi_table_header header;
93797 	u32 region_length;
93798 	u64 address;
93799 };
93800 
93801 struct acpi_table_attr {
93802 	struct bin_attribute attr;
93803 	char name[4];
93804 	int instance;
93805 	char filename[8];
93806 	struct list_head node;
93807 };
93808 
93809 struct acpi_data_attr {
93810 	struct bin_attribute attr;
93811 	u64 addr;
93812 };
93813 
93814 struct acpi_data_obj {
93815 	char *name;
93816 	int (*fn)(void *, struct acpi_data_attr *);
93817 };
93818 
93819 struct event_counter {
93820 	u32 count;
93821 	u32 flags;
93822 };
93823 
93824 struct acpi_irq_parse_one_ctx {
93825 	int rc;
93826 	unsigned int index;
93827 	long unsigned int *res_flags;
93828 	struct irq_fwspec *fwspec;
93829 };
93830 
93831 struct acpi_gpe_walk_info {
93832 	struct acpi_namespace_node *gpe_device;
93833 	struct acpi_gpe_block_info *gpe_block;
93834 	u16 count;
93835 	acpi_owner_id owner_id;
93836 	u8 execute_by_owner_id;
93837 };
93838 
93839 enum {
93840 	MATCH_MTR = 0,
93841 	MATCH_MEQ = 1,
93842 	MATCH_MLE = 2,
93843 	MATCH_MLT = 3,
93844 	MATCH_MGE = 4,
93845 	MATCH_MGT = 5,
93846 };
93847 
93848 struct acpi_namestring_info {
93849 	const char *external_name;
93850 	const char *next_external_char;
93851 	char *internal_name;
93852 	u32 length;
93853 	u32 num_segments;
93854 	u32 num_carats;
93855 	u8 fully_qualified;
93856 };
93857 
93858 typedef u32 acpi_rsdesc_size;
93859 
93860 struct acpi_fadt_info {
93861 	const char *name;
93862 	u16 address64;
93863 	u16 address32;
93864 	u16 length;
93865 	u8 default_length;
93866 	u8 flags;
93867 };
93868 
93869 struct acpi_fadt_pm_info {
93870 	struct acpi_generic_address *target;
93871 	u16 source;
93872 	u8 register_num;
93873 };
93874 
93875 struct acpi_table_cdat {
93876 	u32 length;
93877 	u8 revision;
93878 	u8 checksum;
93879 	u8 reserved[6];
93880 	u32 sequence;
93881 };
93882 
93883 typedef acpi_status (*acpi_walk_aml_callback)(u8 *, u32, u32, u8, void **);
93884 
93885 struct mcfg_entry {
93886 	struct list_head list;
93887 	phys_addr_t addr;
93888 	u16 segment;
93889 	u8 bus_start;
93890 	u8 bus_end;
93891 };
93892 
93893 struct mcfg_fixup {
93894 	char oem_id[7];
93895 	char oem_table_id[9];
93896 	u32 oem_revision;
93897 	u16 segment;
93898 	struct resource bus_range;
93899 	const struct pci_ecam_ops *ops;
93900 	struct resource cfgres;
93901 };
93902 
93903 struct acpi_video_brightness_flags {
93904 	u8 _BCL_no_ac_battery_levels: 1;
93905 	u8 _BCL_reversed: 1;
93906 	u8 _BQC_use_index: 1;
93907 };
93908 
93909 struct acpi_video_device_brightness {
93910 	int curr;
93911 	int count;
93912 	int *levels;
93913 	struct acpi_video_brightness_flags flags;
93914 };
93915 
93916 enum acpi_video_level_idx {
93917 	ACPI_VIDEO_AC_LEVEL = 0,
93918 	ACPI_VIDEO_BATTERY_LEVEL = 1,
93919 	ACPI_VIDEO_FIRST_LEVEL = 2,
93920 };
93921 
93922 struct acpi_video_bus_flags {
93923 	u8 multihead: 1;
93924 	u8 rom: 1;
93925 	u8 post: 1;
93926 	u8 reserved: 5;
93927 };
93928 
93929 struct acpi_video_bus_cap {
93930 	u8 _DOS: 1;
93931 	u8 _DOD: 1;
93932 	u8 _ROM: 1;
93933 	u8 _GPD: 1;
93934 	u8 _SPD: 1;
93935 	u8 _VPO: 1;
93936 	u8 reserved: 2;
93937 };
93938 
93939 struct acpi_video_device_attrib {
93940 	u32 display_index: 4;
93941 	u32 display_port_attachment: 4;
93942 	u32 display_type: 4;
93943 	u32 vendor_specific: 4;
93944 	u32 bios_can_detect: 1;
93945 	u32 depend_on_vga: 1;
93946 	u32 pipe_id: 3;
93947 	u32 reserved: 10;
93948 	u32 device_id_scheme: 1;
93949 };
93950 
93951 struct acpi_video_device;
93952 
93953 struct acpi_video_enumerated_device {
93954 	union {
93955 		u32 int_val;
93956 		struct acpi_video_device_attrib attrib;
93957 	} value;
93958 	struct acpi_video_device *bind_info;
93959 };
93960 
93961 struct acpi_video_device_flags {
93962 	u8 crt: 1;
93963 	u8 lcd: 1;
93964 	u8 tvout: 1;
93965 	u8 dvi: 1;
93966 	u8 bios: 1;
93967 	u8 unknown: 1;
93968 	u8 notify: 1;
93969 	u8 reserved: 1;
93970 };
93971 
93972 struct acpi_video_device_cap {
93973 	u8 _ADR: 1;
93974 	u8 _BCL: 1;
93975 	u8 _BCM: 1;
93976 	u8 _BQC: 1;
93977 	u8 _BCQ: 1;
93978 	u8 _DDC: 1;
93979 };
93980 
93981 struct acpi_video_bus;
93982 
93983 struct acpi_video_device {
93984 	long unsigned int device_id;
93985 	struct acpi_video_device_flags flags;
93986 	struct acpi_video_device_cap cap;
93987 	struct list_head entry;
93988 	struct delayed_work switch_brightness_work;
93989 	int switch_brightness_event;
93990 	struct acpi_video_bus *video;
93991 	struct acpi_device *dev;
93992 	struct acpi_video_device_brightness *brightness;
93993 	struct backlight_device *backlight;
93994 	struct thermal_cooling_device *cooling_dev;
93995 };
93996 
93997 struct acpi_video_bus {
93998 	struct acpi_device *device;
93999 	bool backlight_registered;
94000 	u8 dos_setting;
94001 	struct acpi_video_enumerated_device *attached_array;
94002 	u8 attached_count;
94003 	u8 child_count;
94004 	struct acpi_video_bus_cap cap;
94005 	struct acpi_video_bus_flags flags;
94006 	struct list_head video_device_list;
94007 	struct mutex device_list_lock;
94008 	struct list_head entry;
94009 	struct input_dev *input;
94010 	char phys[32];
94011 	struct notifier_block pm_nb;
94012 };
94013 
94014 struct throttling_tstate {
94015 	unsigned int cpu;
94016 	int target_state;
94017 };
94018 
94019 struct acpi_processor_throttling_arg {
94020 	struct acpi_processor *pr;
94021 	int target_state;
94022 	bool force;
94023 };
94024 
94025 enum acpi_hmat_type {
94026 	ACPI_HMAT_TYPE_PROXIMITY = 0,
94027 	ACPI_HMAT_TYPE_LOCALITY = 1,
94028 	ACPI_HMAT_TYPE_CACHE = 2,
94029 	ACPI_HMAT_TYPE_RESERVED = 3,
94030 };
94031 
94032 struct acpi_hmat_proximity_domain {
94033 	struct acpi_hmat_structure header;
94034 	u16 flags;
94035 	u16 reserved1;
94036 	u32 processor_PD;
94037 	u32 memory_PD;
94038 	u32 reserved2;
94039 	u64 reserved3;
94040 	u64 reserved4;
94041 };
94042 
94043 struct acpi_hmat_locality {
94044 	struct acpi_hmat_structure header;
94045 	u8 flags;
94046 	u8 data_type;
94047 	u8 min_transfer_size;
94048 	u8 reserved1;
94049 	u32 number_of_initiator_Pds;
94050 	u32 number_of_target_Pds;
94051 	u32 reserved2;
94052 	u64 entry_base_unit;
94053 };
94054 
94055 struct acpi_hmat_cache {
94056 	struct acpi_hmat_structure header;
94057 	u32 memory_PD;
94058 	u32 reserved1;
94059 	u64 cache_size;
94060 	u32 cache_attributes;
94061 	u16 reserved2;
94062 	u16 number_of_SMBIOShandles;
94063 };
94064 
94065 enum locality_types {
94066 	WRITE_LATENCY = 0,
94067 	READ_LATENCY = 1,
94068 	WRITE_BANDWIDTH = 2,
94069 	READ_BANDWIDTH = 3,
94070 };
94071 
94072 struct memory_locality {
94073 	struct list_head node;
94074 	struct acpi_hmat_locality *hmat_loc;
94075 };
94076 
94077 struct target_cache {
94078 	struct list_head node;
94079 	struct node_cache_attrs cache_attrs;
94080 };
94081 
94082 struct memory_target {
94083 	struct list_head node;
94084 	unsigned int memory_pxm;
94085 	unsigned int processor_pxm;
94086 	struct resource memregions;
94087 	struct node_hmem_attrs hmem_attrs[2];
94088 	struct list_head caches;
94089 	struct node_cache_attrs cache_attrs;
94090 	bool registered;
94091 };
94092 
94093 struct memory_initiator {
94094 	struct list_head node;
94095 	unsigned int processor_pxm;
94096 	bool has_cpu;
94097 };
94098 
94099 struct pnp_info_buffer {
94100 	char *buffer;
94101 	char *curr;
94102 	long unsigned int size;
94103 	long unsigned int len;
94104 	int stop;
94105 	int error;
94106 };
94107 
94108 typedef struct pnp_info_buffer pnp_info_buffer_t;
94109 
94110 struct acpipnp_parse_option_s {
94111 	struct pnp_dev *dev;
94112 	unsigned int option_flags;
94113 };
94114 
94115 struct clk_notifier {
94116 	struct clk *clk;
94117 	struct srcu_notifier_head notifier_head;
94118 	struct list_head node;
94119 };
94120 
94121 struct clk_notifier_data {
94122 	struct clk *clk;
94123 	long unsigned int old_rate;
94124 	long unsigned int new_rate;
94125 };
94126 
94127 struct clk_parent_map;
94128 
94129 struct clk_core {
94130 	const char *name;
94131 	const struct clk_ops *ops;
94132 	struct clk_hw *hw;
94133 	struct module *owner;
94134 	struct device *dev;
94135 	struct device_node *of_node;
94136 	struct clk_core *parent;
94137 	struct clk_parent_map *parents;
94138 	u8 num_parents;
94139 	u8 new_parent_index;
94140 	long unsigned int rate;
94141 	long unsigned int req_rate;
94142 	long unsigned int new_rate;
94143 	struct clk_core *new_parent;
94144 	struct clk_core *new_child;
94145 	long unsigned int flags;
94146 	bool orphan;
94147 	bool rpm_enabled;
94148 	unsigned int enable_count;
94149 	unsigned int prepare_count;
94150 	unsigned int protect_count;
94151 	long unsigned int min_rate;
94152 	long unsigned int max_rate;
94153 	long unsigned int accuracy;
94154 	int phase;
94155 	struct clk_duty duty;
94156 	struct hlist_head children;
94157 	struct hlist_node child_node;
94158 	struct hlist_head clks;
94159 	unsigned int notifier_count;
94160 	struct dentry *dentry;
94161 	struct hlist_node debug_node;
94162 	struct kref ref;
94163 };
94164 
94165 struct clk_onecell_data {
94166 	struct clk **clks;
94167 	unsigned int clk_num;
94168 };
94169 
94170 struct clk_hw_onecell_data {
94171 	unsigned int num;
94172 	struct clk_hw *hws[0];
94173 };
94174 
94175 struct clk_parent_map {
94176 	const struct clk_hw *hw;
94177 	struct clk_core *core;
94178 	const char *fw_name;
94179 	const char *name;
94180 	int index;
94181 };
94182 
94183 struct trace_event_raw_clk {
94184 	struct trace_entry ent;
94185 	u32 __data_loc_name;
94186 	char __data[0];
94187 };
94188 
94189 struct trace_event_raw_clk_rate {
94190 	struct trace_entry ent;
94191 	u32 __data_loc_name;
94192 	long unsigned int rate;
94193 	char __data[0];
94194 };
94195 
94196 struct trace_event_raw_clk_rate_range {
94197 	struct trace_entry ent;
94198 	u32 __data_loc_name;
94199 	long unsigned int min;
94200 	long unsigned int max;
94201 	char __data[0];
94202 };
94203 
94204 struct trace_event_raw_clk_parent {
94205 	struct trace_entry ent;
94206 	u32 __data_loc_name;
94207 	u32 __data_loc_pname;
94208 	char __data[0];
94209 };
94210 
94211 struct trace_event_raw_clk_phase {
94212 	struct trace_entry ent;
94213 	u32 __data_loc_name;
94214 	int phase;
94215 	char __data[0];
94216 };
94217 
94218 struct trace_event_raw_clk_duty_cycle {
94219 	struct trace_entry ent;
94220 	u32 __data_loc_name;
94221 	unsigned int num;
94222 	unsigned int den;
94223 	char __data[0];
94224 };
94225 
94226 struct trace_event_raw_clk_rate_request {
94227 	struct trace_entry ent;
94228 	u32 __data_loc_name;
94229 	u32 __data_loc_pname;
94230 	long unsigned int min;
94231 	long unsigned int max;
94232 	long unsigned int prate;
94233 	char __data[0];
94234 };
94235 
94236 struct trace_event_data_offsets_clk {
94237 	u32 name;
94238 };
94239 
94240 struct trace_event_data_offsets_clk_rate {
94241 	u32 name;
94242 };
94243 
94244 struct trace_event_data_offsets_clk_rate_range {
94245 	u32 name;
94246 };
94247 
94248 struct trace_event_data_offsets_clk_parent {
94249 	u32 name;
94250 	u32 pname;
94251 };
94252 
94253 struct trace_event_data_offsets_clk_phase {
94254 	u32 name;
94255 };
94256 
94257 struct trace_event_data_offsets_clk_duty_cycle {
94258 	u32 name;
94259 };
94260 
94261 struct trace_event_data_offsets_clk_rate_request {
94262 	u32 name;
94263 	u32 pname;
94264 };
94265 
94266 typedef void (*btf_trace_clk_enable)(void *, struct clk_core *);
94267 
94268 typedef void (*btf_trace_clk_enable_complete)(void *, struct clk_core *);
94269 
94270 typedef void (*btf_trace_clk_disable)(void *, struct clk_core *);
94271 
94272 typedef void (*btf_trace_clk_disable_complete)(void *, struct clk_core *);
94273 
94274 typedef void (*btf_trace_clk_prepare)(void *, struct clk_core *);
94275 
94276 typedef void (*btf_trace_clk_prepare_complete)(void *, struct clk_core *);
94277 
94278 typedef void (*btf_trace_clk_unprepare)(void *, struct clk_core *);
94279 
94280 typedef void (*btf_trace_clk_unprepare_complete)(void *, struct clk_core *);
94281 
94282 typedef void (*btf_trace_clk_set_rate)(void *, struct clk_core *, long unsigned int);
94283 
94284 typedef void (*btf_trace_clk_set_rate_complete)(void *, struct clk_core *, long unsigned int);
94285 
94286 typedef void (*btf_trace_clk_set_min_rate)(void *, struct clk_core *, long unsigned int);
94287 
94288 typedef void (*btf_trace_clk_set_max_rate)(void *, struct clk_core *, long unsigned int);
94289 
94290 typedef void (*btf_trace_clk_set_rate_range)(void *, struct clk_core *, long unsigned int, long unsigned int);
94291 
94292 typedef void (*btf_trace_clk_set_parent)(void *, struct clk_core *, struct clk_core *);
94293 
94294 typedef void (*btf_trace_clk_set_parent_complete)(void *, struct clk_core *, struct clk_core *);
94295 
94296 typedef void (*btf_trace_clk_set_phase)(void *, struct clk_core *, int);
94297 
94298 typedef void (*btf_trace_clk_set_phase_complete)(void *, struct clk_core *, int);
94299 
94300 typedef void (*btf_trace_clk_set_duty_cycle)(void *, struct clk_core *, struct clk_duty *);
94301 
94302 typedef void (*btf_trace_clk_set_duty_cycle_complete)(void *, struct clk_core *, struct clk_duty *);
94303 
94304 typedef void (*btf_trace_clk_rate_request_start)(void *, struct clk_rate_request *);
94305 
94306 typedef void (*btf_trace_clk_rate_request_done)(void *, struct clk_rate_request *);
94307 
94308 struct clk_notifier_devres {
94309 	struct clk *clk;
94310 	struct notifier_block *nb;
94311 };
94312 
94313 struct of_clk_provider {
94314 	struct list_head link;
94315 	struct device_node *node;
94316 	struct clk * (*get)(struct of_phandle_args *, void *);
94317 	struct clk_hw * (*get_hw)(struct of_phandle_args *, void *);
94318 	void *data;
94319 };
94320 
94321 struct clock_provider {
94322 	void (*clk_init_cb)(struct device_node *);
94323 	struct device_node *np;
94324 	struct list_head node;
94325 };
94326 
94327 struct clk_gpio {
94328 	struct clk_hw hw;
94329 	struct gpio_desc *gpiod;
94330 };
94331 
94332 struct of_dma {
94333 	struct list_head of_dma_controllers;
94334 	struct device_node *of_node;
94335 	struct dma_chan * (*of_dma_xlate)(struct of_phandle_args *, struct of_dma *);
94336 	void * (*of_dma_route_allocate)(struct of_phandle_args *, struct of_dma *);
94337 	struct dma_router *dma_router;
94338 	void *of_dma_data;
94339 };
94340 
94341 struct of_dma_filter_info {
94342 	dma_cap_mask_t dma_cap;
94343 	dma_filter_fn filter_fn;
94344 };
94345 
94346 enum regulator_active_discharge {
94347 	REGULATOR_ACTIVE_DISCHARGE_DEFAULT = 0,
94348 	REGULATOR_ACTIVE_DISCHARGE_DISABLE = 1,
94349 	REGULATOR_ACTIVE_DISCHARGE_ENABLE = 2,
94350 };
94351 
94352 struct of_regulator_match {
94353 	const char *name;
94354 	void *driver_data;
94355 	struct regulator_init_data *init_data;
94356 	struct device_node *of_node;
94357 	const struct regulator_desc *desc;
94358 };
94359 
94360 struct devm_of_regulator_matches {
94361 	struct of_regulator_match *matches;
94362 	unsigned int num_matches;
94363 };
94364 
94365 struct termios {
94366 	tcflag_t c_iflag;
94367 	tcflag_t c_oflag;
94368 	tcflag_t c_cflag;
94369 	tcflag_t c_lflag;
94370 	cc_t c_line;
94371 	cc_t c_cc[19];
94372 };
94373 
94374 struct termios2 {
94375 	tcflag_t c_iflag;
94376 	tcflag_t c_oflag;
94377 	tcflag_t c_cflag;
94378 	tcflag_t c_lflag;
94379 	cc_t c_line;
94380 	cc_t c_cc[19];
94381 	speed_t c_ispeed;
94382 	speed_t c_ospeed;
94383 };
94384 
94385 struct termio {
94386 	short unsigned int c_iflag;
94387 	short unsigned int c_oflag;
94388 	short unsigned int c_cflag;
94389 	short unsigned int c_lflag;
94390 	unsigned char c_line;
94391 	unsigned char c_cc[8];
94392 };
94393 
94394 struct tty_audit_buf {
94395 	struct mutex mutex;
94396 	dev_t dev;
94397 	unsigned int icanon: 1;
94398 	size_t valid;
94399 	unsigned char *data;
94400 };
94401 
94402 struct vc_selection {
94403 	struct mutex lock;
94404 	struct vc_data *cons;
94405 	char *buffer;
94406 	unsigned int buf_len;
94407 	volatile int start;
94408 	int end;
94409 };
94410 
94411 struct kbdiacruc {
94412 	unsigned int diacr;
94413 	unsigned int base;
94414 	unsigned int result;
94415 };
94416 
94417 struct hv_ops;
94418 
94419 struct hvc_struct {
94420 	struct tty_port port;
94421 	spinlock_t lock;
94422 	int index;
94423 	int do_wakeup;
94424 	char *outbuf;
94425 	int outbuf_size;
94426 	int n_outbuf;
94427 	uint32_t vtermno;
94428 	const struct hv_ops *ops;
94429 	int irq_requested;
94430 	int data;
94431 	struct winsize ws;
94432 	struct work_struct tty_resize;
94433 	struct list_head next;
94434 	long unsigned int flags;
94435 };
94436 
94437 struct hv_ops {
94438 	int (*get_chars)(uint32_t, char *, int);
94439 	int (*put_chars)(uint32_t, const char *, int);
94440 	int (*flush)(uint32_t, bool);
94441 	int (*notifier_add)(struct hvc_struct *, int);
94442 	void (*notifier_del)(struct hvc_struct *, int);
94443 	void (*notifier_hangup)(struct hvc_struct *, int);
94444 	int (*tiocmget)(struct hvc_struct *);
94445 	int (*tiocmset)(struct hvc_struct *, unsigned int, unsigned int);
94446 	void (*dtr_rts)(struct hvc_struct *, int);
94447 };
94448 
94449 struct serial8250_config {
94450 	const char *name;
94451 	short unsigned int fifo_size;
94452 	short unsigned int tx_loadsz;
94453 	unsigned char fcr;
94454 	unsigned char rxtrig_bytes[4];
94455 	unsigned int flags;
94456 };
94457 
94458 struct pericom8250 {
94459 	void *virt;
94460 	unsigned int nr;
94461 	int line[0];
94462 };
94463 
94464 struct execute_work {
94465 	struct work_struct work;
94466 };
94467 
94468 struct timer_rand_state {
94469 	long unsigned int last_time;
94470 	long int last_delta;
94471 	long int last_delta2;
94472 };
94473 
94474 enum chacha_constants {
94475 	CHACHA_CONSTANT_EXPA = 1634760805,
94476 	CHACHA_CONSTANT_ND_3 = 857760878,
94477 	CHACHA_CONSTANT_2_BY = 2036477234,
94478 	CHACHA_CONSTANT_TE_K = 1797285236,
94479 };
94480 
94481 enum {
94482 	CRNG_EMPTY = 0,
94483 	CRNG_EARLY = 1,
94484 	CRNG_READY = 2,
94485 };
94486 
94487 enum {
94488 	CRNG_RESEED_START_INTERVAL = 250,
94489 	CRNG_RESEED_INTERVAL = 15000,
94490 };
94491 
94492 struct crng {
94493 	u8 key[32];
94494 	long unsigned int generation;
94495 	local_lock_t lock;
94496 };
94497 
94498 struct batch_u8 {
94499 	u8 entropy[96];
94500 	local_lock_t lock;
94501 	long unsigned int generation;
94502 	unsigned int position;
94503 };
94504 
94505 struct batch_u16 {
94506 	u16 entropy[48];
94507 	local_lock_t lock;
94508 	long unsigned int generation;
94509 	unsigned int position;
94510 };
94511 
94512 struct batch_u32 {
94513 	u32 entropy[24];
94514 	local_lock_t lock;
94515 	long unsigned int generation;
94516 	unsigned int position;
94517 };
94518 
94519 struct batch_u64 {
94520 	u64 entropy[12];
94521 	local_lock_t lock;
94522 	long unsigned int generation;
94523 	unsigned int position;
94524 };
94525 
94526 enum {
94527 	POOL_BITS = 256,
94528 	POOL_READY_BITS = 256,
94529 	POOL_EARLY_BITS = 128,
94530 };
94531 
94532 struct fast_pool {
94533 	long unsigned int pool[4];
94534 	long unsigned int last;
94535 	unsigned int count;
94536 	struct timer_list mix;
94537 };
94538 
94539 struct entropy_timer_state {
94540 	long unsigned int entropy;
94541 	struct timer_list timer;
94542 	atomic_t samples;
94543 	unsigned int samples_per_bit;
94544 };
94545 
94546 enum {
94547 	NUM_TRIAL_SAMPLES = 8192,
94548 	MAX_SAMPLES_PER_BIT = 16,
94549 };
94550 
94551 enum {
94552 	MIX_INFLIGHT = 2147483648,
94553 };
94554 
94555 struct of_pci_iommu_alias_info {
94556 	struct device *dev;
94557 	struct device_node *np;
94558 };
94559 
94560 struct drm_mode_atomic {
94561 	__u32 flags;
94562 	__u32 count_objs;
94563 	__u64 objs_ptr;
94564 	__u64 count_props_ptr;
94565 	__u64 props_ptr;
94566 	__u64 prop_values_ptr;
94567 	__u64 reserved;
94568 	__u64 user_data;
94569 };
94570 
94571 struct drm_out_fence_state {
94572 	s32 *out_fence_ptr;
94573 	struct sync_file *sync_file;
94574 	int fd;
94575 };
94576 
94577 struct drm_client_dev;
94578 
94579 struct drm_client_funcs {
94580 	struct module *owner;
94581 	void (*unregister)(struct drm_client_dev *);
94582 	int (*restore)(struct drm_client_dev *);
94583 	int (*hotplug)(struct drm_client_dev *);
94584 };
94585 
94586 struct drm_client_dev {
94587 	struct drm_device *dev;
94588 	const char *name;
94589 	struct list_head list;
94590 	const struct drm_client_funcs *funcs;
94591 	struct drm_file *file;
94592 	struct mutex modeset_mutex;
94593 	struct drm_mode_set *modesets;
94594 };
94595 
94596 struct drm_client_offset {
94597 	int x;
94598 	int y;
94599 };
94600 
94601 struct displayid_header {
94602 	u8 rev;
94603 	u8 bytes;
94604 	u8 prod_id;
94605 	u8 ext_count;
94606 };
94607 
94608 struct displayid_block {
94609 	u8 tag;
94610 	u8 rev;
94611 	u8 num_bytes;
94612 };
94613 
94614 struct displayid_iter {
94615 	const struct drm_edid *drm_edid;
94616 	const u8 *section;
94617 	int length;
94618 	int idx;
94619 	int ext_index;
94620 };
94621 
94622 struct drm_mode_map_dumb {
94623 	__u32 handle;
94624 	__u32 pad;
94625 	__u64 offset;
94626 };
94627 
94628 struct drm_mode_destroy_dumb {
94629 	__u32 handle;
94630 };
94631 
94632 struct drm_mode_fb_cmd {
94633 	__u32 fb_id;
94634 	__u32 width;
94635 	__u32 height;
94636 	__u32 pitch;
94637 	__u32 bpp;
94638 	__u32 depth;
94639 	__u32 handle;
94640 };
94641 
94642 struct drm_mode_fb_dirty_cmd {
94643 	__u32 fb_id;
94644 	__u32 flags;
94645 	__u32 color;
94646 	__u32 num_clips;
94647 	__u64 clips_ptr;
94648 };
94649 
94650 struct drm_mode_rmfb_work {
94651 	struct work_struct work;
94652 	struct list_head fbs;
94653 };
94654 
94655 struct drmres_node {
94656 	struct list_head entry;
94657 	drmres_release_t release;
94658 	const char *name;
94659 	size_t size;
94660 };
94661 
94662 struct drmres {
94663 	struct drmres_node node;
94664 	u8 data[0];
94665 };
94666 
94667 struct drm_mode_obj_get_properties {
94668 	__u64 props_ptr;
94669 	__u64 prop_values_ptr;
94670 	__u32 count_props;
94671 	__u32 obj_id;
94672 	__u32 obj_type;
94673 };
94674 
94675 struct drm_prime_handle {
94676 	__u32 handle;
94677 	__u32 flags;
94678 	__s32 fd;
94679 };
94680 
94681 struct drm_prime_member {
94682 	struct dma_buf *dma_buf;
94683 	uint32_t handle;
94684 	struct rb_node dmabuf_rb;
94685 	struct rb_node handle_rb;
94686 };
94687 
94688 struct class_attribute_string {
94689 	struct class_attribute attr;
94690 	char *str;
94691 };
94692 
94693 struct drm_vma_offset_file {
94694 	struct rb_node vm_rb;
94695 	struct drm_file *vm_tag;
94696 	long unsigned int vm_count;
94697 };
94698 
94699 struct of_endpoint {
94700 	unsigned int port;
94701 	unsigned int id;
94702 	const struct device_node *local_node;
94703 };
94704 
94705 enum drm_lvds_dual_link_pixels {
94706 	DRM_LVDS_DUAL_LINK_EVEN_ODD_PIXELS = 0,
94707 	DRM_LVDS_DUAL_LINK_ODD_EVEN_PIXELS = 1,
94708 };
94709 
94710 enum drm_of_lvds_pixels {
94711 	DRM_OF_LVDS_EVEN = 1,
94712 	DRM_OF_LVDS_ODD = 2,
94713 };
94714 
94715 struct component_match;
94716 
94717 struct device_attach_data {
94718 	struct device *dev;
94719 	bool check_async;
94720 	bool want_async;
94721 	bool have_async;
94722 };
94723 
94724 struct class_compat {
94725 	struct kobject *kobj;
94726 };
94727 
94728 struct anon_transport_class {
94729 	struct transport_class tclass;
94730 	struct attribute_container container;
94731 };
94732 
94733 struct cache_type_info {
94734 	const char *size_prop;
94735 	const char *line_size_props[2];
94736 	const char *nr_sets_prop;
94737 };
94738 
94739 typedef int (*pm_callback_t)(struct device *);
94740 
94741 struct pm_clk_notifier_block {
94742 	struct notifier_block nb;
94743 	struct dev_pm_domain *pm_domain;
94744 	char *con_ids[0];
94745 };
94746 
94747 enum pce_status {
94748 	PCE_STATUS_NONE = 0,
94749 	PCE_STATUS_ACQUIRED = 1,
94750 	PCE_STATUS_PREPARED = 2,
94751 	PCE_STATUS_ENABLED = 3,
94752 	PCE_STATUS_ERROR = 4,
94753 };
94754 
94755 struct pm_clock_entry {
94756 	struct list_head node;
94757 	char *con_id;
94758 	struct clk *clk;
94759 	enum pce_status status;
94760 	bool enabled_when_prepared;
94761 };
94762 
94763 enum {
94764 	MMOP_OFFLINE = 0,
94765 	MMOP_ONLINE = 1,
94766 	MMOP_ONLINE_KERNEL = 2,
94767 	MMOP_ONLINE_MOVABLE = 3,
94768 };
94769 
94770 typedef int (*walk_memory_groups_func_t)(struct memory_group *, void *);
94771 
94772 struct for_each_memory_block_cb_data {
94773 	walk_memory_blocks_func_t func;
94774 	void *arg;
94775 };
94776 
94777 struct reg_field {
94778 	unsigned int reg;
94779 	unsigned int lsb;
94780 	unsigned int msb;
94781 	unsigned int id_size;
94782 	unsigned int id_offset;
94783 };
94784 
94785 struct regmap_field {
94786 	struct regmap *regmap;
94787 	unsigned int mask;
94788 	unsigned int shift;
94789 	unsigned int reg;
94790 	unsigned int id_size;
94791 	unsigned int id_offset;
94792 };
94793 
94794 struct trace_event_raw_regmap_reg {
94795 	struct trace_entry ent;
94796 	u32 __data_loc_name;
94797 	unsigned int reg;
94798 	unsigned int val;
94799 	char __data[0];
94800 };
94801 
94802 struct trace_event_raw_regmap_bulk {
94803 	struct trace_entry ent;
94804 	u32 __data_loc_name;
94805 	unsigned int reg;
94806 	u32 __data_loc_buf;
94807 	int val_len;
94808 	char __data[0];
94809 };
94810 
94811 struct trace_event_raw_regmap_block {
94812 	struct trace_entry ent;
94813 	u32 __data_loc_name;
94814 	unsigned int reg;
94815 	int count;
94816 	char __data[0];
94817 };
94818 
94819 struct trace_event_raw_regcache_sync {
94820 	struct trace_entry ent;
94821 	u32 __data_loc_name;
94822 	u32 __data_loc_status;
94823 	u32 __data_loc_type;
94824 	char __data[0];
94825 };
94826 
94827 struct trace_event_raw_regmap_bool {
94828 	struct trace_entry ent;
94829 	u32 __data_loc_name;
94830 	int flag;
94831 	char __data[0];
94832 };
94833 
94834 struct trace_event_raw_regmap_async {
94835 	struct trace_entry ent;
94836 	u32 __data_loc_name;
94837 	char __data[0];
94838 };
94839 
94840 struct trace_event_raw_regcache_drop_region {
94841 	struct trace_entry ent;
94842 	u32 __data_loc_name;
94843 	unsigned int from;
94844 	unsigned int to;
94845 	char __data[0];
94846 };
94847 
94848 struct trace_event_data_offsets_regmap_reg {
94849 	u32 name;
94850 };
94851 
94852 struct trace_event_data_offsets_regmap_bulk {
94853 	u32 name;
94854 	u32 buf;
94855 };
94856 
94857 struct trace_event_data_offsets_regmap_block {
94858 	u32 name;
94859 };
94860 
94861 struct trace_event_data_offsets_regcache_sync {
94862 	u32 name;
94863 	u32 status;
94864 	u32 type;
94865 };
94866 
94867 struct trace_event_data_offsets_regmap_bool {
94868 	u32 name;
94869 };
94870 
94871 struct trace_event_data_offsets_regmap_async {
94872 	u32 name;
94873 };
94874 
94875 struct trace_event_data_offsets_regcache_drop_region {
94876 	u32 name;
94877 };
94878 
94879 typedef void (*btf_trace_regmap_reg_write)(void *, struct regmap *, unsigned int, unsigned int);
94880 
94881 typedef void (*btf_trace_regmap_reg_read)(void *, struct regmap *, unsigned int, unsigned int);
94882 
94883 typedef void (*btf_trace_regmap_reg_read_cache)(void *, struct regmap *, unsigned int, unsigned int);
94884 
94885 typedef void (*btf_trace_regmap_bulk_write)(void *, struct regmap *, unsigned int, const void *, int);
94886 
94887 typedef void (*btf_trace_regmap_bulk_read)(void *, struct regmap *, unsigned int, const void *, int);
94888 
94889 typedef void (*btf_trace_regmap_hw_read_start)(void *, struct regmap *, unsigned int, int);
94890 
94891 typedef void (*btf_trace_regmap_hw_read_done)(void *, struct regmap *, unsigned int, int);
94892 
94893 typedef void (*btf_trace_regmap_hw_write_start)(void *, struct regmap *, unsigned int, int);
94894 
94895 typedef void (*btf_trace_regmap_hw_write_done)(void *, struct regmap *, unsigned int, int);
94896 
94897 typedef void (*btf_trace_regcache_sync)(void *, struct regmap *, const char *, const char *);
94898 
94899 typedef void (*btf_trace_regmap_cache_only)(void *, struct regmap *, bool);
94900 
94901 typedef void (*btf_trace_regmap_cache_bypass)(void *, struct regmap *, bool);
94902 
94903 typedef void (*btf_trace_regmap_async_write_start)(void *, struct regmap *, unsigned int, int);
94904 
94905 typedef void (*btf_trace_regmap_async_io_complete)(void *, struct regmap *);
94906 
94907 typedef void (*btf_trace_regmap_async_complete_start)(void *, struct regmap *);
94908 
94909 typedef void (*btf_trace_regmap_async_complete_done)(void *, struct regmap *);
94910 
94911 typedef void (*btf_trace_regcache_drop_region)(void *, struct regmap *, unsigned int, unsigned int);
94912 
94913 struct devcd_entry {
94914 	struct device devcd_dev;
94915 	void *data;
94916 	size_t datalen;
94917 	struct mutex mutex;
94918 	bool delete_work;
94919 	struct module *owner;
94920 	ssize_t (*read)(char *, loff_t, size_t, void *, size_t);
94921 	void (*free)(void *);
94922 	struct delayed_work del_wk;
94923 	struct device *failing_dev;
94924 };
94925 
94926 struct syscon_platform_data {
94927 	const char *label;
94928 };
94929 
94930 struct syscon {
94931 	struct device_node *np;
94932 	struct regmap *regmap;
94933 	struct list_head list;
94934 };
94935 
94936 enum scsi_vpd_parameters {
94937 	SCSI_VPD_HEADER_SIZE = 4,
94938 };
94939 
94940 struct trace_event_raw_scsi_dispatch_cmd_start {
94941 	struct trace_entry ent;
94942 	unsigned int host_no;
94943 	unsigned int channel;
94944 	unsigned int id;
94945 	unsigned int lun;
94946 	unsigned int opcode;
94947 	unsigned int cmd_len;
94948 	int driver_tag;
94949 	int scheduler_tag;
94950 	unsigned int data_sglen;
94951 	unsigned int prot_sglen;
94952 	unsigned char prot_op;
94953 	u32 __data_loc_cmnd;
94954 	char __data[0];
94955 };
94956 
94957 struct trace_event_raw_scsi_dispatch_cmd_error {
94958 	struct trace_entry ent;
94959 	unsigned int host_no;
94960 	unsigned int channel;
94961 	unsigned int id;
94962 	unsigned int lun;
94963 	int rtn;
94964 	unsigned int opcode;
94965 	unsigned int cmd_len;
94966 	int driver_tag;
94967 	int scheduler_tag;
94968 	unsigned int data_sglen;
94969 	unsigned int prot_sglen;
94970 	unsigned char prot_op;
94971 	u32 __data_loc_cmnd;
94972 	char __data[0];
94973 };
94974 
94975 struct trace_event_raw_scsi_cmd_done_timeout_template {
94976 	struct trace_entry ent;
94977 	unsigned int host_no;
94978 	unsigned int channel;
94979 	unsigned int id;
94980 	unsigned int lun;
94981 	int result;
94982 	unsigned int opcode;
94983 	unsigned int cmd_len;
94984 	int driver_tag;
94985 	int scheduler_tag;
94986 	unsigned int data_sglen;
94987 	unsigned int prot_sglen;
94988 	unsigned char prot_op;
94989 	u32 __data_loc_cmnd;
94990 	char __data[0];
94991 };
94992 
94993 struct trace_event_raw_scsi_eh_wakeup {
94994 	struct trace_entry ent;
94995 	unsigned int host_no;
94996 	char __data[0];
94997 };
94998 
94999 struct trace_event_data_offsets_scsi_dispatch_cmd_start {
95000 	u32 cmnd;
95001 };
95002 
95003 struct trace_event_data_offsets_scsi_dispatch_cmd_error {
95004 	u32 cmnd;
95005 };
95006 
95007 struct trace_event_data_offsets_scsi_cmd_done_timeout_template {
95008 	u32 cmnd;
95009 };
95010 
95011 struct trace_event_data_offsets_scsi_eh_wakeup {};
95012 
95013 typedef void (*btf_trace_scsi_dispatch_cmd_start)(void *, struct scsi_cmnd *);
95014 
95015 typedef void (*btf_trace_scsi_dispatch_cmd_error)(void *, struct scsi_cmnd *, int);
95016 
95017 typedef void (*btf_trace_scsi_dispatch_cmd_done)(void *, struct scsi_cmnd *);
95018 
95019 typedef void (*btf_trace_scsi_dispatch_cmd_timeout)(void *, struct scsi_cmnd *);
95020 
95021 typedef void (*btf_trace_scsi_eh_wakeup)(void *, struct Scsi_Host *);
95022 
95023 struct scsi_event {
95024 	enum scsi_device_event evt_type;
95025 	struct list_head node;
95026 };
95027 
95028 enum scsi_ml_status {
95029 	SCSIML_STAT_OK = 0,
95030 	SCSIML_STAT_RESV_CONFLICT = 1,
95031 	SCSIML_STAT_NOSPC = 2,
95032 	SCSIML_STAT_MED_ERROR = 3,
95033 	SCSIML_STAT_TGT_FAILURE = 4,
95034 };
95035 
95036 enum {
95037 	ACTION_FAIL = 0,
95038 	ACTION_REPREP = 1,
95039 	ACTION_DELAYED_REPREP = 2,
95040 	ACTION_RETRY = 3,
95041 	ACTION_DELAYED_RETRY = 4,
95042 };
95043 
95044 struct scsi_nl_hdr {
95045 	__u8 version;
95046 	__u8 transport;
95047 	__u16 magic;
95048 	__u16 msgtype;
95049 	__u16 msglen;
95050 };
95051 
95052 struct scsi_varlen_cdb_hdr {
95053 	__u8 opcode;
95054 	__u8 control;
95055 	__u8 misc[5];
95056 	__u8 additional_cdb_length;
95057 	__be16 service_action;
95058 };
95059 
95060 struct raid_template {
95061 	struct transport_container raid_attrs;
95062 };
95063 
95064 struct raid_function_template {
95065 	void *cookie;
95066 	int (*is_raid)(struct device *);
95067 	void (*get_resync)(struct device *);
95068 	void (*get_state)(struct device *);
95069 };
95070 
95071 enum raid_state {
95072 	RAID_STATE_UNKNOWN = 0,
95073 	RAID_STATE_ACTIVE = 1,
95074 	RAID_STATE_DEGRADED = 2,
95075 	RAID_STATE_RESYNCING = 3,
95076 	RAID_STATE_OFFLINE = 4,
95077 };
95078 
95079 enum raid_level {
95080 	RAID_LEVEL_UNKNOWN = 0,
95081 	RAID_LEVEL_LINEAR = 1,
95082 	RAID_LEVEL_0 = 2,
95083 	RAID_LEVEL_1 = 3,
95084 	RAID_LEVEL_10 = 4,
95085 	RAID_LEVEL_1E = 5,
95086 	RAID_LEVEL_3 = 6,
95087 	RAID_LEVEL_4 = 7,
95088 	RAID_LEVEL_5 = 8,
95089 	RAID_LEVEL_50 = 9,
95090 	RAID_LEVEL_6 = 10,
95091 	RAID_LEVEL_JBOD = 11,
95092 };
95093 
95094 struct raid_data {
95095 	struct list_head component_list;
95096 	int component_count;
95097 	enum raid_level level;
95098 	enum raid_state state;
95099 	int resync;
95100 };
95101 
95102 struct raid_internal {
95103 	struct raid_template r;
95104 	struct raid_function_template *f;
95105 	struct device_attribute private_attrs[3];
95106 	struct device_attribute *attrs[4];
95107 };
95108 
95109 struct raid_component {
95110 	struct list_head node;
95111 	struct device dev;
95112 	int num;
95113 };
95114 
95115 enum task_disposition {
95116 	TASK_IS_DONE = 0,
95117 	TASK_IS_ABORTED = 1,
95118 	TASK_IS_AT_LU = 2,
95119 	TASK_IS_NOT_AT_LU = 3,
95120 	TASK_ABORT_FAILED = 4,
95121 };
95122 
95123 struct mbox_out {
95124 	u8 cmd;
95125 	u8 cmdid;
95126 	u16 numsectors;
95127 	u32 lba;
95128 	u32 xferaddr;
95129 	u8 logdrv;
95130 	u8 numsgelements;
95131 	u8 resvd;
95132 } __attribute__((packed));
95133 
95134 struct mbox_in {
95135 	volatile u8 busy;
95136 	volatile u8 numstatus;
95137 	volatile u8 status;
95138 	volatile u8 completed[46];
95139 	volatile u8 poll;
95140 	volatile u8 ack;
95141 };
95142 
95143 typedef struct {
95144 	struct mbox_out m_out;
95145 	struct mbox_in m_in;
95146 } __attribute__((packed)) mbox_t___2;
95147 
95148 typedef struct {
95149 	u32 xfer_segment_lo;
95150 	u32 xfer_segment_hi;
95151 	mbox_t___2 mbox;
95152 } __attribute__((packed)) mbox64_t___2;
95153 
95154 typedef struct {
95155 	u8 timeout: 3;
95156 	u8 ars: 1;
95157 	u8 reserved: 3;
95158 	u8 islogical: 1;
95159 	u8 logdrv;
95160 	u8 channel;
95161 	u8 target;
95162 	u8 queuetag;
95163 	u8 queueaction;
95164 	u8 cdb[10];
95165 	u8 cdblen;
95166 	u8 reqsenselen;
95167 	u8 reqsensearea[32];
95168 	u8 numsgelements;
95169 	u8 scsistatus;
95170 	u32 dataxferaddr;
95171 	u32 dataxferlen;
95172 } mega_passthru;
95173 
95174 typedef struct {
95175 	u8 timeout: 3;
95176 	u8 ars: 1;
95177 	u8 rsvd1: 1;
95178 	u8 cd_rom: 1;
95179 	u8 rsvd2: 1;
95180 	u8 islogical: 1;
95181 	u8 logdrv;
95182 	u8 channel;
95183 	u8 target;
95184 	u8 queuetag;
95185 	u8 queueaction;
95186 	u8 cdblen;
95187 	u8 rsvd3;
95188 	u8 cdb[16];
95189 	u8 numsgelements;
95190 	u8 status;
95191 	u8 reqsenselen;
95192 	u8 reqsensearea[32];
95193 	u8 rsvd4;
95194 	u32 dataxferaddr;
95195 	u32 dataxferlen;
95196 } mega_ext_passthru;
95197 
95198 typedef struct {
95199 	u64 address;
95200 	u32 length;
95201 } __attribute__((packed)) mega_sgl64;
95202 
95203 typedef struct {
95204 	u32 address;
95205 	u32 length;
95206 } mega_sglist;
95207 
95208 typedef struct {
95209 	int idx;
95210 	u32 state;
95211 	struct list_head list;
95212 	u8 raw_mbox[66];
95213 	u32 dma_type;
95214 	u32 dma_direction;
95215 	struct scsi_cmnd *cmd;
95216 	dma_addr_t dma_h_bulkdata;
95217 	dma_addr_t dma_h_sgdata;
95218 	mega_sglist *sgl;
95219 	mega_sgl64 *sgl64;
95220 	dma_addr_t sgl_dma_addr;
95221 	mega_passthru *pthru;
95222 	dma_addr_t pthru_dma_addr;
95223 	mega_ext_passthru *epthru;
95224 	dma_addr_t epthru_dma_addr;
95225 } scb_t;
95226 
95227 typedef struct {
95228 	u32 data_size;
95229 	u32 config_signature;
95230 	u8 fw_version[16];
95231 	u8 bios_version[16];
95232 	u8 product_name[80];
95233 	u8 max_commands;
95234 	u8 nchannels;
95235 	u8 fc_loop_present;
95236 	u8 mem_type;
95237 	u32 signature;
95238 	u16 dram_size;
95239 	u16 subsysid;
95240 	u16 subsysvid;
95241 	u8 notify_counters;
95242 	u8 pad1k[889];
95243 } mega_product_info;
95244 
95245 struct notify {
95246 	u32 global_counter;
95247 	u8 param_counter;
95248 	u8 param_id;
95249 	u16 param_val;
95250 	u8 write_config_counter;
95251 	u8 write_config_rsvd[3];
95252 	u8 ldrv_op_counter;
95253 	u8 ldrv_opid;
95254 	u8 ldrv_opcmd;
95255 	u8 ldrv_opstatus;
95256 	u8 ldrv_state_counter;
95257 	u8 ldrv_state_id;
95258 	u8 ldrv_state_new;
95259 	u8 ldrv_state_old;
95260 	u8 pdrv_state_counter;
95261 	u8 pdrv_state_id;
95262 	u8 pdrv_state_new;
95263 	u8 pdrv_state_old;
95264 	u8 pdrv_fmt_counter;
95265 	u8 pdrv_fmt_id;
95266 	u8 pdrv_fmt_val;
95267 	u8 pdrv_fmt_rsvd;
95268 	u8 targ_xfer_counter;
95269 	u8 targ_xfer_id;
95270 	u8 targ_xfer_val;
95271 	u8 targ_xfer_rsvd;
95272 	u8 fcloop_id_chg_counter;
95273 	u8 fcloopid_pdrvid;
95274 	u8 fcloop_id0;
95275 	u8 fcloop_id1;
95276 	u8 fcloop_state_counter;
95277 	u8 fcloop_state0;
95278 	u8 fcloop_state1;
95279 	u8 fcloop_state_rsvd;
95280 };
95281 
95282 typedef struct {
95283 	u32 data_size;
95284 	struct notify notify;
95285 	u8 notify_rsvd[88];
95286 	u8 rebuild_rate;
95287 	u8 cache_flush_interval;
95288 	u8 sense_alert;
95289 	u8 drive_insert_count;
95290 	u8 battery_status;
95291 	u8 num_ldrv;
95292 	u8 recon_state[5];
95293 	u16 ldrv_op_status[5];
95294 	u32 ldrv_size[40];
95295 	u8 ldrv_prop[40];
95296 	u8 ldrv_state[40];
95297 	u8 pdrv_state[256];
95298 	u16 pdrv_format[16];
95299 	u8 targ_xfer[80];
95300 	u8 pad1k[263];
95301 } __attribute__((packed)) mega_inquiry3;
95302 
95303 typedef struct {
95304 	u8 max_commands;
95305 	u8 rebuild_rate;
95306 	u8 max_targ_per_chan;
95307 	u8 nchannels;
95308 	u8 fw_version[4];
95309 	u16 age_of_flash;
95310 	u8 chip_set_value;
95311 	u8 dram_size;
95312 	u8 cache_flush_interval;
95313 	u8 bios_version[4];
95314 	u8 board_type;
95315 	u8 sense_alert;
95316 	u8 write_config_count;
95317 	u8 drive_inserted_count;
95318 	u8 inserted_drive;
95319 	u8 battery_status;
95320 	u8 dec_fault_bus_info;
95321 } mega_adp_info;
95322 
95323 typedef struct {
95324 	u8 num_ldrv;
95325 	u8 rsvd[3];
95326 	u32 ldrv_size[8];
95327 	u8 ldrv_prop[8];
95328 	u8 ldrv_state[8];
95329 } mega_ldrv_info;
95330 
95331 typedef struct {
95332 	u8 pdrv_state[75];
95333 	u8 rsvd;
95334 } mega_pdrv_info;
95335 
95336 typedef struct {
95337 	mega_adp_info adapter_info;
95338 	mega_ldrv_info logdrv_info;
95339 	mega_pdrv_info pdrv_info;
95340 } mraid_inquiry;
95341 
95342 typedef struct {
95343 	mraid_inquiry raid_inq;
95344 	u16 phys_drv_format[5];
95345 	u8 stack_attn;
95346 	u8 modem_status;
95347 	u8 rsvd[2];
95348 } __attribute__((packed)) mraid_ext_inquiry;
95349 
95350 typedef struct {
95351 	u8 channel;
95352 	u8 target;
95353 } adp_device;
95354 
95355 typedef struct {
95356 	u32 start_blk;
95357 	u32 num_blks;
95358 	adp_device device[32];
95359 } adp_span_40ld;
95360 
95361 typedef struct {
95362 	u32 start_blk;
95363 	u32 num_blks;
95364 	adp_device device[8];
95365 } adp_span_8ld;
95366 
95367 typedef struct {
95368 	u8 span_depth;
95369 	u8 level;
95370 	u8 read_ahead;
95371 	u8 stripe_sz;
95372 	u8 status;
95373 	u8 write_mode;
95374 	u8 direct_io;
95375 	u8 row_size;
95376 } logdrv_param;
95377 
95378 typedef struct {
95379 	logdrv_param lparam;
95380 	adp_span_40ld span[8];
95381 } logdrv_40ld;
95382 
95383 typedef struct {
95384 	logdrv_param lparam;
95385 	adp_span_8ld span[8];
95386 } logdrv_8ld;
95387 
95388 typedef struct {
95389 	u8 type;
95390 	u8 cur_status;
95391 	u8 tag_depth;
95392 	u8 sync_neg;
95393 	u32 size;
95394 } phys_drv;
95395 
95396 typedef struct {
95397 	u8 nlog_drives;
95398 	u8 resvd[3];
95399 	logdrv_40ld ldrv[40];
95400 	phys_drv pdrv[75];
95401 } disk_array_40ld;
95402 
95403 typedef struct {
95404 	u8 nlog_drives;
95405 	u8 resvd[3];
95406 	logdrv_8ld ldrv[8];
95407 	phys_drv pdrv[75];
95408 } disk_array_8ld;
95409 
95410 struct uioctl_t {
95411 	u32 inlen;
95412 	u32 outlen;
95413 	union {
95414 		u8 fca[16];
95415 		struct {
95416 			u8 opcode;
95417 			u8 subopcode;
95418 			u16 adapno;
95419 			u8 *buffer;
95420 			u32 length;
95421 		} __attribute__((packed)) fcs;
95422 	} ui;
95423 	u8 mbox[18];
95424 	mega_passthru pthru;
95425 	char *data;
95426 } __attribute__((packed));
95427 
95428 struct mcontroller___2 {
95429 	u64 base;
95430 	u8 irq;
95431 	u8 numldrv;
95432 	u8 pcibus;
95433 	u16 pcidev;
95434 	u8 pcifun;
95435 	u16 pciid;
95436 	u16 pcivendor;
95437 	u8 pcislot;
95438 	u32 uid;
95439 };
95440 
95441 typedef struct {
95442 	u8 cmd;
95443 	u8 cmdid;
95444 	u8 opcode;
95445 	u8 subopcode;
95446 	u32 lba;
95447 	u32 xferaddr;
95448 	u8 logdrv;
95449 	u8 rsvd[3];
95450 	u8 numstatus;
95451 	u8 status;
95452 } __attribute__((packed)) megacmd_t;
95453 
95454 typedef struct {
95455 	char signature[8];
95456 	u32 opcode;
95457 	u32 adapno;
95458 	union {
95459 		u8 __raw_mbox[18];
95460 		void *__uaddr;
95461 	} __ua;
95462 	u32 xferlen;
95463 	u32 flags;
95464 } nitioctl_t;
95465 
95466 struct private_bios_data {
95467 	u8 geometry: 4;
95468 	u8 unused: 4;
95469 	u8 boot_drv;
95470 	u8 rsvd[12];
95471 	u16 cksum;
95472 };
95473 
95474 struct megaraid_cmd_priv {
95475 	struct list_head entry;
95476 };
95477 
95478 struct scsi_cmd_and_priv {
95479 	struct scsi_cmnd cmd;
95480 	struct megaraid_cmd_priv priv;
95481 };
95482 
95483 typedef struct {
95484 	int this_id;
95485 	u32 flag;
95486 	long unsigned int base;
95487 	void *mmio_base;
95488 	mbox64_t___2 *una_mbox64;
95489 	dma_addr_t una_mbox64_dma;
95490 	volatile mbox64_t___2 *mbox64;
95491 	volatile mbox_t___2 *mbox;
95492 	dma_addr_t mbox_dma;
95493 	struct pci_dev *dev;
95494 	struct list_head free_list;
95495 	struct list_head pending_list;
95496 	struct list_head completed_list;
95497 	struct Scsi_Host *host;
95498 	u8 *mega_buffer;
95499 	dma_addr_t buf_dma_handle;
95500 	mega_product_info product_info;
95501 	u8 max_cmds;
95502 	scb_t *scb_list;
95503 	atomic_t pend_cmds;
95504 	u8 numldrv;
95505 	u8 fw_version[7];
95506 	u8 bios_version[7];
95507 	struct proc_dir_entry *controller_proc_dir_entry;
95508 	int has_64bit_addr;
95509 	int support_ext_cdb;
95510 	int boot_ldrv_enabled;
95511 	int boot_ldrv;
95512 	int boot_pdrv_enabled;
95513 	int boot_pdrv_ch;
95514 	int boot_pdrv_tgt;
95515 	int support_random_del;
95516 	int read_ldidmap;
95517 	atomic_t quiescent;
95518 	spinlock_t lock;
95519 	u8 logdrv_chan[9];
95520 	int mega_ch_class;
95521 	u8 sglen;
95522 	scb_t int_scb;
95523 	struct mutex int_mtx;
95524 	int int_status;
95525 	struct completion int_waitq;
95526 	int has_cluster;
95527 } adapter_t;
95528 
95529 struct mega_hbas {
95530 	int is_bios_enabled;
95531 	adapter_t *hostdata_addr;
95532 };
95533 
95534 struct MR_FW_RAID_MAP_ALL {
95535 	struct MR_FW_RAID_MAP raidMap;
95536 	struct MR_LD_SPAN_MAP ldSpanMap[64];
95537 };
95538 
95539 struct MR_FW_RAID_MAP_EXT {
95540 	u32 reserved;
95541 	union {
95542 		struct {
95543 			u32 maxLd;
95544 			u32 maxSpanDepth;
95545 			u32 maxRowSize;
95546 			u32 maxPdCount;
95547 			u32 maxArrays;
95548 		} validationInfo;
95549 		u32 version[5];
95550 	};
95551 	u8 fpPdIoTimeoutSec;
95552 	u8 reserved2[7];
95553 	__le16 ldCount;
95554 	__le16 arCount;
95555 	__le16 spanCount;
95556 	__le16 reserve3;
95557 	struct MR_DEV_HANDLE_INFO devHndlInfo[256];
95558 	u8 ldTgtIdToLd[256];
95559 	struct MR_ARRAY_INFO arMapInfo[256];
95560 	struct MR_LD_SPAN_MAP ldSpanMap[256];
95561 };
95562 
95563 struct _MPI2_EVENT_DATA_LOG_ENTRY_ADDED {
95564 	U64___2 TimeStamp;
95565 	U32___2 Reserved1;
95566 	U16___2 LogSequence;
95567 	U16___2 LogEntryQualifier;
95568 	U8___2 VP_ID;
95569 	U8___2 VF_ID;
95570 	U16___2 Reserved2;
95571 	U8___2 LogData[28];
95572 };
95573 
95574 typedef struct _MPI2_EVENT_DATA_LOG_ENTRY_ADDED Mpi2EventDataLogEntryAdded_t;
95575 
95576 struct _MPI2_EVENT_DATA_TEMPERATURE {
95577 	U16___2 Status;
95578 	U8___2 SensorNum;
95579 	U8___2 Reserved1;
95580 	U16___2 CurrentTemperature;
95581 	U16___2 Reserved2;
95582 	U32___2 Reserved3;
95583 	U32___2 Reserved4;
95584 };
95585 
95586 typedef struct _MPI2_EVENT_DATA_TEMPERATURE Mpi2EventDataTemperature_t;
95587 
95588 struct _MPI26_EVENT_DATA_ACTIVE_CABLE_EXCEPT {
95589 	U32___2 ActiveCablePowerRequirement;
95590 	U8___2 ReasonCode;
95591 	U8___2 ReceptacleID;
95592 	U16___2 Reserved1;
95593 };
95594 
95595 typedef struct _MPI26_EVENT_DATA_ACTIVE_CABLE_EXCEPT Mpi26EventDataActiveCableExcept_t;
95596 
95597 struct _MPI2_EVENT_DATA_SAS_DEVICE_STATUS_CHANGE {
95598 	U16___2 TaskTag;
95599 	U8___2 ReasonCode;
95600 	U8___2 PhysicalPort;
95601 	U8___2 ASC;
95602 	U8___2 ASCQ;
95603 	U16___2 DevHandle;
95604 	U32___2 Reserved2;
95605 	U64___2 SASAddress;
95606 	U8___2 LUN[8];
95607 } __attribute__((packed));
95608 
95609 typedef struct _MPI2_EVENT_DATA_SAS_DEVICE_STATUS_CHANGE Mpi2EventDataSasDeviceStatusChange_t;
95610 
95611 struct _MPI2_EVENT_DATA_IR_OPERATION_STATUS {
95612 	U16___2 VolDevHandle;
95613 	U16___2 Reserved1;
95614 	U8___2 RAIDOperation;
95615 	U8___2 PercentComplete;
95616 	U16___2 Reserved2;
95617 	U32___2 ElapsedSeconds;
95618 };
95619 
95620 typedef struct _MPI2_EVENT_DATA_IR_OPERATION_STATUS Mpi2EventDataIrOperationStatus_t;
95621 
95622 struct _MPI2_EVENT_DATA_IR_VOLUME {
95623 	U16___2 VolDevHandle;
95624 	U8___2 ReasonCode;
95625 	U8___2 Reserved1;
95626 	U32___2 NewValue;
95627 	U32___2 PreviousValue;
95628 };
95629 
95630 typedef struct _MPI2_EVENT_DATA_IR_VOLUME Mpi2EventDataIrVolume_t;
95631 
95632 struct _MPI2_EVENT_DATA_IR_PHYSICAL_DISK {
95633 	U16___2 Reserved1;
95634 	U8___2 ReasonCode;
95635 	U8___2 PhysDiskNum;
95636 	U16___2 PhysDiskDevHandle;
95637 	U16___2 Reserved2;
95638 	U16___2 Slot;
95639 	U16___2 EnclosureHandle;
95640 	U32___2 NewValue;
95641 	U32___2 PreviousValue;
95642 };
95643 
95644 typedef struct _MPI2_EVENT_DATA_IR_PHYSICAL_DISK Mpi2EventDataIrPhysicalDisk_t;
95645 
95646 struct _MPI2_EVENT_IR_CONFIG_ELEMENT {
95647 	U16___2 ElementFlags;
95648 	U16___2 VolDevHandle;
95649 	U8___2 ReasonCode;
95650 	U8___2 PhysDiskNum;
95651 	U16___2 PhysDiskDevHandle;
95652 };
95653 
95654 typedef struct _MPI2_EVENT_IR_CONFIG_ELEMENT MPI2_EVENT_IR_CONFIG_ELEMENT;
95655 
95656 typedef struct _MPI2_EVENT_IR_CONFIG_ELEMENT Mpi2EventIrConfigElement_t;
95657 
95658 struct _MPI2_EVENT_DATA_IR_CONFIG_CHANGE_LIST {
95659 	U8___2 NumElements;
95660 	U8___2 Reserved1;
95661 	U8___2 Reserved2;
95662 	U8___2 ConfigNum;
95663 	U32___2 Flags;
95664 	MPI2_EVENT_IR_CONFIG_ELEMENT ConfigElement[1];
95665 };
95666 
95667 typedef struct _MPI2_EVENT_DATA_IR_CONFIG_CHANGE_LIST Mpi2EventDataIrConfigChangeList_t;
95668 
95669 struct _MPI2_EVENT_DATA_SAS_BROADCAST_PRIMITIVE {
95670 	U8___2 PhyNum;
95671 	U8___2 Port;
95672 	U8___2 PortWidth;
95673 	U8___2 Primitive;
95674 };
95675 
95676 typedef struct _MPI2_EVENT_DATA_SAS_BROADCAST_PRIMITIVE Mpi2EventDataSasBroadcastPrimitive_t;
95677 
95678 struct _MPI2_EVENT_SAS_TOPO_PHY_ENTRY {
95679 	U16___2 AttachedDevHandle;
95680 	U8___2 LinkRate;
95681 	U8___2 PhyStatus;
95682 };
95683 
95684 typedef struct _MPI2_EVENT_SAS_TOPO_PHY_ENTRY MPI2_EVENT_SAS_TOPO_PHY_ENTRY;
95685 
95686 struct _MPI2_EVENT_DATA_SAS_TOPOLOGY_CHANGE_LIST {
95687 	U16___2 EnclosureHandle;
95688 	U16___2 ExpanderDevHandle;
95689 	U8___2 NumPhys;
95690 	U8___2 Reserved1;
95691 	U16___2 Reserved2;
95692 	U8___2 NumEntries;
95693 	U8___2 StartPhyNum;
95694 	U8___2 ExpStatus;
95695 	U8___2 PhysicalPort;
95696 	MPI2_EVENT_SAS_TOPO_PHY_ENTRY PHY[1];
95697 };
95698 
95699 typedef struct _MPI2_EVENT_DATA_SAS_TOPOLOGY_CHANGE_LIST Mpi2EventDataSasTopologyChangeList_t;
95700 
95701 struct _MPI2_EVENT_DATA_SAS_ENCL_DEV_STATUS_CHANGE {
95702 	U16___2 EnclosureHandle;
95703 	U8___2 ReasonCode;
95704 	U8___2 PhysicalPort;
95705 	U64___2 EnclosureLogicalID;
95706 	U16___2 NumSlots;
95707 	U16___2 StartSlot;
95708 	U32___2 PhyBits;
95709 } __attribute__((packed));
95710 
95711 typedef struct _MPI2_EVENT_DATA_SAS_ENCL_DEV_STATUS_CHANGE Mpi2EventDataSasEnclDevStatusChange_t;
95712 
95713 struct _MPI25_EVENT_DATA_SAS_DEVICE_DISCOVERY_ERROR {
95714 	U16___2 DevHandle;
95715 	U8___2 ReasonCode;
95716 	U8___2 PhysicalPort;
95717 	U32___2 Reserved1[2];
95718 	U64___2 SASAddress;
95719 	U32___2 Reserved2[2];
95720 } __attribute__((packed));
95721 
95722 typedef struct _MPI25_EVENT_DATA_SAS_DEVICE_DISCOVERY_ERROR Mpi25EventDataSasDeviceDiscoveryError_t;
95723 
95724 struct _MPI26_EVENT_DATA_PCIE_DEVICE_STATUS_CHANGE {
95725 	U16___2 TaskTag;
95726 	U8___2 ReasonCode;
95727 	U8___2 PhysicalPort;
95728 	U8___2 ASC;
95729 	U8___2 ASCQ;
95730 	U16___2 DevHandle;
95731 	U32___2 Reserved2;
95732 	U64___2 WWID;
95733 	U8___2 LUN[8];
95734 } __attribute__((packed));
95735 
95736 typedef struct _MPI26_EVENT_DATA_PCIE_DEVICE_STATUS_CHANGE Mpi26EventDataPCIeDeviceStatusChange_t;
95737 
95738 struct _MPI26_EVENT_PCIE_TOPO_PORT_ENTRY {
95739 	U16___2 AttachedDevHandle;
95740 	U8___2 PortStatus;
95741 	U8___2 Reserved1;
95742 	U8___2 CurrentPortInfo;
95743 	U8___2 Reserved2;
95744 	U8___2 PreviousPortInfo;
95745 	U8___2 Reserved3;
95746 };
95747 
95748 typedef struct _MPI26_EVENT_PCIE_TOPO_PORT_ENTRY MPI26_EVENT_PCIE_TOPO_PORT_ENTRY;
95749 
95750 struct _MPI26_EVENT_DATA_PCIE_TOPOLOGY_CHANGE_LIST {
95751 	U16___2 EnclosureHandle;
95752 	U16___2 SwitchDevHandle;
95753 	U8___2 NumPorts;
95754 	U8___2 Reserved1;
95755 	U16___2 Reserved2;
95756 	U8___2 NumEntries;
95757 	U8___2 StartPortNum;
95758 	U8___2 SwitchStatus;
95759 	U8___2 PhysicalPort;
95760 	MPI26_EVENT_PCIE_TOPO_PORT_ENTRY PortEntry[1];
95761 };
95762 
95763 typedef struct _MPI26_EVENT_DATA_PCIE_TOPOLOGY_CHANGE_LIST Mpi26EventDataPCIeTopologyChangeList_t;
95764 
95765 typedef struct _MPI2_BOOT_DEVICE_SAS_WWID Mpi2BootDeviceSasWwid_t;
95766 
95767 typedef struct _MPI2_BOOT_DEVICE_ENCLOSURE_SLOT Mpi2BootDeviceEnclosureSlot_t;
95768 
95769 typedef struct _MPI2_BOOT_DEVICE_DEVICE_NAME Mpi2BootDeviceDeviceName_t;
95770 
95771 typedef union _MPI2_MPI2_BIOSPAGE2_BOOT_DEVICE Mpi2BiosPage2BootDevice_t;
95772 
95773 struct _MPI2_RAID_ACTION_RATE_DATA {
95774 	U8___2 RateToChange;
95775 	U8___2 RateOrMode;
95776 	U16___2 DataScrubDuration;
95777 };
95778 
95779 typedef struct _MPI2_RAID_ACTION_RATE_DATA MPI2_RAID_ACTION_RATE_DATA;
95780 
95781 struct _MPI2_RAID_ACTION_START_RAID_FUNCTION {
95782 	U8___2 RAIDFunction;
95783 	U8___2 Flags;
95784 	U16___2 Reserved1;
95785 };
95786 
95787 typedef struct _MPI2_RAID_ACTION_START_RAID_FUNCTION MPI2_RAID_ACTION_START_RAID_FUNCTION;
95788 
95789 struct _MPI2_RAID_ACTION_STOP_RAID_FUNCTION {
95790 	U8___2 RAIDFunction;
95791 	U8___2 Flags;
95792 	U16___2 Reserved1;
95793 };
95794 
95795 typedef struct _MPI2_RAID_ACTION_STOP_RAID_FUNCTION MPI2_RAID_ACTION_STOP_RAID_FUNCTION;
95796 
95797 struct _MPI2_RAID_ACTION_HOT_SPARE {
95798 	U8___2 HotSparePool;
95799 	U8___2 Reserved1;
95800 	U16___2 DevHandle;
95801 };
95802 
95803 typedef struct _MPI2_RAID_ACTION_HOT_SPARE MPI2_RAID_ACTION_HOT_SPARE;
95804 
95805 struct _MPI2_RAID_ACTION_FW_UPDATE_MODE {
95806 	U8___2 Flags;
95807 	U8___2 DeviceFirmwareUpdateModeTimeout;
95808 	U16___2 Reserved1;
95809 };
95810 
95811 typedef struct _MPI2_RAID_ACTION_FW_UPDATE_MODE MPI2_RAID_ACTION_FW_UPDATE_MODE;
95812 
95813 union _MPI2_RAID_ACTION_DATA {
95814 	U32___2 Word;
95815 	MPI2_RAID_ACTION_RATE_DATA Rates;
95816 	MPI2_RAID_ACTION_START_RAID_FUNCTION StartRaidFunction;
95817 	MPI2_RAID_ACTION_STOP_RAID_FUNCTION StopRaidFunction;
95818 	MPI2_RAID_ACTION_HOT_SPARE HotSpare;
95819 	MPI2_RAID_ACTION_FW_UPDATE_MODE FwUpdateMode;
95820 };
95821 
95822 typedef union _MPI2_RAID_ACTION_DATA MPI2_RAID_ACTION_DATA;
95823 
95824 struct _MPI2_RAID_ACTION_REQUEST {
95825 	U8___2 Action;
95826 	U8___2 Reserved1;
95827 	U8___2 ChainOffset;
95828 	U8___2 Function;
95829 	U16___2 VolDevHandle;
95830 	U8___2 PhysDiskNum;
95831 	U8___2 MsgFlags;
95832 	U8___2 VP_ID;
95833 	U8___2 VF_ID;
95834 	U16___2 Reserved2;
95835 	U32___2 Reserved3;
95836 	MPI2_RAID_ACTION_DATA ActionDataWord;
95837 	MPI2_SGE_SIMPLE_UNION ActionDataSGE;
95838 } __attribute__((packed));
95839 
95840 typedef struct _MPI2_RAID_ACTION_REQUEST Mpi2RaidActionRequest_t;
95841 
95842 struct _MPI2_RAID_VOL_INDICATOR {
95843 	U64___2 TotalBlocks;
95844 	U64___2 BlocksRemaining;
95845 	U32___2 Flags;
95846 	U32___2 ElapsedSeconds;
95847 };
95848 
95849 typedef struct _MPI2_RAID_VOL_INDICATOR MPI2_RAID_VOL_INDICATOR;
95850 
95851 struct _MPI2_RAID_COMPATIBILITY_RESULT_STRUCT {
95852 	U8___2 State;
95853 	U8___2 Reserved1;
95854 	U16___2 Reserved2;
95855 	U32___2 GenericAttributes;
95856 	U32___2 OEMSpecificAttributes;
95857 	U32___2 Reserved3;
95858 	U32___2 Reserved4;
95859 };
95860 
95861 typedef struct _MPI2_RAID_COMPATIBILITY_RESULT_STRUCT MPI2_RAID_COMPATIBILITY_RESULT_STRUCT;
95862 
95863 union _MPI2_RAID_ACTION_REPLY_DATA {
95864 	U32___2 Word[6];
95865 	MPI2_RAID_VOL_INDICATOR RaidVolumeIndicator;
95866 	U16___2 VolDevHandle;
95867 	U8___2 VolumeState;
95868 	U8___2 PhysDiskNum;
95869 	MPI2_RAID_COMPATIBILITY_RESULT_STRUCT RaidCompatibilityResult;
95870 };
95871 
95872 typedef union _MPI2_RAID_ACTION_REPLY_DATA MPI2_RAID_ACTION_REPLY_DATA;
95873 
95874 struct _MPI2_RAID_ACTION_REPLY {
95875 	U8___2 Action;
95876 	U8___2 Reserved1;
95877 	U8___2 MsgLength;
95878 	U8___2 Function;
95879 	U16___2 VolDevHandle;
95880 	U8___2 PhysDiskNum;
95881 	U8___2 MsgFlags;
95882 	U8___2 VP_ID;
95883 	U8___2 VF_ID;
95884 	U16___2 Reserved2;
95885 	U16___2 Reserved3;
95886 	U16___2 IOCStatus;
95887 	U32___2 IOCLogInfo;
95888 	MPI2_RAID_ACTION_REPLY_DATA ActionData;
95889 } __attribute__((packed));
95890 
95891 typedef struct _MPI2_RAID_ACTION_REPLY Mpi2RaidActionReply_t;
95892 
95893 enum scsi_host_guard_type {
95894 	SHOST_DIX_GUARD_CRC = 1,
95895 	SHOST_DIX_GUARD_IP = 2,
95896 };
95897 
95898 struct _sas_port {
95899 	struct list_head port_list;
95900 	u8 num_phys;
95901 	struct sas_identify remote_identify;
95902 	struct sas_rphy *rphy;
95903 	struct sas_port *port;
95904 	struct hba_port *hba_port;
95905 	struct list_head phy_list;
95906 };
95907 
95908 struct virtual_phy {
95909 	struct list_head list;
95910 	u64 sas_address;
95911 	u32 phy_mask;
95912 	u8 flags;
95913 };
95914 
95915 struct fw_event_work {
95916 	struct list_head list;
95917 	struct work_struct work;
95918 	struct MPT3SAS_ADAPTER *ioc;
95919 	u16 device_handle;
95920 	u8 VF_ID;
95921 	u8 VP_ID;
95922 	u8 ignore;
95923 	u16 event;
95924 	struct kref refcount;
95925 	char event_data[0];
95926 };
95927 
95928 struct sense_info {
95929 	u8 skey;
95930 	u8 asc;
95931 	u8 ascq;
95932 };
95933 
95934 enum hba_port_matched_codes {
95935 	NOT_MATCHED = 0,
95936 	MATCHED_WITH_ADDR_AND_PHYMASK = 1,
95937 	MATCHED_WITH_ADDR_SUBPHYMASK_AND_PORT = 2,
95938 	MATCHED_WITH_ADDR_AND_SUBPHYMASK = 3,
95939 	MATCHED_WITH_ADDR = 4,
95940 };
95941 
95942 struct mpt3sas_debugfs_buffer {
95943 	void *buf;
95944 	u32 len;
95945 };
95946 
95947 enum sas_gpio_reg_type {
95948 	SAS_GPIO_REG_CFG = 0,
95949 	SAS_GPIO_REG_RX = 1,
95950 	SAS_GPIO_REG_RX_GP = 2,
95951 	SAS_GPIO_REG_TX = 3,
95952 	SAS_GPIO_REG_TX_GP = 4,
95953 };
95954 
95955 enum sas_cmd_port_registers {
95956 	CMD_CMRST_OOB_DET = 256,
95957 	CMD_CMWK_OOB_DET = 260,
95958 	CMD_CMSAS_OOB_DET = 264,
95959 	CMD_BRST_OOB_DET = 268,
95960 	CMD_OOB_SPACE = 272,
95961 	CMD_OOB_BURST = 276,
95962 	CMD_PHY_TIMER = 280,
95963 	CMD_PHY_CONFIG0 = 284,
95964 	CMD_PHY_CONFIG1 = 288,
95965 	CMD_SAS_CTL0 = 292,
95966 	CMD_SAS_CTL1 = 296,
95967 	CMD_SAS_CTL2 = 300,
95968 	CMD_SAS_CTL3 = 304,
95969 	CMD_ID_TEST = 308,
95970 	CMD_PL_TIMER = 312,
95971 	CMD_WD_TIMER = 316,
95972 	CMD_PORT_SEL_COUNT = 320,
95973 	CMD_APP_MEM_CTL = 324,
95974 	CMD_XOR_MEM_CTL = 328,
95975 	CMD_DMA_MEM_CTL = 332,
95976 	CMD_PORT_MEM_CTL0 = 336,
95977 	CMD_PORT_MEM_CTL1 = 340,
95978 	CMD_SATA_PORT_MEM_CTL0 = 344,
95979 	CMD_SATA_PORT_MEM_CTL1 = 348,
95980 	CMD_XOR_MEM_BIST_CTL = 352,
95981 	CMD_XOR_MEM_BIST_STAT = 356,
95982 	CMD_DMA_MEM_BIST_CTL = 360,
95983 	CMD_DMA_MEM_BIST_STAT = 364,
95984 	CMD_PORT_MEM_BIST_CTL = 368,
95985 	CMD_PORT_MEM_BIST_STAT0 = 372,
95986 	CMD_PORT_MEM_BIST_STAT1 = 376,
95987 	CMD_STP_MEM_BIST_CTL = 380,
95988 	CMD_STP_MEM_BIST_STAT0 = 384,
95989 	CMD_STP_MEM_BIST_STAT1 = 388,
95990 	CMD_RESET_COUNT = 392,
95991 	CMD_MONTR_DATA_SEL = 396,
95992 	CMD_PLL_PHY_CONFIG = 400,
95993 	CMD_PHY_CTL = 404,
95994 	CMD_PHY_TEST_COUNT0 = 408,
95995 	CMD_PHY_TEST_COUNT1 = 412,
95996 	CMD_PHY_TEST_COUNT2 = 416,
95997 	CMD_APP_ERR_CONFIG = 420,
95998 	CMD_PND_FIFO_CTL0 = 424,
95999 	CMD_HOST_CTL = 428,
96000 	CMD_HOST_WR_DATA = 432,
96001 	CMD_HOST_RD_DATA = 436,
96002 	CMD_PHY_MODE_21 = 440,
96003 	CMD_SL_MODE0 = 444,
96004 	CMD_SL_MODE1 = 448,
96005 	CMD_PND_FIFO_CTL1 = 452,
96006 	CMD_PORT_LAYER_TIMER1 = 480,
96007 	CMD_LINK_TIMER = 484,
96008 };
96009 
96010 enum pci_cfg_register_bits {
96011 	PCTL_PWR_OFF = 251658240,
96012 	PCTL_COM_ON = 15728640,
96013 	PCTL_LINK_RST = 983040,
96014 	PCTL_LINK_OFFS = 16,
96015 	PCTL_PHY_DSBL = 61440,
96016 	PCTL_PHY_DSBL_OFFS = 12,
96017 	PRD_REQ_SIZE = 16384,
96018 	PRD_REQ_MASK = 28672,
96019 	PLS_NEG_LINK_WD = 1008,
96020 	PLS_NEG_LINK_WD_OFFS = 4,
96021 	PLS_LINK_SPD = 15,
96022 	PLS_LINK_SPD_OFFS = 0,
96023 };
96024 
96025 enum VANIR_REVISION_ID {
96026 	VANIR_A0_REV = 160,
96027 	VANIR_B0_REV = 1,
96028 	VANIR_C0_REV = 2,
96029 	VANIR_C1_REV = 3,
96030 	VANIR_C2_REV = 194,
96031 };
96032 
96033 enum host_registers {
96034 	MVS_HST_CHIP_CONFIG = 65796,
96035 };
96036 
96037 enum hw_registers {
96038 	MVS_GBL_CTL = 4,
96039 	MVS_GBL_INT_STAT = 0,
96040 	MVS_GBL_PI = 12,
96041 	MVS_PHY_CTL = 64,
96042 	MVS_PORTS_IMP = 156,
96043 	MVS_GBL_PORT_TYPE = 160,
96044 	MVS_CTL = 256,
96045 	MVS_PCS = 260,
96046 	MVS_CMD_LIST_LO = 264,
96047 	MVS_CMD_LIST_HI = 268,
96048 	MVS_RX_FIS_LO = 272,
96049 	MVS_RX_FIS_HI = 276,
96050 	MVS_STP_REG_SET_0 = 280,
96051 	MVS_STP_REG_SET_1 = 284,
96052 	MVS_TX_CFG = 288,
96053 	MVS_TX_LO = 292,
96054 	MVS_TX_HI = 296,
96055 	MVS_TX_PROD_IDX = 300,
96056 	MVS_TX_CONS_IDX = 304,
96057 	MVS_RX_CFG = 308,
96058 	MVS_RX_LO = 312,
96059 	MVS_RX_HI = 316,
96060 	MVS_RX_CONS_IDX = 320,
96061 	MVS_INT_COAL = 328,
96062 	MVS_INT_COAL_TMOUT = 332,
96063 	MVS_INT_STAT = 336,
96064 	MVS_INT_MASK = 340,
96065 	MVS_INT_STAT_SRS_0 = 344,
96066 	MVS_INT_MASK_SRS_0 = 348,
96067 	MVS_INT_STAT_SRS_1 = 352,
96068 	MVS_INT_MASK_SRS_1 = 356,
96069 	MVS_NON_NCQ_ERR_0 = 360,
96070 	MVS_NON_NCQ_ERR_1 = 364,
96071 	MVS_CMD_ADDR = 368,
96072 	MVS_CMD_DATA = 372,
96073 	MVS_MEM_PARITY_ERR = 376,
96074 	MVS_P0_INT_STAT = 384,
96075 	MVS_P0_INT_MASK = 388,
96076 	MVS_P4_INT_STAT = 416,
96077 	MVS_P4_INT_MASK = 420,
96078 	MVS_P0_SER_CTLSTAT = 464,
96079 	MVS_P4_SER_CTLSTAT = 480,
96080 	MVS_P0_CFG_ADDR = 512,
96081 	MVS_P0_CFG_DATA = 516,
96082 	MVS_P4_CFG_ADDR = 544,
96083 	MVS_P4_CFG_DATA = 548,
96084 	MVS_P0_VSR_ADDR = 592,
96085 	MVS_P0_VSR_DATA = 596,
96086 	MVS_P4_VSR_ADDR = 592,
96087 	MVS_P4_VSR_DATA = 596,
96088 	MVS_PA_VSR_ADDR = 656,
96089 	MVS_PA_VSR_PORT = 660,
96090 	MVS_COMMAND_ACTIVE = 768,
96091 };
96092 
96093 enum pci_cfg_registers {
96094 	PCR_PHY_CTL = 64,
96095 	PCR_PHY_CTL2 = 144,
96096 	PCR_DEV_CTRL = 120,
96097 	PCR_LINK_STAT = 130,
96098 };
96099 
96100 enum sas_sata_vsp_regs {
96101 	VSR_PHY_STAT = 0,
96102 	VSR_PHY_MODE1 = 4,
96103 	VSR_PHY_MODE2 = 8,
96104 	VSR_PHY_MODE3 = 12,
96105 	VSR_PHY_MODE4 = 16,
96106 	VSR_PHY_MODE5 = 20,
96107 	VSR_PHY_MODE6 = 24,
96108 	VSR_PHY_MODE7 = 28,
96109 	VSR_PHY_MODE8 = 32,
96110 	VSR_PHY_MODE9 = 36,
96111 	VSR_PHY_MODE10 = 40,
96112 	VSR_PHY_MODE11 = 44,
96113 	VSR_PHY_ACT_LED = 48,
96114 	VSR_PHY_FFE_CONTROL = 268,
96115 	VSR_PHY_DFE_UPDATE_CRTL = 272,
96116 	VSR_REF_CLOCK_CRTL = 416,
96117 };
96118 
96119 enum chip_register_bits {
96120 	PHY_MIN_SPP_PHYS_LINK_RATE_MASK = 1792,
96121 	PHY_MAX_SPP_PHYS_LINK_RATE_MASK = 28672,
96122 	PHY_NEG_SPP_PHYS_LINK_RATE_MASK_OFFSET = 16,
96123 	PHY_NEG_SPP_PHYS_LINK_RATE_MASK = 196608,
96124 };
96125 
96126 enum pci_interrupt_cause {
96127 	MVS_IRQ_COM_IN_I2O_IOP0 = 1,
96128 	MVS_IRQ_COM_IN_I2O_IOP1 = 2,
96129 	MVS_IRQ_COM_IN_I2O_IOP2 = 4,
96130 	MVS_IRQ_COM_IN_I2O_IOP3 = 8,
96131 	MVS_IRQ_COM_OUT_I2O_HOS0 = 16,
96132 	MVS_IRQ_COM_OUT_I2O_HOS1 = 32,
96133 	MVS_IRQ_COM_OUT_I2O_HOS2 = 64,
96134 	MVS_IRQ_COM_OUT_I2O_HOS3 = 128,
96135 	MVS_IRQ_PCIF_TO_CPU_DRBL0 = 256,
96136 	MVS_IRQ_PCIF_TO_CPU_DRBL1 = 512,
96137 	MVS_IRQ_PCIF_TO_CPU_DRBL2 = 1024,
96138 	MVS_IRQ_PCIF_TO_CPU_DRBL3 = 2048,
96139 	MVS_IRQ_PCIF_DRBL0 = 4096,
96140 	MVS_IRQ_PCIF_DRBL1 = 8192,
96141 	MVS_IRQ_PCIF_DRBL2 = 16384,
96142 	MVS_IRQ_PCIF_DRBL3 = 32768,
96143 	MVS_IRQ_XOR_A = 65536,
96144 	MVS_IRQ_XOR_B = 131072,
96145 	MVS_IRQ_SAS_A = 262144,
96146 	MVS_IRQ_SAS_B = 524288,
96147 	MVS_IRQ_CPU_CNTRL = 1048576,
96148 	MVS_IRQ_GPIO = 2097152,
96149 	MVS_IRQ_UART = 4194304,
96150 	MVS_IRQ_SPI = 8388608,
96151 	MVS_IRQ_I2C = 16777216,
96152 	MVS_IRQ_SGPIO = 33554432,
96153 	MVS_IRQ_COM_ERR = 536870912,
96154 	MVS_IRQ_I2O_ERR = 1073741824,
96155 	MVS_IRQ_PCIE_ERR = -2147483648,
96156 };
96157 
96158 union reg_phy_cfg {
96159 	u32 v;
96160 	struct {
96161 		u32 phy_reset: 1;
96162 		u32 sas_support: 1;
96163 		u32 sata_support: 1;
96164 		u32 sata_host_mode: 1;
96165 		u32 speed_support: 3;
96166 		u32 snw_3_support: 1;
96167 		u32 tx_lnk_parity: 1;
96168 		u32 tx_spt_phs_lnk_rate: 6;
96169 		u32 tx_lgcl_lnk_rate: 4;
96170 		u32 tx_ssc_type: 1;
96171 		u32 sata_spin_up_spt: 1;
96172 		u32 sata_spin_up_en: 1;
96173 		u32 bypass_oob: 1;
96174 		u32 disable_phy: 1;
96175 		u32 rsvd: 8;
96176 	} u;
96177 };
96178 
96179 struct mvs_prd_imt {
96180 	__le32 len: 22;
96181 	u8 _r_a: 2;
96182 	u8 misc_ctl: 4;
96183 	u8 inter_sel: 4;
96184 };
96185 
96186 struct mvs_prd {
96187 	__le64 addr;
96188 	__le32 im_len;
96189 } __attribute__((packed));
96190 
96191 enum sgpio_registers {
96192 	MVS_SGPIO_HOST_OFFSET = 256,
96193 	MVS_SGPIO_CFG0 = 49664,
96194 	MVS_SGPIO_CFG0_ENABLE = 1,
96195 	MVS_SGPIO_CFG0_BLINKB = 2,
96196 	MVS_SGPIO_CFG0_BLINKA = 4,
96197 	MVS_SGPIO_CFG0_INVSCLK = 8,
96198 	MVS_SGPIO_CFG0_INVSLOAD = 16,
96199 	MVS_SGPIO_CFG0_INVSDOUT = 32,
96200 	MVS_SGPIO_CFG0_SLOAD_FALLEDGE = 64,
96201 	MVS_SGPIO_CFG0_SDOUT_FALLEDGE = 128,
96202 	MVS_SGPIO_CFG0_SDIN_RISEEDGE = 256,
96203 	MVS_SGPIO_CFG0_MAN_BITLEN_SHIFT = 18,
96204 	MVS_SGPIO_CFG0_AUT_BITLEN_SHIFT = 24,
96205 	MVS_SGPIO_CFG1 = 49668,
96206 	MVS_SGPIO_CFG1_LOWA_SHIFT = 0,
96207 	MVS_SGPIO_CFG1_HIA_SHIFT = 4,
96208 	MVS_SGPIO_CFG1_LOWB_SHIFT = 8,
96209 	MVS_SGPIO_CFG1_HIB_SHIFT = 12,
96210 	MVS_SGPIO_CFG1_MAXACTON_SHIFT = 16,
96211 	MVS_SGPIO_CFG1_FORCEACTOFF_SHIFT = 20,
96212 	MVS_SGPIO_CFG1_STRCHACTON_SHIFT = 24,
96213 	MVS_SGPIO_CFG1_STRCHACTOFF_SHIFT = 28,
96214 	MVS_SGPIO_CFG2 = 49672,
96215 	MVS_SGPIO_CFG2_CLK_SHIFT = 0,
96216 	MVS_SGPIO_CFG2_BLINK_SHIFT = 20,
96217 	MVS_SGPIO_CTRL = 49676,
96218 	MVS_SGPIO_CTRL_SDOUT_AUTO = 2,
96219 	MVS_SGPIO_CTRL_SDOUT_SHIFT = 2,
96220 	MVS_SGPIO_DSRC = 49696,
96221 	MVS_SGPIO_DCTRL = 49720,
96222 	MVS_SGPIO_DCTRL_ERR_SHIFT = 0,
96223 	MVS_SGPIO_DCTRL_LOC_SHIFT = 3,
96224 	MVS_SGPIO_DCTRL_ACT_SHIFT = 5,
96225 };
96226 
96227 enum sgpio_led_status {
96228 	LED_OFF___2 = 0,
96229 	LED_ON___2 = 1,
96230 	LED_BLINKA = 2,
96231 	LED_BLINKA_INV = 3,
96232 	LED_BLINKA_SOF = 4,
96233 	LED_BLINKA_EOF = 5,
96234 	LED_BLINKB = 6,
96235 	LED_BLINKB_INV = 7,
96236 };
96237 
96238 enum sas_sata_phy_regs {
96239 	GENERATION_1_SETTING = 280,
96240 	GENERATION_1_2_SETTING = 284,
96241 	GENERATION_2_3_SETTING = 288,
96242 	GENERATION_3_4_SETTING = 292,
96243 };
96244 
96245 typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *);
96246 
96247 struct ata_scsi_args {
96248 	struct ata_device *dev;
96249 	u16 *id;
96250 	struct scsi_cmnd *cmd;
96251 };
96252 
96253 struct ata_acpi_gtf {
96254 	u8 tf[7];
96255 };
96256 
96257 struct ata_acpi_hotplug_context {
96258 	struct acpi_hotplug_context hp;
96259 	union {
96260 		struct ata_port *ap;
96261 		struct ata_device *dev;
96262 	} data;
96263 };
96264 
96265 struct ahci_cmd_hdr {
96266 	__le32 opts;
96267 	__le32 status;
96268 	__le32 tbl_addr;
96269 	__le32 tbl_addr_hi;
96270 	__le32 reserved[4];
96271 };
96272 
96273 struct ahci_sg {
96274 	__le32 addr;
96275 	__le32 addr_hi;
96276 	__le32 reserved;
96277 	__le32 flags_size;
96278 };
96279 
96280 struct ahci_em_priv {
96281 	enum sw_activity blink_policy;
96282 	struct timer_list timer;
96283 	long unsigned int saved_activity;
96284 	long unsigned int activity;
96285 	long unsigned int led_state;
96286 	struct ata_link *link;
96287 };
96288 
96289 struct ahci_port_priv {
96290 	struct ata_link *active_link;
96291 	struct ahci_cmd_hdr *cmd_slot;
96292 	dma_addr_t cmd_slot_dma;
96293 	void *cmd_tbl;
96294 	dma_addr_t cmd_tbl_dma;
96295 	void *rx_fis;
96296 	dma_addr_t rx_fis_dma;
96297 	unsigned int ncq_saw_d2h: 1;
96298 	unsigned int ncq_saw_dmas: 1;
96299 	unsigned int ncq_saw_sdb: 1;
96300 	spinlock_t lock;
96301 	u32 intr_mask;
96302 	bool fbs_supported;
96303 	bool fbs_enabled;
96304 	int fbs_last_dev;
96305 	struct ahci_em_priv em_priv[15];
96306 	char *irq_desc;
96307 };
96308 
96309 struct mdio_board_info {
96310 	const char *bus_id;
96311 	char modalias[32];
96312 	int mdio_addr;
96313 	const void *platform_data;
96314 };
96315 
96316 struct mdio_board_entry {
96317 	struct list_head list;
96318 	struct mdio_board_info board_info;
96319 };
96320 
96321 struct phylink_mac_ops;
96322 
96323 struct phylink {
96324 	struct net_device *netdev;
96325 	const struct phylink_mac_ops *mac_ops;
96326 	struct phylink_config *config;
96327 	struct phylink_pcs *pcs;
96328 	struct device *dev;
96329 	unsigned int old_link_state: 1;
96330 	long unsigned int phylink_disable_state;
96331 	struct phy_device *phydev;
96332 	phy_interface_t link_interface;
96333 	u8 cfg_link_an_mode;
96334 	u8 cur_link_an_mode;
96335 	u8 link_port;
96336 	long unsigned int supported[2];
96337 	struct phylink_link_state link_config;
96338 	phy_interface_t cur_interface;
96339 	struct gpio_desc *link_gpio;
96340 	unsigned int link_irq;
96341 	struct timer_list link_poll;
96342 	void (*get_fixed_state)(struct net_device *, struct phylink_link_state *);
96343 	struct mutex state_mutex;
96344 	struct phylink_link_state phy_state;
96345 	struct work_struct resolve;
96346 	bool mac_link_dropped;
96347 	bool using_mac_select_pcs;
96348 	struct sfp_bus *sfp_bus;
96349 	bool sfp_may_have_phy;
96350 	long unsigned int sfp_interfaces[1];
96351 	long unsigned int sfp_support[2];
96352 	u8 sfp_port;
96353 };
96354 
96355 enum {
96356 	MLO_PAUSE_NONE = 0,
96357 	MLO_PAUSE_RX = 1,
96358 	MLO_PAUSE_TX = 2,
96359 	MLO_PAUSE_TXRX_MASK = 3,
96360 	MLO_PAUSE_AN = 4,
96361 	MLO_AN_PHY = 0,
96362 	MLO_AN_FIXED = 1,
96363 	MLO_AN_INBAND = 2,
96364 	MAC_SYM_PAUSE = 1,
96365 	MAC_ASYM_PAUSE = 2,
96366 	MAC_10HD = 4,
96367 	MAC_10FD = 8,
96368 	MAC_10 = 12,
96369 	MAC_100HD = 16,
96370 	MAC_100FD = 32,
96371 	MAC_100 = 48,
96372 	MAC_1000HD = 64,
96373 	MAC_1000FD = 128,
96374 	MAC_1000 = 192,
96375 	MAC_2500FD = 256,
96376 	MAC_5000FD = 512,
96377 	MAC_10000FD = 1024,
96378 	MAC_20000FD = 2048,
96379 	MAC_25000FD = 4096,
96380 	MAC_40000FD = 8192,
96381 	MAC_50000FD = 16384,
96382 	MAC_56000FD = 32768,
96383 	MAC_100000FD = 65536,
96384 	MAC_200000FD = 131072,
96385 	MAC_400000FD = 262144,
96386 };
96387 
96388 struct phylink_mac_ops {
96389 	void (*validate)(struct phylink_config *, long unsigned int *, struct phylink_link_state *);
96390 	struct phylink_pcs * (*mac_select_pcs)(struct phylink_config *, phy_interface_t);
96391 	void (*mac_pcs_get_state)(struct phylink_config *, struct phylink_link_state *);
96392 	int (*mac_prepare)(struct phylink_config *, unsigned int, phy_interface_t);
96393 	void (*mac_config)(struct phylink_config *, unsigned int, const struct phylink_link_state *);
96394 	int (*mac_finish)(struct phylink_config *, unsigned int, phy_interface_t);
96395 	void (*mac_an_restart)(struct phylink_config *);
96396 	void (*mac_link_down)(struct phylink_config *, unsigned int, phy_interface_t);
96397 	void (*mac_link_up)(struct phylink_config *, struct phy_device *, unsigned int, phy_interface_t, int, int, bool, bool);
96398 };
96399 
96400 enum {
96401 	PHYLINK_DISABLE_STOPPED = 0,
96402 	PHYLINK_DISABLE_LINK = 1,
96403 	PHYLINK_DISABLE_MAC_WOL = 2,
96404 };
96405 
96406 struct swmii_regs {
96407 	u16 bmsr;
96408 	u16 lpa;
96409 	u16 lpagb;
96410 	u16 estat;
96411 };
96412 
96413 enum {
96414 	SWMII_SPEED_10 = 0,
96415 	SWMII_SPEED_100 = 1,
96416 	SWMII_SPEED_1000 = 2,
96417 	SWMII_DUPLEX_HALF = 0,
96418 	SWMII_DUPLEX_FULL = 1,
96419 };
96420 
96421 struct mdio_device_id {
96422 	__u32 phy_id;
96423 	__u32 phy_id_mask;
96424 };
96425 
96426 struct rtl821x_priv {
96427 	u16 phycr1;
96428 	u16 phycr2;
96429 	bool has_phycr2;
96430 };
96431 
96432 struct e1000_rx_desc {
96433 	__le64 buffer_addr;
96434 	__le16 length;
96435 	__le16 csum;
96436 	u8 status;
96437 	u8 errors;
96438 	__le16 special;
96439 };
96440 
96441 enum e1000_state_t___3 {
96442 	__E1000_TESTING___2 = 0,
96443 	__E1000_RESETTING___2 = 1,
96444 	__E1000_DOWN___2 = 2,
96445 	__E1000_DISABLED = 3,
96446 };
96447 
96448 struct e1000_host_mng_command_header {
96449 	u8 command_id;
96450 	u8 checksum;
96451 	u16 reserved1;
96452 	u16 reserved2;
96453 	u16 command_length;
96454 };
96455 
96456 enum e1000_mng_mode {
96457 	e1000_mng_mode_none = 0,
96458 	e1000_mng_mode_asf = 1,
96459 	e1000_mng_mode_pt = 2,
96460 	e1000_mng_mode_ipmi = 3,
96461 	e1000_mng_mode_host_if_only = 4,
96462 };
96463 
96464 struct e1000_option___2 {
96465 	enum {
96466 		enable_option___2 = 0,
96467 		range_option___2 = 1,
96468 		list_option___2 = 2,
96469 	} type;
96470 	const char *name;
96471 	const char *err;
96472 	int def;
96473 	union {
96474 		struct {
96475 			int min;
96476 			int max;
96477 		} r;
96478 		struct {
96479 			int nr;
96480 			struct e1000_opt_list *p;
96481 		} l;
96482 	} arg;
96483 };
96484 
96485 struct e1000_adv_tx_context_desc {
96486 	__le32 vlan_macip_lens;
96487 	__le32 seqnum_seed;
96488 	__le32 type_tucmd_mlhl;
96489 	__le32 mss_l4len_idx;
96490 };
96491 
96492 enum igb_tx_flags {
96493 	IGB_TX_FLAGS_VLAN = 1,
96494 	IGB_TX_FLAGS_TSO = 2,
96495 	IGB_TX_FLAGS_TSTAMP = 4,
96496 	IGB_TX_FLAGS_IPV4 = 16,
96497 	IGB_TX_FLAGS_CSUM = 32,
96498 };
96499 
96500 enum e1000_ring_flags_t {
96501 	IGB_RING_FLAG_RX_3K_BUFFER = 0,
96502 	IGB_RING_FLAG_RX_BUILD_SKB_ENABLED = 1,
96503 	IGB_RING_FLAG_RX_SCTP_CSUM = 2,
96504 	IGB_RING_FLAG_RX_LB_VLAN_BSWAP = 3,
96505 	IGB_RING_FLAG_TX_CTX_IDX = 4,
96506 	IGB_RING_FLAG_TX_DETECT_HANG = 5,
96507 };
96508 
96509 enum igb_boards {
96510 	board_82575 = 0,
96511 };
96512 
96513 enum queue_mode {
96514 	QUEUE_MODE_STRICT_PRIORITY = 0,
96515 	QUEUE_MODE_STREAM_RESERVATION = 1,
96516 };
96517 
96518 enum tx_queue_prio {
96519 	TX_QUEUE_PRIO_HIGH = 0,
96520 	TX_QUEUE_PRIO_LOW = 1,
96521 };
96522 
96523 struct igb_reg_info {
96524 	u32 ofs;
96525 	char *name;
96526 };
96527 
96528 enum latency_range {
96529 	lowest_latency = 0,
96530 	low_latency = 1,
96531 	bulk_latency = 2,
96532 	latency_invalid = 255,
96533 };
96534 
96535 struct my_u0 {
96536 	__le64 a;
96537 	__le64 b;
96538 };
96539 
96540 enum E1000_INVM_STRUCTURE_TYPE {
96541 	E1000_INVM_UNINITIALIZED_STRUCTURE = 0,
96542 	E1000_INVM_WORD_AUTOLOAD_STRUCTURE = 1,
96543 	E1000_INVM_CSR_AUTOLOAD_STRUCTURE = 2,
96544 	E1000_INVM_PHY_REGISTER_AUTOLOAD_STRUCTURE = 3,
96545 	E1000_INVM_RSA_KEY_SHA256_STRUCTURE = 4,
96546 	E1000_INVM_INVALIDATED_STRUCTURE = 15,
96547 };
96548 
96549 struct ixgbe_nvm_version {
96550 	u32 etk_id;
96551 	u8 nvm_major;
96552 	u16 nvm_minor;
96553 	u8 nvm_id;
96554 	bool oem_valid;
96555 	u8 oem_major;
96556 	u8 oem_minor;
96557 	u16 oem_release;
96558 	bool or_valid;
96559 	u8 or_major;
96560 	u16 or_build;
96561 	u8 or_patch;
96562 };
96563 
96564 enum {
96565 	PBA_STRATEGY_EQUAL = 0,
96566 	PBA_STRATEGY_WEIGHTED = 1,
96567 };
96568 
96569 struct ixgbe_hic_drv_info {
96570 	struct ixgbe_hic_hdr hdr;
96571 	u8 port_num;
96572 	u8 ver_sub;
96573 	u8 ver_build;
96574 	u8 ver_min;
96575 	u8 ver_maj;
96576 	u8 pad;
96577 	u16 pad2;
96578 };
96579 
96580 struct fc_frame_header {
96581 	__u8 fh_r_ctl;
96582 	__u8 fh_d_id[3];
96583 	__u8 fh_cs_ctl;
96584 	__u8 fh_s_id[3];
96585 	__u8 fh_type;
96586 	__u8 fh_f_ctl[3];
96587 	__u8 fh_seq_id;
96588 	__u8 fh_df_ctl;
96589 	__be16 fh_seq_cnt;
96590 	__be16 fh_ox_id;
96591 	__be16 fh_rx_id;
96592 	__be32 fh_parm_offset;
96593 };
96594 
96595 enum fc_rctl {
96596 	FC_RCTL_DD_UNCAT = 0,
96597 	FC_RCTL_DD_SOL_DATA = 1,
96598 	FC_RCTL_DD_UNSOL_CTL = 2,
96599 	FC_RCTL_DD_SOL_CTL = 3,
96600 	FC_RCTL_DD_UNSOL_DATA = 4,
96601 	FC_RCTL_DD_DATA_DESC = 5,
96602 	FC_RCTL_DD_UNSOL_CMD = 6,
96603 	FC_RCTL_DD_CMD_STATUS = 7,
96604 	FC_RCTL_ELS_REQ = 34,
96605 	FC_RCTL_ELS_REP = 35,
96606 	FC_RCTL_ELS4_REQ = 50,
96607 	FC_RCTL_ELS4_REP = 51,
96608 	FC_RCTL_VFTH = 80,
96609 	FC_RCTL_IFRH = 81,
96610 	FC_RCTL_ENCH = 82,
96611 	FC_RCTL_BA_NOP = 128,
96612 	FC_RCTL_BA_ABTS = 129,
96613 	FC_RCTL_BA_RMC = 130,
96614 	FC_RCTL_BA_ACC = 132,
96615 	FC_RCTL_BA_RJT = 133,
96616 	FC_RCTL_BA_PRMT = 134,
96617 	FC_RCTL_ACK_1 = 192,
96618 	FC_RCTL_ACK_0 = 193,
96619 	FC_RCTL_P_RJT = 194,
96620 	FC_RCTL_F_RJT = 195,
96621 	FC_RCTL_P_BSY = 196,
96622 	FC_RCTL_F_BSY = 197,
96623 	FC_RCTL_F_BSYL = 198,
96624 	FC_RCTL_LCR = 199,
96625 	FC_RCTL_END = 201,
96626 };
96627 
96628 struct fcoe_hdr {
96629 	__u8 fcoe_ver;
96630 	__u8 fcoe_resvd[12];
96631 	__u8 fcoe_sof;
96632 };
96633 
96634 struct fcoe_crc_eof {
96635 	__le32 fcoe_crc32;
96636 	__u8 fcoe_eof;
96637 	__u8 fcoe_resvd[3];
96638 };
96639 
96640 enum ixgbe_tx_flags {
96641 	IXGBE_TX_FLAGS_HW_VLAN = 1,
96642 	IXGBE_TX_FLAGS_TSO = 2,
96643 	IXGBE_TX_FLAGS_TSTAMP = 4,
96644 	IXGBE_TX_FLAGS_CC = 8,
96645 	IXGBE_TX_FLAGS_IPV4 = 16,
96646 	IXGBE_TX_FLAGS_CSUM = 32,
96647 	IXGBE_TX_FLAGS_IPSEC = 64,
96648 	IXGBE_TX_FLAGS_SW_VLAN = 128,
96649 	IXGBE_TX_FLAGS_FCOE = 256,
96650 };
96651 
96652 enum fc_sof {
96653 	FC_SOF_F = 40,
96654 	FC_SOF_I4 = 41,
96655 	FC_SOF_I2 = 45,
96656 	FC_SOF_I3 = 46,
96657 	FC_SOF_N4 = 49,
96658 	FC_SOF_N2 = 53,
96659 	FC_SOF_N3 = 54,
96660 	FC_SOF_C4 = 57,
96661 };
96662 
96663 enum fc_eof {
96664 	FC_EOF_N = 65,
96665 	FC_EOF_T = 66,
96666 	FC_EOF_RT = 68,
96667 	FC_EOF_DT = 70,
96668 	FC_EOF_NI = 73,
96669 	FC_EOF_DTI = 78,
96670 	FC_EOF_RTI = 79,
96671 	FC_EOF_A = 80,
96672 };
96673 
96674 struct ixgb_opt_list {
96675 	int i;
96676 	const char *str;
96677 };
96678 
96679 struct ixgb_option {
96680 	enum {
96681 		enable_option___3 = 0,
96682 		range_option___3 = 1,
96683 		list_option___3 = 2,
96684 	} type;
96685 	const char *name;
96686 	const char *err;
96687 	int def;
96688 	union {
96689 		struct {
96690 			int min;
96691 			int max;
96692 		} r;
96693 		struct {
96694 			int nr;
96695 			const struct ixgb_opt_list *p;
96696 		} l;
96697 	} arg;
96698 };
96699 
96700 enum power_event {
96701 	pointer_reset = 2147483648,
96702 	global_unicast = 512,
96703 	wake_up_rx_frame = 64,
96704 	magic_frame = 32,
96705 	wake_up_frame_en = 4,
96706 	magic_pkt_en = 2,
96707 	power_down = 1,
96708 };
96709 
96710 struct stmmac_rx_routing {
96711 	u32 reg_mask;
96712 	u32 reg_shift;
96713 };
96714 
96715 enum dwmac4_irq_status {
96716 	time_stamp_irq = 4096,
96717 	mmc_rx_csum_offload_irq = 2048,
96718 	mmc_tx_irq = 1024,
96719 	mmc_rx_irq = 512,
96720 	mmc_irq = 256,
96721 	lpi_irq = 32,
96722 	pmt_irq = 16,
96723 };
96724 
96725 struct usb_otg_caps {
96726 	u16 otg_rev;
96727 	bool hnp_support;
96728 	bool srp_support;
96729 	bool adp_support;
96730 };
96731 
96732 enum usb_dr_mode {
96733 	USB_DR_MODE_UNKNOWN = 0,
96734 	USB_DR_MODE_HOST = 1,
96735 	USB_DR_MODE_PERIPHERAL = 2,
96736 	USB_DR_MODE_OTG = 3,
96737 };
96738 
96739 struct usb_dynid {
96740 	struct list_head node;
96741 	struct usb_device_id id;
96742 };
96743 
96744 struct quirk_entry {
96745 	u16 vid;
96746 	u16 pid;
96747 	u32 flags;
96748 };
96749 
96750 enum usb_phy_interface {
96751 	USBPHY_INTERFACE_MODE_UNKNOWN = 0,
96752 	USBPHY_INTERFACE_MODE_UTMI = 1,
96753 	USBPHY_INTERFACE_MODE_UTMIW = 2,
96754 	USBPHY_INTERFACE_MODE_ULPI = 3,
96755 	USBPHY_INTERFACE_MODE_SERIAL = 4,
96756 	USBPHY_INTERFACE_MODE_HSIC = 5,
96757 };
96758 
96759 struct urb_priv___2 {
96760 	struct ed *ed;
96761 	u16 length;
96762 	u16 td_cnt;
96763 	struct list_head pending;
96764 	struct td *td[0];
96765 };
96766 
96767 typedef struct urb_priv___2 urb_priv_t;
96768 
96769 struct debug_buffer___2 {
96770 	ssize_t (*fill_func)(struct debug_buffer___2 *);
96771 	struct ohci_hcd *ohci;
96772 	struct mutex mutex;
96773 	size_t count;
96774 	char *page;
96775 };
96776 
96777 enum serio_event_type {
96778 	SERIO_RESCAN_PORT = 0,
96779 	SERIO_RECONNECT_PORT = 1,
96780 	SERIO_RECONNECT_SUBTREE = 2,
96781 	SERIO_REGISTER_PORT = 3,
96782 	SERIO_ATTACH_DRIVER = 4,
96783 };
96784 
96785 struct serio_event {
96786 	enum serio_event_type type;
96787 	void *object;
96788 	struct module *owner;
96789 	struct list_head node;
96790 };
96791 
96792 struct input_event {
96793 	__kernel_ulong_t __sec;
96794 	__kernel_ulong_t __usec;
96795 	__u16 type;
96796 	__u16 code;
96797 	__s32 value;
96798 };
96799 
96800 struct input_mask {
96801 	__u32 type;
96802 	__u32 codes_size;
96803 	__u64 codes_ptr;
96804 };
96805 
96806 struct evdev_client;
96807 
96808 struct evdev {
96809 	int open;
96810 	struct input_handle handle;
96811 	struct evdev_client *grab;
96812 	struct list_head client_list;
96813 	spinlock_t client_lock;
96814 	struct mutex mutex;
96815 	struct device dev;
96816 	struct cdev cdev;
96817 	bool exist;
96818 };
96819 
96820 struct evdev_client {
96821 	unsigned int head;
96822 	unsigned int tail;
96823 	unsigned int packet_head;
96824 	spinlock_t buffer_lock;
96825 	wait_queue_head_t wait;
96826 	struct fasync_struct *fasync;
96827 	struct evdev *evdev;
96828 	struct list_head node;
96829 	enum input_clock_type clk_type;
96830 	bool revoked;
96831 	long unsigned int *evmasks[32];
96832 	unsigned int bufsize;
96833 	struct input_event buffer[0];
96834 };
96835 
96836 enum SS4_PACKET_ID {
96837 	SS4_PACKET_ID_IDLE = 0,
96838 	SS4_PACKET_ID_ONE = 1,
96839 	SS4_PACKET_ID_TWO = 2,
96840 	SS4_PACKET_ID_MULTI = 3,
96841 	SS4_PACKET_ID_STICK = 4,
96842 };
96843 
96844 enum V7_PACKET_ID {
96845 	V7_PACKET_ID_IDLE = 0,
96846 	V7_PACKET_ID_TWO = 1,
96847 	V7_PACKET_ID_MULTI = 2,
96848 	V7_PACKET_ID_NEW = 3,
96849 	V7_PACKET_ID_UNKNOWN = 4,
96850 };
96851 
96852 struct alps_protocol_info {
96853 	u16 version;
96854 	u8 byte0;
96855 	u8 mask0;
96856 	unsigned int flags;
96857 };
96858 
96859 struct alps_model_info {
96860 	u8 signature[3];
96861 	struct alps_protocol_info protocol_info;
96862 };
96863 
96864 struct alps_nibble_commands {
96865 	int command;
96866 	unsigned char data;
96867 };
96868 
96869 struct alps_bitmap_point {
96870 	int start_bit;
96871 	int num_bits;
96872 };
96873 
96874 struct alps_fields {
96875 	unsigned int x_map;
96876 	unsigned int y_map;
96877 	unsigned int fingers;
96878 	int pressure;
96879 	struct input_mt_pos st;
96880 	struct input_mt_pos mt[4];
96881 	unsigned int first_mp: 1;
96882 	unsigned int is_mp: 1;
96883 	unsigned int left: 1;
96884 	unsigned int right: 1;
96885 	unsigned int middle: 1;
96886 	unsigned int ts_left: 1;
96887 	unsigned int ts_right: 1;
96888 	unsigned int ts_middle: 1;
96889 };
96890 
96891 struct alps_data {
96892 	struct psmouse *psmouse;
96893 	struct input_dev *dev2;
96894 	struct input_dev *dev3;
96895 	char phys2[32];
96896 	char phys3[32];
96897 	struct delayed_work dev3_register_work;
96898 	const struct alps_nibble_commands *nibble_commands;
96899 	int addr_command;
96900 	u16 proto_version;
96901 	u8 byte0;
96902 	u8 mask0;
96903 	u8 dev_id[3];
96904 	u8 fw_ver[3];
96905 	int flags;
96906 	int x_max;
96907 	int y_max;
96908 	int x_bits;
96909 	int y_bits;
96910 	unsigned int x_res;
96911 	unsigned int y_res;
96912 	int (*hw_init)(struct psmouse *);
96913 	void (*process_packet)(struct psmouse *);
96914 	int (*decode_fields)(struct alps_fields *, unsigned char *, struct psmouse *);
96915 	void (*set_abs_params)(struct alps_data *, struct input_dev *);
96916 	int prev_fin;
96917 	int multi_packet;
96918 	int second_touch;
96919 	unsigned char multi_data[6];
96920 	struct alps_fields f;
96921 	u8 quirks;
96922 	struct timer_list timer;
96923 };
96924 
96925 struct fsp_data {
96926 	unsigned char ver;
96927 	unsigned char rev;
96928 	unsigned int buttons;
96929 	unsigned int flags;
96930 	bool vscroll;
96931 	bool hscroll;
96932 	unsigned char last_reg;
96933 	unsigned char last_val;
96934 	unsigned int last_mt_fgr;
96935 };
96936 
96937 struct trace_event_raw_rtc_time_alarm_class {
96938 	struct trace_entry ent;
96939 	time64_t secs;
96940 	int err;
96941 	char __data[0];
96942 };
96943 
96944 struct trace_event_raw_rtc_irq_set_freq {
96945 	struct trace_entry ent;
96946 	int freq;
96947 	int err;
96948 	char __data[0];
96949 };
96950 
96951 struct trace_event_raw_rtc_irq_set_state {
96952 	struct trace_entry ent;
96953 	int enabled;
96954 	int err;
96955 	char __data[0];
96956 };
96957 
96958 struct trace_event_raw_rtc_alarm_irq_enable {
96959 	struct trace_entry ent;
96960 	unsigned int enabled;
96961 	int err;
96962 	char __data[0];
96963 };
96964 
96965 struct trace_event_raw_rtc_offset_class {
96966 	struct trace_entry ent;
96967 	long int offset;
96968 	int err;
96969 	char __data[0];
96970 };
96971 
96972 struct trace_event_raw_rtc_timer_class {
96973 	struct trace_entry ent;
96974 	struct rtc_timer *timer;
96975 	ktime_t expires;
96976 	ktime_t period;
96977 	char __data[0];
96978 };
96979 
96980 struct trace_event_data_offsets_rtc_time_alarm_class {};
96981 
96982 struct trace_event_data_offsets_rtc_irq_set_freq {};
96983 
96984 struct trace_event_data_offsets_rtc_irq_set_state {};
96985 
96986 struct trace_event_data_offsets_rtc_alarm_irq_enable {};
96987 
96988 struct trace_event_data_offsets_rtc_offset_class {};
96989 
96990 struct trace_event_data_offsets_rtc_timer_class {};
96991 
96992 typedef void (*btf_trace_rtc_set_time)(void *, time64_t, int);
96993 
96994 typedef void (*btf_trace_rtc_read_time)(void *, time64_t, int);
96995 
96996 typedef void (*btf_trace_rtc_set_alarm)(void *, time64_t, int);
96997 
96998 typedef void (*btf_trace_rtc_read_alarm)(void *, time64_t, int);
96999 
97000 typedef void (*btf_trace_rtc_irq_set_freq)(void *, int, int);
97001 
97002 typedef void (*btf_trace_rtc_irq_set_state)(void *, int, int);
97003 
97004 typedef void (*btf_trace_rtc_alarm_irq_enable)(void *, unsigned int, int);
97005 
97006 typedef void (*btf_trace_rtc_set_offset)(void *, long int, int);
97007 
97008 typedef void (*btf_trace_rtc_read_offset)(void *, long int, int);
97009 
97010 typedef void (*btf_trace_rtc_timer_enqueue)(void *, struct rtc_timer *);
97011 
97012 typedef void (*btf_trace_rtc_timer_dequeue)(void *, struct rtc_timer *);
97013 
97014 typedef void (*btf_trace_rtc_timer_fired)(void *, struct rtc_timer *);
97015 
97016 enum {
97017 	none = 0,
97018 	day = 1,
97019 	month = 2,
97020 	year = 3,
97021 };
97022 
97023 struct i2c_device_identity {
97024 	u16 manufacturer_id;
97025 	u16 part_id;
97026 	u8 die_revision;
97027 };
97028 
97029 struct i2c_timings {
97030 	u32 bus_freq_hz;
97031 	u32 scl_rise_ns;
97032 	u32 scl_fall_ns;
97033 	u32 scl_int_delay_ns;
97034 	u32 sda_fall_ns;
97035 	u32 sda_hold_ns;
97036 	u32 digital_filter_width_ns;
97037 	u32 analog_filter_cutoff_freq_hz;
97038 };
97039 
97040 struct trace_event_raw_i2c_write {
97041 	struct trace_entry ent;
97042 	int adapter_nr;
97043 	__u16 msg_nr;
97044 	__u16 addr;
97045 	__u16 flags;
97046 	__u16 len;
97047 	u32 __data_loc_buf;
97048 	char __data[0];
97049 };
97050 
97051 struct trace_event_raw_i2c_read {
97052 	struct trace_entry ent;
97053 	int adapter_nr;
97054 	__u16 msg_nr;
97055 	__u16 addr;
97056 	__u16 flags;
97057 	__u16 len;
97058 	char __data[0];
97059 };
97060 
97061 struct trace_event_raw_i2c_reply {
97062 	struct trace_entry ent;
97063 	int adapter_nr;
97064 	__u16 msg_nr;
97065 	__u16 addr;
97066 	__u16 flags;
97067 	__u16 len;
97068 	u32 __data_loc_buf;
97069 	char __data[0];
97070 };
97071 
97072 struct trace_event_raw_i2c_result {
97073 	struct trace_entry ent;
97074 	int adapter_nr;
97075 	__u16 nr_msgs;
97076 	__s16 ret;
97077 	char __data[0];
97078 };
97079 
97080 struct trace_event_data_offsets_i2c_write {
97081 	u32 buf;
97082 };
97083 
97084 struct trace_event_data_offsets_i2c_read {};
97085 
97086 struct trace_event_data_offsets_i2c_reply {
97087 	u32 buf;
97088 };
97089 
97090 struct trace_event_data_offsets_i2c_result {};
97091 
97092 typedef void (*btf_trace_i2c_write)(void *, const struct i2c_adapter *, const struct i2c_msg *, int);
97093 
97094 typedef void (*btf_trace_i2c_read)(void *, const struct i2c_adapter *, const struct i2c_msg *, int);
97095 
97096 typedef void (*btf_trace_i2c_reply)(void *, const struct i2c_adapter *, const struct i2c_msg *, int);
97097 
97098 typedef void (*btf_trace_i2c_result)(void *, const struct i2c_adapter *, int, int);
97099 
97100 struct class_compat;
97101 
97102 struct i2c_cmd_arg {
97103 	unsigned int cmd;
97104 	void *arg;
97105 };
97106 
97107 struct i2c_smbus_ioctl_data {
97108 	__u8 read_write;
97109 	__u8 command;
97110 	__u32 size;
97111 	union i2c_smbus_data *data;
97112 };
97113 
97114 struct i2c_rdwr_ioctl_data {
97115 	struct i2c_msg *msgs;
97116 	__u32 nmsgs;
97117 };
97118 
97119 struct i2c_dev {
97120 	struct list_head list;
97121 	struct i2c_adapter *adap;
97122 	struct device dev;
97123 	struct cdev cdev;
97124 };
97125 
97126 struct ptp_clock_caps {
97127 	int max_adj;
97128 	int n_alarm;
97129 	int n_ext_ts;
97130 	int n_per_out;
97131 	int pps;
97132 	int n_pins;
97133 	int cross_timestamping;
97134 	int adjust_phase;
97135 	int rsv[12];
97136 };
97137 
97138 struct ptp_sys_offset {
97139 	unsigned int n_samples;
97140 	unsigned int rsv[3];
97141 	struct ptp_clock_time ts[51];
97142 };
97143 
97144 struct ptp_sys_offset_extended {
97145 	unsigned int n_samples;
97146 	unsigned int rsv[3];
97147 	struct ptp_clock_time ts[75];
97148 };
97149 
97150 struct ptp_sys_offset_precise {
97151 	struct ptp_clock_time device;
97152 	struct ptp_clock_time sys_realtime;
97153 	struct ptp_clock_time sys_monoraw;
97154 	unsigned int rsv[4];
97155 };
97156 
97157 enum {
97158 	POWER_SUPPLY_CHARGE_TYPE_UNKNOWN = 0,
97159 	POWER_SUPPLY_CHARGE_TYPE_NONE = 1,
97160 	POWER_SUPPLY_CHARGE_TYPE_TRICKLE = 2,
97161 	POWER_SUPPLY_CHARGE_TYPE_FAST = 3,
97162 	POWER_SUPPLY_CHARGE_TYPE_STANDARD = 4,
97163 	POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE = 5,
97164 	POWER_SUPPLY_CHARGE_TYPE_CUSTOM = 6,
97165 	POWER_SUPPLY_CHARGE_TYPE_LONGLIFE = 7,
97166 	POWER_SUPPLY_CHARGE_TYPE_BYPASS = 8,
97167 };
97168 
97169 enum {
97170 	POWER_SUPPLY_HEALTH_UNKNOWN = 0,
97171 	POWER_SUPPLY_HEALTH_GOOD = 1,
97172 	POWER_SUPPLY_HEALTH_OVERHEAT = 2,
97173 	POWER_SUPPLY_HEALTH_DEAD = 3,
97174 	POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4,
97175 	POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5,
97176 	POWER_SUPPLY_HEALTH_COLD = 6,
97177 	POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7,
97178 	POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8,
97179 	POWER_SUPPLY_HEALTH_OVERCURRENT = 9,
97180 	POWER_SUPPLY_HEALTH_CALIBRATION_REQUIRED = 10,
97181 	POWER_SUPPLY_HEALTH_WARM = 11,
97182 	POWER_SUPPLY_HEALTH_COOL = 12,
97183 	POWER_SUPPLY_HEALTH_HOT = 13,
97184 	POWER_SUPPLY_HEALTH_NO_BATTERY = 14,
97185 };
97186 
97187 enum {
97188 	POWER_SUPPLY_CAPACITY_LEVEL_UNKNOWN = 0,
97189 	POWER_SUPPLY_CAPACITY_LEVEL_CRITICAL = 1,
97190 	POWER_SUPPLY_CAPACITY_LEVEL_LOW = 2,
97191 	POWER_SUPPLY_CAPACITY_LEVEL_NORMAL = 3,
97192 	POWER_SUPPLY_CAPACITY_LEVEL_HIGH = 4,
97193 	POWER_SUPPLY_CAPACITY_LEVEL_FULL = 5,
97194 };
97195 
97196 enum power_supply_charge_behaviour {
97197 	POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO = 0,
97198 	POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE = 1,
97199 	POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE = 2,
97200 };
97201 
97202 struct power_supply_attr {
97203 	const char *prop_name;
97204 	char attr_name[31];
97205 	struct device_attribute dev_attr;
97206 	const char * const *text_values;
97207 	int text_values_len;
97208 };
97209 
97210 struct thermal_hwmon_device {
97211 	char type[20];
97212 	struct device *device;
97213 	int count;
97214 	struct list_head tz_list;
97215 	struct list_head node;
97216 };
97217 
97218 struct thermal_hwmon_attr {
97219 	struct device_attribute attr;
97220 	char name[16];
97221 };
97222 
97223 struct thermal_hwmon_temp {
97224 	struct list_head hwmon_node;
97225 	struct thermal_zone_device *tz;
97226 	struct thermal_hwmon_attr temp_input;
97227 	struct thermal_hwmon_attr temp_crit;
97228 };
97229 
97230 struct keyboard_notifier_param {
97231 	struct vc_data *vc;
97232 	int down;
97233 	int shift;
97234 	int ledstate;
97235 	unsigned int value;
97236 };
97237 
97238 struct em_data_callback {};
97239 
97240 enum cpu_led_event {
97241 	CPU_LED_IDLE_START = 0,
97242 	CPU_LED_IDLE_END = 1,
97243 	CPU_LED_START = 2,
97244 	CPU_LED_STOP = 3,
97245 	CPU_LED_HALTED = 4,
97246 };
97247 
97248 struct led_trigger_cpu {
97249 	bool is_active;
97250 	char name[8];
97251 	struct led_trigger *_trig;
97252 };
97253 
97254 struct dmi_device_attribute {
97255 	struct device_attribute dev_attr;
97256 	int field;
97257 };
97258 
97259 struct mafield {
97260 	const char *prefix;
97261 	int field;
97262 };
97263 
97264 enum {
97265 	M_I17 = 0,
97266 	M_I20 = 1,
97267 	M_I20_SR = 2,
97268 	M_I24 = 3,
97269 	M_I24_8_1 = 4,
97270 	M_I24_10_1 = 5,
97271 	M_I27_11_1 = 6,
97272 	M_MINI = 7,
97273 	M_MINI_3_1 = 8,
97274 	M_MINI_4_1 = 9,
97275 	M_MB = 10,
97276 	M_MB_2 = 11,
97277 	M_MB_3 = 12,
97278 	M_MB_5_1 = 13,
97279 	M_MB_6_1 = 14,
97280 	M_MB_7_1 = 15,
97281 	M_MB_SR = 16,
97282 	M_MBA = 17,
97283 	M_MBA_3 = 18,
97284 	M_MBP = 19,
97285 	M_MBP_2 = 20,
97286 	M_MBP_2_2 = 21,
97287 	M_MBP_SR = 22,
97288 	M_MBP_4 = 23,
97289 	M_MBP_5_1 = 24,
97290 	M_MBP_5_2 = 25,
97291 	M_MBP_5_3 = 26,
97292 	M_MBP_6_1 = 27,
97293 	M_MBP_6_2 = 28,
97294 	M_MBP_7_1 = 29,
97295 	M_MBP_8_2 = 30,
97296 	M_UNKNOWN = 31,
97297 };
97298 
97299 struct efifb_dmi_info {
97300 	char *optname;
97301 	long unsigned int base;
97302 	int stride;
97303 	int width;
97304 	int height;
97305 	int flags;
97306 };
97307 
97308 enum {
97309 	OVERRIDE_NONE = 0,
97310 	OVERRIDE_BASE = 1,
97311 	OVERRIDE_STRIDE = 2,
97312 	OVERRIDE_HEIGHT = 4,
97313 	OVERRIDE_WIDTH = 8,
97314 };
97315 
97316 struct quirks_list_struct {
97317 	struct hid_device_id hid_bl_item;
97318 	struct list_head node;
97319 };
97320 
97321 struct of_phandle_iterator {
97322 	const char *cells_name;
97323 	int cell_count;
97324 	const struct device_node *parent;
97325 	const __be32 *list_end;
97326 	const __be32 *phandle_end;
97327 	const __be32 *cur;
97328 	uint32_t cur_count;
97329 	phandle phandle;
97330 	struct device_node *node;
97331 };
97332 
97333 enum {
97334 	VMGENID_SIZE = 16,
97335 };
97336 
97337 struct vmgenid_state {
97338 	u8 *next_id;
97339 	u8 this_id[16];
97340 };
97341 
97342 struct extcon_cable;
97343 
97344 struct extcon_dev {
97345 	const char *name;
97346 	const unsigned int *supported_cable;
97347 	const u32 *mutually_exclusive;
97348 	struct device dev;
97349 	struct raw_notifier_head nh_all;
97350 	struct raw_notifier_head *nh;
97351 	struct list_head entry;
97352 	int max_supported;
97353 	spinlock_t lock;
97354 	u32 state;
97355 	struct device_type extcon_dev_type;
97356 	struct extcon_cable *cables;
97357 	struct attribute_group attr_g_muex;
97358 	struct attribute **attrs_muex;
97359 	struct device_attribute *d_attrs_muex;
97360 };
97361 
97362 struct extcon_dev_notifier_devres {
97363 	struct extcon_dev *edev;
97364 	unsigned int id;
97365 	struct notifier_block *nb;
97366 };
97367 
97368 struct nvmem_cell_info {
97369 	const char *name;
97370 	unsigned int offset;
97371 	unsigned int bytes;
97372 	unsigned int bit_offset;
97373 	unsigned int nbits;
97374 	struct device_node *np;
97375 };
97376 
97377 struct nvmem_cell_lookup {
97378 	const char *nvmem_name;
97379 	const char *cell_name;
97380 	const char *dev_id;
97381 	const char *con_id;
97382 	struct list_head node;
97383 };
97384 
97385 enum {
97386 	NVMEM_ADD = 1,
97387 	NVMEM_REMOVE = 2,
97388 	NVMEM_CELL_ADD = 3,
97389 	NVMEM_CELL_REMOVE = 4,
97390 };
97391 
97392 typedef int (*nvmem_reg_read_t)(void *, unsigned int, void *, size_t);
97393 
97394 typedef int (*nvmem_reg_write_t)(void *, unsigned int, void *, size_t);
97395 
97396 typedef int (*nvmem_cell_post_process_t)(void *, const char *, unsigned int, void *, size_t);
97397 
97398 enum nvmem_type {
97399 	NVMEM_TYPE_UNKNOWN = 0,
97400 	NVMEM_TYPE_EEPROM = 1,
97401 	NVMEM_TYPE_OTP = 2,
97402 	NVMEM_TYPE_BATTERY_BACKED = 3,
97403 	NVMEM_TYPE_FRAM = 4,
97404 };
97405 
97406 struct nvmem_keepout {
97407 	unsigned int start;
97408 	unsigned int end;
97409 	unsigned char value;
97410 };
97411 
97412 struct nvmem_config {
97413 	struct device *dev;
97414 	const char *name;
97415 	int id;
97416 	struct module *owner;
97417 	const struct nvmem_cell_info *cells;
97418 	int ncells;
97419 	const struct nvmem_keepout *keepout;
97420 	unsigned int nkeepout;
97421 	enum nvmem_type type;
97422 	bool read_only;
97423 	bool root_only;
97424 	bool ignore_wp;
97425 	struct device_node *of_node;
97426 	bool no_of_node;
97427 	nvmem_reg_read_t reg_read;
97428 	nvmem_reg_write_t reg_write;
97429 	nvmem_cell_post_process_t cell_post_process;
97430 	int size;
97431 	int word_size;
97432 	int stride;
97433 	void *priv;
97434 	bool compat;
97435 	struct device *base_dev;
97436 };
97437 
97438 struct nvmem_cell_table {
97439 	const char *nvmem_name;
97440 	const struct nvmem_cell_info *cells;
97441 	size_t ncells;
97442 	struct list_head node;
97443 };
97444 
97445 struct nvmem_device {
97446 	struct module *owner;
97447 	struct device dev;
97448 	int stride;
97449 	int word_size;
97450 	int id;
97451 	struct kref refcnt;
97452 	size_t size;
97453 	bool read_only;
97454 	bool root_only;
97455 	int flags;
97456 	enum nvmem_type type;
97457 	struct bin_attribute eeprom;
97458 	struct device *base_dev;
97459 	struct list_head cells;
97460 	const struct nvmem_keepout *keepout;
97461 	unsigned int nkeepout;
97462 	nvmem_reg_read_t reg_read;
97463 	nvmem_reg_write_t reg_write;
97464 	nvmem_cell_post_process_t cell_post_process;
97465 	struct gpio_desc *wp_gpio;
97466 	void *priv;
97467 };
97468 
97469 struct nvmem_cell_entry {
97470 	const char *name;
97471 	int offset;
97472 	int bytes;
97473 	int bit_offset;
97474 	int nbits;
97475 	struct device_node *np;
97476 	struct nvmem_device *nvmem;
97477 	struct list_head node;
97478 };
97479 
97480 struct nvmem_cell {
97481 	struct nvmem_cell_entry *entry;
97482 	const char *id;
97483 };
97484 
97485 struct ahash_request;
97486 
97487 enum {
97488 	TCA_STATS_UNSPEC = 0,
97489 	TCA_STATS_BASIC = 1,
97490 	TCA_STATS_RATE_EST = 2,
97491 	TCA_STATS_QUEUE = 3,
97492 	TCA_STATS_APP = 4,
97493 	TCA_STATS_RATE_EST64 = 5,
97494 	TCA_STATS_PAD = 6,
97495 	TCA_STATS_BASIC_HW = 7,
97496 	TCA_STATS_PKT64 = 8,
97497 	__TCA_STATS_MAX = 9,
97498 };
97499 
97500 struct gnet_stats_basic {
97501 	__u64 bytes;
97502 	__u32 packets;
97503 };
97504 
97505 struct gnet_stats_rate_est {
97506 	__u32 bps;
97507 	__u32 pps;
97508 };
97509 
97510 struct gnet_stats_rate_est64 {
97511 	__u64 bps;
97512 	__u64 pps;
97513 };
97514 
97515 enum flow_dissect_ret {
97516 	FLOW_DISSECT_RET_OUT_GOOD = 0,
97517 	FLOW_DISSECT_RET_OUT_BAD = 1,
97518 	FLOW_DISSECT_RET_PROTO_AGAIN = 2,
97519 	FLOW_DISSECT_RET_IPPROTO_AGAIN = 3,
97520 	FLOW_DISSECT_RET_CONTINUE = 4,
97521 };
97522 
97523 struct flow_dissector_key_hash {
97524 	u32 hash;
97525 };
97526 
97527 struct flow_dissector_key_num_of_vlans {
97528 	u8 num_of_vlans;
97529 };
97530 
97531 struct flow_dissector_key {
97532 	enum flow_dissector_key_id key_id;
97533 	size_t offset;
97534 };
97535 
97536 struct flow_keys_digest {
97537 	u8 data[16];
97538 };
97539 
97540 enum ip_conntrack_info {
97541 	IP_CT_ESTABLISHED = 0,
97542 	IP_CT_RELATED = 1,
97543 	IP_CT_NEW = 2,
97544 	IP_CT_IS_REPLY = 3,
97545 	IP_CT_ESTABLISHED_REPLY = 3,
97546 	IP_CT_RELATED_REPLY = 4,
97547 	IP_CT_NUMBER = 5,
97548 	IP_CT_UNTRACKED = 7,
97549 };
97550 
97551 enum {
97552 	TCA_FLOWER_KEY_CT_FLAGS_NEW = 1,
97553 	TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED = 2,
97554 	TCA_FLOWER_KEY_CT_FLAGS_RELATED = 4,
97555 	TCA_FLOWER_KEY_CT_FLAGS_TRACKED = 8,
97556 	TCA_FLOWER_KEY_CT_FLAGS_INVALID = 16,
97557 	TCA_FLOWER_KEY_CT_FLAGS_REPLY = 32,
97558 	__TCA_FLOWER_KEY_CT_FLAGS_MAX = 33,
97559 };
97560 
97561 enum {
97562 	BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 1,
97563 	BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 2,
97564 	BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 4,
97565 };
97566 
97567 struct gre_full_hdr {
97568 	struct gre_base_hdr fixed_header;
97569 	__be16 csum;
97570 	__be16 reserved1;
97571 	__be32 key;
97572 	__be32 seq;
97573 };
97574 
97575 struct pptp_gre_header {
97576 	struct gre_base_hdr gre_hd;
97577 	__be16 payload_len;
97578 	__be16 call_id;
97579 	__be32 seq;
97580 	__be32 ack;
97581 };
97582 
97583 struct tipc_basic_hdr {
97584 	__be32 w[4];
97585 };
97586 
97587 struct pppoe_tag {
97588 	__be16 tag_type;
97589 	__be16 tag_len;
97590 	char tag_data[0];
97591 };
97592 
97593 struct pppoe_hdr {
97594 	__u8 type: 4;
97595 	__u8 ver: 4;
97596 	__u8 code;
97597 	__be16 sid;
97598 	__be16 length;
97599 	struct pppoe_tag tag[0];
97600 };
97601 
97602 struct hsr_tag {
97603 	__be16 path_and_LSDU_size;
97604 	__be16 sequence_nr;
97605 	__be16 encap_proto;
97606 };
97607 
97608 struct mpls_label {
97609 	__be32 entry;
97610 };
97611 
97612 struct clock_identity {
97613 	u8 id[8];
97614 };
97615 
97616 struct port_identity {
97617 	struct clock_identity clock_identity;
97618 	__be16 port_number;
97619 };
97620 
97621 struct ptp_header {
97622 	u8 tsmt;
97623 	u8 ver;
97624 	__be16 message_length;
97625 	u8 domain_number;
97626 	u8 reserved1;
97627 	u8 flag_field[2];
97628 	__be64 correction;
97629 	__be32 reserved2;
97630 	struct port_identity source_port_identity;
97631 	__be16 sequence_id;
97632 	u8 control;
97633 	u8 log_message_interval;
97634 } __attribute__((packed));
97635 
97636 enum batadv_packettype {
97637 	BATADV_IV_OGM = 0,
97638 	BATADV_BCAST = 1,
97639 	BATADV_CODED = 2,
97640 	BATADV_ELP = 3,
97641 	BATADV_OGM2 = 4,
97642 	BATADV_UNICAST = 64,
97643 	BATADV_UNICAST_FRAG = 65,
97644 	BATADV_UNICAST_4ADDR = 66,
97645 	BATADV_ICMP = 67,
97646 	BATADV_UNICAST_TVLV = 68,
97647 };
97648 
97649 struct batadv_unicast_packet {
97650 	__u8 packet_type;
97651 	__u8 version;
97652 	__u8 ttl;
97653 	__u8 ttvn;
97654 	__u8 dest[6];
97655 };
97656 
97657 struct nf_ct_ext {
97658 	u8 offset[6];
97659 	u8 len;
97660 	unsigned int gen_id;
97661 	int: 32;
97662 	char data[0];
97663 };
97664 
97665 enum nf_ct_ext_id {
97666 	NF_CT_EXT_HELPER = 0,
97667 	NF_CT_EXT_NAT = 1,
97668 	NF_CT_EXT_SEQADJ = 2,
97669 	NF_CT_EXT_ACCT = 3,
97670 	NF_CT_EXT_LABELS = 4,
97671 	NF_CT_EXT_SYNPROXY = 5,
97672 	NF_CT_EXT_NUM = 6,
97673 };
97674 
97675 struct nf_conn_labels {
97676 	long unsigned int bits[2];
97677 };
97678 
97679 struct _flow_keys_digest_data {
97680 	__be16 n_proto;
97681 	u8 ip_proto;
97682 	u8 padding;
97683 	__be32 ports;
97684 	__be32 src;
97685 	__be32 dst;
97686 };
97687 
97688 struct rtnl_link_stats {
97689 	__u32 rx_packets;
97690 	__u32 tx_packets;
97691 	__u32 rx_bytes;
97692 	__u32 tx_bytes;
97693 	__u32 rx_errors;
97694 	__u32 tx_errors;
97695 	__u32 rx_dropped;
97696 	__u32 tx_dropped;
97697 	__u32 multicast;
97698 	__u32 collisions;
97699 	__u32 rx_length_errors;
97700 	__u32 rx_over_errors;
97701 	__u32 rx_crc_errors;
97702 	__u32 rx_frame_errors;
97703 	__u32 rx_fifo_errors;
97704 	__u32 rx_missed_errors;
97705 	__u32 tx_aborted_errors;
97706 	__u32 tx_carrier_errors;
97707 	__u32 tx_fifo_errors;
97708 	__u32 tx_heartbeat_errors;
97709 	__u32 tx_window_errors;
97710 	__u32 rx_compressed;
97711 	__u32 tx_compressed;
97712 	__u32 rx_nohandler;
97713 };
97714 
97715 struct rtnl_link_ifmap {
97716 	__u64 mem_start;
97717 	__u64 mem_end;
97718 	__u64 base_addr;
97719 	__u16 irq;
97720 	__u8 dma;
97721 	__u8 port;
97722 };
97723 
97724 enum {
97725 	IFLA_PROTO_DOWN_REASON_UNSPEC = 0,
97726 	IFLA_PROTO_DOWN_REASON_MASK = 1,
97727 	IFLA_PROTO_DOWN_REASON_VALUE = 2,
97728 	__IFLA_PROTO_DOWN_REASON_CNT = 3,
97729 	IFLA_PROTO_DOWN_REASON_MAX = 2,
97730 };
97731 
97732 enum {
97733 	IFLA_BRPORT_UNSPEC = 0,
97734 	IFLA_BRPORT_STATE = 1,
97735 	IFLA_BRPORT_PRIORITY = 2,
97736 	IFLA_BRPORT_COST = 3,
97737 	IFLA_BRPORT_MODE = 4,
97738 	IFLA_BRPORT_GUARD = 5,
97739 	IFLA_BRPORT_PROTECT = 6,
97740 	IFLA_BRPORT_FAST_LEAVE = 7,
97741 	IFLA_BRPORT_LEARNING = 8,
97742 	IFLA_BRPORT_UNICAST_FLOOD = 9,
97743 	IFLA_BRPORT_PROXYARP = 10,
97744 	IFLA_BRPORT_LEARNING_SYNC = 11,
97745 	IFLA_BRPORT_PROXYARP_WIFI = 12,
97746 	IFLA_BRPORT_ROOT_ID = 13,
97747 	IFLA_BRPORT_BRIDGE_ID = 14,
97748 	IFLA_BRPORT_DESIGNATED_PORT = 15,
97749 	IFLA_BRPORT_DESIGNATED_COST = 16,
97750 	IFLA_BRPORT_ID = 17,
97751 	IFLA_BRPORT_NO = 18,
97752 	IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 19,
97753 	IFLA_BRPORT_CONFIG_PENDING = 20,
97754 	IFLA_BRPORT_MESSAGE_AGE_TIMER = 21,
97755 	IFLA_BRPORT_FORWARD_DELAY_TIMER = 22,
97756 	IFLA_BRPORT_HOLD_TIMER = 23,
97757 	IFLA_BRPORT_FLUSH = 24,
97758 	IFLA_BRPORT_MULTICAST_ROUTER = 25,
97759 	IFLA_BRPORT_PAD = 26,
97760 	IFLA_BRPORT_MCAST_FLOOD = 27,
97761 	IFLA_BRPORT_MCAST_TO_UCAST = 28,
97762 	IFLA_BRPORT_VLAN_TUNNEL = 29,
97763 	IFLA_BRPORT_BCAST_FLOOD = 30,
97764 	IFLA_BRPORT_GROUP_FWD_MASK = 31,
97765 	IFLA_BRPORT_NEIGH_SUPPRESS = 32,
97766 	IFLA_BRPORT_ISOLATED = 33,
97767 	IFLA_BRPORT_BACKUP_PORT = 34,
97768 	IFLA_BRPORT_MRP_RING_OPEN = 35,
97769 	IFLA_BRPORT_MRP_IN_OPEN = 36,
97770 	IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 37,
97771 	IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 38,
97772 	IFLA_BRPORT_LOCKED = 39,
97773 	IFLA_BRPORT_MAB = 40,
97774 	__IFLA_BRPORT_MAX = 41,
97775 };
97776 
97777 enum {
97778 	IFLA_INFO_UNSPEC = 0,
97779 	IFLA_INFO_KIND = 1,
97780 	IFLA_INFO_DATA = 2,
97781 	IFLA_INFO_XSTATS = 3,
97782 	IFLA_INFO_SLAVE_KIND = 4,
97783 	IFLA_INFO_SLAVE_DATA = 5,
97784 	__IFLA_INFO_MAX = 6,
97785 };
97786 
97787 enum {
97788 	IFLA_VF_INFO_UNSPEC = 0,
97789 	IFLA_VF_INFO = 1,
97790 	__IFLA_VF_INFO_MAX = 2,
97791 };
97792 
97793 enum {
97794 	IFLA_VF_UNSPEC = 0,
97795 	IFLA_VF_MAC = 1,
97796 	IFLA_VF_VLAN = 2,
97797 	IFLA_VF_TX_RATE = 3,
97798 	IFLA_VF_SPOOFCHK = 4,
97799 	IFLA_VF_LINK_STATE = 5,
97800 	IFLA_VF_RATE = 6,
97801 	IFLA_VF_RSS_QUERY_EN = 7,
97802 	IFLA_VF_STATS = 8,
97803 	IFLA_VF_TRUST = 9,
97804 	IFLA_VF_IB_NODE_GUID = 10,
97805 	IFLA_VF_IB_PORT_GUID = 11,
97806 	IFLA_VF_VLAN_LIST = 12,
97807 	IFLA_VF_BROADCAST = 13,
97808 	__IFLA_VF_MAX = 14,
97809 };
97810 
97811 struct ifla_vf_mac {
97812 	__u32 vf;
97813 	__u8 mac[32];
97814 };
97815 
97816 struct ifla_vf_broadcast {
97817 	__u8 broadcast[32];
97818 };
97819 
97820 struct ifla_vf_vlan {
97821 	__u32 vf;
97822 	__u32 vlan;
97823 	__u32 qos;
97824 };
97825 
97826 enum {
97827 	IFLA_VF_VLAN_INFO_UNSPEC = 0,
97828 	IFLA_VF_VLAN_INFO = 1,
97829 	__IFLA_VF_VLAN_INFO_MAX = 2,
97830 };
97831 
97832 struct ifla_vf_vlan_info {
97833 	__u32 vf;
97834 	__u32 vlan;
97835 	__u32 qos;
97836 	__be16 vlan_proto;
97837 };
97838 
97839 struct ifla_vf_tx_rate {
97840 	__u32 vf;
97841 	__u32 rate;
97842 };
97843 
97844 struct ifla_vf_rate {
97845 	__u32 vf;
97846 	__u32 min_tx_rate;
97847 	__u32 max_tx_rate;
97848 };
97849 
97850 struct ifla_vf_spoofchk {
97851 	__u32 vf;
97852 	__u32 setting;
97853 };
97854 
97855 struct ifla_vf_link_state {
97856 	__u32 vf;
97857 	__u32 link_state;
97858 };
97859 
97860 struct ifla_vf_rss_query_en {
97861 	__u32 vf;
97862 	__u32 setting;
97863 };
97864 
97865 enum {
97866 	IFLA_VF_STATS_RX_PACKETS = 0,
97867 	IFLA_VF_STATS_TX_PACKETS = 1,
97868 	IFLA_VF_STATS_RX_BYTES = 2,
97869 	IFLA_VF_STATS_TX_BYTES = 3,
97870 	IFLA_VF_STATS_BROADCAST = 4,
97871 	IFLA_VF_STATS_MULTICAST = 5,
97872 	IFLA_VF_STATS_PAD = 6,
97873 	IFLA_VF_STATS_RX_DROPPED = 7,
97874 	IFLA_VF_STATS_TX_DROPPED = 8,
97875 	__IFLA_VF_STATS_MAX = 9,
97876 };
97877 
97878 struct ifla_vf_trust {
97879 	__u32 vf;
97880 	__u32 setting;
97881 };
97882 
97883 enum {
97884 	IFLA_VF_PORT_UNSPEC = 0,
97885 	IFLA_VF_PORT = 1,
97886 	__IFLA_VF_PORT_MAX = 2,
97887 };
97888 
97889 enum {
97890 	IFLA_PORT_UNSPEC = 0,
97891 	IFLA_PORT_VF = 1,
97892 	IFLA_PORT_PROFILE = 2,
97893 	IFLA_PORT_VSI_TYPE = 3,
97894 	IFLA_PORT_INSTANCE_UUID = 4,
97895 	IFLA_PORT_HOST_UUID = 5,
97896 	IFLA_PORT_REQUEST = 6,
97897 	IFLA_PORT_RESPONSE = 7,
97898 	__IFLA_PORT_MAX = 8,
97899 };
97900 
97901 struct if_stats_msg {
97902 	__u8 family;
97903 	__u8 pad1;
97904 	__u16 pad2;
97905 	__u32 ifindex;
97906 	__u32 filter_mask;
97907 };
97908 
97909 enum {
97910 	IFLA_STATS_UNSPEC = 0,
97911 	IFLA_STATS_LINK_64 = 1,
97912 	IFLA_STATS_LINK_XSTATS = 2,
97913 	IFLA_STATS_LINK_XSTATS_SLAVE = 3,
97914 	IFLA_STATS_LINK_OFFLOAD_XSTATS = 4,
97915 	IFLA_STATS_AF_SPEC = 5,
97916 	__IFLA_STATS_MAX = 6,
97917 };
97918 
97919 enum {
97920 	IFLA_STATS_GETSET_UNSPEC = 0,
97921 	IFLA_STATS_GET_FILTERS = 1,
97922 	IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 2,
97923 	__IFLA_STATS_GETSET_MAX = 3,
97924 };
97925 
97926 enum {
97927 	IFLA_OFFLOAD_XSTATS_UNSPEC = 0,
97928 	IFLA_OFFLOAD_XSTATS_CPU_HIT = 1,
97929 	IFLA_OFFLOAD_XSTATS_HW_S_INFO = 2,
97930 	IFLA_OFFLOAD_XSTATS_L3_STATS = 3,
97931 	__IFLA_OFFLOAD_XSTATS_MAX = 4,
97932 };
97933 
97934 enum {
97935 	IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC = 0,
97936 	IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST = 1,
97937 	IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED = 2,
97938 	__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX = 3,
97939 };
97940 
97941 enum {
97942 	XDP_ATTACHED_NONE = 0,
97943 	XDP_ATTACHED_DRV = 1,
97944 	XDP_ATTACHED_SKB = 2,
97945 	XDP_ATTACHED_HW = 3,
97946 	XDP_ATTACHED_MULTI = 4,
97947 };
97948 
97949 enum {
97950 	IFLA_XDP_UNSPEC = 0,
97951 	IFLA_XDP_FD = 1,
97952 	IFLA_XDP_ATTACHED = 2,
97953 	IFLA_XDP_FLAGS = 3,
97954 	IFLA_XDP_PROG_ID = 4,
97955 	IFLA_XDP_DRV_PROG_ID = 5,
97956 	IFLA_XDP_SKB_PROG_ID = 6,
97957 	IFLA_XDP_HW_PROG_ID = 7,
97958 	IFLA_XDP_EXPECTED_FD = 8,
97959 	__IFLA_XDP_MAX = 9,
97960 };
97961 
97962 enum {
97963 	IFLA_EVENT_NONE = 0,
97964 	IFLA_EVENT_REBOOT = 1,
97965 	IFLA_EVENT_FEATURES = 2,
97966 	IFLA_EVENT_BONDING_FAILOVER = 3,
97967 	IFLA_EVENT_NOTIFY_PEERS = 4,
97968 	IFLA_EVENT_IGMP_RESEND = 5,
97969 	IFLA_EVENT_BONDING_OPTIONS = 6,
97970 };
97971 
97972 enum {
97973 	IFLA_BRIDGE_FLAGS = 0,
97974 	IFLA_BRIDGE_MODE = 1,
97975 	IFLA_BRIDGE_VLAN_INFO = 2,
97976 	IFLA_BRIDGE_VLAN_TUNNEL_INFO = 3,
97977 	IFLA_BRIDGE_MRP = 4,
97978 	IFLA_BRIDGE_CFM = 5,
97979 	IFLA_BRIDGE_MST = 6,
97980 	__IFLA_BRIDGE_MAX = 7,
97981 };
97982 
97983 struct rta_cacheinfo {
97984 	__u32 rta_clntref;
97985 	__u32 rta_lastuse;
97986 	__s32 rta_expires;
97987 	__u32 rta_error;
97988 	__u32 rta_used;
97989 	__u32 rta_id;
97990 	__u32 rta_ts;
97991 	__u32 rta_tsage;
97992 };
97993 
97994 enum rtnl_kinds {
97995 	RTNL_KIND_NEW = 0,
97996 	RTNL_KIND_DEL = 1,
97997 	RTNL_KIND_GET = 2,
97998 	RTNL_KIND_SET = 3,
97999 };
98000 
98001 struct rtnl_link {
98002 	rtnl_doit_func doit;
98003 	rtnl_dumpit_func dumpit;
98004 	struct module *owner;
98005 	unsigned int flags;
98006 	struct callback_head rcu;
98007 };
98008 
98009 struct rtnl_newlink_tbs {
98010 	struct nlattr *tb[63];
98011 	struct nlattr *attr[51];
98012 	struct nlattr *slave_attr[41];
98013 };
98014 
98015 struct rtnl_offload_xstats_request_used {
98016 	bool request;
98017 	bool used;
98018 };
98019 
98020 struct rtnl_stats_dump_filters {
98021 	u32 mask[6];
98022 };
98023 
98024 struct ifconf {
98025 	int ifc_len;
98026 	union {
98027 		char *ifcu_buf;
98028 		struct ifreq *ifcu_req;
98029 	} ifc_ifcu;
98030 };
98031 
98032 enum hwtstamp_flags {
98033 	HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
98034 	HWTSTAMP_FLAG_LAST = 1,
98035 	HWTSTAMP_FLAG_MASK = 1,
98036 };
98037 
98038 typedef u32 compat_caddr_t;
98039 
98040 struct compat_ifmap {
98041 	compat_ulong_t mem_start;
98042 	compat_ulong_t mem_end;
98043 	short unsigned int base_addr;
98044 	unsigned char irq;
98045 	unsigned char dma;
98046 	unsigned char port;
98047 };
98048 
98049 struct compat_ifconf {
98050 	compat_int_t ifc_len;
98051 	compat_caddr_t ifcbuf;
98052 };
98053 
98054 struct net_bridge;
98055 
98056 struct fib_notifier_net {
98057 	struct list_head fib_notifier_ops;
98058 	struct atomic_notifier_head fib_chain;
98059 };
98060 
98061 struct tc_skb_ext {
98062 	__u32 chain;
98063 	__u16 mru;
98064 	__u16 zone;
98065 	u8 post_ct: 1;
98066 	u8 post_ct_snat: 1;
98067 	u8 post_ct_dnat: 1;
98068 };
98069 
98070 struct update_classid_context {
98071 	u32 classid;
98072 	unsigned int batch;
98073 };
98074 
98075 enum devlink_command {
98076 	DEVLINK_CMD_UNSPEC = 0,
98077 	DEVLINK_CMD_GET = 1,
98078 	DEVLINK_CMD_SET = 2,
98079 	DEVLINK_CMD_NEW = 3,
98080 	DEVLINK_CMD_DEL = 4,
98081 	DEVLINK_CMD_PORT_GET = 5,
98082 	DEVLINK_CMD_PORT_SET = 6,
98083 	DEVLINK_CMD_PORT_NEW = 7,
98084 	DEVLINK_CMD_PORT_DEL = 8,
98085 	DEVLINK_CMD_PORT_SPLIT = 9,
98086 	DEVLINK_CMD_PORT_UNSPLIT = 10,
98087 	DEVLINK_CMD_SB_GET = 11,
98088 	DEVLINK_CMD_SB_SET = 12,
98089 	DEVLINK_CMD_SB_NEW = 13,
98090 	DEVLINK_CMD_SB_DEL = 14,
98091 	DEVLINK_CMD_SB_POOL_GET = 15,
98092 	DEVLINK_CMD_SB_POOL_SET = 16,
98093 	DEVLINK_CMD_SB_POOL_NEW = 17,
98094 	DEVLINK_CMD_SB_POOL_DEL = 18,
98095 	DEVLINK_CMD_SB_PORT_POOL_GET = 19,
98096 	DEVLINK_CMD_SB_PORT_POOL_SET = 20,
98097 	DEVLINK_CMD_SB_PORT_POOL_NEW = 21,
98098 	DEVLINK_CMD_SB_PORT_POOL_DEL = 22,
98099 	DEVLINK_CMD_SB_TC_POOL_BIND_GET = 23,
98100 	DEVLINK_CMD_SB_TC_POOL_BIND_SET = 24,
98101 	DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 25,
98102 	DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 26,
98103 	DEVLINK_CMD_SB_OCC_SNAPSHOT = 27,
98104 	DEVLINK_CMD_SB_OCC_MAX_CLEAR = 28,
98105 	DEVLINK_CMD_ESWITCH_GET = 29,
98106 	DEVLINK_CMD_ESWITCH_SET = 30,
98107 	DEVLINK_CMD_DPIPE_TABLE_GET = 31,
98108 	DEVLINK_CMD_DPIPE_ENTRIES_GET = 32,
98109 	DEVLINK_CMD_DPIPE_HEADERS_GET = 33,
98110 	DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 34,
98111 	DEVLINK_CMD_RESOURCE_SET = 35,
98112 	DEVLINK_CMD_RESOURCE_DUMP = 36,
98113 	DEVLINK_CMD_RELOAD = 37,
98114 	DEVLINK_CMD_PARAM_GET = 38,
98115 	DEVLINK_CMD_PARAM_SET = 39,
98116 	DEVLINK_CMD_PARAM_NEW = 40,
98117 	DEVLINK_CMD_PARAM_DEL = 41,
98118 	DEVLINK_CMD_REGION_GET = 42,
98119 	DEVLINK_CMD_REGION_SET = 43,
98120 	DEVLINK_CMD_REGION_NEW = 44,
98121 	DEVLINK_CMD_REGION_DEL = 45,
98122 	DEVLINK_CMD_REGION_READ = 46,
98123 	DEVLINK_CMD_PORT_PARAM_GET = 47,
98124 	DEVLINK_CMD_PORT_PARAM_SET = 48,
98125 	DEVLINK_CMD_PORT_PARAM_NEW = 49,
98126 	DEVLINK_CMD_PORT_PARAM_DEL = 50,
98127 	DEVLINK_CMD_INFO_GET = 51,
98128 	DEVLINK_CMD_HEALTH_REPORTER_GET = 52,
98129 	DEVLINK_CMD_HEALTH_REPORTER_SET = 53,
98130 	DEVLINK_CMD_HEALTH_REPORTER_RECOVER = 54,
98131 	DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE = 55,
98132 	DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET = 56,
98133 	DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR = 57,
98134 	DEVLINK_CMD_FLASH_UPDATE = 58,
98135 	DEVLINK_CMD_FLASH_UPDATE_END = 59,
98136 	DEVLINK_CMD_FLASH_UPDATE_STATUS = 60,
98137 	DEVLINK_CMD_TRAP_GET = 61,
98138 	DEVLINK_CMD_TRAP_SET = 62,
98139 	DEVLINK_CMD_TRAP_NEW = 63,
98140 	DEVLINK_CMD_TRAP_DEL = 64,
98141 	DEVLINK_CMD_TRAP_GROUP_GET = 65,
98142 	DEVLINK_CMD_TRAP_GROUP_SET = 66,
98143 	DEVLINK_CMD_TRAP_GROUP_NEW = 67,
98144 	DEVLINK_CMD_TRAP_GROUP_DEL = 68,
98145 	DEVLINK_CMD_TRAP_POLICER_GET = 69,
98146 	DEVLINK_CMD_TRAP_POLICER_SET = 70,
98147 	DEVLINK_CMD_TRAP_POLICER_NEW = 71,
98148 	DEVLINK_CMD_TRAP_POLICER_DEL = 72,
98149 	DEVLINK_CMD_HEALTH_REPORTER_TEST = 73,
98150 	DEVLINK_CMD_RATE_GET = 74,
98151 	DEVLINK_CMD_RATE_SET = 75,
98152 	DEVLINK_CMD_RATE_NEW = 76,
98153 	DEVLINK_CMD_RATE_DEL = 77,
98154 	DEVLINK_CMD_LINECARD_GET = 78,
98155 	DEVLINK_CMD_LINECARD_SET = 79,
98156 	DEVLINK_CMD_LINECARD_NEW = 80,
98157 	DEVLINK_CMD_LINECARD_DEL = 81,
98158 	DEVLINK_CMD_SELFTESTS_GET = 82,
98159 	DEVLINK_CMD_SELFTESTS_RUN = 83,
98160 	__DEVLINK_CMD_MAX = 84,
98161 	DEVLINK_CMD_MAX = 83,
98162 };
98163 
98164 enum devlink_sb_pool_type {
98165 	DEVLINK_SB_POOL_TYPE_INGRESS = 0,
98166 	DEVLINK_SB_POOL_TYPE_EGRESS = 1,
98167 };
98168 
98169 enum devlink_sb_threshold_type {
98170 	DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0,
98171 	DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 1,
98172 };
98173 
98174 enum devlink_eswitch_mode {
98175 	DEVLINK_ESWITCH_MODE_LEGACY = 0,
98176 	DEVLINK_ESWITCH_MODE_SWITCHDEV = 1,
98177 };
98178 
98179 enum devlink_eswitch_encap_mode {
98180 	DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0,
98181 	DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 1,
98182 };
98183 
98184 enum devlink_param_cmode {
98185 	DEVLINK_PARAM_CMODE_RUNTIME = 0,
98186 	DEVLINK_PARAM_CMODE_DRIVERINIT = 1,
98187 	DEVLINK_PARAM_CMODE_PERMANENT = 2,
98188 	__DEVLINK_PARAM_CMODE_MAX = 3,
98189 	DEVLINK_PARAM_CMODE_MAX = 2,
98190 };
98191 
98192 enum {
98193 	DEVLINK_ATTR_STATS_RX_PACKETS = 0,
98194 	DEVLINK_ATTR_STATS_RX_BYTES = 1,
98195 	DEVLINK_ATTR_STATS_RX_DROPPED = 2,
98196 	__DEVLINK_ATTR_STATS_MAX = 3,
98197 	DEVLINK_ATTR_STATS_MAX = 2,
98198 };
98199 
98200 enum {
98201 	DEVLINK_FLASH_OVERWRITE_SETTINGS_BIT = 0,
98202 	DEVLINK_FLASH_OVERWRITE_IDENTIFIERS_BIT = 1,
98203 	__DEVLINK_FLASH_OVERWRITE_MAX_BIT = 2,
98204 	DEVLINK_FLASH_OVERWRITE_MAX_BIT = 1,
98205 };
98206 
98207 enum devlink_attr_selftest_id {
98208 	DEVLINK_ATTR_SELFTEST_ID_UNSPEC = 0,
98209 	DEVLINK_ATTR_SELFTEST_ID_FLASH = 1,
98210 	__DEVLINK_ATTR_SELFTEST_ID_MAX = 2,
98211 	DEVLINK_ATTR_SELFTEST_ID_MAX = 1,
98212 };
98213 
98214 enum devlink_selftest_status {
98215 	DEVLINK_SELFTEST_STATUS_SKIP = 0,
98216 	DEVLINK_SELFTEST_STATUS_PASS = 1,
98217 	DEVLINK_SELFTEST_STATUS_FAIL = 2,
98218 };
98219 
98220 enum devlink_attr_selftest_result {
98221 	DEVLINK_ATTR_SELFTEST_RESULT_UNSPEC = 0,
98222 	DEVLINK_ATTR_SELFTEST_RESULT = 1,
98223 	DEVLINK_ATTR_SELFTEST_RESULT_ID = 2,
98224 	DEVLINK_ATTR_SELFTEST_RESULT_STATUS = 3,
98225 	__DEVLINK_ATTR_SELFTEST_RESULT_MAX = 4,
98226 	DEVLINK_ATTR_SELFTEST_RESULT_MAX = 3,
98227 };
98228 
98229 enum devlink_trap_action {
98230 	DEVLINK_TRAP_ACTION_DROP = 0,
98231 	DEVLINK_TRAP_ACTION_TRAP = 1,
98232 	DEVLINK_TRAP_ACTION_MIRROR = 2,
98233 };
98234 
98235 enum devlink_trap_type {
98236 	DEVLINK_TRAP_TYPE_DROP = 0,
98237 	DEVLINK_TRAP_TYPE_EXCEPTION = 1,
98238 	DEVLINK_TRAP_TYPE_CONTROL = 2,
98239 };
98240 
98241 enum {
98242 	DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT = 0,
98243 	DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE = 1,
98244 };
98245 
98246 enum devlink_reload_action {
98247 	DEVLINK_RELOAD_ACTION_UNSPEC = 0,
98248 	DEVLINK_RELOAD_ACTION_DRIVER_REINIT = 1,
98249 	DEVLINK_RELOAD_ACTION_FW_ACTIVATE = 2,
98250 	__DEVLINK_RELOAD_ACTION_MAX = 3,
98251 	DEVLINK_RELOAD_ACTION_MAX = 2,
98252 };
98253 
98254 enum devlink_reload_limit {
98255 	DEVLINK_RELOAD_LIMIT_UNSPEC = 0,
98256 	DEVLINK_RELOAD_LIMIT_NO_RESET = 1,
98257 	__DEVLINK_RELOAD_LIMIT_MAX = 2,
98258 	DEVLINK_RELOAD_LIMIT_MAX = 1,
98259 };
98260 
98261 enum devlink_linecard_state {
98262 	DEVLINK_LINECARD_STATE_UNSPEC = 0,
98263 	DEVLINK_LINECARD_STATE_UNPROVISIONED = 1,
98264 	DEVLINK_LINECARD_STATE_UNPROVISIONING = 2,
98265 	DEVLINK_LINECARD_STATE_PROVISIONING = 3,
98266 	DEVLINK_LINECARD_STATE_PROVISIONING_FAILED = 4,
98267 	DEVLINK_LINECARD_STATE_PROVISIONED = 5,
98268 	DEVLINK_LINECARD_STATE_ACTIVE = 6,
98269 	__DEVLINK_LINECARD_STATE_MAX = 7,
98270 	DEVLINK_LINECARD_STATE_MAX = 6,
98271 };
98272 
98273 enum devlink_attr {
98274 	DEVLINK_ATTR_UNSPEC = 0,
98275 	DEVLINK_ATTR_BUS_NAME = 1,
98276 	DEVLINK_ATTR_DEV_NAME = 2,
98277 	DEVLINK_ATTR_PORT_INDEX = 3,
98278 	DEVLINK_ATTR_PORT_TYPE = 4,
98279 	DEVLINK_ATTR_PORT_DESIRED_TYPE = 5,
98280 	DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 6,
98281 	DEVLINK_ATTR_PORT_NETDEV_NAME = 7,
98282 	DEVLINK_ATTR_PORT_IBDEV_NAME = 8,
98283 	DEVLINK_ATTR_PORT_SPLIT_COUNT = 9,
98284 	DEVLINK_ATTR_PORT_SPLIT_GROUP = 10,
98285 	DEVLINK_ATTR_SB_INDEX = 11,
98286 	DEVLINK_ATTR_SB_SIZE = 12,
98287 	DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 13,
98288 	DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 14,
98289 	DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 15,
98290 	DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 16,
98291 	DEVLINK_ATTR_SB_POOL_INDEX = 17,
98292 	DEVLINK_ATTR_SB_POOL_TYPE = 18,
98293 	DEVLINK_ATTR_SB_POOL_SIZE = 19,
98294 	DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 20,
98295 	DEVLINK_ATTR_SB_THRESHOLD = 21,
98296 	DEVLINK_ATTR_SB_TC_INDEX = 22,
98297 	DEVLINK_ATTR_SB_OCC_CUR = 23,
98298 	DEVLINK_ATTR_SB_OCC_MAX = 24,
98299 	DEVLINK_ATTR_ESWITCH_MODE = 25,
98300 	DEVLINK_ATTR_ESWITCH_INLINE_MODE = 26,
98301 	DEVLINK_ATTR_DPIPE_TABLES = 27,
98302 	DEVLINK_ATTR_DPIPE_TABLE = 28,
98303 	DEVLINK_ATTR_DPIPE_TABLE_NAME = 29,
98304 	DEVLINK_ATTR_DPIPE_TABLE_SIZE = 30,
98305 	DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 31,
98306 	DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 32,
98307 	DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 33,
98308 	DEVLINK_ATTR_DPIPE_ENTRIES = 34,
98309 	DEVLINK_ATTR_DPIPE_ENTRY = 35,
98310 	DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 36,
98311 	DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 37,
98312 	DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 38,
98313 	DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 39,
98314 	DEVLINK_ATTR_DPIPE_MATCH = 40,
98315 	DEVLINK_ATTR_DPIPE_MATCH_VALUE = 41,
98316 	DEVLINK_ATTR_DPIPE_MATCH_TYPE = 42,
98317 	DEVLINK_ATTR_DPIPE_ACTION = 43,
98318 	DEVLINK_ATTR_DPIPE_ACTION_VALUE = 44,
98319 	DEVLINK_ATTR_DPIPE_ACTION_TYPE = 45,
98320 	DEVLINK_ATTR_DPIPE_VALUE = 46,
98321 	DEVLINK_ATTR_DPIPE_VALUE_MASK = 47,
98322 	DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 48,
98323 	DEVLINK_ATTR_DPIPE_HEADERS = 49,
98324 	DEVLINK_ATTR_DPIPE_HEADER = 50,
98325 	DEVLINK_ATTR_DPIPE_HEADER_NAME = 51,
98326 	DEVLINK_ATTR_DPIPE_HEADER_ID = 52,
98327 	DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 53,
98328 	DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 54,
98329 	DEVLINK_ATTR_DPIPE_HEADER_INDEX = 55,
98330 	DEVLINK_ATTR_DPIPE_FIELD = 56,
98331 	DEVLINK_ATTR_DPIPE_FIELD_NAME = 57,
98332 	DEVLINK_ATTR_DPIPE_FIELD_ID = 58,
98333 	DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 59,
98334 	DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 60,
98335 	DEVLINK_ATTR_PAD = 61,
98336 	DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 62,
98337 	DEVLINK_ATTR_RESOURCE_LIST = 63,
98338 	DEVLINK_ATTR_RESOURCE = 64,
98339 	DEVLINK_ATTR_RESOURCE_NAME = 65,
98340 	DEVLINK_ATTR_RESOURCE_ID = 66,
98341 	DEVLINK_ATTR_RESOURCE_SIZE = 67,
98342 	DEVLINK_ATTR_RESOURCE_SIZE_NEW = 68,
98343 	DEVLINK_ATTR_RESOURCE_SIZE_VALID = 69,
98344 	DEVLINK_ATTR_RESOURCE_SIZE_MIN = 70,
98345 	DEVLINK_ATTR_RESOURCE_SIZE_MAX = 71,
98346 	DEVLINK_ATTR_RESOURCE_SIZE_GRAN = 72,
98347 	DEVLINK_ATTR_RESOURCE_UNIT = 73,
98348 	DEVLINK_ATTR_RESOURCE_OCC = 74,
98349 	DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID = 75,
98350 	DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS = 76,
98351 	DEVLINK_ATTR_PORT_FLAVOUR = 77,
98352 	DEVLINK_ATTR_PORT_NUMBER = 78,
98353 	DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER = 79,
98354 	DEVLINK_ATTR_PARAM = 80,
98355 	DEVLINK_ATTR_PARAM_NAME = 81,
98356 	DEVLINK_ATTR_PARAM_GENERIC = 82,
98357 	DEVLINK_ATTR_PARAM_TYPE = 83,
98358 	DEVLINK_ATTR_PARAM_VALUES_LIST = 84,
98359 	DEVLINK_ATTR_PARAM_VALUE = 85,
98360 	DEVLINK_ATTR_PARAM_VALUE_DATA = 86,
98361 	DEVLINK_ATTR_PARAM_VALUE_CMODE = 87,
98362 	DEVLINK_ATTR_REGION_NAME = 88,
98363 	DEVLINK_ATTR_REGION_SIZE = 89,
98364 	DEVLINK_ATTR_REGION_SNAPSHOTS = 90,
98365 	DEVLINK_ATTR_REGION_SNAPSHOT = 91,
98366 	DEVLINK_ATTR_REGION_SNAPSHOT_ID = 92,
98367 	DEVLINK_ATTR_REGION_CHUNKS = 93,
98368 	DEVLINK_ATTR_REGION_CHUNK = 94,
98369 	DEVLINK_ATTR_REGION_CHUNK_DATA = 95,
98370 	DEVLINK_ATTR_REGION_CHUNK_ADDR = 96,
98371 	DEVLINK_ATTR_REGION_CHUNK_LEN = 97,
98372 	DEVLINK_ATTR_INFO_DRIVER_NAME = 98,
98373 	DEVLINK_ATTR_INFO_SERIAL_NUMBER = 99,
98374 	DEVLINK_ATTR_INFO_VERSION_FIXED = 100,
98375 	DEVLINK_ATTR_INFO_VERSION_RUNNING = 101,
98376 	DEVLINK_ATTR_INFO_VERSION_STORED = 102,
98377 	DEVLINK_ATTR_INFO_VERSION_NAME = 103,
98378 	DEVLINK_ATTR_INFO_VERSION_VALUE = 104,
98379 	DEVLINK_ATTR_SB_POOL_CELL_SIZE = 105,
98380 	DEVLINK_ATTR_FMSG = 106,
98381 	DEVLINK_ATTR_FMSG_OBJ_NEST_START = 107,
98382 	DEVLINK_ATTR_FMSG_PAIR_NEST_START = 108,
98383 	DEVLINK_ATTR_FMSG_ARR_NEST_START = 109,
98384 	DEVLINK_ATTR_FMSG_NEST_END = 110,
98385 	DEVLINK_ATTR_FMSG_OBJ_NAME = 111,
98386 	DEVLINK_ATTR_FMSG_OBJ_VALUE_TYPE = 112,
98387 	DEVLINK_ATTR_FMSG_OBJ_VALUE_DATA = 113,
98388 	DEVLINK_ATTR_HEALTH_REPORTER = 114,
98389 	DEVLINK_ATTR_HEALTH_REPORTER_NAME = 115,
98390 	DEVLINK_ATTR_HEALTH_REPORTER_STATE = 116,
98391 	DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT = 117,
98392 	DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT = 118,
98393 	DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS = 119,
98394 	DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD = 120,
98395 	DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER = 121,
98396 	DEVLINK_ATTR_FLASH_UPDATE_FILE_NAME = 122,
98397 	DEVLINK_ATTR_FLASH_UPDATE_COMPONENT = 123,
98398 	DEVLINK_ATTR_FLASH_UPDATE_STATUS_MSG = 124,
98399 	DEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE = 125,
98400 	DEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL = 126,
98401 	DEVLINK_ATTR_PORT_PCI_PF_NUMBER = 127,
98402 	DEVLINK_ATTR_PORT_PCI_VF_NUMBER = 128,
98403 	DEVLINK_ATTR_STATS = 129,
98404 	DEVLINK_ATTR_TRAP_NAME = 130,
98405 	DEVLINK_ATTR_TRAP_ACTION = 131,
98406 	DEVLINK_ATTR_TRAP_TYPE = 132,
98407 	DEVLINK_ATTR_TRAP_GENERIC = 133,
98408 	DEVLINK_ATTR_TRAP_METADATA = 134,
98409 	DEVLINK_ATTR_TRAP_GROUP_NAME = 135,
98410 	DEVLINK_ATTR_RELOAD_FAILED = 136,
98411 	DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS = 137,
98412 	DEVLINK_ATTR_NETNS_FD = 138,
98413 	DEVLINK_ATTR_NETNS_PID = 139,
98414 	DEVLINK_ATTR_NETNS_ID = 140,
98415 	DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP = 141,
98416 	DEVLINK_ATTR_TRAP_POLICER_ID = 142,
98417 	DEVLINK_ATTR_TRAP_POLICER_RATE = 143,
98418 	DEVLINK_ATTR_TRAP_POLICER_BURST = 144,
98419 	DEVLINK_ATTR_PORT_FUNCTION = 145,
98420 	DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER = 146,
98421 	DEVLINK_ATTR_PORT_LANES = 147,
98422 	DEVLINK_ATTR_PORT_SPLITTABLE = 148,
98423 	DEVLINK_ATTR_PORT_EXTERNAL = 149,
98424 	DEVLINK_ATTR_PORT_CONTROLLER_NUMBER = 150,
98425 	DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT = 151,
98426 	DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK = 152,
98427 	DEVLINK_ATTR_RELOAD_ACTION = 153,
98428 	DEVLINK_ATTR_RELOAD_ACTIONS_PERFORMED = 154,
98429 	DEVLINK_ATTR_RELOAD_LIMITS = 155,
98430 	DEVLINK_ATTR_DEV_STATS = 156,
98431 	DEVLINK_ATTR_RELOAD_STATS = 157,
98432 	DEVLINK_ATTR_RELOAD_STATS_ENTRY = 158,
98433 	DEVLINK_ATTR_RELOAD_STATS_LIMIT = 159,
98434 	DEVLINK_ATTR_RELOAD_STATS_VALUE = 160,
98435 	DEVLINK_ATTR_REMOTE_RELOAD_STATS = 161,
98436 	DEVLINK_ATTR_RELOAD_ACTION_INFO = 162,
98437 	DEVLINK_ATTR_RELOAD_ACTION_STATS = 163,
98438 	DEVLINK_ATTR_PORT_PCI_SF_NUMBER = 164,
98439 	DEVLINK_ATTR_RATE_TYPE = 165,
98440 	DEVLINK_ATTR_RATE_TX_SHARE = 166,
98441 	DEVLINK_ATTR_RATE_TX_MAX = 167,
98442 	DEVLINK_ATTR_RATE_NODE_NAME = 168,
98443 	DEVLINK_ATTR_RATE_PARENT_NODE_NAME = 169,
98444 	DEVLINK_ATTR_REGION_MAX_SNAPSHOTS = 170,
98445 	DEVLINK_ATTR_LINECARD_INDEX = 171,
98446 	DEVLINK_ATTR_LINECARD_STATE = 172,
98447 	DEVLINK_ATTR_LINECARD_TYPE = 173,
98448 	DEVLINK_ATTR_LINECARD_SUPPORTED_TYPES = 174,
98449 	DEVLINK_ATTR_NESTED_DEVLINK = 175,
98450 	DEVLINK_ATTR_SELFTESTS = 176,
98451 	DEVLINK_ATTR_RATE_TX_PRIORITY = 177,
98452 	DEVLINK_ATTR_RATE_TX_WEIGHT = 178,
98453 	DEVLINK_ATTR_REGION_DIRECT = 179,
98454 	__DEVLINK_ATTR_MAX = 180,
98455 	DEVLINK_ATTR_MAX = 179,
98456 };
98457 
98458 enum devlink_dpipe_field_mapping_type {
98459 	DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0,
98460 	DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 1,
98461 };
98462 
98463 enum devlink_dpipe_match_type {
98464 	DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0,
98465 };
98466 
98467 enum devlink_dpipe_action_type {
98468 	DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0,
98469 };
98470 
98471 enum devlink_dpipe_field_ethernet_id {
98472 	DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0,
98473 };
98474 
98475 enum devlink_dpipe_field_ipv4_id {
98476 	DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0,
98477 };
98478 
98479 enum devlink_dpipe_field_ipv6_id {
98480 	DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0,
98481 };
98482 
98483 enum devlink_dpipe_header_id {
98484 	DEVLINK_DPIPE_HEADER_ETHERNET = 0,
98485 	DEVLINK_DPIPE_HEADER_IPV4 = 1,
98486 	DEVLINK_DPIPE_HEADER_IPV6 = 2,
98487 };
98488 
98489 enum devlink_resource_unit {
98490 	DEVLINK_RESOURCE_UNIT_ENTRY = 0,
98491 };
98492 
98493 enum devlink_port_fn_attr_cap {
98494 	DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT = 0,
98495 	DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT = 1,
98496 	__DEVLINK_PORT_FN_ATTR_CAPS_MAX = 2,
98497 };
98498 
98499 enum devlink_port_function_attr {
98500 	DEVLINK_PORT_FUNCTION_ATTR_UNSPEC = 0,
98501 	DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR = 1,
98502 	DEVLINK_PORT_FN_ATTR_STATE = 2,
98503 	DEVLINK_PORT_FN_ATTR_OPSTATE = 3,
98504 	DEVLINK_PORT_FN_ATTR_CAPS = 4,
98505 	__DEVLINK_PORT_FUNCTION_ATTR_MAX = 5,
98506 	DEVLINK_PORT_FUNCTION_ATTR_MAX = 4,
98507 };
98508 
98509 enum devlink_port_fn_state {
98510 	DEVLINK_PORT_FN_STATE_INACTIVE = 0,
98511 	DEVLINK_PORT_FN_STATE_ACTIVE = 1,
98512 };
98513 
98514 enum devlink_port_fn_opstate {
98515 	DEVLINK_PORT_FN_OPSTATE_DETACHED = 0,
98516 	DEVLINK_PORT_FN_OPSTATE_ATTACHED = 1,
98517 };
98518 
98519 struct devlink_dev_stats {
98520 	u32 reload_stats[6];
98521 	u32 remote_reload_stats[6];
98522 };
98523 
98524 struct devlink_dpipe_headers;
98525 
98526 struct devlink_ops;
98527 
98528 struct devlink {
98529 	u32 index;
98530 	struct xarray ports;
98531 	struct list_head rate_list;
98532 	struct list_head sb_list;
98533 	struct list_head dpipe_table_list;
98534 	struct list_head resource_list;
98535 	struct list_head param_list;
98536 	struct list_head region_list;
98537 	struct list_head reporter_list;
98538 	struct mutex reporters_lock;
98539 	struct devlink_dpipe_headers *dpipe_headers;
98540 	struct list_head trap_list;
98541 	struct list_head trap_group_list;
98542 	struct list_head trap_policer_list;
98543 	struct list_head linecard_list;
98544 	struct mutex linecards_lock;
98545 	const struct devlink_ops *ops;
98546 	u64 features;
98547 	struct xarray snapshot_ids;
98548 	struct devlink_dev_stats stats;
98549 	struct device *dev;
98550 	possible_net_t _net;
98551 	struct mutex lock;
98552 	struct lock_class_key lock_key;
98553 	u8 reload_failed: 1;
98554 	refcount_t refcount;
98555 	struct completion comp;
98556 	struct callback_head rcu;
98557 	struct notifier_block netdevice_nb;
98558 	char priv[0];
98559 };
98560 
98561 struct devlink_linecard_ops;
98562 
98563 struct devlink_linecard_type;
98564 
98565 struct devlink_linecard {
98566 	struct list_head list;
98567 	struct devlink *devlink;
98568 	unsigned int index;
98569 	refcount_t refcount;
98570 	const struct devlink_linecard_ops *ops;
98571 	void *priv;
98572 	enum devlink_linecard_state state;
98573 	struct mutex state_lock;
98574 	const char *type;
98575 	struct devlink_linecard_type *types;
98576 	unsigned int types_count;
98577 	struct devlink *nested_devlink;
98578 };
98579 
98580 struct devlink_port_new_attrs {
98581 	enum devlink_port_flavour flavour;
98582 	unsigned int port_index;
98583 	u32 controller;
98584 	u32 sfnum;
98585 	u16 pfnum;
98586 	u8 port_index_valid: 1;
98587 	u8 controller_valid: 1;
98588 	u8 sfnum_valid: 1;
98589 };
98590 
98591 struct devlink_linecard_ops {
98592 	int (*provision)(struct devlink_linecard *, void *, const char *, const void *, struct netlink_ext_ack *);
98593 	int (*unprovision)(struct devlink_linecard *, void *, struct netlink_ext_ack *);
98594 	bool (*same_provision)(struct devlink_linecard *, void *, const char *, const void *);
98595 	unsigned int (*types_count)(struct devlink_linecard *, void *);
98596 	void (*types_get)(struct devlink_linecard *, void *, unsigned int, const char **, const void **);
98597 };
98598 
98599 struct devlink_sb_pool_info {
98600 	enum devlink_sb_pool_type pool_type;
98601 	u32 size;
98602 	enum devlink_sb_threshold_type threshold_type;
98603 	u32 cell_size;
98604 };
98605 
98606 struct devlink_dpipe_field {
98607 	const char *name;
98608 	unsigned int id;
98609 	unsigned int bitwidth;
98610 	enum devlink_dpipe_field_mapping_type mapping_type;
98611 };
98612 
98613 struct devlink_dpipe_header {
98614 	const char *name;
98615 	unsigned int id;
98616 	struct devlink_dpipe_field *fields;
98617 	unsigned int fields_count;
98618 	bool global;
98619 };
98620 
98621 struct devlink_dpipe_match {
98622 	enum devlink_dpipe_match_type type;
98623 	unsigned int header_index;
98624 	struct devlink_dpipe_header *header;
98625 	unsigned int field_id;
98626 };
98627 
98628 struct devlink_dpipe_action {
98629 	enum devlink_dpipe_action_type type;
98630 	unsigned int header_index;
98631 	struct devlink_dpipe_header *header;
98632 	unsigned int field_id;
98633 };
98634 
98635 struct devlink_dpipe_value {
98636 	union {
98637 		struct devlink_dpipe_action *action;
98638 		struct devlink_dpipe_match *match;
98639 	};
98640 	unsigned int mapping_value;
98641 	bool mapping_valid;
98642 	unsigned int value_size;
98643 	void *value;
98644 	void *mask;
98645 };
98646 
98647 struct devlink_dpipe_entry {
98648 	u64 index;
98649 	struct devlink_dpipe_value *match_values;
98650 	unsigned int match_values_count;
98651 	struct devlink_dpipe_value *action_values;
98652 	unsigned int action_values_count;
98653 	u64 counter;
98654 	bool counter_valid;
98655 };
98656 
98657 struct devlink_dpipe_dump_ctx {
98658 	struct genl_info *info;
98659 	enum devlink_command cmd;
98660 	struct sk_buff *skb;
98661 	struct nlattr *nest;
98662 	void *hdr;
98663 };
98664 
98665 struct devlink_dpipe_table_ops;
98666 
98667 struct devlink_dpipe_table {
98668 	void *priv;
98669 	struct list_head list;
98670 	const char *name;
98671 	bool counters_enabled;
98672 	bool counter_control_extern;
98673 	bool resource_valid;
98674 	u64 resource_id;
98675 	u64 resource_units;
98676 	struct devlink_dpipe_table_ops *table_ops;
98677 	struct callback_head rcu;
98678 };
98679 
98680 struct devlink_dpipe_table_ops {
98681 	int (*actions_dump)(void *, struct sk_buff *);
98682 	int (*matches_dump)(void *, struct sk_buff *);
98683 	int (*entries_dump)(void *, bool, struct devlink_dpipe_dump_ctx *);
98684 	int (*counters_set_update)(void *, bool);
98685 	u64 (*size_get)(void *);
98686 };
98687 
98688 struct devlink_dpipe_headers {
98689 	struct devlink_dpipe_header **headers;
98690 	unsigned int headers_count;
98691 };
98692 
98693 struct devlink_resource_size_params {
98694 	u64 size_min;
98695 	u64 size_max;
98696 	u64 size_granularity;
98697 	enum devlink_resource_unit unit;
98698 };
98699 
98700 typedef u64 devlink_resource_occ_get_t(void *);
98701 
98702 enum devlink_param_type {
98703 	DEVLINK_PARAM_TYPE_U8 = 0,
98704 	DEVLINK_PARAM_TYPE_U16 = 1,
98705 	DEVLINK_PARAM_TYPE_U32 = 2,
98706 	DEVLINK_PARAM_TYPE_STRING = 3,
98707 	DEVLINK_PARAM_TYPE_BOOL = 4,
98708 };
98709 
98710 union devlink_param_value {
98711 	u8 vu8;
98712 	u16 vu16;
98713 	u32 vu32;
98714 	char vstr[32];
98715 	bool vbool;
98716 };
98717 
98718 struct devlink_param_gset_ctx {
98719 	union devlink_param_value val;
98720 	enum devlink_param_cmode cmode;
98721 };
98722 
98723 struct devlink_flash_notify {
98724 	const char *status_msg;
98725 	const char *component;
98726 	long unsigned int done;
98727 	long unsigned int total;
98728 	long unsigned int timeout;
98729 };
98730 
98731 struct devlink_param {
98732 	u32 id;
98733 	const char *name;
98734 	bool generic;
98735 	enum devlink_param_type type;
98736 	long unsigned int supported_cmodes;
98737 	int (*get)(struct devlink *, u32, struct devlink_param_gset_ctx *);
98738 	int (*set)(struct devlink *, u32, struct devlink_param_gset_ctx *);
98739 	int (*validate)(struct devlink *, u32, union devlink_param_value, struct netlink_ext_ack *);
98740 };
98741 
98742 struct devlink_param_item {
98743 	struct list_head list;
98744 	const struct devlink_param *param;
98745 	union devlink_param_value driverinit_value;
98746 	bool driverinit_value_valid;
98747 };
98748 
98749 enum devlink_param_generic_id {
98750 	DEVLINK_PARAM_GENERIC_ID_INT_ERR_RESET = 0,
98751 	DEVLINK_PARAM_GENERIC_ID_MAX_MACS = 1,
98752 	DEVLINK_PARAM_GENERIC_ID_ENABLE_SRIOV = 2,
98753 	DEVLINK_PARAM_GENERIC_ID_REGION_SNAPSHOT = 3,
98754 	DEVLINK_PARAM_GENERIC_ID_IGNORE_ARI = 4,
98755 	DEVLINK_PARAM_GENERIC_ID_MSIX_VEC_PER_PF_MAX = 5,
98756 	DEVLINK_PARAM_GENERIC_ID_MSIX_VEC_PER_PF_MIN = 6,
98757 	DEVLINK_PARAM_GENERIC_ID_FW_LOAD_POLICY = 7,
98758 	DEVLINK_PARAM_GENERIC_ID_RESET_DEV_ON_DRV_PROBE = 8,
98759 	DEVLINK_PARAM_GENERIC_ID_ENABLE_ROCE = 9,
98760 	DEVLINK_PARAM_GENERIC_ID_ENABLE_REMOTE_DEV_RESET = 10,
98761 	DEVLINK_PARAM_GENERIC_ID_ENABLE_ETH = 11,
98762 	DEVLINK_PARAM_GENERIC_ID_ENABLE_RDMA = 12,
98763 	DEVLINK_PARAM_GENERIC_ID_ENABLE_VNET = 13,
98764 	DEVLINK_PARAM_GENERIC_ID_ENABLE_IWARP = 14,
98765 	DEVLINK_PARAM_GENERIC_ID_IO_EQ_SIZE = 15,
98766 	DEVLINK_PARAM_GENERIC_ID_EVENT_EQ_SIZE = 16,
98767 	__DEVLINK_PARAM_GENERIC_ID_MAX = 17,
98768 	DEVLINK_PARAM_GENERIC_ID_MAX = 16,
98769 };
98770 
98771 struct devlink_flash_update_params {
98772 	const struct firmware *fw;
98773 	const char *component;
98774 	u32 overwrite_mask;
98775 };
98776 
98777 struct devlink_region_ops {
98778 	const char *name;
98779 	void (*destructor)(const void *);
98780 	int (*snapshot)(struct devlink *, const struct devlink_region_ops *, struct netlink_ext_ack *, u8 **);
98781 	int (*read)(struct devlink *, const struct devlink_region_ops *, struct netlink_ext_ack *, u64, u32, u8 *);
98782 	void *priv;
98783 };
98784 
98785 struct devlink_port_region_ops {
98786 	const char *name;
98787 	void (*destructor)(const void *);
98788 	int (*snapshot)(struct devlink_port *, const struct devlink_port_region_ops *, struct netlink_ext_ack *, u8 **);
98789 	int (*read)(struct devlink_port *, const struct devlink_port_region_ops *, struct netlink_ext_ack *, u64, u32, u8 *);
98790 	void *priv;
98791 };
98792 
98793 enum devlink_health_reporter_state {
98794 	DEVLINK_HEALTH_REPORTER_STATE_HEALTHY = 0,
98795 	DEVLINK_HEALTH_REPORTER_STATE_ERROR = 1,
98796 };
98797 
98798 struct devlink_health_reporter;
98799 
98800 struct devlink_fmsg;
98801 
98802 struct devlink_health_reporter_ops {
98803 	char *name;
98804 	int (*recover)(struct devlink_health_reporter *, void *, struct netlink_ext_ack *);
98805 	int (*dump)(struct devlink_health_reporter *, struct devlink_fmsg *, void *, struct netlink_ext_ack *);
98806 	int (*diagnose)(struct devlink_health_reporter *, struct devlink_fmsg *, struct netlink_ext_ack *);
98807 	int (*test)(struct devlink_health_reporter *, struct netlink_ext_ack *);
98808 };
98809 
98810 struct devlink_health_reporter {
98811 	struct list_head list;
98812 	void *priv;
98813 	const struct devlink_health_reporter_ops *ops;
98814 	struct devlink *devlink;
98815 	struct devlink_port *devlink_port;
98816 	struct devlink_fmsg *dump_fmsg;
98817 	struct mutex dump_lock;
98818 	u64 graceful_period;
98819 	bool auto_recover;
98820 	bool auto_dump;
98821 	u8 health_state;
98822 	u64 dump_ts;
98823 	u64 dump_real_ts;
98824 	u64 error_count;
98825 	u64 recovery_count;
98826 	u64 last_recovery_ts;
98827 	refcount_t refcount;
98828 };
98829 
98830 struct devlink_fmsg {
98831 	struct list_head item_list;
98832 	bool putting_binary;
98833 };
98834 
98835 struct devlink_trap_metadata {
98836 	const char *trap_name;
98837 	const char *trap_group_name;
98838 	struct net_device *input_dev;
98839 	netdevice_tracker dev_tracker;
98840 	const struct flow_action_cookie *fa_cookie;
98841 	enum devlink_trap_type trap_type;
98842 };
98843 
98844 struct devlink_trap_policer {
98845 	u32 id;
98846 	u64 init_rate;
98847 	u64 init_burst;
98848 	u64 max_rate;
98849 	u64 min_rate;
98850 	u64 max_burst;
98851 	u64 min_burst;
98852 };
98853 
98854 struct devlink_trap_group {
98855 	const char *name;
98856 	u16 id;
98857 	bool generic;
98858 	u32 init_policer_id;
98859 };
98860 
98861 struct devlink_trap {
98862 	enum devlink_trap_type type;
98863 	enum devlink_trap_action init_action;
98864 	bool generic;
98865 	u16 id;
98866 	const char *name;
98867 	u16 init_group_id;
98868 	u32 metadata_cap;
98869 };
98870 
98871 enum devlink_trap_generic_id {
98872 	DEVLINK_TRAP_GENERIC_ID_SMAC_MC = 0,
98873 	DEVLINK_TRAP_GENERIC_ID_VLAN_TAG_MISMATCH = 1,
98874 	DEVLINK_TRAP_GENERIC_ID_INGRESS_VLAN_FILTER = 2,
98875 	DEVLINK_TRAP_GENERIC_ID_INGRESS_STP_FILTER = 3,
98876 	DEVLINK_TRAP_GENERIC_ID_EMPTY_TX_LIST = 4,
98877 	DEVLINK_TRAP_GENERIC_ID_PORT_LOOPBACK_FILTER = 5,
98878 	DEVLINK_TRAP_GENERIC_ID_BLACKHOLE_ROUTE = 6,
98879 	DEVLINK_TRAP_GENERIC_ID_TTL_ERROR = 7,
98880 	DEVLINK_TRAP_GENERIC_ID_TAIL_DROP = 8,
98881 	DEVLINK_TRAP_GENERIC_ID_NON_IP_PACKET = 9,
98882 	DEVLINK_TRAP_GENERIC_ID_UC_DIP_MC_DMAC = 10,
98883 	DEVLINK_TRAP_GENERIC_ID_DIP_LB = 11,
98884 	DEVLINK_TRAP_GENERIC_ID_SIP_MC = 12,
98885 	DEVLINK_TRAP_GENERIC_ID_SIP_LB = 13,
98886 	DEVLINK_TRAP_GENERIC_ID_CORRUPTED_IP_HDR = 14,
98887 	DEVLINK_TRAP_GENERIC_ID_IPV4_SIP_BC = 15,
98888 	DEVLINK_TRAP_GENERIC_ID_IPV6_MC_DIP_RESERVED_SCOPE = 16,
98889 	DEVLINK_TRAP_GENERIC_ID_IPV6_MC_DIP_INTERFACE_LOCAL_SCOPE = 17,
98890 	DEVLINK_TRAP_GENERIC_ID_MTU_ERROR = 18,
98891 	DEVLINK_TRAP_GENERIC_ID_UNRESOLVED_NEIGH = 19,
98892 	DEVLINK_TRAP_GENERIC_ID_RPF = 20,
98893 	DEVLINK_TRAP_GENERIC_ID_REJECT_ROUTE = 21,
98894 	DEVLINK_TRAP_GENERIC_ID_IPV4_LPM_UNICAST_MISS = 22,
98895 	DEVLINK_TRAP_GENERIC_ID_IPV6_LPM_UNICAST_MISS = 23,
98896 	DEVLINK_TRAP_GENERIC_ID_NON_ROUTABLE = 24,
98897 	DEVLINK_TRAP_GENERIC_ID_DECAP_ERROR = 25,
98898 	DEVLINK_TRAP_GENERIC_ID_OVERLAY_SMAC_MC = 26,
98899 	DEVLINK_TRAP_GENERIC_ID_INGRESS_FLOW_ACTION_DROP = 27,
98900 	DEVLINK_TRAP_GENERIC_ID_EGRESS_FLOW_ACTION_DROP = 28,
98901 	DEVLINK_TRAP_GENERIC_ID_STP = 29,
98902 	DEVLINK_TRAP_GENERIC_ID_LACP = 30,
98903 	DEVLINK_TRAP_GENERIC_ID_LLDP = 31,
98904 	DEVLINK_TRAP_GENERIC_ID_IGMP_QUERY = 32,
98905 	DEVLINK_TRAP_GENERIC_ID_IGMP_V1_REPORT = 33,
98906 	DEVLINK_TRAP_GENERIC_ID_IGMP_V2_REPORT = 34,
98907 	DEVLINK_TRAP_GENERIC_ID_IGMP_V3_REPORT = 35,
98908 	DEVLINK_TRAP_GENERIC_ID_IGMP_V2_LEAVE = 36,
98909 	DEVLINK_TRAP_GENERIC_ID_MLD_QUERY = 37,
98910 	DEVLINK_TRAP_GENERIC_ID_MLD_V1_REPORT = 38,
98911 	DEVLINK_TRAP_GENERIC_ID_MLD_V2_REPORT = 39,
98912 	DEVLINK_TRAP_GENERIC_ID_MLD_V1_DONE = 40,
98913 	DEVLINK_TRAP_GENERIC_ID_IPV4_DHCP = 41,
98914 	DEVLINK_TRAP_GENERIC_ID_IPV6_DHCP = 42,
98915 	DEVLINK_TRAP_GENERIC_ID_ARP_REQUEST = 43,
98916 	DEVLINK_TRAP_GENERIC_ID_ARP_RESPONSE = 44,
98917 	DEVLINK_TRAP_GENERIC_ID_ARP_OVERLAY = 45,
98918 	DEVLINK_TRAP_GENERIC_ID_IPV6_NEIGH_SOLICIT = 46,
98919 	DEVLINK_TRAP_GENERIC_ID_IPV6_NEIGH_ADVERT = 47,
98920 	DEVLINK_TRAP_GENERIC_ID_IPV4_BFD = 48,
98921 	DEVLINK_TRAP_GENERIC_ID_IPV6_BFD = 49,
98922 	DEVLINK_TRAP_GENERIC_ID_IPV4_OSPF = 50,
98923 	DEVLINK_TRAP_GENERIC_ID_IPV6_OSPF = 51,
98924 	DEVLINK_TRAP_GENERIC_ID_IPV4_BGP = 52,
98925 	DEVLINK_TRAP_GENERIC_ID_IPV6_BGP = 53,
98926 	DEVLINK_TRAP_GENERIC_ID_IPV4_VRRP = 54,
98927 	DEVLINK_TRAP_GENERIC_ID_IPV6_VRRP = 55,
98928 	DEVLINK_TRAP_GENERIC_ID_IPV4_PIM = 56,
98929 	DEVLINK_TRAP_GENERIC_ID_IPV6_PIM = 57,
98930 	DEVLINK_TRAP_GENERIC_ID_UC_LB = 58,
98931 	DEVLINK_TRAP_GENERIC_ID_LOCAL_ROUTE = 59,
98932 	DEVLINK_TRAP_GENERIC_ID_EXTERNAL_ROUTE = 60,
98933 	DEVLINK_TRAP_GENERIC_ID_IPV6_UC_DIP_LINK_LOCAL_SCOPE = 61,
98934 	DEVLINK_TRAP_GENERIC_ID_IPV6_DIP_ALL_NODES = 62,
98935 	DEVLINK_TRAP_GENERIC_ID_IPV6_DIP_ALL_ROUTERS = 63,
98936 	DEVLINK_TRAP_GENERIC_ID_IPV6_ROUTER_SOLICIT = 64,
98937 	DEVLINK_TRAP_GENERIC_ID_IPV6_ROUTER_ADVERT = 65,
98938 	DEVLINK_TRAP_GENERIC_ID_IPV6_REDIRECT = 66,
98939 	DEVLINK_TRAP_GENERIC_ID_IPV4_ROUTER_ALERT = 67,
98940 	DEVLINK_TRAP_GENERIC_ID_IPV6_ROUTER_ALERT = 68,
98941 	DEVLINK_TRAP_GENERIC_ID_PTP_EVENT = 69,
98942 	DEVLINK_TRAP_GENERIC_ID_PTP_GENERAL = 70,
98943 	DEVLINK_TRAP_GENERIC_ID_FLOW_ACTION_SAMPLE = 71,
98944 	DEVLINK_TRAP_GENERIC_ID_FLOW_ACTION_TRAP = 72,
98945 	DEVLINK_TRAP_GENERIC_ID_EARLY_DROP = 73,
98946 	DEVLINK_TRAP_GENERIC_ID_VXLAN_PARSING = 74,
98947 	DEVLINK_TRAP_GENERIC_ID_LLC_SNAP_PARSING = 75,
98948 	DEVLINK_TRAP_GENERIC_ID_VLAN_PARSING = 76,
98949 	DEVLINK_TRAP_GENERIC_ID_PPPOE_PPP_PARSING = 77,
98950 	DEVLINK_TRAP_GENERIC_ID_MPLS_PARSING = 78,
98951 	DEVLINK_TRAP_GENERIC_ID_ARP_PARSING = 79,
98952 	DEVLINK_TRAP_GENERIC_ID_IP_1_PARSING = 80,
98953 	DEVLINK_TRAP_GENERIC_ID_IP_N_PARSING = 81,
98954 	DEVLINK_TRAP_GENERIC_ID_GRE_PARSING = 82,
98955 	DEVLINK_TRAP_GENERIC_ID_UDP_PARSING = 83,
98956 	DEVLINK_TRAP_GENERIC_ID_TCP_PARSING = 84,
98957 	DEVLINK_TRAP_GENERIC_ID_IPSEC_PARSING = 85,
98958 	DEVLINK_TRAP_GENERIC_ID_SCTP_PARSING = 86,
98959 	DEVLINK_TRAP_GENERIC_ID_DCCP_PARSING = 87,
98960 	DEVLINK_TRAP_GENERIC_ID_GTP_PARSING = 88,
98961 	DEVLINK_TRAP_GENERIC_ID_ESP_PARSING = 89,
98962 	DEVLINK_TRAP_GENERIC_ID_BLACKHOLE_NEXTHOP = 90,
98963 	DEVLINK_TRAP_GENERIC_ID_DMAC_FILTER = 91,
98964 	DEVLINK_TRAP_GENERIC_ID_EAPOL = 92,
98965 	DEVLINK_TRAP_GENERIC_ID_LOCKED_PORT = 93,
98966 	__DEVLINK_TRAP_GENERIC_ID_MAX = 94,
98967 	DEVLINK_TRAP_GENERIC_ID_MAX = 93,
98968 };
98969 
98970 enum devlink_trap_group_generic_id {
98971 	DEVLINK_TRAP_GROUP_GENERIC_ID_L2_DROPS = 0,
98972 	DEVLINK_TRAP_GROUP_GENERIC_ID_L3_DROPS = 1,
98973 	DEVLINK_TRAP_GROUP_GENERIC_ID_L3_EXCEPTIONS = 2,
98974 	DEVLINK_TRAP_GROUP_GENERIC_ID_BUFFER_DROPS = 3,
98975 	DEVLINK_TRAP_GROUP_GENERIC_ID_TUNNEL_DROPS = 4,
98976 	DEVLINK_TRAP_GROUP_GENERIC_ID_ACL_DROPS = 5,
98977 	DEVLINK_TRAP_GROUP_GENERIC_ID_STP = 6,
98978 	DEVLINK_TRAP_GROUP_GENERIC_ID_LACP = 7,
98979 	DEVLINK_TRAP_GROUP_GENERIC_ID_LLDP = 8,
98980 	DEVLINK_TRAP_GROUP_GENERIC_ID_MC_SNOOPING = 9,
98981 	DEVLINK_TRAP_GROUP_GENERIC_ID_DHCP = 10,
98982 	DEVLINK_TRAP_GROUP_GENERIC_ID_NEIGH_DISCOVERY = 11,
98983 	DEVLINK_TRAP_GROUP_GENERIC_ID_BFD = 12,
98984 	DEVLINK_TRAP_GROUP_GENERIC_ID_OSPF = 13,
98985 	DEVLINK_TRAP_GROUP_GENERIC_ID_BGP = 14,
98986 	DEVLINK_TRAP_GROUP_GENERIC_ID_VRRP = 15,
98987 	DEVLINK_TRAP_GROUP_GENERIC_ID_PIM = 16,
98988 	DEVLINK_TRAP_GROUP_GENERIC_ID_UC_LB = 17,
98989 	DEVLINK_TRAP_GROUP_GENERIC_ID_LOCAL_DELIVERY = 18,
98990 	DEVLINK_TRAP_GROUP_GENERIC_ID_EXTERNAL_DELIVERY = 19,
98991 	DEVLINK_TRAP_GROUP_GENERIC_ID_IPV6 = 20,
98992 	DEVLINK_TRAP_GROUP_GENERIC_ID_PTP_EVENT = 21,
98993 	DEVLINK_TRAP_GROUP_GENERIC_ID_PTP_GENERAL = 22,
98994 	DEVLINK_TRAP_GROUP_GENERIC_ID_ACL_SAMPLE = 23,
98995 	DEVLINK_TRAP_GROUP_GENERIC_ID_ACL_TRAP = 24,
98996 	DEVLINK_TRAP_GROUP_GENERIC_ID_PARSER_ERROR_DROPS = 25,
98997 	DEVLINK_TRAP_GROUP_GENERIC_ID_EAPOL = 26,
98998 	__DEVLINK_TRAP_GROUP_GENERIC_ID_MAX = 27,
98999 	DEVLINK_TRAP_GROUP_GENERIC_ID_MAX = 26,
99000 };
99001 
99002 enum {
99003 	DEVLINK_F_RELOAD = 1,
99004 };
99005 
99006 struct devlink_info_req;
99007 
99008 struct devlink_ops {
99009 	u32 supported_flash_update_params;
99010 	long unsigned int reload_actions;
99011 	long unsigned int reload_limits;
99012 	int (*reload_down)(struct devlink *, bool, enum devlink_reload_action, enum devlink_reload_limit, struct netlink_ext_ack *);
99013 	int (*reload_up)(struct devlink *, enum devlink_reload_action, enum devlink_reload_limit, u32 *, struct netlink_ext_ack *);
99014 	int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
99015 	int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *);
99016 	int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *);
99017 	int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
99018 	int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
99019 	int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
99020 	int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
99021 	int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
99022 	int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
99023 	int (*sb_occ_snapshot)(struct devlink *, unsigned int);
99024 	int (*sb_occ_max_clear)(struct devlink *, unsigned int);
99025 	int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
99026 	int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
99027 	int (*eswitch_mode_get)(struct devlink *, u16 *);
99028 	int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
99029 	int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
99030 	int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
99031 	int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
99032 	int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
99033 	int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
99034 	int (*flash_update)(struct devlink *, struct devlink_flash_update_params *, struct netlink_ext_ack *);
99035 	int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
99036 	void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
99037 	int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action, struct netlink_ext_ack *);
99038 	int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
99039 	int (*trap_group_set)(struct devlink *, const struct devlink_trap_group *, const struct devlink_trap_policer *, struct netlink_ext_ack *);
99040 	int (*trap_group_action_set)(struct devlink *, const struct devlink_trap_group *, enum devlink_trap_action, struct netlink_ext_ack *);
99041 	int (*trap_drop_counter_get)(struct devlink *, const struct devlink_trap *, u64 *);
99042 	int (*trap_policer_init)(struct devlink *, const struct devlink_trap_policer *);
99043 	void (*trap_policer_fini)(struct devlink *, const struct devlink_trap_policer *);
99044 	int (*trap_policer_set)(struct devlink *, const struct devlink_trap_policer *, u64, u64, struct netlink_ext_ack *);
99045 	int (*trap_policer_counter_get)(struct devlink *, const struct devlink_trap_policer *, u64 *);
99046 	int (*port_function_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *);
99047 	int (*port_function_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *);
99048 	int (*port_fn_roce_get)(struct devlink_port *, bool *, struct netlink_ext_ack *);
99049 	int (*port_fn_roce_set)(struct devlink_port *, bool, struct netlink_ext_ack *);
99050 	int (*port_fn_migratable_get)(struct devlink_port *, bool *, struct netlink_ext_ack *);
99051 	int (*port_fn_migratable_set)(struct devlink_port *, bool, struct netlink_ext_ack *);
99052 	int (*port_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, unsigned int *);
99053 	int (*port_del)(struct devlink *, unsigned int, struct netlink_ext_ack *);
99054 	int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *);
99055 	int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *);
99056 	int (*rate_leaf_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
99057 	int (*rate_leaf_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
99058 	int (*rate_leaf_tx_priority_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
99059 	int (*rate_leaf_tx_weight_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
99060 	int (*rate_node_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
99061 	int (*rate_node_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
99062 	int (*rate_node_tx_priority_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
99063 	int (*rate_node_tx_weight_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
99064 	int (*rate_node_new)(struct devlink_rate *, void **, struct netlink_ext_ack *);
99065 	int (*rate_node_del)(struct devlink_rate *, void *, struct netlink_ext_ack *);
99066 	int (*rate_leaf_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *);
99067 	int (*rate_node_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *);
99068 	bool (*selftest_check)(struct devlink *, unsigned int, struct netlink_ext_ack *);
99069 	enum devlink_selftest_status (*selftest_run)(struct devlink *, unsigned int, struct netlink_ext_ack *);
99070 };
99071 
99072 enum devlink_info_version_type {
99073 	DEVLINK_INFO_VERSION_TYPE_NONE = 0,
99074 	DEVLINK_INFO_VERSION_TYPE_COMPONENT = 1,
99075 };
99076 
99077 struct devlink_info_req {
99078 	struct sk_buff *msg;
99079 	void (*version_cb)(const char *, enum devlink_info_version_type, void *);
99080 	void *version_cb_priv;
99081 };
99082 
99083 struct trace_event_raw_devlink_hwmsg {
99084 	struct trace_entry ent;
99085 	u32 __data_loc_bus_name;
99086 	u32 __data_loc_dev_name;
99087 	u32 __data_loc_driver_name;
99088 	bool incoming;
99089 	long unsigned int type;
99090 	u32 __data_loc_buf;
99091 	size_t len;
99092 	char __data[0];
99093 };
99094 
99095 struct trace_event_raw_devlink_hwerr {
99096 	struct trace_entry ent;
99097 	u32 __data_loc_bus_name;
99098 	u32 __data_loc_dev_name;
99099 	u32 __data_loc_driver_name;
99100 	int err;
99101 	u32 __data_loc_msg;
99102 	char __data[0];
99103 };
99104 
99105 struct trace_event_raw_devlink_health_report {
99106 	struct trace_entry ent;
99107 	u32 __data_loc_bus_name;
99108 	u32 __data_loc_dev_name;
99109 	u32 __data_loc_driver_name;
99110 	u32 __data_loc_reporter_name;
99111 	u32 __data_loc_msg;
99112 	char __data[0];
99113 };
99114 
99115 struct trace_event_raw_devlink_health_recover_aborted {
99116 	struct trace_entry ent;
99117 	u32 __data_loc_bus_name;
99118 	u32 __data_loc_dev_name;
99119 	u32 __data_loc_driver_name;
99120 	u32 __data_loc_reporter_name;
99121 	bool health_state;
99122 	u64 time_since_last_recover;
99123 	char __data[0];
99124 };
99125 
99126 struct trace_event_raw_devlink_health_reporter_state_update {
99127 	struct trace_entry ent;
99128 	u32 __data_loc_bus_name;
99129 	u32 __data_loc_dev_name;
99130 	u32 __data_loc_driver_name;
99131 	u32 __data_loc_reporter_name;
99132 	u8 new_state;
99133 	char __data[0];
99134 };
99135 
99136 struct trace_event_raw_devlink_trap_report {
99137 	struct trace_entry ent;
99138 	u32 __data_loc_bus_name;
99139 	u32 __data_loc_dev_name;
99140 	u32 __data_loc_driver_name;
99141 	u32 __data_loc_trap_name;
99142 	u32 __data_loc_trap_group_name;
99143 	char input_dev_name[16];
99144 	char __data[0];
99145 };
99146 
99147 struct trace_event_data_offsets_devlink_hwmsg {
99148 	u32 bus_name;
99149 	u32 dev_name;
99150 	u32 driver_name;
99151 	u32 buf;
99152 };
99153 
99154 struct trace_event_data_offsets_devlink_hwerr {
99155 	u32 bus_name;
99156 	u32 dev_name;
99157 	u32 driver_name;
99158 	u32 msg;
99159 };
99160 
99161 struct trace_event_data_offsets_devlink_health_report {
99162 	u32 bus_name;
99163 	u32 dev_name;
99164 	u32 driver_name;
99165 	u32 reporter_name;
99166 	u32 msg;
99167 };
99168 
99169 struct trace_event_data_offsets_devlink_health_recover_aborted {
99170 	u32 bus_name;
99171 	u32 dev_name;
99172 	u32 driver_name;
99173 	u32 reporter_name;
99174 };
99175 
99176 struct trace_event_data_offsets_devlink_health_reporter_state_update {
99177 	u32 bus_name;
99178 	u32 dev_name;
99179 	u32 driver_name;
99180 	u32 reporter_name;
99181 };
99182 
99183 struct trace_event_data_offsets_devlink_trap_report {
99184 	u32 bus_name;
99185 	u32 dev_name;
99186 	u32 driver_name;
99187 	u32 trap_name;
99188 	u32 trap_group_name;
99189 };
99190 
99191 typedef void (*btf_trace_devlink_hwmsg)(void *, const struct devlink *, bool, long unsigned int, const u8 *, size_t);
99192 
99193 typedef void (*btf_trace_devlink_hwerr)(void *, const struct devlink *, int, const char *);
99194 
99195 typedef void (*btf_trace_devlink_health_report)(void *, const struct devlink *, const char *, const char *);
99196 
99197 typedef void (*btf_trace_devlink_health_recover_aborted)(void *, const struct devlink *, const char *, bool, u64);
99198 
99199 typedef void (*btf_trace_devlink_health_reporter_state_update)(void *, const struct devlink *, const char *, bool);
99200 
99201 typedef void (*btf_trace_devlink_trap_report)(void *, const struct devlink *, struct sk_buff *, const struct devlink_trap_metadata *);
99202 
99203 struct devlink_linecard_type {
99204 	const char *type;
99205 	const void *priv;
99206 };
99207 
99208 struct devlink_resource {
99209 	const char *name;
99210 	u64 id;
99211 	u64 size;
99212 	u64 size_new;
99213 	bool size_valid;
99214 	struct devlink_resource *parent;
99215 	struct devlink_resource_size_params size_params;
99216 	struct list_head list;
99217 	struct list_head resource_list;
99218 	devlink_resource_occ_get_t *occ_get;
99219 	void *occ_get_priv;
99220 };
99221 
99222 struct devlink_sb {
99223 	struct list_head list;
99224 	unsigned int index;
99225 	u32 size;
99226 	u16 ingress_pools_count;
99227 	u16 egress_pools_count;
99228 	u16 ingress_tc_count;
99229 	u16 egress_tc_count;
99230 };
99231 
99232 struct devlink_region {
99233 	struct devlink *devlink;
99234 	struct devlink_port *port;
99235 	struct list_head list;
99236 	union {
99237 		const struct devlink_region_ops *ops;
99238 		const struct devlink_port_region_ops *port_ops;
99239 	};
99240 	struct mutex snapshot_lock;
99241 	struct list_head snapshot_list;
99242 	u32 max_snapshots;
99243 	u32 cur_snapshots;
99244 	u64 size;
99245 };
99246 
99247 struct devlink_snapshot {
99248 	struct list_head list;
99249 	struct devlink_region *region;
99250 	u8 *data;
99251 	u32 id;
99252 };
99253 
99254 enum devlink_multicast_groups {
99255 	DEVLINK_MCGRP_CONFIG = 0,
99256 };
99257 
99258 struct devlink_reload_combination {
99259 	enum devlink_reload_action action;
99260 	enum devlink_reload_limit limit;
99261 };
99262 
99263 struct devlink_flash_component_lookup_ctx {
99264 	const char *lookup_name;
99265 	bool lookup_name_found;
99266 };
99267 
99268 typedef int devlink_chunk_fill_t(void *, u8 *, u32, u64, struct netlink_ext_ack *);
99269 
99270 struct devlink_fmsg_item {
99271 	struct list_head list;
99272 	int attrtype;
99273 	u8 nla_type;
99274 	u16 len;
99275 	int value[0];
99276 };
99277 
99278 struct devlink_stats {
99279 	u64_stats_t rx_bytes;
99280 	u64_stats_t rx_packets;
99281 	struct u64_stats_sync syncp;
99282 };
99283 
99284 struct devlink_trap_policer_item {
99285 	const struct devlink_trap_policer *policer;
99286 	u64 rate;
99287 	u64 burst;
99288 	struct list_head list;
99289 };
99290 
99291 struct devlink_trap_group_item {
99292 	const struct devlink_trap_group *group;
99293 	struct devlink_trap_policer_item *policer_item;
99294 	struct list_head list;
99295 	struct devlink_stats *stats;
99296 };
99297 
99298 struct devlink_trap_item {
99299 	const struct devlink_trap *trap;
99300 	struct devlink_trap_group_item *group_item;
99301 	struct list_head list;
99302 	enum devlink_trap_action action;
99303 	struct devlink_stats *stats;
99304 	void *priv;
99305 };
99306 
99307 struct tc_prio_qopt {
99308 	int bands;
99309 	__u8 priomap[16];
99310 };
99311 
99312 struct skb_array {
99313 	struct ptr_ring ring;
99314 };
99315 
99316 struct psched_ratecfg {
99317 	u64 rate_bytes_ps;
99318 	u32 mult;
99319 	u16 overhead;
99320 	u16 mpu;
99321 	u8 linklayer;
99322 	u8 shift;
99323 };
99324 
99325 struct psched_pktrate {
99326 	u64 rate_pkts_ps;
99327 	u32 mult;
99328 	u8 shift;
99329 };
99330 
99331 struct mini_Qdisc_pair {
99332 	struct mini_Qdisc miniq1;
99333 	struct mini_Qdisc miniq2;
99334 	struct mini_Qdisc **p_miniq;
99335 };
99336 
99337 struct pfifo_fast_priv {
99338 	struct skb_array q[3];
99339 };
99340 
99341 enum {
99342 	TCA_ACT_UNSPEC = 0,
99343 	TCA_ACT_KIND = 1,
99344 	TCA_ACT_OPTIONS = 2,
99345 	TCA_ACT_INDEX = 3,
99346 	TCA_ACT_STATS = 4,
99347 	TCA_ACT_PAD = 5,
99348 	TCA_ACT_COOKIE = 6,
99349 	TCA_ACT_FLAGS = 7,
99350 	TCA_ACT_HW_STATS = 8,
99351 	TCA_ACT_USED_HW_STATS = 9,
99352 	TCA_ACT_IN_HW_COUNT = 10,
99353 	__TCA_ACT_MAX = 11,
99354 };
99355 
99356 struct tcamsg {
99357 	unsigned char tca_family;
99358 	unsigned char tca__pad1;
99359 	short unsigned int tca__pad2;
99360 };
99361 
99362 enum {
99363 	TCA_ROOT_UNSPEC = 0,
99364 	TCA_ROOT_TAB = 1,
99365 	TCA_ROOT_FLAGS = 2,
99366 	TCA_ROOT_COUNT = 3,
99367 	TCA_ROOT_TIME_DELTA = 4,
99368 	__TCA_ROOT_MAX = 5,
99369 };
99370 
99371 struct tc_action_net {
99372 	struct tcf_idrinfo *idrinfo;
99373 	const struct tc_action_ops *ops;
99374 };
99375 
99376 enum pedit_header_type {
99377 	TCA_PEDIT_KEY_EX_HDR_TYPE_NETWORK = 0,
99378 	TCA_PEDIT_KEY_EX_HDR_TYPE_ETH = 1,
99379 	TCA_PEDIT_KEY_EX_HDR_TYPE_IP4 = 2,
99380 	TCA_PEDIT_KEY_EX_HDR_TYPE_IP6 = 3,
99381 	TCA_PEDIT_KEY_EX_HDR_TYPE_TCP = 4,
99382 	TCA_PEDIT_KEY_EX_HDR_TYPE_UDP = 5,
99383 	__PEDIT_HDR_TYPE_MAX = 6,
99384 };
99385 
99386 enum pedit_cmd {
99387 	TCA_PEDIT_KEY_EX_CMD_SET = 0,
99388 	TCA_PEDIT_KEY_EX_CMD_ADD = 1,
99389 	__PEDIT_CMD_MAX = 2,
99390 };
99391 
99392 struct tc_pedit_key {
99393 	__u32 mask;
99394 	__u32 val;
99395 	__u32 off;
99396 	__u32 at;
99397 	__u32 offmask;
99398 	__u32 shift;
99399 };
99400 
99401 struct tcf_pedit_key_ex {
99402 	enum pedit_header_type htype;
99403 	enum pedit_cmd cmd;
99404 };
99405 
99406 struct tcf_pedit {
99407 	struct tc_action common;
99408 	unsigned char tcfp_nkeys;
99409 	unsigned char tcfp_flags;
99410 	u32 tcfp_off_max_hint;
99411 	struct tc_pedit_key *tcfp_keys;
99412 	struct tcf_pedit_key_ex *tcfp_keys_ex;
99413 	long: 64;
99414 };
99415 
99416 struct tc_act_pernet_id {
99417 	struct list_head list;
99418 	unsigned int id;
99419 };
99420 
99421 enum netlink_attribute_type {
99422 	NL_ATTR_TYPE_INVALID = 0,
99423 	NL_ATTR_TYPE_FLAG = 1,
99424 	NL_ATTR_TYPE_U8 = 2,
99425 	NL_ATTR_TYPE_U16 = 3,
99426 	NL_ATTR_TYPE_U32 = 4,
99427 	NL_ATTR_TYPE_U64 = 5,
99428 	NL_ATTR_TYPE_S8 = 6,
99429 	NL_ATTR_TYPE_S16 = 7,
99430 	NL_ATTR_TYPE_S32 = 8,
99431 	NL_ATTR_TYPE_S64 = 9,
99432 	NL_ATTR_TYPE_BINARY = 10,
99433 	NL_ATTR_TYPE_STRING = 11,
99434 	NL_ATTR_TYPE_NUL_STRING = 12,
99435 	NL_ATTR_TYPE_NESTED = 13,
99436 	NL_ATTR_TYPE_NESTED_ARRAY = 14,
99437 	NL_ATTR_TYPE_BITFIELD32 = 15,
99438 };
99439 
99440 enum netlink_policy_type_attr {
99441 	NL_POLICY_TYPE_ATTR_UNSPEC = 0,
99442 	NL_POLICY_TYPE_ATTR_TYPE = 1,
99443 	NL_POLICY_TYPE_ATTR_MIN_VALUE_S = 2,
99444 	NL_POLICY_TYPE_ATTR_MAX_VALUE_S = 3,
99445 	NL_POLICY_TYPE_ATTR_MIN_VALUE_U = 4,
99446 	NL_POLICY_TYPE_ATTR_MAX_VALUE_U = 5,
99447 	NL_POLICY_TYPE_ATTR_MIN_LENGTH = 6,
99448 	NL_POLICY_TYPE_ATTR_MAX_LENGTH = 7,
99449 	NL_POLICY_TYPE_ATTR_POLICY_IDX = 8,
99450 	NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE = 9,
99451 	NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 10,
99452 	NL_POLICY_TYPE_ATTR_PAD = 11,
99453 	NL_POLICY_TYPE_ATTR_MASK = 12,
99454 	__NL_POLICY_TYPE_ATTR_MAX = 13,
99455 	NL_POLICY_TYPE_ATTR_MAX = 12,
99456 };
99457 
99458 struct netlink_policy_dump_state {
99459 	unsigned int policy_idx;
99460 	unsigned int attr_idx;
99461 	unsigned int n_alloc;
99462 	struct {
99463 		const struct nla_policy *policy;
99464 		unsigned int maxtype;
99465 	} policies[0];
99466 };
99467 
99468 struct bpf_cg_run_ctx {
99469 	struct bpf_run_ctx run_ctx;
99470 	const struct bpf_prog_array_item *prog_item;
99471 	int retval;
99472 };
99473 
99474 struct trace_event_raw_bpf_test_finish {
99475 	struct trace_entry ent;
99476 	int err;
99477 	char __data[0];
99478 };
99479 
99480 struct trace_event_data_offsets_bpf_test_finish {};
99481 
99482 typedef void (*btf_trace_bpf_test_finish)(void *, int *);
99483 
99484 struct bpf_test_timer {
99485 	enum {
99486 		NO_PREEMPT = 0,
99487 		NO_MIGRATE = 1,
99488 	} mode;
99489 	u32 i;
99490 	u64 time_start;
99491 	u64 time_spent;
99492 };
99493 
99494 struct xdp_page_head {
99495 	struct xdp_buff orig_ctx;
99496 	struct xdp_buff ctx;
99497 	struct xdp_frame frm;
99498 	u8 data[0];
99499 };
99500 
99501 struct xdp_test_data {
99502 	struct xdp_buff *orig_ctx;
99503 	long: 64;
99504 	long: 64;
99505 	long: 64;
99506 	long: 64;
99507 	long: 64;
99508 	long: 64;
99509 	long: 64;
99510 	struct xdp_rxq_info rxq;
99511 	struct net_device *dev;
99512 	struct page_pool *pp;
99513 	struct xdp_frame **frames;
99514 	struct sk_buff **skbs;
99515 	struct xdp_mem_info mem;
99516 	u32 batch_size;
99517 	u32 frame_cnt;
99518 	long: 64;
99519 	long: 64;
99520 };
99521 
99522 struct bpf_fentry_test_t {
99523 	struct bpf_fentry_test_t *a;
99524 };
99525 
99526 struct prog_test_member1 {
99527 	int a;
99528 };
99529 
99530 struct prog_test_member {
99531 	struct prog_test_member1 m;
99532 	int c;
99533 };
99534 
99535 struct prog_test_ref_kfunc {
99536 	int a;
99537 	int b;
99538 	struct prog_test_member memb;
99539 	struct prog_test_ref_kfunc *next;
99540 	refcount_t cnt;
99541 };
99542 
99543 struct prog_test_pass1 {
99544 	int x0;
99545 	struct {
99546 		int x1;
99547 		struct {
99548 			int x2;
99549 			struct {
99550 				int x3;
99551 			};
99552 		};
99553 	};
99554 };
99555 
99556 struct prog_test_pass2 {
99557 	int len;
99558 	short int arr1[4];
99559 	struct {
99560 		char arr2[4];
99561 		long unsigned int arr3[8];
99562 	} x;
99563 };
99564 
99565 struct prog_test_fail1 {
99566 	void *p;
99567 	int x;
99568 };
99569 
99570 struct prog_test_fail2 {
99571 	int x8;
99572 	struct prog_test_pass1 x;
99573 };
99574 
99575 struct prog_test_fail3 {
99576 	int len;
99577 	char arr1[2];
99578 	char arr2[0];
99579 };
99580 
99581 struct bpf_raw_tp_test_run_info {
99582 	struct bpf_prog *prog;
99583 	void *ctx;
99584 	u32 retval;
99585 };
99586 
99587 enum {
99588 	ETHTOOL_A_BITSET_BIT_UNSPEC = 0,
99589 	ETHTOOL_A_BITSET_BIT_INDEX = 1,
99590 	ETHTOOL_A_BITSET_BIT_NAME = 2,
99591 	ETHTOOL_A_BITSET_BIT_VALUE = 3,
99592 	__ETHTOOL_A_BITSET_BIT_CNT = 4,
99593 	ETHTOOL_A_BITSET_BIT_MAX = 3,
99594 };
99595 
99596 enum {
99597 	ETHTOOL_A_BITSET_BITS_UNSPEC = 0,
99598 	ETHTOOL_A_BITSET_BITS_BIT = 1,
99599 	__ETHTOOL_A_BITSET_BITS_CNT = 2,
99600 	ETHTOOL_A_BITSET_BITS_MAX = 1,
99601 };
99602 
99603 enum {
99604 	ETHTOOL_A_BITSET_UNSPEC = 0,
99605 	ETHTOOL_A_BITSET_NOMASK = 1,
99606 	ETHTOOL_A_BITSET_SIZE = 2,
99607 	ETHTOOL_A_BITSET_BITS = 3,
99608 	ETHTOOL_A_BITSET_VALUE = 4,
99609 	ETHTOOL_A_BITSET_MASK = 5,
99610 	__ETHTOOL_A_BITSET_CNT = 6,
99611 	ETHTOOL_A_BITSET_MAX = 5,
99612 };
99613 
99614 struct linkmodes_reply_data {
99615 	struct ethnl_reply_data base;
99616 	struct ethtool_link_ksettings ksettings;
99617 	struct ethtool_link_settings *lsettings;
99618 	bool peer_empty;
99619 };
99620 
99621 struct features_reply_data {
99622 	struct ethnl_reply_data base;
99623 	u32 hw[2];
99624 	u32 wanted[2];
99625 	u32 active[2];
99626 	u32 nochange[2];
99627 	u32 all[2];
99628 };
99629 
99630 struct coalesce_reply_data {
99631 	struct ethnl_reply_data base;
99632 	struct ethtool_coalesce coalesce;
99633 	struct kernel_ethtool_coalesce kernel_coalesce;
99634 	u32 supported_params;
99635 };
99636 
99637 enum {
99638 	ETHTOOL_A_CABLE_PAIR_A = 0,
99639 	ETHTOOL_A_CABLE_PAIR_B = 1,
99640 	ETHTOOL_A_CABLE_PAIR_C = 2,
99641 	ETHTOOL_A_CABLE_PAIR_D = 3,
99642 };
99643 
99644 enum {
99645 	ETHTOOL_A_CABLE_RESULT_UNSPEC = 0,
99646 	ETHTOOL_A_CABLE_RESULT_PAIR = 1,
99647 	ETHTOOL_A_CABLE_RESULT_CODE = 2,
99648 	__ETHTOOL_A_CABLE_RESULT_CNT = 3,
99649 	ETHTOOL_A_CABLE_RESULT_MAX = 2,
99650 };
99651 
99652 enum {
99653 	ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC = 0,
99654 	ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR = 1,
99655 	ETHTOOL_A_CABLE_FAULT_LENGTH_CM = 2,
99656 	__ETHTOOL_A_CABLE_FAULT_LENGTH_CNT = 3,
99657 	ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = 2,
99658 };
99659 
99660 enum {
99661 	ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC = 0,
99662 	ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED = 1,
99663 	ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED = 2,
99664 };
99665 
99666 enum {
99667 	ETHTOOL_A_CABLE_NEST_UNSPEC = 0,
99668 	ETHTOOL_A_CABLE_NEST_RESULT = 1,
99669 	ETHTOOL_A_CABLE_NEST_FAULT_LENGTH = 2,
99670 	__ETHTOOL_A_CABLE_NEST_CNT = 3,
99671 	ETHTOOL_A_CABLE_NEST_MAX = 2,
99672 };
99673 
99674 enum {
99675 	ETHTOOL_A_CABLE_TEST_NTF_UNSPEC = 0,
99676 	ETHTOOL_A_CABLE_TEST_NTF_HEADER = 1,
99677 	ETHTOOL_A_CABLE_TEST_NTF_STATUS = 2,
99678 	ETHTOOL_A_CABLE_TEST_NTF_NEST = 3,
99679 	__ETHTOOL_A_CABLE_TEST_NTF_CNT = 4,
99680 	ETHTOOL_A_CABLE_TEST_NTF_MAX = 3,
99681 };
99682 
99683 enum {
99684 	ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC = 0,
99685 	ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST = 1,
99686 	ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST = 2,
99687 	ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP = 3,
99688 	ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR = 4,
99689 	__ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT = 5,
99690 	ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = 4,
99691 };
99692 
99693 enum {
99694 	ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC = 0,
99695 	ETHTOOL_A_CABLE_AMPLITUDE_PAIR = 1,
99696 	ETHTOOL_A_CABLE_AMPLITUDE_mV = 2,
99697 	__ETHTOOL_A_CABLE_AMPLITUDE_CNT = 3,
99698 	ETHTOOL_A_CABLE_AMPLITUDE_MAX = 2,
99699 };
99700 
99701 enum {
99702 	ETHTOOL_A_CABLE_PULSE_UNSPEC = 0,
99703 	ETHTOOL_A_CABLE_PULSE_mV = 1,
99704 	__ETHTOOL_A_CABLE_PULSE_CNT = 2,
99705 	ETHTOOL_A_CABLE_PULSE_MAX = 1,
99706 };
99707 
99708 enum {
99709 	ETHTOOL_A_CABLE_STEP_UNSPEC = 0,
99710 	ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE = 1,
99711 	ETHTOOL_A_CABLE_STEP_LAST_DISTANCE = 2,
99712 	ETHTOOL_A_CABLE_STEP_STEP_DISTANCE = 3,
99713 	__ETHTOOL_A_CABLE_STEP_CNT = 4,
99714 	ETHTOOL_A_CABLE_STEP_MAX = 3,
99715 };
99716 
99717 enum {
99718 	ETHTOOL_A_CABLE_TDR_NEST_UNSPEC = 0,
99719 	ETHTOOL_A_CABLE_TDR_NEST_STEP = 1,
99720 	ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE = 2,
99721 	ETHTOOL_A_CABLE_TDR_NEST_PULSE = 3,
99722 	__ETHTOOL_A_CABLE_TDR_NEST_CNT = 4,
99723 	ETHTOOL_A_CABLE_TDR_NEST_MAX = 3,
99724 };
99725 
99726 enum {
99727 	ETHTOOL_A_STATS_GRP_UNSPEC = 0,
99728 	ETHTOOL_A_STATS_GRP_PAD = 1,
99729 	ETHTOOL_A_STATS_GRP_ID = 2,
99730 	ETHTOOL_A_STATS_GRP_SS_ID = 3,
99731 	ETHTOOL_A_STATS_GRP_STAT = 4,
99732 	ETHTOOL_A_STATS_GRP_HIST_RX = 5,
99733 	ETHTOOL_A_STATS_GRP_HIST_TX = 6,
99734 	ETHTOOL_A_STATS_GRP_HIST_BKT_LOW = 7,
99735 	ETHTOOL_A_STATS_GRP_HIST_BKT_HI = 8,
99736 	ETHTOOL_A_STATS_GRP_HIST_VAL = 9,
99737 	__ETHTOOL_A_STATS_GRP_CNT = 10,
99738 	ETHTOOL_A_STATS_GRP_MAX = 4,
99739 };
99740 
99741 struct stats_req_info {
99742 	struct ethnl_req_info base;
99743 	long unsigned int stat_mask[1];
99744 };
99745 
99746 struct stats_reply_data {
99747 	struct ethnl_reply_data base;
99748 	union {
99749 		struct {
99750 			struct ethtool_eth_phy_stats phy_stats;
99751 			struct ethtool_eth_mac_stats mac_stats;
99752 			struct ethtool_eth_ctrl_stats ctrl_stats;
99753 			struct ethtool_rmon_stats rmon_stats;
99754 		};
99755 		struct {
99756 			struct ethtool_eth_phy_stats phy_stats;
99757 			struct ethtool_eth_mac_stats mac_stats;
99758 			struct ethtool_eth_ctrl_stats ctrl_stats;
99759 			struct ethtool_rmon_stats rmon_stats;
99760 		} stats;
99761 	};
99762 	const struct ethtool_rmon_hist_range *rmon_ranges;
99763 };
99764 
99765 struct nf_hook_entries_rcu_head {
99766 	struct callback_head head;
99767 	void *allocation;
99768 };
99769 
99770 struct nf_conntrack_zone {
99771 	u16 id;
99772 	u8 flags;
99773 	u8 dir;
99774 };
99775 
99776 struct nf_conntrack_tuple;
99777 
99778 struct nf_ct_hook {
99779 	int (*update)(struct net *, struct sk_buff *);
99780 	void (*destroy)(struct nf_conntrack *);
99781 	bool (*get_tuple_skb)(struct nf_conntrack_tuple *, const struct sk_buff *);
99782 	void (*attach)(struct sk_buff *, const struct sk_buff *);
99783 };
99784 
99785 struct nfnl_ct_hook {
99786 	size_t (*build_size)(const struct nf_conn *);
99787 	int (*build)(struct sk_buff *, struct nf_conn *, enum ip_conntrack_info, u_int16_t, u_int16_t);
99788 	int (*parse)(const struct nlattr *, struct nf_conn *);
99789 	int (*attach_expect)(const struct nlattr *, struct nf_conn *, u32, u32);
99790 	void (*seq_adjust)(struct sk_buff *, struct nf_conn *, enum ip_conntrack_info, s32);
99791 };
99792 
99793 struct rt_cache_stat {
99794 	unsigned int in_slow_tot;
99795 	unsigned int in_slow_mc;
99796 	unsigned int in_no_route;
99797 	unsigned int in_brd;
99798 	unsigned int in_martian_dst;
99799 	unsigned int in_martian_src;
99800 	unsigned int out_slow_tot;
99801 	unsigned int out_slow_mc;
99802 };
99803 
99804 struct ip_fraglist_iter {
99805 	struct sk_buff *frag;
99806 	struct iphdr *iph;
99807 	int offset;
99808 	unsigned int hlen;
99809 };
99810 
99811 struct ip_frag_state {
99812 	bool DF;
99813 	unsigned int hlen;
99814 	unsigned int ll_rs;
99815 	unsigned int mtu;
99816 	unsigned int left;
99817 	int offset;
99818 	int ptr;
99819 	__be16 not_last_frag;
99820 };
99821 
99822 struct ip_reply_arg {
99823 	struct kvec iov[1];
99824 	int flags;
99825 	__wsum csum;
99826 	int csumoffset;
99827 	int bound_dev_if;
99828 	u8 tos;
99829 	kuid_t uid;
99830 };
99831 
99832 enum tcp_metric_index {
99833 	TCP_METRIC_RTT = 0,
99834 	TCP_METRIC_RTTVAR = 1,
99835 	TCP_METRIC_SSTHRESH = 2,
99836 	TCP_METRIC_CWND = 3,
99837 	TCP_METRIC_REORDERING = 4,
99838 	TCP_METRIC_RTT_US = 5,
99839 	TCP_METRIC_RTTVAR_US = 6,
99840 	__TCP_METRIC_MAX = 7,
99841 };
99842 
99843 enum {
99844 	TCP_METRICS_ATTR_UNSPEC = 0,
99845 	TCP_METRICS_ATTR_ADDR_IPV4 = 1,
99846 	TCP_METRICS_ATTR_ADDR_IPV6 = 2,
99847 	TCP_METRICS_ATTR_AGE = 3,
99848 	TCP_METRICS_ATTR_TW_TSVAL = 4,
99849 	TCP_METRICS_ATTR_TW_TS_STAMP = 5,
99850 	TCP_METRICS_ATTR_VALS = 6,
99851 	TCP_METRICS_ATTR_FOPEN_MSS = 7,
99852 	TCP_METRICS_ATTR_FOPEN_SYN_DROPS = 8,
99853 	TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS = 9,
99854 	TCP_METRICS_ATTR_FOPEN_COOKIE = 10,
99855 	TCP_METRICS_ATTR_SADDR_IPV4 = 11,
99856 	TCP_METRICS_ATTR_SADDR_IPV6 = 12,
99857 	TCP_METRICS_ATTR_PAD = 13,
99858 	__TCP_METRICS_ATTR_MAX = 14,
99859 };
99860 
99861 enum {
99862 	TCP_METRICS_CMD_UNSPEC = 0,
99863 	TCP_METRICS_CMD_GET = 1,
99864 	TCP_METRICS_CMD_DEL = 2,
99865 	__TCP_METRICS_CMD_MAX = 3,
99866 };
99867 
99868 struct tcp_fastopen_metrics {
99869 	u16 mss;
99870 	u16 syn_loss: 10;
99871 	u16 try_exp: 2;
99872 	long unsigned int last_syn_loss;
99873 	struct tcp_fastopen_cookie cookie;
99874 };
99875 
99876 struct tcp_metrics_block {
99877 	struct tcp_metrics_block *tcpm_next;
99878 	possible_net_t tcpm_net;
99879 	struct inetpeer_addr tcpm_saddr;
99880 	struct inetpeer_addr tcpm_daddr;
99881 	long unsigned int tcpm_stamp;
99882 	u32 tcpm_lock;
99883 	u32 tcpm_vals[5];
99884 	struct tcp_fastopen_metrics tcpm_fastopen;
99885 	struct callback_head callback_head;
99886 };
99887 
99888 struct tcpm_hash_bucket {
99889 	struct tcp_metrics_block *chain;
99890 };
99891 
99892 struct icmp_filter {
99893 	__u32 data;
99894 };
99895 
99896 struct raw_sock {
99897 	struct inet_sock inet;
99898 	struct icmp_filter filter;
99899 	u32 ipmr_table;
99900 };
99901 
99902 struct raw_frag_vec {
99903 	struct msghdr *msg;
99904 	union {
99905 		struct icmphdr icmph;
99906 		char c[1];
99907 	} hdr;
99908 	int hlen;
99909 };
99910 
99911 struct arpreq {
99912 	struct sockaddr arp_pa;
99913 	struct sockaddr arp_ha;
99914 	int arp_flags;
99915 	struct sockaddr arp_netmask;
99916 	char arp_dev[16];
99917 };
99918 
99919 enum {
99920 	AX25_VALUES_IPDEFMODE = 0,
99921 	AX25_VALUES_AXDEFMODE = 1,
99922 	AX25_VALUES_BACKOFF = 2,
99923 	AX25_VALUES_CONMODE = 3,
99924 	AX25_VALUES_WINDOW = 4,
99925 	AX25_VALUES_EWINDOW = 5,
99926 	AX25_VALUES_T1 = 6,
99927 	AX25_VALUES_T2 = 7,
99928 	AX25_VALUES_T3 = 8,
99929 	AX25_VALUES_IDLE = 9,
99930 	AX25_VALUES_N2 = 10,
99931 	AX25_VALUES_PACLEN = 11,
99932 	AX25_VALUES_PROTOCOL = 12,
99933 	AX25_VALUES_DS_TIMEOUT = 13,
99934 	AX25_MAX_VALUES = 14,
99935 };
99936 
99937 enum lwtunnel_ip_t {
99938 	LWTUNNEL_IP_UNSPEC = 0,
99939 	LWTUNNEL_IP_ID = 1,
99940 	LWTUNNEL_IP_DST = 2,
99941 	LWTUNNEL_IP_SRC = 3,
99942 	LWTUNNEL_IP_TTL = 4,
99943 	LWTUNNEL_IP_TOS = 5,
99944 	LWTUNNEL_IP_FLAGS = 6,
99945 	LWTUNNEL_IP_PAD = 7,
99946 	LWTUNNEL_IP_OPTS = 8,
99947 	__LWTUNNEL_IP_MAX = 9,
99948 };
99949 
99950 enum lwtunnel_ip6_t {
99951 	LWTUNNEL_IP6_UNSPEC = 0,
99952 	LWTUNNEL_IP6_ID = 1,
99953 	LWTUNNEL_IP6_DST = 2,
99954 	LWTUNNEL_IP6_SRC = 3,
99955 	LWTUNNEL_IP6_HOPLIMIT = 4,
99956 	LWTUNNEL_IP6_TC = 5,
99957 	LWTUNNEL_IP6_FLAGS = 6,
99958 	LWTUNNEL_IP6_PAD = 7,
99959 	LWTUNNEL_IP6_OPTS = 8,
99960 	__LWTUNNEL_IP6_MAX = 9,
99961 };
99962 
99963 enum {
99964 	LWTUNNEL_IP_OPTS_UNSPEC = 0,
99965 	LWTUNNEL_IP_OPTS_GENEVE = 1,
99966 	LWTUNNEL_IP_OPTS_VXLAN = 2,
99967 	LWTUNNEL_IP_OPTS_ERSPAN = 3,
99968 	__LWTUNNEL_IP_OPTS_MAX = 4,
99969 };
99970 
99971 enum {
99972 	LWTUNNEL_IP_OPT_GENEVE_UNSPEC = 0,
99973 	LWTUNNEL_IP_OPT_GENEVE_CLASS = 1,
99974 	LWTUNNEL_IP_OPT_GENEVE_TYPE = 2,
99975 	LWTUNNEL_IP_OPT_GENEVE_DATA = 3,
99976 	__LWTUNNEL_IP_OPT_GENEVE_MAX = 4,
99977 };
99978 
99979 enum {
99980 	LWTUNNEL_IP_OPT_VXLAN_UNSPEC = 0,
99981 	LWTUNNEL_IP_OPT_VXLAN_GBP = 1,
99982 	__LWTUNNEL_IP_OPT_VXLAN_MAX = 2,
99983 };
99984 
99985 enum {
99986 	LWTUNNEL_IP_OPT_ERSPAN_UNSPEC = 0,
99987 	LWTUNNEL_IP_OPT_ERSPAN_VER = 1,
99988 	LWTUNNEL_IP_OPT_ERSPAN_INDEX = 2,
99989 	LWTUNNEL_IP_OPT_ERSPAN_DIR = 3,
99990 	LWTUNNEL_IP_OPT_ERSPAN_HWID = 4,
99991 	__LWTUNNEL_IP_OPT_ERSPAN_MAX = 5,
99992 };
99993 
99994 struct ip6_tnl_encap_ops {
99995 	size_t (*encap_hlen)(struct ip_tunnel_encap *);
99996 	int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi6 *);
99997 	int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32);
99998 };
99999 
100000 struct geneve_opt {
100001 	__be16 opt_class;
100002 	u8 type;
100003 	u8 length: 5;
100004 	u8 r3: 1;
100005 	u8 r2: 1;
100006 	u8 r1: 1;
100007 	u8 opt_data[0];
100008 };
100009 
100010 struct vxlan_metadata {
100011 	u32 gbp;
100012 };
100013 
100014 struct erspan_md2 {
100015 	__be32 timestamp;
100016 	__be16 sgt;
100017 	__u8 hwid_upper: 2;
100018 	__u8 ft: 5;
100019 	__u8 p: 1;
100020 	__u8 o: 1;
100021 	__u8 gra: 2;
100022 	__u8 dir: 1;
100023 	__u8 hwid: 4;
100024 };
100025 
100026 struct erspan_metadata {
100027 	int version;
100028 	union {
100029 		__be32 index;
100030 		struct erspan_md2 md2;
100031 	} u;
100032 };
100033 
100034 struct nhmsg {
100035 	unsigned char nh_family;
100036 	unsigned char nh_scope;
100037 	unsigned char nh_protocol;
100038 	unsigned char resvd;
100039 	unsigned int nh_flags;
100040 };
100041 
100042 struct nexthop_grp {
100043 	__u32 id;
100044 	__u8 weight;
100045 	__u8 resvd1;
100046 	__u16 resvd2;
100047 };
100048 
100049 enum {
100050 	NEXTHOP_GRP_TYPE_MPATH = 0,
100051 	NEXTHOP_GRP_TYPE_RES = 1,
100052 	__NEXTHOP_GRP_TYPE_MAX = 2,
100053 };
100054 
100055 enum {
100056 	NHA_UNSPEC = 0,
100057 	NHA_ID = 1,
100058 	NHA_GROUP = 2,
100059 	NHA_GROUP_TYPE = 3,
100060 	NHA_BLACKHOLE = 4,
100061 	NHA_OIF = 5,
100062 	NHA_GATEWAY = 6,
100063 	NHA_ENCAP_TYPE = 7,
100064 	NHA_ENCAP = 8,
100065 	NHA_GROUPS = 9,
100066 	NHA_MASTER = 10,
100067 	NHA_FDB = 11,
100068 	NHA_RES_GROUP = 12,
100069 	NHA_RES_BUCKET = 13,
100070 	__NHA_MAX = 14,
100071 };
100072 
100073 enum {
100074 	NHA_RES_GROUP_UNSPEC = 0,
100075 	NHA_RES_GROUP_PAD = 0,
100076 	NHA_RES_GROUP_BUCKETS = 1,
100077 	NHA_RES_GROUP_IDLE_TIMER = 2,
100078 	NHA_RES_GROUP_UNBALANCED_TIMER = 3,
100079 	NHA_RES_GROUP_UNBALANCED_TIME = 4,
100080 	__NHA_RES_GROUP_MAX = 5,
100081 };
100082 
100083 enum {
100084 	NHA_RES_BUCKET_UNSPEC = 0,
100085 	NHA_RES_BUCKET_PAD = 0,
100086 	NHA_RES_BUCKET_INDEX = 1,
100087 	NHA_RES_BUCKET_IDLE_TIME = 2,
100088 	NHA_RES_BUCKET_NH_ID = 3,
100089 	__NHA_RES_BUCKET_MAX = 4,
100090 };
100091 
100092 struct nh_config {
100093 	u32 nh_id;
100094 	u8 nh_family;
100095 	u8 nh_protocol;
100096 	u8 nh_blackhole;
100097 	u8 nh_fdb;
100098 	u32 nh_flags;
100099 	int nh_ifindex;
100100 	struct net_device *dev;
100101 	union {
100102 		__be32 ipv4;
100103 		struct in6_addr ipv6;
100104 	} gw;
100105 	struct nlattr *nh_grp;
100106 	u16 nh_grp_type;
100107 	u16 nh_grp_res_num_buckets;
100108 	long unsigned int nh_grp_res_idle_timer;
100109 	long unsigned int nh_grp_res_unbalanced_timer;
100110 	bool nh_grp_res_has_num_buckets;
100111 	bool nh_grp_res_has_idle_timer;
100112 	bool nh_grp_res_has_unbalanced_timer;
100113 	struct nlattr *nh_encap;
100114 	u16 nh_encap_type;
100115 	u32 nlflags;
100116 	struct nl_info nlinfo;
100117 };
100118 
100119 enum nexthop_event_type {
100120 	NEXTHOP_EVENT_DEL = 0,
100121 	NEXTHOP_EVENT_REPLACE = 1,
100122 	NEXTHOP_EVENT_RES_TABLE_PRE_REPLACE = 2,
100123 	NEXTHOP_EVENT_BUCKET_REPLACE = 3,
100124 };
100125 
100126 enum nh_notifier_info_type {
100127 	NH_NOTIFIER_INFO_TYPE_SINGLE = 0,
100128 	NH_NOTIFIER_INFO_TYPE_GRP = 1,
100129 	NH_NOTIFIER_INFO_TYPE_RES_TABLE = 2,
100130 	NH_NOTIFIER_INFO_TYPE_RES_BUCKET = 3,
100131 };
100132 
100133 struct nh_notifier_single_info {
100134 	struct net_device *dev;
100135 	u8 gw_family;
100136 	union {
100137 		__be32 ipv4;
100138 		struct in6_addr ipv6;
100139 	};
100140 	u8 is_reject: 1;
100141 	u8 is_fdb: 1;
100142 	u8 has_encap: 1;
100143 };
100144 
100145 struct nh_notifier_grp_entry_info {
100146 	u8 weight;
100147 	u32 id;
100148 	struct nh_notifier_single_info nh;
100149 };
100150 
100151 struct nh_notifier_grp_info {
100152 	u16 num_nh;
100153 	bool is_fdb;
100154 	struct nh_notifier_grp_entry_info nh_entries[0];
100155 };
100156 
100157 struct nh_notifier_res_bucket_info {
100158 	u16 bucket_index;
100159 	unsigned int idle_timer_ms;
100160 	bool force;
100161 	struct nh_notifier_single_info old_nh;
100162 	struct nh_notifier_single_info new_nh;
100163 };
100164 
100165 struct nh_notifier_res_table_info {
100166 	u16 num_nh_buckets;
100167 	struct nh_notifier_single_info nhs[0];
100168 };
100169 
100170 struct nh_notifier_info {
100171 	struct net *net;
100172 	struct netlink_ext_ack *extack;
100173 	u32 id;
100174 	enum nh_notifier_info_type type;
100175 	union {
100176 		struct nh_notifier_single_info *nh;
100177 		struct nh_notifier_grp_info *nh_grp;
100178 		struct nh_notifier_res_table_info *nh_res_table;
100179 		struct nh_notifier_res_bucket_info *nh_res_bucket;
100180 	};
100181 };
100182 
100183 struct nh_dump_filter {
100184 	u32 nh_id;
100185 	int dev_idx;
100186 	int master_idx;
100187 	bool group_filter;
100188 	bool fdb_filter;
100189 	u32 res_bucket_nh_id;
100190 };
100191 
100192 struct rtm_dump_nh_ctx {
100193 	u32 idx;
100194 };
100195 
100196 struct rtm_dump_res_bucket_ctx {
100197 	struct rtm_dump_nh_ctx nh;
100198 	u16 bucket_index;
100199 	u32 done_nh_idx;
100200 };
100201 
100202 struct rtm_dump_nexthop_bucket_data {
100203 	struct rtm_dump_res_bucket_ctx *ctx;
100204 	struct nh_dump_filter filter;
100205 };
100206 
100207 enum {
100208 	FRA_UNSPEC = 0,
100209 	FRA_DST = 1,
100210 	FRA_SRC = 2,
100211 	FRA_IIFNAME = 3,
100212 	FRA_GOTO = 4,
100213 	FRA_UNUSED2 = 5,
100214 	FRA_PRIORITY = 6,
100215 	FRA_UNUSED3 = 7,
100216 	FRA_UNUSED4 = 8,
100217 	FRA_UNUSED5 = 9,
100218 	FRA_FWMARK = 10,
100219 	FRA_FLOW = 11,
100220 	FRA_TUN_ID = 12,
100221 	FRA_SUPPRESS_IFGROUP = 13,
100222 	FRA_SUPPRESS_PREFIXLEN = 14,
100223 	FRA_TABLE = 15,
100224 	FRA_FWMASK = 16,
100225 	FRA_OIFNAME = 17,
100226 	FRA_PAD = 18,
100227 	FRA_L3MDEV = 19,
100228 	FRA_UID_RANGE = 20,
100229 	FRA_PROTOCOL = 21,
100230 	FRA_IP_PROTO = 22,
100231 	FRA_SPORT_RANGE = 23,
100232 	FRA_DPORT_RANGE = 24,
100233 	__FRA_MAX = 25,
100234 };
100235 
100236 struct fib4_rule {
100237 	struct fib_rule common;
100238 	u8 dst_len;
100239 	u8 src_len;
100240 	dscp_t dscp;
100241 	__be32 src;
100242 	__be32 srcmask;
100243 	__be32 dst;
100244 	__be32 dstmask;
100245 	u32 tclassid;
100246 };
100247 
100248 enum {
100249 	INET_ULP_INFO_UNSPEC = 0,
100250 	INET_ULP_INFO_NAME = 1,
100251 	INET_ULP_INFO_TLS = 2,
100252 	INET_ULP_INFO_MPTCP = 3,
100253 	__INET_ULP_INFO_MAX = 4,
100254 };
100255 
100256 struct tcp_info {
100257 	__u8 tcpi_state;
100258 	__u8 tcpi_ca_state;
100259 	__u8 tcpi_retransmits;
100260 	__u8 tcpi_probes;
100261 	__u8 tcpi_backoff;
100262 	__u8 tcpi_options;
100263 	__u8 tcpi_snd_wscale: 4;
100264 	__u8 tcpi_rcv_wscale: 4;
100265 	__u8 tcpi_delivery_rate_app_limited: 1;
100266 	__u8 tcpi_fastopen_client_fail: 2;
100267 	__u32 tcpi_rto;
100268 	__u32 tcpi_ato;
100269 	__u32 tcpi_snd_mss;
100270 	__u32 tcpi_rcv_mss;
100271 	__u32 tcpi_unacked;
100272 	__u32 tcpi_sacked;
100273 	__u32 tcpi_lost;
100274 	__u32 tcpi_retrans;
100275 	__u32 tcpi_fackets;
100276 	__u32 tcpi_last_data_sent;
100277 	__u32 tcpi_last_ack_sent;
100278 	__u32 tcpi_last_data_recv;
100279 	__u32 tcpi_last_ack_recv;
100280 	__u32 tcpi_pmtu;
100281 	__u32 tcpi_rcv_ssthresh;
100282 	__u32 tcpi_rtt;
100283 	__u32 tcpi_rttvar;
100284 	__u32 tcpi_snd_ssthresh;
100285 	__u32 tcpi_snd_cwnd;
100286 	__u32 tcpi_advmss;
100287 	__u32 tcpi_reordering;
100288 	__u32 tcpi_rcv_rtt;
100289 	__u32 tcpi_rcv_space;
100290 	__u32 tcpi_total_retrans;
100291 	__u64 tcpi_pacing_rate;
100292 	__u64 tcpi_max_pacing_rate;
100293 	__u64 tcpi_bytes_acked;
100294 	__u64 tcpi_bytes_received;
100295 	__u32 tcpi_segs_out;
100296 	__u32 tcpi_segs_in;
100297 	__u32 tcpi_notsent_bytes;
100298 	__u32 tcpi_min_rtt;
100299 	__u32 tcpi_data_segs_in;
100300 	__u32 tcpi_data_segs_out;
100301 	__u64 tcpi_delivery_rate;
100302 	__u64 tcpi_busy_time;
100303 	__u64 tcpi_rwnd_limited;
100304 	__u64 tcpi_sndbuf_limited;
100305 	__u32 tcpi_delivered;
100306 	__u32 tcpi_delivered_ce;
100307 	__u64 tcpi_bytes_sent;
100308 	__u64 tcpi_bytes_retrans;
100309 	__u32 tcpi_dsack_dups;
100310 	__u32 tcpi_reord_seen;
100311 	__u32 tcpi_rcv_ooopack;
100312 	__u32 tcpi_snd_wnd;
100313 	__u32 tcpi_rcv_wnd;
100314 	__u32 tcpi_rehash;
100315 };
100316 
100317 struct tx_work {
100318 	struct delayed_work work;
100319 	struct sock *sk;
100320 };
100321 
100322 struct tls_rec;
100323 
100324 struct tls_sw_context_tx {
100325 	struct crypto_aead *aead_send;
100326 	struct crypto_wait async_wait;
100327 	struct tx_work tx_work;
100328 	struct tls_rec *open_rec;
100329 	struct list_head tx_list;
100330 	atomic_t encrypt_pending;
100331 	spinlock_t encrypt_compl_lock;
100332 	int async_notify;
100333 	u8 async_capable: 1;
100334 	long unsigned int tx_bitmask;
100335 };
100336 
100337 enum {
100338 	TCP_BPF_IPV4 = 0,
100339 	TCP_BPF_IPV6 = 1,
100340 	TCP_BPF_NUM_PROTS = 2,
100341 };
100342 
100343 enum {
100344 	TCP_BPF_BASE = 0,
100345 	TCP_BPF_TX = 1,
100346 	TCP_BPF_RX = 2,
100347 	TCP_BPF_TXRX = 3,
100348 	TCP_BPF_NUM_CFGS = 4,
100349 };
100350 
100351 struct xfrm_kmaddress {
100352 	xfrm_address_t local;
100353 	xfrm_address_t remote;
100354 	u32 reserved;
100355 	u16 family;
100356 };
100357 
100358 struct xfrm_migrate {
100359 	xfrm_address_t old_daddr;
100360 	xfrm_address_t old_saddr;
100361 	xfrm_address_t new_daddr;
100362 	xfrm_address_t new_saddr;
100363 	u8 proto;
100364 	u8 mode;
100365 	u16 reserved;
100366 	u32 reqid;
100367 	u16 old_family;
100368 	u16 new_family;
100369 };
100370 
100371 struct xfrm_mgr {
100372 	struct list_head list;
100373 	int (*notify)(struct xfrm_state *, const struct km_event *);
100374 	int (*acquire)(struct xfrm_state *, struct xfrm_tmpl *, struct xfrm_policy *);
100375 	struct xfrm_policy * (*compile_policy)(struct sock *, int, u8 *, int, int *);
100376 	int (*new_mapping)(struct xfrm_state *, xfrm_address_t *, __be16);
100377 	int (*notify_policy)(struct xfrm_policy *, int, const struct km_event *);
100378 	int (*report)(struct net *, u8, struct xfrm_selector *, xfrm_address_t *);
100379 	int (*migrate)(const struct xfrm_selector *, u8, u8, const struct xfrm_migrate *, int, const struct xfrm_kmaddress *, const struct xfrm_encap_tmpl *);
100380 	bool (*is_alive)(const struct km_event *);
100381 };
100382 
100383 struct xfrmk_sadinfo {
100384 	u32 sadhcnt;
100385 	u32 sadhmcnt;
100386 	u32 sadcnt;
100387 };
100388 
100389 struct xfrm_translator {
100390 	int (*alloc_compat)(struct sk_buff *, const struct nlmsghdr *);
100391 	struct nlmsghdr * (*rcv_msg_compat)(const struct nlmsghdr *, int, const struct nla_policy *, struct netlink_ext_ack *);
100392 	int (*xlate_user_policy_sockptr)(u8 **, int);
100393 	struct module *owner;
100394 };
100395 
100396 struct sadb_alg {
100397 	__u8 sadb_alg_id;
100398 	__u8 sadb_alg_ivlen;
100399 	__u16 sadb_alg_minbits;
100400 	__u16 sadb_alg_maxbits;
100401 	__u16 sadb_alg_reserved;
100402 };
100403 
100404 enum {
100405 	XFRM_SHARE_ANY = 0,
100406 	XFRM_SHARE_SESSION = 1,
100407 	XFRM_SHARE_USER = 2,
100408 	XFRM_SHARE_UNIQUE = 3,
100409 };
100410 
100411 struct xfrm_user_sec_ctx {
100412 	__u16 len;
100413 	__u16 exttype;
100414 	__u8 ctx_alg;
100415 	__u8 ctx_doi;
100416 	__u16 ctx_len;
100417 };
100418 
100419 struct xfrm_user_tmpl {
100420 	struct xfrm_id id;
100421 	__u16 family;
100422 	xfrm_address_t saddr;
100423 	__u32 reqid;
100424 	__u8 mode;
100425 	__u8 share;
100426 	__u8 optional;
100427 	__u32 aalgos;
100428 	__u32 ealgos;
100429 	__u32 calgos;
100430 };
100431 
100432 struct xfrm_userpolicy_type {
100433 	__u8 type;
100434 	__u16 reserved1;
100435 	__u8 reserved2;
100436 };
100437 
100438 enum xfrm_sadattr_type_t {
100439 	XFRMA_SAD_UNSPEC = 0,
100440 	XFRMA_SAD_CNT = 1,
100441 	XFRMA_SAD_HINFO = 2,
100442 	__XFRMA_SAD_MAX = 3,
100443 };
100444 
100445 struct xfrmu_sadhinfo {
100446 	__u32 sadhcnt;
100447 	__u32 sadhmcnt;
100448 };
100449 
100450 enum xfrm_spdattr_type_t {
100451 	XFRMA_SPD_UNSPEC = 0,
100452 	XFRMA_SPD_INFO = 1,
100453 	XFRMA_SPD_HINFO = 2,
100454 	XFRMA_SPD_IPV4_HTHRESH = 3,
100455 	XFRMA_SPD_IPV6_HTHRESH = 4,
100456 	__XFRMA_SPD_MAX = 5,
100457 };
100458 
100459 struct xfrmu_spdinfo {
100460 	__u32 incnt;
100461 	__u32 outcnt;
100462 	__u32 fwdcnt;
100463 	__u32 inscnt;
100464 	__u32 outscnt;
100465 	__u32 fwdscnt;
100466 };
100467 
100468 struct xfrmu_spdhinfo {
100469 	__u32 spdhcnt;
100470 	__u32 spdhmcnt;
100471 };
100472 
100473 struct xfrmu_spdhthresh {
100474 	__u8 lbits;
100475 	__u8 rbits;
100476 };
100477 
100478 struct xfrm_usersa_info {
100479 	struct xfrm_selector sel;
100480 	struct xfrm_id id;
100481 	xfrm_address_t saddr;
100482 	struct xfrm_lifetime_cfg lft;
100483 	struct xfrm_lifetime_cur curlft;
100484 	struct xfrm_stats stats;
100485 	__u32 seq;
100486 	__u32 reqid;
100487 	__u16 family;
100488 	__u8 mode;
100489 	__u8 replay_window;
100490 	__u8 flags;
100491 };
100492 
100493 struct xfrm_usersa_id {
100494 	xfrm_address_t daddr;
100495 	__be32 spi;
100496 	__u16 family;
100497 	__u8 proto;
100498 };
100499 
100500 struct xfrm_aevent_id {
100501 	struct xfrm_usersa_id sa_id;
100502 	xfrm_address_t saddr;
100503 	__u32 flags;
100504 	__u32 reqid;
100505 };
100506 
100507 struct xfrm_userspi_info {
100508 	struct xfrm_usersa_info info;
100509 	__u32 min;
100510 	__u32 max;
100511 };
100512 
100513 struct xfrm_userpolicy_info {
100514 	struct xfrm_selector sel;
100515 	struct xfrm_lifetime_cfg lft;
100516 	struct xfrm_lifetime_cur curlft;
100517 	__u32 priority;
100518 	__u32 index;
100519 	__u8 dir;
100520 	__u8 action;
100521 	__u8 flags;
100522 	__u8 share;
100523 };
100524 
100525 struct xfrm_userpolicy_id {
100526 	struct xfrm_selector sel;
100527 	__u32 index;
100528 	__u8 dir;
100529 };
100530 
100531 struct xfrm_user_acquire {
100532 	struct xfrm_id id;
100533 	xfrm_address_t saddr;
100534 	struct xfrm_selector sel;
100535 	struct xfrm_userpolicy_info policy;
100536 	__u32 aalgos;
100537 	__u32 ealgos;
100538 	__u32 calgos;
100539 	__u32 seq;
100540 };
100541 
100542 struct xfrm_user_expire {
100543 	struct xfrm_usersa_info state;
100544 	__u8 hard;
100545 };
100546 
100547 struct xfrm_user_polexpire {
100548 	struct xfrm_userpolicy_info pol;
100549 	__u8 hard;
100550 };
100551 
100552 struct xfrm_usersa_flush {
100553 	__u8 proto;
100554 };
100555 
100556 struct xfrm_user_report {
100557 	__u8 proto;
100558 	struct xfrm_selector sel;
100559 };
100560 
100561 struct xfrm_user_mapping {
100562 	struct xfrm_usersa_id id;
100563 	__u32 reqid;
100564 	xfrm_address_t old_saddr;
100565 	xfrm_address_t new_saddr;
100566 	__be16 old_sport;
100567 	__be16 new_sport;
100568 };
100569 
100570 struct xfrm_user_offload {
100571 	int ifindex;
100572 	__u8 flags;
100573 };
100574 
100575 struct xfrm_userpolicy_default {
100576 	__u8 in;
100577 	__u8 fwd;
100578 	__u8 out;
100579 };
100580 
100581 enum {
100582 	XFRM_DEV_OFFLOAD_IN = 1,
100583 	XFRM_DEV_OFFLOAD_OUT = 2,
100584 	XFRM_DEV_OFFLOAD_FWD = 3,
100585 };
100586 
100587 struct xfrm_algo_aead_info {
100588 	char *geniv;
100589 	u16 icv_truncbits;
100590 };
100591 
100592 struct xfrm_algo_auth_info {
100593 	u16 icv_truncbits;
100594 	u16 icv_fullbits;
100595 };
100596 
100597 struct xfrm_algo_encr_info {
100598 	char *geniv;
100599 	u16 blockbits;
100600 	u16 defkeybits;
100601 };
100602 
100603 struct xfrm_algo_comp_info {
100604 	u16 threshold;
100605 };
100606 
100607 struct xfrm_algo_desc {
100608 	char *name;
100609 	char *compat;
100610 	u8 available: 1;
100611 	u8 pfkey_supported: 1;
100612 	union {
100613 		struct xfrm_algo_aead_info aead;
100614 		struct xfrm_algo_auth_info auth;
100615 		struct xfrm_algo_encr_info encr;
100616 		struct xfrm_algo_comp_info comp;
100617 	} uinfo;
100618 	struct sadb_alg desc;
100619 };
100620 
100621 struct xfrm_dump_info {
100622 	struct sk_buff *in_skb;
100623 	struct sk_buff *out_skb;
100624 	u32 nlmsg_seq;
100625 	u16 nlmsg_flags;
100626 };
100627 
100628 struct xfrm_link {
100629 	int (*doit)(struct sk_buff *, struct nlmsghdr *, struct nlattr **, struct netlink_ext_ack *);
100630 	int (*start)(struct netlink_callback *);
100631 	int (*dump)(struct sk_buff *, struct netlink_callback *);
100632 	int (*done)(struct netlink_callback *);
100633 	const struct nla_policy *nla_pol;
100634 	int nla_max;
100635 };
100636 
100637 struct hop_jumbo_hdr {
100638 	u8 nexthdr;
100639 	u8 hdrlen;
100640 	u8 tlv_type;
100641 	u8 tlv_len;
100642 	__be32 jumbo_payload_len;
100643 };
100644 
100645 struct ip6_ra_chain {
100646 	struct ip6_ra_chain *next;
100647 	struct sock *sk;
100648 	int sel;
100649 	void (*destructor)(struct sock *);
100650 };
100651 
100652 struct ipv6_mreq {
100653 	struct in6_addr ipv6mr_multiaddr;
100654 	int ipv6mr_ifindex;
100655 };
100656 
100657 struct group_req {
100658 	__u32 gr_interface;
100659 	struct __kernel_sockaddr_storage gr_group;
100660 };
100661 
100662 struct group_source_req {
100663 	__u32 gsr_interface;
100664 	struct __kernel_sockaddr_storage gsr_group;
100665 	struct __kernel_sockaddr_storage gsr_source;
100666 };
100667 
100668 struct ip6_mtuinfo {
100669 	struct sockaddr_in6 ip6m_addr;
100670 	__u32 ip6m_mtu;
100671 };
100672 
100673 struct compat_group_req {
100674 	__u32 gr_interface;
100675 	struct __kernel_sockaddr_storage gr_group;
100676 } __attribute__((packed));
100677 
100678 struct compat_group_source_req {
100679 	__u32 gsr_interface;
100680 	struct __kernel_sockaddr_storage gsr_group;
100681 	struct __kernel_sockaddr_storage gsr_source;
100682 } __attribute__((packed));
100683 
100684 struct compat_group_filter {
100685 	union {
100686 		struct {
100687 			__u32 gf_interface_aux;
100688 			struct __kernel_sockaddr_storage gf_group_aux;
100689 			__u32 gf_fmode_aux;
100690 			__u32 gf_numsrc_aux;
100691 			struct __kernel_sockaddr_storage gf_slist[1];
100692 		} __attribute__((packed));
100693 		struct {
100694 			__u32 gf_interface;
100695 			struct __kernel_sockaddr_storage gf_group;
100696 			__u32 gf_fmode;
100697 			__u32 gf_numsrc;
100698 			struct __kernel_sockaddr_storage gf_slist_flex[0];
100699 		} __attribute__((packed));
100700 	};
100701 } __attribute__((packed));
100702 
100703 struct mld_msg {
100704 	struct icmp6hdr mld_hdr;
100705 	struct in6_addr mld_mca;
100706 };
100707 
100708 struct mld2_grec {
100709 	__u8 grec_type;
100710 	__u8 grec_auxwords;
100711 	__be16 grec_nsrcs;
100712 	struct in6_addr grec_mca;
100713 	struct in6_addr grec_src[0];
100714 };
100715 
100716 struct mld2_report {
100717 	struct icmp6hdr mld2r_hdr;
100718 	struct mld2_grec mld2r_grec[0];
100719 };
100720 
100721 struct mld2_query {
100722 	struct icmp6hdr mld2q_hdr;
100723 	struct in6_addr mld2q_mca;
100724 	__u8 mld2q_qrv: 3;
100725 	__u8 mld2q_suppress: 1;
100726 	__u8 mld2q_resv2: 4;
100727 	__u8 mld2q_qqic;
100728 	__be16 mld2q_nsrcs;
100729 	struct in6_addr mld2q_srcs[0];
100730 };
100731 
100732 struct igmp6_mc_iter_state {
100733 	struct seq_net_private p;
100734 	struct net_device *dev;
100735 	struct inet6_dev *idev;
100736 };
100737 
100738 struct igmp6_mcf_iter_state {
100739 	struct seq_net_private p;
100740 	struct net_device *dev;
100741 	struct inet6_dev *idev;
100742 	struct ifmcaddr6 *im;
100743 };
100744 
100745 struct in_pktinfo {
100746 	int ipi_ifindex;
100747 	struct in_addr ipi_spec_dst;
100748 	struct in_addr ipi_addr;
100749 };
100750 
100751 struct sr6_tlv {
100752 	__u8 type;
100753 	__u8 len;
100754 	__u8 data[0];
100755 };
100756 
100757 enum {
100758 	SEG6_ATTR_UNSPEC = 0,
100759 	SEG6_ATTR_DST = 1,
100760 	SEG6_ATTR_DSTLEN = 2,
100761 	SEG6_ATTR_HMACKEYID = 3,
100762 	SEG6_ATTR_SECRET = 4,
100763 	SEG6_ATTR_SECRETLEN = 5,
100764 	SEG6_ATTR_ALGID = 6,
100765 	SEG6_ATTR_HMACINFO = 7,
100766 	__SEG6_ATTR_MAX = 8,
100767 };
100768 
100769 enum {
100770 	SEG6_CMD_UNSPEC = 0,
100771 	SEG6_CMD_SETHMAC = 1,
100772 	SEG6_CMD_DUMPHMAC = 2,
100773 	SEG6_CMD_SET_TUNSRC = 3,
100774 	SEG6_CMD_GET_TUNSRC = 4,
100775 	__SEG6_CMD_MAX = 5,
100776 };
100777 
100778 struct seg6_hmac_info {
100779 	struct rhash_head node;
100780 	struct callback_head rcu;
100781 	u32 hmackeyid;
100782 	char secret[64];
100783 	u8 slen;
100784 	u8 alg_id;
100785 };
100786 
100787 struct xfrm6_protocol {
100788 	int (*handler)(struct sk_buff *);
100789 	int (*input_handler)(struct sk_buff *, int, __be32, int);
100790 	int (*cb_handler)(struct sk_buff *, int);
100791 	int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32);
100792 	struct xfrm6_protocol *next;
100793 	int priority;
100794 };
100795 
100796 struct sr6_tlv_hmac {
100797 	struct sr6_tlv tlvhdr;
100798 	__u16 reserved;
100799 	__be32 hmackeyid;
100800 	__u8 hmac[32];
100801 };
100802 
100803 enum {
100804 	SEG6_HMAC_ALGO_SHA1 = 1,
100805 	SEG6_HMAC_ALGO_SHA256 = 2,
100806 };
100807 
100808 struct seg6_hmac_algo {
100809 	u8 alg_id;
100810 	char name[64];
100811 	struct crypto_shash **tfms;
100812 	struct shash_desc **shashs;
100813 };
100814 
100815 struct vlan_group {
100816 	unsigned int nr_vlan_devs;
100817 	struct hlist_node hlist;
100818 	struct net_device **vlan_devices_arrays[16];
100819 };
100820 
100821 struct vlan_info {
100822 	struct net_device *real_dev;
100823 	struct vlan_group grp;
100824 	struct list_head vid_list;
100825 	unsigned int nr_vids;
100826 	struct callback_head rcu;
100827 };
100828 
100829 enum vlan_flags {
100830 	VLAN_FLAG_REORDER_HDR = 1,
100831 	VLAN_FLAG_GVRP = 2,
100832 	VLAN_FLAG_LOOSE_BINDING = 4,
100833 	VLAN_FLAG_MVRP = 8,
100834 	VLAN_FLAG_BRIDGE_BINDING = 16,
100835 };
100836 
100837 struct vlan_pcpu_stats {
100838 	u64_stats_t rx_packets;
100839 	u64_stats_t rx_bytes;
100840 	u64_stats_t rx_multicast;
100841 	u64_stats_t tx_packets;
100842 	u64_stats_t tx_bytes;
100843 	struct u64_stats_sync syncp;
100844 	u32 rx_errors;
100845 	u32 tx_dropped;
100846 };
100847 
100848 struct vlan_priority_tci_mapping {
100849 	u32 priority;
100850 	u16 vlan_qos;
100851 	struct vlan_priority_tci_mapping *next;
100852 };
100853 
100854 struct vlan_dev_priv {
100855 	unsigned int nr_ingress_mappings;
100856 	u32 ingress_priority_map[8];
100857 	unsigned int nr_egress_mappings;
100858 	struct vlan_priority_tci_mapping *egress_priority_map[16];
100859 	__be16 vlan_proto;
100860 	u16 vlan_id;
100861 	u16 flags;
100862 	struct net_device *real_dev;
100863 	netdevice_tracker dev_tracker;
100864 	unsigned char real_dev_addr[6];
100865 	struct proc_dir_entry *dent;
100866 	struct vlan_pcpu_stats *vlan_pcpu_stats;
100867 	struct netpoll *netpoll;
100868 };
100869 
100870 enum vlan_protos {
100871 	VLAN_PROTO_8021Q = 0,
100872 	VLAN_PROTO_8021AD = 1,
100873 	VLAN_PROTO_NUM = 2,
100874 };
100875 
100876 struct vlan_vid_info {
100877 	struct list_head list;
100878 	__be16 proto;
100879 	u16 vid;
100880 	int refcount;
100881 };
100882 
100883 typedef int (*is_acked_func)(struct rds_message *, uint64_t);
100884 
100885 struct rds_loop_connection {
100886 	struct list_head loop_node;
100887 	struct rds_connection *conn;
100888 };
100889 
100890 enum cfcnfg_phy_preference {
100891 	CFPHYPREF_UNSPECIFIED = 0,
100892 	CFPHYPREF_LOW_LAT = 1,
100893 	CFPHYPREF_HIGH_BW = 2,
100894 	CFPHYPREF_LOOP = 3,
100895 };
100896 
100897 struct cfcnfg_phyinfo {
100898 	struct list_head node;
100899 	bool up;
100900 	struct cflayer *frm_layer;
100901 	struct cflayer *phy_layer;
100902 	unsigned int id;
100903 	enum cfcnfg_phy_preference pref;
100904 	struct dev_info dev_info;
100905 	int ifindex;
100906 	int head_room;
100907 	bool use_fcs;
100908 };
100909 
100910 struct cfcnfg {
100911 	struct cflayer layer;
100912 	struct cflayer *ctrl;
100913 	struct cflayer *mux;
100914 	struct list_head phys;
100915 	struct mutex lock;
100916 };
100917 
100918 struct cfpkt {
100919 	struct sk_buff skb;
100920 };
100921 
100922 struct cfpkt_priv_data {
100923 	struct dev_info dev_info;
100924 	bool erronous;
100925 };
100926 
100927 struct sockaddr_xdp {
100928 	__u16 sxdp_family;
100929 	__u16 sxdp_flags;
100930 	__u32 sxdp_ifindex;
100931 	__u32 sxdp_queue_id;
100932 	__u32 sxdp_shared_umem_fd;
100933 };
100934 
100935 struct xdp_ring_offset {
100936 	__u64 producer;
100937 	__u64 consumer;
100938 	__u64 desc;
100939 	__u64 flags;
100940 };
100941 
100942 struct xdp_mmap_offsets {
100943 	struct xdp_ring_offset rx;
100944 	struct xdp_ring_offset tx;
100945 	struct xdp_ring_offset fr;
100946 	struct xdp_ring_offset cr;
100947 };
100948 
100949 struct xdp_statistics {
100950 	__u64 rx_dropped;
100951 	__u64 rx_invalid_descs;
100952 	__u64 tx_invalid_descs;
100953 	__u64 rx_ring_full;
100954 	__u64 rx_fill_ring_empty_descs;
100955 	__u64 tx_ring_empty_descs;
100956 };
100957 
100958 struct xdp_options {
100959 	__u32 flags;
100960 };
100961 
100962 struct xsk_map {
100963 	struct bpf_map map;
100964 	spinlock_t lock;
100965 	struct xdp_sock *xsk_map[0];
100966 	long: 64;
100967 	long: 64;
100968 	long: 64;
100969 	long: 64;
100970 	long: 64;
100971 	long: 64;
100972 	long: 64;
100973 };
100974 
100975 struct xdp_ring_offset_v1 {
100976 	__u64 producer;
100977 	__u64 consumer;
100978 	__u64 desc;
100979 };
100980 
100981 struct xdp_mmap_offsets_v1 {
100982 	struct xdp_ring_offset_v1 rx;
100983 	struct xdp_ring_offset_v1 tx;
100984 	struct xdp_ring_offset_v1 fr;
100985 	struct xdp_ring_offset_v1 cr;
100986 };
100987 
100988 struct xsk_map_node {
100989 	struct list_head node;
100990 	struct xsk_map *map;
100991 	struct xdp_sock **map_entry;
100992 };
100993 
100994 struct warn_args;
100995 
100996 struct rc {
100997 	long int (*fill)(void *, long unsigned int);
100998 	uint8_t *ptr;
100999 	uint8_t *buffer;
101000 	uint8_t *buffer_end;
101001 	long int buffer_size;
101002 	uint32_t code;
101003 	uint32_t range;
101004 	uint32_t bound;
101005 	void (*error)(char *);
101006 };
101007 
101008 struct lzma_header {
101009 	uint8_t pos;
101010 	uint32_t dict_size;
101011 	uint64_t dst_size;
101012 } __attribute__((packed));
101013 
101014 struct writer {
101015 	uint8_t *buffer;
101016 	uint8_t previous_byte;
101017 	size_t buffer_pos;
101018 	int bufsize;
101019 	size_t global_pos;
101020 	long int (*flush)(void *, long unsigned int);
101021 	struct lzma_header *header;
101022 };
101023 
101024 struct cstate {
101025 	int state;
101026 	uint32_t rep0;
101027 	uint32_t rep1;
101028 	uint32_t rep2;
101029 	uint32_t rep3;
101030 };
101031 
101032 enum format_type {
101033 	FORMAT_TYPE_NONE = 0,
101034 	FORMAT_TYPE_WIDTH = 1,
101035 	FORMAT_TYPE_PRECISION = 2,
101036 	FORMAT_TYPE_CHAR = 3,
101037 	FORMAT_TYPE_STR = 4,
101038 	FORMAT_TYPE_PTR = 5,
101039 	FORMAT_TYPE_PERCENT_CHAR = 6,
101040 	FORMAT_TYPE_INVALID = 7,
101041 	FORMAT_TYPE_LONG_LONG = 8,
101042 	FORMAT_TYPE_ULONG = 9,
101043 	FORMAT_TYPE_LONG = 10,
101044 	FORMAT_TYPE_UBYTE = 11,
101045 	FORMAT_TYPE_BYTE = 12,
101046 	FORMAT_TYPE_USHORT = 13,
101047 	FORMAT_TYPE_SHORT = 14,
101048 	FORMAT_TYPE_UINT = 15,
101049 	FORMAT_TYPE_INT = 16,
101050 	FORMAT_TYPE_SIZE_T = 17,
101051 	FORMAT_TYPE_PTRDIFF = 18,
101052 };
101053 
101054 struct printf_spec {
101055 	unsigned int type: 8;
101056 	int field_width: 24;
101057 	unsigned int flags: 8;
101058 	unsigned int base: 8;
101059 	int precision: 16;
101060 };
101061 
101062 struct page_flags_fields {
101063 	int width;
101064 	int shift;
101065 	int mask;
101066 	const struct printf_spec *spec;
101067 	const char *name;
101068 };
101069 
101070 struct tcpa_event {
101071 	u32 pcr_index;
101072 	u32 event_type;
101073 	u8 pcr_value[20];
101074 	u32 event_size;
101075 	u8 event_data[0];
101076 };
101077 
101078 typedef u32 efi_tcg2_event_log_format;
101079 
101080 struct efi_tcg2_event {
101081 	u32 event_size;
101082 	struct {
101083 		u32 header_size;
101084 		u16 header_version;
101085 		u32 pcr_index;
101086 		u32 event_type;
101087 	} __attribute__((packed)) event_header;
101088 } __attribute__((packed));
101089 
101090 typedef struct efi_tcg2_event efi_tcg2_event_t;
101091 
101092 union efi_tcg2_protocol;
101093 
101094 typedef union efi_tcg2_protocol efi_tcg2_protocol_t;
101095 
101096 union efi_tcg2_protocol {
101097 	struct {
101098 		void *get_capability;
101099 		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 *);
101100 		efi_status_t (*hash_log_extend_event)(efi_tcg2_protocol_t *, u64, efi_physical_addr_t, u64, const efi_tcg2_event_t *);
101101 		void *submit_command;
101102 		void *get_active_pcr_banks;
101103 		void *set_active_pcr_banks;
101104 		void *get_result_of_set_active_pcr_banks;
101105 	};
101106 	struct {
101107 		u32 get_capability;
101108 		u32 get_event_log;
101109 		u32 hash_log_extend_event;
101110 		u32 submit_command;
101111 		u32 get_active_pcr_banks;
101112 		u32 set_active_pcr_banks;
101113 		u32 get_result_of_set_active_pcr_banks;
101114 	} mixed_mode;
101115 };
101116 
101117 struct efi_file_path_dev_path {
101118 	struct efi_generic_dev_path header;
101119 	efi_char16_t filename[0];
101120 };
101121 
101122 union efi_device_path_from_text_protocol {
101123 	struct {
101124 		efi_device_path_protocol_t * (*convert_text_to_device_node)(const efi_char16_t *);
101125 		efi_device_path_protocol_t * (*convert_text_to_device_path)(const efi_char16_t *);
101126 	};
101127 	struct {
101128 		u32 convert_text_to_device_node;
101129 		u32 convert_text_to_device_path;
101130 	} mixed_mode;
101131 };
101132 
101133 typedef union efi_device_path_from_text_protocol efi_device_path_from_text_protocol_t;
101134 
101135 typedef struct {
101136 	u64 size;
101137 	u64 file_size;
101138 	u64 phys_size;
101139 	efi_time_t create_time;
101140 	efi_time_t last_access_time;
101141 	efi_time_t modification_time;
101142 	__u64 attribute;
101143 	efi_char16_t filename[0];
101144 } efi_file_info_t;
101145 
101146 union efi_file_protocol;
101147 
101148 typedef union efi_file_protocol efi_file_protocol_t;
101149 
101150 union efi_file_protocol {
101151 	struct {
101152 		u64 revision;
101153 		efi_status_t (*open)(efi_file_protocol_t *, efi_file_protocol_t **, efi_char16_t *, u64, u64);
101154 		efi_status_t (*close)(efi_file_protocol_t *);
101155 		efi_status_t (*delete)(efi_file_protocol_t *);
101156 		efi_status_t (*read)(efi_file_protocol_t *, long unsigned int *, void *);
101157 		efi_status_t (*write)(efi_file_protocol_t *, long unsigned int, void *);
101158 		efi_status_t (*get_position)(efi_file_protocol_t *, u64 *);
101159 		efi_status_t (*set_position)(efi_file_protocol_t *, u64);
101160 		efi_status_t (*get_info)(efi_file_protocol_t *, efi_guid_t *, long unsigned int *, void *);
101161 		efi_status_t (*set_info)(efi_file_protocol_t *, efi_guid_t *, long unsigned int, void *);
101162 		efi_status_t (*flush)(efi_file_protocol_t *);
101163 	};
101164 	struct {
101165 		u64 revision;
101166 		u32 open;
101167 		u32 close;
101168 		u32 delete;
101169 		u32 read;
101170 		u32 write;
101171 		u32 get_position;
101172 		u32 set_position;
101173 		u32 get_info;
101174 		u32 set_info;
101175 		u32 flush;
101176 	} mixed_mode;
101177 };
101178 
101179 union efi_simple_file_system_protocol;
101180 
101181 typedef union efi_simple_file_system_protocol efi_simple_file_system_protocol_t;
101182 
101183 union efi_simple_file_system_protocol {
101184 	struct {
101185 		u64 revision;
101186 		efi_status_t (*open_volume)(efi_simple_file_system_protocol_t *, efi_file_protocol_t **);
101187 	};
101188 	struct {
101189 		u64 revision;
101190 		u32 open_volume;
101191 	} mixed_mode;
101192 };
101193 
101194 struct finfo {
101195 	efi_file_info_t info;
101196 	efi_char16_t filename[256];
101197 };
101198 
101199 struct uuidcmp {
101200 	const char *uuid;
101201 	int len;
101202 };
101203 
101204 struct msgbuf;
101205 
101206 typedef long int (*sys_call_fn)(long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int);
101207 
101208 struct futex_waitv;
101209 
101210 enum landlock_rule_type;
101211 
101212 struct landlock_ruleset_attr;
101213 
101214 struct mount_attr;
101215 
101216 struct iovec;
101217 
101218 struct io_uring_params;
101219 
101220 struct __aio_sigset;
101221 
101222 struct sched_attr;
101223 
101224 struct mmsghdr;
101225 
101226 struct user_msghdr;
101227 
101228 struct msqid_ds;
101229 
101230 struct mq_attr;
101231 
101232 struct getcpu_cache;
101233 
101234 struct new_utsname;
101235 
101236 struct tms;
101237 
101238 struct sched_param;
101239 
101240 struct kexec_segment;
101241 
101242 struct linux_dirent64;
101243 
101244 struct statfs;
101245 
101246 struct vdso_pcpu_data {
101247 	u32 node;
101248 	long: 32;
101249 	long: 64;
101250 	long: 64;
101251 	long: 64;
101252 	long: 64;
101253 	long: 64;
101254 	long: 64;
101255 	long: 64;
101256 };
101257 
101258 struct loongarch_vdso_data {
101259 	struct vdso_pcpu_data pdata[64];
101260 	struct vdso_data data[2];
101261 	long: 64;
101262 	long: 64;
101263 	long: 64;
101264 	long: 64;
101265 };
101266 
101267 enum perf_event_loongarch_regs {
101268 	PERF_REG_LOONGARCH_PC = 0,
101269 	PERF_REG_LOONGARCH_R1 = 1,
101270 	PERF_REG_LOONGARCH_R2 = 2,
101271 	PERF_REG_LOONGARCH_R3 = 3,
101272 	PERF_REG_LOONGARCH_R4 = 4,
101273 	PERF_REG_LOONGARCH_R5 = 5,
101274 	PERF_REG_LOONGARCH_R6 = 6,
101275 	PERF_REG_LOONGARCH_R7 = 7,
101276 	PERF_REG_LOONGARCH_R8 = 8,
101277 	PERF_REG_LOONGARCH_R9 = 9,
101278 	PERF_REG_LOONGARCH_R10 = 10,
101279 	PERF_REG_LOONGARCH_R11 = 11,
101280 	PERF_REG_LOONGARCH_R12 = 12,
101281 	PERF_REG_LOONGARCH_R13 = 13,
101282 	PERF_REG_LOONGARCH_R14 = 14,
101283 	PERF_REG_LOONGARCH_R15 = 15,
101284 	PERF_REG_LOONGARCH_R16 = 16,
101285 	PERF_REG_LOONGARCH_R17 = 17,
101286 	PERF_REG_LOONGARCH_R18 = 18,
101287 	PERF_REG_LOONGARCH_R19 = 19,
101288 	PERF_REG_LOONGARCH_R20 = 20,
101289 	PERF_REG_LOONGARCH_R21 = 21,
101290 	PERF_REG_LOONGARCH_R22 = 22,
101291 	PERF_REG_LOONGARCH_R23 = 23,
101292 	PERF_REG_LOONGARCH_R24 = 24,
101293 	PERF_REG_LOONGARCH_R25 = 25,
101294 	PERF_REG_LOONGARCH_R26 = 26,
101295 	PERF_REG_LOONGARCH_R27 = 27,
101296 	PERF_REG_LOONGARCH_R28 = 28,
101297 	PERF_REG_LOONGARCH_R29 = 29,
101298 	PERF_REG_LOONGARCH_R30 = 30,
101299 	PERF_REG_LOONGARCH_R31 = 31,
101300 	PERF_REG_LOONGARCH_MAX = 32,
101301 };
101302 
101303 enum cpuhp_smt_control {
101304 	CPU_SMT_ENABLED = 0,
101305 	CPU_SMT_DISABLED = 1,
101306 	CPU_SMT_FORCE_DISABLED = 2,
101307 	CPU_SMT_NOT_SUPPORTED = 3,
101308 	CPU_SMT_NOT_IMPLEMENTED = 4,
101309 };
101310 
101311 struct trace_event_raw_cpuhp_enter {
101312 	struct trace_entry ent;
101313 	unsigned int cpu;
101314 	int target;
101315 	int idx;
101316 	void *fun;
101317 	char __data[0];
101318 };
101319 
101320 struct trace_event_raw_cpuhp_multi_enter {
101321 	struct trace_entry ent;
101322 	unsigned int cpu;
101323 	int target;
101324 	int idx;
101325 	void *fun;
101326 	char __data[0];
101327 };
101328 
101329 struct trace_event_raw_cpuhp_exit {
101330 	struct trace_entry ent;
101331 	unsigned int cpu;
101332 	int state;
101333 	int idx;
101334 	int ret;
101335 	char __data[0];
101336 };
101337 
101338 struct trace_event_data_offsets_cpuhp_enter {};
101339 
101340 struct trace_event_data_offsets_cpuhp_multi_enter {};
101341 
101342 struct trace_event_data_offsets_cpuhp_exit {};
101343 
101344 typedef void (*btf_trace_cpuhp_enter)(void *, unsigned int, int, int, int (*)(unsigned int));
101345 
101346 typedef void (*btf_trace_cpuhp_multi_enter)(void *, unsigned int, int, int, int (*)(unsigned int, struct hlist_node *), struct hlist_node *);
101347 
101348 typedef void (*btf_trace_cpuhp_exit)(void *, unsigned int, int, int, int);
101349 
101350 struct cpuhp_cpu_state {
101351 	enum cpuhp_state state;
101352 	enum cpuhp_state target;
101353 	enum cpuhp_state fail;
101354 	struct task_struct *thread;
101355 	bool should_run;
101356 	bool rollback;
101357 	bool single;
101358 	bool bringup;
101359 	struct hlist_node *node;
101360 	struct hlist_node *last;
101361 	enum cpuhp_state cb_state;
101362 	int result;
101363 	struct completion done_up;
101364 	struct completion done_down;
101365 };
101366 
101367 struct cpuhp_step {
101368 	const char *name;
101369 	union {
101370 		int (*single)(unsigned int);
101371 		int (*multi)(unsigned int, struct hlist_node *);
101372 	} startup;
101373 	union {
101374 		int (*single)(unsigned int);
101375 		int (*multi)(unsigned int, struct hlist_node *);
101376 	} teardown;
101377 	struct hlist_head list;
101378 	bool cant_stop;
101379 	bool multi_instance;
101380 };
101381 
101382 enum cpu_mitigations {
101383 	CPU_MITIGATIONS_OFF = 0,
101384 	CPU_MITIGATIONS_AUTO = 1,
101385 	CPU_MITIGATIONS_AUTO_NOSMT = 2,
101386 };
101387 
101388 enum sysctl_writes_mode {
101389 	SYSCTL_WRITES_LEGACY = -1,
101390 	SYSCTL_WRITES_WARN = 0,
101391 	SYSCTL_WRITES_STRICT = 1,
101392 };
101393 
101394 struct do_proc_dointvec_minmax_conv_param {
101395 	int *min;
101396 	int *max;
101397 };
101398 
101399 struct do_proc_douintvec_minmax_conv_param {
101400 	unsigned int *min;
101401 	unsigned int *max;
101402 };
101403 
101404 struct wq_flusher;
101405 
101406 struct wq_device;
101407 
101408 struct workqueue_struct {
101409 	struct list_head pwqs;
101410 	struct list_head list;
101411 	struct mutex mutex;
101412 	int work_color;
101413 	int flush_color;
101414 	atomic_t nr_pwqs_to_flush;
101415 	struct wq_flusher *first_flusher;
101416 	struct list_head flusher_queue;
101417 	struct list_head flusher_overflow;
101418 	struct list_head maydays;
101419 	struct worker *rescuer;
101420 	int nr_drainers;
101421 	int saved_max_active;
101422 	struct workqueue_attrs *unbound_attrs;
101423 	struct pool_workqueue *dfl_pwq;
101424 	struct wq_device *wq_dev;
101425 	char name[24];
101426 	struct callback_head rcu;
101427 	long: 64;
101428 	long: 64;
101429 	long: 64;
101430 	long: 64;
101431 	long: 64;
101432 	unsigned int flags;
101433 	struct pool_workqueue *cpu_pwqs;
101434 	struct pool_workqueue *numa_pwq_tbl[0];
101435 	long: 64;
101436 	long: 64;
101437 	long: 64;
101438 	long: 64;
101439 	long: 64;
101440 	long: 64;
101441 };
101442 
101443 struct pool_workqueue {
101444 	struct worker_pool *pool;
101445 	struct workqueue_struct *wq;
101446 	int work_color;
101447 	int flush_color;
101448 	int refcnt;
101449 	int nr_in_flight[16];
101450 	int nr_active;
101451 	int max_active;
101452 	struct list_head inactive_works;
101453 	struct list_head pwqs_node;
101454 	struct list_head mayday_node;
101455 	struct work_struct unbound_release_work;
101456 	struct callback_head rcu;
101457 	long: 64;
101458 	long: 64;
101459 	long: 64;
101460 	long: 64;
101461 	long: 64;
101462 	long: 64;
101463 	long: 64;
101464 };
101465 
101466 struct worker_pool {
101467 	raw_spinlock_t lock;
101468 	int cpu;
101469 	int node;
101470 	int id;
101471 	unsigned int flags;
101472 	long unsigned int watchdog_ts;
101473 	int nr_running;
101474 	struct list_head worklist;
101475 	int nr_workers;
101476 	int nr_idle;
101477 	struct list_head idle_list;
101478 	struct timer_list idle_timer;
101479 	struct timer_list mayday_timer;
101480 	struct hlist_head busy_hash[64];
101481 	struct worker *manager;
101482 	struct list_head workers;
101483 	struct completion *detach_completion;
101484 	struct ida worker_ida;
101485 	struct workqueue_attrs *attrs;
101486 	struct hlist_node hash_node;
101487 	int refcnt;
101488 	struct callback_head rcu;
101489 };
101490 
101491 enum {
101492 	POOL_MANAGER_ACTIVE = 1,
101493 	POOL_DISASSOCIATED = 4,
101494 	WORKER_DIE = 2,
101495 	WORKER_IDLE = 4,
101496 	WORKER_PREP = 8,
101497 	WORKER_CPU_INTENSIVE = 64,
101498 	WORKER_UNBOUND = 128,
101499 	WORKER_REBOUND = 256,
101500 	WORKER_NOT_RUNNING = 456,
101501 	NR_STD_WORKER_POOLS = 2,
101502 	UNBOUND_POOL_HASH_ORDER = 6,
101503 	BUSY_WORKER_HASH_ORDER = 6,
101504 	MAX_IDLE_WORKERS_RATIO = 4,
101505 	IDLE_WORKER_TIMEOUT = 75000,
101506 	MAYDAY_INITIAL_TIMEOUT = 2,
101507 	MAYDAY_INTERVAL = 25,
101508 	CREATE_COOLDOWN = 250,
101509 	RESCUER_NICE_LEVEL = -20,
101510 	HIGHPRI_NICE_LEVEL = -20,
101511 	WQ_NAME_LEN = 24,
101512 };
101513 
101514 struct wq_flusher {
101515 	struct list_head list;
101516 	int flush_color;
101517 	struct completion done;
101518 };
101519 
101520 struct wq_device {
101521 	struct workqueue_struct *wq;
101522 	struct device dev;
101523 };
101524 
101525 struct trace_event_raw_workqueue_queue_work {
101526 	struct trace_entry ent;
101527 	void *work;
101528 	void *function;
101529 	u32 __data_loc_workqueue;
101530 	int req_cpu;
101531 	int cpu;
101532 	char __data[0];
101533 };
101534 
101535 struct trace_event_raw_workqueue_activate_work {
101536 	struct trace_entry ent;
101537 	void *work;
101538 	char __data[0];
101539 };
101540 
101541 struct trace_event_raw_workqueue_execute_start {
101542 	struct trace_entry ent;
101543 	void *work;
101544 	void *function;
101545 	char __data[0];
101546 };
101547 
101548 struct trace_event_raw_workqueue_execute_end {
101549 	struct trace_entry ent;
101550 	void *work;
101551 	void *function;
101552 	char __data[0];
101553 };
101554 
101555 struct trace_event_data_offsets_workqueue_queue_work {
101556 	u32 workqueue;
101557 };
101558 
101559 struct trace_event_data_offsets_workqueue_activate_work {};
101560 
101561 struct trace_event_data_offsets_workqueue_execute_start {};
101562 
101563 struct trace_event_data_offsets_workqueue_execute_end {};
101564 
101565 typedef void (*btf_trace_workqueue_queue_work)(void *, int, struct pool_workqueue *, struct work_struct *);
101566 
101567 typedef void (*btf_trace_workqueue_activate_work)(void *, struct work_struct *);
101568 
101569 typedef void (*btf_trace_workqueue_execute_start)(void *, struct work_struct *);
101570 
101571 typedef void (*btf_trace_workqueue_execute_end)(void *, struct work_struct *, work_func_t);
101572 
101573 struct wq_barrier {
101574 	struct work_struct work;
101575 	struct completion done;
101576 	struct task_struct *task;
101577 };
101578 
101579 struct cwt_wait {
101580 	wait_queue_entry_t wait;
101581 	struct work_struct *work;
101582 };
101583 
101584 struct apply_wqattrs_ctx {
101585 	struct workqueue_struct *wq;
101586 	struct workqueue_attrs *attrs;
101587 	struct list_head list;
101588 	struct pool_workqueue *dfl_pwq;
101589 	struct pool_workqueue *pwq_tbl[0];
101590 };
101591 
101592 struct work_for_cpu {
101593 	struct work_struct work;
101594 	long int (*fn)(void *);
101595 	void *arg;
101596 	long int ret;
101597 };
101598 
101599 struct param_attribute {
101600 	struct module_attribute mattr;
101601 	const struct kernel_param *param;
101602 };
101603 
101604 struct module_param_attrs {
101605 	unsigned int num;
101606 	struct attribute_group grp;
101607 	struct param_attribute attrs[0];
101608 };
101609 
101610 struct kmalloced_param {
101611 	struct list_head list;
101612 	char val[0];
101613 };
101614 
101615 struct die_args {
101616 	struct pt_regs *regs;
101617 	const char *str;
101618 	long int err;
101619 	int trapnr;
101620 	int signr;
101621 };
101622 
101623 enum reboot_type {
101624 	BOOT_TRIPLE = 116,
101625 	BOOT_KBD = 107,
101626 	BOOT_BIOS = 98,
101627 	BOOT_ACPI = 97,
101628 	BOOT_EFI = 101,
101629 	BOOT_CF9_FORCE = 112,
101630 	BOOT_CF9_SAFE = 113,
101631 };
101632 
101633 struct sys_off_handler {
101634 	struct notifier_block nb;
101635 	int (*sys_off_cb)(struct sys_off_data *);
101636 	void *cb_data;
101637 	enum sys_off_mode mode;
101638 	bool blocking;
101639 	void *list;
101640 };
101641 
101642 struct dl_bandwidth {
101643 	raw_spinlock_t dl_runtime_lock;
101644 	u64 dl_runtime;
101645 	u64 dl_period;
101646 };
101647 
101648 struct idle_timer {
101649 	struct hrtimer timer;
101650 	int done;
101651 };
101652 
101653 typedef struct task_group *rt_rq_iter_t;
101654 
101655 struct rt_schedulable_data {
101656 	struct task_group *tg;
101657 	u64 rt_period;
101658 	u64 rt_runtime;
101659 };
101660 
101661 struct semaphore_waiter {
101662 	struct list_head list;
101663 	struct task_struct *task;
101664 	bool up;
101665 };
101666 
101667 struct mcs_spinlock {
101668 	struct mcs_spinlock *next;
101669 	int locked;
101670 	int count;
101671 };
101672 
101673 struct qnode {
101674 	struct mcs_spinlock mcs;
101675 };
101676 
101677 struct kmsg_dump_iter {
101678 	u64 cur_seq;
101679 	u64 next_seq;
101680 };
101681 
101682 struct kmsg_dumper {
101683 	struct list_head list;
101684 	void (*dump)(struct kmsg_dumper *, enum kmsg_dump_reason);
101685 	enum kmsg_dump_reason max_reason;
101686 	bool registered;
101687 };
101688 
101689 struct trace_event_raw_console {
101690 	struct trace_entry ent;
101691 	u32 __data_loc_msg;
101692 	char __data[0];
101693 };
101694 
101695 struct trace_event_data_offsets_console {
101696 	u32 msg;
101697 };
101698 
101699 typedef void (*btf_trace_console)(void *, const char *, size_t);
101700 
101701 enum printk_info_flags {
101702 	LOG_NEWLINE = 2,
101703 	LOG_CONT = 8,
101704 };
101705 
101706 enum devkmsg_log_bits {
101707 	__DEVKMSG_LOG_BIT_ON = 0,
101708 	__DEVKMSG_LOG_BIT_OFF = 1,
101709 	__DEVKMSG_LOG_BIT_LOCK = 2,
101710 };
101711 
101712 enum devkmsg_log_masks {
101713 	DEVKMSG_LOG_MASK_ON = 1,
101714 	DEVKMSG_LOG_MASK_OFF = 2,
101715 	DEVKMSG_LOG_MASK_LOCK = 4,
101716 };
101717 
101718 enum con_msg_format_flags {
101719 	MSG_FORMAT_DEFAULT = 0,
101720 	MSG_FORMAT_SYSLOG = 1,
101721 };
101722 
101723 struct latched_seq {
101724 	seqcount_latch_t latch;
101725 	u64 val[2];
101726 };
101727 
101728 struct devkmsg_user {
101729 	atomic64_t seq;
101730 	struct ratelimit_state rs;
101731 	struct mutex lock;
101732 	char buf[8192];
101733 	struct printk_info info;
101734 	char text_buf[8192];
101735 	struct printk_record record;
101736 };
101737 
101738 struct irq_devres {
101739 	unsigned int irq;
101740 	void *dev_id;
101741 };
101742 
101743 struct irq_desc_devres {
101744 	unsigned int from;
101745 	unsigned int cnt;
101746 };
101747 
101748 struct irq_generic_chip_devres {
101749 	struct irq_chip_generic *gc;
101750 	u32 msk;
101751 	unsigned int clr;
101752 	unsigned int set;
101753 };
101754 
101755 enum {
101756 	AFFINITY = 0,
101757 	AFFINITY_LIST = 1,
101758 	EFFECTIVE = 2,
101759 	EFFECTIVE_LIST = 3,
101760 };
101761 
101762 struct node_vectors {
101763 	unsigned int id;
101764 	union {
101765 		unsigned int nvectors;
101766 		unsigned int ncpus;
101767 	};
101768 };
101769 
101770 enum pci_p2pdma_map_type {
101771 	PCI_P2PDMA_MAP_UNKNOWN = 0,
101772 	PCI_P2PDMA_MAP_NOT_SUPPORTED = 1,
101773 	PCI_P2PDMA_MAP_BUS_ADDR = 2,
101774 	PCI_P2PDMA_MAP_THRU_HOST_BRIDGE = 3,
101775 };
101776 
101777 struct pci_p2pdma_map_state {
101778 	struct dev_pagemap *pgmap;
101779 	int map;
101780 	u64 bus_off;
101781 };
101782 
101783 struct io_tlb_area {
101784 	long unsigned int used;
101785 	unsigned int index;
101786 	spinlock_t lock;
101787 };
101788 
101789 struct io_tlb_slot {
101790 	phys_addr_t orig_addr;
101791 	size_t alloc_size;
101792 	unsigned int list;
101793 };
101794 
101795 struct trace_event_raw_swiotlb_bounced {
101796 	struct trace_entry ent;
101797 	u32 __data_loc_dev_name;
101798 	u64 dma_mask;
101799 	dma_addr_t dev_addr;
101800 	size_t size;
101801 	bool force;
101802 	char __data[0];
101803 };
101804 
101805 struct trace_event_data_offsets_swiotlb_bounced {
101806 	u32 dev_name;
101807 };
101808 
101809 typedef void (*btf_trace_swiotlb_bounced)(void *, struct device *, dma_addr_t, size_t);
101810 
101811 enum kcmp_type {
101812 	KCMP_FILE = 0,
101813 	KCMP_VM = 1,
101814 	KCMP_FILES = 2,
101815 	KCMP_FS = 3,
101816 	KCMP_SIGHAND = 4,
101817 	KCMP_IO = 5,
101818 	KCMP_SYSVSEM = 6,
101819 	KCMP_EPOLL_TFD = 7,
101820 	KCMP_TYPES = 8,
101821 };
101822 
101823 struct kcmp_epoll_slot {
101824 	__u32 efd;
101825 	__u32 tfd;
101826 	__u32 toff;
101827 };
101828 
101829 typedef struct sigevent sigevent_t;
101830 
101831 enum tick_broadcast_state {
101832 	TICK_BROADCAST_EXIT = 0,
101833 	TICK_BROADCAST_ENTER = 1,
101834 };
101835 
101836 enum {
101837 	Q_REQUEUE_PI_NONE = 0,
101838 	Q_REQUEUE_PI_IGNORE = 1,
101839 	Q_REQUEUE_PI_IN_PROGRESS = 2,
101840 	Q_REQUEUE_PI_WAIT = 3,
101841 	Q_REQUEUE_PI_DONE = 4,
101842 	Q_REQUEUE_PI_LOCKED = 5,
101843 };
101844 
101845 typedef __u16 comp_t;
101846 
101847 struct acct_v3 {
101848 	char ac_flag;
101849 	char ac_version;
101850 	__u16 ac_tty;
101851 	__u32 ac_exitcode;
101852 	__u32 ac_uid;
101853 	__u32 ac_gid;
101854 	__u32 ac_pid;
101855 	__u32 ac_ppid;
101856 	__u32 ac_btime;
101857 	__u32 ac_etime;
101858 	comp_t ac_utime;
101859 	comp_t ac_stime;
101860 	comp_t ac_mem;
101861 	comp_t ac_io;
101862 	comp_t ac_rw;
101863 	comp_t ac_minflt;
101864 	comp_t ac_majflt;
101865 	comp_t ac_swaps;
101866 	char ac_comm[16];
101867 };
101868 
101869 typedef struct acct_v3 acct_t;
101870 
101871 struct bsd_acct_struct {
101872 	struct fs_pin pin;
101873 	atomic_long_t count;
101874 	struct callback_head rcu;
101875 	struct mutex lock;
101876 	int active;
101877 	long unsigned int needcheck;
101878 	struct file *file;
101879 	struct pid_namespace *ns;
101880 	struct work_struct work;
101881 	struct completion done;
101882 };
101883 
101884 struct trace_event_raw_cgroup_root {
101885 	struct trace_entry ent;
101886 	int root;
101887 	u16 ss_mask;
101888 	u32 __data_loc_name;
101889 	char __data[0];
101890 };
101891 
101892 struct trace_event_raw_cgroup {
101893 	struct trace_entry ent;
101894 	int root;
101895 	int level;
101896 	u64 id;
101897 	u32 __data_loc_path;
101898 	char __data[0];
101899 };
101900 
101901 struct trace_event_raw_cgroup_migrate {
101902 	struct trace_entry ent;
101903 	int dst_root;
101904 	int dst_level;
101905 	u64 dst_id;
101906 	int pid;
101907 	u32 __data_loc_dst_path;
101908 	u32 __data_loc_comm;
101909 	char __data[0];
101910 };
101911 
101912 struct trace_event_raw_cgroup_event {
101913 	struct trace_entry ent;
101914 	int root;
101915 	int level;
101916 	u64 id;
101917 	u32 __data_loc_path;
101918 	int val;
101919 	char __data[0];
101920 };
101921 
101922 struct trace_event_data_offsets_cgroup_root {
101923 	u32 name;
101924 };
101925 
101926 struct trace_event_data_offsets_cgroup {
101927 	u32 path;
101928 };
101929 
101930 struct trace_event_data_offsets_cgroup_migrate {
101931 	u32 dst_path;
101932 	u32 comm;
101933 };
101934 
101935 struct trace_event_data_offsets_cgroup_event {
101936 	u32 path;
101937 };
101938 
101939 typedef void (*btf_trace_cgroup_setup_root)(void *, struct cgroup_root *);
101940 
101941 typedef void (*btf_trace_cgroup_destroy_root)(void *, struct cgroup_root *);
101942 
101943 typedef void (*btf_trace_cgroup_remount)(void *, struct cgroup_root *);
101944 
101945 typedef void (*btf_trace_cgroup_mkdir)(void *, struct cgroup *, const char *);
101946 
101947 typedef void (*btf_trace_cgroup_rmdir)(void *, struct cgroup *, const char *);
101948 
101949 typedef void (*btf_trace_cgroup_release)(void *, struct cgroup *, const char *);
101950 
101951 typedef void (*btf_trace_cgroup_rename)(void *, struct cgroup *, const char *);
101952 
101953 typedef void (*btf_trace_cgroup_freeze)(void *, struct cgroup *, const char *);
101954 
101955 typedef void (*btf_trace_cgroup_unfreeze)(void *, struct cgroup *, const char *);
101956 
101957 typedef void (*btf_trace_cgroup_attach_task)(void *, struct cgroup *, const char *, struct task_struct *, bool);
101958 
101959 typedef void (*btf_trace_cgroup_transfer_tasks)(void *, struct cgroup *, const char *, struct task_struct *, bool);
101960 
101961 typedef void (*btf_trace_cgroup_notify_populated)(void *, struct cgroup *, const char *, int);
101962 
101963 typedef void (*btf_trace_cgroup_notify_frozen)(void *, struct cgroup *, const char *, int);
101964 
101965 enum cgroup_opt_features {
101966 	OPT_FEATURE_COUNT = 0,
101967 };
101968 
101969 enum cgroup2_param {
101970 	Opt_nsdelegate = 0,
101971 	Opt_favordynmods___2 = 1,
101972 	Opt_memory_localevents = 2,
101973 	Opt_memory_recursiveprot = 3,
101974 	nr__cgroup2_params = 4,
101975 };
101976 
101977 enum audit_nfcfgop {
101978 	AUDIT_XT_OP_REGISTER = 0,
101979 	AUDIT_XT_OP_REPLACE = 1,
101980 	AUDIT_XT_OP_UNREGISTER = 2,
101981 	AUDIT_NFT_OP_TABLE_REGISTER = 3,
101982 	AUDIT_NFT_OP_TABLE_UNREGISTER = 4,
101983 	AUDIT_NFT_OP_CHAIN_REGISTER = 5,
101984 	AUDIT_NFT_OP_CHAIN_UNREGISTER = 6,
101985 	AUDIT_NFT_OP_RULE_REGISTER = 7,
101986 	AUDIT_NFT_OP_RULE_UNREGISTER = 8,
101987 	AUDIT_NFT_OP_SET_REGISTER = 9,
101988 	AUDIT_NFT_OP_SET_UNREGISTER = 10,
101989 	AUDIT_NFT_OP_SETELEM_REGISTER = 11,
101990 	AUDIT_NFT_OP_SETELEM_UNREGISTER = 12,
101991 	AUDIT_NFT_OP_GEN_REGISTER = 13,
101992 	AUDIT_NFT_OP_OBJ_REGISTER = 14,
101993 	AUDIT_NFT_OP_OBJ_UNREGISTER = 15,
101994 	AUDIT_NFT_OP_OBJ_RESET = 16,
101995 	AUDIT_NFT_OP_FLOWTABLE_REGISTER = 17,
101996 	AUDIT_NFT_OP_FLOWTABLE_UNREGISTER = 18,
101997 	AUDIT_NFT_OP_INVALID = 19,
101998 };
101999 
102000 struct audit_aux_data {
102001 	struct audit_aux_data *next;
102002 	int type;
102003 };
102004 
102005 struct audit_chunk;
102006 
102007 struct audit_tree_refs {
102008 	struct audit_tree_refs *next;
102009 	struct audit_chunk *c[31];
102010 };
102011 
102012 struct audit_aux_data_pids {
102013 	struct audit_aux_data d;
102014 	pid_t target_pid[16];
102015 	kuid_t target_auid[16];
102016 	kuid_t target_uid[16];
102017 	unsigned int target_sessionid[16];
102018 	u32 target_sid[16];
102019 	char target_comm[256];
102020 	int pid_count;
102021 };
102022 
102023 struct audit_aux_data_bprm_fcaps {
102024 	struct audit_aux_data d;
102025 	struct audit_cap_data fcap;
102026 	unsigned int fcap_ver;
102027 	struct audit_cap_data old_pcap;
102028 	struct audit_cap_data new_pcap;
102029 };
102030 
102031 struct audit_nfcfgop_tab {
102032 	enum audit_nfcfgop op;
102033 	const char *s;
102034 };
102035 
102036 struct audit_chunk;
102037 
102038 struct audit_tree {
102039 	refcount_t count;
102040 	int goner;
102041 	struct audit_chunk *root;
102042 	struct list_head chunks;
102043 	struct list_head rules;
102044 	struct list_head list;
102045 	struct list_head same_root;
102046 	struct callback_head head;
102047 	char pathname[0];
102048 };
102049 
102050 struct audit_node {
102051 	struct list_head list;
102052 	struct audit_tree *owner;
102053 	unsigned int index;
102054 };
102055 
102056 struct audit_chunk {
102057 	struct list_head hash;
102058 	long unsigned int key;
102059 	struct fsnotify_mark *mark;
102060 	struct list_head trees;
102061 	int count;
102062 	atomic_long_t refs;
102063 	struct callback_head head;
102064 	struct audit_node owners[0];
102065 };
102066 
102067 struct audit_tree_mark {
102068 	struct fsnotify_mark mark;
102069 	struct audit_chunk *chunk;
102070 };
102071 
102072 enum {
102073 	HASH_SIZE = 128,
102074 };
102075 
102076 struct trace_export {
102077 	struct trace_export *next;
102078 	void (*write)(struct trace_export *, const void *, unsigned int);
102079 	int flags;
102080 };
102081 
102082 typedef bool (*cond_update_fn_t)(struct trace_array *, void *);
102083 
102084 struct trace_min_max_param {
102085 	struct mutex *lock;
102086 	u64 *val;
102087 	u64 *min;
102088 	u64 *max;
102089 };
102090 
102091 struct saved_cmdlines_buffer {
102092 	unsigned int map_pid_to_cmdline[32769];
102093 	unsigned int *map_cmdline_to_pid;
102094 	unsigned int cmdline_num;
102095 	int cmdline_idx;
102096 	char *saved_cmdlines;
102097 };
102098 
102099 struct ftrace_stack {
102100 	long unsigned int calls[4096];
102101 };
102102 
102103 struct ftrace_stacks {
102104 	struct ftrace_stack stacks[4];
102105 };
102106 
102107 struct trace_buffer_struct {
102108 	int nesting;
102109 	char buffer[4096];
102110 };
102111 
102112 struct ftrace_buffer_info {
102113 	struct trace_iterator iter;
102114 	void *spare;
102115 	unsigned int spare_cpu;
102116 	unsigned int read;
102117 };
102118 
102119 struct err_info {
102120 	const char **errs;
102121 	u8 type;
102122 	u16 pos;
102123 	u64 ts;
102124 };
102125 
102126 struct tracing_log_err {
102127 	struct list_head list;
102128 	struct err_info info;
102129 	char loc[128];
102130 	char *cmd;
102131 };
102132 
102133 struct buffer_ref {
102134 	struct trace_buffer *buffer;
102135 	void *page;
102136 	int cpu;
102137 	refcount_t refcount;
102138 };
102139 
102140 enum blktrace_notify {
102141 	__BLK_TN_PROCESS = 0,
102142 	__BLK_TN_TIMESTAMP = 1,
102143 	__BLK_TN_MESSAGE = 2,
102144 	__BLK_TN_CGROUP = 256,
102145 };
102146 
102147 struct blk_io_trace {
102148 	__u32 magic;
102149 	__u32 sequence;
102150 	__u64 time;
102151 	__u64 sector;
102152 	__u32 bytes;
102153 	__u32 action;
102154 	__u32 pid;
102155 	__u32 device;
102156 	__u32 cpu;
102157 	__u16 error;
102158 	__u16 pdu_len;
102159 };
102160 
102161 struct blk_io_trace_remap {
102162 	__be32 device_from;
102163 	__be32 device_to;
102164 	__be64 sector_from;
102165 };
102166 
102167 enum {
102168 	Blktrace_setup = 1,
102169 	Blktrace_running = 2,
102170 	Blktrace_stopped = 3,
102171 };
102172 
102173 struct blk_user_trace_setup {
102174 	char name[32];
102175 	__u16 act_mask;
102176 	__u32 buf_size;
102177 	__u32 buf_nr;
102178 	__u64 start_lba;
102179 	__u64 end_lba;
102180 	__u32 pid;
102181 };
102182 
102183 typedef void blk_log_action_t(struct trace_iterator *, const char *, bool);
102184 
102185 struct enable_trigger_data {
102186 	struct trace_event_file *file;
102187 	bool enable;
102188 	bool hist;
102189 };
102190 
102191 enum {
102192 	BPF_F_GET_BRANCH_RECORDS_SIZE = 1,
102193 };
102194 
102195 struct bpf_perf_event_value {
102196 	__u64 counter;
102197 	__u64 enabled;
102198 	__u64 running;
102199 };
102200 
102201 struct btf_ptr {
102202 	void *ptr;
102203 	__u32 type_id;
102204 	__u32 flags;
102205 };
102206 
102207 struct bpf_trace_run_ctx {
102208 	struct bpf_run_ctx run_ctx;
102209 	u64 bpf_cookie;
102210 };
102211 
102212 typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *, const void *);
102213 
102214 struct bpf_key {
102215 	struct key *key;
102216 	bool has_ref;
102217 };
102218 
102219 struct perf_event_query_bpf {
102220 	__u32 ids_len;
102221 	__u32 prog_cnt;
102222 	__u32 ids[0];
102223 };
102224 
102225 struct trace_event_raw_bpf_trace_printk {
102226 	struct trace_entry ent;
102227 	u32 __data_loc_bpf_string;
102228 	char __data[0];
102229 };
102230 
102231 struct trace_event_data_offsets_bpf_trace_printk {
102232 	u32 bpf_string;
102233 };
102234 
102235 typedef void (*btf_trace_bpf_trace_printk)(void *, const char *);
102236 
102237 struct bpf_trace_module {
102238 	struct module *module;
102239 	struct list_head list;
102240 };
102241 
102242 typedef u64 (*btf_bpf_probe_read_user)(void *, u32, const void *);
102243 
102244 typedef u64 (*btf_bpf_probe_read_user_str)(void *, u32, const void *);
102245 
102246 typedef u64 (*btf_bpf_probe_read_kernel)(void *, u32, const void *);
102247 
102248 typedef u64 (*btf_bpf_probe_read_kernel_str)(void *, u32, const void *);
102249 
102250 typedef u64 (*btf_bpf_probe_write_user)(void *, const void *, u32);
102251 
102252 typedef u64 (*btf_bpf_trace_printk)(char *, u32, u64, u64, u64);
102253 
102254 typedef u64 (*btf_bpf_trace_vprintk)(char *, u32, const void *, u32);
102255 
102256 typedef u64 (*btf_bpf_seq_printf)(struct seq_file *, char *, u32, const void *, u32);
102257 
102258 typedef u64 (*btf_bpf_seq_write)(struct seq_file *, const void *, u32);
102259 
102260 typedef u64 (*btf_bpf_seq_printf_btf)(struct seq_file *, struct btf_ptr *, u32, u64);
102261 
102262 typedef u64 (*btf_bpf_perf_event_read)(struct bpf_map *, u64);
102263 
102264 typedef u64 (*btf_bpf_perf_event_read_value)(struct bpf_map *, u64, struct bpf_perf_event_value *, u32);
102265 
102266 struct bpf_trace_sample_data {
102267 	struct perf_sample_data sds[3];
102268 };
102269 
102270 typedef u64 (*btf_bpf_perf_event_output)(struct pt_regs *, struct bpf_map *, u64, void *, u64);
102271 
102272 struct bpf_nested_pt_regs {
102273 	struct pt_regs regs[3];
102274 };
102275 
102276 typedef u64 (*btf_bpf_get_current_task)();
102277 
102278 typedef u64 (*btf_bpf_get_current_task_btf)();
102279 
102280 typedef u64 (*btf_bpf_task_pt_regs)(struct task_struct *);
102281 
102282 typedef u64 (*btf_bpf_current_task_under_cgroup)(struct bpf_map *, u32);
102283 
102284 struct send_signal_irq_work {
102285 	struct irq_work irq_work;
102286 	struct task_struct *task;
102287 	u32 sig;
102288 	enum pid_type type;
102289 };
102290 
102291 typedef u64 (*btf_bpf_send_signal)(u32);
102292 
102293 typedef u64 (*btf_bpf_send_signal_thread)(u32);
102294 
102295 typedef u64 (*btf_bpf_d_path)(struct path *, char *, u32);
102296 
102297 typedef u64 (*btf_bpf_snprintf_btf)(char *, u32, struct btf_ptr *, u32, u64);
102298 
102299 typedef u64 (*btf_bpf_get_func_ip_tracing)(void *);
102300 
102301 typedef u64 (*btf_bpf_get_func_ip_kprobe)(struct pt_regs *);
102302 
102303 typedef u64 (*btf_bpf_get_func_ip_kprobe_multi)(struct pt_regs *);
102304 
102305 typedef u64 (*btf_bpf_get_attach_cookie_kprobe_multi)(struct pt_regs *);
102306 
102307 typedef u64 (*btf_bpf_get_attach_cookie_trace)(void *);
102308 
102309 typedef u64 (*btf_bpf_get_attach_cookie_pe)(struct bpf_perf_event_data_kern *);
102310 
102311 typedef u64 (*btf_bpf_get_attach_cookie_tracing)(void *);
102312 
102313 typedef u64 (*btf_bpf_get_branch_snapshot)(void *, u32, u64);
102314 
102315 typedef u64 (*btf_get_func_arg)(void *, u32, u64 *);
102316 
102317 typedef u64 (*btf_get_func_ret)(void *, u64 *);
102318 
102319 typedef u64 (*btf_get_func_arg_cnt)(void *);
102320 
102321 typedef u64 (*btf_bpf_perf_event_output_tp)(void *, struct bpf_map *, u64, void *, u64);
102322 
102323 typedef u64 (*btf_bpf_get_stackid_tp)(void *, struct bpf_map *, u64);
102324 
102325 typedef u64 (*btf_bpf_get_stack_tp)(void *, void *, u32, u64);
102326 
102327 typedef u64 (*btf_bpf_perf_prog_read_value)(struct bpf_perf_event_data_kern *, struct bpf_perf_event_value *, u32);
102328 
102329 typedef u64 (*btf_bpf_read_branch_records)(struct bpf_perf_event_data_kern *, void *, u32, u64);
102330 
102331 struct bpf_raw_tp_regs {
102332 	struct pt_regs regs[3];
102333 };
102334 
102335 typedef u64 (*btf_bpf_perf_event_output_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64, void *, u64);
102336 
102337 typedef u64 (*btf_bpf_get_stackid_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64);
102338 
102339 typedef u64 (*btf_bpf_get_stack_raw_tp)(struct bpf_raw_tracepoint_args *, void *, u32, u64);
102340 
102341 enum bpf_stats_type {
102342 	BPF_STATS_RUN_TIME = 0,
102343 };
102344 
102345 struct bpf_tramp_run_ctx {
102346 	struct bpf_run_ctx run_ctx;
102347 	u64 bpf_cookie;
102348 	struct bpf_run_ctx *saved_run_ctx;
102349 };
102350 
102351 struct bpf_tracing_link {
102352 	struct bpf_tramp_link link;
102353 	enum bpf_attach_type attach_type;
102354 	struct bpf_trampoline *trampoline;
102355 	struct bpf_prog *tgt_prog;
102356 };
102357 
102358 enum bpf_audit {
102359 	BPF_AUDIT_LOAD = 0,
102360 	BPF_AUDIT_UNLOAD = 1,
102361 	BPF_AUDIT_MAX = 2,
102362 };
102363 
102364 struct bpf_prog_kstats {
102365 	u64 nsecs;
102366 	u64 cnt;
102367 	u64 misses;
102368 };
102369 
102370 struct bpf_raw_tp_link {
102371 	struct bpf_link link;
102372 	struct bpf_raw_event_map *btp;
102373 };
102374 
102375 struct bpf_perf_link {
102376 	struct bpf_link link;
102377 	struct file *perf_file;
102378 };
102379 
102380 typedef u64 (*btf_bpf_sys_bpf)(int, union bpf_attr *, u32);
102381 
102382 typedef u64 (*btf_bpf_sys_close)(u32);
102383 
102384 typedef u64 (*btf_bpf_kallsyms_lookup_name)(const char *, int, int, u64 *);
102385 
102386 struct bpf_iter_seq_map_info {
102387 	u32 map_id;
102388 };
102389 
102390 struct bpf_iter__bpf_map {
102391 	union {
102392 		struct bpf_iter_meta *meta;
102393 	};
102394 	union {
102395 		struct bpf_map *map;
102396 	};
102397 };
102398 
102399 struct bucket {
102400 	struct hlist_nulls_head head;
102401 	raw_spinlock_t raw_lock;
102402 };
102403 
102404 struct htab_elem;
102405 
102406 struct bpf_htab {
102407 	struct bpf_map map;
102408 	struct bpf_mem_alloc ma;
102409 	struct bpf_mem_alloc pcpu_ma;
102410 	struct bucket *buckets;
102411 	void *elems;
102412 	long: 64;
102413 	long: 64;
102414 	union {
102415 		struct pcpu_freelist freelist;
102416 		struct bpf_lru lru;
102417 	};
102418 	struct htab_elem **extra_elems;
102419 	struct percpu_counter pcount;
102420 	atomic_t count;
102421 	bool use_percpu_counter;
102422 	u32 n_buckets;
102423 	u32 elem_size;
102424 	u32 hashrnd;
102425 	struct lock_class_key lockdep_key;
102426 	int *map_locked[8];
102427 	long: 64;
102428 	long: 64;
102429 	long: 64;
102430 	long: 64;
102431 	long: 64;
102432 	long: 64;
102433 	long: 64;
102434 };
102435 
102436 struct htab_elem {
102437 	union {
102438 		struct hlist_nulls_node hash_node;
102439 		struct {
102440 			void *padding;
102441 			union {
102442 				struct pcpu_freelist_node fnode;
102443 				struct htab_elem *batch_flink;
102444 			};
102445 		};
102446 	};
102447 	union {
102448 		void *ptr_to_pptr;
102449 		struct bpf_lru_node lru_node;
102450 	};
102451 	u32 hash;
102452 	int: 32;
102453 	char key[0];
102454 };
102455 
102456 struct bpf_iter_seq_hash_map_info {
102457 	struct bpf_map *map;
102458 	struct bpf_htab *htab;
102459 	void *percpu_value_buf;
102460 	u32 bucket_id;
102461 	u32 skip_elems;
102462 };
102463 
102464 struct bpf_bloom_filter {
102465 	struct bpf_map map;
102466 	u32 bitset_mask;
102467 	u32 hash_seed;
102468 	u32 aligned_u32_count;
102469 	u32 nr_hash_funcs;
102470 	long unsigned int bitset[0];
102471 	long: 64;
102472 	long: 64;
102473 	long: 64;
102474 	long: 64;
102475 	long: 64;
102476 	long: 64;
102477 };
102478 
102479 enum {
102480 	BPF_RB_NO_WAKEUP = 1,
102481 	BPF_RB_FORCE_WAKEUP = 2,
102482 };
102483 
102484 enum {
102485 	BPF_RB_AVAIL_DATA = 0,
102486 	BPF_RB_RING_SIZE = 1,
102487 	BPF_RB_CONS_POS = 2,
102488 	BPF_RB_PROD_POS = 3,
102489 };
102490 
102491 enum {
102492 	BPF_RINGBUF_BUSY_BIT = 2147483648,
102493 	BPF_RINGBUF_DISCARD_BIT = 1073741824,
102494 	BPF_RINGBUF_HDR_SZ = 8,
102495 };
102496 
102497 struct bpf_ringbuf {
102498 	wait_queue_head_t waitq;
102499 	struct irq_work work;
102500 	u64 mask;
102501 	struct page **pages;
102502 	int nr_pages;
102503 	long: 32;
102504 	long: 64;
102505 	long: 64;
102506 	long: 64;
102507 	long: 64;
102508 	long: 64;
102509 	long: 64;
102510 	spinlock_t spinlock;
102511 	long: 32;
102512 	long: 64;
102513 	long: 64;
102514 	long: 64;
102515 	long: 64;
102516 	long: 64;
102517 	long: 64;
102518 	long: 64;
102519 	atomic_t busy;
102520 	long: 32;
102521 	long: 64;
102522 	long: 64;
102523 	long: 64;
102524 	long: 64;
102525 	long: 64;
102526 	long: 64;
102527 	long: 64;
102528 	long: 64;
102529 	long: 64;
102530 	long: 64;
102531 	long: 64;
102532 	long: 64;
102533 	long: 64;
102534 	long: 64;
102535 	long: 64;
102536 	long: 64;
102537 	long: 64;
102538 	long: 64;
102539 	long: 64;
102540 	long: 64;
102541 	long: 64;
102542 	long: 64;
102543 	long: 64;
102544 	long: 64;
102545 	long: 64;
102546 	long: 64;
102547 	long: 64;
102548 	long: 64;
102549 	long: 64;
102550 	long: 64;
102551 	long: 64;
102552 	long: 64;
102553 	long: 64;
102554 	long: 64;
102555 	long: 64;
102556 	long: 64;
102557 	long: 64;
102558 	long: 64;
102559 	long: 64;
102560 	long: 64;
102561 	long: 64;
102562 	long: 64;
102563 	long: 64;
102564 	long: 64;
102565 	long: 64;
102566 	long: 64;
102567 	long: 64;
102568 	long: 64;
102569 	long: 64;
102570 	long: 64;
102571 	long: 64;
102572 	long: 64;
102573 	long: 64;
102574 	long: 64;
102575 	long: 64;
102576 	long: 64;
102577 	long: 64;
102578 	long: 64;
102579 	long: 64;
102580 	long: 64;
102581 	long: 64;
102582 	long: 64;
102583 	long: 64;
102584 	long: 64;
102585 	long: 64;
102586 	long: 64;
102587 	long: 64;
102588 	long: 64;
102589 	long: 64;
102590 	long: 64;
102591 	long: 64;
102592 	long: 64;
102593 	long: 64;
102594 	long: 64;
102595 	long: 64;
102596 	long: 64;
102597 	long: 64;
102598 	long: 64;
102599 	long: 64;
102600 	long: 64;
102601 	long: 64;
102602 	long: 64;
102603 	long: 64;
102604 	long: 64;
102605 	long: 64;
102606 	long: 64;
102607 	long: 64;
102608 	long: 64;
102609 	long: 64;
102610 	long: 64;
102611 	long: 64;
102612 	long: 64;
102613 	long: 64;
102614 	long: 64;
102615 	long: 64;
102616 	long: 64;
102617 	long: 64;
102618 	long: 64;
102619 	long: 64;
102620 	long: 64;
102621 	long: 64;
102622 	long: 64;
102623 	long: 64;
102624 	long: 64;
102625 	long: 64;
102626 	long: 64;
102627 	long: 64;
102628 	long: 64;
102629 	long: 64;
102630 	long: 64;
102631 	long: 64;
102632 	long: 64;
102633 	long: 64;
102634 	long: 64;
102635 	long: 64;
102636 	long: 64;
102637 	long: 64;
102638 	long: 64;
102639 	long: 64;
102640 	long: 64;
102641 	long: 64;
102642 	long: 64;
102643 	long: 64;
102644 	long: 64;
102645 	long: 64;
102646 	long: 64;
102647 	long: 64;
102648 	long: 64;
102649 	long: 64;
102650 	long: 64;
102651 	long: 64;
102652 	long: 64;
102653 	long: 64;
102654 	long: 64;
102655 	long: 64;
102656 	long: 64;
102657 	long: 64;
102658 	long: 64;
102659 	long: 64;
102660 	long: 64;
102661 	long: 64;
102662 	long: 64;
102663 	long: 64;
102664 	long: 64;
102665 	long: 64;
102666 	long: 64;
102667 	long: 64;
102668 	long: 64;
102669 	long: 64;
102670 	long: 64;
102671 	long: 64;
102672 	long: 64;
102673 	long: 64;
102674 	long: 64;
102675 	long: 64;
102676 	long: 64;
102677 	long: 64;
102678 	long: 64;
102679 	long: 64;
102680 	long: 64;
102681 	long: 64;
102682 	long: 64;
102683 	long: 64;
102684 	long: 64;
102685 	long: 64;
102686 	long: 64;
102687 	long: 64;
102688 	long: 64;
102689 	long: 64;
102690 	long: 64;
102691 	long: 64;
102692 	long: 64;
102693 	long: 64;
102694 	long: 64;
102695 	long: 64;
102696 	long: 64;
102697 	long: 64;
102698 	long: 64;
102699 	long: 64;
102700 	long: 64;
102701 	long: 64;
102702 	long: 64;
102703 	long: 64;
102704 	long: 64;
102705 	long: 64;
102706 	long: 64;
102707 	long: 64;
102708 	long: 64;
102709 	long: 64;
102710 	long: 64;
102711 	long: 64;
102712 	long: 64;
102713 	long: 64;
102714 	long: 64;
102715 	long: 64;
102716 	long: 64;
102717 	long: 64;
102718 	long: 64;
102719 	long: 64;
102720 	long: 64;
102721 	long: 64;
102722 	long: 64;
102723 	long: 64;
102724 	long: 64;
102725 	long: 64;
102726 	long: 64;
102727 	long: 64;
102728 	long: 64;
102729 	long: 64;
102730 	long: 64;
102731 	long: 64;
102732 	long: 64;
102733 	long: 64;
102734 	long: 64;
102735 	long: 64;
102736 	long: 64;
102737 	long: 64;
102738 	long: 64;
102739 	long: 64;
102740 	long: 64;
102741 	long: 64;
102742 	long: 64;
102743 	long: 64;
102744 	long: 64;
102745 	long: 64;
102746 	long: 64;
102747 	long: 64;
102748 	long: 64;
102749 	long: 64;
102750 	long: 64;
102751 	long: 64;
102752 	long: 64;
102753 	long: 64;
102754 	long: 64;
102755 	long: 64;
102756 	long: 64;
102757 	long: 64;
102758 	long: 64;
102759 	long: 64;
102760 	long: 64;
102761 	long: 64;
102762 	long: 64;
102763 	long: 64;
102764 	long: 64;
102765 	long: 64;
102766 	long: 64;
102767 	long: 64;
102768 	long: 64;
102769 	long: 64;
102770 	long: 64;
102771 	long: 64;
102772 	long: 64;
102773 	long: 64;
102774 	long: 64;
102775 	long: 64;
102776 	long: 64;
102777 	long: 64;
102778 	long: 64;
102779 	long: 64;
102780 	long: 64;
102781 	long: 64;
102782 	long: 64;
102783 	long: 64;
102784 	long: 64;
102785 	long: 64;
102786 	long: 64;
102787 	long: 64;
102788 	long: 64;
102789 	long: 64;
102790 	long: 64;
102791 	long: 64;
102792 	long: 64;
102793 	long: 64;
102794 	long: 64;
102795 	long: 64;
102796 	long: 64;
102797 	long: 64;
102798 	long: 64;
102799 	long: 64;
102800 	long: 64;
102801 	long: 64;
102802 	long: 64;
102803 	long: 64;
102804 	long: 64;
102805 	long: 64;
102806 	long: 64;
102807 	long: 64;
102808 	long: 64;
102809 	long: 64;
102810 	long: 64;
102811 	long: 64;
102812 	long: 64;
102813 	long: 64;
102814 	long: 64;
102815 	long: 64;
102816 	long: 64;
102817 	long: 64;
102818 	long: 64;
102819 	long: 64;
102820 	long: 64;
102821 	long: 64;
102822 	long: 64;
102823 	long: 64;
102824 	long: 64;
102825 	long: 64;
102826 	long: 64;
102827 	long: 64;
102828 	long: 64;
102829 	long: 64;
102830 	long: 64;
102831 	long: 64;
102832 	long: 64;
102833 	long: 64;
102834 	long: 64;
102835 	long: 64;
102836 	long: 64;
102837 	long: 64;
102838 	long: 64;
102839 	long: 64;
102840 	long: 64;
102841 	long: 64;
102842 	long: 64;
102843 	long: 64;
102844 	long: 64;
102845 	long: 64;
102846 	long: 64;
102847 	long: 64;
102848 	long: 64;
102849 	long: 64;
102850 	long: 64;
102851 	long: 64;
102852 	long: 64;
102853 	long: 64;
102854 	long: 64;
102855 	long: 64;
102856 	long: 64;
102857 	long: 64;
102858 	long: 64;
102859 	long: 64;
102860 	long: 64;
102861 	long: 64;
102862 	long: 64;
102863 	long: 64;
102864 	long: 64;
102865 	long: 64;
102866 	long: 64;
102867 	long: 64;
102868 	long: 64;
102869 	long: 64;
102870 	long: 64;
102871 	long: 64;
102872 	long: 64;
102873 	long: 64;
102874 	long: 64;
102875 	long: 64;
102876 	long: 64;
102877 	long: 64;
102878 	long: 64;
102879 	long: 64;
102880 	long: 64;
102881 	long: 64;
102882 	long: 64;
102883 	long: 64;
102884 	long: 64;
102885 	long: 64;
102886 	long: 64;
102887 	long: 64;
102888 	long: 64;
102889 	long: 64;
102890 	long: 64;
102891 	long: 64;
102892 	long: 64;
102893 	long: 64;
102894 	long: 64;
102895 	long: 64;
102896 	long: 64;
102897 	long: 64;
102898 	long: 64;
102899 	long: 64;
102900 	long: 64;
102901 	long: 64;
102902 	long: 64;
102903 	long: 64;
102904 	long: 64;
102905 	long: 64;
102906 	long: 64;
102907 	long: 64;
102908 	long: 64;
102909 	long: 64;
102910 	long: 64;
102911 	long: 64;
102912 	long: 64;
102913 	long: 64;
102914 	long: 64;
102915 	long: 64;
102916 	long: 64;
102917 	long: 64;
102918 	long: 64;
102919 	long: 64;
102920 	long: 64;
102921 	long: 64;
102922 	long: 64;
102923 	long: 64;
102924 	long: 64;
102925 	long: 64;
102926 	long: 64;
102927 	long: 64;
102928 	long: 64;
102929 	long: 64;
102930 	long: 64;
102931 	long: 64;
102932 	long: 64;
102933 	long: 64;
102934 	long: 64;
102935 	long: 64;
102936 	long: 64;
102937 	long: 64;
102938 	long: 64;
102939 	long: 64;
102940 	long: 64;
102941 	long: 64;
102942 	long: 64;
102943 	long: 64;
102944 	long: 64;
102945 	long: 64;
102946 	long: 64;
102947 	long: 64;
102948 	long: 64;
102949 	long: 64;
102950 	long: 64;
102951 	long: 64;
102952 	long: 64;
102953 	long: 64;
102954 	long: 64;
102955 	long: 64;
102956 	long: 64;
102957 	long: 64;
102958 	long: 64;
102959 	long: 64;
102960 	long: 64;
102961 	long: 64;
102962 	long: 64;
102963 	long: 64;
102964 	long: 64;
102965 	long: 64;
102966 	long: 64;
102967 	long: 64;
102968 	long: 64;
102969 	long: 64;
102970 	long: 64;
102971 	long: 64;
102972 	long: 64;
102973 	long: 64;
102974 	long: 64;
102975 	long: 64;
102976 	long: 64;
102977 	long: 64;
102978 	long: 64;
102979 	long: 64;
102980 	long: 64;
102981 	long: 64;
102982 	long: 64;
102983 	long: 64;
102984 	long: 64;
102985 	long: 64;
102986 	long: 64;
102987 	long: 64;
102988 	long: 64;
102989 	long: 64;
102990 	long: 64;
102991 	long: 64;
102992 	long: 64;
102993 	long: 64;
102994 	long: 64;
102995 	long: 64;
102996 	long: 64;
102997 	long: 64;
102998 	long: 64;
102999 	long: 64;
103000 	long: 64;
103001 	long: 64;
103002 	long: 64;
103003 	long: 64;
103004 	long: 64;
103005 	long: 64;
103006 	long: 64;
103007 	long: 64;
103008 	long: 64;
103009 	long: 64;
103010 	long: 64;
103011 	long: 64;
103012 	long: 64;
103013 	long: 64;
103014 	long: 64;
103015 	long: 64;
103016 	long: 64;
103017 	long: 64;
103018 	long: 64;
103019 	long: 64;
103020 	long: 64;
103021 	long: 64;
103022 	long: 64;
103023 	long: 64;
103024 	long: 64;
103025 	long: 64;
103026 	long: 64;
103027 	long: 64;
103028 	long: 64;
103029 	long: 64;
103030 	long: 64;
103031 	long: 64;
103032 	long: 64;
103033 	long: 64;
103034 	long: 64;
103035 	long: 64;
103036 	long: 64;
103037 	long: 64;
103038 	long: 64;
103039 	long: 64;
103040 	long: 64;
103041 	long: 64;
103042 	long: 64;
103043 	long: 64;
103044 	long: 64;
103045 	long: 64;
103046 	long: 64;
103047 	long: 64;
103048 	long: 64;
103049 	long: 64;
103050 	long: 64;
103051 	long: 64;
103052 	long: 64;
103053 	long: 64;
103054 	long: 64;
103055 	long: 64;
103056 	long: 64;
103057 	long: 64;
103058 	long: 64;
103059 	long: 64;
103060 	long: 64;
103061 	long: 64;
103062 	long: 64;
103063 	long: 64;
103064 	long: 64;
103065 	long: 64;
103066 	long: 64;
103067 	long: 64;
103068 	long: 64;
103069 	long: 64;
103070 	long: 64;
103071 	long: 64;
103072 	long: 64;
103073 	long: 64;
103074 	long: 64;
103075 	long: 64;
103076 	long: 64;
103077 	long: 64;
103078 	long: 64;
103079 	long: 64;
103080 	long: 64;
103081 	long: 64;
103082 	long: 64;
103083 	long: 64;
103084 	long: 64;
103085 	long: 64;
103086 	long: 64;
103087 	long: 64;
103088 	long: 64;
103089 	long: 64;
103090 	long: 64;
103091 	long: 64;
103092 	long: 64;
103093 	long: 64;
103094 	long: 64;
103095 	long: 64;
103096 	long: 64;
103097 	long: 64;
103098 	long: 64;
103099 	long: 64;
103100 	long: 64;
103101 	long: 64;
103102 	long: 64;
103103 	long: 64;
103104 	long: 64;
103105 	long: 64;
103106 	long: 64;
103107 	long: 64;
103108 	long: 64;
103109 	long: 64;
103110 	long: 64;
103111 	long: 64;
103112 	long: 64;
103113 	long: 64;
103114 	long: 64;
103115 	long: 64;
103116 	long: 64;
103117 	long: 64;
103118 	long: 64;
103119 	long: 64;
103120 	long: 64;
103121 	long: 64;
103122 	long: 64;
103123 	long: 64;
103124 	long: 64;
103125 	long: 64;
103126 	long: 64;
103127 	long: 64;
103128 	long: 64;
103129 	long: 64;
103130 	long: 64;
103131 	long: 64;
103132 	long: 64;
103133 	long: 64;
103134 	long: 64;
103135 	long: 64;
103136 	long: 64;
103137 	long: 64;
103138 	long: 64;
103139 	long: 64;
103140 	long: 64;
103141 	long: 64;
103142 	long: 64;
103143 	long: 64;
103144 	long: 64;
103145 	long: 64;
103146 	long: 64;
103147 	long: 64;
103148 	long: 64;
103149 	long: 64;
103150 	long: 64;
103151 	long: 64;
103152 	long: 64;
103153 	long: 64;
103154 	long: 64;
103155 	long: 64;
103156 	long: 64;
103157 	long: 64;
103158 	long: 64;
103159 	long: 64;
103160 	long: 64;
103161 	long: 64;
103162 	long: 64;
103163 	long: 64;
103164 	long: 64;
103165 	long: 64;
103166 	long: 64;
103167 	long: 64;
103168 	long: 64;
103169 	long: 64;
103170 	long: 64;
103171 	long: 64;
103172 	long: 64;
103173 	long: 64;
103174 	long: 64;
103175 	long: 64;
103176 	long: 64;
103177 	long: 64;
103178 	long: 64;
103179 	long: 64;
103180 	long: 64;
103181 	long: 64;
103182 	long: 64;
103183 	long: 64;
103184 	long: 64;
103185 	long: 64;
103186 	long: 64;
103187 	long: 64;
103188 	long: 64;
103189 	long: 64;
103190 	long: 64;
103191 	long: 64;
103192 	long: 64;
103193 	long: 64;
103194 	long: 64;
103195 	long: 64;
103196 	long: 64;
103197 	long: 64;
103198 	long: 64;
103199 	long: 64;
103200 	long: 64;
103201 	long: 64;
103202 	long: 64;
103203 	long: 64;
103204 	long: 64;
103205 	long: 64;
103206 	long: 64;
103207 	long: 64;
103208 	long: 64;
103209 	long: 64;
103210 	long: 64;
103211 	long: 64;
103212 	long: 64;
103213 	long: 64;
103214 	long: 64;
103215 	long: 64;
103216 	long: 64;
103217 	long: 64;
103218 	long: 64;
103219 	long: 64;
103220 	long: 64;
103221 	long: 64;
103222 	long: 64;
103223 	long: 64;
103224 	long: 64;
103225 	long: 64;
103226 	long: 64;
103227 	long: 64;
103228 	long: 64;
103229 	long: 64;
103230 	long: 64;
103231 	long: 64;
103232 	long: 64;
103233 	long: 64;
103234 	long: 64;
103235 	long: 64;
103236 	long: 64;
103237 	long: 64;
103238 	long: 64;
103239 	long: 64;
103240 	long: 64;
103241 	long: 64;
103242 	long: 64;
103243 	long: 64;
103244 	long: 64;
103245 	long: 64;
103246 	long: 64;
103247 	long: 64;
103248 	long: 64;
103249 	long: 64;
103250 	long: 64;
103251 	long: 64;
103252 	long: 64;
103253 	long: 64;
103254 	long: 64;
103255 	long: 64;
103256 	long: 64;
103257 	long: 64;
103258 	long: 64;
103259 	long: 64;
103260 	long: 64;
103261 	long: 64;
103262 	long: 64;
103263 	long: 64;
103264 	long: 64;
103265 	long: 64;
103266 	long: 64;
103267 	long: 64;
103268 	long: 64;
103269 	long: 64;
103270 	long: 64;
103271 	long: 64;
103272 	long: 64;
103273 	long: 64;
103274 	long: 64;
103275 	long: 64;
103276 	long: 64;
103277 	long: 64;
103278 	long: 64;
103279 	long: 64;
103280 	long: 64;
103281 	long: 64;
103282 	long: 64;
103283 	long: 64;
103284 	long: 64;
103285 	long: 64;
103286 	long: 64;
103287 	long: 64;
103288 	long: 64;
103289 	long: 64;
103290 	long: 64;
103291 	long: 64;
103292 	long: 64;
103293 	long: 64;
103294 	long: 64;
103295 	long: 64;
103296 	long: 64;
103297 	long: 64;
103298 	long: 64;
103299 	long: 64;
103300 	long: 64;
103301 	long: 64;
103302 	long: 64;
103303 	long: 64;
103304 	long: 64;
103305 	long: 64;
103306 	long: 64;
103307 	long: 64;
103308 	long: 64;
103309 	long: 64;
103310 	long: 64;
103311 	long: 64;
103312 	long: 64;
103313 	long: 64;
103314 	long: 64;
103315 	long: 64;
103316 	long: 64;
103317 	long: 64;
103318 	long: 64;
103319 	long: 64;
103320 	long: 64;
103321 	long: 64;
103322 	long: 64;
103323 	long: 64;
103324 	long: 64;
103325 	long: 64;
103326 	long: 64;
103327 	long: 64;
103328 	long: 64;
103329 	long: 64;
103330 	long: 64;
103331 	long: 64;
103332 	long: 64;
103333 	long: 64;
103334 	long: 64;
103335 	long: 64;
103336 	long: 64;
103337 	long: 64;
103338 	long: 64;
103339 	long: 64;
103340 	long: 64;
103341 	long: 64;
103342 	long: 64;
103343 	long: 64;
103344 	long: 64;
103345 	long: 64;
103346 	long: 64;
103347 	long: 64;
103348 	long: 64;
103349 	long: 64;
103350 	long: 64;
103351 	long: 64;
103352 	long: 64;
103353 	long: 64;
103354 	long: 64;
103355 	long: 64;
103356 	long: 64;
103357 	long: 64;
103358 	long: 64;
103359 	long: 64;
103360 	long: 64;
103361 	long: 64;
103362 	long: 64;
103363 	long: 64;
103364 	long: 64;
103365 	long: 64;
103366 	long: 64;
103367 	long: 64;
103368 	long: 64;
103369 	long: 64;
103370 	long: 64;
103371 	long: 64;
103372 	long: 64;
103373 	long: 64;
103374 	long: 64;
103375 	long: 64;
103376 	long: 64;
103377 	long: 64;
103378 	long: 64;
103379 	long: 64;
103380 	long: 64;
103381 	long: 64;
103382 	long: 64;
103383 	long: 64;
103384 	long: 64;
103385 	long: 64;
103386 	long: 64;
103387 	long: 64;
103388 	long: 64;
103389 	long: 64;
103390 	long: 64;
103391 	long: 64;
103392 	long: 64;
103393 	long: 64;
103394 	long: 64;
103395 	long: 64;
103396 	long: 64;
103397 	long: 64;
103398 	long: 64;
103399 	long: 64;
103400 	long: 64;
103401 	long: 64;
103402 	long: 64;
103403 	long: 64;
103404 	long: 64;
103405 	long: 64;
103406 	long: 64;
103407 	long: 64;
103408 	long: 64;
103409 	long: 64;
103410 	long: 64;
103411 	long: 64;
103412 	long: 64;
103413 	long: 64;
103414 	long: 64;
103415 	long: 64;
103416 	long: 64;
103417 	long: 64;
103418 	long: 64;
103419 	long: 64;
103420 	long: 64;
103421 	long: 64;
103422 	long: 64;
103423 	long: 64;
103424 	long: 64;
103425 	long: 64;
103426 	long: 64;
103427 	long: 64;
103428 	long: 64;
103429 	long: 64;
103430 	long: 64;
103431 	long: 64;
103432 	long: 64;
103433 	long: 64;
103434 	long: 64;
103435 	long: 64;
103436 	long: 64;
103437 	long: 64;
103438 	long: 64;
103439 	long: 64;
103440 	long: 64;
103441 	long: 64;
103442 	long: 64;
103443 	long: 64;
103444 	long: 64;
103445 	long: 64;
103446 	long: 64;
103447 	long: 64;
103448 	long: 64;
103449 	long: 64;
103450 	long: 64;
103451 	long: 64;
103452 	long: 64;
103453 	long: 64;
103454 	long: 64;
103455 	long: 64;
103456 	long: 64;
103457 	long: 64;
103458 	long: 64;
103459 	long: 64;
103460 	long: 64;
103461 	long: 64;
103462 	long: 64;
103463 	long: 64;
103464 	long: 64;
103465 	long: 64;
103466 	long: 64;
103467 	long: 64;
103468 	long: 64;
103469 	long: 64;
103470 	long: 64;
103471 	long: 64;
103472 	long: 64;
103473 	long: 64;
103474 	long: 64;
103475 	long: 64;
103476 	long: 64;
103477 	long: 64;
103478 	long: 64;
103479 	long: 64;
103480 	long: 64;
103481 	long: 64;
103482 	long: 64;
103483 	long: 64;
103484 	long: 64;
103485 	long: 64;
103486 	long: 64;
103487 	long: 64;
103488 	long: 64;
103489 	long: 64;
103490 	long: 64;
103491 	long: 64;
103492 	long: 64;
103493 	long: 64;
103494 	long: 64;
103495 	long: 64;
103496 	long: 64;
103497 	long: 64;
103498 	long: 64;
103499 	long: 64;
103500 	long: 64;
103501 	long: 64;
103502 	long: 64;
103503 	long: 64;
103504 	long: 64;
103505 	long: 64;
103506 	long: 64;
103507 	long: 64;
103508 	long: 64;
103509 	long: 64;
103510 	long: 64;
103511 	long: 64;
103512 	long: 64;
103513 	long: 64;
103514 	long: 64;
103515 	long: 64;
103516 	long: 64;
103517 	long: 64;
103518 	long: 64;
103519 	long: 64;
103520 	long: 64;
103521 	long: 64;
103522 	long: 64;
103523 	long: 64;
103524 	long: 64;
103525 	long: 64;
103526 	long: 64;
103527 	long: 64;
103528 	long: 64;
103529 	long: 64;
103530 	long: 64;
103531 	long: 64;
103532 	long: 64;
103533 	long: 64;
103534 	long: 64;
103535 	long: 64;
103536 	long: 64;
103537 	long: 64;
103538 	long: 64;
103539 	long: 64;
103540 	long: 64;
103541 	long: 64;
103542 	long: 64;
103543 	long: 64;
103544 	long: 64;
103545 	long: 64;
103546 	long: 64;
103547 	long: 64;
103548 	long: 64;
103549 	long: 64;
103550 	long: 64;
103551 	long: 64;
103552 	long: 64;
103553 	long: 64;
103554 	long: 64;
103555 	long: 64;
103556 	long: 64;
103557 	long: 64;
103558 	long: 64;
103559 	long: 64;
103560 	long: 64;
103561 	long: 64;
103562 	long: 64;
103563 	long: 64;
103564 	long: 64;
103565 	long: 64;
103566 	long: 64;
103567 	long: 64;
103568 	long: 64;
103569 	long: 64;
103570 	long: 64;
103571 	long: 64;
103572 	long: 64;
103573 	long: 64;
103574 	long: 64;
103575 	long: 64;
103576 	long: 64;
103577 	long: 64;
103578 	long: 64;
103579 	long: 64;
103580 	long: 64;
103581 	long: 64;
103582 	long: 64;
103583 	long: 64;
103584 	long: 64;
103585 	long: 64;
103586 	long: 64;
103587 	long: 64;
103588 	long: 64;
103589 	long: 64;
103590 	long: 64;
103591 	long: 64;
103592 	long: 64;
103593 	long: 64;
103594 	long: 64;
103595 	long: 64;
103596 	long: 64;
103597 	long: 64;
103598 	long: 64;
103599 	long: 64;
103600 	long: 64;
103601 	long: 64;
103602 	long: 64;
103603 	long: 64;
103604 	long: 64;
103605 	long: 64;
103606 	long: 64;
103607 	long: 64;
103608 	long: 64;
103609 	long: 64;
103610 	long: 64;
103611 	long: 64;
103612 	long: 64;
103613 	long: 64;
103614 	long: 64;
103615 	long: 64;
103616 	long: 64;
103617 	long: 64;
103618 	long: 64;
103619 	long: 64;
103620 	long: 64;
103621 	long: 64;
103622 	long: 64;
103623 	long: 64;
103624 	long: 64;
103625 	long: 64;
103626 	long: 64;
103627 	long: 64;
103628 	long: 64;
103629 	long: 64;
103630 	long: 64;
103631 	long: 64;
103632 	long: 64;
103633 	long: 64;
103634 	long: 64;
103635 	long: 64;
103636 	long: 64;
103637 	long: 64;
103638 	long: 64;
103639 	long: 64;
103640 	long: 64;
103641 	long: 64;
103642 	long: 64;
103643 	long: 64;
103644 	long: 64;
103645 	long: 64;
103646 	long: 64;
103647 	long: 64;
103648 	long: 64;
103649 	long: 64;
103650 	long: 64;
103651 	long: 64;
103652 	long: 64;
103653 	long: 64;
103654 	long: 64;
103655 	long: 64;
103656 	long: 64;
103657 	long: 64;
103658 	long: 64;
103659 	long: 64;
103660 	long: 64;
103661 	long: 64;
103662 	long: 64;
103663 	long: 64;
103664 	long: 64;
103665 	long: 64;
103666 	long: 64;
103667 	long: 64;
103668 	long: 64;
103669 	long: 64;
103670 	long: 64;
103671 	long: 64;
103672 	long: 64;
103673 	long: 64;
103674 	long: 64;
103675 	long: 64;
103676 	long: 64;
103677 	long: 64;
103678 	long: 64;
103679 	long: 64;
103680 	long: 64;
103681 	long: 64;
103682 	long: 64;
103683 	long: 64;
103684 	long: 64;
103685 	long: 64;
103686 	long: 64;
103687 	long: 64;
103688 	long: 64;
103689 	long: 64;
103690 	long: 64;
103691 	long: 64;
103692 	long: 64;
103693 	long: 64;
103694 	long: 64;
103695 	long: 64;
103696 	long: 64;
103697 	long: 64;
103698 	long: 64;
103699 	long: 64;
103700 	long: 64;
103701 	long: 64;
103702 	long: 64;
103703 	long: 64;
103704 	long: 64;
103705 	long: 64;
103706 	long: 64;
103707 	long: 64;
103708 	long: 64;
103709 	long: 64;
103710 	long: 64;
103711 	long: 64;
103712 	long: 64;
103713 	long: 64;
103714 	long: 64;
103715 	long: 64;
103716 	long: 64;
103717 	long: 64;
103718 	long: 64;
103719 	long: 64;
103720 	long: 64;
103721 	long: 64;
103722 	long: 64;
103723 	long: 64;
103724 	long: 64;
103725 	long: 64;
103726 	long: 64;
103727 	long: 64;
103728 	long: 64;
103729 	long: 64;
103730 	long: 64;
103731 	long: 64;
103732 	long: 64;
103733 	long: 64;
103734 	long: 64;
103735 	long: 64;
103736 	long: 64;
103737 	long: 64;
103738 	long: 64;
103739 	long: 64;
103740 	long: 64;
103741 	long: 64;
103742 	long: 64;
103743 	long: 64;
103744 	long: 64;
103745 	long: 64;
103746 	long: 64;
103747 	long: 64;
103748 	long: 64;
103749 	long: 64;
103750 	long: 64;
103751 	long: 64;
103752 	long: 64;
103753 	long: 64;
103754 	long: 64;
103755 	long: 64;
103756 	long: 64;
103757 	long: 64;
103758 	long: 64;
103759 	long: 64;
103760 	long: 64;
103761 	long: 64;
103762 	long: 64;
103763 	long: 64;
103764 	long: 64;
103765 	long: 64;
103766 	long: 64;
103767 	long: 64;
103768 	long: 64;
103769 	long: 64;
103770 	long: 64;
103771 	long: 64;
103772 	long: 64;
103773 	long: 64;
103774 	long: 64;
103775 	long: 64;
103776 	long: 64;
103777 	long: 64;
103778 	long: 64;
103779 	long: 64;
103780 	long: 64;
103781 	long: 64;
103782 	long: 64;
103783 	long: 64;
103784 	long: 64;
103785 	long: 64;
103786 	long: 64;
103787 	long: 64;
103788 	long: 64;
103789 	long: 64;
103790 	long: 64;
103791 	long: 64;
103792 	long: 64;
103793 	long: 64;
103794 	long: 64;
103795 	long: 64;
103796 	long: 64;
103797 	long: 64;
103798 	long: 64;
103799 	long: 64;
103800 	long: 64;
103801 	long: 64;
103802 	long: 64;
103803 	long: 64;
103804 	long: 64;
103805 	long: 64;
103806 	long: 64;
103807 	long: 64;
103808 	long: 64;
103809 	long: 64;
103810 	long: 64;
103811 	long: 64;
103812 	long: 64;
103813 	long: 64;
103814 	long: 64;
103815 	long: 64;
103816 	long: 64;
103817 	long: 64;
103818 	long: 64;
103819 	long: 64;
103820 	long: 64;
103821 	long: 64;
103822 	long: 64;
103823 	long: 64;
103824 	long: 64;
103825 	long: 64;
103826 	long: 64;
103827 	long: 64;
103828 	long: 64;
103829 	long: 64;
103830 	long: 64;
103831 	long: 64;
103832 	long: 64;
103833 	long: 64;
103834 	long: 64;
103835 	long: 64;
103836 	long: 64;
103837 	long: 64;
103838 	long: 64;
103839 	long: 64;
103840 	long: 64;
103841 	long: 64;
103842 	long: 64;
103843 	long: 64;
103844 	long: 64;
103845 	long: 64;
103846 	long: 64;
103847 	long: 64;
103848 	long: 64;
103849 	long: 64;
103850 	long: 64;
103851 	long: 64;
103852 	long: 64;
103853 	long: 64;
103854 	long: 64;
103855 	long: 64;
103856 	long: 64;
103857 	long: 64;
103858 	long: 64;
103859 	long: 64;
103860 	long: 64;
103861 	long: 64;
103862 	long: 64;
103863 	long: 64;
103864 	long: 64;
103865 	long: 64;
103866 	long: 64;
103867 	long: 64;
103868 	long: 64;
103869 	long: 64;
103870 	long: 64;
103871 	long: 64;
103872 	long: 64;
103873 	long: 64;
103874 	long: 64;
103875 	long: 64;
103876 	long: 64;
103877 	long: 64;
103878 	long: 64;
103879 	long: 64;
103880 	long: 64;
103881 	long: 64;
103882 	long: 64;
103883 	long: 64;
103884 	long: 64;
103885 	long: 64;
103886 	long: 64;
103887 	long: 64;
103888 	long: 64;
103889 	long: 64;
103890 	long: 64;
103891 	long: 64;
103892 	long: 64;
103893 	long: 64;
103894 	long: 64;
103895 	long: 64;
103896 	long: 64;
103897 	long: 64;
103898 	long: 64;
103899 	long: 64;
103900 	long: 64;
103901 	long: 64;
103902 	long: 64;
103903 	long: 64;
103904 	long: 64;
103905 	long: 64;
103906 	long: 64;
103907 	long: 64;
103908 	long: 64;
103909 	long: 64;
103910 	long: 64;
103911 	long: 64;
103912 	long: 64;
103913 	long: 64;
103914 	long: 64;
103915 	long: 64;
103916 	long: 64;
103917 	long: 64;
103918 	long: 64;
103919 	long: 64;
103920 	long: 64;
103921 	long: 64;
103922 	long: 64;
103923 	long: 64;
103924 	long: 64;
103925 	long: 64;
103926 	long: 64;
103927 	long: 64;
103928 	long: 64;
103929 	long: 64;
103930 	long: 64;
103931 	long: 64;
103932 	long: 64;
103933 	long: 64;
103934 	long: 64;
103935 	long: 64;
103936 	long: 64;
103937 	long: 64;
103938 	long: 64;
103939 	long: 64;
103940 	long: 64;
103941 	long: 64;
103942 	long: 64;
103943 	long: 64;
103944 	long: 64;
103945 	long: 64;
103946 	long: 64;
103947 	long: 64;
103948 	long: 64;
103949 	long: 64;
103950 	long: 64;
103951 	long: 64;
103952 	long: 64;
103953 	long: 64;
103954 	long: 64;
103955 	long: 64;
103956 	long: 64;
103957 	long: 64;
103958 	long: 64;
103959 	long: 64;
103960 	long: 64;
103961 	long: 64;
103962 	long: 64;
103963 	long: 64;
103964 	long: 64;
103965 	long: 64;
103966 	long: 64;
103967 	long: 64;
103968 	long: 64;
103969 	long: 64;
103970 	long: 64;
103971 	long: 64;
103972 	long: 64;
103973 	long: 64;
103974 	long: 64;
103975 	long: 64;
103976 	long: 64;
103977 	long: 64;
103978 	long: 64;
103979 	long: 64;
103980 	long: 64;
103981 	long: 64;
103982 	long: 64;
103983 	long: 64;
103984 	long: 64;
103985 	long: 64;
103986 	long: 64;
103987 	long: 64;
103988 	long: 64;
103989 	long: 64;
103990 	long: 64;
103991 	long: 64;
103992 	long: 64;
103993 	long: 64;
103994 	long: 64;
103995 	long: 64;
103996 	long: 64;
103997 	long: 64;
103998 	long: 64;
103999 	long: 64;
104000 	long: 64;
104001 	long: 64;
104002 	long: 64;
104003 	long: 64;
104004 	long: 64;
104005 	long: 64;
104006 	long: 64;
104007 	long: 64;
104008 	long: 64;
104009 	long: 64;
104010 	long: 64;
104011 	long: 64;
104012 	long: 64;
104013 	long: 64;
104014 	long: 64;
104015 	long: 64;
104016 	long: 64;
104017 	long: 64;
104018 	long: 64;
104019 	long: 64;
104020 	long: 64;
104021 	long: 64;
104022 	long: 64;
104023 	long: 64;
104024 	long: 64;
104025 	long: 64;
104026 	long: 64;
104027 	long: 64;
104028 	long: 64;
104029 	long: 64;
104030 	long: 64;
104031 	long: 64;
104032 	long: 64;
104033 	long: 64;
104034 	long: 64;
104035 	long: 64;
104036 	long: 64;
104037 	long: 64;
104038 	long: 64;
104039 	long: 64;
104040 	long: 64;
104041 	long: 64;
104042 	long: 64;
104043 	long: 64;
104044 	long: 64;
104045 	long: 64;
104046 	long: 64;
104047 	long: 64;
104048 	long: 64;
104049 	long: 64;
104050 	long: 64;
104051 	long: 64;
104052 	long: 64;
104053 	long: 64;
104054 	long: 64;
104055 	long: 64;
104056 	long: 64;
104057 	long: 64;
104058 	long: 64;
104059 	long: 64;
104060 	long: 64;
104061 	long: 64;
104062 	long: 64;
104063 	long: 64;
104064 	long: 64;
104065 	long: 64;
104066 	long: 64;
104067 	long: 64;
104068 	long: 64;
104069 	long: 64;
104070 	long: 64;
104071 	long: 64;
104072 	long: 64;
104073 	long: 64;
104074 	long: 64;
104075 	long: 64;
104076 	long: 64;
104077 	long: 64;
104078 	long: 64;
104079 	long: 64;
104080 	long: 64;
104081 	long: 64;
104082 	long: 64;
104083 	long: 64;
104084 	long: 64;
104085 	long: 64;
104086 	long: 64;
104087 	long: 64;
104088 	long: 64;
104089 	long: 64;
104090 	long: 64;
104091 	long: 64;
104092 	long: 64;
104093 	long: 64;
104094 	long: 64;
104095 	long: 64;
104096 	long: 64;
104097 	long: 64;
104098 	long: 64;
104099 	long: 64;
104100 	long: 64;
104101 	long: 64;
104102 	long: 64;
104103 	long: 64;
104104 	long: 64;
104105 	long: 64;
104106 	long: 64;
104107 	long: 64;
104108 	long: 64;
104109 	long: 64;
104110 	long: 64;
104111 	long: 64;
104112 	long: 64;
104113 	long: 64;
104114 	long: 64;
104115 	long: 64;
104116 	long: 64;
104117 	long: 64;
104118 	long: 64;
104119 	long: 64;
104120 	long: 64;
104121 	long: 64;
104122 	long: 64;
104123 	long: 64;
104124 	long: 64;
104125 	long: 64;
104126 	long: 64;
104127 	long: 64;
104128 	long: 64;
104129 	long: 64;
104130 	long: 64;
104131 	long: 64;
104132 	long: 64;
104133 	long: 64;
104134 	long: 64;
104135 	long: 64;
104136 	long: 64;
104137 	long: 64;
104138 	long: 64;
104139 	long: 64;
104140 	long: 64;
104141 	long: 64;
104142 	long: 64;
104143 	long: 64;
104144 	long: 64;
104145 	long: 64;
104146 	long: 64;
104147 	long: 64;
104148 	long: 64;
104149 	long: 64;
104150 	long: 64;
104151 	long: 64;
104152 	long: 64;
104153 	long: 64;
104154 	long: 64;
104155 	long: 64;
104156 	long: 64;
104157 	long: 64;
104158 	long: 64;
104159 	long: 64;
104160 	long: 64;
104161 	long: 64;
104162 	long: 64;
104163 	long: 64;
104164 	long: 64;
104165 	long: 64;
104166 	long: 64;
104167 	long: 64;
104168 	long: 64;
104169 	long: 64;
104170 	long: 64;
104171 	long: 64;
104172 	long: 64;
104173 	long: 64;
104174 	long: 64;
104175 	long: 64;
104176 	long: 64;
104177 	long: 64;
104178 	long: 64;
104179 	long: 64;
104180 	long: 64;
104181 	long: 64;
104182 	long: 64;
104183 	long: 64;
104184 	long: 64;
104185 	long: 64;
104186 	long: 64;
104187 	long: 64;
104188 	long: 64;
104189 	long: 64;
104190 	long: 64;
104191 	long: 64;
104192 	long: 64;
104193 	long: 64;
104194 	long: 64;
104195 	long: 64;
104196 	long: 64;
104197 	long: 64;
104198 	long: 64;
104199 	long: 64;
104200 	long: 64;
104201 	long: 64;
104202 	long: 64;
104203 	long: 64;
104204 	long: 64;
104205 	long: 64;
104206 	long: 64;
104207 	long: 64;
104208 	long: 64;
104209 	long: 64;
104210 	long: 64;
104211 	long: 64;
104212 	long: 64;
104213 	long: 64;
104214 	long: 64;
104215 	long: 64;
104216 	long: 64;
104217 	long: 64;
104218 	long: 64;
104219 	long: 64;
104220 	long: 64;
104221 	long: 64;
104222 	long: 64;
104223 	long: 64;
104224 	long: 64;
104225 	long: 64;
104226 	long: 64;
104227 	long: 64;
104228 	long: 64;
104229 	long: 64;
104230 	long: 64;
104231 	long: 64;
104232 	long: 64;
104233 	long: 64;
104234 	long: 64;
104235 	long: 64;
104236 	long: 64;
104237 	long: 64;
104238 	long: 64;
104239 	long: 64;
104240 	long: 64;
104241 	long: 64;
104242 	long: 64;
104243 	long: 64;
104244 	long: 64;
104245 	long: 64;
104246 	long: 64;
104247 	long: 64;
104248 	long: 64;
104249 	long: 64;
104250 	long: 64;
104251 	long: 64;
104252 	long: 64;
104253 	long: 64;
104254 	long: 64;
104255 	long: 64;
104256 	long: 64;
104257 	long: 64;
104258 	long: 64;
104259 	long: 64;
104260 	long: 64;
104261 	long: 64;
104262 	long: 64;
104263 	long: 64;
104264 	long: 64;
104265 	long: 64;
104266 	long: 64;
104267 	long: 64;
104268 	long: 64;
104269 	long: 64;
104270 	long: 64;
104271 	long: 64;
104272 	long: 64;
104273 	long: 64;
104274 	long: 64;
104275 	long: 64;
104276 	long: 64;
104277 	long: 64;
104278 	long: 64;
104279 	long: 64;
104280 	long: 64;
104281 	long: 64;
104282 	long: 64;
104283 	long: 64;
104284 	long: 64;
104285 	long: 64;
104286 	long: 64;
104287 	long: 64;
104288 	long: 64;
104289 	long: 64;
104290 	long: 64;
104291 	long: 64;
104292 	long: 64;
104293 	long: 64;
104294 	long: 64;
104295 	long: 64;
104296 	long: 64;
104297 	long: 64;
104298 	long: 64;
104299 	long: 64;
104300 	long: 64;
104301 	long: 64;
104302 	long: 64;
104303 	long: 64;
104304 	long: 64;
104305 	long: 64;
104306 	long: 64;
104307 	long: 64;
104308 	long: 64;
104309 	long: 64;
104310 	long: 64;
104311 	long: 64;
104312 	long: 64;
104313 	long: 64;
104314 	long: 64;
104315 	long: 64;
104316 	long: 64;
104317 	long: 64;
104318 	long: 64;
104319 	long: 64;
104320 	long: 64;
104321 	long: 64;
104322 	long: 64;
104323 	long: 64;
104324 	long: 64;
104325 	long: 64;
104326 	long: 64;
104327 	long: 64;
104328 	long: 64;
104329 	long: 64;
104330 	long: 64;
104331 	long: 64;
104332 	long: 64;
104333 	long: 64;
104334 	long: 64;
104335 	long: 64;
104336 	long: 64;
104337 	long: 64;
104338 	long: 64;
104339 	long: 64;
104340 	long: 64;
104341 	long: 64;
104342 	long: 64;
104343 	long: 64;
104344 	long: 64;
104345 	long: 64;
104346 	long: 64;
104347 	long: 64;
104348 	long: 64;
104349 	long: 64;
104350 	long: 64;
104351 	long: 64;
104352 	long: 64;
104353 	long: 64;
104354 	long: 64;
104355 	long: 64;
104356 	long: 64;
104357 	long: 64;
104358 	long: 64;
104359 	long: 64;
104360 	long: 64;
104361 	long: 64;
104362 	long: 64;
104363 	long: 64;
104364 	long: 64;
104365 	long: 64;
104366 	long: 64;
104367 	long: 64;
104368 	long: 64;
104369 	long: 64;
104370 	long: 64;
104371 	long: 64;
104372 	long: 64;
104373 	long: 64;
104374 	long: 64;
104375 	long: 64;
104376 	long: 64;
104377 	long: 64;
104378 	long: 64;
104379 	long: 64;
104380 	long: 64;
104381 	long: 64;
104382 	long: 64;
104383 	long: 64;
104384 	long: 64;
104385 	long: 64;
104386 	long: 64;
104387 	long: 64;
104388 	long: 64;
104389 	long: 64;
104390 	long: 64;
104391 	long: 64;
104392 	long: 64;
104393 	long: 64;
104394 	long: 64;
104395 	long: 64;
104396 	long: 64;
104397 	long: 64;
104398 	long: 64;
104399 	long: 64;
104400 	long: 64;
104401 	long: 64;
104402 	long: 64;
104403 	long: 64;
104404 	long: 64;
104405 	long: 64;
104406 	long: 64;
104407 	long: 64;
104408 	long: 64;
104409 	long: 64;
104410 	long: 64;
104411 	long: 64;
104412 	long: 64;
104413 	long: 64;
104414 	long: 64;
104415 	long: 64;
104416 	long: 64;
104417 	long: 64;
104418 	long: 64;
104419 	long: 64;
104420 	long: 64;
104421 	long: 64;
104422 	long: 64;
104423 	long: 64;
104424 	long: 64;
104425 	long: 64;
104426 	long: 64;
104427 	long: 64;
104428 	long: 64;
104429 	long: 64;
104430 	long: 64;
104431 	long: 64;
104432 	long: 64;
104433 	long: 64;
104434 	long: 64;
104435 	long: 64;
104436 	long: 64;
104437 	long: 64;
104438 	long: 64;
104439 	long: 64;
104440 	long: 64;
104441 	long: 64;
104442 	long: 64;
104443 	long: 64;
104444 	long: 64;
104445 	long: 64;
104446 	long: 64;
104447 	long: 64;
104448 	long: 64;
104449 	long: 64;
104450 	long: 64;
104451 	long: 64;
104452 	long: 64;
104453 	long: 64;
104454 	long: 64;
104455 	long: 64;
104456 	long: 64;
104457 	long: 64;
104458 	long: 64;
104459 	long: 64;
104460 	long: 64;
104461 	long: 64;
104462 	long: 64;
104463 	long: 64;
104464 	long: 64;
104465 	long: 64;
104466 	long: 64;
104467 	long: 64;
104468 	long: 64;
104469 	long: 64;
104470 	long: 64;
104471 	long: 64;
104472 	long: 64;
104473 	long: 64;
104474 	long: 64;
104475 	long: 64;
104476 	long: 64;
104477 	long: 64;
104478 	long: 64;
104479 	long: 64;
104480 	long: 64;
104481 	long: 64;
104482 	long: 64;
104483 	long: 64;
104484 	long: 64;
104485 	long: 64;
104486 	long: 64;
104487 	long: 64;
104488 	long: 64;
104489 	long: 64;
104490 	long: 64;
104491 	long: 64;
104492 	long: 64;
104493 	long: 64;
104494 	long: 64;
104495 	long: 64;
104496 	long: 64;
104497 	long: 64;
104498 	long: 64;
104499 	long: 64;
104500 	long: 64;
104501 	long: 64;
104502 	long: 64;
104503 	long: 64;
104504 	long: 64;
104505 	long: 64;
104506 	long: 64;
104507 	long: 64;
104508 	long: 64;
104509 	long: 64;
104510 	long: 64;
104511 	long: 64;
104512 	long: 64;
104513 	long: 64;
104514 	long: 64;
104515 	long: 64;
104516 	long: 64;
104517 	long: 64;
104518 	long: 64;
104519 	long: 64;
104520 	long: 64;
104521 	long: 64;
104522 	long: 64;
104523 	long: 64;
104524 	long: 64;
104525 	long: 64;
104526 	long: 64;
104527 	long: 64;
104528 	long: 64;
104529 	long: 64;
104530 	long: 64;
104531 	long: 64;
104532 	long: 64;
104533 	long: 64;
104534 	long: 64;
104535 	long: 64;
104536 	long: 64;
104537 	long: 64;
104538 	long: 64;
104539 	long: 64;
104540 	long: 64;
104541 	long: 64;
104542 	long: 64;
104543 	long: 64;
104544 	long unsigned int consumer_pos;
104545 	long: 64;
104546 	long: 64;
104547 	long: 64;
104548 	long: 64;
104549 	long: 64;
104550 	long: 64;
104551 	long: 64;
104552 	long: 64;
104553 	long: 64;
104554 	long: 64;
104555 	long: 64;
104556 	long: 64;
104557 	long: 64;
104558 	long: 64;
104559 	long: 64;
104560 	long: 64;
104561 	long: 64;
104562 	long: 64;
104563 	long: 64;
104564 	long: 64;
104565 	long: 64;
104566 	long: 64;
104567 	long: 64;
104568 	long: 64;
104569 	long: 64;
104570 	long: 64;
104571 	long: 64;
104572 	long: 64;
104573 	long: 64;
104574 	long: 64;
104575 	long: 64;
104576 	long: 64;
104577 	long: 64;
104578 	long: 64;
104579 	long: 64;
104580 	long: 64;
104581 	long: 64;
104582 	long: 64;
104583 	long: 64;
104584 	long: 64;
104585 	long: 64;
104586 	long: 64;
104587 	long: 64;
104588 	long: 64;
104589 	long: 64;
104590 	long: 64;
104591 	long: 64;
104592 	long: 64;
104593 	long: 64;
104594 	long: 64;
104595 	long: 64;
104596 	long: 64;
104597 	long: 64;
104598 	long: 64;
104599 	long: 64;
104600 	long: 64;
104601 	long: 64;
104602 	long: 64;
104603 	long: 64;
104604 	long: 64;
104605 	long: 64;
104606 	long: 64;
104607 	long: 64;
104608 	long: 64;
104609 	long: 64;
104610 	long: 64;
104611 	long: 64;
104612 	long: 64;
104613 	long: 64;
104614 	long: 64;
104615 	long: 64;
104616 	long: 64;
104617 	long: 64;
104618 	long: 64;
104619 	long: 64;
104620 	long: 64;
104621 	long: 64;
104622 	long: 64;
104623 	long: 64;
104624 	long: 64;
104625 	long: 64;
104626 	long: 64;
104627 	long: 64;
104628 	long: 64;
104629 	long: 64;
104630 	long: 64;
104631 	long: 64;
104632 	long: 64;
104633 	long: 64;
104634 	long: 64;
104635 	long: 64;
104636 	long: 64;
104637 	long: 64;
104638 	long: 64;
104639 	long: 64;
104640 	long: 64;
104641 	long: 64;
104642 	long: 64;
104643 	long: 64;
104644 	long: 64;
104645 	long: 64;
104646 	long: 64;
104647 	long: 64;
104648 	long: 64;
104649 	long: 64;
104650 	long: 64;
104651 	long: 64;
104652 	long: 64;
104653 	long: 64;
104654 	long: 64;
104655 	long: 64;
104656 	long: 64;
104657 	long: 64;
104658 	long: 64;
104659 	long: 64;
104660 	long: 64;
104661 	long: 64;
104662 	long: 64;
104663 	long: 64;
104664 	long: 64;
104665 	long: 64;
104666 	long: 64;
104667 	long: 64;
104668 	long: 64;
104669 	long: 64;
104670 	long: 64;
104671 	long: 64;
104672 	long: 64;
104673 	long: 64;
104674 	long: 64;
104675 	long: 64;
104676 	long: 64;
104677 	long: 64;
104678 	long: 64;
104679 	long: 64;
104680 	long: 64;
104681 	long: 64;
104682 	long: 64;
104683 	long: 64;
104684 	long: 64;
104685 	long: 64;
104686 	long: 64;
104687 	long: 64;
104688 	long: 64;
104689 	long: 64;
104690 	long: 64;
104691 	long: 64;
104692 	long: 64;
104693 	long: 64;
104694 	long: 64;
104695 	long: 64;
104696 	long: 64;
104697 	long: 64;
104698 	long: 64;
104699 	long: 64;
104700 	long: 64;
104701 	long: 64;
104702 	long: 64;
104703 	long: 64;
104704 	long: 64;
104705 	long: 64;
104706 	long: 64;
104707 	long: 64;
104708 	long: 64;
104709 	long: 64;
104710 	long: 64;
104711 	long: 64;
104712 	long: 64;
104713 	long: 64;
104714 	long: 64;
104715 	long: 64;
104716 	long: 64;
104717 	long: 64;
104718 	long: 64;
104719 	long: 64;
104720 	long: 64;
104721 	long: 64;
104722 	long: 64;
104723 	long: 64;
104724 	long: 64;
104725 	long: 64;
104726 	long: 64;
104727 	long: 64;
104728 	long: 64;
104729 	long: 64;
104730 	long: 64;
104731 	long: 64;
104732 	long: 64;
104733 	long: 64;
104734 	long: 64;
104735 	long: 64;
104736 	long: 64;
104737 	long: 64;
104738 	long: 64;
104739 	long: 64;
104740 	long: 64;
104741 	long: 64;
104742 	long: 64;
104743 	long: 64;
104744 	long: 64;
104745 	long: 64;
104746 	long: 64;
104747 	long: 64;
104748 	long: 64;
104749 	long: 64;
104750 	long: 64;
104751 	long: 64;
104752 	long: 64;
104753 	long: 64;
104754 	long: 64;
104755 	long: 64;
104756 	long: 64;
104757 	long: 64;
104758 	long: 64;
104759 	long: 64;
104760 	long: 64;
104761 	long: 64;
104762 	long: 64;
104763 	long: 64;
104764 	long: 64;
104765 	long: 64;
104766 	long: 64;
104767 	long: 64;
104768 	long: 64;
104769 	long: 64;
104770 	long: 64;
104771 	long: 64;
104772 	long: 64;
104773 	long: 64;
104774 	long: 64;
104775 	long: 64;
104776 	long: 64;
104777 	long: 64;
104778 	long: 64;
104779 	long: 64;
104780 	long: 64;
104781 	long: 64;
104782 	long: 64;
104783 	long: 64;
104784 	long: 64;
104785 	long: 64;
104786 	long: 64;
104787 	long: 64;
104788 	long: 64;
104789 	long: 64;
104790 	long: 64;
104791 	long: 64;
104792 	long: 64;
104793 	long: 64;
104794 	long: 64;
104795 	long: 64;
104796 	long: 64;
104797 	long: 64;
104798 	long: 64;
104799 	long: 64;
104800 	long: 64;
104801 	long: 64;
104802 	long: 64;
104803 	long: 64;
104804 	long: 64;
104805 	long: 64;
104806 	long: 64;
104807 	long: 64;
104808 	long: 64;
104809 	long: 64;
104810 	long: 64;
104811 	long: 64;
104812 	long: 64;
104813 	long: 64;
104814 	long: 64;
104815 	long: 64;
104816 	long: 64;
104817 	long: 64;
104818 	long: 64;
104819 	long: 64;
104820 	long: 64;
104821 	long: 64;
104822 	long: 64;
104823 	long: 64;
104824 	long: 64;
104825 	long: 64;
104826 	long: 64;
104827 	long: 64;
104828 	long: 64;
104829 	long: 64;
104830 	long: 64;
104831 	long: 64;
104832 	long: 64;
104833 	long: 64;
104834 	long: 64;
104835 	long: 64;
104836 	long: 64;
104837 	long: 64;
104838 	long: 64;
104839 	long: 64;
104840 	long: 64;
104841 	long: 64;
104842 	long: 64;
104843 	long: 64;
104844 	long: 64;
104845 	long: 64;
104846 	long: 64;
104847 	long: 64;
104848 	long: 64;
104849 	long: 64;
104850 	long: 64;
104851 	long: 64;
104852 	long: 64;
104853 	long: 64;
104854 	long: 64;
104855 	long: 64;
104856 	long: 64;
104857 	long: 64;
104858 	long: 64;
104859 	long: 64;
104860 	long: 64;
104861 	long: 64;
104862 	long: 64;
104863 	long: 64;
104864 	long: 64;
104865 	long: 64;
104866 	long: 64;
104867 	long: 64;
104868 	long: 64;
104869 	long: 64;
104870 	long: 64;
104871 	long: 64;
104872 	long: 64;
104873 	long: 64;
104874 	long: 64;
104875 	long: 64;
104876 	long: 64;
104877 	long: 64;
104878 	long: 64;
104879 	long: 64;
104880 	long: 64;
104881 	long: 64;
104882 	long: 64;
104883 	long: 64;
104884 	long: 64;
104885 	long: 64;
104886 	long: 64;
104887 	long: 64;
104888 	long: 64;
104889 	long: 64;
104890 	long: 64;
104891 	long: 64;
104892 	long: 64;
104893 	long: 64;
104894 	long: 64;
104895 	long: 64;
104896 	long: 64;
104897 	long: 64;
104898 	long: 64;
104899 	long: 64;
104900 	long: 64;
104901 	long: 64;
104902 	long: 64;
104903 	long: 64;
104904 	long: 64;
104905 	long: 64;
104906 	long: 64;
104907 	long: 64;
104908 	long: 64;
104909 	long: 64;
104910 	long: 64;
104911 	long: 64;
104912 	long: 64;
104913 	long: 64;
104914 	long: 64;
104915 	long: 64;
104916 	long: 64;
104917 	long: 64;
104918 	long: 64;
104919 	long: 64;
104920 	long: 64;
104921 	long: 64;
104922 	long: 64;
104923 	long: 64;
104924 	long: 64;
104925 	long: 64;
104926 	long: 64;
104927 	long: 64;
104928 	long: 64;
104929 	long: 64;
104930 	long: 64;
104931 	long: 64;
104932 	long: 64;
104933 	long: 64;
104934 	long: 64;
104935 	long: 64;
104936 	long: 64;
104937 	long: 64;
104938 	long: 64;
104939 	long: 64;
104940 	long: 64;
104941 	long: 64;
104942 	long: 64;
104943 	long: 64;
104944 	long: 64;
104945 	long: 64;
104946 	long: 64;
104947 	long: 64;
104948 	long: 64;
104949 	long: 64;
104950 	long: 64;
104951 	long: 64;
104952 	long: 64;
104953 	long: 64;
104954 	long: 64;
104955 	long: 64;
104956 	long: 64;
104957 	long: 64;
104958 	long: 64;
104959 	long: 64;
104960 	long: 64;
104961 	long: 64;
104962 	long: 64;
104963 	long: 64;
104964 	long: 64;
104965 	long: 64;
104966 	long: 64;
104967 	long: 64;
104968 	long: 64;
104969 	long: 64;
104970 	long: 64;
104971 	long: 64;
104972 	long: 64;
104973 	long: 64;
104974 	long: 64;
104975 	long: 64;
104976 	long: 64;
104977 	long: 64;
104978 	long: 64;
104979 	long: 64;
104980 	long: 64;
104981 	long: 64;
104982 	long: 64;
104983 	long: 64;
104984 	long: 64;
104985 	long: 64;
104986 	long: 64;
104987 	long: 64;
104988 	long: 64;
104989 	long: 64;
104990 	long: 64;
104991 	long: 64;
104992 	long: 64;
104993 	long: 64;
104994 	long: 64;
104995 	long: 64;
104996 	long: 64;
104997 	long: 64;
104998 	long: 64;
104999 	long: 64;
105000 	long: 64;
105001 	long: 64;
105002 	long: 64;
105003 	long: 64;
105004 	long: 64;
105005 	long: 64;
105006 	long: 64;
105007 	long: 64;
105008 	long: 64;
105009 	long: 64;
105010 	long: 64;
105011 	long: 64;
105012 	long: 64;
105013 	long: 64;
105014 	long: 64;
105015 	long: 64;
105016 	long: 64;
105017 	long: 64;
105018 	long: 64;
105019 	long: 64;
105020 	long: 64;
105021 	long: 64;
105022 	long: 64;
105023 	long: 64;
105024 	long: 64;
105025 	long: 64;
105026 	long: 64;
105027 	long: 64;
105028 	long: 64;
105029 	long: 64;
105030 	long: 64;
105031 	long: 64;
105032 	long: 64;
105033 	long: 64;
105034 	long: 64;
105035 	long: 64;
105036 	long: 64;
105037 	long: 64;
105038 	long: 64;
105039 	long: 64;
105040 	long: 64;
105041 	long: 64;
105042 	long: 64;
105043 	long: 64;
105044 	long: 64;
105045 	long: 64;
105046 	long: 64;
105047 	long: 64;
105048 	long: 64;
105049 	long: 64;
105050 	long: 64;
105051 	long: 64;
105052 	long: 64;
105053 	long: 64;
105054 	long: 64;
105055 	long: 64;
105056 	long: 64;
105057 	long: 64;
105058 	long: 64;
105059 	long: 64;
105060 	long: 64;
105061 	long: 64;
105062 	long: 64;
105063 	long: 64;
105064 	long: 64;
105065 	long: 64;
105066 	long: 64;
105067 	long: 64;
105068 	long: 64;
105069 	long: 64;
105070 	long: 64;
105071 	long: 64;
105072 	long: 64;
105073 	long: 64;
105074 	long: 64;
105075 	long: 64;
105076 	long: 64;
105077 	long: 64;
105078 	long: 64;
105079 	long: 64;
105080 	long: 64;
105081 	long: 64;
105082 	long: 64;
105083 	long: 64;
105084 	long: 64;
105085 	long: 64;
105086 	long: 64;
105087 	long: 64;
105088 	long: 64;
105089 	long: 64;
105090 	long: 64;
105091 	long: 64;
105092 	long: 64;
105093 	long: 64;
105094 	long: 64;
105095 	long: 64;
105096 	long: 64;
105097 	long: 64;
105098 	long: 64;
105099 	long: 64;
105100 	long: 64;
105101 	long: 64;
105102 	long: 64;
105103 	long: 64;
105104 	long: 64;
105105 	long: 64;
105106 	long: 64;
105107 	long: 64;
105108 	long: 64;
105109 	long: 64;
105110 	long: 64;
105111 	long: 64;
105112 	long: 64;
105113 	long: 64;
105114 	long: 64;
105115 	long: 64;
105116 	long: 64;
105117 	long: 64;
105118 	long: 64;
105119 	long: 64;
105120 	long: 64;
105121 	long: 64;
105122 	long: 64;
105123 	long: 64;
105124 	long: 64;
105125 	long: 64;
105126 	long: 64;
105127 	long: 64;
105128 	long: 64;
105129 	long: 64;
105130 	long: 64;
105131 	long: 64;
105132 	long: 64;
105133 	long: 64;
105134 	long: 64;
105135 	long: 64;
105136 	long: 64;
105137 	long: 64;
105138 	long: 64;
105139 	long: 64;
105140 	long: 64;
105141 	long: 64;
105142 	long: 64;
105143 	long: 64;
105144 	long: 64;
105145 	long: 64;
105146 	long: 64;
105147 	long: 64;
105148 	long: 64;
105149 	long: 64;
105150 	long: 64;
105151 	long: 64;
105152 	long: 64;
105153 	long: 64;
105154 	long: 64;
105155 	long: 64;
105156 	long: 64;
105157 	long: 64;
105158 	long: 64;
105159 	long: 64;
105160 	long: 64;
105161 	long: 64;
105162 	long: 64;
105163 	long: 64;
105164 	long: 64;
105165 	long: 64;
105166 	long: 64;
105167 	long: 64;
105168 	long: 64;
105169 	long: 64;
105170 	long: 64;
105171 	long: 64;
105172 	long: 64;
105173 	long: 64;
105174 	long: 64;
105175 	long: 64;
105176 	long: 64;
105177 	long: 64;
105178 	long: 64;
105179 	long: 64;
105180 	long: 64;
105181 	long: 64;
105182 	long: 64;
105183 	long: 64;
105184 	long: 64;
105185 	long: 64;
105186 	long: 64;
105187 	long: 64;
105188 	long: 64;
105189 	long: 64;
105190 	long: 64;
105191 	long: 64;
105192 	long: 64;
105193 	long: 64;
105194 	long: 64;
105195 	long: 64;
105196 	long: 64;
105197 	long: 64;
105198 	long: 64;
105199 	long: 64;
105200 	long: 64;
105201 	long: 64;
105202 	long: 64;
105203 	long: 64;
105204 	long: 64;
105205 	long: 64;
105206 	long: 64;
105207 	long: 64;
105208 	long: 64;
105209 	long: 64;
105210 	long: 64;
105211 	long: 64;
105212 	long: 64;
105213 	long: 64;
105214 	long: 64;
105215 	long: 64;
105216 	long: 64;
105217 	long: 64;
105218 	long: 64;
105219 	long: 64;
105220 	long: 64;
105221 	long: 64;
105222 	long: 64;
105223 	long: 64;
105224 	long: 64;
105225 	long: 64;
105226 	long: 64;
105227 	long: 64;
105228 	long: 64;
105229 	long: 64;
105230 	long: 64;
105231 	long: 64;
105232 	long: 64;
105233 	long: 64;
105234 	long: 64;
105235 	long: 64;
105236 	long: 64;
105237 	long: 64;
105238 	long: 64;
105239 	long: 64;
105240 	long: 64;
105241 	long: 64;
105242 	long: 64;
105243 	long: 64;
105244 	long: 64;
105245 	long: 64;
105246 	long: 64;
105247 	long: 64;
105248 	long: 64;
105249 	long: 64;
105250 	long: 64;
105251 	long: 64;
105252 	long: 64;
105253 	long: 64;
105254 	long: 64;
105255 	long: 64;
105256 	long: 64;
105257 	long: 64;
105258 	long: 64;
105259 	long: 64;
105260 	long: 64;
105261 	long: 64;
105262 	long: 64;
105263 	long: 64;
105264 	long: 64;
105265 	long: 64;
105266 	long: 64;
105267 	long: 64;
105268 	long: 64;
105269 	long: 64;
105270 	long: 64;
105271 	long: 64;
105272 	long: 64;
105273 	long: 64;
105274 	long: 64;
105275 	long: 64;
105276 	long: 64;
105277 	long: 64;
105278 	long: 64;
105279 	long: 64;
105280 	long: 64;
105281 	long: 64;
105282 	long: 64;
105283 	long: 64;
105284 	long: 64;
105285 	long: 64;
105286 	long: 64;
105287 	long: 64;
105288 	long: 64;
105289 	long: 64;
105290 	long: 64;
105291 	long: 64;
105292 	long: 64;
105293 	long: 64;
105294 	long: 64;
105295 	long: 64;
105296 	long: 64;
105297 	long: 64;
105298 	long: 64;
105299 	long: 64;
105300 	long: 64;
105301 	long: 64;
105302 	long: 64;
105303 	long: 64;
105304 	long: 64;
105305 	long: 64;
105306 	long: 64;
105307 	long: 64;
105308 	long: 64;
105309 	long: 64;
105310 	long: 64;
105311 	long: 64;
105312 	long: 64;
105313 	long: 64;
105314 	long: 64;
105315 	long: 64;
105316 	long: 64;
105317 	long: 64;
105318 	long: 64;
105319 	long: 64;
105320 	long: 64;
105321 	long: 64;
105322 	long: 64;
105323 	long: 64;
105324 	long: 64;
105325 	long: 64;
105326 	long: 64;
105327 	long: 64;
105328 	long: 64;
105329 	long: 64;
105330 	long: 64;
105331 	long: 64;
105332 	long: 64;
105333 	long: 64;
105334 	long: 64;
105335 	long: 64;
105336 	long: 64;
105337 	long: 64;
105338 	long: 64;
105339 	long: 64;
105340 	long: 64;
105341 	long: 64;
105342 	long: 64;
105343 	long: 64;
105344 	long: 64;
105345 	long: 64;
105346 	long: 64;
105347 	long: 64;
105348 	long: 64;
105349 	long: 64;
105350 	long: 64;
105351 	long: 64;
105352 	long: 64;
105353 	long: 64;
105354 	long: 64;
105355 	long: 64;
105356 	long: 64;
105357 	long: 64;
105358 	long: 64;
105359 	long: 64;
105360 	long: 64;
105361 	long: 64;
105362 	long: 64;
105363 	long: 64;
105364 	long: 64;
105365 	long: 64;
105366 	long: 64;
105367 	long: 64;
105368 	long: 64;
105369 	long: 64;
105370 	long: 64;
105371 	long: 64;
105372 	long: 64;
105373 	long: 64;
105374 	long: 64;
105375 	long: 64;
105376 	long: 64;
105377 	long: 64;
105378 	long: 64;
105379 	long: 64;
105380 	long: 64;
105381 	long: 64;
105382 	long: 64;
105383 	long: 64;
105384 	long: 64;
105385 	long: 64;
105386 	long: 64;
105387 	long: 64;
105388 	long: 64;
105389 	long: 64;
105390 	long: 64;
105391 	long: 64;
105392 	long: 64;
105393 	long: 64;
105394 	long: 64;
105395 	long: 64;
105396 	long: 64;
105397 	long: 64;
105398 	long: 64;
105399 	long: 64;
105400 	long: 64;
105401 	long: 64;
105402 	long: 64;
105403 	long: 64;
105404 	long: 64;
105405 	long: 64;
105406 	long: 64;
105407 	long: 64;
105408 	long: 64;
105409 	long: 64;
105410 	long: 64;
105411 	long: 64;
105412 	long: 64;
105413 	long: 64;
105414 	long: 64;
105415 	long: 64;
105416 	long: 64;
105417 	long: 64;
105418 	long: 64;
105419 	long: 64;
105420 	long: 64;
105421 	long: 64;
105422 	long: 64;
105423 	long: 64;
105424 	long: 64;
105425 	long: 64;
105426 	long: 64;
105427 	long: 64;
105428 	long: 64;
105429 	long: 64;
105430 	long: 64;
105431 	long: 64;
105432 	long: 64;
105433 	long: 64;
105434 	long: 64;
105435 	long: 64;
105436 	long: 64;
105437 	long: 64;
105438 	long: 64;
105439 	long: 64;
105440 	long: 64;
105441 	long: 64;
105442 	long: 64;
105443 	long: 64;
105444 	long: 64;
105445 	long: 64;
105446 	long: 64;
105447 	long: 64;
105448 	long: 64;
105449 	long: 64;
105450 	long: 64;
105451 	long: 64;
105452 	long: 64;
105453 	long: 64;
105454 	long: 64;
105455 	long: 64;
105456 	long: 64;
105457 	long: 64;
105458 	long: 64;
105459 	long: 64;
105460 	long: 64;
105461 	long: 64;
105462 	long: 64;
105463 	long: 64;
105464 	long: 64;
105465 	long: 64;
105466 	long: 64;
105467 	long: 64;
105468 	long: 64;
105469 	long: 64;
105470 	long: 64;
105471 	long: 64;
105472 	long: 64;
105473 	long: 64;
105474 	long: 64;
105475 	long: 64;
105476 	long: 64;
105477 	long: 64;
105478 	long: 64;
105479 	long: 64;
105480 	long: 64;
105481 	long: 64;
105482 	long: 64;
105483 	long: 64;
105484 	long: 64;
105485 	long: 64;
105486 	long: 64;
105487 	long: 64;
105488 	long: 64;
105489 	long: 64;
105490 	long: 64;
105491 	long: 64;
105492 	long: 64;
105493 	long: 64;
105494 	long: 64;
105495 	long: 64;
105496 	long: 64;
105497 	long: 64;
105498 	long: 64;
105499 	long: 64;
105500 	long: 64;
105501 	long: 64;
105502 	long: 64;
105503 	long: 64;
105504 	long: 64;
105505 	long: 64;
105506 	long: 64;
105507 	long: 64;
105508 	long: 64;
105509 	long: 64;
105510 	long: 64;
105511 	long: 64;
105512 	long: 64;
105513 	long: 64;
105514 	long: 64;
105515 	long: 64;
105516 	long: 64;
105517 	long: 64;
105518 	long: 64;
105519 	long: 64;
105520 	long: 64;
105521 	long: 64;
105522 	long: 64;
105523 	long: 64;
105524 	long: 64;
105525 	long: 64;
105526 	long: 64;
105527 	long: 64;
105528 	long: 64;
105529 	long: 64;
105530 	long: 64;
105531 	long: 64;
105532 	long: 64;
105533 	long: 64;
105534 	long: 64;
105535 	long: 64;
105536 	long: 64;
105537 	long: 64;
105538 	long: 64;
105539 	long: 64;
105540 	long: 64;
105541 	long: 64;
105542 	long: 64;
105543 	long: 64;
105544 	long: 64;
105545 	long: 64;
105546 	long: 64;
105547 	long: 64;
105548 	long: 64;
105549 	long: 64;
105550 	long: 64;
105551 	long: 64;
105552 	long: 64;
105553 	long: 64;
105554 	long: 64;
105555 	long: 64;
105556 	long: 64;
105557 	long: 64;
105558 	long: 64;
105559 	long: 64;
105560 	long: 64;
105561 	long: 64;
105562 	long: 64;
105563 	long: 64;
105564 	long: 64;
105565 	long: 64;
105566 	long: 64;
105567 	long: 64;
105568 	long: 64;
105569 	long: 64;
105570 	long: 64;
105571 	long: 64;
105572 	long: 64;
105573 	long: 64;
105574 	long: 64;
105575 	long: 64;
105576 	long: 64;
105577 	long: 64;
105578 	long: 64;
105579 	long: 64;
105580 	long: 64;
105581 	long: 64;
105582 	long: 64;
105583 	long: 64;
105584 	long: 64;
105585 	long: 64;
105586 	long: 64;
105587 	long: 64;
105588 	long: 64;
105589 	long: 64;
105590 	long: 64;
105591 	long: 64;
105592 	long: 64;
105593 	long: 64;
105594 	long: 64;
105595 	long: 64;
105596 	long: 64;
105597 	long: 64;
105598 	long: 64;
105599 	long: 64;
105600 	long: 64;
105601 	long: 64;
105602 	long: 64;
105603 	long: 64;
105604 	long: 64;
105605 	long: 64;
105606 	long: 64;
105607 	long: 64;
105608 	long: 64;
105609 	long: 64;
105610 	long: 64;
105611 	long: 64;
105612 	long: 64;
105613 	long: 64;
105614 	long: 64;
105615 	long: 64;
105616 	long: 64;
105617 	long: 64;
105618 	long: 64;
105619 	long: 64;
105620 	long: 64;
105621 	long: 64;
105622 	long: 64;
105623 	long: 64;
105624 	long: 64;
105625 	long: 64;
105626 	long: 64;
105627 	long: 64;
105628 	long: 64;
105629 	long: 64;
105630 	long: 64;
105631 	long: 64;
105632 	long: 64;
105633 	long: 64;
105634 	long: 64;
105635 	long: 64;
105636 	long: 64;
105637 	long: 64;
105638 	long: 64;
105639 	long: 64;
105640 	long: 64;
105641 	long: 64;
105642 	long: 64;
105643 	long: 64;
105644 	long: 64;
105645 	long: 64;
105646 	long: 64;
105647 	long: 64;
105648 	long: 64;
105649 	long: 64;
105650 	long: 64;
105651 	long: 64;
105652 	long: 64;
105653 	long: 64;
105654 	long: 64;
105655 	long: 64;
105656 	long: 64;
105657 	long: 64;
105658 	long: 64;
105659 	long: 64;
105660 	long: 64;
105661 	long: 64;
105662 	long: 64;
105663 	long: 64;
105664 	long: 64;
105665 	long: 64;
105666 	long: 64;
105667 	long: 64;
105668 	long: 64;
105669 	long: 64;
105670 	long: 64;
105671 	long: 64;
105672 	long: 64;
105673 	long: 64;
105674 	long: 64;
105675 	long: 64;
105676 	long: 64;
105677 	long: 64;
105678 	long: 64;
105679 	long: 64;
105680 	long: 64;
105681 	long: 64;
105682 	long: 64;
105683 	long: 64;
105684 	long: 64;
105685 	long: 64;
105686 	long: 64;
105687 	long: 64;
105688 	long: 64;
105689 	long: 64;
105690 	long: 64;
105691 	long: 64;
105692 	long: 64;
105693 	long: 64;
105694 	long: 64;
105695 	long: 64;
105696 	long: 64;
105697 	long: 64;
105698 	long: 64;
105699 	long: 64;
105700 	long: 64;
105701 	long: 64;
105702 	long: 64;
105703 	long: 64;
105704 	long: 64;
105705 	long: 64;
105706 	long: 64;
105707 	long: 64;
105708 	long: 64;
105709 	long: 64;
105710 	long: 64;
105711 	long: 64;
105712 	long: 64;
105713 	long: 64;
105714 	long: 64;
105715 	long: 64;
105716 	long: 64;
105717 	long: 64;
105718 	long: 64;
105719 	long: 64;
105720 	long: 64;
105721 	long: 64;
105722 	long: 64;
105723 	long: 64;
105724 	long: 64;
105725 	long: 64;
105726 	long: 64;
105727 	long: 64;
105728 	long: 64;
105729 	long: 64;
105730 	long: 64;
105731 	long: 64;
105732 	long: 64;
105733 	long: 64;
105734 	long: 64;
105735 	long: 64;
105736 	long: 64;
105737 	long: 64;
105738 	long: 64;
105739 	long: 64;
105740 	long: 64;
105741 	long: 64;
105742 	long: 64;
105743 	long: 64;
105744 	long: 64;
105745 	long: 64;
105746 	long: 64;
105747 	long: 64;
105748 	long: 64;
105749 	long: 64;
105750 	long: 64;
105751 	long: 64;
105752 	long: 64;
105753 	long: 64;
105754 	long: 64;
105755 	long: 64;
105756 	long: 64;
105757 	long: 64;
105758 	long: 64;
105759 	long: 64;
105760 	long: 64;
105761 	long: 64;
105762 	long: 64;
105763 	long: 64;
105764 	long: 64;
105765 	long: 64;
105766 	long: 64;
105767 	long: 64;
105768 	long: 64;
105769 	long: 64;
105770 	long: 64;
105771 	long: 64;
105772 	long: 64;
105773 	long: 64;
105774 	long: 64;
105775 	long: 64;
105776 	long: 64;
105777 	long: 64;
105778 	long: 64;
105779 	long: 64;
105780 	long: 64;
105781 	long: 64;
105782 	long: 64;
105783 	long: 64;
105784 	long: 64;
105785 	long: 64;
105786 	long: 64;
105787 	long: 64;
105788 	long: 64;
105789 	long: 64;
105790 	long: 64;
105791 	long: 64;
105792 	long: 64;
105793 	long: 64;
105794 	long: 64;
105795 	long: 64;
105796 	long: 64;
105797 	long: 64;
105798 	long: 64;
105799 	long: 64;
105800 	long: 64;
105801 	long: 64;
105802 	long: 64;
105803 	long: 64;
105804 	long: 64;
105805 	long: 64;
105806 	long: 64;
105807 	long: 64;
105808 	long: 64;
105809 	long: 64;
105810 	long: 64;
105811 	long: 64;
105812 	long: 64;
105813 	long: 64;
105814 	long: 64;
105815 	long: 64;
105816 	long: 64;
105817 	long: 64;
105818 	long: 64;
105819 	long: 64;
105820 	long: 64;
105821 	long: 64;
105822 	long: 64;
105823 	long: 64;
105824 	long: 64;
105825 	long: 64;
105826 	long: 64;
105827 	long: 64;
105828 	long: 64;
105829 	long: 64;
105830 	long: 64;
105831 	long: 64;
105832 	long: 64;
105833 	long: 64;
105834 	long: 64;
105835 	long: 64;
105836 	long: 64;
105837 	long: 64;
105838 	long: 64;
105839 	long: 64;
105840 	long: 64;
105841 	long: 64;
105842 	long: 64;
105843 	long: 64;
105844 	long: 64;
105845 	long: 64;
105846 	long: 64;
105847 	long: 64;
105848 	long: 64;
105849 	long: 64;
105850 	long: 64;
105851 	long: 64;
105852 	long: 64;
105853 	long: 64;
105854 	long: 64;
105855 	long: 64;
105856 	long: 64;
105857 	long: 64;
105858 	long: 64;
105859 	long: 64;
105860 	long: 64;
105861 	long: 64;
105862 	long: 64;
105863 	long: 64;
105864 	long: 64;
105865 	long: 64;
105866 	long: 64;
105867 	long: 64;
105868 	long: 64;
105869 	long: 64;
105870 	long: 64;
105871 	long: 64;
105872 	long: 64;
105873 	long: 64;
105874 	long: 64;
105875 	long: 64;
105876 	long: 64;
105877 	long: 64;
105878 	long: 64;
105879 	long: 64;
105880 	long: 64;
105881 	long: 64;
105882 	long: 64;
105883 	long: 64;
105884 	long: 64;
105885 	long: 64;
105886 	long: 64;
105887 	long: 64;
105888 	long: 64;
105889 	long: 64;
105890 	long: 64;
105891 	long: 64;
105892 	long: 64;
105893 	long: 64;
105894 	long: 64;
105895 	long: 64;
105896 	long: 64;
105897 	long: 64;
105898 	long: 64;
105899 	long: 64;
105900 	long: 64;
105901 	long: 64;
105902 	long: 64;
105903 	long: 64;
105904 	long: 64;
105905 	long: 64;
105906 	long: 64;
105907 	long: 64;
105908 	long: 64;
105909 	long: 64;
105910 	long: 64;
105911 	long: 64;
105912 	long: 64;
105913 	long: 64;
105914 	long: 64;
105915 	long: 64;
105916 	long: 64;
105917 	long: 64;
105918 	long: 64;
105919 	long: 64;
105920 	long: 64;
105921 	long: 64;
105922 	long: 64;
105923 	long: 64;
105924 	long: 64;
105925 	long: 64;
105926 	long: 64;
105927 	long: 64;
105928 	long: 64;
105929 	long: 64;
105930 	long: 64;
105931 	long: 64;
105932 	long: 64;
105933 	long: 64;
105934 	long: 64;
105935 	long: 64;
105936 	long: 64;
105937 	long: 64;
105938 	long: 64;
105939 	long: 64;
105940 	long: 64;
105941 	long: 64;
105942 	long: 64;
105943 	long: 64;
105944 	long: 64;
105945 	long: 64;
105946 	long: 64;
105947 	long: 64;
105948 	long: 64;
105949 	long: 64;
105950 	long: 64;
105951 	long: 64;
105952 	long: 64;
105953 	long: 64;
105954 	long: 64;
105955 	long: 64;
105956 	long: 64;
105957 	long: 64;
105958 	long: 64;
105959 	long: 64;
105960 	long: 64;
105961 	long: 64;
105962 	long: 64;
105963 	long: 64;
105964 	long: 64;
105965 	long: 64;
105966 	long: 64;
105967 	long: 64;
105968 	long: 64;
105969 	long: 64;
105970 	long: 64;
105971 	long: 64;
105972 	long: 64;
105973 	long: 64;
105974 	long: 64;
105975 	long: 64;
105976 	long: 64;
105977 	long: 64;
105978 	long: 64;
105979 	long: 64;
105980 	long: 64;
105981 	long: 64;
105982 	long: 64;
105983 	long: 64;
105984 	long: 64;
105985 	long: 64;
105986 	long: 64;
105987 	long: 64;
105988 	long: 64;
105989 	long: 64;
105990 	long: 64;
105991 	long: 64;
105992 	long: 64;
105993 	long: 64;
105994 	long: 64;
105995 	long: 64;
105996 	long: 64;
105997 	long: 64;
105998 	long: 64;
105999 	long: 64;
106000 	long: 64;
106001 	long: 64;
106002 	long: 64;
106003 	long: 64;
106004 	long: 64;
106005 	long: 64;
106006 	long: 64;
106007 	long: 64;
106008 	long: 64;
106009 	long: 64;
106010 	long: 64;
106011 	long: 64;
106012 	long: 64;
106013 	long: 64;
106014 	long: 64;
106015 	long: 64;
106016 	long: 64;
106017 	long: 64;
106018 	long: 64;
106019 	long: 64;
106020 	long: 64;
106021 	long: 64;
106022 	long: 64;
106023 	long: 64;
106024 	long: 64;
106025 	long: 64;
106026 	long: 64;
106027 	long: 64;
106028 	long: 64;
106029 	long: 64;
106030 	long: 64;
106031 	long: 64;
106032 	long: 64;
106033 	long: 64;
106034 	long: 64;
106035 	long: 64;
106036 	long: 64;
106037 	long: 64;
106038 	long: 64;
106039 	long: 64;
106040 	long: 64;
106041 	long: 64;
106042 	long: 64;
106043 	long: 64;
106044 	long: 64;
106045 	long: 64;
106046 	long: 64;
106047 	long: 64;
106048 	long: 64;
106049 	long: 64;
106050 	long: 64;
106051 	long: 64;
106052 	long: 64;
106053 	long: 64;
106054 	long: 64;
106055 	long: 64;
106056 	long: 64;
106057 	long: 64;
106058 	long: 64;
106059 	long: 64;
106060 	long: 64;
106061 	long: 64;
106062 	long: 64;
106063 	long: 64;
106064 	long: 64;
106065 	long: 64;
106066 	long: 64;
106067 	long: 64;
106068 	long: 64;
106069 	long: 64;
106070 	long: 64;
106071 	long: 64;
106072 	long: 64;
106073 	long: 64;
106074 	long: 64;
106075 	long: 64;
106076 	long: 64;
106077 	long: 64;
106078 	long: 64;
106079 	long: 64;
106080 	long: 64;
106081 	long: 64;
106082 	long: 64;
106083 	long: 64;
106084 	long: 64;
106085 	long: 64;
106086 	long: 64;
106087 	long: 64;
106088 	long: 64;
106089 	long: 64;
106090 	long: 64;
106091 	long: 64;
106092 	long: 64;
106093 	long: 64;
106094 	long: 64;
106095 	long: 64;
106096 	long: 64;
106097 	long: 64;
106098 	long: 64;
106099 	long: 64;
106100 	long: 64;
106101 	long: 64;
106102 	long: 64;
106103 	long: 64;
106104 	long: 64;
106105 	long: 64;
106106 	long: 64;
106107 	long: 64;
106108 	long: 64;
106109 	long: 64;
106110 	long: 64;
106111 	long: 64;
106112 	long: 64;
106113 	long: 64;
106114 	long: 64;
106115 	long: 64;
106116 	long: 64;
106117 	long: 64;
106118 	long: 64;
106119 	long: 64;
106120 	long: 64;
106121 	long: 64;
106122 	long: 64;
106123 	long: 64;
106124 	long: 64;
106125 	long: 64;
106126 	long: 64;
106127 	long: 64;
106128 	long: 64;
106129 	long: 64;
106130 	long: 64;
106131 	long: 64;
106132 	long: 64;
106133 	long: 64;
106134 	long: 64;
106135 	long: 64;
106136 	long: 64;
106137 	long: 64;
106138 	long: 64;
106139 	long: 64;
106140 	long: 64;
106141 	long: 64;
106142 	long: 64;
106143 	long: 64;
106144 	long: 64;
106145 	long: 64;
106146 	long: 64;
106147 	long: 64;
106148 	long: 64;
106149 	long: 64;
106150 	long: 64;
106151 	long: 64;
106152 	long: 64;
106153 	long: 64;
106154 	long: 64;
106155 	long: 64;
106156 	long: 64;
106157 	long: 64;
106158 	long: 64;
106159 	long: 64;
106160 	long: 64;
106161 	long: 64;
106162 	long: 64;
106163 	long: 64;
106164 	long: 64;
106165 	long: 64;
106166 	long: 64;
106167 	long: 64;
106168 	long: 64;
106169 	long: 64;
106170 	long: 64;
106171 	long: 64;
106172 	long: 64;
106173 	long: 64;
106174 	long: 64;
106175 	long: 64;
106176 	long: 64;
106177 	long: 64;
106178 	long: 64;
106179 	long: 64;
106180 	long: 64;
106181 	long: 64;
106182 	long: 64;
106183 	long: 64;
106184 	long: 64;
106185 	long: 64;
106186 	long: 64;
106187 	long: 64;
106188 	long: 64;
106189 	long: 64;
106190 	long: 64;
106191 	long: 64;
106192 	long: 64;
106193 	long: 64;
106194 	long: 64;
106195 	long: 64;
106196 	long: 64;
106197 	long: 64;
106198 	long: 64;
106199 	long: 64;
106200 	long: 64;
106201 	long: 64;
106202 	long: 64;
106203 	long: 64;
106204 	long: 64;
106205 	long: 64;
106206 	long: 64;
106207 	long: 64;
106208 	long: 64;
106209 	long: 64;
106210 	long: 64;
106211 	long: 64;
106212 	long: 64;
106213 	long: 64;
106214 	long: 64;
106215 	long: 64;
106216 	long: 64;
106217 	long: 64;
106218 	long: 64;
106219 	long: 64;
106220 	long: 64;
106221 	long: 64;
106222 	long: 64;
106223 	long: 64;
106224 	long: 64;
106225 	long: 64;
106226 	long: 64;
106227 	long: 64;
106228 	long: 64;
106229 	long: 64;
106230 	long: 64;
106231 	long: 64;
106232 	long: 64;
106233 	long: 64;
106234 	long: 64;
106235 	long: 64;
106236 	long: 64;
106237 	long: 64;
106238 	long: 64;
106239 	long: 64;
106240 	long: 64;
106241 	long: 64;
106242 	long: 64;
106243 	long: 64;
106244 	long: 64;
106245 	long: 64;
106246 	long: 64;
106247 	long: 64;
106248 	long: 64;
106249 	long: 64;
106250 	long: 64;
106251 	long: 64;
106252 	long: 64;
106253 	long: 64;
106254 	long: 64;
106255 	long: 64;
106256 	long: 64;
106257 	long: 64;
106258 	long: 64;
106259 	long: 64;
106260 	long: 64;
106261 	long: 64;
106262 	long: 64;
106263 	long: 64;
106264 	long: 64;
106265 	long: 64;
106266 	long: 64;
106267 	long: 64;
106268 	long: 64;
106269 	long: 64;
106270 	long: 64;
106271 	long: 64;
106272 	long: 64;
106273 	long: 64;
106274 	long: 64;
106275 	long: 64;
106276 	long: 64;
106277 	long: 64;
106278 	long: 64;
106279 	long: 64;
106280 	long: 64;
106281 	long: 64;
106282 	long: 64;
106283 	long: 64;
106284 	long: 64;
106285 	long: 64;
106286 	long: 64;
106287 	long: 64;
106288 	long: 64;
106289 	long: 64;
106290 	long: 64;
106291 	long: 64;
106292 	long: 64;
106293 	long: 64;
106294 	long: 64;
106295 	long: 64;
106296 	long: 64;
106297 	long: 64;
106298 	long: 64;
106299 	long: 64;
106300 	long: 64;
106301 	long: 64;
106302 	long: 64;
106303 	long: 64;
106304 	long: 64;
106305 	long: 64;
106306 	long: 64;
106307 	long: 64;
106308 	long: 64;
106309 	long: 64;
106310 	long: 64;
106311 	long: 64;
106312 	long: 64;
106313 	long: 64;
106314 	long: 64;
106315 	long: 64;
106316 	long: 64;
106317 	long: 64;
106318 	long: 64;
106319 	long: 64;
106320 	long: 64;
106321 	long: 64;
106322 	long: 64;
106323 	long: 64;
106324 	long: 64;
106325 	long: 64;
106326 	long: 64;
106327 	long: 64;
106328 	long: 64;
106329 	long: 64;
106330 	long: 64;
106331 	long: 64;
106332 	long: 64;
106333 	long: 64;
106334 	long: 64;
106335 	long: 64;
106336 	long: 64;
106337 	long: 64;
106338 	long: 64;
106339 	long: 64;
106340 	long: 64;
106341 	long: 64;
106342 	long: 64;
106343 	long: 64;
106344 	long: 64;
106345 	long: 64;
106346 	long: 64;
106347 	long: 64;
106348 	long: 64;
106349 	long: 64;
106350 	long: 64;
106351 	long: 64;
106352 	long: 64;
106353 	long: 64;
106354 	long: 64;
106355 	long: 64;
106356 	long: 64;
106357 	long: 64;
106358 	long: 64;
106359 	long: 64;
106360 	long: 64;
106361 	long: 64;
106362 	long: 64;
106363 	long: 64;
106364 	long: 64;
106365 	long: 64;
106366 	long: 64;
106367 	long: 64;
106368 	long: 64;
106369 	long: 64;
106370 	long: 64;
106371 	long: 64;
106372 	long: 64;
106373 	long: 64;
106374 	long: 64;
106375 	long: 64;
106376 	long: 64;
106377 	long: 64;
106378 	long: 64;
106379 	long: 64;
106380 	long: 64;
106381 	long: 64;
106382 	long: 64;
106383 	long: 64;
106384 	long: 64;
106385 	long: 64;
106386 	long: 64;
106387 	long: 64;
106388 	long: 64;
106389 	long: 64;
106390 	long: 64;
106391 	long: 64;
106392 	long: 64;
106393 	long: 64;
106394 	long: 64;
106395 	long: 64;
106396 	long: 64;
106397 	long: 64;
106398 	long: 64;
106399 	long: 64;
106400 	long: 64;
106401 	long: 64;
106402 	long: 64;
106403 	long: 64;
106404 	long: 64;
106405 	long: 64;
106406 	long: 64;
106407 	long: 64;
106408 	long: 64;
106409 	long: 64;
106410 	long: 64;
106411 	long: 64;
106412 	long: 64;
106413 	long: 64;
106414 	long: 64;
106415 	long: 64;
106416 	long: 64;
106417 	long: 64;
106418 	long: 64;
106419 	long: 64;
106420 	long: 64;
106421 	long: 64;
106422 	long: 64;
106423 	long: 64;
106424 	long: 64;
106425 	long: 64;
106426 	long: 64;
106427 	long: 64;
106428 	long: 64;
106429 	long: 64;
106430 	long: 64;
106431 	long: 64;
106432 	long: 64;
106433 	long: 64;
106434 	long: 64;
106435 	long: 64;
106436 	long: 64;
106437 	long: 64;
106438 	long: 64;
106439 	long: 64;
106440 	long: 64;
106441 	long: 64;
106442 	long: 64;
106443 	long: 64;
106444 	long: 64;
106445 	long: 64;
106446 	long: 64;
106447 	long: 64;
106448 	long: 64;
106449 	long: 64;
106450 	long: 64;
106451 	long: 64;
106452 	long: 64;
106453 	long: 64;
106454 	long: 64;
106455 	long: 64;
106456 	long: 64;
106457 	long: 64;
106458 	long: 64;
106459 	long: 64;
106460 	long: 64;
106461 	long: 64;
106462 	long: 64;
106463 	long: 64;
106464 	long: 64;
106465 	long: 64;
106466 	long: 64;
106467 	long: 64;
106468 	long: 64;
106469 	long: 64;
106470 	long: 64;
106471 	long: 64;
106472 	long: 64;
106473 	long: 64;
106474 	long: 64;
106475 	long: 64;
106476 	long: 64;
106477 	long: 64;
106478 	long: 64;
106479 	long: 64;
106480 	long: 64;
106481 	long: 64;
106482 	long: 64;
106483 	long: 64;
106484 	long: 64;
106485 	long: 64;
106486 	long: 64;
106487 	long: 64;
106488 	long: 64;
106489 	long: 64;
106490 	long: 64;
106491 	long: 64;
106492 	long: 64;
106493 	long: 64;
106494 	long: 64;
106495 	long: 64;
106496 	long: 64;
106497 	long: 64;
106498 	long: 64;
106499 	long: 64;
106500 	long: 64;
106501 	long: 64;
106502 	long: 64;
106503 	long: 64;
106504 	long: 64;
106505 	long: 64;
106506 	long: 64;
106507 	long: 64;
106508 	long: 64;
106509 	long: 64;
106510 	long: 64;
106511 	long: 64;
106512 	long: 64;
106513 	long: 64;
106514 	long: 64;
106515 	long: 64;
106516 	long: 64;
106517 	long: 64;
106518 	long: 64;
106519 	long: 64;
106520 	long: 64;
106521 	long: 64;
106522 	long: 64;
106523 	long: 64;
106524 	long: 64;
106525 	long: 64;
106526 	long: 64;
106527 	long: 64;
106528 	long: 64;
106529 	long: 64;
106530 	long: 64;
106531 	long: 64;
106532 	long: 64;
106533 	long: 64;
106534 	long: 64;
106535 	long: 64;
106536 	long: 64;
106537 	long: 64;
106538 	long: 64;
106539 	long: 64;
106540 	long: 64;
106541 	long: 64;
106542 	long: 64;
106543 	long: 64;
106544 	long: 64;
106545 	long: 64;
106546 	long: 64;
106547 	long: 64;
106548 	long: 64;
106549 	long: 64;
106550 	long: 64;
106551 	long: 64;
106552 	long: 64;
106553 	long: 64;
106554 	long: 64;
106555 	long: 64;
106556 	long: 64;
106557 	long: 64;
106558 	long: 64;
106559 	long: 64;
106560 	long: 64;
106561 	long: 64;
106562 	long: 64;
106563 	long: 64;
106564 	long: 64;
106565 	long: 64;
106566 	long: 64;
106567 	long: 64;
106568 	long: 64;
106569 	long: 64;
106570 	long: 64;
106571 	long: 64;
106572 	long: 64;
106573 	long: 64;
106574 	long: 64;
106575 	long: 64;
106576 	long: 64;
106577 	long: 64;
106578 	long: 64;
106579 	long: 64;
106580 	long: 64;
106581 	long: 64;
106582 	long: 64;
106583 	long: 64;
106584 	long: 64;
106585 	long: 64;
106586 	long: 64;
106587 	long: 64;
106588 	long: 64;
106589 	long: 64;
106590 	long: 64;
106591 	long: 64;
106592 	long unsigned int producer_pos;
106593 	long: 64;
106594 	long: 64;
106595 	long: 64;
106596 	long: 64;
106597 	long: 64;
106598 	long: 64;
106599 	long: 64;
106600 	long: 64;
106601 	long: 64;
106602 	long: 64;
106603 	long: 64;
106604 	long: 64;
106605 	long: 64;
106606 	long: 64;
106607 	long: 64;
106608 	long: 64;
106609 	long: 64;
106610 	long: 64;
106611 	long: 64;
106612 	long: 64;
106613 	long: 64;
106614 	long: 64;
106615 	long: 64;
106616 	long: 64;
106617 	long: 64;
106618 	long: 64;
106619 	long: 64;
106620 	long: 64;
106621 	long: 64;
106622 	long: 64;
106623 	long: 64;
106624 	long: 64;
106625 	long: 64;
106626 	long: 64;
106627 	long: 64;
106628 	long: 64;
106629 	long: 64;
106630 	long: 64;
106631 	long: 64;
106632 	long: 64;
106633 	long: 64;
106634 	long: 64;
106635 	long: 64;
106636 	long: 64;
106637 	long: 64;
106638 	long: 64;
106639 	long: 64;
106640 	long: 64;
106641 	long: 64;
106642 	long: 64;
106643 	long: 64;
106644 	long: 64;
106645 	long: 64;
106646 	long: 64;
106647 	long: 64;
106648 	long: 64;
106649 	long: 64;
106650 	long: 64;
106651 	long: 64;
106652 	long: 64;
106653 	long: 64;
106654 	long: 64;
106655 	long: 64;
106656 	long: 64;
106657 	long: 64;
106658 	long: 64;
106659 	long: 64;
106660 	long: 64;
106661 	long: 64;
106662 	long: 64;
106663 	long: 64;
106664 	long: 64;
106665 	long: 64;
106666 	long: 64;
106667 	long: 64;
106668 	long: 64;
106669 	long: 64;
106670 	long: 64;
106671 	long: 64;
106672 	long: 64;
106673 	long: 64;
106674 	long: 64;
106675 	long: 64;
106676 	long: 64;
106677 	long: 64;
106678 	long: 64;
106679 	long: 64;
106680 	long: 64;
106681 	long: 64;
106682 	long: 64;
106683 	long: 64;
106684 	long: 64;
106685 	long: 64;
106686 	long: 64;
106687 	long: 64;
106688 	long: 64;
106689 	long: 64;
106690 	long: 64;
106691 	long: 64;
106692 	long: 64;
106693 	long: 64;
106694 	long: 64;
106695 	long: 64;
106696 	long: 64;
106697 	long: 64;
106698 	long: 64;
106699 	long: 64;
106700 	long: 64;
106701 	long: 64;
106702 	long: 64;
106703 	long: 64;
106704 	long: 64;
106705 	long: 64;
106706 	long: 64;
106707 	long: 64;
106708 	long: 64;
106709 	long: 64;
106710 	long: 64;
106711 	long: 64;
106712 	long: 64;
106713 	long: 64;
106714 	long: 64;
106715 	long: 64;
106716 	long: 64;
106717 	long: 64;
106718 	long: 64;
106719 	long: 64;
106720 	long: 64;
106721 	long: 64;
106722 	long: 64;
106723 	long: 64;
106724 	long: 64;
106725 	long: 64;
106726 	long: 64;
106727 	long: 64;
106728 	long: 64;
106729 	long: 64;
106730 	long: 64;
106731 	long: 64;
106732 	long: 64;
106733 	long: 64;
106734 	long: 64;
106735 	long: 64;
106736 	long: 64;
106737 	long: 64;
106738 	long: 64;
106739 	long: 64;
106740 	long: 64;
106741 	long: 64;
106742 	long: 64;
106743 	long: 64;
106744 	long: 64;
106745 	long: 64;
106746 	long: 64;
106747 	long: 64;
106748 	long: 64;
106749 	long: 64;
106750 	long: 64;
106751 	long: 64;
106752 	long: 64;
106753 	long: 64;
106754 	long: 64;
106755 	long: 64;
106756 	long: 64;
106757 	long: 64;
106758 	long: 64;
106759 	long: 64;
106760 	long: 64;
106761 	long: 64;
106762 	long: 64;
106763 	long: 64;
106764 	long: 64;
106765 	long: 64;
106766 	long: 64;
106767 	long: 64;
106768 	long: 64;
106769 	long: 64;
106770 	long: 64;
106771 	long: 64;
106772 	long: 64;
106773 	long: 64;
106774 	long: 64;
106775 	long: 64;
106776 	long: 64;
106777 	long: 64;
106778 	long: 64;
106779 	long: 64;
106780 	long: 64;
106781 	long: 64;
106782 	long: 64;
106783 	long: 64;
106784 	long: 64;
106785 	long: 64;
106786 	long: 64;
106787 	long: 64;
106788 	long: 64;
106789 	long: 64;
106790 	long: 64;
106791 	long: 64;
106792 	long: 64;
106793 	long: 64;
106794 	long: 64;
106795 	long: 64;
106796 	long: 64;
106797 	long: 64;
106798 	long: 64;
106799 	long: 64;
106800 	long: 64;
106801 	long: 64;
106802 	long: 64;
106803 	long: 64;
106804 	long: 64;
106805 	long: 64;
106806 	long: 64;
106807 	long: 64;
106808 	long: 64;
106809 	long: 64;
106810 	long: 64;
106811 	long: 64;
106812 	long: 64;
106813 	long: 64;
106814 	long: 64;
106815 	long: 64;
106816 	long: 64;
106817 	long: 64;
106818 	long: 64;
106819 	long: 64;
106820 	long: 64;
106821 	long: 64;
106822 	long: 64;
106823 	long: 64;
106824 	long: 64;
106825 	long: 64;
106826 	long: 64;
106827 	long: 64;
106828 	long: 64;
106829 	long: 64;
106830 	long: 64;
106831 	long: 64;
106832 	long: 64;
106833 	long: 64;
106834 	long: 64;
106835 	long: 64;
106836 	long: 64;
106837 	long: 64;
106838 	long: 64;
106839 	long: 64;
106840 	long: 64;
106841 	long: 64;
106842 	long: 64;
106843 	long: 64;
106844 	long: 64;
106845 	long: 64;
106846 	long: 64;
106847 	long: 64;
106848 	long: 64;
106849 	long: 64;
106850 	long: 64;
106851 	long: 64;
106852 	long: 64;
106853 	long: 64;
106854 	long: 64;
106855 	long: 64;
106856 	long: 64;
106857 	long: 64;
106858 	long: 64;
106859 	long: 64;
106860 	long: 64;
106861 	long: 64;
106862 	long: 64;
106863 	long: 64;
106864 	long: 64;
106865 	long: 64;
106866 	long: 64;
106867 	long: 64;
106868 	long: 64;
106869 	long: 64;
106870 	long: 64;
106871 	long: 64;
106872 	long: 64;
106873 	long: 64;
106874 	long: 64;
106875 	long: 64;
106876 	long: 64;
106877 	long: 64;
106878 	long: 64;
106879 	long: 64;
106880 	long: 64;
106881 	long: 64;
106882 	long: 64;
106883 	long: 64;
106884 	long: 64;
106885 	long: 64;
106886 	long: 64;
106887 	long: 64;
106888 	long: 64;
106889 	long: 64;
106890 	long: 64;
106891 	long: 64;
106892 	long: 64;
106893 	long: 64;
106894 	long: 64;
106895 	long: 64;
106896 	long: 64;
106897 	long: 64;
106898 	long: 64;
106899 	long: 64;
106900 	long: 64;
106901 	long: 64;
106902 	long: 64;
106903 	long: 64;
106904 	long: 64;
106905 	long: 64;
106906 	long: 64;
106907 	long: 64;
106908 	long: 64;
106909 	long: 64;
106910 	long: 64;
106911 	long: 64;
106912 	long: 64;
106913 	long: 64;
106914 	long: 64;
106915 	long: 64;
106916 	long: 64;
106917 	long: 64;
106918 	long: 64;
106919 	long: 64;
106920 	long: 64;
106921 	long: 64;
106922 	long: 64;
106923 	long: 64;
106924 	long: 64;
106925 	long: 64;
106926 	long: 64;
106927 	long: 64;
106928 	long: 64;
106929 	long: 64;
106930 	long: 64;
106931 	long: 64;
106932 	long: 64;
106933 	long: 64;
106934 	long: 64;
106935 	long: 64;
106936 	long: 64;
106937 	long: 64;
106938 	long: 64;
106939 	long: 64;
106940 	long: 64;
106941 	long: 64;
106942 	long: 64;
106943 	long: 64;
106944 	long: 64;
106945 	long: 64;
106946 	long: 64;
106947 	long: 64;
106948 	long: 64;
106949 	long: 64;
106950 	long: 64;
106951 	long: 64;
106952 	long: 64;
106953 	long: 64;
106954 	long: 64;
106955 	long: 64;
106956 	long: 64;
106957 	long: 64;
106958 	long: 64;
106959 	long: 64;
106960 	long: 64;
106961 	long: 64;
106962 	long: 64;
106963 	long: 64;
106964 	long: 64;
106965 	long: 64;
106966 	long: 64;
106967 	long: 64;
106968 	long: 64;
106969 	long: 64;
106970 	long: 64;
106971 	long: 64;
106972 	long: 64;
106973 	long: 64;
106974 	long: 64;
106975 	long: 64;
106976 	long: 64;
106977 	long: 64;
106978 	long: 64;
106979 	long: 64;
106980 	long: 64;
106981 	long: 64;
106982 	long: 64;
106983 	long: 64;
106984 	long: 64;
106985 	long: 64;
106986 	long: 64;
106987 	long: 64;
106988 	long: 64;
106989 	long: 64;
106990 	long: 64;
106991 	long: 64;
106992 	long: 64;
106993 	long: 64;
106994 	long: 64;
106995 	long: 64;
106996 	long: 64;
106997 	long: 64;
106998 	long: 64;
106999 	long: 64;
107000 	long: 64;
107001 	long: 64;
107002 	long: 64;
107003 	long: 64;
107004 	long: 64;
107005 	long: 64;
107006 	long: 64;
107007 	long: 64;
107008 	long: 64;
107009 	long: 64;
107010 	long: 64;
107011 	long: 64;
107012 	long: 64;
107013 	long: 64;
107014 	long: 64;
107015 	long: 64;
107016 	long: 64;
107017 	long: 64;
107018 	long: 64;
107019 	long: 64;
107020 	long: 64;
107021 	long: 64;
107022 	long: 64;
107023 	long: 64;
107024 	long: 64;
107025 	long: 64;
107026 	long: 64;
107027 	long: 64;
107028 	long: 64;
107029 	long: 64;
107030 	long: 64;
107031 	long: 64;
107032 	long: 64;
107033 	long: 64;
107034 	long: 64;
107035 	long: 64;
107036 	long: 64;
107037 	long: 64;
107038 	long: 64;
107039 	long: 64;
107040 	long: 64;
107041 	long: 64;
107042 	long: 64;
107043 	long: 64;
107044 	long: 64;
107045 	long: 64;
107046 	long: 64;
107047 	long: 64;
107048 	long: 64;
107049 	long: 64;
107050 	long: 64;
107051 	long: 64;
107052 	long: 64;
107053 	long: 64;
107054 	long: 64;
107055 	long: 64;
107056 	long: 64;
107057 	long: 64;
107058 	long: 64;
107059 	long: 64;
107060 	long: 64;
107061 	long: 64;
107062 	long: 64;
107063 	long: 64;
107064 	long: 64;
107065 	long: 64;
107066 	long: 64;
107067 	long: 64;
107068 	long: 64;
107069 	long: 64;
107070 	long: 64;
107071 	long: 64;
107072 	long: 64;
107073 	long: 64;
107074 	long: 64;
107075 	long: 64;
107076 	long: 64;
107077 	long: 64;
107078 	long: 64;
107079 	long: 64;
107080 	long: 64;
107081 	long: 64;
107082 	long: 64;
107083 	long: 64;
107084 	long: 64;
107085 	long: 64;
107086 	long: 64;
107087 	long: 64;
107088 	long: 64;
107089 	long: 64;
107090 	long: 64;
107091 	long: 64;
107092 	long: 64;
107093 	long: 64;
107094 	long: 64;
107095 	long: 64;
107096 	long: 64;
107097 	long: 64;
107098 	long: 64;
107099 	long: 64;
107100 	long: 64;
107101 	long: 64;
107102 	long: 64;
107103 	long: 64;
107104 	long: 64;
107105 	long: 64;
107106 	long: 64;
107107 	long: 64;
107108 	long: 64;
107109 	long: 64;
107110 	long: 64;
107111 	long: 64;
107112 	long: 64;
107113 	long: 64;
107114 	long: 64;
107115 	long: 64;
107116 	long: 64;
107117 	long: 64;
107118 	long: 64;
107119 	long: 64;
107120 	long: 64;
107121 	long: 64;
107122 	long: 64;
107123 	long: 64;
107124 	long: 64;
107125 	long: 64;
107126 	long: 64;
107127 	long: 64;
107128 	long: 64;
107129 	long: 64;
107130 	long: 64;
107131 	long: 64;
107132 	long: 64;
107133 	long: 64;
107134 	long: 64;
107135 	long: 64;
107136 	long: 64;
107137 	long: 64;
107138 	long: 64;
107139 	long: 64;
107140 	long: 64;
107141 	long: 64;
107142 	long: 64;
107143 	long: 64;
107144 	long: 64;
107145 	long: 64;
107146 	long: 64;
107147 	long: 64;
107148 	long: 64;
107149 	long: 64;
107150 	long: 64;
107151 	long: 64;
107152 	long: 64;
107153 	long: 64;
107154 	long: 64;
107155 	long: 64;
107156 	long: 64;
107157 	long: 64;
107158 	long: 64;
107159 	long: 64;
107160 	long: 64;
107161 	long: 64;
107162 	long: 64;
107163 	long: 64;
107164 	long: 64;
107165 	long: 64;
107166 	long: 64;
107167 	long: 64;
107168 	long: 64;
107169 	long: 64;
107170 	long: 64;
107171 	long: 64;
107172 	long: 64;
107173 	long: 64;
107174 	long: 64;
107175 	long: 64;
107176 	long: 64;
107177 	long: 64;
107178 	long: 64;
107179 	long: 64;
107180 	long: 64;
107181 	long: 64;
107182 	long: 64;
107183 	long: 64;
107184 	long: 64;
107185 	long: 64;
107186 	long: 64;
107187 	long: 64;
107188 	long: 64;
107189 	long: 64;
107190 	long: 64;
107191 	long: 64;
107192 	long: 64;
107193 	long: 64;
107194 	long: 64;
107195 	long: 64;
107196 	long: 64;
107197 	long: 64;
107198 	long: 64;
107199 	long: 64;
107200 	long: 64;
107201 	long: 64;
107202 	long: 64;
107203 	long: 64;
107204 	long: 64;
107205 	long: 64;
107206 	long: 64;
107207 	long: 64;
107208 	long: 64;
107209 	long: 64;
107210 	long: 64;
107211 	long: 64;
107212 	long: 64;
107213 	long: 64;
107214 	long: 64;
107215 	long: 64;
107216 	long: 64;
107217 	long: 64;
107218 	long: 64;
107219 	long: 64;
107220 	long: 64;
107221 	long: 64;
107222 	long: 64;
107223 	long: 64;
107224 	long: 64;
107225 	long: 64;
107226 	long: 64;
107227 	long: 64;
107228 	long: 64;
107229 	long: 64;
107230 	long: 64;
107231 	long: 64;
107232 	long: 64;
107233 	long: 64;
107234 	long: 64;
107235 	long: 64;
107236 	long: 64;
107237 	long: 64;
107238 	long: 64;
107239 	long: 64;
107240 	long: 64;
107241 	long: 64;
107242 	long: 64;
107243 	long: 64;
107244 	long: 64;
107245 	long: 64;
107246 	long: 64;
107247 	long: 64;
107248 	long: 64;
107249 	long: 64;
107250 	long: 64;
107251 	long: 64;
107252 	long: 64;
107253 	long: 64;
107254 	long: 64;
107255 	long: 64;
107256 	long: 64;
107257 	long: 64;
107258 	long: 64;
107259 	long: 64;
107260 	long: 64;
107261 	long: 64;
107262 	long: 64;
107263 	long: 64;
107264 	long: 64;
107265 	long: 64;
107266 	long: 64;
107267 	long: 64;
107268 	long: 64;
107269 	long: 64;
107270 	long: 64;
107271 	long: 64;
107272 	long: 64;
107273 	long: 64;
107274 	long: 64;
107275 	long: 64;
107276 	long: 64;
107277 	long: 64;
107278 	long: 64;
107279 	long: 64;
107280 	long: 64;
107281 	long: 64;
107282 	long: 64;
107283 	long: 64;
107284 	long: 64;
107285 	long: 64;
107286 	long: 64;
107287 	long: 64;
107288 	long: 64;
107289 	long: 64;
107290 	long: 64;
107291 	long: 64;
107292 	long: 64;
107293 	long: 64;
107294 	long: 64;
107295 	long: 64;
107296 	long: 64;
107297 	long: 64;
107298 	long: 64;
107299 	long: 64;
107300 	long: 64;
107301 	long: 64;
107302 	long: 64;
107303 	long: 64;
107304 	long: 64;
107305 	long: 64;
107306 	long: 64;
107307 	long: 64;
107308 	long: 64;
107309 	long: 64;
107310 	long: 64;
107311 	long: 64;
107312 	long: 64;
107313 	long: 64;
107314 	long: 64;
107315 	long: 64;
107316 	long: 64;
107317 	long: 64;
107318 	long: 64;
107319 	long: 64;
107320 	long: 64;
107321 	long: 64;
107322 	long: 64;
107323 	long: 64;
107324 	long: 64;
107325 	long: 64;
107326 	long: 64;
107327 	long: 64;
107328 	long: 64;
107329 	long: 64;
107330 	long: 64;
107331 	long: 64;
107332 	long: 64;
107333 	long: 64;
107334 	long: 64;
107335 	long: 64;
107336 	long: 64;
107337 	long: 64;
107338 	long: 64;
107339 	long: 64;
107340 	long: 64;
107341 	long: 64;
107342 	long: 64;
107343 	long: 64;
107344 	long: 64;
107345 	long: 64;
107346 	long: 64;
107347 	long: 64;
107348 	long: 64;
107349 	long: 64;
107350 	long: 64;
107351 	long: 64;
107352 	long: 64;
107353 	long: 64;
107354 	long: 64;
107355 	long: 64;
107356 	long: 64;
107357 	long: 64;
107358 	long: 64;
107359 	long: 64;
107360 	long: 64;
107361 	long: 64;
107362 	long: 64;
107363 	long: 64;
107364 	long: 64;
107365 	long: 64;
107366 	long: 64;
107367 	long: 64;
107368 	long: 64;
107369 	long: 64;
107370 	long: 64;
107371 	long: 64;
107372 	long: 64;
107373 	long: 64;
107374 	long: 64;
107375 	long: 64;
107376 	long: 64;
107377 	long: 64;
107378 	long: 64;
107379 	long: 64;
107380 	long: 64;
107381 	long: 64;
107382 	long: 64;
107383 	long: 64;
107384 	long: 64;
107385 	long: 64;
107386 	long: 64;
107387 	long: 64;
107388 	long: 64;
107389 	long: 64;
107390 	long: 64;
107391 	long: 64;
107392 	long: 64;
107393 	long: 64;
107394 	long: 64;
107395 	long: 64;
107396 	long: 64;
107397 	long: 64;
107398 	long: 64;
107399 	long: 64;
107400 	long: 64;
107401 	long: 64;
107402 	long: 64;
107403 	long: 64;
107404 	long: 64;
107405 	long: 64;
107406 	long: 64;
107407 	long: 64;
107408 	long: 64;
107409 	long: 64;
107410 	long: 64;
107411 	long: 64;
107412 	long: 64;
107413 	long: 64;
107414 	long: 64;
107415 	long: 64;
107416 	long: 64;
107417 	long: 64;
107418 	long: 64;
107419 	long: 64;
107420 	long: 64;
107421 	long: 64;
107422 	long: 64;
107423 	long: 64;
107424 	long: 64;
107425 	long: 64;
107426 	long: 64;
107427 	long: 64;
107428 	long: 64;
107429 	long: 64;
107430 	long: 64;
107431 	long: 64;
107432 	long: 64;
107433 	long: 64;
107434 	long: 64;
107435 	long: 64;
107436 	long: 64;
107437 	long: 64;
107438 	long: 64;
107439 	long: 64;
107440 	long: 64;
107441 	long: 64;
107442 	long: 64;
107443 	long: 64;
107444 	long: 64;
107445 	long: 64;
107446 	long: 64;
107447 	long: 64;
107448 	long: 64;
107449 	long: 64;
107450 	long: 64;
107451 	long: 64;
107452 	long: 64;
107453 	long: 64;
107454 	long: 64;
107455 	long: 64;
107456 	long: 64;
107457 	long: 64;
107458 	long: 64;
107459 	long: 64;
107460 	long: 64;
107461 	long: 64;
107462 	long: 64;
107463 	long: 64;
107464 	long: 64;
107465 	long: 64;
107466 	long: 64;
107467 	long: 64;
107468 	long: 64;
107469 	long: 64;
107470 	long: 64;
107471 	long: 64;
107472 	long: 64;
107473 	long: 64;
107474 	long: 64;
107475 	long: 64;
107476 	long: 64;
107477 	long: 64;
107478 	long: 64;
107479 	long: 64;
107480 	long: 64;
107481 	long: 64;
107482 	long: 64;
107483 	long: 64;
107484 	long: 64;
107485 	long: 64;
107486 	long: 64;
107487 	long: 64;
107488 	long: 64;
107489 	long: 64;
107490 	long: 64;
107491 	long: 64;
107492 	long: 64;
107493 	long: 64;
107494 	long: 64;
107495 	long: 64;
107496 	long: 64;
107497 	long: 64;
107498 	long: 64;
107499 	long: 64;
107500 	long: 64;
107501 	long: 64;
107502 	long: 64;
107503 	long: 64;
107504 	long: 64;
107505 	long: 64;
107506 	long: 64;
107507 	long: 64;
107508 	long: 64;
107509 	long: 64;
107510 	long: 64;
107511 	long: 64;
107512 	long: 64;
107513 	long: 64;
107514 	long: 64;
107515 	long: 64;
107516 	long: 64;
107517 	long: 64;
107518 	long: 64;
107519 	long: 64;
107520 	long: 64;
107521 	long: 64;
107522 	long: 64;
107523 	long: 64;
107524 	long: 64;
107525 	long: 64;
107526 	long: 64;
107527 	long: 64;
107528 	long: 64;
107529 	long: 64;
107530 	long: 64;
107531 	long: 64;
107532 	long: 64;
107533 	long: 64;
107534 	long: 64;
107535 	long: 64;
107536 	long: 64;
107537 	long: 64;
107538 	long: 64;
107539 	long: 64;
107540 	long: 64;
107541 	long: 64;
107542 	long: 64;
107543 	long: 64;
107544 	long: 64;
107545 	long: 64;
107546 	long: 64;
107547 	long: 64;
107548 	long: 64;
107549 	long: 64;
107550 	long: 64;
107551 	long: 64;
107552 	long: 64;
107553 	long: 64;
107554 	long: 64;
107555 	long: 64;
107556 	long: 64;
107557 	long: 64;
107558 	long: 64;
107559 	long: 64;
107560 	long: 64;
107561 	long: 64;
107562 	long: 64;
107563 	long: 64;
107564 	long: 64;
107565 	long: 64;
107566 	long: 64;
107567 	long: 64;
107568 	long: 64;
107569 	long: 64;
107570 	long: 64;
107571 	long: 64;
107572 	long: 64;
107573 	long: 64;
107574 	long: 64;
107575 	long: 64;
107576 	long: 64;
107577 	long: 64;
107578 	long: 64;
107579 	long: 64;
107580 	long: 64;
107581 	long: 64;
107582 	long: 64;
107583 	long: 64;
107584 	long: 64;
107585 	long: 64;
107586 	long: 64;
107587 	long: 64;
107588 	long: 64;
107589 	long: 64;
107590 	long: 64;
107591 	long: 64;
107592 	long: 64;
107593 	long: 64;
107594 	long: 64;
107595 	long: 64;
107596 	long: 64;
107597 	long: 64;
107598 	long: 64;
107599 	long: 64;
107600 	long: 64;
107601 	long: 64;
107602 	long: 64;
107603 	long: 64;
107604 	long: 64;
107605 	long: 64;
107606 	long: 64;
107607 	long: 64;
107608 	long: 64;
107609 	long: 64;
107610 	long: 64;
107611 	long: 64;
107612 	long: 64;
107613 	long: 64;
107614 	long: 64;
107615 	long: 64;
107616 	long: 64;
107617 	long: 64;
107618 	long: 64;
107619 	long: 64;
107620 	long: 64;
107621 	long: 64;
107622 	long: 64;
107623 	long: 64;
107624 	long: 64;
107625 	long: 64;
107626 	long: 64;
107627 	long: 64;
107628 	long: 64;
107629 	long: 64;
107630 	long: 64;
107631 	long: 64;
107632 	long: 64;
107633 	long: 64;
107634 	long: 64;
107635 	long: 64;
107636 	long: 64;
107637 	long: 64;
107638 	long: 64;
107639 	long: 64;
107640 	long: 64;
107641 	long: 64;
107642 	long: 64;
107643 	long: 64;
107644 	long: 64;
107645 	long: 64;
107646 	long: 64;
107647 	long: 64;
107648 	long: 64;
107649 	long: 64;
107650 	long: 64;
107651 	long: 64;
107652 	long: 64;
107653 	long: 64;
107654 	long: 64;
107655 	long: 64;
107656 	long: 64;
107657 	long: 64;
107658 	long: 64;
107659 	long: 64;
107660 	long: 64;
107661 	long: 64;
107662 	long: 64;
107663 	long: 64;
107664 	long: 64;
107665 	long: 64;
107666 	long: 64;
107667 	long: 64;
107668 	long: 64;
107669 	long: 64;
107670 	long: 64;
107671 	long: 64;
107672 	long: 64;
107673 	long: 64;
107674 	long: 64;
107675 	long: 64;
107676 	long: 64;
107677 	long: 64;
107678 	long: 64;
107679 	long: 64;
107680 	long: 64;
107681 	long: 64;
107682 	long: 64;
107683 	long: 64;
107684 	long: 64;
107685 	long: 64;
107686 	long: 64;
107687 	long: 64;
107688 	long: 64;
107689 	long: 64;
107690 	long: 64;
107691 	long: 64;
107692 	long: 64;
107693 	long: 64;
107694 	long: 64;
107695 	long: 64;
107696 	long: 64;
107697 	long: 64;
107698 	long: 64;
107699 	long: 64;
107700 	long: 64;
107701 	long: 64;
107702 	long: 64;
107703 	long: 64;
107704 	long: 64;
107705 	long: 64;
107706 	long: 64;
107707 	long: 64;
107708 	long: 64;
107709 	long: 64;
107710 	long: 64;
107711 	long: 64;
107712 	long: 64;
107713 	long: 64;
107714 	long: 64;
107715 	long: 64;
107716 	long: 64;
107717 	long: 64;
107718 	long: 64;
107719 	long: 64;
107720 	long: 64;
107721 	long: 64;
107722 	long: 64;
107723 	long: 64;
107724 	long: 64;
107725 	long: 64;
107726 	long: 64;
107727 	long: 64;
107728 	long: 64;
107729 	long: 64;
107730 	long: 64;
107731 	long: 64;
107732 	long: 64;
107733 	long: 64;
107734 	long: 64;
107735 	long: 64;
107736 	long: 64;
107737 	long: 64;
107738 	long: 64;
107739 	long: 64;
107740 	long: 64;
107741 	long: 64;
107742 	long: 64;
107743 	long: 64;
107744 	long: 64;
107745 	long: 64;
107746 	long: 64;
107747 	long: 64;
107748 	long: 64;
107749 	long: 64;
107750 	long: 64;
107751 	long: 64;
107752 	long: 64;
107753 	long: 64;
107754 	long: 64;
107755 	long: 64;
107756 	long: 64;
107757 	long: 64;
107758 	long: 64;
107759 	long: 64;
107760 	long: 64;
107761 	long: 64;
107762 	long: 64;
107763 	long: 64;
107764 	long: 64;
107765 	long: 64;
107766 	long: 64;
107767 	long: 64;
107768 	long: 64;
107769 	long: 64;
107770 	long: 64;
107771 	long: 64;
107772 	long: 64;
107773 	long: 64;
107774 	long: 64;
107775 	long: 64;
107776 	long: 64;
107777 	long: 64;
107778 	long: 64;
107779 	long: 64;
107780 	long: 64;
107781 	long: 64;
107782 	long: 64;
107783 	long: 64;
107784 	long: 64;
107785 	long: 64;
107786 	long: 64;
107787 	long: 64;
107788 	long: 64;
107789 	long: 64;
107790 	long: 64;
107791 	long: 64;
107792 	long: 64;
107793 	long: 64;
107794 	long: 64;
107795 	long: 64;
107796 	long: 64;
107797 	long: 64;
107798 	long: 64;
107799 	long: 64;
107800 	long: 64;
107801 	long: 64;
107802 	long: 64;
107803 	long: 64;
107804 	long: 64;
107805 	long: 64;
107806 	long: 64;
107807 	long: 64;
107808 	long: 64;
107809 	long: 64;
107810 	long: 64;
107811 	long: 64;
107812 	long: 64;
107813 	long: 64;
107814 	long: 64;
107815 	long: 64;
107816 	long: 64;
107817 	long: 64;
107818 	long: 64;
107819 	long: 64;
107820 	long: 64;
107821 	long: 64;
107822 	long: 64;
107823 	long: 64;
107824 	long: 64;
107825 	long: 64;
107826 	long: 64;
107827 	long: 64;
107828 	long: 64;
107829 	long: 64;
107830 	long: 64;
107831 	long: 64;
107832 	long: 64;
107833 	long: 64;
107834 	long: 64;
107835 	long: 64;
107836 	long: 64;
107837 	long: 64;
107838 	long: 64;
107839 	long: 64;
107840 	long: 64;
107841 	long: 64;
107842 	long: 64;
107843 	long: 64;
107844 	long: 64;
107845 	long: 64;
107846 	long: 64;
107847 	long: 64;
107848 	long: 64;
107849 	long: 64;
107850 	long: 64;
107851 	long: 64;
107852 	long: 64;
107853 	long: 64;
107854 	long: 64;
107855 	long: 64;
107856 	long: 64;
107857 	long: 64;
107858 	long: 64;
107859 	long: 64;
107860 	long: 64;
107861 	long: 64;
107862 	long: 64;
107863 	long: 64;
107864 	long: 64;
107865 	long: 64;
107866 	long: 64;
107867 	long: 64;
107868 	long: 64;
107869 	long: 64;
107870 	long: 64;
107871 	long: 64;
107872 	long: 64;
107873 	long: 64;
107874 	long: 64;
107875 	long: 64;
107876 	long: 64;
107877 	long: 64;
107878 	long: 64;
107879 	long: 64;
107880 	long: 64;
107881 	long: 64;
107882 	long: 64;
107883 	long: 64;
107884 	long: 64;
107885 	long: 64;
107886 	long: 64;
107887 	long: 64;
107888 	long: 64;
107889 	long: 64;
107890 	long: 64;
107891 	long: 64;
107892 	long: 64;
107893 	long: 64;
107894 	long: 64;
107895 	long: 64;
107896 	long: 64;
107897 	long: 64;
107898 	long: 64;
107899 	long: 64;
107900 	long: 64;
107901 	long: 64;
107902 	long: 64;
107903 	long: 64;
107904 	long: 64;
107905 	long: 64;
107906 	long: 64;
107907 	long: 64;
107908 	long: 64;
107909 	long: 64;
107910 	long: 64;
107911 	long: 64;
107912 	long: 64;
107913 	long: 64;
107914 	long: 64;
107915 	long: 64;
107916 	long: 64;
107917 	long: 64;
107918 	long: 64;
107919 	long: 64;
107920 	long: 64;
107921 	long: 64;
107922 	long: 64;
107923 	long: 64;
107924 	long: 64;
107925 	long: 64;
107926 	long: 64;
107927 	long: 64;
107928 	long: 64;
107929 	long: 64;
107930 	long: 64;
107931 	long: 64;
107932 	long: 64;
107933 	long: 64;
107934 	long: 64;
107935 	long: 64;
107936 	long: 64;
107937 	long: 64;
107938 	long: 64;
107939 	long: 64;
107940 	long: 64;
107941 	long: 64;
107942 	long: 64;
107943 	long: 64;
107944 	long: 64;
107945 	long: 64;
107946 	long: 64;
107947 	long: 64;
107948 	long: 64;
107949 	long: 64;
107950 	long: 64;
107951 	long: 64;
107952 	long: 64;
107953 	long: 64;
107954 	long: 64;
107955 	long: 64;
107956 	long: 64;
107957 	long: 64;
107958 	long: 64;
107959 	long: 64;
107960 	long: 64;
107961 	long: 64;
107962 	long: 64;
107963 	long: 64;
107964 	long: 64;
107965 	long: 64;
107966 	long: 64;
107967 	long: 64;
107968 	long: 64;
107969 	long: 64;
107970 	long: 64;
107971 	long: 64;
107972 	long: 64;
107973 	long: 64;
107974 	long: 64;
107975 	long: 64;
107976 	long: 64;
107977 	long: 64;
107978 	long: 64;
107979 	long: 64;
107980 	long: 64;
107981 	long: 64;
107982 	long: 64;
107983 	long: 64;
107984 	long: 64;
107985 	long: 64;
107986 	long: 64;
107987 	long: 64;
107988 	long: 64;
107989 	long: 64;
107990 	long: 64;
107991 	long: 64;
107992 	long: 64;
107993 	long: 64;
107994 	long: 64;
107995 	long: 64;
107996 	long: 64;
107997 	long: 64;
107998 	long: 64;
107999 	long: 64;
108000 	long: 64;
108001 	long: 64;
108002 	long: 64;
108003 	long: 64;
108004 	long: 64;
108005 	long: 64;
108006 	long: 64;
108007 	long: 64;
108008 	long: 64;
108009 	long: 64;
108010 	long: 64;
108011 	long: 64;
108012 	long: 64;
108013 	long: 64;
108014 	long: 64;
108015 	long: 64;
108016 	long: 64;
108017 	long: 64;
108018 	long: 64;
108019 	long: 64;
108020 	long: 64;
108021 	long: 64;
108022 	long: 64;
108023 	long: 64;
108024 	long: 64;
108025 	long: 64;
108026 	long: 64;
108027 	long: 64;
108028 	long: 64;
108029 	long: 64;
108030 	long: 64;
108031 	long: 64;
108032 	long: 64;
108033 	long: 64;
108034 	long: 64;
108035 	long: 64;
108036 	long: 64;
108037 	long: 64;
108038 	long: 64;
108039 	long: 64;
108040 	long: 64;
108041 	long: 64;
108042 	long: 64;
108043 	long: 64;
108044 	long: 64;
108045 	long: 64;
108046 	long: 64;
108047 	long: 64;
108048 	long: 64;
108049 	long: 64;
108050 	long: 64;
108051 	long: 64;
108052 	long: 64;
108053 	long: 64;
108054 	long: 64;
108055 	long: 64;
108056 	long: 64;
108057 	long: 64;
108058 	long: 64;
108059 	long: 64;
108060 	long: 64;
108061 	long: 64;
108062 	long: 64;
108063 	long: 64;
108064 	long: 64;
108065 	long: 64;
108066 	long: 64;
108067 	long: 64;
108068 	long: 64;
108069 	long: 64;
108070 	long: 64;
108071 	long: 64;
108072 	long: 64;
108073 	long: 64;
108074 	long: 64;
108075 	long: 64;
108076 	long: 64;
108077 	long: 64;
108078 	long: 64;
108079 	long: 64;
108080 	long: 64;
108081 	long: 64;
108082 	long: 64;
108083 	long: 64;
108084 	long: 64;
108085 	long: 64;
108086 	long: 64;
108087 	long: 64;
108088 	long: 64;
108089 	long: 64;
108090 	long: 64;
108091 	long: 64;
108092 	long: 64;
108093 	long: 64;
108094 	long: 64;
108095 	long: 64;
108096 	long: 64;
108097 	long: 64;
108098 	long: 64;
108099 	long: 64;
108100 	long: 64;
108101 	long: 64;
108102 	long: 64;
108103 	long: 64;
108104 	long: 64;
108105 	long: 64;
108106 	long: 64;
108107 	long: 64;
108108 	long: 64;
108109 	long: 64;
108110 	long: 64;
108111 	long: 64;
108112 	long: 64;
108113 	long: 64;
108114 	long: 64;
108115 	long: 64;
108116 	long: 64;
108117 	long: 64;
108118 	long: 64;
108119 	long: 64;
108120 	long: 64;
108121 	long: 64;
108122 	long: 64;
108123 	long: 64;
108124 	long: 64;
108125 	long: 64;
108126 	long: 64;
108127 	long: 64;
108128 	long: 64;
108129 	long: 64;
108130 	long: 64;
108131 	long: 64;
108132 	long: 64;
108133 	long: 64;
108134 	long: 64;
108135 	long: 64;
108136 	long: 64;
108137 	long: 64;
108138 	long: 64;
108139 	long: 64;
108140 	long: 64;
108141 	long: 64;
108142 	long: 64;
108143 	long: 64;
108144 	long: 64;
108145 	long: 64;
108146 	long: 64;
108147 	long: 64;
108148 	long: 64;
108149 	long: 64;
108150 	long: 64;
108151 	long: 64;
108152 	long: 64;
108153 	long: 64;
108154 	long: 64;
108155 	long: 64;
108156 	long: 64;
108157 	long: 64;
108158 	long: 64;
108159 	long: 64;
108160 	long: 64;
108161 	long: 64;
108162 	long: 64;
108163 	long: 64;
108164 	long: 64;
108165 	long: 64;
108166 	long: 64;
108167 	long: 64;
108168 	long: 64;
108169 	long: 64;
108170 	long: 64;
108171 	long: 64;
108172 	long: 64;
108173 	long: 64;
108174 	long: 64;
108175 	long: 64;
108176 	long: 64;
108177 	long: 64;
108178 	long: 64;
108179 	long: 64;
108180 	long: 64;
108181 	long: 64;
108182 	long: 64;
108183 	long: 64;
108184 	long: 64;
108185 	long: 64;
108186 	long: 64;
108187 	long: 64;
108188 	long: 64;
108189 	long: 64;
108190 	long: 64;
108191 	long: 64;
108192 	long: 64;
108193 	long: 64;
108194 	long: 64;
108195 	long: 64;
108196 	long: 64;
108197 	long: 64;
108198 	long: 64;
108199 	long: 64;
108200 	long: 64;
108201 	long: 64;
108202 	long: 64;
108203 	long: 64;
108204 	long: 64;
108205 	long: 64;
108206 	long: 64;
108207 	long: 64;
108208 	long: 64;
108209 	long: 64;
108210 	long: 64;
108211 	long: 64;
108212 	long: 64;
108213 	long: 64;
108214 	long: 64;
108215 	long: 64;
108216 	long: 64;
108217 	long: 64;
108218 	long: 64;
108219 	long: 64;
108220 	long: 64;
108221 	long: 64;
108222 	long: 64;
108223 	long: 64;
108224 	long: 64;
108225 	long: 64;
108226 	long: 64;
108227 	long: 64;
108228 	long: 64;
108229 	long: 64;
108230 	long: 64;
108231 	long: 64;
108232 	long: 64;
108233 	long: 64;
108234 	long: 64;
108235 	long: 64;
108236 	long: 64;
108237 	long: 64;
108238 	long: 64;
108239 	long: 64;
108240 	long: 64;
108241 	long: 64;
108242 	long: 64;
108243 	long: 64;
108244 	long: 64;
108245 	long: 64;
108246 	long: 64;
108247 	long: 64;
108248 	long: 64;
108249 	long: 64;
108250 	long: 64;
108251 	long: 64;
108252 	long: 64;
108253 	long: 64;
108254 	long: 64;
108255 	long: 64;
108256 	long: 64;
108257 	long: 64;
108258 	long: 64;
108259 	long: 64;
108260 	long: 64;
108261 	long: 64;
108262 	long: 64;
108263 	long: 64;
108264 	long: 64;
108265 	long: 64;
108266 	long: 64;
108267 	long: 64;
108268 	long: 64;
108269 	long: 64;
108270 	long: 64;
108271 	long: 64;
108272 	long: 64;
108273 	long: 64;
108274 	long: 64;
108275 	long: 64;
108276 	long: 64;
108277 	long: 64;
108278 	long: 64;
108279 	long: 64;
108280 	long: 64;
108281 	long: 64;
108282 	long: 64;
108283 	long: 64;
108284 	long: 64;
108285 	long: 64;
108286 	long: 64;
108287 	long: 64;
108288 	long: 64;
108289 	long: 64;
108290 	long: 64;
108291 	long: 64;
108292 	long: 64;
108293 	long: 64;
108294 	long: 64;
108295 	long: 64;
108296 	long: 64;
108297 	long: 64;
108298 	long: 64;
108299 	long: 64;
108300 	long: 64;
108301 	long: 64;
108302 	long: 64;
108303 	long: 64;
108304 	long: 64;
108305 	long: 64;
108306 	long: 64;
108307 	long: 64;
108308 	long: 64;
108309 	long: 64;
108310 	long: 64;
108311 	long: 64;
108312 	long: 64;
108313 	long: 64;
108314 	long: 64;
108315 	long: 64;
108316 	long: 64;
108317 	long: 64;
108318 	long: 64;
108319 	long: 64;
108320 	long: 64;
108321 	long: 64;
108322 	long: 64;
108323 	long: 64;
108324 	long: 64;
108325 	long: 64;
108326 	long: 64;
108327 	long: 64;
108328 	long: 64;
108329 	long: 64;
108330 	long: 64;
108331 	long: 64;
108332 	long: 64;
108333 	long: 64;
108334 	long: 64;
108335 	long: 64;
108336 	long: 64;
108337 	long: 64;
108338 	long: 64;
108339 	long: 64;
108340 	long: 64;
108341 	long: 64;
108342 	long: 64;
108343 	long: 64;
108344 	long: 64;
108345 	long: 64;
108346 	long: 64;
108347 	long: 64;
108348 	long: 64;
108349 	long: 64;
108350 	long: 64;
108351 	long: 64;
108352 	long: 64;
108353 	long: 64;
108354 	long: 64;
108355 	long: 64;
108356 	long: 64;
108357 	long: 64;
108358 	long: 64;
108359 	long: 64;
108360 	long: 64;
108361 	long: 64;
108362 	long: 64;
108363 	long: 64;
108364 	long: 64;
108365 	long: 64;
108366 	long: 64;
108367 	long: 64;
108368 	long: 64;
108369 	long: 64;
108370 	long: 64;
108371 	long: 64;
108372 	long: 64;
108373 	long: 64;
108374 	long: 64;
108375 	long: 64;
108376 	long: 64;
108377 	long: 64;
108378 	long: 64;
108379 	long: 64;
108380 	long: 64;
108381 	long: 64;
108382 	long: 64;
108383 	long: 64;
108384 	long: 64;
108385 	long: 64;
108386 	long: 64;
108387 	long: 64;
108388 	long: 64;
108389 	long: 64;
108390 	long: 64;
108391 	long: 64;
108392 	long: 64;
108393 	long: 64;
108394 	long: 64;
108395 	long: 64;
108396 	long: 64;
108397 	long: 64;
108398 	long: 64;
108399 	long: 64;
108400 	long: 64;
108401 	long: 64;
108402 	long: 64;
108403 	long: 64;
108404 	long: 64;
108405 	long: 64;
108406 	long: 64;
108407 	long: 64;
108408 	long: 64;
108409 	long: 64;
108410 	long: 64;
108411 	long: 64;
108412 	long: 64;
108413 	long: 64;
108414 	long: 64;
108415 	long: 64;
108416 	long: 64;
108417 	long: 64;
108418 	long: 64;
108419 	long: 64;
108420 	long: 64;
108421 	long: 64;
108422 	long: 64;
108423 	long: 64;
108424 	long: 64;
108425 	long: 64;
108426 	long: 64;
108427 	long: 64;
108428 	long: 64;
108429 	long: 64;
108430 	long: 64;
108431 	long: 64;
108432 	long: 64;
108433 	long: 64;
108434 	long: 64;
108435 	long: 64;
108436 	long: 64;
108437 	long: 64;
108438 	long: 64;
108439 	long: 64;
108440 	long: 64;
108441 	long: 64;
108442 	long: 64;
108443 	long: 64;
108444 	long: 64;
108445 	long: 64;
108446 	long: 64;
108447 	long: 64;
108448 	long: 64;
108449 	long: 64;
108450 	long: 64;
108451 	long: 64;
108452 	long: 64;
108453 	long: 64;
108454 	long: 64;
108455 	long: 64;
108456 	long: 64;
108457 	long: 64;
108458 	long: 64;
108459 	long: 64;
108460 	long: 64;
108461 	long: 64;
108462 	long: 64;
108463 	long: 64;
108464 	long: 64;
108465 	long: 64;
108466 	long: 64;
108467 	long: 64;
108468 	long: 64;
108469 	long: 64;
108470 	long: 64;
108471 	long: 64;
108472 	long: 64;
108473 	long: 64;
108474 	long: 64;
108475 	long: 64;
108476 	long: 64;
108477 	long: 64;
108478 	long: 64;
108479 	long: 64;
108480 	long: 64;
108481 	long: 64;
108482 	long: 64;
108483 	long: 64;
108484 	long: 64;
108485 	long: 64;
108486 	long: 64;
108487 	long: 64;
108488 	long: 64;
108489 	long: 64;
108490 	long: 64;
108491 	long: 64;
108492 	long: 64;
108493 	long: 64;
108494 	long: 64;
108495 	long: 64;
108496 	long: 64;
108497 	long: 64;
108498 	long: 64;
108499 	long: 64;
108500 	long: 64;
108501 	long: 64;
108502 	long: 64;
108503 	long: 64;
108504 	long: 64;
108505 	long: 64;
108506 	long: 64;
108507 	long: 64;
108508 	long: 64;
108509 	long: 64;
108510 	long: 64;
108511 	long: 64;
108512 	long: 64;
108513 	long: 64;
108514 	long: 64;
108515 	long: 64;
108516 	long: 64;
108517 	long: 64;
108518 	long: 64;
108519 	long: 64;
108520 	long: 64;
108521 	long: 64;
108522 	long: 64;
108523 	long: 64;
108524 	long: 64;
108525 	long: 64;
108526 	long: 64;
108527 	long: 64;
108528 	long: 64;
108529 	long: 64;
108530 	long: 64;
108531 	long: 64;
108532 	long: 64;
108533 	long: 64;
108534 	long: 64;
108535 	long: 64;
108536 	long: 64;
108537 	long: 64;
108538 	long: 64;
108539 	long: 64;
108540 	long: 64;
108541 	long: 64;
108542 	long: 64;
108543 	long: 64;
108544 	long: 64;
108545 	long: 64;
108546 	long: 64;
108547 	long: 64;
108548 	long: 64;
108549 	long: 64;
108550 	long: 64;
108551 	long: 64;
108552 	long: 64;
108553 	long: 64;
108554 	long: 64;
108555 	long: 64;
108556 	long: 64;
108557 	long: 64;
108558 	long: 64;
108559 	long: 64;
108560 	long: 64;
108561 	long: 64;
108562 	long: 64;
108563 	long: 64;
108564 	long: 64;
108565 	long: 64;
108566 	long: 64;
108567 	long: 64;
108568 	long: 64;
108569 	long: 64;
108570 	long: 64;
108571 	long: 64;
108572 	long: 64;
108573 	long: 64;
108574 	long: 64;
108575 	long: 64;
108576 	long: 64;
108577 	long: 64;
108578 	long: 64;
108579 	long: 64;
108580 	long: 64;
108581 	long: 64;
108582 	long: 64;
108583 	long: 64;
108584 	long: 64;
108585 	long: 64;
108586 	long: 64;
108587 	long: 64;
108588 	long: 64;
108589 	long: 64;
108590 	long: 64;
108591 	long: 64;
108592 	long: 64;
108593 	long: 64;
108594 	long: 64;
108595 	long: 64;
108596 	long: 64;
108597 	long: 64;
108598 	long: 64;
108599 	long: 64;
108600 	long: 64;
108601 	long: 64;
108602 	long: 64;
108603 	long: 64;
108604 	long: 64;
108605 	long: 64;
108606 	long: 64;
108607 	long: 64;
108608 	long: 64;
108609 	long: 64;
108610 	long: 64;
108611 	long: 64;
108612 	long: 64;
108613 	long: 64;
108614 	long: 64;
108615 	long: 64;
108616 	long: 64;
108617 	long: 64;
108618 	long: 64;
108619 	long: 64;
108620 	long: 64;
108621 	long: 64;
108622 	long: 64;
108623 	long: 64;
108624 	long: 64;
108625 	long: 64;
108626 	long: 64;
108627 	long: 64;
108628 	long: 64;
108629 	long: 64;
108630 	long: 64;
108631 	long: 64;
108632 	long: 64;
108633 	long: 64;
108634 	long: 64;
108635 	long: 64;
108636 	long: 64;
108637 	long: 64;
108638 	long: 64;
108639 	long: 64;
108640 	char data[0];
108641 };
108642 
108643 struct bpf_ringbuf_map {
108644 	struct bpf_map map;
108645 	struct bpf_ringbuf *rb;
108646 	long: 64;
108647 	long: 64;
108648 	long: 64;
108649 	long: 64;
108650 	long: 64;
108651 	long: 64;
108652 	long: 64;
108653 };
108654 
108655 struct bpf_ringbuf_hdr {
108656 	u32 len;
108657 	u32 pg_off;
108658 };
108659 
108660 typedef u64 (*btf_bpf_ringbuf_reserve)(struct bpf_map *, u64, u64);
108661 
108662 typedef u64 (*btf_bpf_ringbuf_submit)(void *, u64);
108663 
108664 typedef u64 (*btf_bpf_ringbuf_discard)(void *, u64);
108665 
108666 typedef u64 (*btf_bpf_ringbuf_output)(struct bpf_map *, void *, u64, u64);
108667 
108668 typedef u64 (*btf_bpf_ringbuf_query)(struct bpf_map *, u64);
108669 
108670 typedef u64 (*btf_bpf_ringbuf_reserve_dynptr)(struct bpf_map *, u32, u64, struct bpf_dynptr_kern *);
108671 
108672 typedef u64 (*btf_bpf_ringbuf_submit_dynptr)(struct bpf_dynptr_kern *, u64);
108673 
108674 typedef u64 (*btf_bpf_ringbuf_discard_dynptr)(struct bpf_dynptr_kern *, u64);
108675 
108676 typedef u64 (*btf_bpf_user_ringbuf_drain)(struct bpf_map *, void *, void *, u64);
108677 
108678 typedef u64 (*bpf_trampoline_enter_t)(struct bpf_prog *, struct bpf_tramp_run_ctx *);
108679 
108680 typedef void (*bpf_trampoline_exit_t)(struct bpf_prog *, u64, struct bpf_tramp_run_ctx *);
108681 
108682 struct bpf_cpumap_val {
108683 	__u32 qsize;
108684 	union {
108685 		int fd;
108686 		__u32 id;
108687 	} bpf_prog;
108688 };
108689 
108690 struct bpf_cpu_map_entry;
108691 
108692 struct xdp_bulk_queue {
108693 	void *q[8];
108694 	struct list_head flush_node;
108695 	struct bpf_cpu_map_entry *obj;
108696 	unsigned int count;
108697 };
108698 
108699 struct bpf_cpu_map;
108700 
108701 struct bpf_cpu_map_entry {
108702 	u32 cpu;
108703 	int map_id;
108704 	struct xdp_bulk_queue *bulkq;
108705 	struct bpf_cpu_map *cmap;
108706 	struct ptr_ring *queue;
108707 	struct task_struct *kthread;
108708 	struct bpf_cpumap_val value;
108709 	struct bpf_prog *prog;
108710 	atomic_t refcnt;
108711 	struct callback_head rcu;
108712 	struct work_struct kthread_stop_wq;
108713 };
108714 
108715 struct bpf_cpu_map {
108716 	struct bpf_map map;
108717 	struct bpf_cpu_map_entry **cpu_map;
108718 	long: 64;
108719 	long: 64;
108720 	long: 64;
108721 	long: 64;
108722 	long: 64;
108723 	long: 64;
108724 	long: 64;
108725 };
108726 
108727 struct bpf_iter__cgroup {
108728 	union {
108729 		struct bpf_iter_meta *meta;
108730 	};
108731 	union {
108732 		struct cgroup *cgroup;
108733 	};
108734 };
108735 
108736 struct cgroup_iter_priv {
108737 	struct cgroup_subsys_state *start_css;
108738 	bool visited_all;
108739 	bool terminate;
108740 	int order;
108741 };
108742 
108743 enum {
108744 	BPF_F_SYSCTL_BASE_NAME = 1,
108745 };
108746 
108747 struct bpf_sockopt_buf {
108748 	u8 data[32];
108749 };
108750 
108751 struct bpf_cgroup_link {
108752 	struct bpf_link link;
108753 	struct cgroup *cgroup;
108754 	enum bpf_attach_type type;
108755 };
108756 
108757 struct bpf_prog_list {
108758 	struct hlist_node node;
108759 	struct bpf_prog *prog;
108760 	struct bpf_cgroup_link *link;
108761 	struct bpf_cgroup_storage *storage[2];
108762 };
108763 
108764 typedef u64 (*btf_bpf_get_local_storage)(struct bpf_map *, u64);
108765 
108766 typedef u64 (*btf_bpf_get_retval)();
108767 
108768 typedef u64 (*btf_bpf_set_retval)(int);
108769 
108770 typedef u64 (*btf_bpf_sysctl_get_name)(struct bpf_sysctl_kern *, char *, size_t, u64);
108771 
108772 typedef u64 (*btf_bpf_sysctl_get_current_value)(struct bpf_sysctl_kern *, char *, size_t);
108773 
108774 typedef u64 (*btf_bpf_sysctl_get_new_value)(struct bpf_sysctl_kern *, char *, size_t);
108775 
108776 typedef u64 (*btf_bpf_sysctl_set_new_value)(struct bpf_sysctl_kern *, const char *, size_t);
108777 
108778 typedef u64 (*btf_bpf_get_netns_cookie_sockopt)(struct bpf_sockopt_kern *);
108779 
108780 struct pkcs7_message;
108781 
108782 struct wb_lock_cookie {
108783 	bool locked;
108784 	long unsigned int flags;
108785 };
108786 
108787 struct dirty_throttle_control {
108788 	struct wb_domain *dom;
108789 	struct dirty_throttle_control *gdtc;
108790 	struct bdi_writeback *wb;
108791 	struct fprop_local_percpu *wb_completions;
108792 	long unsigned int avail;
108793 	long unsigned int dirty;
108794 	long unsigned int thresh;
108795 	long unsigned int bg_thresh;
108796 	long unsigned int wb_dirty;
108797 	long unsigned int wb_thresh;
108798 	long unsigned int wb_bg_thresh;
108799 	long unsigned int pos_ratio;
108800 };
108801 
108802 struct shmem_sb_info {
108803 	long unsigned int max_blocks;
108804 	struct percpu_counter used_blocks;
108805 	long unsigned int max_inodes;
108806 	long unsigned int free_inodes;
108807 	raw_spinlock_t stat_lock;
108808 	umode_t mode;
108809 	unsigned char huge;
108810 	kuid_t uid;
108811 	kgid_t gid;
108812 	bool full_inums;
108813 	ino_t next_ino;
108814 	ino_t *ino_batch;
108815 	struct mempolicy *mpol;
108816 	spinlock_t shrinklist_lock;
108817 	struct list_head shrinklist;
108818 	long unsigned int shrinklist_len;
108819 };
108820 
108821 struct shmem_falloc {
108822 	wait_queue_head_t *waitq;
108823 	long unsigned int start;
108824 	long unsigned int next;
108825 	long unsigned int nr_falloced;
108826 	long unsigned int nr_unswapped;
108827 };
108828 
108829 struct shmem_options {
108830 	long long unsigned int blocks;
108831 	long long unsigned int inodes;
108832 	struct mempolicy *mpol;
108833 	kuid_t uid;
108834 	kgid_t gid;
108835 	umode_t mode;
108836 	bool full_inums;
108837 	int huge;
108838 	int seen;
108839 };
108840 
108841 enum shmem_param {
108842 	Opt_gid___3 = 0,
108843 	Opt_huge = 1,
108844 	Opt_mode___4 = 2,
108845 	Opt_mpol = 3,
108846 	Opt_nr_blocks = 4,
108847 	Opt_nr_inodes___2 = 5,
108848 	Opt_size___2 = 6,
108849 	Opt_uid___3 = 7,
108850 	Opt_inode32 = 8,
108851 	Opt_inode64 = 9,
108852 };
108853 
108854 typedef struct {
108855 	u64 val;
108856 } pfn_t;
108857 
108858 typedef int (*pte_fn_t)(pte_t *, long unsigned int, void *);
108859 
108860 struct copy_subpage_arg {
108861 	struct page *dst;
108862 	struct page *src;
108863 	struct vm_area_struct *vma;
108864 };
108865 
108866 enum tlb_flush_reason {
108867 	TLB_FLUSH_ON_TASK_SWITCH = 0,
108868 	TLB_REMOTE_SHOOTDOWN = 1,
108869 	TLB_LOCAL_SHOOTDOWN = 2,
108870 	TLB_LOCAL_MM_SHOOTDOWN = 3,
108871 	TLB_REMOTE_SEND_IPI = 4,
108872 	NR_TLB_FLUSH_REASONS = 5,
108873 };
108874 
108875 struct trace_event_raw_tlb_flush {
108876 	struct trace_entry ent;
108877 	int reason;
108878 	long unsigned int pages;
108879 	char __data[0];
108880 };
108881 
108882 struct trace_event_data_offsets_tlb_flush {};
108883 
108884 typedef void (*btf_trace_tlb_flush)(void *, int, long unsigned int);
108885 
108886 struct trace_event_raw_mm_migrate_pages {
108887 	struct trace_entry ent;
108888 	long unsigned int succeeded;
108889 	long unsigned int failed;
108890 	long unsigned int thp_succeeded;
108891 	long unsigned int thp_failed;
108892 	long unsigned int thp_split;
108893 	enum migrate_mode mode;
108894 	int reason;
108895 	char __data[0];
108896 };
108897 
108898 struct trace_event_raw_mm_migrate_pages_start {
108899 	struct trace_entry ent;
108900 	enum migrate_mode mode;
108901 	int reason;
108902 	char __data[0];
108903 };
108904 
108905 struct trace_event_raw_migration_pte {
108906 	struct trace_entry ent;
108907 	long unsigned int addr;
108908 	long unsigned int pte;
108909 	int order;
108910 	char __data[0];
108911 };
108912 
108913 struct trace_event_data_offsets_mm_migrate_pages {};
108914 
108915 struct trace_event_data_offsets_mm_migrate_pages_start {};
108916 
108917 struct trace_event_data_offsets_migration_pte {};
108918 
108919 typedef void (*btf_trace_mm_migrate_pages)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, enum migrate_mode, int);
108920 
108921 typedef void (*btf_trace_mm_migrate_pages_start)(void *, enum migrate_mode, int);
108922 
108923 typedef void (*btf_trace_set_migration_pte)(void *, long unsigned int, long unsigned int, int);
108924 
108925 typedef void (*btf_trace_remove_migration_pte)(void *, long unsigned int, long unsigned int, int);
108926 
108927 struct folio_referenced_arg {
108928 	int mapcount;
108929 	int referenced;
108930 	long unsigned int vm_flags;
108931 	struct mem_cgroup *memcg;
108932 };
108933 
108934 typedef void (*online_page_callback_t)(struct page *, unsigned int);
108935 
108936 enum {
108937 	ONLINE_POLICY_CONTIG_ZONES = 0,
108938 	ONLINE_POLICY_AUTO_MOVABLE = 1,
108939 };
108940 
108941 struct auto_movable_stats {
108942 	long unsigned int kernel_early_pages;
108943 	long unsigned int movable_pages;
108944 };
108945 
108946 struct auto_movable_group_stats {
108947 	long unsigned int movable_pages;
108948 	long unsigned int req_kernel_early_pages;
108949 };
108950 
108951 union swap_header {
108952 	struct {
108953 		char reserved[16374];
108954 		char magic[10];
108955 	} magic;
108956 	struct {
108957 		char bootbits[1024];
108958 		__u32 version;
108959 		__u32 last_page;
108960 		__u32 nr_badpages;
108961 		unsigned char sws_uuid[16];
108962 		unsigned char sws_volume[16];
108963 		__u32 padding[117];
108964 		__u32 badpages[1];
108965 	} info;
108966 };
108967 
108968 struct swap_extent {
108969 	struct rb_node rb_node;
108970 	long unsigned int start_page;
108971 	long unsigned int nr_pages;
108972 	sector_t start_block;
108973 };
108974 
108975 struct vmemmap_remap_walk {
108976 	void (*remap_pte)(pte_t *, long unsigned int, struct vmemmap_remap_walk *);
108977 	long unsigned int nr_walked;
108978 	struct page *reuse_page;
108979 	long unsigned int reuse_addr;
108980 	struct list_head *vmemmap_pages;
108981 };
108982 
108983 struct ksm_rmap_item;
108984 
108985 struct ksm_mm_slot {
108986 	struct mm_slot slot;
108987 	struct ksm_rmap_item *rmap_list;
108988 };
108989 
108990 struct ksm_stable_node;
108991 
108992 struct ksm_rmap_item {
108993 	struct ksm_rmap_item *rmap_list;
108994 	union {
108995 		struct anon_vma *anon_vma;
108996 		int nid;
108997 	};
108998 	struct mm_struct *mm;
108999 	long unsigned int address;
109000 	unsigned int oldchecksum;
109001 	union {
109002 		struct rb_node node;
109003 		struct {
109004 			struct ksm_stable_node *head;
109005 			struct hlist_node hlist;
109006 		};
109007 	};
109008 };
109009 
109010 struct ksm_scan {
109011 	struct ksm_mm_slot *mm_slot;
109012 	long unsigned int address;
109013 	struct ksm_rmap_item **rmap_list;
109014 	long unsigned int seqnr;
109015 };
109016 
109017 struct ksm_stable_node {
109018 	union {
109019 		struct rb_node node;
109020 		struct {
109021 			struct list_head *head;
109022 			struct {
109023 				struct hlist_node hlist_dup;
109024 				struct list_head list;
109025 			};
109026 		};
109027 	};
109028 	struct hlist_head hlist;
109029 	union {
109030 		long unsigned int kpfn;
109031 		long unsigned int chain_prune_time;
109032 	};
109033 	int rmap_hlist_len;
109034 	int nid;
109035 };
109036 
109037 enum get_ksm_page_flags {
109038 	GET_KSM_PAGE_NOLOCK = 0,
109039 	GET_KSM_PAGE_LOCK = 1,
109040 	GET_KSM_PAGE_TRYLOCK = 2,
109041 };
109042 
109043 struct trace_event_raw_hugepage_set_pmd {
109044 	struct trace_entry ent;
109045 	long unsigned int addr;
109046 	long unsigned int pmd;
109047 	char __data[0];
109048 };
109049 
109050 struct trace_event_raw_hugepage_update {
109051 	struct trace_entry ent;
109052 	long unsigned int addr;
109053 	long unsigned int pte;
109054 	long unsigned int clr;
109055 	long unsigned int set;
109056 	char __data[0];
109057 };
109058 
109059 struct trace_event_raw_migration_pmd {
109060 	struct trace_entry ent;
109061 	long unsigned int addr;
109062 	long unsigned int pmd;
109063 	char __data[0];
109064 };
109065 
109066 struct trace_event_data_offsets_hugepage_set_pmd {};
109067 
109068 struct trace_event_data_offsets_hugepage_update {};
109069 
109070 struct trace_event_data_offsets_migration_pmd {};
109071 
109072 typedef void (*btf_trace_hugepage_set_pmd)(void *, long unsigned int, long unsigned int);
109073 
109074 typedef void (*btf_trace_hugepage_update)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int);
109075 
109076 typedef void (*btf_trace_set_migration_pmd)(void *, long unsigned int, long unsigned int);
109077 
109078 typedef void (*btf_trace_remove_migration_pmd)(void *, long unsigned int, long unsigned int);
109079 
109080 enum {
109081 	RES_USAGE___2 = 0,
109082 	RES_RSVD_USAGE = 1,
109083 	RES_LIMIT___2 = 2,
109084 	RES_RSVD_LIMIT = 3,
109085 	RES_MAX_USAGE___2 = 4,
109086 	RES_RSVD_MAX_USAGE = 5,
109087 	RES_FAILCNT___2 = 6,
109088 	RES_RSVD_FAILCNT = 7,
109089 };
109090 
109091 struct zbud_pool {
109092 	spinlock_t lock;
109093 	union {
109094 		struct list_head buddied;
109095 		struct list_head unbuddied[63];
109096 	};
109097 	struct list_head lru;
109098 	u64 pages_nr;
109099 	struct zpool *zpool;
109100 	const struct zpool_ops *zpool_ops;
109101 };
109102 
109103 struct zbud_header {
109104 	struct list_head buddy;
109105 	struct list_head lru;
109106 	unsigned int first_chunks;
109107 	unsigned int last_chunks;
109108 	bool under_reclaim;
109109 };
109110 
109111 enum buddy___2 {
109112 	FIRST___2 = 0,
109113 	LAST___2 = 1,
109114 };
109115 
109116 struct trace_event_raw_cma_alloc_class {
109117 	struct trace_entry ent;
109118 	u32 __data_loc_name;
109119 	long unsigned int pfn;
109120 	const struct page *page;
109121 	long unsigned int count;
109122 	unsigned int align;
109123 	char __data[0];
109124 };
109125 
109126 struct trace_event_raw_cma_release {
109127 	struct trace_entry ent;
109128 	u32 __data_loc_name;
109129 	long unsigned int pfn;
109130 	const struct page *page;
109131 	long unsigned int count;
109132 	char __data[0];
109133 };
109134 
109135 struct trace_event_raw_cma_alloc_start {
109136 	struct trace_entry ent;
109137 	u32 __data_loc_name;
109138 	long unsigned int count;
109139 	unsigned int align;
109140 	char __data[0];
109141 };
109142 
109143 struct trace_event_data_offsets_cma_alloc_class {
109144 	u32 name;
109145 };
109146 
109147 struct trace_event_data_offsets_cma_release {
109148 	u32 name;
109149 };
109150 
109151 struct trace_event_data_offsets_cma_alloc_start {
109152 	u32 name;
109153 };
109154 
109155 typedef void (*btf_trace_cma_release)(void *, const char *, long unsigned int, const struct page *, long unsigned int);
109156 
109157 typedef void (*btf_trace_cma_alloc_start)(void *, const char *, long unsigned int, unsigned int);
109158 
109159 typedef void (*btf_trace_cma_alloc_finish)(void *, const char *, long unsigned int, const struct page *, long unsigned int, unsigned int);
109160 
109161 typedef void (*btf_trace_cma_alloc_busy_retry)(void *, const char *, long unsigned int, const struct page *, long unsigned int, unsigned int);
109162 
109163 enum hmm_pfn_flags {
109164 	HMM_PFN_VALID = 9223372036854775808ULL,
109165 	HMM_PFN_WRITE = 4611686018427387904ULL,
109166 	HMM_PFN_ERROR = 2305843009213693952ULL,
109167 	HMM_PFN_ORDER_SHIFT = 56ULL,
109168 	HMM_PFN_REQ_FAULT = 9223372036854775808ULL,
109169 	HMM_PFN_REQ_WRITE = 4611686018427387904ULL,
109170 	HMM_PFN_FLAGS = 18374686479671623680ULL,
109171 };
109172 
109173 struct hmm_range {
109174 	struct mmu_interval_notifier *notifier;
109175 	long unsigned int notifier_seq;
109176 	long unsigned int start;
109177 	long unsigned int end;
109178 	long unsigned int *hmm_pfns;
109179 	long unsigned int default_flags;
109180 	long unsigned int pfn_flags_mask;
109181 	void *dev_private_owner;
109182 };
109183 
109184 struct hmm_vma_walk {
109185 	struct hmm_range *range;
109186 	long unsigned int last;
109187 };
109188 
109189 enum {
109190 	HMM_NEED_FAULT = 1,
109191 	HMM_NEED_WRITE_FAULT = 2,
109192 	HMM_NEED_ALL_BITS = 3,
109193 };
109194 
109195 struct user_arg_ptr {
109196 	union {
109197 		const char * const *native;
109198 	} ptr;
109199 };
109200 
109201 struct file_clone_range {
109202 	__s64 src_fd;
109203 	__u64 src_offset;
109204 	__u64 src_length;
109205 	__u64 dest_offset;
109206 };
109207 
109208 struct fsxattr {
109209 	__u32 fsx_xflags;
109210 	__u32 fsx_extsize;
109211 	__u32 fsx_nextents;
109212 	__u32 fsx_projid;
109213 	__u32 fsx_cowextsize;
109214 	unsigned char fsx_pad[8];
109215 };
109216 
109217 struct space_resv {
109218 	__s16 l_type;
109219 	__s16 l_whence;
109220 	__s64 l_start;
109221 	__s64 l_len;
109222 	__s32 l_sysid;
109223 	__u32 l_pid;
109224 	__s32 l_pad[4];
109225 };
109226 
109227 struct fiemap {
109228 	__u64 fm_start;
109229 	__u64 fm_length;
109230 	__u32 fm_flags;
109231 	__u32 fm_mapped_extents;
109232 	__u32 fm_extent_count;
109233 	__u32 fm_reserved;
109234 	struct fiemap_extent fm_extents[0];
109235 };
109236 
109237 struct inodes_stat_t {
109238 	long int nr_inodes;
109239 	long int nr_unused;
109240 	long int dummy[5];
109241 };
109242 
109243 enum file_time_flags {
109244 	S_ATIME = 1,
109245 	S_MTIME = 2,
109246 	S_CTIME = 4,
109247 	S_VERSION = 8,
109248 };
109249 
109250 struct mount_attr {
109251 	__u64 attr_set;
109252 	__u64 attr_clr;
109253 	__u64 propagation;
109254 	__u64 userns_fd;
109255 };
109256 
109257 struct mount_kattr {
109258 	unsigned int attr_set;
109259 	unsigned int attr_clr;
109260 	unsigned int propagation;
109261 	unsigned int lookup_flags;
109262 	bool recurse;
109263 	struct user_namespace *mnt_userns;
109264 	struct mnt_idmap *mnt_idmap;
109265 };
109266 
109267 enum umount_tree_flags {
109268 	UMOUNT_SYNC = 1,
109269 	UMOUNT_PROPAGATE = 2,
109270 	UMOUNT_CONNECTED = 4,
109271 };
109272 
109273 typedef int splice_direct_actor(struct pipe_inode_info *, struct splice_desc *);
109274 
109275 typedef int __kernel_daddr_t;
109276 
109277 struct ustat {
109278 	__kernel_daddr_t f_tfree;
109279 	long unsigned int f_tinode;
109280 	char f_fname[6];
109281 	char f_fpack[6];
109282 };
109283 
109284 struct statfs {
109285 	__kernel_long_t f_type;
109286 	__kernel_long_t f_bsize;
109287 	__kernel_long_t f_blocks;
109288 	__kernel_long_t f_bfree;
109289 	__kernel_long_t f_bavail;
109290 	__kernel_long_t f_files;
109291 	__kernel_long_t f_ffree;
109292 	__kernel_fsid_t f_fsid;
109293 	__kernel_long_t f_namelen;
109294 	__kernel_long_t f_frsize;
109295 	__kernel_long_t f_flags;
109296 	__kernel_long_t f_spare[4];
109297 };
109298 
109299 struct statfs64 {
109300 	__kernel_long_t f_type;
109301 	__kernel_long_t f_bsize;
109302 	__u64 f_blocks;
109303 	__u64 f_bfree;
109304 	__u64 f_bavail;
109305 	__u64 f_files;
109306 	__u64 f_ffree;
109307 	__kernel_fsid_t f_fsid;
109308 	__kernel_long_t f_namelen;
109309 	__kernel_long_t f_frsize;
109310 	__kernel_long_t f_flags;
109311 	__kernel_long_t f_spare[4];
109312 };
109313 
109314 enum fsconfig_command {
109315 	FSCONFIG_SET_FLAG = 0,
109316 	FSCONFIG_SET_STRING = 1,
109317 	FSCONFIG_SET_BINARY = 2,
109318 	FSCONFIG_SET_PATH = 3,
109319 	FSCONFIG_SET_PATH_EMPTY = 4,
109320 	FSCONFIG_SET_FD = 5,
109321 	FSCONFIG_CMD_CREATE = 6,
109322 	FSCONFIG_CMD_RECONFIGURE = 7,
109323 };
109324 
109325 struct mpage_readpage_args {
109326 	struct bio *bio;
109327 	struct folio *folio;
109328 	unsigned int nr_pages;
109329 	bool is_readahead;
109330 	sector_t last_block_in_bio;
109331 	struct buffer_head map_bh;
109332 	long unsigned int first_logical_block;
109333 	get_block_t *get_block;
109334 };
109335 
109336 struct mpage_data {
109337 	struct bio *bio;
109338 	sector_t last_block_in_bio;
109339 	get_block_t *get_block;
109340 };
109341 
109342 struct inotify_event {
109343 	__s32 wd;
109344 	__u32 mask;
109345 	__u32 cookie;
109346 	__u32 len;
109347 	char name[0];
109348 };
109349 
109350 struct signalfd_siginfo {
109351 	__u32 ssi_signo;
109352 	__s32 ssi_errno;
109353 	__s32 ssi_code;
109354 	__u32 ssi_pid;
109355 	__u32 ssi_uid;
109356 	__s32 ssi_fd;
109357 	__u32 ssi_tid;
109358 	__u32 ssi_band;
109359 	__u32 ssi_overrun;
109360 	__u32 ssi_trapno;
109361 	__s32 ssi_status;
109362 	__s32 ssi_int;
109363 	__u64 ssi_ptr;
109364 	__u64 ssi_utime;
109365 	__u64 ssi_stime;
109366 	__u64 ssi_addr;
109367 	__u16 ssi_addr_lsb;
109368 	__u16 __pad2;
109369 	__s32 ssi_syscall;
109370 	__u64 ssi_call_addr;
109371 	__u32 ssi_arch;
109372 	__u8 __pad[28];
109373 };
109374 
109375 struct signalfd_ctx {
109376 	sigset_t sigmask;
109377 };
109378 
109379 struct userfaultfd_ctx {
109380 	wait_queue_head_t fault_pending_wqh;
109381 	wait_queue_head_t fault_wqh;
109382 	wait_queue_head_t fd_wqh;
109383 	wait_queue_head_t event_wqh;
109384 	seqcount_spinlock_t refile_seq;
109385 	refcount_t refcount;
109386 	unsigned int flags;
109387 	unsigned int features;
109388 	bool released;
109389 	atomic_t mmap_changing;
109390 	struct mm_struct *mm;
109391 };
109392 
109393 struct uffd_msg {
109394 	__u8 event;
109395 	__u8 reserved1;
109396 	__u16 reserved2;
109397 	__u32 reserved3;
109398 	union {
109399 		struct {
109400 			__u64 flags;
109401 			__u64 address;
109402 			union {
109403 				__u32 ptid;
109404 			} feat;
109405 		} pagefault;
109406 		struct {
109407 			__u32 ufd;
109408 		} fork;
109409 		struct {
109410 			__u64 from;
109411 			__u64 to;
109412 			__u64 len;
109413 		} remap;
109414 		struct {
109415 			__u64 start;
109416 			__u64 end;
109417 		} remove;
109418 		struct {
109419 			__u64 reserved1;
109420 			__u64 reserved2;
109421 			__u64 reserved3;
109422 		} reserved;
109423 	} arg;
109424 };
109425 
109426 struct uffdio_api {
109427 	__u64 api;
109428 	__u64 features;
109429 	__u64 ioctls;
109430 };
109431 
109432 struct uffdio_range {
109433 	__u64 start;
109434 	__u64 len;
109435 };
109436 
109437 struct uffdio_register {
109438 	struct uffdio_range range;
109439 	__u64 mode;
109440 	__u64 ioctls;
109441 };
109442 
109443 struct uffdio_copy {
109444 	__u64 dst;
109445 	__u64 src;
109446 	__u64 len;
109447 	__u64 mode;
109448 	__s64 copy;
109449 };
109450 
109451 struct uffdio_zeropage {
109452 	struct uffdio_range range;
109453 	__u64 mode;
109454 	__s64 zeropage;
109455 };
109456 
109457 struct uffdio_writeprotect {
109458 	struct uffdio_range range;
109459 	__u64 mode;
109460 };
109461 
109462 struct uffdio_continue {
109463 	struct uffdio_range range;
109464 	__u64 mode;
109465 	__s64 mapped;
109466 };
109467 
109468 struct userfaultfd_fork_ctx {
109469 	struct userfaultfd_ctx *orig;
109470 	struct userfaultfd_ctx *new;
109471 	struct list_head list;
109472 };
109473 
109474 struct userfaultfd_unmap_ctx {
109475 	struct userfaultfd_ctx *ctx;
109476 	long unsigned int start;
109477 	long unsigned int end;
109478 	struct list_head list;
109479 };
109480 
109481 struct userfaultfd_wait_queue {
109482 	struct uffd_msg msg;
109483 	wait_queue_entry_t wq;
109484 	struct userfaultfd_ctx *ctx;
109485 	bool waken;
109486 };
109487 
109488 struct userfaultfd_wake_range {
109489 	long unsigned int start;
109490 	long unsigned int len;
109491 };
109492 
109493 struct fscrypt_keyring {
109494 	spinlock_t lock;
109495 	struct hlist_head key_hashtable[128];
109496 };
109497 
109498 struct fscrypt_provisioning_key_payload {
109499 	__u32 type;
109500 	__u32 __reserved;
109501 	__u8 raw[0];
109502 };
109503 
109504 struct fscrypt_add_key_arg {
109505 	struct fscrypt_key_specifier key_spec;
109506 	__u32 raw_size;
109507 	__u32 key_id;
109508 	__u32 __reserved[8];
109509 	__u8 raw[0];
109510 };
109511 
109512 struct fscrypt_remove_key_arg {
109513 	struct fscrypt_key_specifier key_spec;
109514 	__u32 removal_status_flags;
109515 	__u32 __reserved[5];
109516 };
109517 
109518 struct fscrypt_get_key_status_arg {
109519 	struct fscrypt_key_specifier key_spec;
109520 	__u32 __reserved[6];
109521 	__u32 status;
109522 	__u32 status_flags;
109523 	__u32 user_count;
109524 	__u32 __out_reserved[13];
109525 };
109526 
109527 struct fsverity_read_metadata_arg {
109528 	__u64 metadata_type;
109529 	__u64 offset;
109530 	__u64 length;
109531 	__u64 buf_ptr;
109532 	__u64 __reserved;
109533 };
109534 
109535 enum {
109536 	VERBOSE_STATUS = 1,
109537 };
109538 
109539 enum {
109540 	Enabled = 0,
109541 	Magic = 1,
109542 };
109543 
109544 typedef struct {
109545 	struct list_head list;
109546 	long unsigned int flags;
109547 	int offset;
109548 	int size;
109549 	char *magic;
109550 	char *mask;
109551 	const char *interpreter;
109552 	char *name;
109553 	struct dentry *dentry;
109554 	struct file *interp_file;
109555 } Node;
109556 
109557 struct rpc_timer {
109558 	struct list_head list;
109559 	long unsigned int expires;
109560 	struct delayed_work dwork;
109561 };
109562 
109563 struct rpc_wait_queue {
109564 	spinlock_t lock;
109565 	struct list_head tasks[4];
109566 	unsigned char maxpriority;
109567 	unsigned char priority;
109568 	unsigned char nr;
109569 	short unsigned int qlen;
109570 	struct rpc_timer timer_list;
109571 	const char *name;
109572 };
109573 
109574 struct nfs_seqid_counter {
109575 	ktime_t create_time;
109576 	int owner_id;
109577 	int flags;
109578 	u32 counter;
109579 	spinlock_t lock;
109580 	struct list_head list;
109581 	struct rpc_wait_queue wait;
109582 };
109583 
109584 struct nfs4_stateid_struct {
109585 	union {
109586 		char data[16];
109587 		struct {
109588 			__be32 seqid;
109589 			char other[12];
109590 		};
109591 	};
109592 	enum {
109593 		NFS4_INVALID_STATEID_TYPE = 0,
109594 		NFS4_SPECIAL_STATEID_TYPE = 1,
109595 		NFS4_OPEN_STATEID_TYPE = 2,
109596 		NFS4_LOCK_STATEID_TYPE = 3,
109597 		NFS4_DELEGATION_STATEID_TYPE = 4,
109598 		NFS4_LAYOUT_STATEID_TYPE = 5,
109599 		NFS4_PNFS_DS_STATEID_TYPE = 6,
109600 		NFS4_REVOKED_STATEID_TYPE = 7,
109601 	} type;
109602 };
109603 
109604 typedef struct nfs4_stateid_struct nfs4_stateid;
109605 
109606 struct nfs4_state;
109607 
109608 struct nfs4_lock_state {
109609 	struct list_head ls_locks;
109610 	struct nfs4_state *ls_state;
109611 	long unsigned int ls_flags;
109612 	struct nfs_seqid_counter ls_seqid;
109613 	nfs4_stateid ls_stateid;
109614 	refcount_t ls_count;
109615 	fl_owner_t ls_owner;
109616 };
109617 
109618 struct xdr_netobj {
109619 	unsigned int len;
109620 	u8 *data;
109621 };
109622 
109623 struct xdr_buf {
109624 	struct kvec head[1];
109625 	struct kvec tail[1];
109626 	struct bio_vec *bvec;
109627 	struct page **pages;
109628 	unsigned int page_base;
109629 	unsigned int page_len;
109630 	unsigned int flags;
109631 	unsigned int buflen;
109632 	unsigned int len;
109633 };
109634 
109635 struct rpc_rqst;
109636 
109637 struct xdr_stream {
109638 	__be32 *p;
109639 	struct xdr_buf *buf;
109640 	__be32 *end;
109641 	struct kvec *iov;
109642 	struct kvec scratch;
109643 	struct page **page_ptr;
109644 	unsigned int nwords;
109645 	struct rpc_rqst *rqst;
109646 };
109647 
109648 struct rpc_xprt;
109649 
109650 struct rpc_task;
109651 
109652 struct rpc_cred;
109653 
109654 struct rpc_rqst {
109655 	struct rpc_xprt *rq_xprt;
109656 	struct xdr_buf rq_snd_buf;
109657 	struct xdr_buf rq_rcv_buf;
109658 	struct rpc_task *rq_task;
109659 	struct rpc_cred *rq_cred;
109660 	__be32 rq_xid;
109661 	int rq_cong;
109662 	u32 rq_seqno;
109663 	int rq_enc_pages_num;
109664 	struct page **rq_enc_pages;
109665 	void (*rq_release_snd_buf)(struct rpc_rqst *);
109666 	union {
109667 		struct list_head rq_list;
109668 		struct rb_node rq_recv;
109669 	};
109670 	struct list_head rq_xmit;
109671 	struct list_head rq_xmit2;
109672 	void *rq_buffer;
109673 	size_t rq_callsize;
109674 	void *rq_rbuffer;
109675 	size_t rq_rcvsize;
109676 	size_t rq_xmit_bytes_sent;
109677 	size_t rq_reply_bytes_recvd;
109678 	struct xdr_buf rq_private_buf;
109679 	long unsigned int rq_majortimeo;
109680 	long unsigned int rq_minortimeo;
109681 	long unsigned int rq_timeout;
109682 	ktime_t rq_rtt;
109683 	unsigned int rq_retries;
109684 	unsigned int rq_connect_cookie;
109685 	atomic_t rq_pin;
109686 	u32 rq_bytes_sent;
109687 	ktime_t rq_xtime;
109688 	int rq_ntrans;
109689 	struct list_head rq_bc_list;
109690 	long unsigned int rq_bc_pa_state;
109691 	struct list_head rq_bc_pa_list;
109692 };
109693 
109694 typedef void (*kxdreproc_t)(struct rpc_rqst *, struct xdr_stream *, const void *);
109695 
109696 typedef int (*kxdrdproc_t)(struct rpc_rqst *, struct xdr_stream *, void *);
109697 
109698 struct rpc_procinfo;
109699 
109700 struct rpc_message {
109701 	const struct rpc_procinfo *rpc_proc;
109702 	void *rpc_argp;
109703 	void *rpc_resp;
109704 	const struct cred *rpc_cred;
109705 };
109706 
109707 struct rpc_procinfo {
109708 	u32 p_proc;
109709 	kxdreproc_t p_encode;
109710 	kxdrdproc_t p_decode;
109711 	unsigned int p_arglen;
109712 	unsigned int p_replen;
109713 	unsigned int p_timer;
109714 	u32 p_statidx;
109715 	const char *p_name;
109716 };
109717 
109718 struct rpc_wait {
109719 	struct list_head list;
109720 	struct list_head links;
109721 	struct list_head timer_list;
109722 };
109723 
109724 struct rpc_call_ops;
109725 
109726 struct rpc_clnt;
109727 
109728 struct rpc_task {
109729 	atomic_t tk_count;
109730 	int tk_status;
109731 	struct list_head tk_task;
109732 	void (*tk_callback)(struct rpc_task *);
109733 	void (*tk_action)(struct rpc_task *);
109734 	long unsigned int tk_timeout;
109735 	long unsigned int tk_runstate;
109736 	struct rpc_wait_queue *tk_waitqueue;
109737 	union {
109738 		struct work_struct tk_work;
109739 		struct rpc_wait tk_wait;
109740 	} u;
109741 	struct rpc_message tk_msg;
109742 	void *tk_calldata;
109743 	const struct rpc_call_ops *tk_ops;
109744 	struct rpc_clnt *tk_client;
109745 	struct rpc_xprt *tk_xprt;
109746 	struct rpc_cred *tk_op_cred;
109747 	struct rpc_rqst *tk_rqstp;
109748 	struct workqueue_struct *tk_workqueue;
109749 	ktime_t tk_start;
109750 	pid_t tk_owner;
109751 	int tk_rpc_status;
109752 	short unsigned int tk_flags;
109753 	short unsigned int tk_timeouts;
109754 	short unsigned int tk_pid;
109755 	unsigned char tk_priority: 2;
109756 	unsigned char tk_garb_retry: 2;
109757 	unsigned char tk_cred_retry: 2;
109758 	unsigned char tk_rebind_retry: 2;
109759 };
109760 
109761 struct rpc_call_ops {
109762 	void (*rpc_call_prepare)(struct rpc_task *, void *);
109763 	void (*rpc_call_done)(struct rpc_task *, void *);
109764 	void (*rpc_count_stats)(struct rpc_task *, void *);
109765 	void (*rpc_release)(void *);
109766 };
109767 
109768 struct rpc_iostats;
109769 
109770 struct rpc_pipe_dir_head {
109771 	struct list_head pdh_entries;
109772 	struct dentry *pdh_dentry;
109773 };
109774 
109775 struct rpc_rtt {
109776 	long unsigned int timeo;
109777 	long unsigned int srtt[5];
109778 	long unsigned int sdrtt[5];
109779 	int ntimeouts[5];
109780 };
109781 
109782 struct rpc_timeout {
109783 	long unsigned int to_initval;
109784 	long unsigned int to_maxval;
109785 	long unsigned int to_increment;
109786 	unsigned int to_retries;
109787 	unsigned char to_exponential;
109788 };
109789 
109790 struct rpc_sysfs_client;
109791 
109792 struct rpc_xprt_switch;
109793 
109794 struct rpc_xprt_iter_ops;
109795 
109796 struct rpc_xprt_iter {
109797 	struct rpc_xprt_switch *xpi_xpswitch;
109798 	struct rpc_xprt *xpi_cursor;
109799 	const struct rpc_xprt_iter_ops *xpi_ops;
109800 };
109801 
109802 struct rpc_auth;
109803 
109804 struct rpc_stat;
109805 
109806 struct rpc_program;
109807 
109808 struct rpc_clnt {
109809 	refcount_t cl_count;
109810 	unsigned int cl_clid;
109811 	struct list_head cl_clients;
109812 	struct list_head cl_tasks;
109813 	atomic_t cl_pid;
109814 	spinlock_t cl_lock;
109815 	struct rpc_xprt *cl_xprt;
109816 	const struct rpc_procinfo *cl_procinfo;
109817 	u32 cl_prog;
109818 	u32 cl_vers;
109819 	u32 cl_maxproc;
109820 	struct rpc_auth *cl_auth;
109821 	struct rpc_stat *cl_stats;
109822 	struct rpc_iostats *cl_metrics;
109823 	unsigned int cl_softrtry: 1;
109824 	unsigned int cl_softerr: 1;
109825 	unsigned int cl_discrtry: 1;
109826 	unsigned int cl_noretranstimeo: 1;
109827 	unsigned int cl_autobind: 1;
109828 	unsigned int cl_chatty: 1;
109829 	struct rpc_rtt *cl_rtt;
109830 	const struct rpc_timeout *cl_timeout;
109831 	atomic_t cl_swapper;
109832 	int cl_nodelen;
109833 	char cl_nodename[65];
109834 	struct rpc_pipe_dir_head cl_pipedir_objects;
109835 	struct rpc_clnt *cl_parent;
109836 	struct rpc_rtt cl_rtt_default;
109837 	struct rpc_timeout cl_timeout_default;
109838 	const struct rpc_program *cl_program;
109839 	const char *cl_principal;
109840 	struct dentry *cl_debugfs;
109841 	struct rpc_sysfs_client *cl_sysfs;
109842 	union {
109843 		struct rpc_xprt_iter cl_xpi;
109844 		struct work_struct cl_work;
109845 	};
109846 	const struct cred *cl_cred;
109847 	unsigned int cl_max_connect;
109848 };
109849 
109850 struct svc_xprt;
109851 
109852 struct rpc_sysfs_xprt;
109853 
109854 struct rpc_xprt_ops;
109855 
109856 struct svc_serv;
109857 
109858 struct xprt_class;
109859 
109860 struct rpc_xprt {
109861 	struct kref kref;
109862 	const struct rpc_xprt_ops *ops;
109863 	unsigned int id;
109864 	const struct rpc_timeout *timeout;
109865 	struct __kernel_sockaddr_storage addr;
109866 	size_t addrlen;
109867 	int prot;
109868 	long unsigned int cong;
109869 	long unsigned int cwnd;
109870 	size_t max_payload;
109871 	struct rpc_wait_queue binding;
109872 	struct rpc_wait_queue sending;
109873 	struct rpc_wait_queue pending;
109874 	struct rpc_wait_queue backlog;
109875 	struct list_head free;
109876 	unsigned int max_reqs;
109877 	unsigned int min_reqs;
109878 	unsigned int num_reqs;
109879 	long unsigned int state;
109880 	unsigned char resvport: 1;
109881 	unsigned char reuseport: 1;
109882 	atomic_t swapper;
109883 	unsigned int bind_index;
109884 	struct list_head xprt_switch;
109885 	long unsigned int bind_timeout;
109886 	long unsigned int reestablish_timeout;
109887 	unsigned int connect_cookie;
109888 	struct work_struct task_cleanup;
109889 	struct timer_list timer;
109890 	long unsigned int last_used;
109891 	long unsigned int idle_timeout;
109892 	long unsigned int connect_timeout;
109893 	long unsigned int max_reconnect_timeout;
109894 	atomic_long_t queuelen;
109895 	spinlock_t transport_lock;
109896 	spinlock_t reserve_lock;
109897 	spinlock_t queue_lock;
109898 	u32 xid;
109899 	struct rpc_task *snd_task;
109900 	struct list_head xmit_queue;
109901 	atomic_long_t xmit_queuelen;
109902 	struct svc_xprt *bc_xprt;
109903 	struct svc_serv *bc_serv;
109904 	unsigned int bc_alloc_max;
109905 	unsigned int bc_alloc_count;
109906 	atomic_t bc_slot_count;
109907 	spinlock_t bc_pa_lock;
109908 	struct list_head bc_pa_list;
109909 	struct rb_root recv_queue;
109910 	struct {
109911 		long unsigned int bind_count;
109912 		long unsigned int connect_count;
109913 		long unsigned int connect_start;
109914 		long unsigned int connect_time;
109915 		long unsigned int sends;
109916 		long unsigned int recvs;
109917 		long unsigned int bad_xids;
109918 		long unsigned int max_slots;
109919 		long long unsigned int req_u;
109920 		long long unsigned int bklog_u;
109921 		long long unsigned int sending_u;
109922 		long long unsigned int pending_u;
109923 	} stat;
109924 	struct net *xprt_net;
109925 	netns_tracker ns_tracker;
109926 	const char *servername;
109927 	const char *address_strings[6];
109928 	struct dentry *debugfs;
109929 	struct callback_head rcu;
109930 	const struct xprt_class *xprt_class;
109931 	struct rpc_sysfs_xprt *xprt_sysfs;
109932 	bool main;
109933 };
109934 
109935 struct rpc_credops;
109936 
109937 struct rpc_cred {
109938 	struct hlist_node cr_hash;
109939 	struct list_head cr_lru;
109940 	struct callback_head cr_rcu;
109941 	struct rpc_auth *cr_auth;
109942 	const struct rpc_credops *cr_ops;
109943 	long unsigned int cr_expire;
109944 	long unsigned int cr_flags;
109945 	refcount_t cr_count;
109946 	const struct cred *cr_cred;
109947 };
109948 
109949 typedef u32 rpc_authflavor_t;
109950 
109951 struct auth_cred {
109952 	const struct cred *cred;
109953 	const char *principal;
109954 };
109955 
109956 struct rpc_cred_cache;
109957 
109958 struct rpc_authops;
109959 
109960 struct rpc_auth {
109961 	unsigned int au_cslack;
109962 	unsigned int au_rslack;
109963 	unsigned int au_verfsize;
109964 	unsigned int au_ralign;
109965 	long unsigned int au_flags;
109966 	const struct rpc_authops *au_ops;
109967 	rpc_authflavor_t au_flavor;
109968 	refcount_t au_count;
109969 	struct rpc_cred_cache *au_credcache;
109970 };
109971 
109972 struct rpc_credops {
109973 	const char *cr_name;
109974 	int (*cr_init)(struct rpc_auth *, struct rpc_cred *);
109975 	void (*crdestroy)(struct rpc_cred *);
109976 	int (*crmatch)(struct auth_cred *, struct rpc_cred *, int);
109977 	int (*crmarshal)(struct rpc_task *, struct xdr_stream *);
109978 	int (*crrefresh)(struct rpc_task *);
109979 	int (*crvalidate)(struct rpc_task *, struct xdr_stream *);
109980 	int (*crwrap_req)(struct rpc_task *, struct xdr_stream *);
109981 	int (*crunwrap_resp)(struct rpc_task *, struct xdr_stream *);
109982 	int (*crkey_timeout)(struct rpc_cred *);
109983 	char * (*crstringify_acceptor)(struct rpc_cred *);
109984 	bool (*crneed_reencode)(struct rpc_task *);
109985 };
109986 
109987 struct rpc_auth_create_args;
109988 
109989 struct rpcsec_gss_info;
109990 
109991 struct rpc_authops {
109992 	struct module *owner;
109993 	rpc_authflavor_t au_flavor;
109994 	char *au_name;
109995 	struct rpc_auth * (*create)(const struct rpc_auth_create_args *, struct rpc_clnt *);
109996 	void (*destroy)(struct rpc_auth *);
109997 	int (*hash_cred)(struct auth_cred *, unsigned int);
109998 	struct rpc_cred * (*lookup_cred)(struct rpc_auth *, struct auth_cred *, int);
109999 	struct rpc_cred * (*crcreate)(struct rpc_auth *, struct auth_cred *, int, gfp_t);
110000 	rpc_authflavor_t (*info2flavor)(struct rpcsec_gss_info *);
110001 	int (*flavor2info)(rpc_authflavor_t, struct rpcsec_gss_info *);
110002 	int (*key_timeout)(struct rpc_auth *, struct rpc_cred *);
110003 };
110004 
110005 struct rpc_auth_create_args {
110006 	rpc_authflavor_t pseudoflavor;
110007 	const char *target_name;
110008 };
110009 
110010 struct rpcsec_gss_oid {
110011 	unsigned int len;
110012 	u8 data[32];
110013 };
110014 
110015 struct rpcsec_gss_info {
110016 	struct rpcsec_gss_oid oid;
110017 	u32 qop;
110018 	u32 service;
110019 };
110020 
110021 struct rpc_xprt_ops {
110022 	void (*set_buffer_size)(struct rpc_xprt *, size_t, size_t);
110023 	int (*reserve_xprt)(struct rpc_xprt *, struct rpc_task *);
110024 	void (*release_xprt)(struct rpc_xprt *, struct rpc_task *);
110025 	void (*alloc_slot)(struct rpc_xprt *, struct rpc_task *);
110026 	void (*free_slot)(struct rpc_xprt *, struct rpc_rqst *);
110027 	void (*rpcbind)(struct rpc_task *);
110028 	void (*set_port)(struct rpc_xprt *, short unsigned int);
110029 	void (*connect)(struct rpc_xprt *, struct rpc_task *);
110030 	int (*get_srcaddr)(struct rpc_xprt *, char *, size_t);
110031 	short unsigned int (*get_srcport)(struct rpc_xprt *);
110032 	int (*buf_alloc)(struct rpc_task *);
110033 	void (*buf_free)(struct rpc_task *);
110034 	int (*prepare_request)(struct rpc_rqst *, struct xdr_buf *);
110035 	int (*send_request)(struct rpc_rqst *);
110036 	void (*wait_for_reply_request)(struct rpc_task *);
110037 	void (*timer)(struct rpc_xprt *, struct rpc_task *);
110038 	void (*release_request)(struct rpc_task *);
110039 	void (*close)(struct rpc_xprt *);
110040 	void (*destroy)(struct rpc_xprt *);
110041 	void (*set_connect_timeout)(struct rpc_xprt *, long unsigned int, long unsigned int);
110042 	void (*print_stats)(struct rpc_xprt *, struct seq_file *);
110043 	int (*enable_swap)(struct rpc_xprt *);
110044 	void (*disable_swap)(struct rpc_xprt *);
110045 	void (*inject_disconnect)(struct rpc_xprt *);
110046 	int (*bc_setup)(struct rpc_xprt *, unsigned int);
110047 	size_t (*bc_maxpayload)(struct rpc_xprt *);
110048 	unsigned int (*bc_num_slots)(struct rpc_xprt *);
110049 	void (*bc_free_rqst)(struct rpc_rqst *);
110050 	void (*bc_destroy)(struct rpc_xprt *, unsigned int);
110051 };
110052 
110053 struct svc_program;
110054 
110055 struct svc_stat;
110056 
110057 struct svc_pool;
110058 
110059 struct svc_serv {
110060 	struct svc_program *sv_program;
110061 	struct svc_stat *sv_stats;
110062 	spinlock_t sv_lock;
110063 	struct kref sv_refcnt;
110064 	unsigned int sv_nrthreads;
110065 	unsigned int sv_maxconn;
110066 	unsigned int sv_max_payload;
110067 	unsigned int sv_max_mesg;
110068 	unsigned int sv_xdrsize;
110069 	struct list_head sv_permsocks;
110070 	struct list_head sv_tempsocks;
110071 	int sv_tmpcnt;
110072 	struct timer_list sv_temptimer;
110073 	char *sv_name;
110074 	unsigned int sv_nrpools;
110075 	struct svc_pool *sv_pools;
110076 	int (*sv_threadfn)(void *);
110077 	struct list_head sv_cb_list;
110078 	spinlock_t sv_cb_lock;
110079 	wait_queue_head_t sv_cb_waitq;
110080 	bool sv_bc_enabled;
110081 };
110082 
110083 struct xprt_create;
110084 
110085 struct xprt_class {
110086 	struct list_head list;
110087 	int ident;
110088 	struct rpc_xprt * (*setup)(struct xprt_create *);
110089 	struct module *owner;
110090 	char name[32];
110091 	const char *netid[0];
110092 };
110093 
110094 struct xprt_create {
110095 	int ident;
110096 	struct net *net;
110097 	struct sockaddr *srcaddr;
110098 	struct sockaddr *dstaddr;
110099 	size_t addrlen;
110100 	const char *servername;
110101 	struct svc_xprt *bc_xprt;
110102 	struct rpc_xprt_switch *bc_xps;
110103 	unsigned int flags;
110104 };
110105 
110106 struct rpc_sysfs_xprt_switch;
110107 
110108 struct rpc_xprt_switch {
110109 	spinlock_t xps_lock;
110110 	struct kref xps_kref;
110111 	unsigned int xps_id;
110112 	unsigned int xps_nxprts;
110113 	unsigned int xps_nactive;
110114 	unsigned int xps_nunique_destaddr_xprts;
110115 	atomic_long_t xps_queuelen;
110116 	struct list_head xps_xprt_list;
110117 	struct net *xps_net;
110118 	const struct rpc_xprt_iter_ops *xps_iter_ops;
110119 	struct rpc_sysfs_xprt_switch *xps_sysfs;
110120 	struct callback_head xps_rcu;
110121 };
110122 
110123 struct rpc_stat {
110124 	const struct rpc_program *program;
110125 	unsigned int netcnt;
110126 	unsigned int netudpcnt;
110127 	unsigned int nettcpcnt;
110128 	unsigned int nettcpconn;
110129 	unsigned int netreconn;
110130 	unsigned int rpccnt;
110131 	unsigned int rpcretrans;
110132 	unsigned int rpcauthrefresh;
110133 	unsigned int rpcgarbage;
110134 };
110135 
110136 struct rpc_version;
110137 
110138 struct rpc_program {
110139 	const char *name;
110140 	u32 number;
110141 	unsigned int nrvers;
110142 	const struct rpc_version **version;
110143 	struct rpc_stat *stats;
110144 	const char *pipe_dir_name;
110145 };
110146 
110147 struct svc_stat {
110148 	struct svc_program *program;
110149 	unsigned int netcnt;
110150 	unsigned int netudpcnt;
110151 	unsigned int nettcpcnt;
110152 	unsigned int nettcpconn;
110153 	unsigned int rpccnt;
110154 	unsigned int rpcbadfmt;
110155 	unsigned int rpcbadauth;
110156 	unsigned int rpcbadclnt;
110157 };
110158 
110159 struct svc_version;
110160 
110161 struct svc_rqst;
110162 
110163 struct svc_process_info;
110164 
110165 struct svc_program {
110166 	struct svc_program *pg_next;
110167 	u32 pg_prog;
110168 	unsigned int pg_lovers;
110169 	unsigned int pg_hivers;
110170 	unsigned int pg_nvers;
110171 	const struct svc_version **pg_vers;
110172 	char *pg_name;
110173 	char *pg_class;
110174 	struct svc_stat *pg_stats;
110175 	int (*pg_authenticate)(struct svc_rqst *);
110176 	__be32 (*pg_init_request)(struct svc_rqst *, const struct svc_program *, struct svc_process_info *);
110177 	int (*pg_rpcbind_set)(struct net *, const struct svc_program *, u32, int, short unsigned int, short unsigned int);
110178 };
110179 
110180 struct rpc_xprt_iter_ops {
110181 	void (*xpi_rewind)(struct rpc_xprt_iter *);
110182 	struct rpc_xprt * (*xpi_xprt)(struct rpc_xprt_iter *);
110183 	struct rpc_xprt * (*xpi_next)(struct rpc_xprt_iter *);
110184 };
110185 
110186 struct rpc_version {
110187 	u32 number;
110188 	unsigned int nrprocs;
110189 	const struct rpc_procinfo *procs;
110190 	unsigned int *counts;
110191 };
110192 
110193 struct nfs_fh {
110194 	short unsigned int size;
110195 	unsigned char data[128];
110196 };
110197 
110198 enum nfs3_stable_how {
110199 	NFS_UNSTABLE = 0,
110200 	NFS_DATA_SYNC = 1,
110201 	NFS_FILE_SYNC = 2,
110202 	NFS_INVALID_STABLE_HOW = -1,
110203 };
110204 
110205 struct nfs4_label {
110206 	uint32_t lfs;
110207 	uint32_t pi;
110208 	u32 len;
110209 	char *label;
110210 };
110211 
110212 typedef struct {
110213 	char data[8];
110214 } nfs4_verifier;
110215 
110216 enum nfs4_change_attr_type {
110217 	NFS4_CHANGE_TYPE_IS_MONOTONIC_INCR = 0,
110218 	NFS4_CHANGE_TYPE_IS_VERSION_COUNTER = 1,
110219 	NFS4_CHANGE_TYPE_IS_VERSION_COUNTER_NOPNFS = 2,
110220 	NFS4_CHANGE_TYPE_IS_TIME_METADATA = 3,
110221 	NFS4_CHANGE_TYPE_IS_UNDEFINED = 4,
110222 };
110223 
110224 struct gss_api_mech;
110225 
110226 struct gss_ctx {
110227 	struct gss_api_mech *mech_type;
110228 	void *internal_ctx_id;
110229 	unsigned int slack;
110230 	unsigned int align;
110231 };
110232 
110233 struct gss_api_ops;
110234 
110235 struct pf_desc;
110236 
110237 struct gss_api_mech {
110238 	struct list_head gm_list;
110239 	struct module *gm_owner;
110240 	struct rpcsec_gss_oid gm_oid;
110241 	char *gm_name;
110242 	const struct gss_api_ops *gm_ops;
110243 	int gm_pf_num;
110244 	struct pf_desc *gm_pfs;
110245 	const char *gm_upcall_enctypes;
110246 };
110247 
110248 struct auth_domain;
110249 
110250 struct pf_desc {
110251 	u32 pseudoflavor;
110252 	u32 qop;
110253 	u32 service;
110254 	char *name;
110255 	char *auth_domain_name;
110256 	struct auth_domain *domain;
110257 	bool datatouch;
110258 };
110259 
110260 struct auth_ops;
110261 
110262 struct auth_domain {
110263 	struct kref ref;
110264 	struct hlist_node hash;
110265 	char *name;
110266 	struct auth_ops *flavour;
110267 	struct callback_head callback_head;
110268 };
110269 
110270 struct gss_api_ops {
110271 	int (*gss_import_sec_context)(const void *, size_t, struct gss_ctx *, time64_t *, gfp_t);
110272 	u32 (*gss_get_mic)(struct gss_ctx *, struct xdr_buf *, struct xdr_netobj *);
110273 	u32 (*gss_verify_mic)(struct gss_ctx *, struct xdr_buf *, struct xdr_netobj *);
110274 	u32 (*gss_wrap)(struct gss_ctx *, int, struct xdr_buf *, struct page **);
110275 	u32 (*gss_unwrap)(struct gss_ctx *, int, int, struct xdr_buf *);
110276 	void (*gss_delete_sec_context)(void *);
110277 };
110278 
110279 struct nfs4_string {
110280 	unsigned int len;
110281 	char *data;
110282 };
110283 
110284 struct nfs_fsid {
110285 	uint64_t major;
110286 	uint64_t minor;
110287 };
110288 
110289 struct nfs4_threshold {
110290 	__u32 bm;
110291 	__u32 l_type;
110292 	__u64 rd_sz;
110293 	__u64 wr_sz;
110294 	__u64 rd_io_sz;
110295 	__u64 wr_io_sz;
110296 };
110297 
110298 struct nfs_fattr {
110299 	unsigned int valid;
110300 	umode_t mode;
110301 	__u32 nlink;
110302 	kuid_t uid;
110303 	kgid_t gid;
110304 	dev_t rdev;
110305 	__u64 size;
110306 	union {
110307 		struct {
110308 			__u32 blocksize;
110309 			__u32 blocks;
110310 		} nfs2;
110311 		struct {
110312 			__u64 used;
110313 		} nfs3;
110314 	} du;
110315 	struct nfs_fsid fsid;
110316 	__u64 fileid;
110317 	__u64 mounted_on_fileid;
110318 	struct timespec64 atime;
110319 	struct timespec64 mtime;
110320 	struct timespec64 ctime;
110321 	__u64 change_attr;
110322 	__u64 pre_change_attr;
110323 	__u64 pre_size;
110324 	struct timespec64 pre_mtime;
110325 	struct timespec64 pre_ctime;
110326 	long unsigned int time_start;
110327 	long unsigned int gencount;
110328 	struct nfs4_string *owner_name;
110329 	struct nfs4_string *group_name;
110330 	struct nfs4_threshold *mdsthreshold;
110331 	struct nfs4_label *label;
110332 };
110333 
110334 struct nfs_fsinfo {
110335 	struct nfs_fattr *fattr;
110336 	__u32 rtmax;
110337 	__u32 rtpref;
110338 	__u32 rtmult;
110339 	__u32 wtmax;
110340 	__u32 wtpref;
110341 	__u32 wtmult;
110342 	__u32 dtpref;
110343 	__u64 maxfilesize;
110344 	struct timespec64 time_delta;
110345 	__u32 lease_time;
110346 	__u32 nlayouttypes;
110347 	__u32 layouttype[8];
110348 	__u32 blksize;
110349 	__u32 clone_blksize;
110350 	enum nfs4_change_attr_type change_attr_type;
110351 	__u32 xattr_support;
110352 };
110353 
110354 struct nfs_fsstat {
110355 	struct nfs_fattr *fattr;
110356 	__u64 tbytes;
110357 	__u64 fbytes;
110358 	__u64 abytes;
110359 	__u64 tfiles;
110360 	__u64 ffiles;
110361 	__u64 afiles;
110362 };
110363 
110364 struct nfs_pathconf {
110365 	struct nfs_fattr *fattr;
110366 	__u32 max_link;
110367 	__u32 max_namelen;
110368 };
110369 
110370 struct nfs4_change_info {
110371 	u32 atomic;
110372 	u64 before;
110373 	u64 after;
110374 };
110375 
110376 struct nfs4_slot;
110377 
110378 struct nfs4_sequence_args {
110379 	struct nfs4_slot *sa_slot;
110380 	u8 sa_cache_this: 1;
110381 	u8 sa_privileged: 1;
110382 };
110383 
110384 struct nfs4_sequence_res {
110385 	struct nfs4_slot *sr_slot;
110386 	long unsigned int sr_timestamp;
110387 	int sr_status;
110388 	u32 sr_status_flags;
110389 	u32 sr_highest_slotid;
110390 	u32 sr_target_highest_slotid;
110391 };
110392 
110393 struct nfs_open_context;
110394 
110395 struct nfs_lock_context {
110396 	refcount_t count;
110397 	struct list_head list;
110398 	struct nfs_open_context *open_context;
110399 	fl_owner_t lockowner;
110400 	atomic_t io_count;
110401 	struct callback_head callback_head;
110402 };
110403 
110404 struct nfs_open_context {
110405 	struct nfs_lock_context lock_context;
110406 	fl_owner_t flock_owner;
110407 	struct dentry *dentry;
110408 	const struct cred *cred;
110409 	struct rpc_cred *ll_cred;
110410 	struct nfs4_state *state;
110411 	fmode_t mode;
110412 	long unsigned int flags;
110413 	int error;
110414 	struct list_head list;
110415 	struct nfs4_threshold *mdsthreshold;
110416 	struct callback_head callback_head;
110417 };
110418 
110419 struct nlm_host;
110420 
110421 struct nfs_iostats;
110422 
110423 struct nfs_auth_info {
110424 	unsigned int flavor_len;
110425 	rpc_authflavor_t flavors[12];
110426 };
110427 
110428 struct fscache_volume;
110429 
110430 struct pnfs_layoutdriver_type;
110431 
110432 struct nfs_client;
110433 
110434 struct nfs_server {
110435 	struct nfs_client *nfs_client;
110436 	struct list_head client_link;
110437 	struct list_head master_link;
110438 	struct rpc_clnt *client;
110439 	struct rpc_clnt *client_acl;
110440 	struct nlm_host *nlm_host;
110441 	struct nfs_iostats *io_stats;
110442 	atomic_long_t writeback;
110443 	unsigned int write_congested;
110444 	unsigned int flags;
110445 	unsigned int fattr_valid;
110446 	unsigned int caps;
110447 	unsigned int rsize;
110448 	unsigned int rpages;
110449 	unsigned int wsize;
110450 	unsigned int wpages;
110451 	unsigned int wtmult;
110452 	unsigned int dtsize;
110453 	short unsigned int port;
110454 	unsigned int bsize;
110455 	unsigned int gxasize;
110456 	unsigned int sxasize;
110457 	unsigned int lxasize;
110458 	unsigned int acregmin;
110459 	unsigned int acregmax;
110460 	unsigned int acdirmin;
110461 	unsigned int acdirmax;
110462 	unsigned int namelen;
110463 	unsigned int options;
110464 	unsigned int clone_blksize;
110465 	enum nfs4_change_attr_type change_attr_type;
110466 	struct nfs_fsid fsid;
110467 	__u64 maxfilesize;
110468 	struct timespec64 time_delta;
110469 	long unsigned int mount_time;
110470 	struct super_block *super;
110471 	dev_t s_dev;
110472 	struct nfs_auth_info auth_info;
110473 	struct fscache_volume *fscache;
110474 	char *fscache_uniq;
110475 	u32 pnfs_blksize;
110476 	u32 attr_bitmask[3];
110477 	u32 attr_bitmask_nl[3];
110478 	u32 exclcreat_bitmask[3];
110479 	u32 cache_consistency_bitmask[3];
110480 	u32 acl_bitmask;
110481 	u32 fh_expire_type;
110482 	struct pnfs_layoutdriver_type *pnfs_curr_ld;
110483 	struct rpc_wait_queue roc_rpcwaitq;
110484 	void *pnfs_ld_data;
110485 	struct rb_root state_owners;
110486 	struct ida openowner_id;
110487 	struct ida lockowner_id;
110488 	struct list_head state_owners_lru;
110489 	struct list_head layouts;
110490 	struct list_head delegations;
110491 	struct list_head ss_copies;
110492 	long unsigned int mig_gen;
110493 	long unsigned int mig_status;
110494 	void (*destroy)(struct nfs_server *);
110495 	atomic_t active;
110496 	struct __kernel_sockaddr_storage mountd_address;
110497 	size_t mountd_addrlen;
110498 	u32 mountd_version;
110499 	short unsigned int mountd_port;
110500 	short unsigned int mountd_protocol;
110501 	struct rpc_wait_queue uoc_rpcwaitq;
110502 	unsigned int read_hdrsize;
110503 	const struct cred *cred;
110504 	bool has_sec_mnt_opts;
110505 };
110506 
110507 struct nfs_subversion;
110508 
110509 struct idmap;
110510 
110511 struct nfs4_slot_table;
110512 
110513 struct nfs4_session;
110514 
110515 struct nfs_rpc_ops;
110516 
110517 struct nfs4_minor_version_ops;
110518 
110519 struct nfs41_server_owner;
110520 
110521 struct nfs41_server_scope;
110522 
110523 struct nfs41_impl_id;
110524 
110525 struct nfs_client {
110526 	refcount_t cl_count;
110527 	atomic_t cl_mds_count;
110528 	int cl_cons_state;
110529 	long unsigned int cl_res_state;
110530 	long unsigned int cl_flags;
110531 	struct __kernel_sockaddr_storage cl_addr;
110532 	size_t cl_addrlen;
110533 	char *cl_hostname;
110534 	char *cl_acceptor;
110535 	struct list_head cl_share_link;
110536 	struct list_head cl_superblocks;
110537 	struct rpc_clnt *cl_rpcclient;
110538 	const struct nfs_rpc_ops *rpc_ops;
110539 	int cl_proto;
110540 	struct nfs_subversion *cl_nfs_mod;
110541 	u32 cl_minorversion;
110542 	unsigned int cl_nconnect;
110543 	unsigned int cl_max_connect;
110544 	const char *cl_principal;
110545 	struct list_head cl_ds_clients;
110546 	u64 cl_clientid;
110547 	nfs4_verifier cl_confirm;
110548 	long unsigned int cl_state;
110549 	spinlock_t cl_lock;
110550 	long unsigned int cl_lease_time;
110551 	long unsigned int cl_last_renewal;
110552 	struct delayed_work cl_renewd;
110553 	struct rpc_wait_queue cl_rpcwaitq;
110554 	struct idmap *cl_idmap;
110555 	const char *cl_owner_id;
110556 	u32 cl_cb_ident;
110557 	const struct nfs4_minor_version_ops *cl_mvops;
110558 	long unsigned int cl_mig_gen;
110559 	struct nfs4_slot_table *cl_slot_tbl;
110560 	u32 cl_seqid;
110561 	u32 cl_exchange_flags;
110562 	struct nfs4_session *cl_session;
110563 	bool cl_preserve_clid;
110564 	struct nfs41_server_owner *cl_serverowner;
110565 	struct nfs41_server_scope *cl_serverscope;
110566 	struct nfs41_impl_id *cl_implid;
110567 	long unsigned int cl_sp4_flags;
110568 	wait_queue_head_t cl_lock_waitq;
110569 	char cl_ipaddr[48];
110570 	struct net *cl_net;
110571 	struct list_head pending_cb_stateids;
110572 };
110573 
110574 struct pnfs_layout_segment;
110575 
110576 struct nfs_seqid {
110577 	struct nfs_seqid_counter *sequence;
110578 	struct list_head list;
110579 	struct rpc_task *task;
110580 };
110581 
110582 struct nfs_write_verifier {
110583 	char data[8];
110584 };
110585 
110586 struct nfs_writeverf {
110587 	struct nfs_write_verifier verifier;
110588 	enum nfs3_stable_how committed;
110589 };
110590 
110591 struct nfs_pgio_args {
110592 	struct nfs4_sequence_args seq_args;
110593 	struct nfs_fh *fh;
110594 	struct nfs_open_context *context;
110595 	struct nfs_lock_context *lock_context;
110596 	nfs4_stateid stateid;
110597 	__u64 offset;
110598 	__u32 count;
110599 	unsigned int pgbase;
110600 	struct page **pages;
110601 	union {
110602 		unsigned int replen;
110603 		struct {
110604 			const u32 *bitmask;
110605 			u32 bitmask_store[3];
110606 			enum nfs3_stable_how stable;
110607 		};
110608 	};
110609 };
110610 
110611 struct nfs_pgio_res {
110612 	struct nfs4_sequence_res seq_res;
110613 	struct nfs_fattr *fattr;
110614 	__u64 count;
110615 	__u32 op_status;
110616 	union {
110617 		struct {
110618 			unsigned int replen;
110619 			int eof;
110620 		};
110621 		struct {
110622 			struct nfs_writeverf *verf;
110623 			const struct nfs_server *server;
110624 		};
110625 	};
110626 };
110627 
110628 struct nfs_commitargs {
110629 	struct nfs4_sequence_args seq_args;
110630 	struct nfs_fh *fh;
110631 	__u64 offset;
110632 	__u32 count;
110633 	const u32 *bitmask;
110634 };
110635 
110636 struct nfs_commitres {
110637 	struct nfs4_sequence_res seq_res;
110638 	__u32 op_status;
110639 	struct nfs_fattr *fattr;
110640 	struct nfs_writeverf *verf;
110641 	const struct nfs_server *server;
110642 };
110643 
110644 struct nfs_removeargs {
110645 	struct nfs4_sequence_args seq_args;
110646 	const struct nfs_fh *fh;
110647 	struct qstr name;
110648 };
110649 
110650 struct nfs_removeres {
110651 	struct nfs4_sequence_res seq_res;
110652 	struct nfs_server *server;
110653 	struct nfs_fattr *dir_attr;
110654 	struct nfs4_change_info cinfo;
110655 };
110656 
110657 struct nfs_renameargs {
110658 	struct nfs4_sequence_args seq_args;
110659 	const struct nfs_fh *old_dir;
110660 	const struct nfs_fh *new_dir;
110661 	const struct qstr *old_name;
110662 	const struct qstr *new_name;
110663 };
110664 
110665 struct nfs_renameres {
110666 	struct nfs4_sequence_res seq_res;
110667 	struct nfs_server *server;
110668 	struct nfs4_change_info old_cinfo;
110669 	struct nfs_fattr *old_fattr;
110670 	struct nfs4_change_info new_cinfo;
110671 	struct nfs_fattr *new_fattr;
110672 };
110673 
110674 struct nfs_entry {
110675 	__u64 ino;
110676 	__u64 cookie;
110677 	const char *name;
110678 	unsigned int len;
110679 	int eof;
110680 	struct nfs_fh *fh;
110681 	struct nfs_fattr *fattr;
110682 	unsigned char d_type;
110683 	struct nfs_server *server;
110684 };
110685 
110686 struct nfs_readdir_arg {
110687 	struct dentry *dentry;
110688 	const struct cred *cred;
110689 	__be32 *verf;
110690 	u64 cookie;
110691 	struct page **pages;
110692 	unsigned int page_len;
110693 	bool plus;
110694 };
110695 
110696 struct nfs_readdir_res {
110697 	__be32 *verf;
110698 };
110699 
110700 struct nfs4_pathname {
110701 	unsigned int ncomponents;
110702 	struct nfs4_string components[512];
110703 };
110704 
110705 struct nfs4_fs_location {
110706 	unsigned int nservers;
110707 	struct nfs4_string servers[10];
110708 	struct nfs4_pathname rootpath;
110709 };
110710 
110711 struct nfs4_fs_locations {
110712 	struct nfs_fattr *fattr;
110713 	const struct nfs_server *server;
110714 	struct nfs4_pathname fs_path;
110715 	int nlocations;
110716 	struct nfs4_fs_location locations[10];
110717 };
110718 
110719 struct nfstime4 {
110720 	u64 seconds;
110721 	u32 nseconds;
110722 };
110723 
110724 struct pnfs_commit_ops;
110725 
110726 struct pnfs_ds_commit_info {
110727 	struct list_head commits;
110728 	unsigned int nwritten;
110729 	unsigned int ncommitting;
110730 	const struct pnfs_commit_ops *ops;
110731 };
110732 
110733 struct nfs41_server_owner {
110734 	uint64_t minor_id;
110735 	uint32_t major_id_sz;
110736 	char major_id[1024];
110737 };
110738 
110739 struct nfs41_server_scope {
110740 	uint32_t server_scope_sz;
110741 	char server_scope[1024];
110742 };
110743 
110744 struct nfs41_impl_id {
110745 	char domain[1025];
110746 	char name[1025];
110747 	struct nfstime4 date;
110748 };
110749 
110750 struct nfs_page_array {
110751 	struct page **pagevec;
110752 	unsigned int npages;
110753 	struct page *page_array[8];
110754 };
110755 
110756 struct nfs_page;
110757 
110758 struct nfs_rw_ops;
110759 
110760 struct nfs_io_completion;
110761 
110762 struct nfs_direct_req;
110763 
110764 struct nfs_pgio_completion_ops;
110765 
110766 struct nfs_pgio_header {
110767 	struct inode *inode;
110768 	const struct cred *cred;
110769 	struct list_head pages;
110770 	struct nfs_page *req;
110771 	struct nfs_writeverf verf;
110772 	fmode_t rw_mode;
110773 	struct pnfs_layout_segment *lseg;
110774 	loff_t io_start;
110775 	const struct rpc_call_ops *mds_ops;
110776 	void (*release)(struct nfs_pgio_header *);
110777 	const struct nfs_pgio_completion_ops *completion_ops;
110778 	const struct nfs_rw_ops *rw_ops;
110779 	struct nfs_io_completion *io_completion;
110780 	struct nfs_direct_req *dreq;
110781 	int pnfs_error;
110782 	int error;
110783 	unsigned int good_bytes;
110784 	long unsigned int flags;
110785 	struct rpc_task task;
110786 	struct nfs_fattr fattr;
110787 	struct nfs_pgio_args args;
110788 	struct nfs_pgio_res res;
110789 	long unsigned int timestamp;
110790 	int (*pgio_done_cb)(struct rpc_task *, struct nfs_pgio_header *);
110791 	__u64 mds_offset;
110792 	struct nfs_page_array page_array;
110793 	struct nfs_client *ds_clp;
110794 	u32 ds_commit_idx;
110795 	u32 pgio_mirror_idx;
110796 };
110797 
110798 struct nfs_pgio_completion_ops {
110799 	void (*error_cleanup)(struct list_head *, int);
110800 	void (*init_hdr)(struct nfs_pgio_header *);
110801 	void (*completion)(struct nfs_pgio_header *);
110802 	void (*reschedule_io)(struct nfs_pgio_header *);
110803 };
110804 
110805 struct nfs_mds_commit_info {
110806 	atomic_t rpcs_out;
110807 	atomic_long_t ncommit;
110808 	struct list_head list;
110809 };
110810 
110811 struct nfs_commit_data;
110812 
110813 struct nfs_commit_info;
110814 
110815 struct nfs_commit_completion_ops {
110816 	void (*completion)(struct nfs_commit_data *);
110817 	void (*resched_write)(struct nfs_commit_info *, struct nfs_page *);
110818 };
110819 
110820 struct nfs_commit_data {
110821 	struct rpc_task task;
110822 	struct inode *inode;
110823 	const struct cred *cred;
110824 	struct nfs_fattr fattr;
110825 	struct nfs_writeverf verf;
110826 	struct list_head pages;
110827 	struct list_head list;
110828 	struct nfs_direct_req *dreq;
110829 	struct nfs_commitargs args;
110830 	struct nfs_commitres res;
110831 	struct nfs_open_context *context;
110832 	struct pnfs_layout_segment *lseg;
110833 	struct nfs_client *ds_clp;
110834 	int ds_commit_index;
110835 	loff_t lwb;
110836 	const struct rpc_call_ops *mds_ops;
110837 	const struct nfs_commit_completion_ops *completion_ops;
110838 	int (*commit_done_cb)(struct rpc_task *, struct nfs_commit_data *);
110839 	long unsigned int flags;
110840 };
110841 
110842 struct nfs_commit_info {
110843 	struct inode *inode;
110844 	struct nfs_mds_commit_info *mds;
110845 	struct pnfs_ds_commit_info *ds;
110846 	struct nfs_direct_req *dreq;
110847 	const struct nfs_commit_completion_ops *completion_ops;
110848 };
110849 
110850 struct nfs_unlinkdata {
110851 	struct nfs_removeargs args;
110852 	struct nfs_removeres res;
110853 	struct dentry *dentry;
110854 	wait_queue_head_t wq;
110855 	const struct cred *cred;
110856 	struct nfs_fattr dir_attr;
110857 	long int timeout;
110858 };
110859 
110860 struct nfs_renamedata {
110861 	struct nfs_renameargs args;
110862 	struct nfs_renameres res;
110863 	struct rpc_task task;
110864 	const struct cred *cred;
110865 	struct inode *old_dir;
110866 	struct dentry *old_dentry;
110867 	struct nfs_fattr old_fattr;
110868 	struct inode *new_dir;
110869 	struct dentry *new_dentry;
110870 	struct nfs_fattr new_fattr;
110871 	void (*complete)(struct rpc_task *, struct nfs_renamedata *);
110872 	long int timeout;
110873 	bool cancelled;
110874 };
110875 
110876 struct nlmclnt_operations;
110877 
110878 struct nfs_client_initdata;
110879 
110880 struct nfs_access_entry;
110881 
110882 struct nfs_rpc_ops {
110883 	u32 version;
110884 	const struct dentry_operations *dentry_ops;
110885 	const struct inode_operations *dir_inode_ops;
110886 	const struct inode_operations *file_inode_ops;
110887 	const struct file_operations *file_ops;
110888 	const struct nlmclnt_operations *nlmclnt_ops;
110889 	int (*getroot)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *);
110890 	int (*submount)(struct fs_context *, struct nfs_server *);
110891 	int (*try_get_tree)(struct fs_context *);
110892 	int (*getattr)(struct nfs_server *, struct nfs_fh *, struct nfs_fattr *, struct inode *);
110893 	int (*setattr)(struct dentry *, struct nfs_fattr *, struct iattr *);
110894 	int (*lookup)(struct inode *, struct dentry *, struct nfs_fh *, struct nfs_fattr *);
110895 	int (*lookupp)(struct inode *, struct nfs_fh *, struct nfs_fattr *);
110896 	int (*access)(struct inode *, struct nfs_access_entry *, const struct cred *);
110897 	int (*readlink)(struct inode *, struct page *, unsigned int, unsigned int);
110898 	int (*create)(struct inode *, struct dentry *, struct iattr *, int);
110899 	int (*remove)(struct inode *, struct dentry *);
110900 	void (*unlink_setup)(struct rpc_message *, struct dentry *, struct inode *);
110901 	void (*unlink_rpc_prepare)(struct rpc_task *, struct nfs_unlinkdata *);
110902 	int (*unlink_done)(struct rpc_task *, struct inode *);
110903 	void (*rename_setup)(struct rpc_message *, struct dentry *, struct dentry *);
110904 	void (*rename_rpc_prepare)(struct rpc_task *, struct nfs_renamedata *);
110905 	int (*rename_done)(struct rpc_task *, struct inode *, struct inode *);
110906 	int (*link)(struct inode *, struct inode *, const struct qstr *);
110907 	int (*symlink)(struct inode *, struct dentry *, struct page *, unsigned int, struct iattr *);
110908 	int (*mkdir)(struct inode *, struct dentry *, struct iattr *);
110909 	int (*rmdir)(struct inode *, const struct qstr *);
110910 	int (*readdir)(struct nfs_readdir_arg *, struct nfs_readdir_res *);
110911 	int (*mknod)(struct inode *, struct dentry *, struct iattr *, dev_t);
110912 	int (*statfs)(struct nfs_server *, struct nfs_fh *, struct nfs_fsstat *);
110913 	int (*fsinfo)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *);
110914 	int (*pathconf)(struct nfs_server *, struct nfs_fh *, struct nfs_pathconf *);
110915 	int (*set_capabilities)(struct nfs_server *, struct nfs_fh *);
110916 	int (*decode_dirent)(struct xdr_stream *, struct nfs_entry *, bool);
110917 	int (*pgio_rpc_prepare)(struct rpc_task *, struct nfs_pgio_header *);
110918 	void (*read_setup)(struct nfs_pgio_header *, struct rpc_message *);
110919 	int (*read_done)(struct rpc_task *, struct nfs_pgio_header *);
110920 	void (*write_setup)(struct nfs_pgio_header *, struct rpc_message *, struct rpc_clnt **);
110921 	int (*write_done)(struct rpc_task *, struct nfs_pgio_header *);
110922 	void (*commit_setup)(struct nfs_commit_data *, struct rpc_message *, struct rpc_clnt **);
110923 	void (*commit_rpc_prepare)(struct rpc_task *, struct nfs_commit_data *);
110924 	int (*commit_done)(struct rpc_task *, struct nfs_commit_data *);
110925 	int (*lock)(struct file *, int, struct file_lock *);
110926 	int (*lock_check_bounds)(const struct file_lock *);
110927 	void (*clear_acl_cache)(struct inode *);
110928 	void (*close_context)(struct nfs_open_context *, int);
110929 	struct inode * (*open_context)(struct inode *, struct nfs_open_context *, int, struct iattr *, int *);
110930 	int (*have_delegation)(struct inode *, fmode_t);
110931 	struct nfs_client * (*alloc_client)(const struct nfs_client_initdata *);
110932 	struct nfs_client * (*init_client)(struct nfs_client *, const struct nfs_client_initdata *);
110933 	void (*free_client)(struct nfs_client *);
110934 	struct nfs_server * (*create_server)(struct fs_context *);
110935 	struct nfs_server * (*clone_server)(struct nfs_server *, struct nfs_fh *, struct nfs_fattr *, rpc_authflavor_t);
110936 	int (*discover_trunking)(struct nfs_server *, struct nfs_fh *);
110937 	void (*enable_swap)(struct inode *);
110938 	void (*disable_swap)(struct inode *);
110939 };
110940 
110941 struct nfs_access_entry {
110942 	struct rb_node rb_node;
110943 	struct list_head lru;
110944 	kuid_t fsuid;
110945 	kgid_t fsgid;
110946 	struct group_info *group_info;
110947 	u64 timestamp;
110948 	__u32 mask;
110949 	struct callback_head callback_head;
110950 };
110951 
110952 struct nfs4_state_recovery_ops;
110953 
110954 struct nfs4_state_maintenance_ops;
110955 
110956 struct nfs4_mig_recovery_ops;
110957 
110958 struct nfs4_minor_version_ops {
110959 	u32 minor_version;
110960 	unsigned int init_caps;
110961 	int (*init_client)(struct nfs_client *);
110962 	void (*shutdown_client)(struct nfs_client *);
110963 	bool (*match_stateid)(const nfs4_stateid *, const nfs4_stateid *);
110964 	int (*find_root_sec)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *);
110965 	void (*free_lock_state)(struct nfs_server *, struct nfs4_lock_state *);
110966 	int (*test_and_free_expired)(struct nfs_server *, nfs4_stateid *, const struct cred *);
110967 	struct nfs_seqid * (*alloc_seqid)(struct nfs_seqid_counter *, gfp_t);
110968 	void (*session_trunk)(struct rpc_clnt *, struct rpc_xprt *, void *);
110969 	const struct rpc_call_ops *call_sync_ops;
110970 	const struct nfs4_state_recovery_ops *reboot_recovery_ops;
110971 	const struct nfs4_state_recovery_ops *nograce_recovery_ops;
110972 	const struct nfs4_state_maintenance_ops *state_renewal_ops;
110973 	const struct nfs4_mig_recovery_ops *mig_recovery_ops;
110974 };
110975 
110976 struct nfs4_state_owner;
110977 
110978 struct nfs4_state {
110979 	struct list_head open_states;
110980 	struct list_head inode_states;
110981 	struct list_head lock_states;
110982 	struct nfs4_state_owner *owner;
110983 	struct inode *inode;
110984 	long unsigned int flags;
110985 	spinlock_t state_lock;
110986 	seqlock_t seqlock;
110987 	nfs4_stateid stateid;
110988 	nfs4_stateid open_stateid;
110989 	unsigned int n_rdonly;
110990 	unsigned int n_wronly;
110991 	unsigned int n_rdwr;
110992 	fmode_t state;
110993 	refcount_t count;
110994 	wait_queue_head_t waitq;
110995 	struct callback_head callback_head;
110996 };
110997 
110998 struct cache_head {
110999 	struct hlist_node cache_list;
111000 	time64_t expiry_time;
111001 	time64_t last_refresh;
111002 	struct kref ref;
111003 	long unsigned int flags;
111004 };
111005 
111006 struct cache_deferred_req;
111007 
111008 struct cache_req {
111009 	struct cache_deferred_req * (*defer)(struct cache_req *);
111010 	long unsigned int thread_wait;
111011 };
111012 
111013 struct cache_deferred_req {
111014 	struct hlist_node hash;
111015 	struct list_head recent;
111016 	struct cache_head *item;
111017 	void *owner;
111018 	void (*revisit)(struct cache_deferred_req *, int);
111019 };
111020 
111021 struct svc_cred {
111022 	kuid_t cr_uid;
111023 	kgid_t cr_gid;
111024 	struct group_info *cr_group_info;
111025 	u32 cr_flavor;
111026 	char *cr_raw_principal;
111027 	char *cr_principal;
111028 	char *cr_targ_princ;
111029 	struct gss_api_mech *cr_gss_mech;
111030 };
111031 
111032 struct auth_ops {
111033 	char *name;
111034 	struct module *owner;
111035 	int flavour;
111036 	int (*accept)(struct svc_rqst *);
111037 	int (*release)(struct svc_rqst *);
111038 	void (*domain_release)(struct auth_domain *);
111039 	int (*set_client)(struct svc_rqst *);
111040 };
111041 
111042 struct svc_cacherep;
111043 
111044 struct svc_procedure;
111045 
111046 struct svc_deferred_req;
111047 
111048 struct svc_rqst {
111049 	struct list_head rq_all;
111050 	struct callback_head rq_rcu_head;
111051 	struct svc_xprt *rq_xprt;
111052 	struct __kernel_sockaddr_storage rq_addr;
111053 	size_t rq_addrlen;
111054 	struct __kernel_sockaddr_storage rq_daddr;
111055 	size_t rq_daddrlen;
111056 	struct svc_serv *rq_server;
111057 	struct svc_pool *rq_pool;
111058 	const struct svc_procedure *rq_procinfo;
111059 	struct auth_ops *rq_authop;
111060 	struct svc_cred rq_cred;
111061 	void *rq_xprt_ctxt;
111062 	struct svc_deferred_req *rq_deferred;
111063 	struct xdr_buf rq_arg;
111064 	struct xdr_stream rq_arg_stream;
111065 	struct xdr_stream rq_res_stream;
111066 	struct page *rq_scratch_page;
111067 	struct xdr_buf rq_res;
111068 	struct page *rq_pages[68];
111069 	struct page **rq_respages;
111070 	struct page **rq_next_page;
111071 	struct page **rq_page_end;
111072 	struct pagevec rq_pvec;
111073 	struct kvec rq_vec[67];
111074 	struct bio_vec rq_bvec[67];
111075 	__be32 rq_xid;
111076 	u32 rq_prog;
111077 	u32 rq_vers;
111078 	u32 rq_proc;
111079 	u32 rq_prot;
111080 	int rq_cachetype;
111081 	long unsigned int rq_flags;
111082 	ktime_t rq_qtime;
111083 	void *rq_argp;
111084 	void *rq_resp;
111085 	void *rq_auth_data;
111086 	__be32 rq_auth_stat;
111087 	int rq_auth_slack;
111088 	int rq_reserved;
111089 	ktime_t rq_stime;
111090 	struct cache_req rq_chandle;
111091 	struct auth_domain *rq_client;
111092 	struct auth_domain *rq_gssclient;
111093 	struct svc_cacherep *rq_cacherep;
111094 	struct task_struct *rq_task;
111095 	struct net *rq_bc_net;
111096 	void **rq_lease_breaker;
111097 };
111098 
111099 struct svc_pool_stats {
111100 	atomic_long_t packets;
111101 	long unsigned int sockets_queued;
111102 	atomic_long_t threads_woken;
111103 	atomic_long_t threads_timedout;
111104 };
111105 
111106 struct svc_pool {
111107 	unsigned int sp_id;
111108 	spinlock_t sp_lock;
111109 	struct list_head sp_sockets;
111110 	unsigned int sp_nrthreads;
111111 	struct list_head sp_all_threads;
111112 	struct svc_pool_stats sp_stats;
111113 	long unsigned int sp_flags;
111114 	long: 64;
111115 	long: 64;
111116 	long: 64;
111117 	long: 64;
111118 	long: 64;
111119 };
111120 
111121 struct svc_procedure {
111122 	__be32 (*pc_func)(struct svc_rqst *);
111123 	bool (*pc_decode)(struct svc_rqst *, struct xdr_stream *);
111124 	bool (*pc_encode)(struct svc_rqst *, struct xdr_stream *);
111125 	void (*pc_release)(struct svc_rqst *);
111126 	unsigned int pc_argsize;
111127 	unsigned int pc_argzero;
111128 	unsigned int pc_ressize;
111129 	unsigned int pc_cachetype;
111130 	unsigned int pc_xdrressize;
111131 	const char *pc_name;
111132 };
111133 
111134 struct svc_deferred_req {
111135 	u32 prot;
111136 	struct svc_xprt *xprt;
111137 	struct __kernel_sockaddr_storage addr;
111138 	size_t addrlen;
111139 	struct __kernel_sockaddr_storage daddr;
111140 	size_t daddrlen;
111141 	void *xprt_ctxt;
111142 	struct cache_deferred_req handle;
111143 	int argslen;
111144 	__be32 args[0];
111145 };
111146 
111147 struct svc_process_info {
111148 	union {
111149 		int (*dispatch)(struct svc_rqst *, __be32 *);
111150 		struct {
111151 			unsigned int lovers;
111152 			unsigned int hivers;
111153 		} mismatch;
111154 	};
111155 };
111156 
111157 struct svc_version {
111158 	u32 vs_vers;
111159 	u32 vs_nproc;
111160 	const struct svc_procedure *vs_proc;
111161 	unsigned int *vs_count;
111162 	u32 vs_xdrsize;
111163 	bool vs_hidden;
111164 	bool vs_rpcb_optnl;
111165 	bool vs_need_cong_ctrl;
111166 	int (*vs_dispatch)(struct svc_rqst *, __be32 *);
111167 };
111168 
111169 struct nfs4_ssc_client_ops;
111170 
111171 struct nfs_ssc_client_ops;
111172 
111173 struct nfs_ssc_client_ops_tbl {
111174 	const struct nfs4_ssc_client_ops *ssc_nfs4_ops;
111175 	const struct nfs_ssc_client_ops *ssc_nfs_ops;
111176 };
111177 
111178 struct nfs4_ssc_client_ops {
111179 	struct file * (*sco_open)(struct vfsmount *, struct nfs_fh *, nfs4_stateid *);
111180 	void (*sco_close)(struct file *);
111181 };
111182 
111183 struct nfs_ssc_client_ops {
111184 	void (*sco_sb_deactive)(struct super_block *);
111185 };
111186 
111187 struct nfs4_state_recovery_ops {
111188 	int owner_flag_bit;
111189 	int state_flag_bit;
111190 	int (*recover_open)(struct nfs4_state_owner *, struct nfs4_state *);
111191 	int (*recover_lock)(struct nfs4_state *, struct file_lock *);
111192 	int (*establish_clid)(struct nfs_client *, const struct cred *);
111193 	int (*reclaim_complete)(struct nfs_client *, const struct cred *);
111194 	int (*detect_trunking)(struct nfs_client *, struct nfs_client **, const struct cred *);
111195 };
111196 
111197 struct nfs4_state_maintenance_ops {
111198 	int (*sched_state_renewal)(struct nfs_client *, const struct cred *, unsigned int);
111199 	const struct cred * (*get_state_renewal_cred)(struct nfs_client *);
111200 	int (*renew_lease)(struct nfs_client *, const struct cred *);
111201 };
111202 
111203 struct nfs4_mig_recovery_ops {
111204 	int (*get_locations)(struct nfs_server *, struct nfs_fh *, struct nfs4_fs_locations *, struct page *, const struct cred *);
111205 	int (*fsid_present)(struct inode *, const struct cred *);
111206 };
111207 
111208 struct nfs4_state_owner {
111209 	struct nfs_server *so_server;
111210 	struct list_head so_lru;
111211 	long unsigned int so_expires;
111212 	struct rb_node so_server_node;
111213 	const struct cred *so_cred;
111214 	spinlock_t so_lock;
111215 	atomic_t so_count;
111216 	long unsigned int so_flags;
111217 	struct list_head so_states;
111218 	struct nfs_seqid_counter so_seqid;
111219 	seqcount_spinlock_t so_reclaim_seqcount;
111220 	struct mutex so_delegreturn_mutex;
111221 };
111222 
111223 struct iomap_dio_ops {
111224 	int (*end_io)(struct kiocb *, ssize_t, int, unsigned int);
111225 	void (*submit_io)(const struct iomap_iter *, struct bio *, loff_t);
111226 	struct bio_set *bio_set;
111227 };
111228 
111229 struct iomap_dio {
111230 	struct kiocb *iocb;
111231 	const struct iomap_dio_ops *dops;
111232 	loff_t i_size;
111233 	loff_t size;
111234 	atomic_t ref;
111235 	unsigned int flags;
111236 	int error;
111237 	size_t done_before;
111238 	bool wait_for_completion;
111239 	union {
111240 		struct {
111241 			struct iov_iter *iter;
111242 			struct task_struct *waiter;
111243 			struct bio *poll_bio;
111244 		} submit;
111245 		struct {
111246 			struct work_struct work;
111247 		} aio;
111248 	};
111249 };
111250 
111251 enum {
111252 	DQF_INFO_DIRTY_B = 17,
111253 };
111254 
111255 struct dqstats {
111256 	long unsigned int stat[8];
111257 	struct percpu_counter counter[8];
111258 };
111259 
111260 struct quota_module_name {
111261 	int qm_fmt_id;
111262 	char *qm_mod_name;
111263 };
111264 
111265 struct dquot_warn {
111266 	struct super_block *w_sb;
111267 	struct kqid w_dq_id;
111268 	short int w_type;
111269 };
111270 
111271 struct proc_fs_context {
111272 	struct pid_namespace *pid_ns;
111273 	unsigned int mask;
111274 	enum proc_hidepid hidepid;
111275 	int gid;
111276 	enum proc_pidonly pidonly;
111277 };
111278 
111279 enum proc_param {
111280 	Opt_gid___4 = 0,
111281 	Opt_hidepid = 1,
111282 	Opt_subset = 2,
111283 };
111284 
111285 struct bpf_iter_aux_info;
111286 
111287 struct pts_mount_opts {
111288 	int setuid;
111289 	int setgid;
111290 	kuid_t uid;
111291 	kgid_t gid;
111292 	umode_t mode;
111293 	umode_t ptmxmode;
111294 	int reserve;
111295 	int max;
111296 };
111297 
111298 enum {
111299 	Opt_uid___4 = 0,
111300 	Opt_gid___5 = 1,
111301 	Opt_mode___5 = 2,
111302 	Opt_ptmxmode = 3,
111303 	Opt_newinstance = 4,
111304 	Opt_max = 5,
111305 	Opt_err___3 = 6,
111306 };
111307 
111308 struct pts_fs_info {
111309 	struct ida allocated_ptys;
111310 	struct pts_mount_opts mount_opts;
111311 	struct super_block *sb;
111312 	struct dentry *ptmx_dentry;
111313 };
111314 
111315 typedef u32 unicode_t;
111316 
111317 struct utf8_table {
111318 	int cmask;
111319 	int cval;
111320 	int shift;
111321 	long int lmask;
111322 	long int lval;
111323 };
111324 
111325 typedef const unsigned char utf8trie_t;
111326 
111327 typedef const unsigned char utf8leaf_t;
111328 
111329 enum {
111330 	Opt_err___4 = 0,
111331 	Opt_fd = 1,
111332 	Opt_uid___5 = 2,
111333 	Opt_gid___6 = 3,
111334 	Opt_pgrp = 4,
111335 	Opt_minproto = 5,
111336 	Opt_maxproto = 6,
111337 	Opt_indirect = 7,
111338 	Opt_direct = 8,
111339 	Opt_offset = 9,
111340 	Opt_strictexpire = 10,
111341 	Opt_ignore = 11,
111342 };
111343 
111344 struct tracefs_dir_ops {
111345 	int (*mkdir)(const char *);
111346 	int (*rmdir)(const char *);
111347 };
111348 
111349 struct tracefs_mount_opts {
111350 	kuid_t uid;
111351 	kgid_t gid;
111352 	umode_t mode;
111353 	unsigned int opts;
111354 };
111355 
111356 struct tracefs_fs_info {
111357 	struct tracefs_mount_opts mount_opts;
111358 };
111359 
111360 struct msgbuf {
111361 	__kernel_long_t mtype;
111362 	char mtext[1];
111363 };
111364 
111365 struct msg;
111366 
111367 struct msqid_ds {
111368 	struct ipc_perm msg_perm;
111369 	struct msg *msg_first;
111370 	struct msg *msg_last;
111371 	__kernel_old_time_t msg_stime;
111372 	__kernel_old_time_t msg_rtime;
111373 	__kernel_old_time_t msg_ctime;
111374 	long unsigned int msg_lcbytes;
111375 	long unsigned int msg_lqbytes;
111376 	short unsigned int msg_cbytes;
111377 	short unsigned int msg_qnum;
111378 	short unsigned int msg_qbytes;
111379 	__kernel_ipc_pid_t msg_lspid;
111380 	__kernel_ipc_pid_t msg_lrpid;
111381 };
111382 
111383 struct msqid64_ds {
111384 	struct ipc64_perm msg_perm;
111385 	long int msg_stime;
111386 	long int msg_rtime;
111387 	long int msg_ctime;
111388 	long unsigned int msg_cbytes;
111389 	long unsigned int msg_qnum;
111390 	long unsigned int msg_qbytes;
111391 	__kernel_pid_t msg_lspid;
111392 	__kernel_pid_t msg_lrpid;
111393 	long unsigned int __unused4;
111394 	long unsigned int __unused5;
111395 };
111396 
111397 struct msginfo {
111398 	int msgpool;
111399 	int msgmap;
111400 	int msgmax;
111401 	int msgmnb;
111402 	int msgmni;
111403 	int msgssz;
111404 	int msgtql;
111405 	short unsigned int msgseg;
111406 };
111407 
111408 struct msg_queue {
111409 	struct kern_ipc_perm q_perm;
111410 	time64_t q_stime;
111411 	time64_t q_rtime;
111412 	time64_t q_ctime;
111413 	long unsigned int q_cbytes;
111414 	long unsigned int q_qnum;
111415 	long unsigned int q_qbytes;
111416 	struct pid *q_lspid;
111417 	struct pid *q_lrpid;
111418 	struct list_head q_messages;
111419 	struct list_head q_receivers;
111420 	struct list_head q_senders;
111421 	long: 64;
111422 	long: 64;
111423 };
111424 
111425 struct msg_receiver {
111426 	struct list_head r_list;
111427 	struct task_struct *r_tsk;
111428 	int r_mode;
111429 	long int r_msgtype;
111430 	long int r_maxsize;
111431 	struct msg_msg *r_msg;
111432 };
111433 
111434 struct msg_sender {
111435 	struct list_head list;
111436 	struct task_struct *tsk;
111437 	size_t msgsz;
111438 };
111439 
111440 struct avc_cache {
111441 	struct hlist_head slots[512];
111442 	spinlock_t slots_lock[512];
111443 	atomic_t lru_hint;
111444 	atomic_t active_nodes;
111445 	u32 latest_notif;
111446 };
111447 
111448 struct selinux_avc {
111449 	unsigned int avc_cache_threshold;
111450 	struct avc_cache avc_cache;
111451 };
111452 
111453 struct trace_event_raw_selinux_audited {
111454 	struct trace_entry ent;
111455 	u32 requested;
111456 	u32 denied;
111457 	u32 audited;
111458 	int result;
111459 	u32 __data_loc_scontext;
111460 	u32 __data_loc_tcontext;
111461 	u32 __data_loc_tclass;
111462 	char __data[0];
111463 };
111464 
111465 struct trace_event_data_offsets_selinux_audited {
111466 	u32 scontext;
111467 	u32 tcontext;
111468 	u32 tclass;
111469 };
111470 
111471 typedef void (*btf_trace_selinux_audited)(void *, struct selinux_audit_data *, char *, char *, const char *);
111472 
111473 struct avc_xperms_node;
111474 
111475 struct avc_entry {
111476 	u32 ssid;
111477 	u32 tsid;
111478 	u16 tclass;
111479 	struct av_decision avd;
111480 	struct avc_xperms_node *xp_node;
111481 };
111482 
111483 struct avc_xperms_node {
111484 	struct extended_perms xp;
111485 	struct list_head xpd_head;
111486 };
111487 
111488 struct avc_node {
111489 	struct avc_entry ae;
111490 	struct hlist_node list;
111491 	struct callback_head rhead;
111492 };
111493 
111494 struct avc_xperms_decision_node {
111495 	struct extended_perms_decision xpd;
111496 	struct list_head xpd_list;
111497 };
111498 
111499 struct avc_callback_node {
111500 	int (*callback)(u32);
111501 	u32 events;
111502 	struct avc_callback_node *next;
111503 };
111504 
111505 struct nlmsg_perm {
111506 	u16 nlmsg_type;
111507 	u32 perm;
111508 };
111509 
111510 struct netport_security_struct {
111511 	u32 sid;
111512 	u16 port;
111513 	u8 protocol;
111514 };
111515 
111516 struct sel_netport_bkt {
111517 	int size;
111518 	struct list_head list;
111519 };
111520 
111521 struct sel_netport {
111522 	struct netport_security_struct psec;
111523 	struct list_head list;
111524 	struct callback_head rcu;
111525 };
111526 
111527 struct aa_audit_rule {
111528 	struct aa_label *label;
111529 };
111530 
111531 struct crypto_comp {
111532 	struct crypto_tfm base;
111533 };
111534 
111535 struct crypto_report_aead {
111536 	char type[64];
111537 	char geniv[64];
111538 	unsigned int blocksize;
111539 	unsigned int maxauthsize;
111540 	unsigned int ivsize;
111541 };
111542 
111543 struct ahash_alg {
111544 	int (*init)(struct ahash_request *);
111545 	int (*update)(struct ahash_request *);
111546 	int (*final)(struct ahash_request *);
111547 	int (*finup)(struct ahash_request *);
111548 	int (*digest)(struct ahash_request *);
111549 	int (*export)(struct ahash_request *, void *);
111550 	int (*import)(struct ahash_request *, const void *);
111551 	int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int);
111552 	int (*init_tfm)(struct crypto_ahash *);
111553 	void (*exit_tfm)(struct crypto_ahash *);
111554 	struct hash_alg_common halg;
111555 };
111556 
111557 struct ahash_instance {
111558 	void (*free)(struct ahash_instance *);
111559 	union {
111560 		struct {
111561 			char head[88];
111562 			struct crypto_instance base;
111563 		} s;
111564 		struct ahash_alg alg;
111565 	};
111566 };
111567 
111568 struct crypto_ahash_spawn {
111569 	struct crypto_spawn base;
111570 };
111571 
111572 struct ahash_request_priv {
111573 	crypto_completion_t complete;
111574 	void *data;
111575 	u8 *result;
111576 	u32 flags;
111577 	void *ubuf[0];
111578 };
111579 
111580 struct crypto_report_kpp {
111581 	char type[64];
111582 };
111583 
111584 struct kpp_instance {
111585 	void (*free)(struct kpp_instance *);
111586 	union {
111587 		struct {
111588 			char head[48];
111589 			struct crypto_instance base;
111590 		} s;
111591 		struct kpp_alg alg;
111592 	};
111593 };
111594 
111595 struct crypto_kpp_spawn {
111596 	struct crypto_spawn base;
111597 };
111598 
111599 enum ecdsasignature_actions {
111600 	ACT_ecdsa_get_signature_r = 0,
111601 	ACT_ecdsa_get_signature_s = 1,
111602 	NR__ecdsasignature_actions = 2,
111603 };
111604 
111605 struct crypto_report_acomp {
111606 	char type[64];
111607 };
111608 
111609 struct acomp_alg {
111610 	int (*compress)(struct acomp_req *);
111611 	int (*decompress)(struct acomp_req *);
111612 	void (*dst_free)(struct scatterlist *);
111613 	int (*init)(struct crypto_acomp *);
111614 	void (*exit)(struct crypto_acomp *);
111615 	unsigned int reqsize;
111616 	struct crypto_alg base;
111617 };
111618 
111619 struct hmac_ctx {
111620 	struct crypto_shash *hash;
111621 };
111622 
111623 struct sha1_state {
111624 	u32 state[5];
111625 	u64 count;
111626 	u8 buffer[64];
111627 };
111628 
111629 typedef void sha1_block_fn(struct sha1_state *, const u8 *, int);
111630 
111631 struct crypto_rfc3686_ctx {
111632 	struct crypto_skcipher *child;
111633 	u8 nonce[4];
111634 };
111635 
111636 struct crypto_rfc3686_req_ctx {
111637 	u8 iv[16];
111638 	struct skcipher_request subreq;
111639 };
111640 
111641 struct chksum_desc_ctx___2 {
111642 	__u16 crc;
111643 };
111644 
111645 struct drbg_string {
111646 	const unsigned char *buf;
111647 	size_t len;
111648 	struct list_head list;
111649 };
111650 
111651 typedef uint32_t drbg_flag_t;
111652 
111653 struct drbg_core {
111654 	drbg_flag_t flags;
111655 	__u8 statelen;
111656 	__u8 blocklen_bytes;
111657 	char cra_name[128];
111658 	char backend_cra_name[128];
111659 };
111660 
111661 struct drbg_state;
111662 
111663 struct drbg_state_ops {
111664 	int (*update)(struct drbg_state *, struct list_head *, int);
111665 	int (*generate)(struct drbg_state *, unsigned char *, unsigned int, struct list_head *);
111666 	int (*crypto_init)(struct drbg_state *);
111667 	int (*crypto_fini)(struct drbg_state *);
111668 };
111669 
111670 enum drbg_seed_state {
111671 	DRBG_SEED_STATE_UNSEEDED = 0,
111672 	DRBG_SEED_STATE_PARTIAL = 1,
111673 	DRBG_SEED_STATE_FULL = 2,
111674 };
111675 
111676 struct drbg_state {
111677 	struct mutex drbg_mutex;
111678 	unsigned char *V;
111679 	unsigned char *Vbuf;
111680 	unsigned char *C;
111681 	unsigned char *Cbuf;
111682 	size_t reseed_ctr;
111683 	size_t reseed_threshold;
111684 	unsigned char *scratchpad;
111685 	unsigned char *scratchpadbuf;
111686 	void *priv_data;
111687 	struct crypto_skcipher *ctr_handle;
111688 	struct skcipher_request *ctr_req;
111689 	__u8 *outscratchpadbuf;
111690 	__u8 *outscratchpad;
111691 	struct crypto_wait ctr_wait;
111692 	struct scatterlist sg_in;
111693 	struct scatterlist sg_out;
111694 	enum drbg_seed_state seeded;
111695 	long unsigned int last_seed_time;
111696 	bool pr;
111697 	bool fips_primed;
111698 	unsigned char *prev;
111699 	struct crypto_rng *jent;
111700 	const struct drbg_state_ops *d_ops;
111701 	const struct drbg_core *core;
111702 	struct drbg_string test_data;
111703 };
111704 
111705 enum drbg_prefixes {
111706 	DRBG_PREFIX0 = 0,
111707 	DRBG_PREFIX1 = 1,
111708 	DRBG_PREFIX2 = 2,
111709 	DRBG_PREFIX3 = 3,
111710 };
111711 
111712 struct sdesc {
111713 	struct shash_desc shash;
111714 	char ctx[0];
111715 };
111716 
111717 struct asymmetric_key_parser {
111718 	struct list_head link;
111719 	struct module *owner;
111720 	const char *name;
111721 	int (*parse)(struct key_preparsed_payload *);
111722 };
111723 
111724 enum x509_actions {
111725 	ACT_x509_extract_key_data = 0,
111726 	ACT_x509_extract_name_segment___2 = 1,
111727 	ACT_x509_note_OID___2 = 2,
111728 	ACT_x509_note_issuer = 3,
111729 	ACT_x509_note_not_after = 4,
111730 	ACT_x509_note_not_before = 5,
111731 	ACT_x509_note_params = 6,
111732 	ACT_x509_note_serial = 7,
111733 	ACT_x509_note_sig_algo = 8,
111734 	ACT_x509_note_signature = 9,
111735 	ACT_x509_note_subject = 10,
111736 	ACT_x509_note_tbs_certificate = 11,
111737 	ACT_x509_process_extension = 12,
111738 	NR__x509_actions = 13,
111739 };
111740 
111741 enum blacklist_hash_type {
111742 	BLACKLIST_HASH_X509_TBS = 1,
111743 	BLACKLIST_HASH_BINARY = 2,
111744 };
111745 
111746 enum {
111747 	DIO_SHOULD_DIRTY = 1,
111748 	DIO_IS_SYNC = 2,
111749 };
111750 
111751 struct blkdev_dio {
111752 	union {
111753 		struct kiocb *iocb;
111754 		struct task_struct *waiter;
111755 	};
111756 	size_t size;
111757 	atomic_t ref;
111758 	unsigned int flags;
111759 	long: 64;
111760 	long: 64;
111761 	long: 64;
111762 	long: 64;
111763 	long: 64;
111764 	struct bio bio;
111765 	long: 64;
111766 	long: 64;
111767 	long: 64;
111768 	long: 64;
111769 	long: 64;
111770 	long: 64;
111771 	long: 64;
111772 };
111773 
111774 struct queue_sysfs_entry {
111775 	struct attribute attr;
111776 	ssize_t (*show)(struct request_queue *, char *);
111777 	ssize_t (*store)(struct request_queue *, const char *, size_t);
111778 };
111779 
111780 enum {
111781 	ICQ_EXITED = 4,
111782 	ICQ_DESTROYED = 8,
111783 };
111784 
111785 struct blk_mq_hw_ctx_sysfs_entry {
111786 	struct attribute attr;
111787 	ssize_t (*show)(struct blk_mq_hw_ctx *, char *);
111788 	ssize_t (*store)(struct blk_mq_hw_ctx *, const char *, size_t);
111789 };
111790 
111791 struct blkpg_ioctl_arg {
111792 	int op;
111793 	int flags;
111794 	int datalen;
111795 	void *data;
111796 };
111797 
111798 struct blkpg_partition {
111799 	long long int start;
111800 	long long int length;
111801 	int pno;
111802 	char devname[64];
111803 	char volname[64];
111804 };
111805 
111806 struct pr_reservation {
111807 	__u64 key;
111808 	__u32 type;
111809 	__u32 flags;
111810 };
111811 
111812 struct pr_registration {
111813 	__u64 old_key;
111814 	__u64 new_key;
111815 	__u32 flags;
111816 	__u32 __pad;
111817 };
111818 
111819 struct pr_preempt {
111820 	__u64 old_key;
111821 	__u64 new_key;
111822 	__u32 type;
111823 	__u32 flags;
111824 };
111825 
111826 struct pr_clear {
111827 	__u64 key;
111828 	__u32 flags;
111829 	__u32 __pad;
111830 };
111831 
111832 struct disk_events {
111833 	struct list_head node;
111834 	struct gendisk *disk;
111835 	spinlock_t lock;
111836 	struct mutex block_mutex;
111837 	int block;
111838 	unsigned int pending;
111839 	unsigned int clearing;
111840 	long int poll_msecs;
111841 	struct delayed_work dwork;
111842 };
111843 
111844 enum dd_data_dir {
111845 	DD_READ = 0,
111846 	DD_WRITE = 1,
111847 };
111848 
111849 enum {
111850 	DD_DIR_COUNT = 2,
111851 };
111852 
111853 enum dd_prio {
111854 	DD_RT_PRIO = 0,
111855 	DD_BE_PRIO = 1,
111856 	DD_IDLE_PRIO = 2,
111857 	DD_PRIO_MAX = 2,
111858 };
111859 
111860 enum {
111861 	DD_PRIO_COUNT = 3,
111862 };
111863 
111864 struct io_stats_per_prio {
111865 	uint32_t inserted;
111866 	uint32_t merged;
111867 	uint32_t dispatched;
111868 	atomic_t completed;
111869 };
111870 
111871 struct dd_per_prio {
111872 	struct list_head dispatch;
111873 	struct rb_root sort_list[2];
111874 	struct list_head fifo_list[2];
111875 	struct request *next_rq[2];
111876 	struct io_stats_per_prio stats;
111877 };
111878 
111879 struct deadline_data {
111880 	struct dd_per_prio per_prio[3];
111881 	enum dd_data_dir last_dir;
111882 	unsigned int batching;
111883 	unsigned int starved;
111884 	int fifo_expire[2];
111885 	int fifo_batch;
111886 	int writes_starved;
111887 	int front_merges;
111888 	u32 async_depth;
111889 	int prio_aging_expire;
111890 	spinlock_t lock;
111891 	spinlock_t zone_lock;
111892 };
111893 
111894 struct t10_pi_tuple {
111895 	__be16 guard_tag;
111896 	__be16 app_tag;
111897 	__be32 ref_tag;
111898 };
111899 
111900 struct crc64_pi_tuple {
111901 	__be64 guard_tag;
111902 	__be16 app_tag;
111903 	__u8 ref_tag[6];
111904 };
111905 
111906 typedef __be16 csum_fn(void *, unsigned int);
111907 
111908 enum blk_zone_type {
111909 	BLK_ZONE_TYPE_CONVENTIONAL = 1,
111910 	BLK_ZONE_TYPE_SEQWRITE_REQ = 2,
111911 	BLK_ZONE_TYPE_SEQWRITE_PREF = 3,
111912 };
111913 
111914 enum blk_zone_cond {
111915 	BLK_ZONE_COND_NOT_WP = 0,
111916 	BLK_ZONE_COND_EMPTY = 1,
111917 	BLK_ZONE_COND_IMP_OPEN = 2,
111918 	BLK_ZONE_COND_EXP_OPEN = 3,
111919 	BLK_ZONE_COND_CLOSED = 4,
111920 	BLK_ZONE_COND_READONLY = 13,
111921 	BLK_ZONE_COND_FULL = 14,
111922 	BLK_ZONE_COND_OFFLINE = 15,
111923 };
111924 
111925 enum blk_zone_report_flags {
111926 	BLK_ZONE_REP_CAPACITY = 1,
111927 };
111928 
111929 struct blk_zone_report {
111930 	__u64 sector;
111931 	__u32 nr_zones;
111932 	__u32 flags;
111933 	struct blk_zone zones[0];
111934 };
111935 
111936 struct blk_zone_range {
111937 	__u64 sector;
111938 	__u64 nr_sectors;
111939 };
111940 
111941 struct zone_report_args {
111942 	struct blk_zone *zones;
111943 };
111944 
111945 struct blk_revalidate_zone_args {
111946 	struct gendisk *disk;
111947 	long unsigned int *conv_zones_bitmap;
111948 	long unsigned int *seq_zones_wlock;
111949 	unsigned int nr_zones;
111950 	sector_t zone_sectors;
111951 	sector_t sector;
111952 };
111953 
111954 struct bio_fallback_crypt_ctx {
111955 	struct bio_crypt_ctx crypt_ctx;
111956 	struct bvec_iter crypt_iter;
111957 	union {
111958 		struct {
111959 			struct work_struct work;
111960 			struct bio *bio;
111961 		};
111962 		struct {
111963 			void *bi_private_orig;
111964 			bio_end_io_t *bi_end_io_orig;
111965 		};
111966 	};
111967 };
111968 
111969 struct blk_crypto_fallback_keyslot {
111970 	enum blk_crypto_mode_num crypto_mode;
111971 	struct crypto_skcipher *tfms[5];
111972 };
111973 
111974 union blk_crypto_iv {
111975 	__le64 dun[4];
111976 	u8 bytes[32];
111977 };
111978 
111979 struct io_rename {
111980 	struct file *file;
111981 	int old_dfd;
111982 	int new_dfd;
111983 	struct filename *oldpath;
111984 	struct filename *newpath;
111985 	int flags;
111986 };
111987 
111988 struct io_unlink {
111989 	struct file *file;
111990 	int dfd;
111991 	int flags;
111992 	struct filename *filename;
111993 };
111994 
111995 struct io_mkdir {
111996 	struct file *file;
111997 	int dfd;
111998 	umode_t mode;
111999 	struct filename *filename;
112000 };
112001 
112002 struct io_link {
112003 	struct file *file;
112004 	int old_dfd;
112005 	int new_dfd;
112006 	struct filename *oldpath;
112007 	struct filename *newpath;
112008 	int flags;
112009 };
112010 
112011 struct io_fadvise {
112012 	struct file *file;
112013 	u64 offset;
112014 	u32 len;
112015 	u32 advice;
112016 };
112017 
112018 struct io_madvise {
112019 	struct file *file;
112020 	u64 addr;
112021 	u32 len;
112022 	u32 advice;
112023 };
112024 
112025 struct io_timeout_data {
112026 	struct io_kiocb *req;
112027 	struct hrtimer timer;
112028 	struct timespec64 ts;
112029 	enum hrtimer_mode mode;
112030 	u32 flags;
112031 };
112032 
112033 struct io_timeout {
112034 	struct file *file;
112035 	u32 off;
112036 	u32 target_seq;
112037 	struct list_head list;
112038 	struct io_kiocb *head;
112039 	struct io_kiocb *prev;
112040 };
112041 
112042 struct io_timeout_rem {
112043 	struct file *file;
112044 	u64 addr;
112045 	struct timespec64 ts;
112046 	u32 flags;
112047 	bool ltimeout;
112048 };
112049 
112050 enum {
112051 	IO_WQ_BOUND = 0,
112052 	IO_WQ_UNBOUND = 1,
112053 };
112054 
112055 struct io_wqe;
112056 
112057 struct io_wq {
112058 	long unsigned int state;
112059 	free_work_fn *free_work;
112060 	io_wq_work_fn *do_work;
112061 	struct io_wq_hash *hash;
112062 	atomic_t worker_refs;
112063 	struct completion worker_done;
112064 	struct hlist_node cpuhp_node;
112065 	struct task_struct *task;
112066 	struct io_wqe *wqes[0];
112067 };
112068 
112069 enum {
112070 	IO_WORKER_F_UP = 1,
112071 	IO_WORKER_F_RUNNING = 2,
112072 	IO_WORKER_F_FREE = 4,
112073 	IO_WORKER_F_BOUND = 8,
112074 };
112075 
112076 enum {
112077 	IO_WQ_BIT_EXIT = 0,
112078 };
112079 
112080 enum {
112081 	IO_ACCT_STALLED_BIT = 0,
112082 };
112083 
112084 struct io_worker {
112085 	refcount_t ref;
112086 	unsigned int flags;
112087 	struct hlist_nulls_node nulls_node;
112088 	struct list_head all_list;
112089 	struct task_struct *task;
112090 	struct io_wqe *wqe;
112091 	struct io_wq_work *cur_work;
112092 	struct io_wq_work *next_work;
112093 	raw_spinlock_t lock;
112094 	struct completion ref_done;
112095 	long unsigned int create_state;
112096 	struct callback_head create_work;
112097 	int create_index;
112098 	union {
112099 		struct callback_head rcu;
112100 		struct work_struct work;
112101 	};
112102 };
112103 
112104 struct io_wqe_acct {
112105 	unsigned int nr_workers;
112106 	unsigned int max_workers;
112107 	int index;
112108 	atomic_t nr_running;
112109 	raw_spinlock_t lock;
112110 	struct io_wq_work_list work_list;
112111 	long unsigned int flags;
112112 };
112113 
112114 struct io_wqe {
112115 	raw_spinlock_t lock;
112116 	struct io_wqe_acct acct[2];
112117 	int node;
112118 	struct hlist_nulls_head free_list;
112119 	struct list_head all_list;
112120 	struct wait_queue_entry wait;
112121 	struct io_wq *wq;
112122 	struct io_wq_work *hash_tail[64];
112123 	cpumask_var_t cpu_mask;
112124 };
112125 
112126 enum {
112127 	IO_WQ_ACCT_BOUND = 0,
112128 	IO_WQ_ACCT_UNBOUND = 1,
112129 	IO_WQ_ACCT_NR = 2,
112130 };
112131 
112132 struct io_cb_cancel_data {
112133 	work_cancel_fn *fn;
112134 	void *data;
112135 	int nr_running;
112136 	int nr_pending;
112137 	bool cancel_all;
112138 };
112139 
112140 struct online_data {
112141 	unsigned int cpu;
112142 	bool online;
112143 };
112144 
112145 struct genradix_iter {
112146 	size_t offset;
112147 	size_t pos;
112148 };
112149 
112150 struct genradix_node {
112151 	union {
112152 		struct genradix_node *children[2048];
112153 		u8 data[16384];
112154 	};
112155 };
112156 
112157 struct strarray {
112158 	char **array;
112159 	size_t n;
112160 };
112161 
112162 enum assoc_array_walk_status {
112163 	assoc_array_walk_tree_empty = 0,
112164 	assoc_array_walk_found_terminal_node = 1,
112165 	assoc_array_walk_found_wrong_shortcut = 2,
112166 };
112167 
112168 struct assoc_array_walk_result {
112169 	struct {
112170 		struct assoc_array_node *node;
112171 		int level;
112172 		int slot;
112173 	} terminal_node;
112174 	struct {
112175 		struct assoc_array_shortcut *shortcut;
112176 		int level;
112177 		int sc_level;
112178 		long unsigned int sc_segments;
112179 		long unsigned int dissimilarity;
112180 	} wrong_shortcut;
112181 };
112182 
112183 struct assoc_array_delete_collapse_context {
112184 	struct assoc_array_node *node;
112185 	const void *skip_leaf;
112186 	int slot;
112187 };
112188 
112189 typedef unsigned char Byte;
112190 
112191 typedef long unsigned int uLong;
112192 
112193 struct internal_state;
112194 
112195 struct z_stream_s {
112196 	const Byte *next_in;
112197 	uLong avail_in;
112198 	uLong total_in;
112199 	Byte *next_out;
112200 	uLong avail_out;
112201 	uLong total_out;
112202 	char *msg;
112203 	struct internal_state *state;
112204 	void *workspace;
112205 	int data_type;
112206 	uLong adler;
112207 	uLong reserved;
112208 };
112209 
112210 typedef struct z_stream_s z_stream;
112211 
112212 typedef z_stream *z_streamp;
112213 
112214 typedef struct {
112215 	unsigned char op;
112216 	unsigned char bits;
112217 	short unsigned int val;
112218 } code;
112219 
112220 typedef enum {
112221 	HEAD = 0,
112222 	FLAGS = 1,
112223 	TIME = 2,
112224 	OS = 3,
112225 	EXLEN = 4,
112226 	EXTRA = 5,
112227 	NAME = 6,
112228 	COMMENT = 7,
112229 	HCRC = 8,
112230 	DICTID = 9,
112231 	DICT = 10,
112232 	TYPE = 11,
112233 	TYPEDO = 12,
112234 	STORED = 13,
112235 	COPY = 14,
112236 	TABLE = 15,
112237 	LENLENS = 16,
112238 	CODELENS = 17,
112239 	LEN = 18,
112240 	LENEXT = 19,
112241 	DIST = 20,
112242 	DISTEXT = 21,
112243 	MATCH = 22,
112244 	LIT = 23,
112245 	CHECK = 24,
112246 	LENGTH = 25,
112247 	DONE = 26,
112248 	BAD = 27,
112249 	MEM = 28,
112250 	SYNC = 29,
112251 } inflate_mode;
112252 
112253 struct inflate_state {
112254 	inflate_mode mode;
112255 	int last;
112256 	int wrap;
112257 	int havedict;
112258 	int flags;
112259 	unsigned int dmax;
112260 	long unsigned int check;
112261 	long unsigned int total;
112262 	unsigned int wbits;
112263 	unsigned int wsize;
112264 	unsigned int whave;
112265 	unsigned int write;
112266 	unsigned char *window;
112267 	long unsigned int hold;
112268 	unsigned int bits;
112269 	unsigned int length;
112270 	unsigned int offset;
112271 	unsigned int extra;
112272 	const code *lencode;
112273 	const code *distcode;
112274 	unsigned int lenbits;
112275 	unsigned int distbits;
112276 	unsigned int ncode;
112277 	unsigned int nlen;
112278 	unsigned int ndist;
112279 	unsigned int have;
112280 	code *next;
112281 	short unsigned int lens[320];
112282 	short unsigned int work[288];
112283 	code codes[2048];
112284 };
112285 
112286 union uu {
112287 	short unsigned int us;
112288 	unsigned char b[2];
112289 };
112290 
112291 typedef unsigned int uInt;
112292 
112293 typedef enum {
112294 	CODES = 0,
112295 	LENS = 1,
112296 	DISTS = 2,
112297 } codetype;
112298 
112299 struct inflate_workspace {
112300 	struct inflate_state inflate_state;
112301 	unsigned char working_window[32768];
112302 };
112303 
112304 struct internal_state {
112305 	int dummy;
112306 };
112307 
112308 typedef struct {
112309 	U32 f1c;
112310 	U32 f1d;
112311 	U32 f7b;
112312 	U32 f7c;
112313 } ZSTD_cpuid_t;
112314 
112315 typedef struct {
112316 	size_t error;
112317 	int lowerBound;
112318 	int upperBound;
112319 } ZSTD_bounds;
112320 
112321 typedef ZSTD_CCtx___2 ZSTD_CStream___2;
112322 
112323 typedef enum {
112324 	ZSTD_e_continue = 0,
112325 	ZSTD_e_flush = 1,
112326 	ZSTD_e_end = 2,
112327 } ZSTD_EndDirective;
112328 
112329 typedef enum {
112330 	ZSTD_dlm_byCopy = 0,
112331 	ZSTD_dlm_byRef = 1,
112332 } ZSTD_dictLoadMethod_e;
112333 
112334 typedef struct {
112335 	long long unsigned int ingested;
112336 	long long unsigned int consumed;
112337 	long long unsigned int produced;
112338 	long long unsigned int flushed;
112339 	unsigned int currentJobID;
112340 	unsigned int nbActiveWorkers;
112341 } ZSTD_frameProgression;
112342 
112343 typedef enum {
112344 	ZSTD_cpm_noAttachDict = 0,
112345 	ZSTD_cpm_attachDict = 1,
112346 	ZSTD_cpm_createCDict = 2,
112347 	ZSTD_cpm_unknown = 3,
112348 } ZSTD_cParamMode_e;
112349 
112350 typedef size_t (*ZSTD_blockCompressor)(ZSTD_matchState_t *, seqStore_t *, U32 *, const void *, size_t);
112351 
112352 typedef enum {
112353 	ZSTDcrp_makeClean = 0,
112354 	ZSTDcrp_leaveDirty = 1,
112355 } ZSTD_compResetPolicy_e;
112356 
112357 typedef enum {
112358 	ZSTDirp_continue = 0,
112359 	ZSTDirp_reset = 1,
112360 } ZSTD_indexResetPolicy_e;
112361 
112362 typedef enum {
112363 	ZSTD_resetTarget_CDict = 0,
112364 	ZSTD_resetTarget_CCtx = 1,
112365 } ZSTD_resetTarget_e;
112366 
112367 typedef struct {
112368 	U32 LLtype;
112369 	U32 Offtype;
112370 	U32 MLtype;
112371 	size_t size;
112372 	size_t lastCountSize;
112373 } ZSTD_symbolEncodingTypeStats_t;
112374 
112375 enum {
112376 	ZSTDbss_compress = 0,
112377 	ZSTDbss_noCompress = 1,
112378 };
112379 
112380 typedef struct {
112381 	U32 *splitLocations;
112382 	size_t idx;
112383 } seqStoreSplits;
112384 
112385 typedef struct {
112386 	U32 idx;
112387 	U32 posInSequence;
112388 	size_t posInSrc;
112389 } ZSTD_sequencePosition;
112390 
112391 typedef size_t (*ZSTD_sequenceCopier)(ZSTD_CCtx___2 *, ZSTD_sequencePosition *, const ZSTD_Sequence * const, size_t, const void *, size_t);
112392 
112393 typedef struct {
112394 	U64 rolling;
112395 	U64 stopMask;
112396 } ldmRollingHashState_t;
112397 
112398 typedef struct {
112399 	BYTE maxTableLog;
112400 	BYTE tableType;
112401 	BYTE tableLog;
112402 	BYTE reserved;
112403 } DTableDesc;
112404 
112405 typedef struct {
112406 	BYTE nbBits;
112407 	BYTE byte;
112408 } HUF_DEltX1;
112409 
112410 typedef struct {
112411 	U32 rankVal[13];
112412 	U32 rankStart[13];
112413 	U32 statsWksp[218];
112414 	BYTE symbols[256];
112415 	BYTE huffWeight[256];
112416 } HUF_ReadDTableX1_Workspace;
112417 
112418 typedef struct {
112419 	U16 sequence;
112420 	BYTE nbBits;
112421 	BYTE length;
112422 } HUF_DEltX2;
112423 
112424 typedef struct {
112425 	BYTE symbol;
112426 } sortedSymbol_t;
112427 
112428 typedef U32 rankValCol_t[13];
112429 
112430 typedef struct {
112431 	U32 rankVal[156];
112432 	U32 rankStats[13];
112433 	U32 rankStart0[15];
112434 	sortedSymbol_t sortedSymbol[256];
112435 	BYTE weightList[256];
112436 	U32 calleeWksp[218];
112437 } HUF_ReadDTableX2_Workspace;
112438 
112439 typedef struct {
112440 	U32 tableTime;
112441 	U32 decode256Time;
112442 } algo_time_t;
112443 
112444 typedef enum {
112445 	ZSTD_d_windowLogMax = 100,
112446 	ZSTD_d_experimentalParam1 = 1000,
112447 	ZSTD_d_experimentalParam2 = 1001,
112448 	ZSTD_d_experimentalParam3 = 1002,
112449 	ZSTD_d_experimentalParam4 = 1003,
112450 } ZSTD_dParameter;
112451 
112452 typedef ZSTD_DCtx___2 ZSTD_DStream___2;
112453 
112454 typedef enum {
112455 	ZSTDnit_frameHeader = 0,
112456 	ZSTDnit_blockHeader = 1,
112457 	ZSTDnit_block = 2,
112458 	ZSTDnit_lastBlock = 3,
112459 	ZSTDnit_checksum = 4,
112460 	ZSTDnit_skippableFrame = 5,
112461 } ZSTD_nextInputType_e;
112462 
112463 typedef struct {
112464 	size_t compressedSize;
112465 	long long unsigned int decompressedBound;
112466 } ZSTD_frameSizeInfo;
112467 
112468 typedef unsigned int FSE_DTable;
112469 
112470 typedef struct {
112471 	size_t state;
112472 	const void *table;
112473 } FSE_DState_t;
112474 
112475 typedef struct {
112476 	U16 tableLog;
112477 	U16 fastMode;
112478 } FSE_DTableHeader;
112479 
112480 typedef struct {
112481 	short unsigned int newState;
112482 	unsigned char symbol;
112483 	unsigned char nbBits;
112484 } FSE_decode_t;
112485 
112486 typedef struct {
112487 	short int ncount[256];
112488 	FSE_DTable dtable[1];
112489 } FSE_DecompressWksp;
112490 
112491 typedef uint64_t vli_type;
112492 
112493 enum xz_check {
112494 	XZ_CHECK_NONE = 0,
112495 	XZ_CHECK_CRC32 = 1,
112496 	XZ_CHECK_CRC64 = 4,
112497 	XZ_CHECK_SHA256 = 10,
112498 };
112499 
112500 struct xz_dec_hash {
112501 	vli_type unpadded;
112502 	vli_type uncompressed;
112503 	uint32_t crc32;
112504 };
112505 
112506 struct xz_dec_lzma2;
112507 
112508 struct xz_dec_bcj;
112509 
112510 struct xz_dec {
112511 	enum {
112512 		SEQ_STREAM_HEADER = 0,
112513 		SEQ_BLOCK_START = 1,
112514 		SEQ_BLOCK_HEADER = 2,
112515 		SEQ_BLOCK_UNCOMPRESS = 3,
112516 		SEQ_BLOCK_PADDING = 4,
112517 		SEQ_BLOCK_CHECK = 5,
112518 		SEQ_INDEX = 6,
112519 		SEQ_INDEX_PADDING = 7,
112520 		SEQ_INDEX_CRC32 = 8,
112521 		SEQ_STREAM_FOOTER = 9,
112522 	} sequence;
112523 	uint32_t pos;
112524 	vli_type vli;
112525 	size_t in_start;
112526 	size_t out_start;
112527 	uint32_t crc32;
112528 	enum xz_check check_type;
112529 	enum xz_mode mode;
112530 	bool allow_buf_error;
112531 	struct {
112532 		vli_type compressed;
112533 		vli_type uncompressed;
112534 		uint32_t size;
112535 	} block_header;
112536 	struct {
112537 		vli_type compressed;
112538 		vli_type uncompressed;
112539 		vli_type count;
112540 		struct xz_dec_hash hash;
112541 	} block;
112542 	struct {
112543 		enum {
112544 			SEQ_INDEX_COUNT = 0,
112545 			SEQ_INDEX_UNPADDED = 1,
112546 			SEQ_INDEX_UNCOMPRESSED = 2,
112547 		} sequence;
112548 		vli_type size;
112549 		vli_type count;
112550 		struct xz_dec_hash hash;
112551 	} index;
112552 	struct {
112553 		size_t pos;
112554 		size_t size;
112555 		uint8_t buf[1024];
112556 	} temp;
112557 	struct xz_dec_lzma2 *lzma2;
112558 	struct xz_dec_bcj *bcj;
112559 	bool bcj_active;
112560 };
112561 
112562 enum lzma_state {
112563 	STATE_LIT_LIT = 0,
112564 	STATE_MATCH_LIT_LIT = 1,
112565 	STATE_REP_LIT_LIT = 2,
112566 	STATE_SHORTREP_LIT_LIT = 3,
112567 	STATE_MATCH_LIT = 4,
112568 	STATE_REP_LIT = 5,
112569 	STATE_SHORTREP_LIT = 6,
112570 	STATE_LIT_MATCH = 7,
112571 	STATE_LIT_LONGREP = 8,
112572 	STATE_LIT_SHORTREP = 9,
112573 	STATE_NONLIT_MATCH = 10,
112574 	STATE_NONLIT_REP = 11,
112575 };
112576 
112577 struct dictionary {
112578 	uint8_t *buf;
112579 	size_t start;
112580 	size_t pos;
112581 	size_t full;
112582 	size_t limit;
112583 	size_t end;
112584 	uint32_t size;
112585 	uint32_t size_max;
112586 	uint32_t allocated;
112587 	enum xz_mode mode;
112588 };
112589 
112590 struct rc_dec {
112591 	uint32_t range;
112592 	uint32_t code;
112593 	uint32_t init_bytes_left;
112594 	const uint8_t *in;
112595 	size_t in_pos;
112596 	size_t in_limit;
112597 };
112598 
112599 struct lzma_len_dec {
112600 	uint16_t choice;
112601 	uint16_t choice2;
112602 	uint16_t low[128];
112603 	uint16_t mid[128];
112604 	uint16_t high[256];
112605 };
112606 
112607 struct lzma_dec {
112608 	uint32_t rep0;
112609 	uint32_t rep1;
112610 	uint32_t rep2;
112611 	uint32_t rep3;
112612 	enum lzma_state state;
112613 	uint32_t len;
112614 	uint32_t lc;
112615 	uint32_t literal_pos_mask;
112616 	uint32_t pos_mask;
112617 	uint16_t is_match[192];
112618 	uint16_t is_rep[12];
112619 	uint16_t is_rep0[12];
112620 	uint16_t is_rep1[12];
112621 	uint16_t is_rep2[12];
112622 	uint16_t is_rep0_long[192];
112623 	uint16_t dist_slot[256];
112624 	uint16_t dist_special[114];
112625 	uint16_t dist_align[16];
112626 	struct lzma_len_dec match_len_dec;
112627 	struct lzma_len_dec rep_len_dec;
112628 	uint16_t literal[12288];
112629 };
112630 
112631 enum lzma2_seq {
112632 	SEQ_CONTROL = 0,
112633 	SEQ_UNCOMPRESSED_1 = 1,
112634 	SEQ_UNCOMPRESSED_2 = 2,
112635 	SEQ_COMPRESSED_0 = 3,
112636 	SEQ_COMPRESSED_1 = 4,
112637 	SEQ_PROPERTIES = 5,
112638 	SEQ_LZMA_PREPARE = 6,
112639 	SEQ_LZMA_RUN = 7,
112640 	SEQ_COPY = 8,
112641 };
112642 
112643 struct lzma2_dec {
112644 	enum lzma2_seq sequence;
112645 	enum lzma2_seq next_sequence;
112646 	uint32_t uncompressed;
112647 	uint32_t compressed;
112648 	bool need_dict_reset;
112649 	bool need_props;
112650 	bool pedantic_microlzma;
112651 };
112652 
112653 struct xz_dec_lzma2 {
112654 	struct rc_dec rc;
112655 	struct dictionary dict;
112656 	struct lzma2_dec lzma2;
112657 	struct lzma_dec lzma;
112658 	struct {
112659 		uint32_t size;
112660 		uint8_t buf[63];
112661 	} temp;
112662 };
112663 
112664 struct xz_dec_microlzma {
112665 	struct xz_dec_lzma2 s;
112666 };
112667 
112668 struct xz_dec_bcj {
112669 	enum {
112670 		BCJ_X86 = 4,
112671 		BCJ_POWERPC = 5,
112672 		BCJ_IA64 = 6,
112673 		BCJ_ARM = 7,
112674 		BCJ_ARMTHUMB = 8,
112675 		BCJ_SPARC = 9,
112676 	} type;
112677 	enum xz_ret ret;
112678 	bool single_call;
112679 	uint32_t pos;
112680 	uint32_t x86_prev_mask;
112681 	uint8_t *out;
112682 	size_t out_pos;
112683 	size_t out_size;
112684 	struct {
112685 		size_t filtered;
112686 		size_t size;
112687 		uint8_t buf[16];
112688 	} temp;
112689 };
112690 
112691 struct ts_linear_state {
112692 	unsigned int len;
112693 	const void *data;
112694 };
112695 
112696 struct ddebug_class_param {
112697 	union {
112698 		long unsigned int *bits;
112699 		unsigned int *lvl;
112700 	};
112701 	char flags[8];
112702 	const struct ddebug_class_map *map;
112703 };
112704 
112705 struct ddebug_table {
112706 	struct list_head link;
112707 	struct list_head maps;
112708 	const char *mod_name;
112709 	unsigned int num_ddebugs;
112710 	struct _ddebug *ddebugs;
112711 };
112712 
112713 struct ddebug_query {
112714 	const char *filename;
112715 	const char *module;
112716 	const char *function;
112717 	const char *format;
112718 	const char *class_string;
112719 	unsigned int first_lineno;
112720 	unsigned int last_lineno;
112721 };
112722 
112723 struct ddebug_iter {
112724 	struct ddebug_table *table;
112725 	int idx;
112726 };
112727 
112728 struct flag_settings {
112729 	unsigned int flags;
112730 	unsigned int mask;
112731 };
112732 
112733 struct flagsbuf {
112734 	char buf[7];
112735 };
112736 
112737 typedef long int mpi_limb_signed_t;
112738 
112739 union handle_parts {
112740 	depot_stack_handle_t handle;
112741 	struct {
112742 		u32 slabindex: 14;
112743 		u32 offset: 12;
112744 		u32 valid: 1;
112745 		u32 extra: 5;
112746 	};
112747 };
112748 
112749 struct stack_record {
112750 	struct stack_record *next;
112751 	u32 hash;
112752 	u32 size;
112753 	union handle_parts handle;
112754 	long unsigned int entries[0];
112755 };
112756 
112757 struct liointc_priv;
112758 
112759 struct liointc_handler_data {
112760 	struct liointc_priv *priv;
112761 	u32 parent_int_map;
112762 };
112763 
112764 struct liointc_priv {
112765 	struct irq_chip_generic *gc;
112766 	struct liointc_handler_data handler[4];
112767 	void *core_isr[4];
112768 	u8 map_cache[32];
112769 	u32 int_pol;
112770 	u32 int_edge;
112771 	bool has_lpc_irq_errata;
112772 };
112773 
112774 struct pch_msi_data {
112775 	struct mutex msi_map_lock;
112776 	phys_addr_t doorbell;
112777 	u32 irq_first;
112778 	u32 num_irqs;
112779 	long unsigned int *msi_map;
112780 };
112781 
112782 struct devres;
112783 
112784 struct gpiochip_info {
112785 	char name[32];
112786 	char label[32];
112787 	__u32 lines;
112788 };
112789 
112790 enum gpio_v2_line_flag {
112791 	GPIO_V2_LINE_FLAG_USED = 1,
112792 	GPIO_V2_LINE_FLAG_ACTIVE_LOW = 2,
112793 	GPIO_V2_LINE_FLAG_INPUT = 4,
112794 	GPIO_V2_LINE_FLAG_OUTPUT = 8,
112795 	GPIO_V2_LINE_FLAG_EDGE_RISING = 16,
112796 	GPIO_V2_LINE_FLAG_EDGE_FALLING = 32,
112797 	GPIO_V2_LINE_FLAG_OPEN_DRAIN = 64,
112798 	GPIO_V2_LINE_FLAG_OPEN_SOURCE = 128,
112799 	GPIO_V2_LINE_FLAG_BIAS_PULL_UP = 256,
112800 	GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN = 512,
112801 	GPIO_V2_LINE_FLAG_BIAS_DISABLED = 1024,
112802 	GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME = 2048,
112803 	GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE = 4096,
112804 };
112805 
112806 struct gpio_v2_line_values {
112807 	__u64 bits;
112808 	__u64 mask;
112809 };
112810 
112811 enum gpio_v2_line_attr_id {
112812 	GPIO_V2_LINE_ATTR_ID_FLAGS = 1,
112813 	GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES = 2,
112814 	GPIO_V2_LINE_ATTR_ID_DEBOUNCE = 3,
112815 };
112816 
112817 struct gpio_v2_line_attribute {
112818 	__u32 id;
112819 	__u32 padding;
112820 	union {
112821 		__u64 flags;
112822 		__u64 values;
112823 		__u32 debounce_period_us;
112824 	};
112825 };
112826 
112827 struct gpio_v2_line_config_attribute {
112828 	struct gpio_v2_line_attribute attr;
112829 	__u64 mask;
112830 };
112831 
112832 struct gpio_v2_line_config {
112833 	__u64 flags;
112834 	__u32 num_attrs;
112835 	__u32 padding[5];
112836 	struct gpio_v2_line_config_attribute attrs[10];
112837 };
112838 
112839 struct gpio_v2_line_request {
112840 	__u32 offsets[64];
112841 	char consumer[32];
112842 	struct gpio_v2_line_config config;
112843 	__u32 num_lines;
112844 	__u32 event_buffer_size;
112845 	__u32 padding[5];
112846 	__s32 fd;
112847 };
112848 
112849 struct gpio_v2_line_info {
112850 	char name[32];
112851 	char consumer[32];
112852 	__u32 offset;
112853 	__u32 num_attrs;
112854 	__u64 flags;
112855 	struct gpio_v2_line_attribute attrs[10];
112856 	__u32 padding[4];
112857 };
112858 
112859 enum gpio_v2_line_changed_type {
112860 	GPIO_V2_LINE_CHANGED_REQUESTED = 1,
112861 	GPIO_V2_LINE_CHANGED_RELEASED = 2,
112862 	GPIO_V2_LINE_CHANGED_CONFIG = 3,
112863 };
112864 
112865 struct gpio_v2_line_info_changed {
112866 	struct gpio_v2_line_info info;
112867 	__u64 timestamp_ns;
112868 	__u32 event_type;
112869 	__u32 padding[5];
112870 };
112871 
112872 enum gpio_v2_line_event_id {
112873 	GPIO_V2_LINE_EVENT_RISING_EDGE = 1,
112874 	GPIO_V2_LINE_EVENT_FALLING_EDGE = 2,
112875 };
112876 
112877 struct gpio_v2_line_event {
112878 	__u64 timestamp_ns;
112879 	__u32 id;
112880 	__u32 offset;
112881 	__u32 seqno;
112882 	__u32 line_seqno;
112883 	__u32 padding[6];
112884 };
112885 
112886 struct gpioline_info {
112887 	__u32 line_offset;
112888 	__u32 flags;
112889 	char name[32];
112890 	char consumer[32];
112891 };
112892 
112893 struct gpioline_info_changed {
112894 	struct gpioline_info info;
112895 	__u64 timestamp;
112896 	__u32 event_type;
112897 	__u32 padding[5];
112898 };
112899 
112900 struct gpiohandle_request {
112901 	__u32 lineoffsets[64];
112902 	__u32 flags;
112903 	__u8 default_values[64];
112904 	char consumer_label[32];
112905 	__u32 lines;
112906 	int fd;
112907 };
112908 
112909 struct gpiohandle_config {
112910 	__u32 flags;
112911 	__u8 default_values[64];
112912 	__u32 padding[4];
112913 };
112914 
112915 struct gpiohandle_data {
112916 	__u8 values[64];
112917 };
112918 
112919 struct gpioevent_request {
112920 	__u32 lineoffset;
112921 	__u32 handleflags;
112922 	__u32 eventflags;
112923 	char consumer_label[32];
112924 	int fd;
112925 };
112926 
112927 struct gpioevent_data {
112928 	__u64 timestamp;
112929 	__u32 id;
112930 };
112931 
112932 typedef __poll_t (*poll_fn)(struct file *, struct poll_table_struct *);
112933 
112934 typedef long int (*ioctl_fn___2)(struct file *, unsigned int, long unsigned int);
112935 
112936 typedef ssize_t (*read_fn)(struct file *, char *, size_t, loff_t *);
112937 
112938 struct linehandle_state {
112939 	struct gpio_device *gdev;
112940 	const char *label;
112941 	struct gpio_desc *descs[64];
112942 	u32 num_descs;
112943 };
112944 
112945 struct linereq;
112946 
112947 struct line {
112948 	struct gpio_desc *desc;
112949 	struct linereq *req;
112950 	unsigned int irq;
112951 	u64 edflags;
112952 	u64 timestamp_ns;
112953 	u32 req_seqno;
112954 	u32 line_seqno;
112955 	struct delayed_work work;
112956 	unsigned int sw_debounced;
112957 	unsigned int level;
112958 };
112959 
112960 struct linereq {
112961 	struct gpio_device *gdev;
112962 	const char *label;
112963 	u32 num_lines;
112964 	wait_queue_head_t wait;
112965 	u32 event_buffer_size;
112966 	struct {
112967 		union {
112968 			struct __kfifo kfifo;
112969 			struct gpio_v2_line_event *type;
112970 			const struct gpio_v2_line_event *const_type;
112971 			char (*rectype)[0];
112972 			struct gpio_v2_line_event *ptr;
112973 			const struct gpio_v2_line_event *ptr_const;
112974 		};
112975 		struct gpio_v2_line_event buf[0];
112976 	} events;
112977 	atomic_t seqno;
112978 	struct mutex config_mutex;
112979 	struct line lines[0];
112980 };
112981 
112982 struct lineevent_state {
112983 	struct gpio_device *gdev;
112984 	const char *label;
112985 	struct gpio_desc *desc;
112986 	u32 eflags;
112987 	int irq;
112988 	wait_queue_head_t wait;
112989 	struct {
112990 		union {
112991 			struct __kfifo kfifo;
112992 			struct gpioevent_data *type;
112993 			const struct gpioevent_data *const_type;
112994 			char (*rectype)[0];
112995 			struct gpioevent_data *ptr;
112996 			const struct gpioevent_data *ptr_const;
112997 		};
112998 		struct gpioevent_data buf[16];
112999 	} events;
113000 	u64 timestamp;
113001 };
113002 
113003 struct gpio_chardev_data {
113004 	struct gpio_device *gdev;
113005 	wait_queue_head_t wait;
113006 	struct {
113007 		union {
113008 			struct __kfifo kfifo;
113009 			struct gpio_v2_line_info_changed *type;
113010 			const struct gpio_v2_line_info_changed *const_type;
113011 			char (*rectype)[0];
113012 			struct gpio_v2_line_info_changed *ptr;
113013 			const struct gpio_v2_line_info_changed *ptr_const;
113014 		};
113015 		struct gpio_v2_line_info_changed buf[32];
113016 	} events;
113017 	struct notifier_block lineinfo_changed_nb;
113018 	long unsigned int *watched_lines;
113019 	atomic_t watch_abi_version;
113020 };
113021 
113022 struct pci_dynid {
113023 	struct list_head node;
113024 	struct pci_device_id id;
113025 };
113026 
113027 struct drv_dev_and_id {
113028 	struct pci_driver *drv;
113029 	struct pci_dev *dev;
113030 	const struct pci_device_id *id;
113031 };
113032 
113033 struct walk_rcec_data {
113034 	struct pci_dev *rcec;
113035 	int (*user_callback)(struct pci_dev *, void *);
113036 	void *user_data;
113037 };
113038 
113039 struct pcie_pme_service_data {
113040 	spinlock_t lock;
113041 	struct pcie_device *srv;
113042 	struct work_struct work;
113043 	bool noirq;
113044 };
113045 
113046 enum {
113047 	NVME_REG_CAP = 0,
113048 	NVME_REG_VS = 8,
113049 	NVME_REG_INTMS = 12,
113050 	NVME_REG_INTMC = 16,
113051 	NVME_REG_CC = 20,
113052 	NVME_REG_CSTS = 28,
113053 	NVME_REG_NSSR = 32,
113054 	NVME_REG_AQA = 36,
113055 	NVME_REG_ASQ = 40,
113056 	NVME_REG_ACQ = 48,
113057 	NVME_REG_CMBLOC = 56,
113058 	NVME_REG_CMBSZ = 60,
113059 	NVME_REG_BPINFO = 64,
113060 	NVME_REG_BPRSEL = 68,
113061 	NVME_REG_BPMBL = 72,
113062 	NVME_REG_CMBMSC = 80,
113063 	NVME_REG_CRTO = 104,
113064 	NVME_REG_PMRCAP = 3584,
113065 	NVME_REG_PMRCTL = 3588,
113066 	NVME_REG_PMRSTS = 3592,
113067 	NVME_REG_PMREBS = 3596,
113068 	NVME_REG_PMRSWTP = 3600,
113069 	NVME_REG_DBS = 4096,
113070 };
113071 
113072 enum {
113073 	NVME_CC_ENABLE = 1,
113074 	NVME_CC_EN_SHIFT = 0,
113075 	NVME_CC_CSS_SHIFT = 4,
113076 	NVME_CC_MPS_SHIFT = 7,
113077 	NVME_CC_AMS_SHIFT = 11,
113078 	NVME_CC_SHN_SHIFT = 14,
113079 	NVME_CC_IOSQES_SHIFT = 16,
113080 	NVME_CC_IOCQES_SHIFT = 20,
113081 	NVME_CC_CSS_NVM = 0,
113082 	NVME_CC_CSS_CSI = 96,
113083 	NVME_CC_CSS_MASK = 112,
113084 	NVME_CC_AMS_RR = 0,
113085 	NVME_CC_AMS_WRRU = 2048,
113086 	NVME_CC_AMS_VS = 14336,
113087 	NVME_CC_SHN_NONE = 0,
113088 	NVME_CC_SHN_NORMAL = 16384,
113089 	NVME_CC_SHN_ABRUPT = 32768,
113090 	NVME_CC_SHN_MASK = 49152,
113091 	NVME_CC_IOSQES = 393216,
113092 	NVME_CC_IOCQES = 4194304,
113093 	NVME_CC_CRIME = 16777216,
113094 };
113095 
113096 enum {
113097 	NVME_CSTS_RDY = 1,
113098 	NVME_CSTS_CFS = 2,
113099 	NVME_CSTS_NSSRO = 16,
113100 	NVME_CSTS_PP = 32,
113101 	NVME_CSTS_SHST_NORMAL = 0,
113102 	NVME_CSTS_SHST_OCCUR = 4,
113103 	NVME_CSTS_SHST_CMPLT = 8,
113104 	NVME_CSTS_SHST_MASK = 12,
113105 };
113106 
113107 enum {
113108 	NVME_AEN_BIT_NS_ATTR = 8,
113109 	NVME_AEN_BIT_FW_ACT = 9,
113110 	NVME_AEN_BIT_ANA_CHANGE = 11,
113111 	NVME_AEN_BIT_DISC_CHANGE = 31,
113112 };
113113 
113114 enum {
113115 	SWITCHTEC_GAS_MRPC_OFFSET = 0,
113116 	SWITCHTEC_GAS_TOP_CFG_OFFSET = 4096,
113117 	SWITCHTEC_GAS_SW_EVENT_OFFSET = 6144,
113118 	SWITCHTEC_GAS_SYS_INFO_OFFSET = 8192,
113119 	SWITCHTEC_GAS_FLASH_INFO_OFFSET = 8704,
113120 	SWITCHTEC_GAS_PART_CFG_OFFSET = 16384,
113121 	SWITCHTEC_GAS_NTB_OFFSET = 65536,
113122 	SWITCHTEC_GAS_PFF_CSR_OFFSET = 1261568,
113123 };
113124 
113125 enum {
113126 	SWITCHTEC_NTB_REG_INFO_OFFSET = 0,
113127 	SWITCHTEC_NTB_REG_CTRL_OFFSET = 16384,
113128 	SWITCHTEC_NTB_REG_DBMSG_OFFSET = 409600,
113129 };
113130 
113131 struct nt_partition_info {
113132 	u32 xlink_enabled;
113133 	u32 target_part_low;
113134 	u32 target_part_high;
113135 	u32 reserved;
113136 };
113137 
113138 struct ntb_info_regs {
113139 	u8 partition_count;
113140 	u8 partition_id;
113141 	u16 reserved1;
113142 	u64 ep_map;
113143 	u16 requester_id;
113144 	u16 reserved2;
113145 	u32 reserved3[4];
113146 	struct nt_partition_info ntp_info[48];
113147 } __attribute__((packed));
113148 
113149 struct ntb_ctrl_regs {
113150 	u32 partition_status;
113151 	u32 partition_op;
113152 	u32 partition_ctrl;
113153 	u32 bar_setup;
113154 	u32 bar_error;
113155 	u16 lut_table_entries;
113156 	u16 lut_table_offset;
113157 	u32 lut_error;
113158 	u16 req_id_table_size;
113159 	u16 req_id_table_offset;
113160 	u32 req_id_error;
113161 	u32 reserved1[7];
113162 	struct {
113163 		u32 ctl;
113164 		u32 win_size;
113165 		u64 xlate_addr;
113166 	} bar_entry[6];
113167 	struct {
113168 		u32 win_size;
113169 		u32 reserved[3];
113170 	} bar_ext_entry[6];
113171 	u32 reserved2[192];
113172 	u32 req_id_table[512];
113173 	u32 reserved3[256];
113174 	u64 lut_entry[512];
113175 };
113176 
113177 struct pci_dev_reset_methods {
113178 	u16 vendor;
113179 	u16 device;
113180 	int (*reset)(struct pci_dev *, bool);
113181 };
113182 
113183 struct pci_dev_acs_enabled {
113184 	u16 vendor;
113185 	u16 device;
113186 	int (*acs_enabled)(struct pci_dev *, u16);
113187 };
113188 
113189 struct pci_dev_acs_ops {
113190 	u16 vendor;
113191 	u16 device;
113192 	int (*enable_acs)(struct pci_dev *);
113193 	int (*disable_acs_redir)(struct pci_dev *);
113194 };
113195 
113196 struct loongson_pci_data {
113197 	u32 flags;
113198 	struct pci_ops *ops;
113199 };
113200 
113201 struct loongson_pci {
113202 	void *cfg0_base;
113203 	void *cfg1_base;
113204 	struct platform_device *pdev;
113205 	const struct loongson_pci_data *data;
113206 };
113207 
113208 struct dp_sdp_header {
113209 	u8 HB0;
113210 	u8 HB1;
113211 	u8 HB2;
113212 	u8 HB3;
113213 };
113214 
113215 struct dp_sdp {
113216 	struct dp_sdp_header sdp_header;
113217 	u8 db[32];
113218 };
113219 
113220 enum hdmi_infoframe_type {
113221 	HDMI_INFOFRAME_TYPE_VENDOR = 129,
113222 	HDMI_INFOFRAME_TYPE_AVI = 130,
113223 	HDMI_INFOFRAME_TYPE_SPD = 131,
113224 	HDMI_INFOFRAME_TYPE_AUDIO = 132,
113225 	HDMI_INFOFRAME_TYPE_DRM = 135,
113226 };
113227 
113228 struct hdmi_any_infoframe {
113229 	enum hdmi_infoframe_type type;
113230 	unsigned char version;
113231 	unsigned char length;
113232 };
113233 
113234 enum hdmi_colorspace {
113235 	HDMI_COLORSPACE_RGB = 0,
113236 	HDMI_COLORSPACE_YUV422 = 1,
113237 	HDMI_COLORSPACE_YUV444 = 2,
113238 	HDMI_COLORSPACE_YUV420 = 3,
113239 	HDMI_COLORSPACE_RESERVED4 = 4,
113240 	HDMI_COLORSPACE_RESERVED5 = 5,
113241 	HDMI_COLORSPACE_RESERVED6 = 6,
113242 	HDMI_COLORSPACE_IDO_DEFINED = 7,
113243 };
113244 
113245 enum hdmi_scan_mode {
113246 	HDMI_SCAN_MODE_NONE = 0,
113247 	HDMI_SCAN_MODE_OVERSCAN = 1,
113248 	HDMI_SCAN_MODE_UNDERSCAN = 2,
113249 	HDMI_SCAN_MODE_RESERVED = 3,
113250 };
113251 
113252 enum hdmi_colorimetry {
113253 	HDMI_COLORIMETRY_NONE = 0,
113254 	HDMI_COLORIMETRY_ITU_601 = 1,
113255 	HDMI_COLORIMETRY_ITU_709 = 2,
113256 	HDMI_COLORIMETRY_EXTENDED = 3,
113257 };
113258 
113259 enum hdmi_active_aspect {
113260 	HDMI_ACTIVE_ASPECT_16_9_TOP = 2,
113261 	HDMI_ACTIVE_ASPECT_14_9_TOP = 3,
113262 	HDMI_ACTIVE_ASPECT_16_9_CENTER = 4,
113263 	HDMI_ACTIVE_ASPECT_PICTURE = 8,
113264 	HDMI_ACTIVE_ASPECT_4_3 = 9,
113265 	HDMI_ACTIVE_ASPECT_16_9 = 10,
113266 	HDMI_ACTIVE_ASPECT_14_9 = 11,
113267 	HDMI_ACTIVE_ASPECT_4_3_SP_14_9 = 13,
113268 	HDMI_ACTIVE_ASPECT_16_9_SP_14_9 = 14,
113269 	HDMI_ACTIVE_ASPECT_16_9_SP_4_3 = 15,
113270 };
113271 
113272 enum hdmi_extended_colorimetry {
113273 	HDMI_EXTENDED_COLORIMETRY_XV_YCC_601 = 0,
113274 	HDMI_EXTENDED_COLORIMETRY_XV_YCC_709 = 1,
113275 	HDMI_EXTENDED_COLORIMETRY_S_YCC_601 = 2,
113276 	HDMI_EXTENDED_COLORIMETRY_OPYCC_601 = 3,
113277 	HDMI_EXTENDED_COLORIMETRY_OPRGB = 4,
113278 	HDMI_EXTENDED_COLORIMETRY_BT2020_CONST_LUM = 5,
113279 	HDMI_EXTENDED_COLORIMETRY_BT2020 = 6,
113280 	HDMI_EXTENDED_COLORIMETRY_RESERVED = 7,
113281 };
113282 
113283 enum hdmi_quantization_range {
113284 	HDMI_QUANTIZATION_RANGE_DEFAULT = 0,
113285 	HDMI_QUANTIZATION_RANGE_LIMITED = 1,
113286 	HDMI_QUANTIZATION_RANGE_FULL = 2,
113287 	HDMI_QUANTIZATION_RANGE_RESERVED = 3,
113288 };
113289 
113290 enum hdmi_nups {
113291 	HDMI_NUPS_UNKNOWN = 0,
113292 	HDMI_NUPS_HORIZONTAL = 1,
113293 	HDMI_NUPS_VERTICAL = 2,
113294 	HDMI_NUPS_BOTH = 3,
113295 };
113296 
113297 enum hdmi_ycc_quantization_range {
113298 	HDMI_YCC_QUANTIZATION_RANGE_LIMITED = 0,
113299 	HDMI_YCC_QUANTIZATION_RANGE_FULL = 1,
113300 };
113301 
113302 enum hdmi_content_type {
113303 	HDMI_CONTENT_TYPE_GRAPHICS = 0,
113304 	HDMI_CONTENT_TYPE_PHOTO = 1,
113305 	HDMI_CONTENT_TYPE_CINEMA = 2,
113306 	HDMI_CONTENT_TYPE_GAME = 3,
113307 };
113308 
113309 enum hdmi_metadata_type {
113310 	HDMI_STATIC_METADATA_TYPE1 = 0,
113311 };
113312 
113313 enum hdmi_eotf {
113314 	HDMI_EOTF_TRADITIONAL_GAMMA_SDR = 0,
113315 	HDMI_EOTF_TRADITIONAL_GAMMA_HDR = 1,
113316 	HDMI_EOTF_SMPTE_ST2084 = 2,
113317 	HDMI_EOTF_BT_2100_HLG = 3,
113318 };
113319 
113320 struct hdmi_avi_infoframe {
113321 	enum hdmi_infoframe_type type;
113322 	unsigned char version;
113323 	unsigned char length;
113324 	enum hdmi_colorspace colorspace;
113325 	enum hdmi_scan_mode scan_mode;
113326 	enum hdmi_colorimetry colorimetry;
113327 	enum hdmi_picture_aspect picture_aspect;
113328 	enum hdmi_active_aspect active_aspect;
113329 	bool itc;
113330 	enum hdmi_extended_colorimetry extended_colorimetry;
113331 	enum hdmi_quantization_range quantization_range;
113332 	enum hdmi_nups nups;
113333 	unsigned char video_code;
113334 	enum hdmi_ycc_quantization_range ycc_quantization_range;
113335 	enum hdmi_content_type content_type;
113336 	unsigned char pixel_repeat;
113337 	short unsigned int top_bar;
113338 	short unsigned int bottom_bar;
113339 	short unsigned int left_bar;
113340 	short unsigned int right_bar;
113341 };
113342 
113343 struct hdmi_drm_infoframe {
113344 	enum hdmi_infoframe_type type;
113345 	unsigned char version;
113346 	unsigned char length;
113347 	enum hdmi_eotf eotf;
113348 	enum hdmi_metadata_type metadata_type;
113349 	struct {
113350 		u16 x;
113351 		u16 y;
113352 	} display_primaries[3];
113353 	struct {
113354 		u16 x;
113355 		u16 y;
113356 	} white_point;
113357 	u16 max_display_mastering_luminance;
113358 	u16 min_display_mastering_luminance;
113359 	u16 max_cll;
113360 	u16 max_fall;
113361 };
113362 
113363 enum hdmi_spd_sdi {
113364 	HDMI_SPD_SDI_UNKNOWN = 0,
113365 	HDMI_SPD_SDI_DSTB = 1,
113366 	HDMI_SPD_SDI_DVDP = 2,
113367 	HDMI_SPD_SDI_DVHS = 3,
113368 	HDMI_SPD_SDI_HDDVR = 4,
113369 	HDMI_SPD_SDI_DVC = 5,
113370 	HDMI_SPD_SDI_DSC = 6,
113371 	HDMI_SPD_SDI_VCD = 7,
113372 	HDMI_SPD_SDI_GAME = 8,
113373 	HDMI_SPD_SDI_PC = 9,
113374 	HDMI_SPD_SDI_BD = 10,
113375 	HDMI_SPD_SDI_SACD = 11,
113376 	HDMI_SPD_SDI_HDDVD = 12,
113377 	HDMI_SPD_SDI_PMP = 13,
113378 };
113379 
113380 struct hdmi_spd_infoframe {
113381 	enum hdmi_infoframe_type type;
113382 	unsigned char version;
113383 	unsigned char length;
113384 	char vendor[8];
113385 	char product[16];
113386 	enum hdmi_spd_sdi sdi;
113387 };
113388 
113389 enum hdmi_audio_coding_type {
113390 	HDMI_AUDIO_CODING_TYPE_STREAM = 0,
113391 	HDMI_AUDIO_CODING_TYPE_PCM = 1,
113392 	HDMI_AUDIO_CODING_TYPE_AC3 = 2,
113393 	HDMI_AUDIO_CODING_TYPE_MPEG1 = 3,
113394 	HDMI_AUDIO_CODING_TYPE_MP3 = 4,
113395 	HDMI_AUDIO_CODING_TYPE_MPEG2 = 5,
113396 	HDMI_AUDIO_CODING_TYPE_AAC_LC = 6,
113397 	HDMI_AUDIO_CODING_TYPE_DTS = 7,
113398 	HDMI_AUDIO_CODING_TYPE_ATRAC = 8,
113399 	HDMI_AUDIO_CODING_TYPE_DSD = 9,
113400 	HDMI_AUDIO_CODING_TYPE_EAC3 = 10,
113401 	HDMI_AUDIO_CODING_TYPE_DTS_HD = 11,
113402 	HDMI_AUDIO_CODING_TYPE_MLP = 12,
113403 	HDMI_AUDIO_CODING_TYPE_DST = 13,
113404 	HDMI_AUDIO_CODING_TYPE_WMA_PRO = 14,
113405 	HDMI_AUDIO_CODING_TYPE_CXT = 15,
113406 };
113407 
113408 enum hdmi_audio_sample_size {
113409 	HDMI_AUDIO_SAMPLE_SIZE_STREAM = 0,
113410 	HDMI_AUDIO_SAMPLE_SIZE_16 = 1,
113411 	HDMI_AUDIO_SAMPLE_SIZE_20 = 2,
113412 	HDMI_AUDIO_SAMPLE_SIZE_24 = 3,
113413 };
113414 
113415 enum hdmi_audio_sample_frequency {
113416 	HDMI_AUDIO_SAMPLE_FREQUENCY_STREAM = 0,
113417 	HDMI_AUDIO_SAMPLE_FREQUENCY_32000 = 1,
113418 	HDMI_AUDIO_SAMPLE_FREQUENCY_44100 = 2,
113419 	HDMI_AUDIO_SAMPLE_FREQUENCY_48000 = 3,
113420 	HDMI_AUDIO_SAMPLE_FREQUENCY_88200 = 4,
113421 	HDMI_AUDIO_SAMPLE_FREQUENCY_96000 = 5,
113422 	HDMI_AUDIO_SAMPLE_FREQUENCY_176400 = 6,
113423 	HDMI_AUDIO_SAMPLE_FREQUENCY_192000 = 7,
113424 };
113425 
113426 enum hdmi_audio_coding_type_ext {
113427 	HDMI_AUDIO_CODING_TYPE_EXT_CT = 0,
113428 	HDMI_AUDIO_CODING_TYPE_EXT_HE_AAC = 1,
113429 	HDMI_AUDIO_CODING_TYPE_EXT_HE_AAC_V2 = 2,
113430 	HDMI_AUDIO_CODING_TYPE_EXT_MPEG_SURROUND = 3,
113431 	HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_HE_AAC = 4,
113432 	HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_HE_AAC_V2 = 5,
113433 	HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_AAC_LC = 6,
113434 	HDMI_AUDIO_CODING_TYPE_EXT_DRA = 7,
113435 	HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_HE_AAC_SURROUND = 8,
113436 	HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_AAC_LC_SURROUND = 10,
113437 };
113438 
113439 struct hdmi_audio_infoframe {
113440 	enum hdmi_infoframe_type type;
113441 	unsigned char version;
113442 	unsigned char length;
113443 	unsigned char channels;
113444 	enum hdmi_audio_coding_type coding_type;
113445 	enum hdmi_audio_sample_size sample_size;
113446 	enum hdmi_audio_sample_frequency sample_frequency;
113447 	enum hdmi_audio_coding_type_ext coding_type_ext;
113448 	unsigned char channel_allocation;
113449 	unsigned char level_shift_value;
113450 	bool downmix_inhibit;
113451 };
113452 
113453 enum hdmi_3d_structure {
113454 	HDMI_3D_STRUCTURE_INVALID = -1,
113455 	HDMI_3D_STRUCTURE_FRAME_PACKING = 0,
113456 	HDMI_3D_STRUCTURE_FIELD_ALTERNATIVE = 1,
113457 	HDMI_3D_STRUCTURE_LINE_ALTERNATIVE = 2,
113458 	HDMI_3D_STRUCTURE_SIDE_BY_SIDE_FULL = 3,
113459 	HDMI_3D_STRUCTURE_L_DEPTH = 4,
113460 	HDMI_3D_STRUCTURE_L_DEPTH_GFX_GFX_DEPTH = 5,
113461 	HDMI_3D_STRUCTURE_TOP_AND_BOTTOM = 6,
113462 	HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF = 8,
113463 };
113464 
113465 struct hdmi_vendor_infoframe {
113466 	enum hdmi_infoframe_type type;
113467 	unsigned char version;
113468 	unsigned char length;
113469 	unsigned int oui;
113470 	u8 vic;
113471 	enum hdmi_3d_structure s3d_struct;
113472 	unsigned int s3d_ext_data;
113473 };
113474 
113475 union hdmi_vendor_any_infoframe {
113476 	struct {
113477 		enum hdmi_infoframe_type type;
113478 		unsigned char version;
113479 		unsigned char length;
113480 		unsigned int oui;
113481 	} any;
113482 	struct hdmi_vendor_infoframe hdmi;
113483 };
113484 
113485 union hdmi_infoframe {
113486 	struct hdmi_any_infoframe any;
113487 	struct hdmi_avi_infoframe avi;
113488 	struct hdmi_spd_infoframe spd;
113489 	union hdmi_vendor_any_infoframe vendor;
113490 	struct hdmi_audio_infoframe audio;
113491 	struct hdmi_drm_infoframe drm;
113492 };
113493 
113494 struct lcd_properties {
113495 	int max_contrast;
113496 };
113497 
113498 struct lcd_device;
113499 
113500 struct lcd_ops {
113501 	int (*get_power)(struct lcd_device *);
113502 	int (*set_power)(struct lcd_device *, int);
113503 	int (*get_contrast)(struct lcd_device *);
113504 	int (*set_contrast)(struct lcd_device *, int);
113505 	int (*set_mode)(struct lcd_device *, struct fb_videomode *);
113506 	int (*check_fb)(struct lcd_device *, struct fb_info *);
113507 };
113508 
113509 struct lcd_device {
113510 	struct lcd_properties props;
113511 	struct mutex ops_lock;
113512 	struct lcd_ops *ops;
113513 	struct mutex update_lock;
113514 	struct notifier_block fb_notif;
113515 	struct device dev;
113516 };
113517 
113518 struct ipmi_dmi_info {
113519 	enum si_type si_type;
113520 	unsigned int space;
113521 	long unsigned int addr;
113522 	u8 slave_addr;
113523 	struct ipmi_dmi_info *next;
113524 };
113525 
113526 struct acpi_osi_entry {
113527 	char string[64];
113528 	bool enable;
113529 };
113530 
113531 struct acpi_osi_config {
113532 	u8 default_disabling;
113533 	unsigned int linux_enable: 1;
113534 	unsigned int linux_dmi: 1;
113535 	unsigned int linux_cmdline: 1;
113536 	unsigned int darwin_enable: 1;
113537 	unsigned int darwin_dmi: 1;
113538 	unsigned int darwin_cmdline: 1;
113539 };
113540 
113541 struct acpi_table_stao {
113542 	struct acpi_table_header header;
113543 	u8 ignore_uart;
113544 } __attribute__((packed));
113545 
113546 struct acpi_dep_data {
113547 	struct list_head node;
113548 	acpi_handle supplier;
113549 	acpi_handle consumer;
113550 	bool honor_dep;
113551 };
113552 
113553 struct acpi_scan_clear_dep_work {
113554 	struct work_struct work;
113555 	struct acpi_device *adev;
113556 };
113557 
113558 struct platform_device;
113559 
113560 struct acpi_table_ecdt {
113561 	struct acpi_table_header header;
113562 	struct acpi_generic_address control;
113563 	struct acpi_generic_address data;
113564 	u32 uid;
113565 	u8 gpe;
113566 	u8 id[1];
113567 } __attribute__((packed));
113568 
113569 enum acpi_ec_event_state {
113570 	EC_EVENT_READY = 0,
113571 	EC_EVENT_IN_PROGRESS = 1,
113572 	EC_EVENT_COMPLETE = 2,
113573 };
113574 
113575 struct transaction;
113576 
113577 struct acpi_ec {
113578 	acpi_handle handle;
113579 	acpi_handle address_space_handler_holder;
113580 	int gpe;
113581 	int irq;
113582 	long unsigned int command_addr;
113583 	long unsigned int data_addr;
113584 	bool global_lock;
113585 	long unsigned int flags;
113586 	long unsigned int reference_count;
113587 	struct mutex mutex;
113588 	wait_queue_head_t wait;
113589 	struct list_head list;
113590 	struct transaction *curr;
113591 	spinlock_t lock;
113592 	struct work_struct work;
113593 	long unsigned int timestamp;
113594 	enum acpi_ec_event_state event_state;
113595 	unsigned int events_to_process;
113596 	unsigned int events_in_progress;
113597 	unsigned int queries_in_progress;
113598 	bool busy_polling;
113599 	unsigned int polling_guard;
113600 };
113601 
113602 struct transaction {
113603 	const u8 *wdata;
113604 	u8 *rdata;
113605 	short unsigned int irq_count;
113606 	u8 command;
113607 	u8 wi;
113608 	u8 ri;
113609 	u8 wlen;
113610 	u8 rlen;
113611 	u8 flags;
113612 };
113613 
113614 typedef int (*acpi_ec_query_func)(void *);
113615 
113616 enum ec_command {
113617 	ACPI_EC_COMMAND_READ = 128,
113618 	ACPI_EC_COMMAND_WRITE = 129,
113619 	ACPI_EC_BURST_ENABLE = 130,
113620 	ACPI_EC_BURST_DISABLE = 131,
113621 	ACPI_EC_COMMAND_QUERY = 132,
113622 };
113623 
113624 enum {
113625 	EC_FLAGS_QUERY_ENABLED = 0,
113626 	EC_FLAGS_EVENT_HANDLER_INSTALLED = 1,
113627 	EC_FLAGS_EC_HANDLER_INSTALLED = 2,
113628 	EC_FLAGS_EC_REG_CALLED = 3,
113629 	EC_FLAGS_QUERY_METHODS_INSTALLED = 4,
113630 	EC_FLAGS_STARTED = 5,
113631 	EC_FLAGS_STOPPED = 6,
113632 	EC_FLAGS_EVENTS_MASKED = 7,
113633 };
113634 
113635 struct acpi_ec_query_handler {
113636 	struct list_head node;
113637 	acpi_ec_query_func func;
113638 	acpi_handle handle;
113639 	void *data;
113640 	u8 query_bit;
113641 	struct kref kref;
113642 };
113643 
113644 struct acpi_ec_query {
113645 	struct transaction transaction;
113646 	struct work_struct work;
113647 	struct acpi_ec_query_handler *handler;
113648 	struct acpi_ec *ec;
113649 };
113650 
113651 struct acpi_ged_device {
113652 	struct device *dev;
113653 	struct list_head event_list;
113654 };
113655 
113656 struct acpi_ged_event {
113657 	struct list_head node;
113658 	struct device *dev;
113659 	unsigned int gsi;
113660 	unsigned int irq;
113661 	acpi_handle handle;
113662 };
113663 
113664 struct acpi_signal_fatal_info {
113665 	u32 type;
113666 	u32 code;
113667 	u32 argument;
113668 };
113669 
113670 typedef enum {
113671 	ACPI_TRACE_AML_METHOD = 0,
113672 	ACPI_TRACE_AML_OPCODE = 1,
113673 	ACPI_TRACE_AML_REGION = 2,
113674 } acpi_trace_event_type;
113675 
113676 struct acpi_gpe_block_status_context {
113677 	struct acpi_gpe_register_info *gpe_skip_register_info;
113678 	u8 gpe_skip_mask;
113679 	u8 retval;
113680 };
113681 
113682 typedef acpi_status (*acpi_object_converter)(struct acpi_namespace_node *, union acpi_operand_object *, union acpi_operand_object **);
113683 
113684 struct acpi_simple_repair_info {
113685 	char name[4];
113686 	u32 unexpected_btypes;
113687 	u32 package_index;
113688 	acpi_object_converter object_converter;
113689 };
113690 
113691 struct acpi_pci_slot {
113692 	struct pci_slot *pci_slot;
113693 	struct list_head list;
113694 };
113695 
113696 struct acpi_thermal_state {
113697 	u8 critical: 1;
113698 	u8 hot: 1;
113699 	u8 passive: 1;
113700 	u8 active: 1;
113701 	u8 reserved: 4;
113702 	int active_index;
113703 };
113704 
113705 struct acpi_thermal_state_flags {
113706 	u8 valid: 1;
113707 	u8 enabled: 1;
113708 	u8 reserved: 6;
113709 };
113710 
113711 struct acpi_thermal_critical {
113712 	struct acpi_thermal_state_flags flags;
113713 	long unsigned int temperature;
113714 };
113715 
113716 struct acpi_thermal_hot {
113717 	struct acpi_thermal_state_flags flags;
113718 	long unsigned int temperature;
113719 };
113720 
113721 struct acpi_thermal_passive {
113722 	struct acpi_thermal_state_flags flags;
113723 	long unsigned int temperature;
113724 	long unsigned int tc1;
113725 	long unsigned int tc2;
113726 	long unsigned int tsp;
113727 	struct acpi_handle_list devices;
113728 };
113729 
113730 struct acpi_thermal_active {
113731 	struct acpi_thermal_state_flags flags;
113732 	long unsigned int temperature;
113733 	struct acpi_handle_list devices;
113734 };
113735 
113736 struct acpi_thermal_trips {
113737 	struct acpi_thermal_critical critical;
113738 	struct acpi_thermal_hot hot;
113739 	struct acpi_thermal_passive passive;
113740 	struct acpi_thermal_active active[10];
113741 };
113742 
113743 struct acpi_thermal_flags {
113744 	u8 cooling_mode: 1;
113745 	u8 devices: 1;
113746 	u8 reserved: 6;
113747 };
113748 
113749 struct acpi_thermal {
113750 	struct acpi_device *device;
113751 	acpi_bus_id name;
113752 	long unsigned int temperature;
113753 	long unsigned int last_temperature;
113754 	long unsigned int polling_frequency;
113755 	volatile u8 zombie;
113756 	struct acpi_thermal_flags flags;
113757 	struct acpi_thermal_state state;
113758 	struct acpi_thermal_trips trips;
113759 	struct acpi_handle_list devices;
113760 	struct thermal_zone_device *thermal_zone;
113761 	int kelvin_offset;
113762 	struct work_struct thermal_check_work;
113763 	struct mutex thermal_check_lock;
113764 	refcount_t thermal_check_count;
113765 };
113766 
113767 struct acpi_battery_hook {
113768 	const char *name;
113769 	int (*add_battery)(struct power_supply *, struct acpi_battery_hook *);
113770 	int (*remove_battery)(struct power_supply *, struct acpi_battery_hook *);
113771 	struct list_head list;
113772 };
113773 
113774 enum {
113775 	ACPI_BATTERY_ALARM_PRESENT = 0,
113776 	ACPI_BATTERY_XINFO_PRESENT = 1,
113777 	ACPI_BATTERY_QUIRK_PERCENTAGE_CAPACITY = 2,
113778 	ACPI_BATTERY_QUIRK_THINKPAD_MAH = 3,
113779 	ACPI_BATTERY_QUIRK_DEGRADED_FULL_CHARGE = 4,
113780 };
113781 
113782 struct acpi_battery {
113783 	struct mutex lock;
113784 	struct mutex sysfs_lock;
113785 	struct power_supply *bat;
113786 	struct power_supply_desc bat_desc;
113787 	struct acpi_device *device;
113788 	struct notifier_block pm_nb;
113789 	struct list_head list;
113790 	long unsigned int update_time;
113791 	int revision;
113792 	int rate_now;
113793 	int capacity_now;
113794 	int voltage_now;
113795 	int design_capacity;
113796 	int full_charge_capacity;
113797 	int technology;
113798 	int design_voltage;
113799 	int design_capacity_warning;
113800 	int design_capacity_low;
113801 	int cycle_count;
113802 	int measurement_accuracy;
113803 	int max_sampling_time;
113804 	int min_sampling_time;
113805 	int max_averaging_interval;
113806 	int min_averaging_interval;
113807 	int capacity_granularity_1;
113808 	int capacity_granularity_2;
113809 	int alarm;
113810 	char model_number[32];
113811 	char serial_number[32];
113812 	char type[32];
113813 	char oem_info[32];
113814 	int state;
113815 	int power_unit;
113816 	long unsigned int flags;
113817 };
113818 
113819 struct acpi_offsets {
113820 	size_t offset;
113821 	u8 mode;
113822 };
113823 
113824 struct clk_fixed_factor {
113825 	struct clk_hw hw;
113826 	unsigned int mult;
113827 	unsigned int div;
113828 };
113829 
113830 struct clk_multiplier {
113831 	struct clk_hw hw;
113832 	void *reg;
113833 	u8 shift;
113834 	u8 width;
113835 	u8 flags;
113836 	spinlock_t *lock;
113837 };
113838 
113839 struct clk_composite {
113840 	struct clk_hw hw;
113841 	struct clk_ops ops;
113842 	struct clk_hw *mux_hw;
113843 	struct clk_hw *rate_hw;
113844 	struct clk_hw *gate_hw;
113845 	const struct clk_ops *mux_ops;
113846 	const struct clk_ops *rate_ops;
113847 	const struct clk_ops *gate_ops;
113848 };
113849 
113850 struct dma_chan_tbl_ent {
113851 	struct dma_chan *chan;
113852 };
113853 
113854 struct dmaengine_unmap_pool {
113855 	struct kmem_cache *cache;
113856 	const char *name;
113857 	mempool_t *pool;
113858 	size_t size;
113859 };
113860 
113861 struct pre_voltage_change_data {
113862 	long unsigned int old_uV;
113863 	long unsigned int min_uV;
113864 	long unsigned int max_uV;
113865 };
113866 
113867 struct regulator_coupler {
113868 	struct list_head list;
113869 	int (*attach_regulator)(struct regulator_coupler *, struct regulator_dev *);
113870 	int (*detach_regulator)(struct regulator_coupler *, struct regulator_dev *);
113871 	int (*balance_voltage)(struct regulator_coupler *, struct regulator_dev *, suspend_state_t);
113872 };
113873 
113874 enum regulator_status {
113875 	REGULATOR_STATUS_OFF = 0,
113876 	REGULATOR_STATUS_ON = 1,
113877 	REGULATOR_STATUS_ERROR = 2,
113878 	REGULATOR_STATUS_FAST = 3,
113879 	REGULATOR_STATUS_NORMAL = 4,
113880 	REGULATOR_STATUS_IDLE = 5,
113881 	REGULATOR_STATUS_STANDBY = 6,
113882 	REGULATOR_STATUS_BYPASS = 7,
113883 	REGULATOR_STATUS_UNDEFINED = 8,
113884 };
113885 
113886 enum regulator_detection_severity {
113887 	REGULATOR_SEVERITY_PROT = 0,
113888 	REGULATOR_SEVERITY_ERR = 1,
113889 	REGULATOR_SEVERITY_WARN = 2,
113890 };
113891 
113892 struct regulator_enable_gpio {
113893 	struct list_head list;
113894 	struct gpio_desc *gpiod;
113895 	u32 enable_count;
113896 	u32 request_count;
113897 };
113898 
113899 struct trace_event_raw_regulator_basic {
113900 	struct trace_entry ent;
113901 	u32 __data_loc_name;
113902 	char __data[0];
113903 };
113904 
113905 struct trace_event_raw_regulator_range {
113906 	struct trace_entry ent;
113907 	u32 __data_loc_name;
113908 	int min;
113909 	int max;
113910 	char __data[0];
113911 };
113912 
113913 struct trace_event_raw_regulator_value {
113914 	struct trace_entry ent;
113915 	u32 __data_loc_name;
113916 	unsigned int val;
113917 	char __data[0];
113918 };
113919 
113920 struct trace_event_data_offsets_regulator_basic {
113921 	u32 name;
113922 };
113923 
113924 struct trace_event_data_offsets_regulator_range {
113925 	u32 name;
113926 };
113927 
113928 struct trace_event_data_offsets_regulator_value {
113929 	u32 name;
113930 };
113931 
113932 typedef void (*btf_trace_regulator_enable)(void *, const char *);
113933 
113934 typedef void (*btf_trace_regulator_enable_delay)(void *, const char *);
113935 
113936 typedef void (*btf_trace_regulator_enable_complete)(void *, const char *);
113937 
113938 typedef void (*btf_trace_regulator_disable)(void *, const char *);
113939 
113940 typedef void (*btf_trace_regulator_disable_complete)(void *, const char *);
113941 
113942 typedef void (*btf_trace_regulator_bypass_enable)(void *, const char *);
113943 
113944 typedef void (*btf_trace_regulator_bypass_enable_complete)(void *, const char *);
113945 
113946 typedef void (*btf_trace_regulator_bypass_disable)(void *, const char *);
113947 
113948 typedef void (*btf_trace_regulator_bypass_disable_complete)(void *, const char *);
113949 
113950 typedef void (*btf_trace_regulator_set_voltage)(void *, const char *, int, int);
113951 
113952 typedef void (*btf_trace_regulator_set_voltage_complete)(void *, const char *, unsigned int);
113953 
113954 struct regulator_map {
113955 	struct list_head list;
113956 	const char *dev_name;
113957 	const char *supply;
113958 	struct regulator_dev *regulator;
113959 };
113960 
113961 struct regulator_supply_alias {
113962 	struct list_head list;
113963 	struct device *src_dev;
113964 	const char *src_supply;
113965 	struct device *alias_dev;
113966 	const char *alias_supply;
113967 };
113968 
113969 struct summary_data {
113970 	struct seq_file *s;
113971 	struct regulator_dev *parent;
113972 	int level;
113973 };
113974 
113975 struct summary_lock_data {
113976 	struct ww_acquire_ctx *ww_ctx;
113977 	struct regulator_dev **new_contended_rdev;
113978 	struct regulator_dev **old_contended_rdev;
113979 };
113980 
113981 struct reset_control;
113982 
113983 struct reset_control_bulk_data {
113984 	const char *id;
113985 	struct reset_control *rstc;
113986 };
113987 
113988 struct reset_controller_dev;
113989 
113990 struct reset_control {
113991 	struct reset_controller_dev *rcdev;
113992 	struct list_head list;
113993 	unsigned int id;
113994 	struct kref refcnt;
113995 	bool acquired;
113996 	bool shared;
113997 	bool array;
113998 	atomic_t deassert_count;
113999 	atomic_t triggered_count;
114000 };
114001 
114002 struct reset_control_ops {
114003 	int (*reset)(struct reset_controller_dev *, long unsigned int);
114004 	int (*assert)(struct reset_controller_dev *, long unsigned int);
114005 	int (*deassert)(struct reset_controller_dev *, long unsigned int);
114006 	int (*status)(struct reset_controller_dev *, long unsigned int);
114007 };
114008 
114009 struct reset_controller_dev {
114010 	const struct reset_control_ops *ops;
114011 	struct module *owner;
114012 	struct list_head list;
114013 	struct list_head reset_control_head;
114014 	struct device *dev;
114015 	struct device_node *of_node;
114016 	int of_reset_n_cells;
114017 	int (*of_xlate)(struct reset_controller_dev *, const struct of_phandle_args *);
114018 	unsigned int nr_resets;
114019 };
114020 
114021 struct reset_control_lookup {
114022 	struct list_head list;
114023 	const char *provider;
114024 	unsigned int index;
114025 	const char *dev_id;
114026 	const char *con_id;
114027 };
114028 
114029 struct reset_control_array {
114030 	struct reset_control base;
114031 	unsigned int num_rstcs;
114032 	struct reset_control *rstc[0];
114033 };
114034 
114035 struct reset_control_bulk_devres {
114036 	int num_rstcs;
114037 	struct reset_control_bulk_data *rstcs;
114038 };
114039 
114040 struct ldsem_waiter {
114041 	struct list_head list;
114042 	struct task_struct *task;
114043 };
114044 
114045 struct pts_fs_info;
114046 
114047 struct vcs_poll_data {
114048 	struct notifier_block notifier;
114049 	unsigned int cons_num;
114050 	int event;
114051 	wait_queue_head_t waitq;
114052 	struct fasync_struct *fasync;
114053 };
114054 
114055 struct kbdiacr {
114056 	unsigned char diacr;
114057 	unsigned char base;
114058 	unsigned char result;
114059 };
114060 
114061 struct kbdiacrs {
114062 	unsigned int kb_cnt;
114063 	struct kbdiacr kbdiacr[256];
114064 };
114065 
114066 struct kbdiacrsuc {
114067 	unsigned int kb_cnt;
114068 	struct kbdiacruc kbdiacruc[256];
114069 };
114070 
114071 struct kbd_struct {
114072 	unsigned char lockstate;
114073 	unsigned char slockstate;
114074 	unsigned char ledmode: 1;
114075 	unsigned char ledflagstate: 4;
114076 	char: 3;
114077 	unsigned char default_ledflagstate: 4;
114078 	unsigned char kbdmode: 3;
114079 	char: 1;
114080 	unsigned char modeflags: 5;
114081 };
114082 
114083 typedef void k_handler_fn(struct vc_data *, unsigned char, char);
114084 
114085 typedef void fn_handler_fn(struct vc_data *);
114086 
114087 struct getset_keycode_data {
114088 	struct input_keymap_entry ke;
114089 	int error;
114090 };
114091 
114092 struct kbd_led_trigger {
114093 	struct led_trigger trigger;
114094 	unsigned int mask;
114095 };
114096 
114097 struct plat_serial8250_port {
114098 	long unsigned int iobase;
114099 	void *membase;
114100 	resource_size_t mapbase;
114101 	unsigned int irq;
114102 	long unsigned int irqflags;
114103 	unsigned int uartclk;
114104 	void *private_data;
114105 	unsigned char regshift;
114106 	unsigned char iotype;
114107 	unsigned char hub6;
114108 	unsigned char has_sysrq;
114109 	upf_t flags;
114110 	unsigned int type;
114111 	unsigned int (*serial_in)(struct uart_port *, int);
114112 	void (*serial_out)(struct uart_port *, int, int);
114113 	void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *);
114114 	void (*set_ldisc)(struct uart_port *, struct ktermios *);
114115 	unsigned int (*get_mctrl)(struct uart_port *);
114116 	int (*handle_irq)(struct uart_port *);
114117 	void (*pm)(struct uart_port *, unsigned int, unsigned int);
114118 	void (*handle_break)(struct uart_port *);
114119 };
114120 
114121 enum {
114122 	PLAT8250_DEV_LEGACY = -1,
114123 	PLAT8250_DEV_PLATFORM = 0,
114124 	PLAT8250_DEV_PLATFORM1 = 1,
114125 	PLAT8250_DEV_PLATFORM2 = 2,
114126 	PLAT8250_DEV_FOURPORT = 3,
114127 	PLAT8250_DEV_ACCENT = 4,
114128 	PLAT8250_DEV_BOCA = 5,
114129 	PLAT8250_DEV_EXAR_ST16C554 = 6,
114130 	PLAT8250_DEV_HUB6 = 7,
114131 	PLAT8250_DEV_AU1X00 = 8,
114132 	PLAT8250_DEV_SM501 = 9,
114133 };
114134 
114135 struct old_serial_port {
114136 	unsigned int uart;
114137 	unsigned int baud_base;
114138 	unsigned int port;
114139 	unsigned int irq;
114140 	upf_t flags;
114141 	unsigned char io_type;
114142 	unsigned char *iomem_base;
114143 	short unsigned int iomem_reg_shift;
114144 };
114145 
114146 struct irq_info {
114147 	struct hlist_node node;
114148 	int irq;
114149 	spinlock_t lock;
114150 	struct list_head *head;
114151 };
114152 
114153 struct exar8250_platform {
114154 	int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *);
114155 	const struct serial_rs485 *rs485_supported;
114156 	int (*register_gpio)(struct pci_dev *, struct uart_8250_port *);
114157 	void (*unregister_gpio)(struct uart_8250_port *);
114158 };
114159 
114160 struct exar8250;
114161 
114162 struct exar8250_board {
114163 	unsigned int num_ports;
114164 	unsigned int reg_shift;
114165 	int (*setup)(struct exar8250 *, struct pci_dev *, struct uart_8250_port *, int);
114166 	void (*exit)(struct pci_dev *);
114167 };
114168 
114169 struct exar8250 {
114170 	unsigned int nr;
114171 	struct exar8250_board *board;
114172 	void *virt;
114173 	int line[0];
114174 };
114175 
114176 struct of_serial_info {
114177 	struct clk *clk;
114178 	struct reset_control *rst;
114179 	int type;
114180 	int line;
114181 };
114182 
114183 struct hwrng {
114184 	const char *name;
114185 	int (*init)(struct hwrng *);
114186 	void (*cleanup)(struct hwrng *);
114187 	int (*data_present)(struct hwrng *, int);
114188 	int (*data_read)(struct hwrng *, u32 *);
114189 	int (*read)(struct hwrng *, void *, size_t, bool);
114190 	long unsigned int priv;
114191 	short unsigned int quality;
114192 	struct list_head list;
114193 	struct kref ref;
114194 	struct completion cleanup_done;
114195 	struct completion dying;
114196 };
114197 
114198 struct pci_dev;
114199 
114200 struct drm_client_buffer {
114201 	struct drm_client_dev *client;
114202 	u32 handle;
114203 	u32 pitch;
114204 	struct drm_gem_object *gem;
114205 	struct iosys_map map;
114206 	struct drm_framebuffer *fb;
114207 };
114208 
114209 struct drm_mode_crtc {
114210 	__u64 set_connectors_ptr;
114211 	__u32 count_connectors;
114212 	__u32 crtc_id;
114213 	__u32 fb_id;
114214 	__u32 x;
114215 	__u32 y;
114216 	__u32 gamma_size;
114217 	__u32 mode_valid;
114218 	struct drm_mode_modeinfo mode;
114219 };
114220 
114221 struct displayid_tiled_block {
114222 	struct displayid_block base;
114223 	u8 tile_cap;
114224 	u8 topo[3];
114225 	u8 tile_size[4];
114226 	u8 tile_pixel_bezel[5];
114227 	u8 topology_id[8];
114228 };
114229 
114230 struct displayid_detailed_timings_1 {
114231 	u8 pixel_clock[3];
114232 	u8 flags;
114233 	u8 hactive[2];
114234 	u8 hblank[2];
114235 	u8 hsync[2];
114236 	u8 hsw[2];
114237 	u8 vactive[2];
114238 	u8 vblank[2];
114239 	u8 vsync[2];
114240 	u8 vsw[2];
114241 };
114242 
114243 struct displayid_detailed_timing_block {
114244 	struct displayid_block base;
114245 	struct displayid_detailed_timings_1 timings[0];
114246 };
114247 
114248 struct displayid_vesa_vendor_specific_block {
114249 	struct displayid_block base;
114250 	u8 oui[3];
114251 	u8 data_structure_type;
114252 	u8 mso;
114253 };
114254 
114255 struct est_timings {
114256 	u8 t1;
114257 	u8 t2;
114258 	u8 mfg_rsvd;
114259 };
114260 
114261 struct std_timing {
114262 	u8 hsize;
114263 	u8 vfreq_aspect;
114264 };
114265 
114266 struct detailed_pixel_timing {
114267 	u8 hactive_lo;
114268 	u8 hblank_lo;
114269 	u8 hactive_hblank_hi;
114270 	u8 vactive_lo;
114271 	u8 vblank_lo;
114272 	u8 vactive_vblank_hi;
114273 	u8 hsync_offset_lo;
114274 	u8 hsync_pulse_width_lo;
114275 	u8 vsync_offset_pulse_width_lo;
114276 	u8 hsync_vsync_offset_pulse_width_hi;
114277 	u8 width_mm_lo;
114278 	u8 height_mm_lo;
114279 	u8 width_height_mm_hi;
114280 	u8 hborder;
114281 	u8 vborder;
114282 	u8 misc;
114283 };
114284 
114285 struct detailed_data_string {
114286 	u8 str[13];
114287 };
114288 
114289 struct detailed_data_monitor_range {
114290 	u8 min_vfreq;
114291 	u8 max_vfreq;
114292 	u8 min_hfreq_khz;
114293 	u8 max_hfreq_khz;
114294 	u8 pixel_clock_mhz;
114295 	u8 flags;
114296 	union {
114297 		struct {
114298 			u8 reserved;
114299 			u8 hfreq_start_khz;
114300 			u8 c;
114301 			__le16 m;
114302 			u8 k;
114303 			u8 j;
114304 		} __attribute__((packed)) gtf2;
114305 		struct {
114306 			u8 version;
114307 			u8 data1;
114308 			u8 data2;
114309 			u8 supported_aspects;
114310 			u8 flags;
114311 			u8 supported_scalings;
114312 			u8 preferred_refresh;
114313 		} cvt;
114314 	} formula;
114315 } __attribute__((packed));
114316 
114317 struct detailed_data_wpindex {
114318 	u8 white_yx_lo;
114319 	u8 white_x_hi;
114320 	u8 white_y_hi;
114321 	u8 gamma;
114322 };
114323 
114324 struct cvt_timing {
114325 	u8 code[3];
114326 };
114327 
114328 struct detailed_non_pixel {
114329 	u8 pad1;
114330 	u8 type;
114331 	u8 pad2;
114332 	union {
114333 		struct detailed_data_string str;
114334 		struct detailed_data_monitor_range range;
114335 		struct detailed_data_wpindex color;
114336 		struct std_timing timings[6];
114337 		struct cvt_timing cvt[4];
114338 	} data;
114339 } __attribute__((packed));
114340 
114341 struct detailed_timing {
114342 	__le16 pixel_clock;
114343 	union {
114344 		struct detailed_pixel_timing pixel_data;
114345 		struct detailed_non_pixel other_data;
114346 	} data;
114347 };
114348 
114349 struct edid {
114350 	u8 header[8];
114351 	u8 mfg_id[2];
114352 	u8 prod_code[2];
114353 	u32 serial;
114354 	u8 mfg_week;
114355 	u8 mfg_year;
114356 	u8 version;
114357 	u8 revision;
114358 	u8 input;
114359 	u8 width_cm;
114360 	u8 height_cm;
114361 	u8 gamma;
114362 	u8 features;
114363 	u8 red_green_lo;
114364 	u8 blue_white_lo;
114365 	u8 red_x;
114366 	u8 red_y;
114367 	u8 green_x;
114368 	u8 green_y;
114369 	u8 blue_x;
114370 	u8 blue_y;
114371 	u8 white_x;
114372 	u8 white_y;
114373 	struct est_timings established_timings;
114374 	struct std_timing standard_timings[8];
114375 	struct detailed_timing detailed_timings[4];
114376 	u8 extensions;
114377 	u8 checksum;
114378 };
114379 
114380 struct cea_sad {
114381 	u8 format;
114382 	u8 channels;
114383 	u8 freq;
114384 	u8 byte2;
114385 };
114386 
114387 struct detailed_mode_closure {
114388 	struct drm_connector *connector;
114389 	const struct drm_edid *drm_edid;
114390 	bool preferred;
114391 	u32 quirks;
114392 	int modes;
114393 };
114394 
114395 struct edid_quirk {
114396 	u32 panel_id;
114397 	u32 quirks;
114398 };
114399 
114400 struct minimode {
114401 	short int w;
114402 	short int h;
114403 	short int r;
114404 	short int rb;
114405 };
114406 
114407 struct drm_edid_iter {
114408 	const struct drm_edid *drm_edid;
114409 	int index;
114410 };
114411 
114412 enum edid_block_status {
114413 	EDID_BLOCK_OK = 0,
114414 	EDID_BLOCK_READ_FAIL = 1,
114415 	EDID_BLOCK_NULL = 2,
114416 	EDID_BLOCK_ZERO = 3,
114417 	EDID_BLOCK_HEADER_CORRUPT = 4,
114418 	EDID_BLOCK_HEADER_REPAIR = 5,
114419 	EDID_BLOCK_HEADER_FIXED = 6,
114420 	EDID_BLOCK_CHECKSUM = 7,
114421 	EDID_BLOCK_VERSION = 8,
114422 };
114423 
114424 typedef int read_block_fn(void *, u8 *, unsigned int, size_t);
114425 
114426 typedef void detailed_cb(const struct detailed_timing *, void *);
114427 
114428 struct stereo_mandatory_mode {
114429 	int width;
114430 	int height;
114431 	int vrefresh;
114432 	unsigned int flags;
114433 };
114434 
114435 struct cea_db_iter {
114436 	struct drm_edid_iter edid_iter;
114437 	struct displayid_iter displayid_iter;
114438 	const u8 *collection;
114439 	int index;
114440 	int end;
114441 };
114442 
114443 struct cea_db {
114444 	u8 tag_length;
114445 	u8 data[0];
114446 };
114447 
114448 struct drm_mode_create_lease {
114449 	__u64 object_ids;
114450 	__u32 object_count;
114451 	__u32 flags;
114452 	__u32 lessee_id;
114453 	__u32 fd;
114454 };
114455 
114456 struct drm_mode_list_lessees {
114457 	__u32 count_lessees;
114458 	__u32 pad;
114459 	__u64 lessees_ptr;
114460 };
114461 
114462 struct drm_mode_get_lease {
114463 	__u32 count_objects;
114464 	__u32 pad;
114465 	__u64 objects_ptr;
114466 };
114467 
114468 struct drm_mode_revoke_lease {
114469 	__u32 lessee_id;
114470 };
114471 
114472 struct drm_named_mode {
114473 	const char *name;
114474 	unsigned int pixel_clock_khz;
114475 	unsigned int xres;
114476 	unsigned int yres;
114477 	unsigned int flags;
114478 };
114479 
114480 struct drm_mode_property_enum {
114481 	__u64 value;
114482 	char name[32];
114483 };
114484 
114485 struct drm_mode_get_property {
114486 	__u64 values_ptr;
114487 	__u64 enum_blob_ptr;
114488 	__u32 prop_id;
114489 	__u32 flags;
114490 	char name[32];
114491 	__u32 count_values;
114492 	__u32 count_enum_blobs;
114493 };
114494 
114495 struct drm_mode_get_blob {
114496 	__u32 blob_id;
114497 	__u32 length;
114498 	__u64 data;
114499 };
114500 
114501 struct drm_mode_create_blob {
114502 	__u64 data;
114503 	__u32 length;
114504 	__u32 blob_id;
114505 };
114506 
114507 struct drm_mode_destroy_blob {
114508 	__u32 blob_id;
114509 };
114510 
114511 struct drm_property_enum {
114512 	uint64_t value;
114513 	struct list_head head;
114514 	char name[32];
114515 };
114516 
114517 enum drm_vblank_seq_type {
114518 	_DRM_VBLANK_ABSOLUTE = 0,
114519 	_DRM_VBLANK_RELATIVE = 1,
114520 	_DRM_VBLANK_HIGH_CRTC_MASK = 62,
114521 	_DRM_VBLANK_EVENT = 67108864,
114522 	_DRM_VBLANK_FLIP = 134217728,
114523 	_DRM_VBLANK_NEXTONMISS = 268435456,
114524 	_DRM_VBLANK_SECONDARY = 536870912,
114525 	_DRM_VBLANK_SIGNAL = 1073741824,
114526 };
114527 
114528 struct drm_wait_vblank_request {
114529 	enum drm_vblank_seq_type type;
114530 	unsigned int sequence;
114531 	long unsigned int signal;
114532 };
114533 
114534 struct drm_wait_vblank_reply {
114535 	enum drm_vblank_seq_type type;
114536 	unsigned int sequence;
114537 	long int tval_sec;
114538 	long int tval_usec;
114539 };
114540 
114541 union drm_wait_vblank {
114542 	struct drm_wait_vblank_request request;
114543 	struct drm_wait_vblank_reply reply;
114544 };
114545 
114546 struct drm_modeset_ctl {
114547 	__u32 crtc;
114548 	__u32 cmd;
114549 };
114550 
114551 struct drm_crtc_get_sequence {
114552 	__u32 crtc_id;
114553 	__u32 active;
114554 	__u64 sequence;
114555 	__s64 sequence_ns;
114556 };
114557 
114558 struct drm_crtc_queue_sequence {
114559 	__u32 crtc_id;
114560 	__u32 flags;
114561 	__u64 sequence;
114562 	__u64 user_data;
114563 };
114564 
114565 typedef bool (*drm_vblank_get_scanout_position_func)(struct drm_crtc *, bool, int *, int *, ktime_t *, ktime_t *, const struct drm_display_mode *);
114566 
114567 struct drm_dmi_panel_orientation_data {
114568 	int width;
114569 	int height;
114570 	const char * const *bios_dates;
114571 	int orientation;
114572 };
114573 
114574 struct fwnode_link {
114575 	struct fwnode_handle *supplier;
114576 	struct list_head s_hook;
114577 	struct fwnode_handle *consumer;
114578 	struct list_head c_hook;
114579 };
114580 
114581 enum dpm_order {
114582 	DPM_ORDER_NONE = 0,
114583 	DPM_ORDER_DEV_AFTER_PARENT = 1,
114584 	DPM_ORDER_PARENT_BEFORE_DEV = 2,
114585 	DPM_ORDER_DEV_LAST = 3,
114586 };
114587 
114588 struct dev_ext_attribute {
114589 	struct device_attribute attr;
114590 	void *var;
114591 };
114592 
114593 union device_attr_group_devres {
114594 	const struct attribute_group *group;
114595 	const struct attribute_group **groups;
114596 };
114597 
114598 struct class_dir {
114599 	struct kobject kobj;
114600 	struct class *class;
114601 };
114602 
114603 struct root_device {
114604 	struct device dev;
114605 	struct module *owner;
114606 };
114607 
114608 struct probe {
114609 	struct probe *next;
114610 	dev_t dev;
114611 	long unsigned int range;
114612 	struct module *owner;
114613 	kobj_probe_t *get;
114614 	int (*lock)(dev_t, void *);
114615 	void *data;
114616 };
114617 
114618 struct kobj_map {
114619 	struct probe *probes[255];
114620 	struct mutex *lock;
114621 };
114622 
114623 struct software_node_ref_args {
114624 	const struct software_node *node;
114625 	unsigned int nargs;
114626 	u64 args[8];
114627 };
114628 
114629 struct swnode {
114630 	struct kobject kobj;
114631 	struct fwnode_handle fwnode;
114632 	const struct software_node *node;
114633 	int id;
114634 	struct ida child_ids;
114635 	struct list_head entry;
114636 	struct list_head children;
114637 	struct swnode *parent;
114638 	unsigned int allocated: 1;
114639 	unsigned int managed: 1;
114640 };
114641 
114642 enum fw_opt {
114643 	FW_OPT_UEVENT = 1,
114644 	FW_OPT_NOWAIT = 2,
114645 	FW_OPT_USERHELPER = 4,
114646 	FW_OPT_NO_WARN = 8,
114647 	FW_OPT_NOCACHE = 16,
114648 	FW_OPT_NOFALLBACK_SYSFS = 32,
114649 	FW_OPT_FALLBACK_PLATFORM = 64,
114650 	FW_OPT_PARTIAL = 128,
114651 };
114652 
114653 enum fw_status {
114654 	FW_STATUS_UNKNOWN = 0,
114655 	FW_STATUS_LOADING = 1,
114656 	FW_STATUS_DONE = 2,
114657 	FW_STATUS_ABORTED = 3,
114658 };
114659 
114660 struct fw_state {
114661 	struct completion completion;
114662 	enum fw_status status;
114663 };
114664 
114665 struct firmware_cache;
114666 
114667 struct fw_priv {
114668 	struct kref ref;
114669 	struct list_head list;
114670 	struct firmware_cache *fwc;
114671 	struct fw_state fw_st;
114672 	void *data;
114673 	size_t size;
114674 	size_t allocated_size;
114675 	size_t offset;
114676 	u32 opt_flags;
114677 	bool is_paged_buf;
114678 	struct page **pages;
114679 	int nr_pages;
114680 	int page_array_size;
114681 	const char *fw_name;
114682 };
114683 
114684 struct firmware_cache {
114685 	spinlock_t lock;
114686 	struct list_head head;
114687 	int state;
114688 	spinlock_t name_lock;
114689 	struct list_head fw_names;
114690 	struct delayed_work work;
114691 	struct notifier_block pm_notify;
114692 };
114693 
114694 struct fw_cache_entry {
114695 	struct list_head list;
114696 	const char *name;
114697 };
114698 
114699 struct fw_name_devm {
114700 	long unsigned int magic;
114701 	const char *name;
114702 };
114703 
114704 struct firmware_work {
114705 	struct work_struct work;
114706 	struct module *module;
114707 	const char *name;
114708 	struct device *device;
114709 	void *context;
114710 	void (*cont)(const struct firmware *, void *);
114711 	u32 opt_flags;
114712 };
114713 
114714 struct regmap_mmio_context {
114715 	void *regs;
114716 	unsigned int val_bytes;
114717 	bool big_endian;
114718 	bool attached_clk;
114719 	struct clk *clk;
114720 	void (*reg_write)(struct regmap_mmio_context *, unsigned int, unsigned int);
114721 	unsigned int (*reg_read)(struct regmap_mmio_context *, unsigned int);
114722 };
114723 
114724 struct trace_event_raw_dma_fence {
114725 	struct trace_entry ent;
114726 	u32 __data_loc_driver;
114727 	u32 __data_loc_timeline;
114728 	unsigned int context;
114729 	unsigned int seqno;
114730 	char __data[0];
114731 };
114732 
114733 struct trace_event_data_offsets_dma_fence {
114734 	u32 driver;
114735 	u32 timeline;
114736 };
114737 
114738 typedef void (*btf_trace_dma_fence_emit)(void *, struct dma_fence *);
114739 
114740 typedef void (*btf_trace_dma_fence_init)(void *, struct dma_fence *);
114741 
114742 typedef void (*btf_trace_dma_fence_destroy)(void *, struct dma_fence *);
114743 
114744 typedef void (*btf_trace_dma_fence_enable_signal)(void *, struct dma_fence *);
114745 
114746 typedef void (*btf_trace_dma_fence_signaled)(void *, struct dma_fence *);
114747 
114748 typedef void (*btf_trace_dma_fence_wait_start)(void *, struct dma_fence *);
114749 
114750 typedef void (*btf_trace_dma_fence_wait_end)(void *, struct dma_fence *);
114751 
114752 struct default_wait_cb {
114753 	struct dma_fence_cb base;
114754 	struct task_struct *task;
114755 };
114756 
114757 struct scsi_host_busy_iter_data {
114758 	bool (*fn)(struct scsi_cmnd *, void *);
114759 	void *priv;
114760 };
114761 
114762 struct scsi_eh_save {
114763 	int result;
114764 	unsigned int resid_len;
114765 	int eh_eflags;
114766 	enum dma_data_direction data_direction;
114767 	unsigned int underflow;
114768 	unsigned char cmd_len;
114769 	unsigned char prot_op;
114770 	unsigned char cmnd[32];
114771 	struct scsi_data_buffer sdb;
114772 	struct scatterlist sense_sgl;
114773 };
114774 
114775 struct sas_phy_data {
114776 	struct sas_phy *phy;
114777 	struct mutex event_lock;
114778 	int hard_reset;
114779 	int reset_result;
114780 	struct sas_work reset_work;
114781 	int enable;
114782 	int enable_result;
114783 	struct sas_work enable_work;
114784 };
114785 
114786 typedef struct {
114787 	caddr_t ccb;
114788 	struct list_head list;
114789 	long unsigned int gp;
114790 	unsigned int sno;
114791 	struct scsi_cmnd *scp;
114792 	uint32_t state;
114793 	uint32_t dma_direction;
114794 	uint32_t dma_type;
114795 	uint16_t dev_channel;
114796 	uint16_t dev_target;
114797 	uint32_t status;
114798 } scb_t___2;
114799 
114800 typedef struct {
114801 	struct tasklet_struct dpc_h;
114802 	struct pci_dev *pdev;
114803 	struct Scsi_Host *host;
114804 	spinlock_t lock;
114805 	uint8_t quiescent;
114806 	int outstanding_cmds;
114807 	scb_t___2 *kscb_list;
114808 	struct list_head kscb_pool;
114809 	spinlock_t kscb_pool_lock;
114810 	struct list_head pend_list;
114811 	spinlock_t pend_list_lock;
114812 	struct list_head completed_list;
114813 	spinlock_t completed_list_lock;
114814 	uint16_t sglen;
114815 	int device_ids[1040];
114816 	caddr_t raid_device;
114817 	uint8_t max_channel;
114818 	uint16_t max_target;
114819 	uint8_t max_lun;
114820 	uint32_t unique_id;
114821 	int irq;
114822 	uint8_t ito;
114823 	caddr_t ibuf;
114824 	dma_addr_t ibuf_dma_h;
114825 	scb_t___2 *uscb_list;
114826 	struct list_head uscb_pool;
114827 	spinlock_t uscb_pool_lock;
114828 	int max_cmds;
114829 	uint8_t fw_version[16];
114830 	uint8_t bios_version[16];
114831 	uint8_t max_cdb_sz;
114832 	uint8_t ha;
114833 	uint16_t init_id;
114834 	uint16_t max_sectors;
114835 	uint16_t cmd_per_lun;
114836 	atomic_t being_detached;
114837 } adapter_t___2;
114838 
114839 struct mraid_pci_blk {
114840 	caddr_t vaddr;
114841 	dma_addr_t dma_addr;
114842 };
114843 
114844 typedef struct {
114845 	uint8_t timeout: 3;
114846 	uint8_t ars: 1;
114847 	uint8_t rsvd1: 1;
114848 	uint8_t cd_rom: 1;
114849 	uint8_t rsvd2: 1;
114850 	uint8_t islogical: 1;
114851 	uint8_t logdrv;
114852 	uint8_t channel;
114853 	uint8_t target;
114854 	uint8_t queuetag;
114855 	uint8_t queueaction;
114856 	uint8_t cdblen;
114857 	uint8_t rsvd3;
114858 	uint8_t cdb[16];
114859 	uint8_t numsge;
114860 	uint8_t status;
114861 	uint8_t reqsenselen;
114862 	uint8_t reqsensearea[32];
114863 	uint8_t rsvd4;
114864 	uint32_t dataxferaddr;
114865 	uint32_t dataxferlen;
114866 } mraid_epassthru_t;
114867 
114868 typedef struct {
114869 	uint32_t data_size;
114870 	uint32_t config_signature;
114871 	uint8_t fw_version[16];
114872 	uint8_t bios_version[16];
114873 	uint8_t product_name[80];
114874 	uint8_t max_commands;
114875 	uint8_t nchannels;
114876 	uint8_t fc_loop_present;
114877 	uint8_t mem_type;
114878 	uint32_t signature;
114879 	uint16_t dram_size;
114880 	uint16_t subsysid;
114881 	uint16_t subsysvid;
114882 	uint8_t notify_counters;
114883 	uint8_t pad1k[889];
114884 } mraid_pinfo_t;
114885 
114886 typedef struct {
114887 	uint32_t global_counter;
114888 	uint8_t param_counter;
114889 	uint8_t param_id;
114890 	uint16_t param_val;
114891 	uint8_t write_config_counter;
114892 	uint8_t write_config_rsvd[3];
114893 	uint8_t ldrv_op_counter;
114894 	uint8_t ldrv_opid;
114895 	uint8_t ldrv_opcmd;
114896 	uint8_t ldrv_opstatus;
114897 	uint8_t ldrv_state_counter;
114898 	uint8_t ldrv_state_id;
114899 	uint8_t ldrv_state_new;
114900 	uint8_t ldrv_state_old;
114901 	uint8_t pdrv_state_counter;
114902 	uint8_t pdrv_state_id;
114903 	uint8_t pdrv_state_new;
114904 	uint8_t pdrv_state_old;
114905 	uint8_t pdrv_fmt_counter;
114906 	uint8_t pdrv_fmt_id;
114907 	uint8_t pdrv_fmt_val;
114908 	uint8_t pdrv_fmt_rsvd;
114909 	uint8_t targ_xfer_counter;
114910 	uint8_t targ_xfer_id;
114911 	uint8_t targ_xfer_val;
114912 	uint8_t targ_xfer_rsvd;
114913 	uint8_t fcloop_id_chg_counter;
114914 	uint8_t fcloopid_pdrvid;
114915 	uint8_t fcloop_id0;
114916 	uint8_t fcloop_id1;
114917 	uint8_t fcloop_state_counter;
114918 	uint8_t fcloop_state0;
114919 	uint8_t fcloop_state1;
114920 	uint8_t fcloop_state_rsvd;
114921 } mraid_notify_t;
114922 
114923 typedef struct {
114924 	uint32_t data_size;
114925 	mraid_notify_t notify;
114926 	uint8_t notify_rsvd[88];
114927 	uint8_t rebuild_rate;
114928 	uint8_t cache_flush_int;
114929 	uint8_t sense_alert;
114930 	uint8_t drive_insert_count;
114931 	uint8_t battery_status;
114932 	uint8_t num_ldrv;
114933 	uint8_t recon_state[5];
114934 	uint16_t ldrv_op_status[5];
114935 	uint32_t ldrv_size[40];
114936 	uint8_t ldrv_prop[40];
114937 	uint8_t ldrv_state[40];
114938 	uint8_t pdrv_state[256];
114939 	uint16_t pdrv_format[16];
114940 	uint8_t targ_xfer[80];
114941 	uint8_t pad1k[263];
114942 } __attribute__((packed)) mraid_inquiry3_t;
114943 
114944 typedef struct {
114945 	uint64_t address;
114946 	uint32_t length;
114947 } __attribute__((packed)) mbox_sgl64;
114948 
114949 typedef struct {
114950 	uint32_t address;
114951 	uint32_t length;
114952 } mbox_sgl32;
114953 
114954 typedef struct {
114955 	uint8_t *raw_mbox;
114956 	mbox_t *mbox;
114957 	mbox64_t *mbox64;
114958 	dma_addr_t mbox_dma_h;
114959 	mbox_sgl64 *sgl64;
114960 	mbox_sgl32 *sgl32;
114961 	dma_addr_t sgl_dma_h;
114962 	mraid_passthru_t *pthru;
114963 	dma_addr_t pthru_dma_h;
114964 	mraid_epassthru_t *epthru;
114965 	dma_addr_t epthru_dma_h;
114966 	dma_addr_t buf_dma_h;
114967 } mbox_ccb_t;
114968 
114969 typedef struct {
114970 	mbox64_t *una_mbox64;
114971 	dma_addr_t una_mbox64_dma;
114972 	mbox_t *mbox;
114973 	mbox64_t *mbox64;
114974 	dma_addr_t mbox_dma;
114975 	spinlock_t mailbox_lock;
114976 	long unsigned int baseport;
114977 	void *baseaddr;
114978 	struct mraid_pci_blk mbox_pool[128];
114979 	struct dma_pool *mbox_pool_handle;
114980 	struct mraid_pci_blk epthru_pool[128];
114981 	struct dma_pool *epthru_pool_handle;
114982 	struct mraid_pci_blk sg_pool[128];
114983 	struct dma_pool *sg_pool_handle;
114984 	mbox_ccb_t ccb_list[128];
114985 	mbox_ccb_t uccb_list[32];
114986 	mbox64_t umbox64[32];
114987 	uint8_t pdrv_state[75];
114988 	uint32_t last_disp;
114989 	int hw_error;
114990 	int fast_load;
114991 	uint8_t channel_class;
114992 	struct mutex sysfs_mtx;
114993 	uioc_t *sysfs_uioc;
114994 	mbox64_t *sysfs_mbox64;
114995 	caddr_t sysfs_buffer;
114996 	dma_addr_t sysfs_buffer_dma;
114997 	wait_queue_head_t sysfs_wait_q;
114998 	int random_del_supported;
114999 	uint16_t curr_ldmap[64];
115000 } mraid_device_t;
115001 
115002 struct megasas_debugfs_buffer {
115003 	void *buf;
115004 	u32 len;
115005 };
115006 
115007 struct megasas_debug_buffer;
115008 
115009 struct _MPI2_SMP_PASSTHROUGH_REPLY {
115010 	U8___2 PassthroughFlags;
115011 	U8___2 PhysicalPort;
115012 	U8___2 MsgLength;
115013 	U8___2 Function;
115014 	U16___2 ResponseDataLength;
115015 	U8___2 SGLFlags;
115016 	U8___2 MsgFlags;
115017 	U8___2 VP_ID;
115018 	U8___2 VF_ID;
115019 	U16___2 Reserved1;
115020 	U8___2 Reserved2;
115021 	U8___2 SASStatus;
115022 	U16___2 IOCStatus;
115023 	U32___2 IOCLogInfo;
115024 	U32___2 Reserved3;
115025 	U8___2 ResponseData[4];
115026 };
115027 
115028 typedef struct _MPI2_SMP_PASSTHROUGH_REPLY Mpi2SmpPassthroughReply_t;
115029 
115030 struct rep_manu_request {
115031 	u8 smp_frame_type;
115032 	u8 function;
115033 	u8 reserved;
115034 	u8 request_length;
115035 };
115036 
115037 struct rep_manu_reply {
115038 	u8 smp_frame_type;
115039 	u8 function;
115040 	u8 function_result;
115041 	u8 response_length;
115042 	u16 expander_change_count;
115043 	u8 reserved0[2];
115044 	u8 sas_format;
115045 	u8 reserved2[3];
115046 	u8 vendor_id[8];
115047 	u8 product_id[16];
115048 	u8 product_rev[4];
115049 	u8 component_vendor_id[8];
115050 	u16 component_id;
115051 	u8 component_revision_id;
115052 	u8 reserved3;
115053 	u8 vendor_specific[8];
115054 };
115055 
115056 struct phy_error_log_request {
115057 	u8 smp_frame_type;
115058 	u8 function;
115059 	u8 allocated_response_length;
115060 	u8 request_length;
115061 	u8 reserved_1[5];
115062 	u8 phy_identifier;
115063 	u8 reserved_2[2];
115064 };
115065 
115066 struct phy_error_log_reply {
115067 	u8 smp_frame_type;
115068 	u8 function;
115069 	u8 function_result;
115070 	u8 response_length;
115071 	__be16 expander_change_count;
115072 	u8 reserved_1[3];
115073 	u8 phy_identifier;
115074 	u8 reserved_2[2];
115075 	__be32 invalid_dword;
115076 	__be32 running_disparity_error;
115077 	__be32 loss_of_dword_sync;
115078 	__be32 phy_reset_problem;
115079 };
115080 
115081 struct phy_control_request {
115082 	u8 smp_frame_type;
115083 	u8 function;
115084 	u8 allocated_response_length;
115085 	u8 request_length;
115086 	u16 expander_change_count;
115087 	u8 reserved_1[3];
115088 	u8 phy_identifier;
115089 	u8 phy_operation;
115090 	u8 reserved_2[13];
115091 	u64 attached_device_name;
115092 	u8 programmed_min_physical_link_rate;
115093 	u8 programmed_max_physical_link_rate;
115094 	u8 reserved_3[6];
115095 };
115096 
115097 struct phy_control_reply {
115098 	u8 smp_frame_type;
115099 	u8 function;
115100 	u8 function_result;
115101 	u8 response_length;
115102 };
115103 
115104 enum hw_registers___2 {
115105 	MVS_GBL_CTL___2 = 4,
115106 	MVS_GBL_INT_STAT___2 = 8,
115107 	MVS_GBL_PI___2 = 12,
115108 	MVS_PHY_CTL___2 = 64,
115109 	MVS_PORTS_IMP___2 = 156,
115110 	MVS_GBL_PORT_TYPE___2 = 160,
115111 	MVS_CTL___2 = 256,
115112 	MVS_PCS___2 = 260,
115113 	MVS_CMD_LIST_LO___2 = 264,
115114 	MVS_CMD_LIST_HI___2 = 268,
115115 	MVS_RX_FIS_LO___2 = 272,
115116 	MVS_RX_FIS_HI___2 = 276,
115117 	MVS_TX_CFG___2 = 288,
115118 	MVS_TX_LO___2 = 292,
115119 	MVS_TX_HI___2 = 296,
115120 	MVS_TX_PROD_IDX___2 = 300,
115121 	MVS_TX_CONS_IDX___2 = 304,
115122 	MVS_RX_CFG___2 = 308,
115123 	MVS_RX_LO___2 = 312,
115124 	MVS_RX_HI___2 = 316,
115125 	MVS_RX_CONS_IDX___2 = 320,
115126 	MVS_INT_COAL___2 = 328,
115127 	MVS_INT_COAL_TMOUT___2 = 332,
115128 	MVS_INT_STAT___2 = 336,
115129 	MVS_INT_MASK___2 = 340,
115130 	MVS_INT_STAT_SRS_0___2 = 344,
115131 	MVS_INT_MASK_SRS_0___2 = 348,
115132 	MVS_P0_INT_STAT___2 = 352,
115133 	MVS_P0_INT_MASK___2 = 356,
115134 	MVS_P4_INT_STAT___2 = 512,
115135 	MVS_P4_INT_MASK___2 = 516,
115136 	MVS_P0_SER_CTLSTAT___2 = 384,
115137 	MVS_P4_SER_CTLSTAT___2 = 544,
115138 	MVS_CMD_ADDR___2 = 440,
115139 	MVS_CMD_DATA___2 = 444,
115140 	MVS_P0_CFG_ADDR___2 = 448,
115141 	MVS_P0_CFG_DATA___2 = 452,
115142 	MVS_P4_CFG_ADDR___2 = 560,
115143 	MVS_P4_CFG_DATA___2 = 564,
115144 	MVS_P0_VSR_ADDR___2 = 480,
115145 	MVS_P0_VSR_DATA___2 = 484,
115146 	MVS_P4_VSR_ADDR___2 = 592,
115147 	MVS_P4_VSR_DATA___2 = 596,
115148 };
115149 
115150 enum pci_cfg_registers___2 {
115151 	PCR_PHY_CTL___2 = 64,
115152 	PCR_PHY_CTL2___2 = 144,
115153 	PCR_DEV_CTRL___2 = 232,
115154 	PCR_LINK_STAT___2 = 242,
115155 };
115156 
115157 enum sas_sata_vsp_regs___2 {
115158 	VSR_PHY_STAT___2 = 0,
115159 	VSR_PHY_MODE1___2 = 1,
115160 	VSR_PHY_MODE2___2 = 2,
115161 	VSR_PHY_MODE3___2 = 3,
115162 	VSR_PHY_MODE4___2 = 4,
115163 	VSR_PHY_MODE5___2 = 5,
115164 	VSR_PHY_MODE6___2 = 6,
115165 	VSR_PHY_MODE7___2 = 7,
115166 	VSR_PHY_MODE8___2 = 8,
115167 	VSR_PHY_MODE9___2 = 9,
115168 	VSR_PHY_MODE10___2 = 10,
115169 	VSR_PHY_MODE11___2 = 11,
115170 	VSR_PHY_VS0 = 12,
115171 	VSR_PHY_VS1 = 13,
115172 };
115173 
115174 enum chip_register_bits___2 {
115175 	PHY_MIN_SPP_PHYS_LINK_RATE_MASK___2 = 3840,
115176 	PHY_MAX_SPP_PHYS_LINK_RATE_MASK___2 = 61440,
115177 	PHY_NEG_SPP_PHYS_LINK_RATE_MASK_OFFSET___2 = 16,
115178 	PHY_NEG_SPP_PHYS_LINK_RATE_MASK___2 = 983040,
115179 };
115180 
115181 struct mvs_prd___2 {
115182 	__le64 addr;
115183 	__le32 reserved;
115184 	__le32 len;
115185 };
115186 
115187 enum zbc_zone_type {
115188 	ZBC_ZONE_TYPE_CONV = 1,
115189 	ZBC_ZONE_TYPE_SEQWRITE_REQ = 2,
115190 	ZBC_ZONE_TYPE_SEQWRITE_PREF = 3,
115191 	ZBC_ZONE_TYPE_SEQ_OR_BEFORE_REQ = 4,
115192 	ZBC_ZONE_TYPE_GAP = 5,
115193 };
115194 
115195 enum zbc_zone_cond {
115196 	ZBC_ZONE_COND_NO_WP = 0,
115197 	ZBC_ZONE_COND_EMPTY = 1,
115198 	ZBC_ZONE_COND_IMP_OPEN = 2,
115199 	ZBC_ZONE_COND_EXP_OPEN = 3,
115200 	ZBC_ZONE_COND_CLOSED = 4,
115201 	ZBC_ZONE_COND_READONLY = 13,
115202 	ZBC_ZONE_COND_FULL = 14,
115203 	ZBC_ZONE_COND_OFFLINE = 15,
115204 };
115205 
115206 enum zbc_zone_alignment_method {
115207 	ZBC_CONSTANT_ZONE_LENGTH = 1,
115208 	ZBC_CONSTANT_ZONE_START_OFFSET = 8,
115209 };
115210 
115211 struct trace_event_raw_scsi_prepare_zone_append {
115212 	struct trace_entry ent;
115213 	unsigned int host_no;
115214 	unsigned int channel;
115215 	unsigned int id;
115216 	unsigned int lun;
115217 	sector_t lba;
115218 	unsigned int wp_offset;
115219 	char __data[0];
115220 };
115221 
115222 struct trace_event_raw_scsi_zone_wp_update {
115223 	struct trace_entry ent;
115224 	unsigned int host_no;
115225 	unsigned int channel;
115226 	unsigned int id;
115227 	unsigned int lun;
115228 	sector_t rq_sector;
115229 	unsigned int wp_offset;
115230 	unsigned int good_bytes;
115231 	char __data[0];
115232 };
115233 
115234 struct trace_event_data_offsets_scsi_prepare_zone_append {};
115235 
115236 struct trace_event_data_offsets_scsi_zone_wp_update {};
115237 
115238 typedef void (*btf_trace_scsi_prepare_zone_append)(void *, struct scsi_cmnd *, sector_t, unsigned int);
115239 
115240 typedef void (*btf_trace_scsi_zone_wp_update)(void *, struct scsi_cmnd *, sector_t, unsigned int, unsigned int);
115241 
115242 struct ata_internal {
115243 	struct scsi_transport_template t;
115244 	struct device_attribute private_port_attrs[3];
115245 	struct device_attribute private_link_attrs[3];
115246 	struct device_attribute private_dev_attrs[9];
115247 	struct transport_container link_attr_cont;
115248 	struct transport_container dev_attr_cont;
115249 	struct device_attribute *link_attrs[4];
115250 	struct device_attribute *port_attrs[4];
115251 	struct device_attribute *dev_attrs[10];
115252 };
115253 
115254 struct ata_show_ering_arg {
115255 	char *buf;
115256 	int written;
115257 };
115258 
115259 enum {
115260 	AHCI_PCI_BAR_STA2X11 = 0,
115261 	AHCI_PCI_BAR_CAVIUM = 0,
115262 	AHCI_PCI_BAR_LOONGSON = 0,
115263 	AHCI_PCI_BAR_ENMOTUS = 2,
115264 	AHCI_PCI_BAR_CAVIUM_GEN5 = 4,
115265 	AHCI_PCI_BAR_STANDARD = 5,
115266 };
115267 
115268 enum board_ids {
115269 	board_ahci = 0,
115270 	board_ahci_ign_iferr = 1,
115271 	board_ahci_low_power = 2,
115272 	board_ahci_no_debounce_delay = 3,
115273 	board_ahci_nomsi = 4,
115274 	board_ahci_noncq = 5,
115275 	board_ahci_nosntf = 6,
115276 	board_ahci_yes_fbs = 7,
115277 	board_ahci_al = 8,
115278 	board_ahci_avn = 9,
115279 	board_ahci_mcp65 = 10,
115280 	board_ahci_mcp77 = 11,
115281 	board_ahci_mcp89 = 12,
115282 	board_ahci_mv = 13,
115283 	board_ahci_sb600 = 14,
115284 	board_ahci_sb700 = 15,
115285 	board_ahci_vt8251 = 16,
115286 	board_ahci_pcs7 = 17,
115287 	board_ahci_mcp_linux = 10,
115288 	board_ahci_mcp67 = 10,
115289 	board_ahci_mcp73 = 10,
115290 	board_ahci_mcp79 = 11,
115291 };
115292 
115293 enum {
115294 	ATIIXP_IDE_PIO_TIMING = 64,
115295 	ATIIXP_IDE_MWDMA_TIMING = 68,
115296 	ATIIXP_IDE_PIO_CONTROL = 72,
115297 	ATIIXP_IDE_PIO_MODE = 74,
115298 	ATIIXP_IDE_UDMA_CONTROL = 84,
115299 	ATIIXP_IDE_UDMA_MODE = 86,
115300 };
115301 
115302 struct trace_event_raw_mdio_access {
115303 	struct trace_entry ent;
115304 	char busid[61];
115305 	char read;
115306 	u8 addr;
115307 	u16 val;
115308 	unsigned int regnum;
115309 	char __data[0];
115310 };
115311 
115312 struct trace_event_data_offsets_mdio_access {};
115313 
115314 typedef void (*btf_trace_mdio_access)(void *, struct mii_bus *, char, u8, unsigned int, u16, int);
115315 
115316 struct mdio_bus_stat_attr {
115317 	int addr;
115318 	unsigned int field_offset;
115319 };
115320 
115321 enum {
115322 	DW_XPCS_USXGMII = 0,
115323 	DW_XPCS_10GKR = 1,
115324 	DW_XPCS_XLGMII = 2,
115325 	DW_XPCS_SGMII = 3,
115326 	DW_XPCS_1000BASEX = 4,
115327 	DW_XPCS_2500BASEX = 5,
115328 	DW_XPCS_INTERFACE_MAX = 6,
115329 };
115330 
115331 struct xpcs_compat {
115332 	const int *supported;
115333 	const phy_interface_t *interface;
115334 	int num_interfaces;
115335 	int an_mode;
115336 	int (*pma_config)(struct dw_xpcs *);
115337 };
115338 
115339 struct e1000_context_desc {
115340 	union {
115341 		__le32 ip_config;
115342 		struct {
115343 			u8 ipcss;
115344 			u8 ipcso;
115345 			__le16 ipcse;
115346 		} ip_fields;
115347 	} lower_setup;
115348 	union {
115349 		__le32 tcp_config;
115350 		struct {
115351 			u8 tucss;
115352 			u8 tucso;
115353 			__le16 tucse;
115354 		} tcp_fields;
115355 	} upper_setup;
115356 	__le32 cmd_and_length;
115357 	union {
115358 		__le32 data;
115359 		struct {
115360 			u8 status;
115361 			u8 hdr_len;
115362 			__le16 mss;
115363 		} fields;
115364 	} tcp_seg_setup;
115365 };
115366 
115367 struct my_u {
115368 	__le64 a;
115369 	__le64 b;
115370 };
115371 
115372 union e1000_rx_desc_packet_split {
115373 	struct {
115374 		__le64 buffer_addr[4];
115375 	} read;
115376 	struct {
115377 		struct {
115378 			__le32 mrq;
115379 			union {
115380 				__le32 rss;
115381 				struct {
115382 					__le16 ip_id;
115383 					__le16 csum;
115384 				} csum_ip;
115385 			} hi_dword;
115386 		} lower;
115387 		struct {
115388 			__le32 status_error;
115389 			__le16 length0;
115390 			__le16 vlan;
115391 		} middle;
115392 		struct {
115393 			__le16 header_status;
115394 			__le16 length[3];
115395 		} upper;
115396 		__le64 reserved;
115397 	} wb;
115398 };
115399 
115400 enum e1000_boards {
115401 	board_82571 = 0,
115402 	board_82572 = 1,
115403 	board_82573 = 2,
115404 	board_82574 = 3,
115405 	board_82583 = 4,
115406 	board_80003es2lan = 5,
115407 	board_ich8lan = 6,
115408 	board_ich9lan = 7,
115409 	board_ich10lan = 8,
115410 	board_pchlan = 9,
115411 	board_pch2lan = 10,
115412 	board_pch_lpt = 11,
115413 	board_pch_spt = 12,
115414 	board_pch_cnp = 13,
115415 	board_pch_tgp = 14,
115416 	board_pch_adp = 15,
115417 	board_pch_mtp = 16,
115418 };
115419 
115420 struct trace_event_raw_e1000e_trace_mac_register {
115421 	struct trace_entry ent;
115422 	uint32_t reg;
115423 	char __data[0];
115424 };
115425 
115426 struct trace_event_data_offsets_e1000e_trace_mac_register {};
115427 
115428 typedef void (*btf_trace_e1000e_trace_mac_register)(void *, uint32_t);
115429 
115430 struct e1000_reg_info {
115431 	u32 ofs;
115432 	char *name;
115433 };
115434 
115435 struct my_u1 {
115436 	__le64 a;
115437 	__le64 b;
115438 	__le64 c;
115439 	__le64 d;
115440 };
115441 
115442 enum macvlan_mode {
115443 	MACVLAN_MODE_PRIVATE = 1,
115444 	MACVLAN_MODE_VEPA = 2,
115445 	MACVLAN_MODE_BRIDGE = 4,
115446 	MACVLAN_MODE_PASSTHRU = 8,
115447 	MACVLAN_MODE_SOURCE = 16,
115448 };
115449 
115450 enum {
115451 	TC_MQPRIO_HW_OFFLOAD_NONE = 0,
115452 	TC_MQPRIO_HW_OFFLOAD_TCS = 1,
115453 	__TC_MQPRIO_HW_OFFLOAD_MAX = 2,
115454 };
115455 
115456 struct tc_mqprio_qopt {
115457 	__u8 num_tc;
115458 	__u8 prio_tc_map[16];
115459 	__u8 hw;
115460 	__u16 count[16];
115461 	__u16 offset[16];
115462 };
115463 
115464 struct netpoll;
115465 
115466 struct macvlan_port;
115467 
115468 struct macvlan_dev {
115469 	struct net_device *dev;
115470 	struct list_head list;
115471 	struct hlist_node hlist;
115472 	struct macvlan_port *port;
115473 	struct net_device *lowerdev;
115474 	netdevice_tracker dev_tracker;
115475 	void *accel_priv;
115476 	struct vlan_pcpu_stats *pcpu_stats;
115477 	long unsigned int mc_filter[4];
115478 	netdev_features_t set_features;
115479 	enum macvlan_mode mode;
115480 	u16 flags;
115481 	unsigned int macaddr_count;
115482 	u32 bc_queue_len_req;
115483 	struct netpoll *netpoll;
115484 };
115485 
115486 struct tcf_mirred {
115487 	struct tc_action common;
115488 	int tcfm_eaction;
115489 	bool tcfm_mac_header_xmit;
115490 	struct net_device *tcfm_dev;
115491 	netdevice_tracker tcfm_dev_tracker;
115492 	struct list_head tcfm_list;
115493 };
115494 
115495 enum ixgbe_fdir_pballoc_type {
115496 	IXGBE_FDIR_PBALLOC_NONE = 0,
115497 	IXGBE_FDIR_PBALLOC_64K = 1,
115498 	IXGBE_FDIR_PBALLOC_128K = 2,
115499 	IXGBE_FDIR_PBALLOC_256K = 3,
115500 };
115501 
115502 struct ixgbe_ipsec_tx_data {
115503 	u32 flags;
115504 	u16 trailer_len;
115505 	u16 sa_idx;
115506 };
115507 
115508 struct ixgbe_fwd_adapter {
115509 	long unsigned int active_vlans[64];
115510 	struct net_device *netdev;
115511 	unsigned int tx_base_queue;
115512 	unsigned int rx_base_queue;
115513 	int pool;
115514 };
115515 
115516 struct ixgbe_mat_field;
115517 
115518 struct ixgbe_jump_table {
115519 	struct ixgbe_mat_field *mat;
115520 	struct ixgbe_fdir_filter *input;
115521 	union ixgbe_atr_input *mask;
115522 	u32 link_hdl;
115523 	long unsigned int child_loc_map[32];
115524 };
115525 
115526 struct ixgbe_cb {
115527 	union {
115528 		struct sk_buff *head;
115529 		struct sk_buff *tail;
115530 	};
115531 	dma_addr_t dma;
115532 	u16 append_cnt;
115533 	bool page_released;
115534 };
115535 
115536 enum ixgbe_boards {
115537 	board_82598 = 0,
115538 	board_82599 = 1,
115539 	board_X540 = 2,
115540 	board_X550 = 3,
115541 	board_X550EM_x = 4,
115542 	board_x550em_x_fw = 5,
115543 	board_x550em_a = 6,
115544 	board_x550em_a_fw = 7,
115545 };
115546 
115547 struct ixgbe_mat_field {
115548 	unsigned int off;
115549 	int (*val)(struct ixgbe_fdir_filter *, union ixgbe_atr_input *, u32, u32);
115550 	unsigned int type;
115551 };
115552 
115553 struct ixgbe_nexthdr {
115554 	unsigned int o;
115555 	u32 s;
115556 	u32 m;
115557 	unsigned int off;
115558 	u32 val;
115559 	u32 mask;
115560 	struct ixgbe_mat_field *jump;
115561 };
115562 
115563 struct ixgbe_reg_info {
115564 	u32 ofs;
115565 	char *name;
115566 };
115567 
115568 struct upper_walk_data {
115569 	struct ixgbe_adapter *adapter;
115570 	u64 action;
115571 	int ifindex;
115572 	u8 queue;
115573 };
115574 
115575 struct my_u0___2 {
115576 	u64 a;
115577 	u64 b;
115578 };
115579 
115580 typedef enum {
115581 	ixgb_xpak_vendor_intel = 0,
115582 	ixgb_xpak_vendor_infineon = 1,
115583 } ixgb_xpak_vendor;
115584 
115585 enum stmmac_fpe_task_state_t {
115586 	__FPE_REMOVING = 0,
115587 	__FPE_TASK_SCHED = 1,
115588 };
115589 
115590 enum request_irq_err {
115591 	REQ_IRQ_ERR_ALL = 0,
115592 	REQ_IRQ_ERR_TX = 1,
115593 	REQ_IRQ_ERR_RX = 2,
115594 	REQ_IRQ_ERR_SFTY_UE = 3,
115595 	REQ_IRQ_ERR_SFTY_CE = 4,
115596 	REQ_IRQ_ERR_LPI = 5,
115597 	REQ_IRQ_ERR_WOL = 6,
115598 	REQ_IRQ_ERR_MAC = 7,
115599 	REQ_IRQ_ERR_NO = 8,
115600 };
115601 
115602 enum stmmac_state {
115603 	STMMAC_DOWN = 0,
115604 	STMMAC_RESET_REQUESTED = 1,
115605 	STMMAC_RESETING = 2,
115606 	STMMAC_SERVICE_SCHED = 3,
115607 };
115608 
115609 enum ttc_control___2 {
115610 	DMA_CONTROL_TTC_64___2 = 0,
115611 	DMA_CONTROL_TTC_128___2 = 16384,
115612 	DMA_CONTROL_TTC_192 = 32768,
115613 	DMA_CONTROL_TTC_256___2 = 49152,
115614 	DMA_CONTROL_TTC_40___2 = 65536,
115615 	DMA_CONTROL_TTC_32___2 = 81920,
115616 	DMA_CONTROL_TTC_24___2 = 98304,
115617 	DMA_CONTROL_TTC_16 = 114688,
115618 };
115619 
115620 enum rtc_control {
115621 	DMA_CONTROL_RTC_64 = 0,
115622 	DMA_CONTROL_RTC_32 = 8,
115623 	DMA_CONTROL_RTC_96 = 16,
115624 	DMA_CONTROL_RTC_128 = 24,
115625 };
115626 
115627 struct dwmac5_error_desc {
115628 	bool valid;
115629 	const char *desc;
115630 	const char *detailed_desc;
115631 };
115632 
115633 struct dwmac5_error {
115634 	const struct dwmac5_error_desc *desc;
115635 };
115636 
115637 struct dwxgmac3_error_desc {
115638 	bool valid;
115639 	const char *desc;
115640 	const char *detailed_desc;
115641 };
115642 
115643 struct dwxgmac3_error {
115644 	const struct dwxgmac3_error_desc *desc;
115645 };
115646 
115647 enum usb_led_event {
115648 	USB_LED_EVENT_HOST = 0,
115649 	USB_LED_EVENT_GADGET = 1,
115650 };
115651 
115652 struct usb_mon_operations {
115653 	void (*urb_submit)(struct usb_bus *, struct urb *);
115654 	void (*urb_submit_error)(struct usb_bus *, struct urb *, int);
115655 	void (*urb_complete)(struct usb_bus *, struct urb *, int);
115656 };
115657 
115658 struct usb_dev_cap_header {
115659 	__u8 bLength;
115660 	__u8 bDescriptorType;
115661 	__u8 bDevCapabilityType;
115662 };
115663 
115664 struct ep_device {
115665 	struct usb_endpoint_descriptor *desc;
115666 	struct usb_device *udev;
115667 	struct device dev;
115668 };
115669 
115670 struct phy_devm {
115671 	struct usb_phy *phy;
115672 	struct notifier_block *nb;
115673 };
115674 
115675 struct uhci_td;
115676 
115677 struct uhci_qh {
115678 	__le32 link;
115679 	__le32 element;
115680 	dma_addr_t dma_handle;
115681 	struct list_head node;
115682 	struct usb_host_endpoint *hep;
115683 	struct usb_device *udev;
115684 	struct list_head queue;
115685 	struct uhci_td *dummy_td;
115686 	struct uhci_td *post_td;
115687 	struct usb_iso_packet_descriptor *iso_packet_desc;
115688 	long unsigned int advance_jiffies;
115689 	unsigned int unlink_frame;
115690 	unsigned int period;
115691 	short int phase;
115692 	short int load;
115693 	unsigned int iso_frame;
115694 	int state;
115695 	int type;
115696 	int skel;
115697 	unsigned int initial_toggle: 1;
115698 	unsigned int needs_fixup: 1;
115699 	unsigned int is_stopped: 1;
115700 	unsigned int wait_expired: 1;
115701 	unsigned int bandwidth_reserved: 1;
115702 };
115703 
115704 struct uhci_td {
115705 	__le32 link;
115706 	__le32 status;
115707 	__le32 token;
115708 	__le32 buffer;
115709 	dma_addr_t dma_handle;
115710 	struct list_head list;
115711 	int frame;
115712 	struct list_head fl_list;
115713 };
115714 
115715 enum uhci_rh_state {
115716 	UHCI_RH_RESET = 0,
115717 	UHCI_RH_SUSPENDED = 1,
115718 	UHCI_RH_AUTO_STOPPED = 2,
115719 	UHCI_RH_RESUMING = 3,
115720 	UHCI_RH_SUSPENDING = 4,
115721 	UHCI_RH_RUNNING = 5,
115722 	UHCI_RH_RUNNING_NODEVS = 6,
115723 };
115724 
115725 struct uhci_hcd {
115726 	long unsigned int io_addr;
115727 	void *regs;
115728 	struct dma_pool *qh_pool;
115729 	struct dma_pool *td_pool;
115730 	struct uhci_td *term_td;
115731 	struct uhci_qh *skelqh[11];
115732 	struct uhci_qh *next_qh;
115733 	spinlock_t lock;
115734 	dma_addr_t frame_dma_handle;
115735 	__le32 *frame;
115736 	void **frame_cpu;
115737 	enum uhci_rh_state rh_state;
115738 	long unsigned int auto_stop_time;
115739 	unsigned int frame_number;
115740 	unsigned int is_stopped;
115741 	unsigned int last_iso_frame;
115742 	unsigned int cur_iso_frame;
115743 	unsigned int scan_in_progress: 1;
115744 	unsigned int need_rescan: 1;
115745 	unsigned int dead: 1;
115746 	unsigned int RD_enable: 1;
115747 	unsigned int is_initialized: 1;
115748 	unsigned int fsbr_is_on: 1;
115749 	unsigned int fsbr_is_wanted: 1;
115750 	unsigned int fsbr_expiring: 1;
115751 	struct timer_list fsbr_timer;
115752 	unsigned int oc_low: 1;
115753 	unsigned int wait_for_hp: 1;
115754 	unsigned int big_endian_mmio: 1;
115755 	unsigned int big_endian_desc: 1;
115756 	unsigned int is_aspeed: 1;
115757 	long unsigned int port_c_suspend;
115758 	long unsigned int resuming_ports;
115759 	long unsigned int ports_timeout;
115760 	struct list_head idle_qh_list;
115761 	int rh_numports;
115762 	wait_queue_head_t waitqh;
115763 	int num_waiting;
115764 	int total_load;
115765 	short int load[32];
115766 	struct clk *clk;
115767 	void (*reset_hc)(struct uhci_hcd *);
115768 	int (*check_and_reset_hc)(struct uhci_hcd *);
115769 	void (*configure_hc)(struct uhci_hcd *);
115770 	int (*resume_detect_interrupts_are_broken)(struct uhci_hcd *);
115771 	int (*global_suspend_mode_is_broken)(struct uhci_hcd *);
115772 };
115773 
115774 struct urb_priv___3 {
115775 	struct list_head node;
115776 	struct urb *urb;
115777 	struct uhci_qh *qh;
115778 	struct list_head td_list;
115779 	unsigned int fsbr: 1;
115780 };
115781 
115782 struct uhci_debug {
115783 	int size;
115784 	char *data;
115785 };
115786 
115787 enum xhci_ep_reset_type {
115788 	EP_HARD_RESET = 0,
115789 	EP_SOFT_RESET = 1,
115790 };
115791 
115792 struct xhci_regset {
115793 	char name[32];
115794 	struct debugfs_regset32 regset;
115795 	size_t nregs;
115796 	struct list_head list;
115797 };
115798 
115799 struct xhci_file_map {
115800 	const char *name;
115801 	int (*show)(struct seq_file *, void *);
115802 };
115803 
115804 struct xhci_ep_priv {
115805 	char name[32];
115806 	struct dentry *root;
115807 	struct xhci_stream_info *stream_info;
115808 	struct xhci_ring *show_ring;
115809 	unsigned int stream_id;
115810 };
115811 
115812 struct xhci_slot_priv {
115813 	char name[32];
115814 	struct dentry *root;
115815 	struct xhci_ep_priv *eps[31];
115816 	struct xhci_virt_device *dev;
115817 };
115818 
115819 struct input_led {
115820 	struct led_classdev cdev;
115821 	struct input_handle *handle;
115822 	unsigned int code;
115823 };
115824 
115825 struct input_leds {
115826 	struct input_handle handle;
115827 	unsigned int num_leds;
115828 	struct input_led leds[0];
115829 };
115830 
115831 struct focaltech_finger_state {
115832 	bool active;
115833 	bool valid;
115834 	unsigned int x;
115835 	unsigned int y;
115836 };
115837 
115838 struct focaltech_hw_state {
115839 	struct focaltech_finger_state fingers[5];
115840 	unsigned int width;
115841 	bool pressed;
115842 };
115843 
115844 struct focaltech_data {
115845 	unsigned int x_max;
115846 	unsigned int y_max;
115847 	struct focaltech_hw_state state;
115848 };
115849 
115850 struct finger_pos {
115851 	unsigned int x;
115852 	unsigned int y;
115853 };
115854 
115855 struct elantech_device_info {
115856 	unsigned char capabilities[3];
115857 	unsigned char samples[3];
115858 	unsigned char debug;
115859 	unsigned char hw_version;
115860 	unsigned char pattern;
115861 	unsigned int fw_version;
115862 	unsigned int ic_version;
115863 	unsigned int product_id;
115864 	unsigned int x_min;
115865 	unsigned int y_min;
115866 	unsigned int x_max;
115867 	unsigned int y_max;
115868 	unsigned int x_res;
115869 	unsigned int y_res;
115870 	unsigned int x_traces;
115871 	unsigned int y_traces;
115872 	unsigned int width;
115873 	unsigned int bus;
115874 	bool paritycheck;
115875 	bool jumpy_cursor;
115876 	bool reports_pressure;
115877 	bool crc_enabled;
115878 	bool set_hw_resolution;
115879 	bool has_trackpoint;
115880 	bool has_middle_button;
115881 	int (*send_cmd)(struct psmouse *, unsigned char, unsigned char *);
115882 };
115883 
115884 struct elantech_data {
115885 	struct input_dev *tp_dev;
115886 	char tp_phys[32];
115887 	unsigned char reg_07;
115888 	unsigned char reg_10;
115889 	unsigned char reg_11;
115890 	unsigned char reg_20;
115891 	unsigned char reg_21;
115892 	unsigned char reg_22;
115893 	unsigned char reg_23;
115894 	unsigned char reg_24;
115895 	unsigned char reg_25;
115896 	unsigned char reg_26;
115897 	unsigned int single_finger_reports;
115898 	unsigned int y_max;
115899 	unsigned int width;
115900 	struct finger_pos mt[5];
115901 	unsigned char parity[256];
115902 	struct elantech_device_info info;
115903 	void (*original_set_rate)(struct psmouse *, unsigned int);
115904 };
115905 
115906 struct elantech_attr_data {
115907 	size_t field_offset;
115908 	unsigned char reg;
115909 };
115910 
115911 enum {
115912 	ELANTECH_SMBUS_NOT_SET = -1,
115913 	ELANTECH_SMBUS_OFF = 0,
115914 	ELANTECH_SMBUS_ON = 1,
115915 };
115916 
115917 struct cytp_contact {
115918 	int x;
115919 	int y;
115920 	int z;
115921 };
115922 
115923 struct cytp_report_data {
115924 	int contact_cnt;
115925 	struct cytp_contact contacts[2];
115926 	unsigned int left: 1;
115927 	unsigned int right: 1;
115928 	unsigned int middle: 1;
115929 	unsigned int tap: 1;
115930 };
115931 
115932 struct cytp_data {
115933 	int fw_version;
115934 	int pkt_size;
115935 	int mode;
115936 	int tp_min_pressure;
115937 	int tp_max_pressure;
115938 	int tp_width;
115939 	int tp_high;
115940 	int tp_max_abs_x;
115941 	int tp_max_abs_y;
115942 	int tp_res_x;
115943 	int tp_res_y;
115944 	int tp_metrics_supported;
115945 };
115946 
115947 struct nvmem_device;
115948 
115949 struct i2c_smbus_alert_setup {
115950 	int irq;
115951 };
115952 
115953 struct trace_event_raw_smbus_write {
115954 	struct trace_entry ent;
115955 	int adapter_nr;
115956 	__u16 addr;
115957 	__u16 flags;
115958 	__u8 command;
115959 	__u8 len;
115960 	__u32 protocol;
115961 	__u8 buf[34];
115962 	char __data[0];
115963 };
115964 
115965 struct trace_event_raw_smbus_read {
115966 	struct trace_entry ent;
115967 	int adapter_nr;
115968 	__u16 flags;
115969 	__u16 addr;
115970 	__u8 command;
115971 	__u32 protocol;
115972 	__u8 buf[34];
115973 	char __data[0];
115974 };
115975 
115976 struct trace_event_raw_smbus_reply {
115977 	struct trace_entry ent;
115978 	int adapter_nr;
115979 	__u16 addr;
115980 	__u16 flags;
115981 	__u8 command;
115982 	__u8 len;
115983 	__u32 protocol;
115984 	__u8 buf[34];
115985 	char __data[0];
115986 };
115987 
115988 struct trace_event_raw_smbus_result {
115989 	struct trace_entry ent;
115990 	int adapter_nr;
115991 	__u16 addr;
115992 	__u16 flags;
115993 	__u8 read_write;
115994 	__u8 command;
115995 	__s16 res;
115996 	__u32 protocol;
115997 	char __data[0];
115998 };
115999 
116000 struct trace_event_data_offsets_smbus_write {};
116001 
116002 struct trace_event_data_offsets_smbus_read {};
116003 
116004 struct trace_event_data_offsets_smbus_reply {};
116005 
116006 struct trace_event_data_offsets_smbus_result {};
116007 
116008 typedef void (*btf_trace_smbus_write)(void *, const struct i2c_adapter *, u16, short unsigned int, char, u8, int, const union i2c_smbus_data *);
116009 
116010 typedef void (*btf_trace_smbus_read)(void *, const struct i2c_adapter *, u16, short unsigned int, char, u8, int);
116011 
116012 typedef void (*btf_trace_smbus_reply)(void *, const struct i2c_adapter *, u16, short unsigned int, char, u8, int, const union i2c_smbus_data *, int);
116013 
116014 typedef void (*btf_trace_smbus_result)(void *, const struct i2c_adapter *, u16, short unsigned int, char, u8, int, int);
116015 
116016 struct pps_kinfo {
116017 	__u32 assert_sequence;
116018 	__u32 clear_sequence;
116019 	struct pps_ktime assert_tu;
116020 	struct pps_ktime clear_tu;
116021 	int current_mode;
116022 };
116023 
116024 struct pps_fdata {
116025 	struct pps_kinfo info;
116026 	struct pps_ktime timeout;
116027 };
116028 
116029 struct pps_bind_args {
116030 	int tsformat;
116031 	int edge;
116032 	int consumer;
116033 };
116034 
116035 struct trace_event_raw_thermal_temperature {
116036 	struct trace_entry ent;
116037 	u32 __data_loc_thermal_zone;
116038 	int id;
116039 	int temp_prev;
116040 	int temp;
116041 	char __data[0];
116042 };
116043 
116044 struct trace_event_raw_cdev_update {
116045 	struct trace_entry ent;
116046 	u32 __data_loc_type;
116047 	long unsigned int target;
116048 	char __data[0];
116049 };
116050 
116051 struct trace_event_raw_thermal_zone_trip {
116052 	struct trace_entry ent;
116053 	u32 __data_loc_thermal_zone;
116054 	int id;
116055 	int trip;
116056 	enum thermal_trip_type trip_type;
116057 	char __data[0];
116058 };
116059 
116060 struct trace_event_data_offsets_thermal_temperature {
116061 	u32 thermal_zone;
116062 };
116063 
116064 struct trace_event_data_offsets_cdev_update {
116065 	u32 type;
116066 };
116067 
116068 struct trace_event_data_offsets_thermal_zone_trip {
116069 	u32 thermal_zone;
116070 };
116071 
116072 typedef void (*btf_trace_thermal_temperature)(void *, struct thermal_zone_device *);
116073 
116074 typedef void (*btf_trace_cdev_update)(void *, struct thermal_cooling_device *, long unsigned int);
116075 
116076 typedef void (*btf_trace_thermal_zone_trip)(void *, struct thermal_zone_device *, int, enum thermal_trip_type);
116077 
116078 struct dm_kobject_holder {
116079 	struct kobject kobj;
116080 	struct completion completion;
116081 };
116082 
116083 struct dmi_memdev_info {
116084 	const char *device;
116085 	const char *bank;
116086 	u64 size;
116087 	u16 handle;
116088 	u8 type;
116089 };
116090 
116091 struct simplefb_format {
116092 	const char *name;
116093 	u32 bits_per_pixel;
116094 	struct fb_bitfield red;
116095 	struct fb_bitfield green;
116096 	struct fb_bitfield blue;
116097 	struct fb_bitfield transp;
116098 	u32 fourcc;
116099 };
116100 
116101 typedef struct {
116102 	u32 version;
116103 	u32 num_entries;
116104 	u32 desc_size;
116105 	u32 reserved;
116106 	efi_memory_desc_t entry[0];
116107 } efi_memory_attributes_table_t;
116108 
116109 typedef int (*efi_memattr_perm_setter)(struct mm_struct *, efi_memory_desc_t *);
116110 
116111 struct efi_system_resource_entry_v1 {
116112 	efi_guid_t fw_class;
116113 	u32 fw_type;
116114 	u32 fw_version;
116115 	u32 lowest_supported_fw_version;
116116 	u32 capsule_flags;
116117 	u32 last_attempt_version;
116118 	u32 last_attempt_status;
116119 };
116120 
116121 struct efi_system_resource_table {
116122 	u32 fw_resource_count;
116123 	u32 fw_resource_count_max;
116124 	u64 fw_resource_version;
116125 	u8 entries[0];
116126 };
116127 
116128 struct esre_entry {
116129 	union {
116130 		struct efi_system_resource_entry_v1 *esre1;
116131 	} esre;
116132 	struct kobject kobj;
116133 	struct list_head list;
116134 };
116135 
116136 struct esre_attribute {
116137 	struct attribute attr;
116138 	ssize_t (*show)(struct esre_entry *, char *);
116139 	ssize_t (*store)(struct esre_entry *, const char *, size_t);
116140 };
116141 
116142 struct hid_item {
116143 	unsigned int format;
116144 	__u8 size;
116145 	__u8 type;
116146 	__u8 tag;
116147 	union {
116148 		__u8 u8;
116149 		__s8 s8;
116150 		__u16 u16;
116151 		__s16 s16;
116152 		__u32 u32;
116153 		__s32 s32;
116154 		__u8 *longdata;
116155 	} data;
116156 };
116157 
116158 struct hid_global {
116159 	unsigned int usage_page;
116160 	__s32 logical_minimum;
116161 	__s32 logical_maximum;
116162 	__s32 physical_minimum;
116163 	__s32 physical_maximum;
116164 	__s32 unit_exponent;
116165 	unsigned int unit;
116166 	unsigned int report_id;
116167 	unsigned int report_size;
116168 	unsigned int report_count;
116169 };
116170 
116171 struct hid_local {
116172 	unsigned int usage[12288];
116173 	u8 usage_size[12288];
116174 	unsigned int collection_index[12288];
116175 	unsigned int usage_index;
116176 	unsigned int usage_minimum;
116177 	unsigned int delimiter_depth;
116178 	unsigned int delimiter_branch;
116179 };
116180 
116181 struct hid_parser {
116182 	struct hid_global global;
116183 	struct hid_global global_stack[4];
116184 	unsigned int global_stack_ptr;
116185 	struct hid_local local;
116186 	unsigned int *collection_stack;
116187 	unsigned int collection_stack_ptr;
116188 	unsigned int collection_stack_size;
116189 	struct hid_device *device;
116190 	unsigned int scan_flags;
116191 };
116192 
116193 struct hiddev {
116194 	int minor;
116195 	int exist;
116196 	int open;
116197 	struct mutex existancelock;
116198 	wait_queue_head_t wait;
116199 	struct hid_device *hid;
116200 	struct list_head list;
116201 	spinlock_t list_lock;
116202 	bool initialized;
116203 };
116204 
116205 struct hidraw {
116206 	unsigned int minor;
116207 	int exist;
116208 	int open;
116209 	wait_queue_head_t wait;
116210 	struct hid_device *hid;
116211 	struct device *dev;
116212 	spinlock_t list_lock;
116213 	struct list_head list;
116214 };
116215 
116216 struct hid_dynid {
116217 	struct list_head list;
116218 	struct hid_device_id id;
116219 };
116220 
116221 struct hidraw_devinfo {
116222 	__u32 bustype;
116223 	__s16 vendor;
116224 	__s16 product;
116225 };
116226 
116227 struct hidraw_report {
116228 	__u8 *value;
116229 	int len;
116230 };
116231 
116232 struct hidraw_list {
116233 	struct hidraw_report buffer[64];
116234 	int head;
116235 	int tail;
116236 	struct fasync_struct *fasync;
116237 	struct hidraw *hidraw;
116238 	struct list_head node;
116239 	struct mutex read_mutex;
116240 };
116241 
116242 struct supplier_bindings {
116243 	struct device_node * (*parse_prop)(struct device_node *, const char *, int);
116244 	bool optional;
116245 	bool node_not_dev;
116246 };
116247 
116248 struct of_bus___2 {
116249 	void (*count_cells)(const void *, int, int *, int *);
116250 	u64 (*map)(__be32 *, const __be32 *, int, int, int);
116251 	int (*translate)(__be32 *, u64, int);
116252 };
116253 
116254 struct rmem_assigned_device {
116255 	struct device *dev;
116256 	struct reserved_mem *rmem;
116257 	struct list_head list;
116258 };
116259 
116260 struct generic_sub_driver {
116261 	u32 type;
116262 	char *name;
116263 	acpi_handle *handle;
116264 	struct acpi_device *device;
116265 	struct platform_driver *driver;
116266 	int (*init)(struct generic_sub_driver *);
116267 	void (*notify)(struct generic_sub_driver *, u32);
116268 	u8 acpi_notify_installed;
116269 };
116270 
116271 union extcon_property_value {
116272 	int intval;
116273 };
116274 
116275 struct extcon_cable {
116276 	struct extcon_dev *edev;
116277 	int cable_index;
116278 	struct attribute_group attr_g;
116279 	struct device_attribute attr_name;
116280 	struct device_attribute attr_state;
116281 	struct attribute *attrs[3];
116282 	union extcon_property_value usb_propval[3];
116283 	union extcon_property_value chg_propval[1];
116284 	union extcon_property_value jack_propval[1];
116285 	union extcon_property_value disp_propval[2];
116286 	long unsigned int usb_bits[1];
116287 	long unsigned int chg_bits[1];
116288 	long unsigned int jack_bits[1];
116289 	long unsigned int disp_bits[1];
116290 };
116291 
116292 struct __extcon_info {
116293 	unsigned int type;
116294 	unsigned int id;
116295 	const char *name;
116296 };
116297 
116298 struct mmsghdr {
116299 	struct user_msghdr msg_hdr;
116300 	unsigned int msg_len;
116301 };
116302 
116303 struct scm_ts_pktinfo {
116304 	__u32 if_index;
116305 	__u32 pkt_length;
116306 	__u32 reserved[2];
116307 };
116308 
116309 struct compat_if_settings {
116310 	unsigned int type;
116311 	unsigned int size;
116312 	compat_uptr_t ifs_ifsu;
116313 };
116314 
116315 struct compat_ifreq {
116316 	union {
116317 		char ifrn_name[16];
116318 	} ifr_ifrn;
116319 	union {
116320 		struct sockaddr ifru_addr;
116321 		struct sockaddr ifru_dstaddr;
116322 		struct sockaddr ifru_broadaddr;
116323 		struct sockaddr ifru_netmask;
116324 		struct sockaddr ifru_hwaddr;
116325 		short int ifru_flags;
116326 		compat_int_t ifru_ivalue;
116327 		compat_int_t ifru_mtu;
116328 		struct compat_ifmap ifru_map;
116329 		char ifru_slave[16];
116330 		char ifru_newname[16];
116331 		compat_caddr_t ifru_data;
116332 		struct compat_if_settings ifru_settings;
116333 	} ifr_ifru;
116334 };
116335 
116336 struct compat_mmsghdr {
116337 	struct compat_msghdr msg_hdr;
116338 	compat_uint_t msg_len;
116339 };
116340 
116341 struct used_address {
116342 	struct __kernel_sockaddr_storage name;
116343 	unsigned int name_len;
116344 };
116345 
116346 struct gnet_estimator {
116347 	signed char interval;
116348 	unsigned char ewma_log;
116349 };
116350 
116351 struct net_rate_estimator {
116352 	struct gnet_stats_basic_sync *bstats;
116353 	spinlock_t *stats_lock;
116354 	bool running;
116355 	struct gnet_stats_basic_sync *cpu_bstats;
116356 	u8 ewma_log;
116357 	u8 intvl_log;
116358 	seqcount_t seq;
116359 	u64 last_packets;
116360 	u64 last_bytes;
116361 	u64 avpps;
116362 	u64 avbps;
116363 	long unsigned int next_jiffies;
116364 	struct timer_list timer;
116365 	struct callback_head rcu;
116366 };
116367 
116368 enum {
116369 	IF_LINK_MODE_DEFAULT = 0,
116370 	IF_LINK_MODE_DORMANT = 1,
116371 	IF_LINK_MODE_TESTING = 2,
116372 };
116373 
116374 enum lw_bits {
116375 	LW_URGENT = 0,
116376 };
116377 
116378 struct tso_t {
116379 	int next_frag_idx;
116380 	int size;
116381 	void *data;
116382 	u16 ip_id;
116383 	u8 tlen;
116384 	bool ipv6;
116385 	u32 tcp_seq;
116386 };
116387 
116388 struct xdp_frame_bulk {
116389 	int count;
116390 	void *xa;
116391 	void *q[16];
116392 };
116393 
116394 struct xdp_attachment_info {
116395 	struct bpf_prog *prog;
116396 	u32 flags;
116397 };
116398 
116399 struct fib_rule_uid_range {
116400 	__u32 start;
116401 	__u32 end;
116402 };
116403 
116404 struct fib_rule_notifier_info {
116405 	struct fib_notifier_info info;
116406 	struct fib_rule *rule;
116407 };
116408 
116409 struct gro_cell {
116410 	struct sk_buff_head napi_skbs;
116411 	struct napi_struct napi;
116412 };
116413 
116414 struct percpu_free_defer {
116415 	struct callback_head rcu;
116416 	void *ptr;
116417 };
116418 
116419 enum {
116420 	SK_DIAG_BPF_STORAGE_REQ_NONE = 0,
116421 	SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 1,
116422 	__SK_DIAG_BPF_STORAGE_REQ_MAX = 2,
116423 };
116424 
116425 enum {
116426 	SK_DIAG_BPF_STORAGE_REP_NONE = 0,
116427 	SK_DIAG_BPF_STORAGE = 1,
116428 	__SK_DIAG_BPF_STORAGE_REP_MAX = 2,
116429 };
116430 
116431 enum {
116432 	SK_DIAG_BPF_STORAGE_NONE = 0,
116433 	SK_DIAG_BPF_STORAGE_PAD = 1,
116434 	SK_DIAG_BPF_STORAGE_MAP_ID = 2,
116435 	SK_DIAG_BPF_STORAGE_MAP_VALUE = 3,
116436 	__SK_DIAG_BPF_STORAGE_MAX = 4,
116437 };
116438 
116439 typedef u64 (*btf_bpf_sk_storage_get)(struct bpf_map *, struct sock *, void *, u64, gfp_t);
116440 
116441 typedef u64 (*btf_bpf_sk_storage_delete)(struct bpf_map *, struct sock *);
116442 
116443 typedef u64 (*btf_bpf_sk_storage_get_tracing)(struct bpf_map *, struct sock *, void *, u64, gfp_t);
116444 
116445 typedef u64 (*btf_bpf_sk_storage_delete_tracing)(struct bpf_map *, struct sock *);
116446 
116447 struct bpf_sk_storage_diag {
116448 	u32 nr_maps;
116449 	struct bpf_map *maps[0];
116450 };
116451 
116452 struct bpf_iter_seq_sk_storage_map_info {
116453 	struct bpf_map *map;
116454 	unsigned int bucket_id;
116455 	unsigned int skip_elems;
116456 };
116457 
116458 struct bpf_iter__bpf_sk_storage_map {
116459 	union {
116460 		struct bpf_iter_meta *meta;
116461 	};
116462 	union {
116463 		struct bpf_map *map;
116464 	};
116465 	union {
116466 		struct sock *sk;
116467 	};
116468 	union {
116469 		void *value;
116470 	};
116471 };
116472 
116473 struct fch_hdr {
116474 	__u8 daddr[6];
116475 	__u8 saddr[6];
116476 };
116477 
116478 struct fcllc {
116479 	__u8 dsap;
116480 	__u8 ssap;
116481 	__u8 llc;
116482 	__u8 protid[3];
116483 	__be16 ethertype;
116484 };
116485 
116486 struct sch_frag_data {
116487 	long unsigned int dst;
116488 	struct qdisc_skb_cb cb;
116489 	__be16 inner_protocol;
116490 	u16 vlan_tci;
116491 	__be16 vlan_proto;
116492 	unsigned int l2_len;
116493 	u8 l2_data[18];
116494 	int (*xmit)(struct sk_buff *);
116495 };
116496 
116497 struct psample_group {
116498 	struct list_head list;
116499 	struct net *net;
116500 	u32 group_num;
116501 	u32 refcount;
116502 	u32 seq;
116503 	struct callback_head rcu;
116504 };
116505 
116506 struct action_gate_entry {
116507 	u8 gate_state;
116508 	u32 interval;
116509 	s32 ipv;
116510 	s32 maxoctets;
116511 };
116512 
116513 enum qdisc_class_ops_flags {
116514 	QDISC_CLASS_OPS_DOIT_UNLOCKED = 1,
116515 };
116516 
116517 enum tcf_proto_ops_flags {
116518 	TCF_PROTO_OPS_DOIT_UNLOCKED = 1,
116519 };
116520 
116521 typedef void tcf_chain_head_change_t(struct tcf_proto *, void *);
116522 
116523 struct tcf_block_ext_info {
116524 	enum flow_block_binder_type binder_type;
116525 	tcf_chain_head_change_t *chain_head_change;
116526 	void *chain_head_change_priv;
116527 	u32 block_index;
116528 };
116529 
116530 struct tcf_qevent {
116531 	struct tcf_block *block;
116532 	struct tcf_block_ext_info info;
116533 	struct tcf_proto *filter_chain;
116534 };
116535 
116536 struct tcf_filter_chain_list_item {
116537 	struct list_head list;
116538 	tcf_chain_head_change_t *chain_head_change;
116539 	void *chain_head_change_priv;
116540 };
116541 
116542 struct tcf_net {
116543 	spinlock_t idr_lock;
116544 	struct idr idr;
116545 };
116546 
116547 struct tcf_block_owner_item {
116548 	struct list_head list;
116549 	struct Qdisc *q;
116550 	enum flow_block_binder_type binder_type;
116551 };
116552 
116553 struct tcf_chain_info {
116554 	struct tcf_proto **pprev;
116555 	struct tcf_proto *next;
116556 };
116557 
116558 struct tcf_dump_args {
116559 	struct tcf_walker w;
116560 	struct sk_buff *skb;
116561 	struct netlink_callback *cb;
116562 	struct tcf_block *block;
116563 	struct Qdisc *q;
116564 	u32 parent;
116565 	bool terse_dump;
116566 };
116567 
116568 struct netlink_diag_req {
116569 	__u8 sdiag_family;
116570 	__u8 sdiag_protocol;
116571 	__u16 pad;
116572 	__u32 ndiag_ino;
116573 	__u32 ndiag_show;
116574 	__u32 ndiag_cookie[2];
116575 };
116576 
116577 struct netlink_diag_msg {
116578 	__u8 ndiag_family;
116579 	__u8 ndiag_type;
116580 	__u8 ndiag_protocol;
116581 	__u8 ndiag_state;
116582 	__u32 ndiag_portid;
116583 	__u32 ndiag_dst_portid;
116584 	__u32 ndiag_dst_group;
116585 	__u32 ndiag_ino;
116586 	__u32 ndiag_cookie[2];
116587 };
116588 
116589 enum {
116590 	NETLINK_DIAG_MEMINFO = 0,
116591 	NETLINK_DIAG_GROUPS = 1,
116592 	NETLINK_DIAG_RX_RING = 2,
116593 	NETLINK_DIAG_TX_RING = 3,
116594 	NETLINK_DIAG_FLAGS = 4,
116595 	__NETLINK_DIAG_MAX = 5,
116596 };
116597 
116598 struct ethtool_value {
116599 	__u32 cmd;
116600 	__u32 data;
116601 };
116602 
116603 enum tunable_type_id {
116604 	ETHTOOL_TUNABLE_UNSPEC = 0,
116605 	ETHTOOL_TUNABLE_U8 = 1,
116606 	ETHTOOL_TUNABLE_U16 = 2,
116607 	ETHTOOL_TUNABLE_U32 = 3,
116608 	ETHTOOL_TUNABLE_U64 = 4,
116609 	ETHTOOL_TUNABLE_STRING = 5,
116610 	ETHTOOL_TUNABLE_S8 = 6,
116611 	ETHTOOL_TUNABLE_S16 = 7,
116612 	ETHTOOL_TUNABLE_S32 = 8,
116613 	ETHTOOL_TUNABLE_S64 = 9,
116614 };
116615 
116616 struct ethtool_gstrings {
116617 	__u32 cmd;
116618 	__u32 string_set;
116619 	__u32 len;
116620 	__u8 data[0];
116621 };
116622 
116623 struct ethtool_sset_info {
116624 	__u32 cmd;
116625 	__u32 reserved;
116626 	__u64 sset_mask;
116627 	__u32 data[0];
116628 };
116629 
116630 struct ethtool_perm_addr {
116631 	__u32 cmd;
116632 	__u32 size;
116633 	__u8 data[0];
116634 };
116635 
116636 enum ethtool_flags {
116637 	ETH_FLAG_TXVLAN = 128,
116638 	ETH_FLAG_RXVLAN = 256,
116639 	ETH_FLAG_LRO = 32768,
116640 	ETH_FLAG_NTUPLE = 134217728,
116641 	ETH_FLAG_RXHASH = 268435456,
116642 };
116643 
116644 struct ethtool_rxfh {
116645 	__u32 cmd;
116646 	__u32 rss_context;
116647 	__u32 indir_size;
116648 	__u32 key_size;
116649 	__u8 hfunc;
116650 	__u8 rsvd8[3];
116651 	__u32 rsvd32;
116652 	__u32 rss_config[0];
116653 };
116654 
116655 struct ethtool_get_features_block {
116656 	__u32 available;
116657 	__u32 requested;
116658 	__u32 active;
116659 	__u32 never_changed;
116660 };
116661 
116662 struct ethtool_gfeatures {
116663 	__u32 cmd;
116664 	__u32 size;
116665 	struct ethtool_get_features_block features[0];
116666 };
116667 
116668 struct ethtool_set_features_block {
116669 	__u32 valid;
116670 	__u32 requested;
116671 };
116672 
116673 struct ethtool_sfeatures {
116674 	__u32 cmd;
116675 	__u32 size;
116676 	struct ethtool_set_features_block features[0];
116677 };
116678 
116679 enum ethtool_sfeatures_retval_bits {
116680 	ETHTOOL_F_UNSUPPORTED__BIT = 0,
116681 	ETHTOOL_F_WISH__BIT = 1,
116682 	ETHTOOL_F_COMPAT__BIT = 2,
116683 };
116684 
116685 struct ethtool_per_queue_op {
116686 	__u32 cmd;
116687 	__u32 sub_command;
116688 	__u32 queue_mask[128];
116689 	char data[0];
116690 };
116691 
116692 enum ethtool_fec_config_bits {
116693 	ETHTOOL_FEC_NONE_BIT = 0,
116694 	ETHTOOL_FEC_AUTO_BIT = 1,
116695 	ETHTOOL_FEC_OFF_BIT = 2,
116696 	ETHTOOL_FEC_RS_BIT = 3,
116697 	ETHTOOL_FEC_BASER_BIT = 4,
116698 	ETHTOOL_FEC_LLRS_BIT = 5,
116699 };
116700 
116701 struct ethtool_rx_flow_rule {
116702 	struct flow_rule *rule;
116703 	long unsigned int priv[0];
116704 };
116705 
116706 struct ethtool_rx_flow_spec_input {
116707 	const struct ethtool_rx_flow_spec *fs;
116708 	u32 rss_ctx;
116709 };
116710 
116711 struct ethtool_devlink_compat {
116712 	struct devlink *devlink;
116713 	union {
116714 		struct ethtool_flash efl;
116715 		struct ethtool_drvinfo info;
116716 	};
116717 };
116718 
116719 struct ethtool_link_usettings {
116720 	struct ethtool_link_settings base;
116721 	struct {
116722 		__u32 supported[4];
116723 		__u32 advertising[4];
116724 		__u32 lp_advertising[4];
116725 	} link_modes;
116726 };
116727 
116728 struct ethtool_rx_flow_key {
116729 	struct flow_dissector_key_basic basic;
116730 	union {
116731 		struct flow_dissector_key_ipv4_addrs ipv4;
116732 		struct flow_dissector_key_ipv6_addrs ipv6;
116733 	};
116734 	struct flow_dissector_key_ports tp;
116735 	struct flow_dissector_key_ip ip;
116736 	struct flow_dissector_key_vlan vlan;
116737 	struct flow_dissector_key_eth_addrs eth_addrs;
116738 };
116739 
116740 struct ethtool_rx_flow_match {
116741 	struct flow_dissector dissector;
116742 	int: 32;
116743 	struct ethtool_rx_flow_key key;
116744 	struct ethtool_rx_flow_key mask;
116745 };
116746 
116747 struct linkinfo_reply_data {
116748 	struct ethnl_reply_data base;
116749 	struct ethtool_link_ksettings ksettings;
116750 	struct ethtool_link_settings *lsettings;
116751 };
116752 
116753 struct debug_reply_data {
116754 	struct ethnl_reply_data base;
116755 	u32 msg_mask;
116756 };
116757 
116758 enum ethtool_supported_ring_param {
116759 	ETHTOOL_RING_USE_RX_BUF_LEN = 1,
116760 	ETHTOOL_RING_USE_CQE_SIZE = 2,
116761 	ETHTOOL_RING_USE_TX_PUSH = 4,
116762 };
116763 
116764 enum {
116765 	ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0,
116766 	ETHTOOL_TCP_DATA_SPLIT_DISABLED = 1,
116767 	ETHTOOL_TCP_DATA_SPLIT_ENABLED = 2,
116768 };
116769 
116770 struct rings_reply_data {
116771 	struct ethnl_reply_data base;
116772 	struct ethtool_ringparam ringparam;
116773 	struct kernel_ethtool_ringparam kernel_ringparam;
116774 };
116775 
116776 struct eee_reply_data {
116777 	struct ethnl_reply_data base;
116778 	struct ethtool_eee eee;
116779 };
116780 
116781 enum {
116782 	ETHTOOL_A_FEC_STAT_UNSPEC = 0,
116783 	ETHTOOL_A_FEC_STAT_PAD = 1,
116784 	ETHTOOL_A_FEC_STAT_CORRECTED = 2,
116785 	ETHTOOL_A_FEC_STAT_UNCORR = 3,
116786 	ETHTOOL_A_FEC_STAT_CORR_BITS = 4,
116787 	__ETHTOOL_A_FEC_STAT_CNT = 5,
116788 	ETHTOOL_A_FEC_STAT_MAX = 4,
116789 };
116790 
116791 struct fec_stat_grp {
116792 	u64 stats[9];
116793 	u8 cnt;
116794 };
116795 
116796 struct fec_reply_data {
116797 	struct ethnl_reply_data base;
116798 	long unsigned int fec_link_modes[2];
116799 	u32 active_fec;
116800 	u8 fec_auto;
116801 	struct fec_stat_grp corr;
116802 	struct fec_stat_grp uncorr;
116803 	struct fec_stat_grp corr_bits;
116804 };
116805 
116806 struct phc_vclocks_reply_data {
116807 	struct ethnl_reply_data base;
116808 	int num;
116809 	int *index;
116810 };
116811 
116812 struct nf_loginfo {
116813 	u_int8_t type;
116814 	union {
116815 		struct {
116816 			u_int32_t copy_len;
116817 			u_int16_t group;
116818 			u_int16_t qthreshold;
116819 			u_int16_t flags;
116820 		} ulog;
116821 		struct {
116822 			u_int8_t level;
116823 			u_int8_t logflags;
116824 		} log;
116825 	} u;
116826 };
116827 
116828 struct nf_log_buf {
116829 	unsigned int count;
116830 	char buf[1020];
116831 };
116832 
116833 struct xt_entry_match {
116834 	union {
116835 		struct {
116836 			__u16 match_size;
116837 			char name[29];
116838 			__u8 revision;
116839 		} user;
116840 		struct {
116841 			__u16 match_size;
116842 			struct xt_match *match;
116843 		} kernel;
116844 		__u16 match_size;
116845 	} u;
116846 	unsigned char data[0];
116847 };
116848 
116849 struct xt_entry_target {
116850 	union {
116851 		struct {
116852 			__u16 target_size;
116853 			char name[29];
116854 			__u8 revision;
116855 		} user;
116856 		struct {
116857 			__u16 target_size;
116858 			struct xt_target *target;
116859 		} kernel;
116860 		__u16 target_size;
116861 	} u;
116862 	unsigned char data[0];
116863 };
116864 
116865 struct xt_standard_target {
116866 	struct xt_entry_target target;
116867 	int verdict;
116868 };
116869 
116870 struct xt_error_target {
116871 	struct xt_entry_target target;
116872 	char errorname[30];
116873 };
116874 
116875 struct xt_counters {
116876 	__u64 pcnt;
116877 	__u64 bcnt;
116878 };
116879 
116880 struct xt_counters_info {
116881 	char name[32];
116882 	unsigned int num_counters;
116883 	struct xt_counters counters[0];
116884 };
116885 
116886 struct xt_table_info;
116887 
116888 struct xt_table {
116889 	struct list_head list;
116890 	unsigned int valid_hooks;
116891 	struct xt_table_info *private;
116892 	struct nf_hook_ops *ops;
116893 	struct module *me;
116894 	u_int8_t af;
116895 	int priority;
116896 	const char name[32];
116897 };
116898 
116899 struct xt_table_info {
116900 	unsigned int size;
116901 	unsigned int number;
116902 	unsigned int initial_entries;
116903 	unsigned int hook_entry[5];
116904 	unsigned int underflow[5];
116905 	unsigned int stacksize;
116906 	void ***jumpstack;
116907 	unsigned char entries[0];
116908 };
116909 
116910 struct xt_percpu_counter_alloc_state {
116911 	unsigned int off;
116912 	const char *mem;
116913 };
116914 
116915 struct xt_template {
116916 	struct list_head list;
116917 	int (*table_init)(struct net *);
116918 	struct module *me;
116919 	char name[32];
116920 };
116921 
116922 struct xt_pernet {
116923 	struct list_head tables[11];
116924 };
116925 
116926 struct xt_af {
116927 	struct mutex mutex;
116928 	struct list_head match;
116929 	struct list_head target;
116930 };
116931 
116932 struct nf_mttg_trav {
116933 	struct list_head *head;
116934 	struct list_head *curr;
116935 	uint8_t class;
116936 };
116937 
116938 enum {
116939 	MTTG_TRAV_INIT = 0,
116940 	MTTG_TRAV_NFP_UNSPEC = 1,
116941 	MTTG_TRAV_NFP_SPEC = 2,
116942 	MTTG_TRAV_DONE = 3,
116943 };
116944 
116945 struct ipq {
116946 	struct inet_frag_queue q;
116947 	u8 ecn;
116948 	u16 max_df_size;
116949 	int iif;
116950 	unsigned int rid;
116951 	struct inet_peer *peer;
116952 };
116953 
116954 enum {
116955 	BPFILTER_IPT_SO_SET_REPLACE = 64,
116956 	BPFILTER_IPT_SO_SET_ADD_COUNTERS = 65,
116957 	BPFILTER_IPT_SET_MAX = 66,
116958 };
116959 
116960 enum {
116961 	BPFILTER_IPT_SO_GET_INFO = 64,
116962 	BPFILTER_IPT_SO_GET_ENTRIES = 65,
116963 	BPFILTER_IPT_SO_GET_REVISION_MATCH = 66,
116964 	BPFILTER_IPT_SO_GET_REVISION_TARGET = 67,
116965 	BPFILTER_IPT_GET_MAX = 68,
116966 };
116967 
116968 struct tcp_repair_opt {
116969 	__u32 opt_code;
116970 	__u32 opt_val;
116971 };
116972 
116973 struct tcp_repair_window {
116974 	__u32 snd_wl1;
116975 	__u32 snd_wnd;
116976 	__u32 max_window;
116977 	__u32 rcv_wnd;
116978 	__u32 rcv_wup;
116979 };
116980 
116981 enum {
116982 	TCP_NLA_PAD = 0,
116983 	TCP_NLA_BUSY = 1,
116984 	TCP_NLA_RWND_LIMITED = 2,
116985 	TCP_NLA_SNDBUF_LIMITED = 3,
116986 	TCP_NLA_DATA_SEGS_OUT = 4,
116987 	TCP_NLA_TOTAL_RETRANS = 5,
116988 	TCP_NLA_PACING_RATE = 6,
116989 	TCP_NLA_DELIVERY_RATE = 7,
116990 	TCP_NLA_SND_CWND = 8,
116991 	TCP_NLA_REORDERING = 9,
116992 	TCP_NLA_MIN_RTT = 10,
116993 	TCP_NLA_RECUR_RETRANS = 11,
116994 	TCP_NLA_DELIVERY_RATE_APP_LMT = 12,
116995 	TCP_NLA_SNDQ_SIZE = 13,
116996 	TCP_NLA_CA_STATE = 14,
116997 	TCP_NLA_SND_SSTHRESH = 15,
116998 	TCP_NLA_DELIVERED = 16,
116999 	TCP_NLA_DELIVERED_CE = 17,
117000 	TCP_NLA_BYTES_SENT = 18,
117001 	TCP_NLA_BYTES_RETRANS = 19,
117002 	TCP_NLA_DSACK_DUPS = 20,
117003 	TCP_NLA_REORD_SEEN = 21,
117004 	TCP_NLA_SRTT = 22,
117005 	TCP_NLA_TIMEOUT_REHASH = 23,
117006 	TCP_NLA_BYTES_NOTSENT = 24,
117007 	TCP_NLA_EDT = 25,
117008 	TCP_NLA_TTL = 26,
117009 	TCP_NLA_REHASH = 27,
117010 };
117011 
117012 struct tcp_zerocopy_receive {
117013 	__u64 address;
117014 	__u32 length;
117015 	__u32 recv_skip_hint;
117016 	__u32 inq;
117017 	__s32 err;
117018 	__u64 copybuf_address;
117019 	__s32 copybuf_len;
117020 	__u32 flags;
117021 	__u64 msg_control;
117022 	__u64 msg_controllen;
117023 	__u32 msg_flags;
117024 	__u32 reserved;
117025 };
117026 
117027 enum {
117028 	BPF_TCP_ESTABLISHED = 1,
117029 	BPF_TCP_SYN_SENT = 2,
117030 	BPF_TCP_SYN_RECV = 3,
117031 	BPF_TCP_FIN_WAIT1 = 4,
117032 	BPF_TCP_FIN_WAIT2 = 5,
117033 	BPF_TCP_TIME_WAIT = 6,
117034 	BPF_TCP_CLOSE = 7,
117035 	BPF_TCP_CLOSE_WAIT = 8,
117036 	BPF_TCP_LAST_ACK = 9,
117037 	BPF_TCP_LISTEN = 10,
117038 	BPF_TCP_CLOSING = 11,
117039 	BPF_TCP_NEW_SYN_RECV = 12,
117040 	BPF_TCP_MAX_STATES = 13,
117041 };
117042 
117043 enum {
117044 	TCP_CMSG_INQ = 1,
117045 	TCP_CMSG_TS = 2,
117046 };
117047 
117048 struct tcp_splice_state {
117049 	struct pipe_inode_info *pipe;
117050 	size_t len;
117051 	unsigned int flags;
117052 };
117053 
117054 struct bpf_tcp_iter_state {
117055 	struct tcp_iter_state state;
117056 	unsigned int cur_sk;
117057 	unsigned int end_sk;
117058 	unsigned int max_sk;
117059 	struct sock **batch;
117060 	bool st_bucket_done;
117061 };
117062 
117063 struct bpf_iter__tcp {
117064 	union {
117065 		struct bpf_iter_meta *meta;
117066 	};
117067 	union {
117068 		struct sock_common *sk_common;
117069 	};
117070 	uid_t uid;
117071 };
117072 
117073 enum ip_conntrack_status {
117074 	IPS_EXPECTED_BIT = 0,
117075 	IPS_EXPECTED = 1,
117076 	IPS_SEEN_REPLY_BIT = 1,
117077 	IPS_SEEN_REPLY = 2,
117078 	IPS_ASSURED_BIT = 2,
117079 	IPS_ASSURED = 4,
117080 	IPS_CONFIRMED_BIT = 3,
117081 	IPS_CONFIRMED = 8,
117082 	IPS_SRC_NAT_BIT = 4,
117083 	IPS_SRC_NAT = 16,
117084 	IPS_DST_NAT_BIT = 5,
117085 	IPS_DST_NAT = 32,
117086 	IPS_NAT_MASK = 48,
117087 	IPS_SEQ_ADJUST_BIT = 6,
117088 	IPS_SEQ_ADJUST = 64,
117089 	IPS_SRC_NAT_DONE_BIT = 7,
117090 	IPS_SRC_NAT_DONE = 128,
117091 	IPS_DST_NAT_DONE_BIT = 8,
117092 	IPS_DST_NAT_DONE = 256,
117093 	IPS_NAT_DONE_MASK = 384,
117094 	IPS_DYING_BIT = 9,
117095 	IPS_DYING = 512,
117096 	IPS_FIXED_TIMEOUT_BIT = 10,
117097 	IPS_FIXED_TIMEOUT = 1024,
117098 	IPS_TEMPLATE_BIT = 11,
117099 	IPS_TEMPLATE = 2048,
117100 	IPS_UNTRACKED_BIT = 12,
117101 	IPS_UNTRACKED = 4096,
117102 	IPS_NAT_CLASH_BIT = 12,
117103 	IPS_NAT_CLASH = 4096,
117104 	IPS_HELPER_BIT = 13,
117105 	IPS_HELPER = 8192,
117106 	IPS_OFFLOAD_BIT = 14,
117107 	IPS_OFFLOAD = 16384,
117108 	IPS_HW_OFFLOAD_BIT = 15,
117109 	IPS_HW_OFFLOAD = 32768,
117110 	IPS_UNCHANGEABLE_MASK = 56313,
117111 	__IPS_MAX_BIT = 16,
117112 };
117113 
117114 struct icmp_ext_hdr {
117115 	__u8 reserved1: 4;
117116 	__u8 version: 4;
117117 	__u8 reserved2;
117118 	__sum16 checksum;
117119 };
117120 
117121 struct icmp_extobj_hdr {
117122 	__be16 length;
117123 	__u8 class_num;
117124 	__u8 class_type;
117125 };
117126 
117127 struct icmp_ext_echo_ctype3_hdr {
117128 	__be16 afi;
117129 	__u8 addrlen;
117130 	__u8 reserved;
117131 };
117132 
117133 struct icmp_ext_echo_iio {
117134 	struct icmp_extobj_hdr extobj_hdr;
117135 	union {
117136 		char name[16];
117137 		__be32 ifindex;
117138 		struct {
117139 			struct icmp_ext_echo_ctype3_hdr ctype3_hdr;
117140 			union {
117141 				__be32 ipv4_addr;
117142 				struct in6_addr ipv6_addr;
117143 			} ip_addr;
117144 		} addr;
117145 	} ident;
117146 };
117147 
117148 struct icmp_bxm {
117149 	struct sk_buff *skb;
117150 	int offset;
117151 	int data_len;
117152 	struct {
117153 		struct icmphdr icmph;
117154 		__be32 times[3];
117155 	} data;
117156 	int head_len;
117157 	struct ip_options_data replyopts;
117158 };
117159 
117160 struct icmp_control {
117161 	enum skb_drop_reason (*handler)(struct sk_buff *);
117162 	short int error;
117163 };
117164 
117165 struct fib_nh_notifier_info {
117166 	struct fib_notifier_info info;
117167 	struct fib_nh *fib_nh;
117168 };
117169 
117170 struct ping_table {
117171 	struct hlist_nulls_head hash[64];
117172 	spinlock_t lock;
117173 };
117174 
117175 struct ip_tunnel_net {
117176 	struct net_device *fb_tunnel_dev;
117177 	struct rtnl_link_ops *rtnl_link_ops;
117178 	struct hlist_head tunnels[128];
117179 	struct ip_tunnel *collect_md_tun;
117180 	int type;
117181 };
117182 
117183 typedef short unsigned int vifi_t;
117184 
117185 struct vifctl {
117186 	vifi_t vifc_vifi;
117187 	unsigned char vifc_flags;
117188 	unsigned char vifc_threshold;
117189 	unsigned int vifc_rate_limit;
117190 	union {
117191 		struct in_addr vifc_lcl_addr;
117192 		int vifc_lcl_ifindex;
117193 	};
117194 	struct in_addr vifc_rmt_addr;
117195 };
117196 
117197 struct mfcctl {
117198 	struct in_addr mfcc_origin;
117199 	struct in_addr mfcc_mcastgrp;
117200 	vifi_t mfcc_parent;
117201 	unsigned char mfcc_ttls[32];
117202 	unsigned int mfcc_pkt_cnt;
117203 	unsigned int mfcc_byte_cnt;
117204 	unsigned int mfcc_wrong_if;
117205 	int mfcc_expire;
117206 };
117207 
117208 struct sioc_sg_req {
117209 	struct in_addr src;
117210 	struct in_addr grp;
117211 	long unsigned int pktcnt;
117212 	long unsigned int bytecnt;
117213 	long unsigned int wrong_if;
117214 };
117215 
117216 struct sioc_vif_req {
117217 	vifi_t vifi;
117218 	long unsigned int icount;
117219 	long unsigned int ocount;
117220 	long unsigned int ibytes;
117221 	long unsigned int obytes;
117222 };
117223 
117224 struct igmpmsg {
117225 	__u32 unused1;
117226 	__u32 unused2;
117227 	unsigned char im_msgtype;
117228 	unsigned char im_mbz;
117229 	unsigned char im_vif;
117230 	unsigned char im_vif_hi;
117231 	struct in_addr im_src;
117232 	struct in_addr im_dst;
117233 };
117234 
117235 enum {
117236 	IPMRA_TABLE_UNSPEC = 0,
117237 	IPMRA_TABLE_ID = 1,
117238 	IPMRA_TABLE_CACHE_RES_QUEUE_LEN = 2,
117239 	IPMRA_TABLE_MROUTE_REG_VIF_NUM = 3,
117240 	IPMRA_TABLE_MROUTE_DO_ASSERT = 4,
117241 	IPMRA_TABLE_MROUTE_DO_PIM = 5,
117242 	IPMRA_TABLE_VIFS = 6,
117243 	IPMRA_TABLE_MROUTE_DO_WRVIFWHOLE = 7,
117244 	__IPMRA_TABLE_MAX = 8,
117245 };
117246 
117247 enum {
117248 	IPMRA_VIF_UNSPEC = 0,
117249 	IPMRA_VIF = 1,
117250 	__IPMRA_VIF_MAX = 2,
117251 };
117252 
117253 enum {
117254 	IPMRA_VIFA_UNSPEC = 0,
117255 	IPMRA_VIFA_IFINDEX = 1,
117256 	IPMRA_VIFA_VIF_ID = 2,
117257 	IPMRA_VIFA_FLAGS = 3,
117258 	IPMRA_VIFA_BYTES_IN = 4,
117259 	IPMRA_VIFA_BYTES_OUT = 5,
117260 	IPMRA_VIFA_PACKETS_IN = 6,
117261 	IPMRA_VIFA_PACKETS_OUT = 7,
117262 	IPMRA_VIFA_LOCAL_ADDR = 8,
117263 	IPMRA_VIFA_REMOTE_ADDR = 9,
117264 	IPMRA_VIFA_PAD = 10,
117265 	__IPMRA_VIFA_MAX = 11,
117266 };
117267 
117268 enum {
117269 	IPMRA_CREPORT_UNSPEC = 0,
117270 	IPMRA_CREPORT_MSGTYPE = 1,
117271 	IPMRA_CREPORT_VIF_ID = 2,
117272 	IPMRA_CREPORT_SRC_ADDR = 3,
117273 	IPMRA_CREPORT_DST_ADDR = 4,
117274 	IPMRA_CREPORT_PKT = 5,
117275 	IPMRA_CREPORT_TABLE = 6,
117276 	__IPMRA_CREPORT_MAX = 7,
117277 };
117278 
117279 struct mfc_cache_cmp_arg {
117280 	__be32 mfc_mcastgrp;
117281 	__be32 mfc_origin;
117282 };
117283 
117284 struct mfc_cache {
117285 	struct mr_mfc _c;
117286 	union {
117287 		struct {
117288 			__be32 mfc_mcastgrp;
117289 			__be32 mfc_origin;
117290 		};
117291 		struct mfc_cache_cmp_arg cmparg;
117292 	};
117293 };
117294 
117295 struct bictcp {
117296 	u32 cnt;
117297 	u32 last_max_cwnd;
117298 	u32 last_cwnd;
117299 	u32 last_time;
117300 	u32 bic_origin_point;
117301 	u32 bic_K;
117302 	u32 delay_min;
117303 	u32 epoch_start;
117304 	u32 ack_cnt;
117305 	u32 tcp_cwnd;
117306 	u16 unused;
117307 	u8 sample_cnt;
117308 	u8 found;
117309 	u32 round_start;
117310 	u32 end_seq;
117311 	u32 last_ack;
117312 	u32 curr_rtt;
117313 };
117314 
117315 typedef u64 (*btf_bpf_tcp_send_ack)(struct tcp_sock *, u32);
117316 
117317 struct xfrm_algo_list {
117318 	struct xfrm_algo_desc *algs;
117319 	int entries;
117320 	u32 type;
117321 	u32 mask;
117322 };
117323 
117324 struct xfrm_aead_name {
117325 	const char *name;
117326 	int icvbits;
117327 };
117328 
117329 struct ioam6_pernet_data {
117330 	struct mutex lock;
117331 	struct rhashtable namespaces;
117332 	struct rhashtable schemas;
117333 };
117334 
117335 struct ifaddrlblmsg {
117336 	__u8 ifal_family;
117337 	__u8 __ifal_reserved;
117338 	__u8 ifal_prefixlen;
117339 	__u8 ifal_flags;
117340 	__u32 ifal_index;
117341 	__u32 ifal_seq;
117342 };
117343 
117344 enum {
117345 	IFAL_ADDRESS = 1,
117346 	IFAL_LABEL = 2,
117347 	__IFAL_MAX = 3,
117348 };
117349 
117350 struct ip6addrlbl_entry {
117351 	struct in6_addr prefix;
117352 	int prefixlen;
117353 	int ifindex;
117354 	int addrtype;
117355 	u32 label;
117356 	struct hlist_node list;
117357 	struct callback_head rcu;
117358 };
117359 
117360 struct ip6addrlbl_init_table {
117361 	const struct in6_addr *prefix;
117362 	int prefixlen;
117363 	u32 label;
117364 };
117365 
117366 enum fib6_walk_state {
117367 	FWS_S = 0,
117368 	FWS_L = 1,
117369 	FWS_R = 2,
117370 	FWS_C = 3,
117371 	FWS_U = 4,
117372 };
117373 
117374 struct fib6_walker {
117375 	struct list_head lh;
117376 	struct fib6_node *root;
117377 	struct fib6_node *node;
117378 	struct fib6_info *leaf;
117379 	enum fib6_walk_state state;
117380 	unsigned int skip;
117381 	unsigned int count;
117382 	unsigned int skip_in_node;
117383 	int (*func)(struct fib6_walker *);
117384 	void *args;
117385 };
117386 
117387 struct fib6_entry_notifier_info {
117388 	struct fib_notifier_info info;
117389 	struct fib6_info *rt;
117390 	unsigned int nsiblings;
117391 };
117392 
117393 struct ipv6_route_iter {
117394 	struct seq_net_private p;
117395 	struct fib6_walker w;
117396 	loff_t skip;
117397 	struct fib6_table *tbl;
117398 	int sernum;
117399 };
117400 
117401 struct bpf_iter__ipv6_route {
117402 	union {
117403 		struct bpf_iter_meta *meta;
117404 	};
117405 	union {
117406 		struct fib6_info *rt;
117407 	};
117408 };
117409 
117410 struct fib6_cleaner {
117411 	struct fib6_walker w;
117412 	struct net *net;
117413 	int (*func)(struct fib6_info *, void *);
117414 	int sernum;
117415 	void *arg;
117416 	bool skip_notify;
117417 };
117418 
117419 enum {
117420 	FIB6_NO_SERNUM_CHANGE = 0,
117421 };
117422 
117423 struct fib6_dump_arg {
117424 	struct net *net;
117425 	struct notifier_block *nb;
117426 	struct netlink_ext_ack *extack;
117427 };
117428 
117429 struct fib6_nh_pcpu_arg {
117430 	struct fib6_info *from;
117431 	const struct fib6_table *table;
117432 };
117433 
117434 struct lookup_args {
117435 	int offset;
117436 	const struct in6_addr *addr;
117437 };
117438 
117439 enum ip6_defrag_users {
117440 	IP6_DEFRAG_LOCAL_DELIVER = 0,
117441 	IP6_DEFRAG_CONNTRACK_IN = 1,
117442 	__IP6_DEFRAG_CONNTRACK_IN = 65536,
117443 	IP6_DEFRAG_CONNTRACK_OUT = 65537,
117444 	__IP6_DEFRAG_CONNTRACK_OUT = 131072,
117445 	IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 131073,
117446 	__IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 196608,
117447 };
117448 
117449 struct frag_queue {
117450 	struct inet_frag_queue q;
117451 	int iif;
117452 	__u16 nhoffset;
117453 	u8 ecn;
117454 };
117455 
117456 struct rt0_hdr {
117457 	struct ipv6_rt_hdr rt_hdr;
117458 	__u32 reserved;
117459 	struct in6_addr addr[0];
117460 };
117461 
117462 struct ioam6_hdr {
117463 	__u8 opt_type;
117464 	__u8 opt_len;
117465 	char: 8;
117466 	__u8 type;
117467 };
117468 
117469 struct ioam6_trace_hdr {
117470 	__be16 namespace_id;
117471 	char: 2;
117472 	__u8 overflow: 1;
117473 	__u8 nodelen: 5;
117474 	__u8 remlen: 7;
117475 	union {
117476 		__be32 type_be32;
117477 		struct {
117478 			__u32 bit7: 1;
117479 			__u32 bit6: 1;
117480 			__u32 bit5: 1;
117481 			__u32 bit4: 1;
117482 			__u32 bit3: 1;
117483 			__u32 bit2: 1;
117484 			__u32 bit1: 1;
117485 			__u32 bit0: 1;
117486 			__u32 bit15: 1;
117487 			__u32 bit14: 1;
117488 			__u32 bit13: 1;
117489 			__u32 bit12: 1;
117490 			__u32 bit11: 1;
117491 			__u32 bit10: 1;
117492 			__u32 bit9: 1;
117493 			__u32 bit8: 1;
117494 			__u32 bit23: 1;
117495 			__u32 bit22: 1;
117496 			__u32 bit21: 1;
117497 			__u32 bit20: 1;
117498 			__u32 bit19: 1;
117499 			__u32 bit18: 1;
117500 			__u32 bit17: 1;
117501 			__u32 bit16: 1;
117502 		} type;
117503 	};
117504 	__u8 data[0];
117505 };
117506 
117507 struct ioam6_schema;
117508 
117509 struct ioam6_namespace {
117510 	struct rhash_head head;
117511 	struct callback_head rcu;
117512 	struct ioam6_schema *schema;
117513 	__be16 id;
117514 	__be32 data;
117515 	__be64 data_wide;
117516 };
117517 
117518 struct ioam6_schema {
117519 	struct rhash_head head;
117520 	struct callback_head rcu;
117521 	struct ioam6_namespace *ns;
117522 	u32 id;
117523 	int len;
117524 	__be32 hdr;
117525 	u8 data[0];
117526 };
117527 
117528 enum {
117529 	IOAM6_ATTR_UNSPEC = 0,
117530 	IOAM6_ATTR_NS_ID = 1,
117531 	IOAM6_ATTR_NS_DATA = 2,
117532 	IOAM6_ATTR_NS_DATA_WIDE = 3,
117533 	IOAM6_ATTR_SC_ID = 4,
117534 	IOAM6_ATTR_SC_DATA = 5,
117535 	IOAM6_ATTR_SC_NONE = 6,
117536 	IOAM6_ATTR_PAD = 7,
117537 	__IOAM6_ATTR_MAX = 8,
117538 };
117539 
117540 enum {
117541 	IOAM6_CMD_UNSPEC = 0,
117542 	IOAM6_CMD_ADD_NAMESPACE = 1,
117543 	IOAM6_CMD_DEL_NAMESPACE = 2,
117544 	IOAM6_CMD_DUMP_NAMESPACES = 3,
117545 	IOAM6_CMD_ADD_SCHEMA = 4,
117546 	IOAM6_CMD_DEL_SCHEMA = 5,
117547 	IOAM6_CMD_DUMP_SCHEMAS = 6,
117548 	IOAM6_CMD_NS_SET_SCHEMA = 7,
117549 	__IOAM6_CMD_MAX = 8,
117550 };
117551 
117552 struct fib6_rule {
117553 	struct fib_rule common;
117554 	struct rt6key src;
117555 	struct rt6key dst;
117556 	dscp_t dscp;
117557 };
117558 
117559 enum {
117560 	SEG6_LOCAL_UNSPEC = 0,
117561 	SEG6_LOCAL_ACTION = 1,
117562 	SEG6_LOCAL_SRH = 2,
117563 	SEG6_LOCAL_TABLE = 3,
117564 	SEG6_LOCAL_NH4 = 4,
117565 	SEG6_LOCAL_NH6 = 5,
117566 	SEG6_LOCAL_IIF = 6,
117567 	SEG6_LOCAL_OIF = 7,
117568 	SEG6_LOCAL_BPF = 8,
117569 	SEG6_LOCAL_VRFTABLE = 9,
117570 	SEG6_LOCAL_COUNTERS = 10,
117571 	SEG6_LOCAL_FLAVORS = 11,
117572 	__SEG6_LOCAL_MAX = 12,
117573 };
117574 
117575 enum {
117576 	SEG6_LOCAL_BPF_PROG_UNSPEC = 0,
117577 	SEG6_LOCAL_BPF_PROG = 1,
117578 	SEG6_LOCAL_BPF_PROG_NAME = 2,
117579 	__SEG6_LOCAL_BPF_PROG_MAX = 3,
117580 };
117581 
117582 enum {
117583 	SEG6_LOCAL_CNT_UNSPEC = 0,
117584 	SEG6_LOCAL_CNT_PAD = 1,
117585 	SEG6_LOCAL_CNT_PACKETS = 2,
117586 	SEG6_LOCAL_CNT_BYTES = 3,
117587 	SEG6_LOCAL_CNT_ERRORS = 4,
117588 	__SEG6_LOCAL_CNT_MAX = 5,
117589 };
117590 
117591 enum {
117592 	SEG6_LOCAL_FLV_UNSPEC = 0,
117593 	SEG6_LOCAL_FLV_OPERATION = 1,
117594 	SEG6_LOCAL_FLV_LCBLOCK_BITS = 2,
117595 	SEG6_LOCAL_FLV_LCNODE_FN_BITS = 3,
117596 	__SEG6_LOCAL_FLV_MAX = 4,
117597 };
117598 
117599 enum {
117600 	SEG6_LOCAL_FLV_OP_UNSPEC = 0,
117601 	SEG6_LOCAL_FLV_OP_PSP = 1,
117602 	SEG6_LOCAL_FLV_OP_USP = 2,
117603 	SEG6_LOCAL_FLV_OP_USD = 3,
117604 	SEG6_LOCAL_FLV_OP_NEXT_CSID = 4,
117605 	__SEG6_LOCAL_FLV_OP_MAX = 5,
117606 };
117607 
117608 struct seg6_local_lwt;
117609 
117610 struct seg6_local_lwtunnel_ops {
117611 	int (*build_state)(struct seg6_local_lwt *, const void *, struct netlink_ext_ack *);
117612 	void (*destroy_state)(struct seg6_local_lwt *);
117613 };
117614 
117615 enum seg6_end_dt_mode {
117616 	DT_INVALID_MODE = -22,
117617 	DT_LEGACY_MODE = 0,
117618 	DT_VRF_MODE = 1,
117619 };
117620 
117621 struct seg6_end_dt_info {
117622 	enum seg6_end_dt_mode mode;
117623 	struct net *net;
117624 	int vrf_ifindex;
117625 	int vrf_table;
117626 	u16 family;
117627 };
117628 
117629 struct seg6_flavors_info {
117630 	__u32 flv_ops;
117631 	__u8 lcblock_bits;
117632 	__u8 lcnode_func_bits;
117633 };
117634 
117635 struct pcpu_seg6_local_counters;
117636 
117637 struct seg6_action_desc;
117638 
117639 struct seg6_local_lwt {
117640 	int action;
117641 	struct ipv6_sr_hdr *srh;
117642 	int table;
117643 	struct in_addr nh4;
117644 	struct in6_addr nh6;
117645 	int iif;
117646 	int oif;
117647 	struct bpf_lwt_prog bpf;
117648 	struct seg6_end_dt_info dt_info;
117649 	struct seg6_flavors_info flv_info;
117650 	struct pcpu_seg6_local_counters *pcpu_counters;
117651 	int headroom;
117652 	struct seg6_action_desc *desc;
117653 	long unsigned int parsed_optattrs;
117654 };
117655 
117656 struct seg6_action_desc {
117657 	int action;
117658 	long unsigned int attrs;
117659 	long unsigned int optattrs;
117660 	int (*input)(struct sk_buff *, struct seg6_local_lwt *);
117661 	int static_headroom;
117662 	struct seg6_local_lwtunnel_ops slwt_ops;
117663 };
117664 
117665 struct pcpu_seg6_local_counters {
117666 	u64_stats_t packets;
117667 	u64_stats_t bytes;
117668 	u64_stats_t errors;
117669 	struct u64_stats_sync syncp;
117670 };
117671 
117672 struct seg6_local_counters {
117673 	__u64 packets;
117674 	__u64 bytes;
117675 	__u64 errors;
117676 };
117677 
117678 struct seg6_action_param {
117679 	int (*parse)(struct nlattr **, struct seg6_local_lwt *, struct netlink_ext_ack *);
117680 	int (*put)(struct sk_buff *, struct seg6_local_lwt *);
117681 	int (*cmp)(struct seg6_local_lwt *, struct seg6_local_lwt *);
117682 	void (*destroy)(struct seg6_local_lwt *);
117683 };
117684 
117685 struct sadb_msg {
117686 	__u8 sadb_msg_version;
117687 	__u8 sadb_msg_type;
117688 	__u8 sadb_msg_errno;
117689 	__u8 sadb_msg_satype;
117690 	__u16 sadb_msg_len;
117691 	__u16 sadb_msg_reserved;
117692 	__u32 sadb_msg_seq;
117693 	__u32 sadb_msg_pid;
117694 };
117695 
117696 struct sadb_ext {
117697 	__u16 sadb_ext_len;
117698 	__u16 sadb_ext_type;
117699 };
117700 
117701 struct sadb_sa {
117702 	__u16 sadb_sa_len;
117703 	__u16 sadb_sa_exttype;
117704 	__be32 sadb_sa_spi;
117705 	__u8 sadb_sa_replay;
117706 	__u8 sadb_sa_state;
117707 	__u8 sadb_sa_auth;
117708 	__u8 sadb_sa_encrypt;
117709 	__u32 sadb_sa_flags;
117710 };
117711 
117712 struct sadb_lifetime {
117713 	__u16 sadb_lifetime_len;
117714 	__u16 sadb_lifetime_exttype;
117715 	__u32 sadb_lifetime_allocations;
117716 	__u64 sadb_lifetime_bytes;
117717 	__u64 sadb_lifetime_addtime;
117718 	__u64 sadb_lifetime_usetime;
117719 };
117720 
117721 struct sadb_address {
117722 	__u16 sadb_address_len;
117723 	__u16 sadb_address_exttype;
117724 	__u8 sadb_address_proto;
117725 	__u8 sadb_address_prefixlen;
117726 	__u16 sadb_address_reserved;
117727 };
117728 
117729 struct sadb_key {
117730 	__u16 sadb_key_len;
117731 	__u16 sadb_key_exttype;
117732 	__u16 sadb_key_bits;
117733 	__u16 sadb_key_reserved;
117734 };
117735 
117736 struct sadb_prop {
117737 	__u16 sadb_prop_len;
117738 	__u16 sadb_prop_exttype;
117739 	__u8 sadb_prop_replay;
117740 	__u8 sadb_prop_reserved[3];
117741 };
117742 
117743 struct sadb_comb {
117744 	__u8 sadb_comb_auth;
117745 	__u8 sadb_comb_encrypt;
117746 	__u16 sadb_comb_flags;
117747 	__u16 sadb_comb_auth_minbits;
117748 	__u16 sadb_comb_auth_maxbits;
117749 	__u16 sadb_comb_encrypt_minbits;
117750 	__u16 sadb_comb_encrypt_maxbits;
117751 	__u32 sadb_comb_reserved;
117752 	__u32 sadb_comb_soft_allocations;
117753 	__u32 sadb_comb_hard_allocations;
117754 	__u64 sadb_comb_soft_bytes;
117755 	__u64 sadb_comb_hard_bytes;
117756 	__u64 sadb_comb_soft_addtime;
117757 	__u64 sadb_comb_hard_addtime;
117758 	__u64 sadb_comb_soft_usetime;
117759 	__u64 sadb_comb_hard_usetime;
117760 };
117761 
117762 struct sadb_supported {
117763 	__u16 sadb_supported_len;
117764 	__u16 sadb_supported_exttype;
117765 	__u32 sadb_supported_reserved;
117766 };
117767 
117768 struct sadb_spirange {
117769 	__u16 sadb_spirange_len;
117770 	__u16 sadb_spirange_exttype;
117771 	__u32 sadb_spirange_min;
117772 	__u32 sadb_spirange_max;
117773 	__u32 sadb_spirange_reserved;
117774 };
117775 
117776 struct sadb_x_sa2 {
117777 	__u16 sadb_x_sa2_len;
117778 	__u16 sadb_x_sa2_exttype;
117779 	__u8 sadb_x_sa2_mode;
117780 	__u8 sadb_x_sa2_reserved1;
117781 	__u16 sadb_x_sa2_reserved2;
117782 	__u32 sadb_x_sa2_sequence;
117783 	__u32 sadb_x_sa2_reqid;
117784 };
117785 
117786 struct sadb_x_policy {
117787 	__u16 sadb_x_policy_len;
117788 	__u16 sadb_x_policy_exttype;
117789 	__u16 sadb_x_policy_type;
117790 	__u8 sadb_x_policy_dir;
117791 	__u8 sadb_x_policy_reserved;
117792 	__u32 sadb_x_policy_id;
117793 	__u32 sadb_x_policy_priority;
117794 };
117795 
117796 struct sadb_x_ipsecrequest {
117797 	__u16 sadb_x_ipsecrequest_len;
117798 	__u16 sadb_x_ipsecrequest_proto;
117799 	__u8 sadb_x_ipsecrequest_mode;
117800 	__u8 sadb_x_ipsecrequest_level;
117801 	__u16 sadb_x_ipsecrequest_reserved1;
117802 	__u32 sadb_x_ipsecrequest_reqid;
117803 	__u32 sadb_x_ipsecrequest_reserved2;
117804 };
117805 
117806 struct sadb_x_nat_t_type {
117807 	__u16 sadb_x_nat_t_type_len;
117808 	__u16 sadb_x_nat_t_type_exttype;
117809 	__u8 sadb_x_nat_t_type_type;
117810 	__u8 sadb_x_nat_t_type_reserved[3];
117811 };
117812 
117813 struct sadb_x_nat_t_port {
117814 	__u16 sadb_x_nat_t_port_len;
117815 	__u16 sadb_x_nat_t_port_exttype;
117816 	__be16 sadb_x_nat_t_port_port;
117817 	__u16 sadb_x_nat_t_port_reserved;
117818 };
117819 
117820 struct sadb_x_sec_ctx {
117821 	__u16 sadb_x_sec_len;
117822 	__u16 sadb_x_sec_exttype;
117823 	__u8 sadb_x_ctx_alg;
117824 	__u8 sadb_x_ctx_doi;
117825 	__u16 sadb_x_ctx_len;
117826 };
117827 
117828 struct sadb_x_filter {
117829 	__u16 sadb_x_filter_len;
117830 	__u16 sadb_x_filter_exttype;
117831 	__u32 sadb_x_filter_saddr[4];
117832 	__u32 sadb_x_filter_daddr[4];
117833 	__u16 sadb_x_filter_family;
117834 	__u8 sadb_x_filter_splen;
117835 	__u8 sadb_x_filter_dplen;
117836 };
117837 
117838 enum {
117839 	IPSEC_MODE_ANY = 0,
117840 	IPSEC_MODE_TRANSPORT = 1,
117841 	IPSEC_MODE_TUNNEL = 2,
117842 	IPSEC_MODE_BEET = 3,
117843 };
117844 
117845 enum {
117846 	IPSEC_DIR_ANY = 0,
117847 	IPSEC_DIR_INBOUND = 1,
117848 	IPSEC_DIR_OUTBOUND = 2,
117849 	IPSEC_DIR_FWD = 3,
117850 	IPSEC_DIR_MAX = 4,
117851 	IPSEC_DIR_INVALID = 5,
117852 };
117853 
117854 enum {
117855 	IPSEC_POLICY_DISCARD = 0,
117856 	IPSEC_POLICY_NONE = 1,
117857 	IPSEC_POLICY_IPSEC = 2,
117858 	IPSEC_POLICY_ENTRUST = 3,
117859 	IPSEC_POLICY_BYPASS = 4,
117860 };
117861 
117862 enum {
117863 	IPSEC_LEVEL_DEFAULT = 0,
117864 	IPSEC_LEVEL_USE = 1,
117865 	IPSEC_LEVEL_REQUIRE = 2,
117866 	IPSEC_LEVEL_UNIQUE = 3,
117867 };
117868 
117869 struct netns_pfkey {
117870 	struct hlist_head table;
117871 	atomic_t socks_nr;
117872 };
117873 
117874 struct pfkey_sock {
117875 	struct sock sk;
117876 	int registered;
117877 	int promisc;
117878 	struct {
117879 		uint8_t msg_version;
117880 		uint32_t msg_portid;
117881 		int (*dump)(struct pfkey_sock *);
117882 		void (*done)(struct pfkey_sock *);
117883 		union {
117884 			struct xfrm_policy_walk policy;
117885 			struct xfrm_state_walk state;
117886 		} u;
117887 		struct sk_buff *skb;
117888 	} dump;
117889 	struct mutex dump_lock;
117890 };
117891 
117892 typedef int (*pfkey_handler)(struct sock *, struct sk_buff *, const struct sadb_msg *, void * const *);
117893 
117894 typedef __u8 rds_tos_t;
117895 
117896 struct rds_info_socket {
117897 	__u32 sndbuf;
117898 	__be32 bound_addr;
117899 	__be32 connected_addr;
117900 	__be16 bound_port;
117901 	__be16 connected_port;
117902 	__u32 rcvbuf;
117903 	__u64 inum;
117904 } __attribute__((packed));
117905 
117906 struct rds6_info_socket {
117907 	__u32 sndbuf;
117908 	struct in6_addr bound_addr;
117909 	struct in6_addr connected_addr;
117910 	__be16 bound_port;
117911 	__be16 connected_port;
117912 	__u32 rcvbuf;
117913 	__u64 inum;
117914 } __attribute__((packed));
117915 
117916 struct rds_rx_trace_so {
117917 	__u8 rx_traces;
117918 	__u8 rx_trace_pos[3];
117919 };
117920 
117921 struct rds_info_iterator;
117922 
117923 typedef void (*rds_info_func___2)(struct socket *, unsigned int, struct rds_info_iterator *, struct rds_info_lengths *);
117924 
117925 struct rds_info_iterator {
117926 	struct page **pages;
117927 	void *addr;
117928 	long unsigned int offset;
117929 };
117930 
117931 struct rds_iovec {
117932 	__u64 addr;
117933 	__u64 bytes;
117934 };
117935 
117936 struct rds_rdma_args {
117937 	rds_rdma_cookie_t cookie;
117938 	struct rds_iovec remote_vec;
117939 	__u64 local_vec_addr;
117940 	__u64 nr_local;
117941 	__u64 flags;
117942 	__u64 user_token;
117943 };
117944 
117945 struct rds_iov_vector {
117946 	struct rds_iovec *iov;
117947 	int len;
117948 };
117949 
117950 struct rds_iov_vector_arr {
117951 	struct rds_iov_vector *vec;
117952 	int len;
117953 	int indx;
117954 	int incr;
117955 };
117956 
117957 struct rds_get_mr_args {
117958 	struct rds_iovec vec;
117959 	__u64 cookie_addr;
117960 	__u64 flags;
117961 };
117962 
117963 struct rds_get_mr_for_dest_args {
117964 	struct __kernel_sockaddr_storage dest_addr;
117965 	struct rds_iovec vec;
117966 	__u64 cookie_addr;
117967 	__u64 flags;
117968 };
117969 
117970 struct rds_free_mr_args {
117971 	rds_rdma_cookie_t cookie;
117972 	__u64 flags;
117973 };
117974 
117975 struct rds_atomic_args {
117976 	rds_rdma_cookie_t cookie;
117977 	__u64 local_addr;
117978 	__u64 remote_addr;
117979 	union {
117980 		struct {
117981 			__u64 compare;
117982 			__u64 swap;
117983 		} cswp;
117984 		struct {
117985 			__u64 add;
117986 		} fadd;
117987 		struct {
117988 			__u64 compare;
117989 			__u64 swap;
117990 			__u64 compare_mask;
117991 			__u64 swap_mask;
117992 		} m_cswp;
117993 		struct {
117994 			__u64 add;
117995 			__u64 nocarry_mask;
117996 		} m_fadd;
117997 	};
117998 	__u64 flags;
117999 	__u64 user_token;
118000 };
118001 
118002 enum {
118003 	ODP_NOT_NEEDED = 0,
118004 	ODP_ZEROBASED = 1,
118005 	ODP_VIRTUAL = 2,
118006 };
118007 
118008 struct caif_dev_common {
118009 	void (*flowctrl)(struct net_device *, int);
118010 	enum caif_link_selector link_select;
118011 	int use_frag;
118012 	int use_fcs;
118013 	int use_stx;
118014 };
118015 
118016 struct caif_device_entry {
118017 	struct cflayer layer;
118018 	struct list_head list;
118019 	struct net_device *netdev;
118020 	int *pcpu_refcnt;
118021 	spinlock_t flow_lock;
118022 	struct sk_buff *xoff_skb;
118023 	void (*xoff_skb_dtor)(struct sk_buff *);
118024 	bool xoff;
118025 };
118026 
118027 struct caif_device_entry_list {
118028 	struct list_head list;
118029 	struct mutex lock;
118030 };
118031 
118032 struct cfcnfg;
118033 
118034 struct caif_net {
118035 	struct cfcnfg *cfg;
118036 	struct caif_device_entry_list caifdevs;
118037 };
118038 
118039 struct cfserl {
118040 	struct cflayer layer;
118041 	struct cfpkt *incomplete_frm;
118042 	spinlock_t sync;
118043 	bool usestx;
118044 };
118045 
118046 struct cfrfml {
118047 	struct cfsrvl serv;
118048 	struct cfpkt *incomplete_frm;
118049 	int fragment_size;
118050 	u8 seghead[6];
118051 	u16 pdu_size;
118052 	spinlock_t sync;
118053 };
118054 
118055 struct xsk_dma_map {
118056 	dma_addr_t *dma_pages;
118057 	struct device *dev;
118058 	struct net_device *netdev;
118059 	refcount_t users;
118060 	struct list_head list;
118061 	u32 dma_pages_cnt;
118062 	bool dma_need_sync;
118063 };
118064 
118065 typedef __u32 Elf32_Addr;
118066 
118067 typedef __u16 Elf32_Half;
118068 
118069 typedef __u32 Elf32_Off;
118070 
118071 struct elf32_hdr {
118072 	unsigned char e_ident[16];
118073 	Elf32_Half e_type;
118074 	Elf32_Half e_machine;
118075 	Elf32_Word e_version;
118076 	Elf32_Addr e_entry;
118077 	Elf32_Off e_phoff;
118078 	Elf32_Off e_shoff;
118079 	Elf32_Word e_flags;
118080 	Elf32_Half e_ehsize;
118081 	Elf32_Half e_phentsize;
118082 	Elf32_Half e_phnum;
118083 	Elf32_Half e_shentsize;
118084 	Elf32_Half e_shnum;
118085 	Elf32_Half e_shstrndx;
118086 };
118087 
118088 typedef struct elf32_hdr Elf32_Ehdr;
118089 
118090 struct elf32_phdr {
118091 	Elf32_Word p_type;
118092 	Elf32_Off p_offset;
118093 	Elf32_Addr p_vaddr;
118094 	Elf32_Addr p_paddr;
118095 	Elf32_Word p_filesz;
118096 	Elf32_Word p_memsz;
118097 	Elf32_Word p_flags;
118098 	Elf32_Word p_align;
118099 };
118100 
118101 typedef struct elf32_phdr Elf32_Phdr;
118102 
118103 typedef struct elf64_phdr Elf64_Phdr;
118104 
118105 typedef struct elf32_note Elf32_Nhdr;
118106 
118107 struct compress_format {
118108 	unsigned char magic[2];
118109 	const char *name;
118110 	decompress_fn decompressor;
118111 };
118112 
118113 enum cpio_fields {
118114 	C_MAGIC = 0,
118115 	C_INO = 1,
118116 	C_MODE = 2,
118117 	C_UID = 3,
118118 	C_GID = 4,
118119 	C_NLINK = 5,
118120 	C_MTIME = 6,
118121 	C_FILESIZE = 7,
118122 	C_MAJ = 8,
118123 	C_MIN = 9,
118124 	C_RMAJ = 10,
118125 	C_RMIN = 11,
118126 	C_NAMESIZE = 12,
118127 	C_CHKSUM = 13,
118128 	C_NFIELDS = 14,
118129 };
118130 
118131 struct maple_metadata {
118132 	unsigned char end;
118133 	unsigned char gap;
118134 };
118135 
118136 struct maple_pnode;
118137 
118138 struct maple_range_64 {
118139 	struct maple_pnode *parent;
118140 	long unsigned int pivot[15];
118141 	union {
118142 		void *slot[16];
118143 		struct {
118144 			void *pad[15];
118145 			struct maple_metadata meta;
118146 		};
118147 	};
118148 };
118149 
118150 struct maple_arange_64 {
118151 	struct maple_pnode *parent;
118152 	long unsigned int pivot[9];
118153 	void *slot[10];
118154 	long unsigned int gap[10];
118155 	struct maple_metadata meta;
118156 };
118157 
118158 struct maple_topiary {
118159 	struct maple_pnode *parent;
118160 	struct maple_enode *next;
118161 };
118162 
118163 enum maple_type {
118164 	maple_dense = 0,
118165 	maple_leaf_64 = 1,
118166 	maple_range_64 = 2,
118167 	maple_arange_64 = 3,
118168 };
118169 
118170 struct maple_node {
118171 	union {
118172 		struct {
118173 			struct maple_pnode *parent;
118174 			void *slot[31];
118175 		};
118176 		struct {
118177 			void *pad;
118178 			struct callback_head rcu;
118179 			struct maple_enode *piv_parent;
118180 			unsigned char parent_slot;
118181 			enum maple_type type;
118182 			unsigned char slot_len;
118183 			unsigned int ma_flags;
118184 		};
118185 		struct maple_range_64 mr64;
118186 		struct maple_arange_64 ma64;
118187 		struct maple_alloc alloc;
118188 	};
118189 };
118190 
118191 struct ma_topiary {
118192 	struct maple_enode *head;
118193 	struct maple_enode *tail;
118194 	struct maple_tree *mtree;
118195 };
118196 
118197 struct ma_wr_state {
118198 	struct ma_state *mas;
118199 	struct maple_node *node;
118200 	long unsigned int r_min;
118201 	long unsigned int r_max;
118202 	enum maple_type type;
118203 	unsigned char offset_end;
118204 	unsigned char node_end;
118205 	long unsigned int *pivots;
118206 	long unsigned int end_piv;
118207 	void **slots;
118208 	void *entry;
118209 	void *content;
118210 };
118211 
118212 struct trace_event_raw_ma_op {
118213 	struct trace_entry ent;
118214 	const char *fn;
118215 	long unsigned int min;
118216 	long unsigned int max;
118217 	long unsigned int index;
118218 	long unsigned int last;
118219 	void *node;
118220 	char __data[0];
118221 };
118222 
118223 struct trace_event_raw_ma_read {
118224 	struct trace_entry ent;
118225 	const char *fn;
118226 	long unsigned int min;
118227 	long unsigned int max;
118228 	long unsigned int index;
118229 	long unsigned int last;
118230 	void *node;
118231 	char __data[0];
118232 };
118233 
118234 struct trace_event_raw_ma_write {
118235 	struct trace_entry ent;
118236 	const char *fn;
118237 	long unsigned int min;
118238 	long unsigned int max;
118239 	long unsigned int index;
118240 	long unsigned int last;
118241 	long unsigned int piv;
118242 	void *val;
118243 	void *node;
118244 	char __data[0];
118245 };
118246 
118247 struct trace_event_data_offsets_ma_op {};
118248 
118249 struct trace_event_data_offsets_ma_read {};
118250 
118251 struct trace_event_data_offsets_ma_write {};
118252 
118253 typedef void (*btf_trace_ma_op)(void *, const char *, struct ma_state *);
118254 
118255 typedef void (*btf_trace_ma_read)(void *, const char *, struct ma_state *);
118256 
118257 typedef void (*btf_trace_ma_write)(void *, const char *, struct ma_state *, long unsigned int, void *);
118258 
118259 struct maple_big_node {
118260 	struct maple_pnode *parent;
118261 	long unsigned int pivot[33];
118262 	union {
118263 		struct maple_enode *slot[34];
118264 		struct {
118265 			long unsigned int padding[21];
118266 			long unsigned int gap[21];
118267 		};
118268 	};
118269 	unsigned char b_end;
118270 	enum maple_type type;
118271 };
118272 
118273 struct maple_subtree_state {
118274 	struct ma_state *orig_l;
118275 	struct ma_state *orig_r;
118276 	struct ma_state *l;
118277 	struct ma_state *m;
118278 	struct ma_state *r;
118279 	struct ma_topiary *free;
118280 	struct ma_topiary *destroy;
118281 	struct maple_big_node *bn;
118282 };
118283 
118284 typedef struct {
118285 	u32 red_mask;
118286 	u32 green_mask;
118287 	u32 blue_mask;
118288 	u32 reserved_mask;
118289 } efi_pixel_bitmask_t;
118290 
118291 typedef struct {
118292 	u32 version;
118293 	u32 horizontal_resolution;
118294 	u32 vertical_resolution;
118295 	int pixel_format;
118296 	efi_pixel_bitmask_t pixel_information;
118297 	u32 pixels_per_scan_line;
118298 } efi_graphics_output_mode_info_t;
118299 
118300 union efi_graphics_output_protocol_mode {
118301 	struct {
118302 		u32 max_mode;
118303 		u32 mode;
118304 		efi_graphics_output_mode_info_t *info;
118305 		long unsigned int size_of_info;
118306 		efi_physical_addr_t frame_buffer_base;
118307 		long unsigned int frame_buffer_size;
118308 	};
118309 	struct {
118310 		u32 max_mode;
118311 		u32 mode;
118312 		u32 info;
118313 		u32 size_of_info;
118314 		u64 frame_buffer_base;
118315 		u32 frame_buffer_size;
118316 	} mixed_mode;
118317 };
118318 
118319 typedef union efi_graphics_output_protocol_mode efi_graphics_output_protocol_mode_t;
118320 
118321 union efi_graphics_output_protocol;
118322 
118323 typedef union efi_graphics_output_protocol efi_graphics_output_protocol_t;
118324 
118325 union efi_graphics_output_protocol {
118326 	struct {
118327 		efi_status_t (*query_mode)(efi_graphics_output_protocol_t *, u32, long unsigned int *, efi_graphics_output_mode_info_t **);
118328 		efi_status_t (*set_mode)(efi_graphics_output_protocol_t *, u32);
118329 		void *blt;
118330 		efi_graphics_output_protocol_mode_t *mode;
118331 	};
118332 	struct {
118333 		u32 query_mode;
118334 		u32 set_mode;
118335 		u32 blt;
118336 		u32 mode;
118337 	} mixed_mode;
118338 };
118339 
118340 enum efi_cmdline_option {
118341 	EFI_CMDLINE_NONE = 0,
118342 	EFI_CMDLINE_MODE_NUM = 1,
118343 	EFI_CMDLINE_RES = 2,
118344 	EFI_CMDLINE_AUTO = 3,
118345 	EFI_CMDLINE_LIST = 4,
118346 };
118347 
118348 struct efi_vendor_dev_path {
118349 	struct efi_generic_dev_path header;
118350 	efi_guid_t vendorguid;
118351 	u8 vendordata[0];
118352 };
118353 
118354 struct efi_tcg2_tagged_event {
118355 	u32 tagged_event_id;
118356 	u32 tagged_event_data_size;
118357 };
118358 
118359 typedef struct efi_tcg2_tagged_event efi_tcg2_tagged_event_t;
118360 
118361 union efi_load_file_protocol;
118362 
118363 typedef union efi_load_file_protocol efi_load_file_protocol_t;
118364 
118365 union efi_load_file_protocol {
118366 	struct {
118367 		efi_status_t (*load_file)(efi_load_file_protocol_t *, efi_device_path_protocol_t *, bool, long unsigned int *, void *);
118368 	};
118369 	struct {
118370 		u32 load_file;
118371 	} mixed_mode;
118372 };
118373 
118374 typedef union efi_load_file_protocol efi_load_file2_protocol_t;
118375 
118376 typedef struct {
118377 	u32 attributes;
118378 	u16 file_path_list_length;
118379 	u8 variable_data[0];
118380 } __attribute__((packed)) efi_load_option_t;
118381 
118382 typedef struct {
118383 	u32 attributes;
118384 	u16 file_path_list_length;
118385 	const efi_char16_t *description;
118386 	const efi_device_path_protocol_t *file_path_list;
118387 	u32 optional_data_size;
118388 	const void *optional_data;
118389 } efi_load_option_unpacked_t;
118390 
118391 enum efistub_event {
118392 	EFISTUB_EVT_INITRD = 0,
118393 	EFISTUB_EVT_LOAD_OPTIONS = 1,
118394 	EFISTUB_EVT_COUNT = 2,
118395 };
118396 
118397 struct efi_measured_event {
118398 	efi_tcg2_event_t event_data;
118399 	efi_tcg2_tagged_event_t tagged_event;
118400 	u8 tagged_event_data[0];
118401 } __attribute__((packed));
118402 
118403 #ifndef BPF_NO_PRESERVE_ACCESS_INDEX
118404 #pragma clang attribute pop
118405 #endif
118406 
118407 #endif /* __VMLINUX_H__ */
118408