• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 int __s16;
13 
14 typedef short unsigned int __u16;
15 
16 typedef int __s32;
17 
18 typedef unsigned int __u32;
19 
20 typedef long long int __s64;
21 
22 typedef long long unsigned int __u64;
23 
24 typedef __s8 s8;
25 
26 typedef __u8 u8;
27 
28 typedef __s16 s16;
29 
30 typedef __u16 u16;
31 
32 typedef __s32 s32;
33 
34 typedef __u32 u32;
35 
36 typedef __s64 s64;
37 
38 typedef __u64 u64;
39 
40 enum {
41 	false = 0,
42 	true = 1,
43 };
44 
45 typedef long int __kernel_long_t;
46 
47 typedef long unsigned int __kernel_ulong_t;
48 
49 typedef int __kernel_pid_t;
50 
51 typedef unsigned int __kernel_uid32_t;
52 
53 typedef unsigned int __kernel_gid32_t;
54 
55 typedef __kernel_ulong_t __kernel_size_t;
56 
57 typedef __kernel_long_t __kernel_ssize_t;
58 
59 typedef long long int __kernel_loff_t;
60 
61 typedef long long int __kernel_time64_t;
62 
63 typedef __kernel_long_t __kernel_clock_t;
64 
65 typedef int __kernel_timer_t;
66 
67 typedef int __kernel_clockid_t;
68 
69 typedef unsigned int __poll_t;
70 
71 typedef u32 __kernel_dev_t;
72 
73 typedef __kernel_dev_t dev_t;
74 
75 typedef short unsigned int umode_t;
76 
77 typedef __kernel_pid_t pid_t;
78 
79 typedef __kernel_clockid_t clockid_t;
80 
81 typedef _Bool bool;
82 
83 typedef __kernel_uid32_t uid_t;
84 
85 typedef __kernel_gid32_t gid_t;
86 
87 typedef __kernel_loff_t loff_t;
88 
89 typedef __kernel_size_t size_t;
90 
91 typedef __kernel_ssize_t ssize_t;
92 
93 typedef s32 int32_t;
94 
95 typedef u32 uint32_t;
96 
97 typedef u64 sector_t;
98 
99 typedef u64 blkcnt_t;
100 
101 typedef unsigned int gfp_t;
102 
103 typedef unsigned int fmode_t;
104 
105 typedef u64 phys_addr_t;
106 
107 typedef phys_addr_t resource_size_t;
108 
109 typedef struct {
110 	int counter;
111 } atomic_t;
112 
113 typedef struct {
114 	s64 counter;
115 } atomic64_t;
116 
117 struct list_head {
118 	struct list_head *next;
119 	struct list_head *prev;
120 };
121 
122 struct hlist_node;
123 
124 struct hlist_head {
125 	struct hlist_node *first;
126 };
127 
128 struct hlist_node {
129 	struct hlist_node *next;
130 	struct hlist_node **pprev;
131 };
132 
133 struct callback_head {
134 	struct callback_head *next;
135 	void (*func)(struct callback_head *);
136 };
137 
138 typedef int initcall_entry_t;
139 
140 struct lockdep_subclass_key {
141 	char __one_byte;
142 };
143 
144 struct lock_class_key {
145 	union {
146 		struct hlist_node hash_entry;
147 		struct lockdep_subclass_key subkeys[8];
148 	};
149 };
150 
151 struct fs_context;
152 
153 struct fs_parameter_spec;
154 
155 struct dentry;
156 
157 struct super_block;
158 
159 struct module;
160 
161 struct file_system_type {
162 	const char *name;
163 	int fs_flags;
164 	int (*init_fs_context)(struct fs_context *);
165 	const struct fs_parameter_spec *parameters;
166 	struct dentry * (*mount)(struct file_system_type *, int, const char *, void *);
167 	void (*kill_sb)(struct super_block *);
168 	struct module *owner;
169 	struct file_system_type *next;
170 	struct hlist_head fs_supers;
171 	struct lock_class_key s_lock_key;
172 	struct lock_class_key s_umount_key;
173 	struct lock_class_key s_vfs_rename_key;
174 	struct lock_class_key s_writers_key[3];
175 	struct lock_class_key i_lock_key;
176 	struct lock_class_key i_mutex_key;
177 	struct lock_class_key invalidate_lock_key;
178 	struct lock_class_key i_mutex_dir_key;
179 };
180 
181 struct kernel_symbol {
182 	int value_offset;
183 	int name_offset;
184 	int namespace_offset;
185 };
186 
187 struct taint_flag {
188 	char c_true;
189 	char c_false;
190 	bool module;
191 };
192 
193 struct qspinlock {
194 	union {
195 		atomic_t val;
196 		struct {
197 			u8 locked;
198 			u8 pending;
199 		};
200 		struct {
201 			u16 locked_pending;
202 			u16 tail;
203 		};
204 	};
205 };
206 
207 typedef struct qspinlock arch_spinlock_t;
208 
209 struct qrwlock {
210 	union {
211 		atomic_t cnts;
212 		struct {
213 			u8 wlocked;
214 			u8 __lstate[3];
215 		};
216 	};
217 	arch_spinlock_t wait_lock;
218 };
219 
220 typedef struct qrwlock arch_rwlock_t;
221 
222 struct lock_trace;
223 
224 struct lock_class {
225 	struct hlist_node hash_entry;
226 	struct list_head lock_entry;
227 	struct list_head locks_after;
228 	struct list_head locks_before;
229 	const struct lockdep_subclass_key *key;
230 	unsigned int subclass;
231 	unsigned int dep_gen_id;
232 	long unsigned int usage_mask;
233 	const struct lock_trace *usage_traces[10];
234 	int name_version;
235 	const char *name;
236 	u8 wait_type_inner;
237 	u8 wait_type_outer;
238 	u8 lock_type;
239 };
240 
241 struct lock_trace {
242 	struct hlist_node hash_entry;
243 	u32 hash;
244 	u32 nr_entries;
245 	long unsigned int entries[0];
246 };
247 
248 struct lockdep_map {
249 	struct lock_class_key *key;
250 	struct lock_class *class_cache[2];
251 	const char *name;
252 	u8 wait_type_outer;
253 	u8 wait_type_inner;
254 	u8 lock_type;
255 };
256 
257 struct raw_spinlock {
258 	arch_spinlock_t raw_lock;
259 	unsigned int magic;
260 	unsigned int owner_cpu;
261 	void *owner;
262 	struct lockdep_map dep_map;
263 };
264 
265 typedef struct raw_spinlock raw_spinlock_t;
266 
267 struct ratelimit_state {
268 	raw_spinlock_t lock;
269 	int interval;
270 	int burst;
271 	int printed;
272 	int missed;
273 	long unsigned int begin;
274 	long unsigned int flags;
275 };
276 
277 typedef void *fl_owner_t;
278 
279 struct file;
280 
281 struct kiocb;
282 
283 struct iov_iter;
284 
285 struct io_comp_batch;
286 
287 struct dir_context;
288 
289 struct poll_table_struct;
290 
291 struct vm_area_struct;
292 
293 struct inode;
294 
295 struct file_lock;
296 
297 struct page;
298 
299 struct pipe_inode_info;
300 
301 struct seq_file;
302 
303 struct file_operations {
304 	struct module *owner;
305 	loff_t (*llseek)(struct file *, loff_t, int);
306 	ssize_t (*read)(struct file *, char *, size_t, loff_t *);
307 	ssize_t (*write)(struct file *, const char *, size_t, loff_t *);
308 	ssize_t (*read_iter)(struct kiocb *, struct iov_iter *);
309 	ssize_t (*write_iter)(struct kiocb *, struct iov_iter *);
310 	int (*iopoll)(struct kiocb *, struct io_comp_batch *, unsigned int);
311 	int (*iterate)(struct file *, struct dir_context *);
312 	int (*iterate_shared)(struct file *, struct dir_context *);
313 	__poll_t (*poll)(struct file *, struct poll_table_struct *);
314 	long int (*unlocked_ioctl)(struct file *, unsigned int, long unsigned int);
315 	long int (*compat_ioctl)(struct file *, unsigned int, long unsigned int);
316 	int (*mmap)(struct file *, struct vm_area_struct *);
317 	long unsigned int mmap_supported_flags;
318 	int (*open)(struct inode *, struct file *);
319 	int (*flush)(struct file *, fl_owner_t);
320 	int (*release)(struct inode *, struct file *);
321 	int (*fsync)(struct file *, loff_t, loff_t, int);
322 	int (*fasync)(int, struct file *, int);
323 	int (*lock)(struct file *, int, struct file_lock *);
324 	ssize_t (*sendpage)(struct file *, struct page *, int, size_t, loff_t *, int);
325 	long unsigned int (*get_unmapped_area)(struct file *, long unsigned int, long unsigned int, long unsigned int, long unsigned int);
326 	int (*check_flags)(int);
327 	int (*flock)(struct file *, int, struct file_lock *);
328 	ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);
329 	ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
330 	int (*setlease)(struct file *, long int, struct file_lock **, void **);
331 	long int (*fallocate)(struct file *, int, loff_t, loff_t);
332 	void (*show_fdinfo)(struct seq_file *, struct file *);
333 	ssize_t (*copy_file_range)(struct file *, loff_t, struct file *, loff_t, size_t, unsigned int);
334 	loff_t (*remap_file_range)(struct file *, loff_t, struct file *, loff_t, loff_t, unsigned int);
335 	int (*fadvise)(struct file *, loff_t, loff_t, int);
336 };
337 
338 struct static_call_site {
339 	s32 addr;
340 	s32 key;
341 };
342 
343 struct static_call_mod;
344 
345 struct static_call_key {
346 	void *func;
347 	union {
348 		long unsigned int type;
349 		struct static_call_mod *mods;
350 		struct static_call_site *sites;
351 	};
352 };
353 
354 enum system_states {
355 	SYSTEM_BOOTING = 0,
356 	SYSTEM_SCHEDULING = 1,
357 	SYSTEM_FREEING_INITMEM = 2,
358 	SYSTEM_RUNNING = 3,
359 	SYSTEM_HALT = 4,
360 	SYSTEM_POWER_OFF = 5,
361 	SYSTEM_RESTART = 6,
362 	SYSTEM_SUSPEND = 7,
363 };
364 
365 struct jump_entry {
366 	s32 code;
367 	s32 target;
368 	long int key;
369 };
370 
371 struct static_key_mod;
372 
373 struct static_key {
374 	atomic_t enabled;
375 	union {
376 		long unsigned int type;
377 		struct jump_entry *entries;
378 		struct static_key_mod *next;
379 	};
380 };
381 
382 struct static_key_true {
383 	struct static_key key;
384 };
385 
386 struct static_key_false {
387 	struct static_key key;
388 };
389 
390 struct bug_entry {
391 	int bug_addr_disp;
392 	int file_disp;
393 	short unsigned int line;
394 	short unsigned int flags;
395 };
396 
397 typedef __s64 time64_t;
398 
399 struct __kernel_timespec {
400 	__kernel_time64_t tv_sec;
401 	long long int tv_nsec;
402 };
403 
404 struct timezone {
405 	int tz_minuteswest;
406 	int tz_dsttime;
407 };
408 
409 struct timespec64 {
410 	time64_t tv_sec;
411 	long int tv_nsec;
412 };
413 
414 enum timespec_type {
415 	TT_NONE = 0,
416 	TT_NATIVE = 1,
417 	TT_COMPAT = 2,
418 };
419 
420 typedef s32 old_time32_t;
421 
422 struct old_timespec32 {
423 	old_time32_t tv_sec;
424 	s32 tv_nsec;
425 };
426 
427 struct pollfd;
428 
429 struct restart_block {
430 	long unsigned int arch_data;
431 	long int (*fn)(struct restart_block *);
432 	union {
433 		struct {
434 			u32 *uaddr;
435 			u32 val;
436 			u32 flags;
437 			u32 bitset;
438 			u64 time;
439 			u32 *uaddr2;
440 		} futex;
441 		struct {
442 			clockid_t clockid;
443 			enum timespec_type type;
444 			union {
445 				struct __kernel_timespec *rmtp;
446 				struct old_timespec32 *compat_rmtp;
447 			};
448 			u64 expires;
449 		} nanosleep;
450 		struct {
451 			struct pollfd *ufds;
452 			int nfds;
453 			int has_timeout;
454 			long unsigned int tv_sec;
455 			long unsigned int tv_nsec;
456 		} poll;
457 	};
458 };
459 
460 struct thread_info {
461 	long unsigned int flags;
462 	long unsigned int syscall_work;
463 	u32 status;
464 	u32 cpu;
465 };
466 
467 struct refcount_struct {
468 	atomic_t refs;
469 };
470 
471 typedef struct refcount_struct refcount_t;
472 
473 struct llist_node {
474 	struct llist_node *next;
475 };
476 
477 struct __call_single_node {
478 	struct llist_node llist;
479 	union {
480 		unsigned int u_flags;
481 		atomic_t a_flags;
482 	};
483 	u16 src;
484 	u16 dst;
485 };
486 
487 struct load_weight {
488 	long unsigned int weight;
489 	u32 inv_weight;
490 };
491 
492 struct rb_node {
493 	long unsigned int __rb_parent_color;
494 	struct rb_node *rb_right;
495 	struct rb_node *rb_left;
496 };
497 
498 struct util_est {
499 	unsigned int enqueued;
500 	unsigned int ewma;
501 };
502 
503 struct sched_avg {
504 	u64 last_update_time;
505 	u64 load_sum;
506 	u64 runnable_sum;
507 	u32 util_sum;
508 	u32 period_contrib;
509 	long unsigned int load_avg;
510 	long unsigned int runnable_avg;
511 	long unsigned int util_avg;
512 	struct util_est util_est;
513 };
514 
515 struct cfs_rq;
516 
517 struct sched_entity {
518 	struct load_weight load;
519 	struct rb_node run_node;
520 	struct list_head group_node;
521 	unsigned int on_rq;
522 	u64 exec_start;
523 	u64 sum_exec_runtime;
524 	u64 vruntime;
525 	u64 prev_sum_exec_runtime;
526 	u64 nr_migrations;
527 	int depth;
528 	struct sched_entity *parent;
529 	struct cfs_rq *cfs_rq;
530 	struct cfs_rq *my_q;
531 	long unsigned int runnable_weight;
532 	long: 64;
533 	long: 64;
534 	long: 64;
535 	long: 64;
536 	long: 64;
537 	long: 64;
538 	struct sched_avg avg;
539 };
540 
541 struct sched_rt_entity {
542 	struct list_head run_list;
543 	long unsigned int timeout;
544 	long unsigned int watchdog_stamp;
545 	unsigned int time_slice;
546 	short unsigned int on_rq;
547 	short unsigned int on_list;
548 	struct sched_rt_entity *back;
549 };
550 
551 typedef s64 ktime_t;
552 
553 struct timerqueue_node {
554 	struct rb_node node;
555 	ktime_t expires;
556 };
557 
558 enum hrtimer_restart {
559 	HRTIMER_NORESTART = 0,
560 	HRTIMER_RESTART = 1,
561 };
562 
563 struct hrtimer_clock_base;
564 
565 struct hrtimer {
566 	struct timerqueue_node node;
567 	ktime_t _softexpires;
568 	enum hrtimer_restart (*function)(struct hrtimer *);
569 	struct hrtimer_clock_base *base;
570 	u8 state;
571 	u8 is_rel;
572 	u8 is_soft;
573 	u8 is_hard;
574 };
575 
576 struct sched_dl_entity {
577 	struct rb_node rb_node;
578 	u64 dl_runtime;
579 	u64 dl_deadline;
580 	u64 dl_period;
581 	u64 dl_bw;
582 	u64 dl_density;
583 	s64 runtime;
584 	u64 deadline;
585 	unsigned int flags;
586 	unsigned int dl_throttled: 1;
587 	unsigned int dl_yielded: 1;
588 	unsigned int dl_non_contending: 1;
589 	unsigned int dl_overrun: 1;
590 	struct hrtimer dl_timer;
591 	struct hrtimer inactive_timer;
592 	struct sched_dl_entity *pi_se;
593 };
594 
595 struct sched_statistics {
596 	u64 wait_start;
597 	u64 wait_max;
598 	u64 wait_count;
599 	u64 wait_sum;
600 	u64 iowait_count;
601 	u64 iowait_sum;
602 	u64 sleep_start;
603 	u64 sleep_max;
604 	s64 sum_sleep_runtime;
605 	u64 block_start;
606 	u64 block_max;
607 	s64 sum_block_runtime;
608 	u64 exec_max;
609 	u64 slice_max;
610 	u64 nr_migrations_cold;
611 	u64 nr_failed_migrations_affine;
612 	u64 nr_failed_migrations_running;
613 	u64 nr_failed_migrations_hot;
614 	u64 nr_forced_migrations;
615 	u64 nr_wakeups;
616 	u64 nr_wakeups_sync;
617 	u64 nr_wakeups_migrate;
618 	u64 nr_wakeups_local;
619 	u64 nr_wakeups_remote;
620 	u64 nr_wakeups_affine;
621 	u64 nr_wakeups_affine_attempts;
622 	u64 nr_wakeups_passive;
623 	u64 nr_wakeups_idle;
624 	long: 64;
625 	long: 64;
626 	long: 64;
627 	long: 64;
628 };
629 
630 struct cpumask {
631 	long unsigned int bits[2];
632 };
633 
634 typedef struct cpumask cpumask_t;
635 
636 union rcu_special {
637 	struct {
638 		u8 blocked;
639 		u8 need_qs;
640 		u8 exp_hint;
641 		u8 need_mb;
642 	} b;
643 	u32 s;
644 };
645 
646 struct sched_info {
647 	long unsigned int pcount;
648 	long long unsigned int run_delay;
649 	long long unsigned int last_arrival;
650 	long long unsigned int last_queued;
651 };
652 
653 struct plist_node {
654 	int prio;
655 	struct list_head prio_list;
656 	struct list_head node_list;
657 };
658 
659 struct vmacache {
660 	u64 seqnum;
661 	struct vm_area_struct *vmas[4];
662 };
663 
664 struct task_rss_stat {
665 	int events;
666 	int count[4];
667 };
668 
669 struct prev_cputime {
670 	u64 utime;
671 	u64 stime;
672 	raw_spinlock_t lock;
673 };
674 
675 struct rb_root {
676 	struct rb_node *rb_node;
677 };
678 
679 struct rb_root_cached {
680 	struct rb_root rb_root;
681 	struct rb_node *rb_leftmost;
682 };
683 
684 struct timerqueue_head {
685 	struct rb_root_cached rb_root;
686 };
687 
688 struct posix_cputimer_base {
689 	u64 nextevt;
690 	struct timerqueue_head tqhead;
691 };
692 
693 struct posix_cputimers {
694 	struct posix_cputimer_base bases[3];
695 	unsigned int timers_active;
696 	unsigned int expiry_active;
697 };
698 
699 struct posix_cputimers_work {
700 	struct callback_head work;
701 	unsigned int scheduled;
702 };
703 
704 struct sem_undo_list;
705 
706 struct sysv_sem {
707 	struct sem_undo_list *undo_list;
708 };
709 
710 struct sysv_shm {
711 	struct list_head shm_clist;
712 };
713 
714 typedef struct {
715 	long unsigned int sig[1];
716 } sigset_t;
717 
718 struct sigpending {
719 	struct list_head list;
720 	sigset_t signal;
721 };
722 
723 typedef struct {
724 	uid_t val;
725 } kuid_t;
726 
727 struct seccomp_filter;
728 
729 struct seccomp {
730 	int mode;
731 	atomic_t filter_count;
732 	struct seccomp_filter *filter;
733 };
734 
735 struct syscall_user_dispatch {
736 	char *selector;
737 	long unsigned int offset;
738 	long unsigned int len;
739 	bool on_dispatch;
740 };
741 
742 struct spinlock {
743 	union {
744 		struct raw_spinlock rlock;
745 		struct {
746 			u8 __padding[24];
747 			struct lockdep_map dep_map;
748 		};
749 	};
750 };
751 
752 typedef struct spinlock spinlock_t;
753 
754 struct wake_q_node {
755 	struct wake_q_node *next;
756 };
757 
758 struct irqtrace_events {
759 	unsigned int irq_events;
760 	long unsigned int hardirq_enable_ip;
761 	long unsigned int hardirq_disable_ip;
762 	unsigned int hardirq_enable_event;
763 	unsigned int hardirq_disable_event;
764 	long unsigned int softirq_disable_ip;
765 	long unsigned int softirq_enable_ip;
766 	unsigned int softirq_disable_event;
767 	unsigned int softirq_enable_event;
768 };
769 
770 struct held_lock {
771 	u64 prev_chain_key;
772 	long unsigned int acquire_ip;
773 	struct lockdep_map *instance;
774 	struct lockdep_map *nest_lock;
775 	unsigned int class_idx: 13;
776 	unsigned int irq_context: 2;
777 	unsigned int trylock: 1;
778 	unsigned int read: 2;
779 	unsigned int check: 1;
780 	unsigned int hardirqs_off: 1;
781 	unsigned int references: 12;
782 	unsigned int pin_count;
783 };
784 
785 struct task_io_accounting {
786 	u64 rchar;
787 	u64 wchar;
788 	u64 syscr;
789 	u64 syscw;
790 	u64 read_bytes;
791 	u64 write_bytes;
792 	u64 cancelled_write_bytes;
793 };
794 
795 typedef struct {
796 	long unsigned int bits[1];
797 } nodemask_t;
798 
799 struct seqcount {
800 	unsigned int sequence;
801 	struct lockdep_map dep_map;
802 };
803 
804 typedef struct seqcount seqcount_t;
805 
806 struct seqcount_spinlock {
807 	seqcount_t seqcount;
808 	spinlock_t *lock;
809 };
810 
811 typedef struct seqcount_spinlock seqcount_spinlock_t;
812 
813 typedef atomic64_t atomic_long_t;
814 
815 struct optimistic_spin_queue {
816 	atomic_t tail;
817 };
818 
819 struct mutex {
820 	atomic_long_t owner;
821 	raw_spinlock_t wait_lock;
822 	struct optimistic_spin_queue osq;
823 	struct list_head wait_list;
824 	void *magic;
825 	struct lockdep_map dep_map;
826 };
827 
828 struct arch_tlbflush_unmap_batch {
829 	struct cpumask cpumask;
830 };
831 
832 struct tlbflush_unmap_batch {
833 	struct arch_tlbflush_unmap_batch arch;
834 	bool flush_required;
835 	bool writable;
836 };
837 
838 struct page_frag {
839 	struct page *page;
840 	__u32 offset;
841 	__u32 size;
842 };
843 
844 struct kmap_ctrl {};
845 
846 struct llist_head {
847 	struct llist_node *first;
848 };
849 
850 struct desc_struct {
851 	u16 limit0;
852 	u16 base0;
853 	u16 base1: 8;
854 	u16 type: 4;
855 	u16 s: 1;
856 	u16 dpl: 2;
857 	u16 p: 1;
858 	u16 limit1: 4;
859 	u16 avl: 1;
860 	u16 l: 1;
861 	u16 d: 1;
862 	u16 g: 1;
863 	u16 base2: 8;
864 };
865 
866 struct fpu_state_perm {
867 	u64 __state_perm;
868 	unsigned int __state_size;
869 	unsigned int __user_state_size;
870 };
871 
872 struct fregs_state {
873 	u32 cwd;
874 	u32 swd;
875 	u32 twd;
876 	u32 fip;
877 	u32 fcs;
878 	u32 foo;
879 	u32 fos;
880 	u32 st_space[20];
881 	u32 status;
882 };
883 
884 struct fxregs_state {
885 	u16 cwd;
886 	u16 swd;
887 	u16 twd;
888 	u16 fop;
889 	union {
890 		struct {
891 			u64 rip;
892 			u64 rdp;
893 		};
894 		struct {
895 			u32 fip;
896 			u32 fcs;
897 			u32 foo;
898 			u32 fos;
899 		};
900 	};
901 	u32 mxcsr;
902 	u32 mxcsr_mask;
903 	u32 st_space[32];
904 	u32 xmm_space[64];
905 	u32 padding[12];
906 	union {
907 		u32 padding1[12];
908 		u32 sw_reserved[12];
909 	};
910 };
911 
912 struct math_emu_info;
913 
914 struct swregs_state {
915 	u32 cwd;
916 	u32 swd;
917 	u32 twd;
918 	u32 fip;
919 	u32 fcs;
920 	u32 foo;
921 	u32 fos;
922 	u32 st_space[20];
923 	u8 ftop;
924 	u8 changed;
925 	u8 lookahead;
926 	u8 no_update;
927 	u8 rm;
928 	u8 alimit;
929 	struct math_emu_info *info;
930 	u32 entry_eip;
931 };
932 
933 struct xstate_header {
934 	u64 xfeatures;
935 	u64 xcomp_bv;
936 	u64 reserved[6];
937 };
938 
939 struct xregs_state {
940 	struct fxregs_state i387;
941 	struct xstate_header header;
942 	u8 extended_state_area[0];
943 };
944 
945 union fpregs_state {
946 	struct fregs_state fsave;
947 	struct fxregs_state fxsave;
948 	struct swregs_state soft;
949 	struct xregs_state xsave;
950 	u8 __padding[4096];
951 };
952 
953 struct fpstate {
954 	unsigned int size;
955 	unsigned int user_size;
956 	u64 xfeatures;
957 	u64 user_xfeatures;
958 	u64 xfd;
959 	unsigned int is_valloc: 1;
960 	unsigned int is_guest: 1;
961 	unsigned int is_confidential: 1;
962 	unsigned int in_use: 1;
963 	long: 60;
964 	long: 64;
965 	long: 64;
966 	long: 64;
967 	union fpregs_state regs;
968 };
969 
970 struct fpu {
971 	unsigned int last_cpu;
972 	long unsigned int avx512_timestamp;
973 	struct fpstate *fpstate;
974 	struct fpstate *__task_fpstate;
975 	struct fpu_state_perm perm;
976 	struct fpu_state_perm guest_perm;
977 	struct fpstate __fpstate;
978 };
979 
980 struct perf_event;
981 
982 struct io_bitmap;
983 
984 struct thread_struct {
985 	struct desc_struct tls_array[3];
986 	long unsigned int sp;
987 	short unsigned int es;
988 	short unsigned int ds;
989 	short unsigned int fsindex;
990 	short unsigned int gsindex;
991 	long unsigned int fsbase;
992 	long unsigned int gsbase;
993 	struct perf_event *ptrace_bps[4];
994 	long unsigned int virtual_dr6;
995 	long unsigned int ptrace_dr7;
996 	long unsigned int cr2;
997 	long unsigned int trap_nr;
998 	long unsigned int error_code;
999 	struct io_bitmap *io_bitmap;
1000 	long unsigned int iopl_emul;
1001 	unsigned int iopl_warn: 1;
1002 	unsigned int sig_on_uaccess_err: 1;
1003 	u32 pkru;
1004 	long: 64;
1005 	long: 64;
1006 	long: 64;
1007 	long: 64;
1008 	long: 64;
1009 	struct fpu fpu;
1010 };
1011 
1012 struct sched_class;
1013 
1014 struct task_group;
1015 
1016 struct rcu_node;
1017 
1018 struct mm_struct;
1019 
1020 struct pid;
1021 
1022 struct completion;
1023 
1024 struct cred;
1025 
1026 struct key;
1027 
1028 struct nameidata;
1029 
1030 struct fs_struct;
1031 
1032 struct files_struct;
1033 
1034 struct io_uring_task;
1035 
1036 struct nsproxy;
1037 
1038 struct signal_struct;
1039 
1040 struct sighand_struct;
1041 
1042 struct audit_context;
1043 
1044 struct rt_mutex_waiter;
1045 
1046 struct mutex_waiter;
1047 
1048 struct bio_list;
1049 
1050 struct blk_plug;
1051 
1052 struct reclaim_state;
1053 
1054 struct backing_dev_info;
1055 
1056 struct io_context;
1057 
1058 struct capture_control;
1059 
1060 struct kernel_siginfo;
1061 
1062 typedef struct kernel_siginfo kernel_siginfo_t;
1063 
1064 struct css_set;
1065 
1066 struct robust_list_head;
1067 
1068 struct futex_pi_state;
1069 
1070 struct perf_event_context;
1071 
1072 struct mempolicy;
1073 
1074 struct numa_group;
1075 
1076 struct rseq;
1077 
1078 struct task_delay_info;
1079 
1080 struct ftrace_ret_stack;
1081 
1082 struct mem_cgroup;
1083 
1084 struct request_queue;
1085 
1086 struct uprobe_task;
1087 
1088 struct vm_struct;
1089 
1090 struct bpf_local_storage;
1091 
1092 struct bpf_run_ctx;
1093 
1094 struct task_struct {
1095 	struct thread_info thread_info;
1096 	unsigned int __state;
1097 	void *stack;
1098 	refcount_t usage;
1099 	unsigned int flags;
1100 	unsigned int ptrace;
1101 	int on_cpu;
1102 	struct __call_single_node wake_entry;
1103 	unsigned int wakee_flips;
1104 	long unsigned int wakee_flip_decay_ts;
1105 	struct task_struct *last_wakee;
1106 	int recent_used_cpu;
1107 	int wake_cpu;
1108 	int on_rq;
1109 	int prio;
1110 	int static_prio;
1111 	int normal_prio;
1112 	unsigned int rt_priority;
1113 	struct sched_entity se;
1114 	struct sched_rt_entity rt;
1115 	struct sched_dl_entity dl;
1116 	const struct sched_class *sched_class;
1117 	struct task_group *sched_task_group;
1118 	long: 64;
1119 	long: 64;
1120 	long: 64;
1121 	long: 64;
1122 	struct sched_statistics stats;
1123 	unsigned int btrace_seq;
1124 	unsigned int policy;
1125 	int nr_cpus_allowed;
1126 	const cpumask_t *cpus_ptr;
1127 	cpumask_t *user_cpus_ptr;
1128 	cpumask_t cpus_mask;
1129 	void *migration_pending;
1130 	short unsigned int migration_disabled;
1131 	short unsigned int migration_flags;
1132 	int rcu_read_lock_nesting;
1133 	union rcu_special rcu_read_unlock_special;
1134 	struct list_head rcu_node_entry;
1135 	struct rcu_node *rcu_blocked_node;
1136 	long unsigned int rcu_tasks_nvcsw;
1137 	u8 rcu_tasks_holdout;
1138 	u8 rcu_tasks_idx;
1139 	int rcu_tasks_idle_cpu;
1140 	struct list_head rcu_tasks_holdout_list;
1141 	int trc_reader_nesting;
1142 	int trc_ipi_to_cpu;
1143 	union rcu_special trc_reader_special;
1144 	bool trc_reader_checked;
1145 	struct list_head trc_holdout_list;
1146 	struct sched_info sched_info;
1147 	struct list_head tasks;
1148 	struct plist_node pushable_tasks;
1149 	struct rb_node pushable_dl_tasks;
1150 	struct mm_struct *mm;
1151 	struct mm_struct *active_mm;
1152 	struct vmacache vmacache;
1153 	struct task_rss_stat rss_stat;
1154 	int exit_state;
1155 	int exit_code;
1156 	int exit_signal;
1157 	int pdeath_signal;
1158 	long unsigned int jobctl;
1159 	unsigned int personality;
1160 	unsigned int sched_reset_on_fork: 1;
1161 	unsigned int sched_contributes_to_load: 1;
1162 	unsigned int sched_migrated: 1;
1163 	int: 29;
1164 	unsigned int sched_remote_wakeup: 1;
1165 	unsigned int in_execve: 1;
1166 	unsigned int in_iowait: 1;
1167 	unsigned int restore_sigmask: 1;
1168 	unsigned int in_user_fault: 1;
1169 	unsigned int brk_randomized: 1;
1170 	unsigned int no_cgroup_migration: 1;
1171 	unsigned int frozen: 1;
1172 	unsigned int use_memdelay: 1;
1173 	unsigned int in_eventfd_signal: 1;
1174 	long unsigned int atomic_flags;
1175 	struct restart_block restart_block;
1176 	pid_t pid;
1177 	pid_t tgid;
1178 	struct task_struct *real_parent;
1179 	struct task_struct *parent;
1180 	struct list_head children;
1181 	struct list_head sibling;
1182 	struct task_struct *group_leader;
1183 	struct list_head ptraced;
1184 	struct list_head ptrace_entry;
1185 	struct pid *thread_pid;
1186 	struct hlist_node pid_links[4];
1187 	struct list_head thread_group;
1188 	struct list_head thread_node;
1189 	struct completion *vfork_done;
1190 	int *set_child_tid;
1191 	int *clear_child_tid;
1192 	void *worker_private;
1193 	u64 utime;
1194 	u64 stime;
1195 	u64 gtime;
1196 	struct prev_cputime prev_cputime;
1197 	long unsigned int nvcsw;
1198 	long unsigned int nivcsw;
1199 	u64 start_time;
1200 	u64 start_boottime;
1201 	long unsigned int min_flt;
1202 	long unsigned int maj_flt;
1203 	struct posix_cputimers posix_cputimers;
1204 	struct posix_cputimers_work posix_cputimers_work;
1205 	const struct cred *ptracer_cred;
1206 	const struct cred *real_cred;
1207 	const struct cred *cred;
1208 	struct key *cached_requested_key;
1209 	char comm[16];
1210 	struct nameidata *nameidata;
1211 	struct sysv_sem sysvsem;
1212 	struct sysv_shm sysvshm;
1213 	long unsigned int last_switch_count;
1214 	long unsigned int last_switch_time;
1215 	struct fs_struct *fs;
1216 	struct files_struct *files;
1217 	struct io_uring_task *io_uring;
1218 	struct nsproxy *nsproxy;
1219 	struct signal_struct *signal;
1220 	struct sighand_struct *sighand;
1221 	sigset_t blocked;
1222 	sigset_t real_blocked;
1223 	sigset_t saved_sigmask;
1224 	struct sigpending pending;
1225 	long unsigned int sas_ss_sp;
1226 	size_t sas_ss_size;
1227 	unsigned int sas_ss_flags;
1228 	struct callback_head *task_works;
1229 	struct audit_context *audit_context;
1230 	kuid_t loginuid;
1231 	unsigned int sessionid;
1232 	struct seccomp seccomp;
1233 	struct syscall_user_dispatch syscall_dispatch;
1234 	u64 parent_exec_id;
1235 	u64 self_exec_id;
1236 	spinlock_t alloc_lock;
1237 	raw_spinlock_t pi_lock;
1238 	struct wake_q_node wake_q;
1239 	struct rb_root_cached pi_waiters;
1240 	struct task_struct *pi_top_task;
1241 	struct rt_mutex_waiter *pi_blocked_on;
1242 	struct mutex_waiter *blocked_on;
1243 	int non_block_count;
1244 	struct irqtrace_events irqtrace;
1245 	unsigned int hardirq_threaded;
1246 	u64 hardirq_chain_key;
1247 	int softirqs_enabled;
1248 	int softirq_context;
1249 	int irq_config;
1250 	u64 curr_chain_key;
1251 	int lockdep_depth;
1252 	unsigned int lockdep_recursion;
1253 	struct held_lock held_locks[48];
1254 	void *journal_info;
1255 	struct bio_list *bio_list;
1256 	struct blk_plug *plug;
1257 	struct reclaim_state *reclaim_state;
1258 	struct backing_dev_info *backing_dev_info;
1259 	struct io_context *io_context;
1260 	struct capture_control *capture_control;
1261 	long unsigned int ptrace_message;
1262 	kernel_siginfo_t *last_siginfo;
1263 	struct task_io_accounting ioac;
1264 	u64 acct_rss_mem1;
1265 	u64 acct_vm_mem1;
1266 	u64 acct_timexpd;
1267 	nodemask_t mems_allowed;
1268 	seqcount_spinlock_t mems_allowed_seq;
1269 	int cpuset_mem_spread_rotor;
1270 	int cpuset_slab_spread_rotor;
1271 	struct css_set *cgroups;
1272 	struct list_head cg_list;
1273 	struct robust_list_head *robust_list;
1274 	struct list_head pi_state_list;
1275 	struct futex_pi_state *pi_state_cache;
1276 	struct mutex futex_exit_mutex;
1277 	unsigned int futex_state;
1278 	struct perf_event_context *perf_event_ctxp[2];
1279 	struct mutex perf_event_mutex;
1280 	struct list_head perf_event_list;
1281 	long unsigned int preempt_disable_ip;
1282 	struct mempolicy *mempolicy;
1283 	short int il_prev;
1284 	short int pref_node_fork;
1285 	int numa_scan_seq;
1286 	unsigned int numa_scan_period;
1287 	unsigned int numa_scan_period_max;
1288 	int numa_preferred_nid;
1289 	long unsigned int numa_migrate_retry;
1290 	u64 node_stamp;
1291 	u64 last_task_numa_placement;
1292 	u64 last_sum_exec_runtime;
1293 	struct callback_head numa_work;
1294 	struct numa_group *numa_group;
1295 	long unsigned int *numa_faults;
1296 	long unsigned int total_numa_faults;
1297 	long unsigned int numa_faults_locality[3];
1298 	long unsigned int numa_pages_migrated;
1299 	struct rseq *rseq;
1300 	u32 rseq_sig;
1301 	long unsigned int rseq_event_mask;
1302 	struct tlbflush_unmap_batch tlb_ubc;
1303 	union {
1304 		refcount_t rcu_users;
1305 		struct callback_head rcu;
1306 	};
1307 	struct pipe_inode_info *splice_pipe;
1308 	struct page_frag task_frag;
1309 	struct task_delay_info *delays;
1310 	int make_it_fail;
1311 	unsigned int fail_nth;
1312 	int nr_dirtied;
1313 	int nr_dirtied_pause;
1314 	long unsigned int dirty_paused_when;
1315 	u64 timer_slack_ns;
1316 	u64 default_timer_slack_ns;
1317 	int curr_ret_stack;
1318 	int curr_ret_depth;
1319 	struct ftrace_ret_stack *ret_stack;
1320 	long long unsigned int ftrace_timestamp;
1321 	atomic_t trace_overrun;
1322 	atomic_t tracing_graph_pause;
1323 	long unsigned int trace;
1324 	long unsigned int trace_recursion;
1325 	struct mem_cgroup *memcg_in_oom;
1326 	gfp_t memcg_oom_gfp_mask;
1327 	int memcg_oom_order;
1328 	unsigned int memcg_nr_pages_over_high;
1329 	struct mem_cgroup *active_memcg;
1330 	struct request_queue *throttle_queue;
1331 	struct uprobe_task *utask;
1332 	struct kmap_ctrl kmap_ctrl;
1333 	long unsigned int task_state_change;
1334 	int pagefault_disabled;
1335 	struct task_struct *oom_reaper_list;
1336 	struct vm_struct *stack_vm_area;
1337 	refcount_t stack_refcount;
1338 	void *security;
1339 	struct bpf_local_storage *bpf_storage;
1340 	struct bpf_run_ctx *bpf_ctx;
1341 	void *mce_vaddr;
1342 	__u64 mce_kflags;
1343 	u64 mce_addr;
1344 	__u64 mce_ripv: 1;
1345 	__u64 mce_whole_page: 1;
1346 	__u64 __mce_reserved: 62;
1347 	struct callback_head mce_kill_me;
1348 	int mce_count;
1349 	struct llist_head kretprobe_instances;
1350 	struct callback_head l1d_flush_kill;
1351 	long: 64;
1352 	long: 64;
1353 	long: 64;
1354 	struct thread_struct thread;
1355 };
1356 
1357 struct screen_info {
1358 	__u8 orig_x;
1359 	__u8 orig_y;
1360 	__u16 ext_mem_k;
1361 	__u16 orig_video_page;
1362 	__u8 orig_video_mode;
1363 	__u8 orig_video_cols;
1364 	__u8 flags;
1365 	__u8 unused2;
1366 	__u16 orig_video_ega_bx;
1367 	__u16 unused3;
1368 	__u8 orig_video_lines;
1369 	__u8 orig_video_isVGA;
1370 	__u16 orig_video_points;
1371 	__u16 lfb_width;
1372 	__u16 lfb_height;
1373 	__u16 lfb_depth;
1374 	__u32 lfb_base;
1375 	__u32 lfb_size;
1376 	__u16 cl_magic;
1377 	__u16 cl_offset;
1378 	__u16 lfb_linelength;
1379 	__u8 red_size;
1380 	__u8 red_pos;
1381 	__u8 green_size;
1382 	__u8 green_pos;
1383 	__u8 blue_size;
1384 	__u8 blue_pos;
1385 	__u8 rsvd_size;
1386 	__u8 rsvd_pos;
1387 	__u16 vesapm_seg;
1388 	__u16 vesapm_off;
1389 	__u16 pages;
1390 	__u16 vesa_attributes;
1391 	__u32 capabilities;
1392 	__u32 ext_lfb_base;
1393 	__u8 _reserved[2];
1394 } __attribute__((packed));
1395 
1396 struct apm_bios_info {
1397 	__u16 version;
1398 	__u16 cseg;
1399 	__u32 offset;
1400 	__u16 cseg_16;
1401 	__u16 dseg;
1402 	__u16 flags;
1403 	__u16 cseg_len;
1404 	__u16 cseg_16_len;
1405 	__u16 dseg_len;
1406 };
1407 
1408 struct apm_info {
1409 	struct apm_bios_info bios;
1410 	short unsigned int connection_version;
1411 	int get_power_status_broken;
1412 	int get_power_status_swabinminutes;
1413 	int allow_ints;
1414 	int forbid_idle;
1415 	int realmode_power_off;
1416 	int disabled;
1417 };
1418 
1419 struct edd_device_params {
1420 	__u16 length;
1421 	__u16 info_flags;
1422 	__u32 num_default_cylinders;
1423 	__u32 num_default_heads;
1424 	__u32 sectors_per_track;
1425 	__u64 number_of_sectors;
1426 	__u16 bytes_per_sector;
1427 	__u32 dpte_ptr;
1428 	__u16 key;
1429 	__u8 device_path_info_length;
1430 	__u8 reserved2;
1431 	__u16 reserved3;
1432 	__u8 host_bus_type[4];
1433 	__u8 interface_type[8];
1434 	union {
1435 		struct {
1436 			__u16 base_address;
1437 			__u16 reserved1;
1438 			__u32 reserved2;
1439 		} isa;
1440 		struct {
1441 			__u8 bus;
1442 			__u8 slot;
1443 			__u8 function;
1444 			__u8 channel;
1445 			__u32 reserved;
1446 		} pci;
1447 		struct {
1448 			__u64 reserved;
1449 		} ibnd;
1450 		struct {
1451 			__u64 reserved;
1452 		} xprs;
1453 		struct {
1454 			__u64 reserved;
1455 		} htpt;
1456 		struct {
1457 			__u64 reserved;
1458 		} unknown;
1459 	} interface_path;
1460 	union {
1461 		struct {
1462 			__u8 device;
1463 			__u8 reserved1;
1464 			__u16 reserved2;
1465 			__u32 reserved3;
1466 			__u64 reserved4;
1467 		} ata;
1468 		struct {
1469 			__u8 device;
1470 			__u8 lun;
1471 			__u8 reserved1;
1472 			__u8 reserved2;
1473 			__u32 reserved3;
1474 			__u64 reserved4;
1475 		} atapi;
1476 		struct {
1477 			__u16 id;
1478 			__u64 lun;
1479 			__u16 reserved1;
1480 			__u32 reserved2;
1481 		} __attribute__((packed)) scsi;
1482 		struct {
1483 			__u64 serial_number;
1484 			__u64 reserved;
1485 		} usb;
1486 		struct {
1487 			__u64 eui;
1488 			__u64 reserved;
1489 		} i1394;
1490 		struct {
1491 			__u64 wwid;
1492 			__u64 lun;
1493 		} fibre;
1494 		struct {
1495 			__u64 identity_tag;
1496 			__u64 reserved;
1497 		} i2o;
1498 		struct {
1499 			__u32 array_number;
1500 			__u32 reserved1;
1501 			__u64 reserved2;
1502 		} raid;
1503 		struct {
1504 			__u8 device;
1505 			__u8 reserved1;
1506 			__u16 reserved2;
1507 			__u32 reserved3;
1508 			__u64 reserved4;
1509 		} sata;
1510 		struct {
1511 			__u64 reserved1;
1512 			__u64 reserved2;
1513 		} unknown;
1514 	} device_path;
1515 	__u8 reserved4;
1516 	__u8 checksum;
1517 } __attribute__((packed));
1518 
1519 struct edd_info {
1520 	__u8 device;
1521 	__u8 version;
1522 	__u16 interface_support;
1523 	__u16 legacy_max_cylinder;
1524 	__u8 legacy_max_head;
1525 	__u8 legacy_sectors_per_track;
1526 	struct edd_device_params params;
1527 } __attribute__((packed));
1528 
1529 struct edd {
1530 	unsigned int mbr_signature[16];
1531 	struct edd_info edd_info[6];
1532 	unsigned char mbr_signature_nr;
1533 	unsigned char edd_info_nr;
1534 };
1535 
1536 struct ist_info {
1537 	__u32 signature;
1538 	__u32 command;
1539 	__u32 event;
1540 	__u32 perf_level;
1541 };
1542 
1543 struct edid_info {
1544 	unsigned char dummy[128];
1545 };
1546 
1547 struct setup_header {
1548 	__u8 setup_sects;
1549 	__u16 root_flags;
1550 	__u32 syssize;
1551 	__u16 ram_size;
1552 	__u16 vid_mode;
1553 	__u16 root_dev;
1554 	__u16 boot_flag;
1555 	__u16 jump;
1556 	__u32 header;
1557 	__u16 version;
1558 	__u32 realmode_swtch;
1559 	__u16 start_sys_seg;
1560 	__u16 kernel_version;
1561 	__u8 type_of_loader;
1562 	__u8 loadflags;
1563 	__u16 setup_move_size;
1564 	__u32 code32_start;
1565 	__u32 ramdisk_image;
1566 	__u32 ramdisk_size;
1567 	__u32 bootsect_kludge;
1568 	__u16 heap_end_ptr;
1569 	__u8 ext_loader_ver;
1570 	__u8 ext_loader_type;
1571 	__u32 cmd_line_ptr;
1572 	__u32 initrd_addr_max;
1573 	__u32 kernel_alignment;
1574 	__u8 relocatable_kernel;
1575 	__u8 min_alignment;
1576 	__u16 xloadflags;
1577 	__u32 cmdline_size;
1578 	__u32 hardware_subarch;
1579 	__u64 hardware_subarch_data;
1580 	__u32 payload_offset;
1581 	__u32 payload_length;
1582 	__u64 setup_data;
1583 	__u64 pref_address;
1584 	__u32 init_size;
1585 	__u32 handover_offset;
1586 	__u32 kernel_info_offset;
1587 } __attribute__((packed));
1588 
1589 struct sys_desc_table {
1590 	__u16 length;
1591 	__u8 table[14];
1592 };
1593 
1594 struct olpc_ofw_header {
1595 	__u32 ofw_magic;
1596 	__u32 ofw_version;
1597 	__u32 cif_handler;
1598 	__u32 irq_desc_table;
1599 };
1600 
1601 struct efi_info {
1602 	__u32 efi_loader_signature;
1603 	__u32 efi_systab;
1604 	__u32 efi_memdesc_size;
1605 	__u32 efi_memdesc_version;
1606 	__u32 efi_memmap;
1607 	__u32 efi_memmap_size;
1608 	__u32 efi_systab_hi;
1609 	__u32 efi_memmap_hi;
1610 };
1611 
1612 struct boot_e820_entry {
1613 	__u64 addr;
1614 	__u64 size;
1615 	__u32 type;
1616 } __attribute__((packed));
1617 
1618 struct boot_params {
1619 	struct screen_info screen_info;
1620 	struct apm_bios_info apm_bios_info;
1621 	__u8 _pad2[4];
1622 	__u64 tboot_addr;
1623 	struct ist_info ist_info;
1624 	__u64 acpi_rsdp_addr;
1625 	__u8 _pad3[8];
1626 	__u8 hd0_info[16];
1627 	__u8 hd1_info[16];
1628 	struct sys_desc_table sys_desc_table;
1629 	struct olpc_ofw_header olpc_ofw_header;
1630 	__u32 ext_ramdisk_image;
1631 	__u32 ext_ramdisk_size;
1632 	__u32 ext_cmd_line_ptr;
1633 	__u8 _pad4[116];
1634 	struct edid_info edid_info;
1635 	struct efi_info efi_info;
1636 	__u32 alt_mem_k;
1637 	__u32 scratch;
1638 	__u8 e820_entries;
1639 	__u8 eddbuf_entries;
1640 	__u8 edd_mbr_sig_buf_entries;
1641 	__u8 kbd_status;
1642 	__u8 secure_boot;
1643 	__u8 _pad5[2];
1644 	__u8 sentinel;
1645 	__u8 _pad6[1];
1646 	struct setup_header hdr;
1647 	__u8 _pad7[36];
1648 	__u32 edd_mbr_sig_buffer[16];
1649 	struct boot_e820_entry e820_table[128];
1650 	__u8 _pad8[48];
1651 	struct edd_info eddbuf[6];
1652 	__u8 _pad9[276];
1653 } __attribute__((packed));
1654 
1655 enum x86_hardware_subarch {
1656 	X86_SUBARCH_PC = 0,
1657 	X86_SUBARCH_LGUEST = 1,
1658 	X86_SUBARCH_XEN = 2,
1659 	X86_SUBARCH_INTEL_MID = 3,
1660 	X86_SUBARCH_CE4100 = 4,
1661 	X86_NR_SUBARCHS = 5,
1662 };
1663 
1664 struct range {
1665 	u64 start;
1666 	u64 end;
1667 };
1668 
1669 struct pt_regs {
1670 	long unsigned int r15;
1671 	long unsigned int r14;
1672 	long unsigned int r13;
1673 	long unsigned int r12;
1674 	long unsigned int bp;
1675 	long unsigned int bx;
1676 	long unsigned int r11;
1677 	long unsigned int r10;
1678 	long unsigned int r9;
1679 	long unsigned int r8;
1680 	long unsigned int ax;
1681 	long unsigned int cx;
1682 	long unsigned int dx;
1683 	long unsigned int si;
1684 	long unsigned int di;
1685 	long unsigned int orig_ax;
1686 	long unsigned int ip;
1687 	long unsigned int cs;
1688 	long unsigned int flags;
1689 	long unsigned int sp;
1690 	long unsigned int ss;
1691 };
1692 
1693 struct math_emu_info {
1694 	long int ___orig_eip;
1695 	struct pt_regs *regs;
1696 };
1697 
1698 typedef long unsigned int pteval_t;
1699 
1700 typedef long unsigned int pmdval_t;
1701 
1702 typedef long unsigned int pudval_t;
1703 
1704 typedef long unsigned int p4dval_t;
1705 
1706 typedef long unsigned int pgdval_t;
1707 
1708 typedef long unsigned int pgprotval_t;
1709 
1710 typedef struct {
1711 	pteval_t pte;
1712 } pte_t;
1713 
1714 struct pgprot {
1715 	pgprotval_t pgprot;
1716 };
1717 
1718 typedef struct pgprot pgprot_t;
1719 
1720 typedef struct {
1721 	pgdval_t pgd;
1722 } pgd_t;
1723 
1724 typedef struct {
1725 	pgd_t pgd;
1726 } p4d_t;
1727 
1728 typedef struct {
1729 	pudval_t pud;
1730 } pud_t;
1731 
1732 typedef struct {
1733 	pmdval_t pmd;
1734 } pmd_t;
1735 
1736 typedef struct page *pgtable_t;
1737 
1738 struct address_space;
1739 
1740 struct page_pool;
1741 
1742 struct dev_pagemap;
1743 
1744 struct page {
1745 	long unsigned int flags;
1746 	union {
1747 		struct {
1748 			struct list_head lru;
1749 			struct address_space *mapping;
1750 			long unsigned int index;
1751 			long unsigned int private;
1752 		};
1753 		struct {
1754 			long unsigned int pp_magic;
1755 			struct page_pool *pp;
1756 			long unsigned int _pp_mapping_pad;
1757 			long unsigned int dma_addr;
1758 			union {
1759 				long unsigned int dma_addr_upper;
1760 				atomic_long_t pp_frag_count;
1761 			};
1762 		};
1763 		struct {
1764 			long unsigned int compound_head;
1765 			unsigned char compound_dtor;
1766 			unsigned char compound_order;
1767 			atomic_t compound_mapcount;
1768 			unsigned int compound_nr;
1769 		};
1770 		struct {
1771 			long unsigned int _compound_pad_1;
1772 			atomic_t hpage_pinned_refcount;
1773 			struct list_head deferred_list;
1774 		};
1775 		struct {
1776 			long unsigned int _pt_pad_1;
1777 			pgtable_t pmd_huge_pte;
1778 			long unsigned int _pt_pad_2;
1779 			union {
1780 				struct mm_struct *pt_mm;
1781 				atomic_t pt_frag_refcount;
1782 			};
1783 			spinlock_t *ptl;
1784 		};
1785 		struct {
1786 			struct dev_pagemap *pgmap;
1787 			void *zone_device_data;
1788 		};
1789 		struct callback_head callback_head;
1790 	};
1791 	union {
1792 		atomic_t _mapcount;
1793 		unsigned int page_type;
1794 	};
1795 	atomic_t _refcount;
1796 	long unsigned int memcg_data;
1797 };
1798 
1799 typedef struct cpumask cpumask_var_t[1];
1800 
1801 struct tracepoint_func {
1802 	void *func;
1803 	void *data;
1804 	int prio;
1805 };
1806 
1807 struct tracepoint {
1808 	const char *name;
1809 	struct static_key key;
1810 	struct static_call_key *static_call_key;
1811 	void *static_call_tramp;
1812 	void *iterator;
1813 	int (*regfunc)();
1814 	void (*unregfunc)();
1815 	struct tracepoint_func *funcs;
1816 };
1817 
1818 typedef const int tracepoint_ptr_t;
1819 
1820 struct bpf_raw_event_map {
1821 	struct tracepoint *tp;
1822 	void *bpf_func;
1823 	u32 num_args;
1824 	u32 writable_size;
1825 	long: 64;
1826 };
1827 
1828 struct idt_bits {
1829 	u16 ist: 3;
1830 	u16 zero: 5;
1831 	u16 type: 5;
1832 	u16 dpl: 2;
1833 	u16 p: 1;
1834 };
1835 
1836 struct gate_struct {
1837 	u16 offset_low;
1838 	u16 segment;
1839 	struct idt_bits bits;
1840 	u16 offset_middle;
1841 	u32 offset_high;
1842 	u32 reserved;
1843 };
1844 
1845 typedef struct gate_struct gate_desc;
1846 
1847 struct desc_ptr {
1848 	short unsigned int size;
1849 	long unsigned int address;
1850 } __attribute__((packed));
1851 
1852 struct orc_entry {
1853 	s16 sp_offset;
1854 	s16 bp_offset;
1855 	unsigned int sp_reg: 4;
1856 	unsigned int bp_reg: 4;
1857 	unsigned int type: 2;
1858 	unsigned int end: 1;
1859 } __attribute__((packed));
1860 
1861 struct fpu_state_config {
1862 	unsigned int max_size;
1863 	unsigned int default_size;
1864 	u64 max_features;
1865 	u64 default_features;
1866 	u64 legacy_features;
1867 };
1868 
1869 enum {
1870 	UNAME26 = 131072,
1871 	ADDR_NO_RANDOMIZE = 262144,
1872 	FDPIC_FUNCPTRS = 524288,
1873 	MMAP_PAGE_ZERO = 1048576,
1874 	ADDR_COMPAT_LAYOUT = 2097152,
1875 	READ_IMPLIES_EXEC = 4194304,
1876 	ADDR_LIMIT_32BIT = 8388608,
1877 	SHORT_INODE = 16777216,
1878 	WHOLE_SECONDS = 33554432,
1879 	STICKY_TIMEOUTS = 67108864,
1880 	ADDR_LIMIT_3GB = 134217728,
1881 };
1882 
1883 enum tlb_infos {
1884 	ENTRIES = 0,
1885 	NR_INFO = 1,
1886 };
1887 
1888 struct cpuinfo_x86 {
1889 	__u8 x86;
1890 	__u8 x86_vendor;
1891 	__u8 x86_model;
1892 	__u8 x86_stepping;
1893 	int x86_tlbsize;
1894 	__u32 vmx_capability[3];
1895 	__u8 x86_virt_bits;
1896 	__u8 x86_phys_bits;
1897 	__u8 x86_coreid_bits;
1898 	__u8 cu_id;
1899 	__u32 extended_cpuid_level;
1900 	int cpuid_level;
1901 	union {
1902 		__u32 x86_capability[21];
1903 		long unsigned int x86_capability_alignment;
1904 	};
1905 	char x86_vendor_id[16];
1906 	char x86_model_id[64];
1907 	unsigned int x86_cache_size;
1908 	int x86_cache_alignment;
1909 	int x86_cache_max_rmid;
1910 	int x86_cache_occ_scale;
1911 	int x86_cache_mbm_width_offset;
1912 	int x86_power;
1913 	long unsigned int loops_per_jiffy;
1914 	u16 x86_max_cores;
1915 	u16 apicid;
1916 	u16 initial_apicid;
1917 	u16 x86_clflush_size;
1918 	u16 booted_cores;
1919 	u16 phys_proc_id;
1920 	u16 logical_proc_id;
1921 	u16 cpu_core_id;
1922 	u16 cpu_die_id;
1923 	u16 logical_die_id;
1924 	u16 cpu_index;
1925 	bool smt_active;
1926 	u32 microcode;
1927 	u8 x86_cache_bits;
1928 	unsigned int initialized: 1;
1929 };
1930 
1931 struct seq_operations {
1932 	void * (*start)(struct seq_file *, loff_t *);
1933 	void (*stop)(struct seq_file *, void *);
1934 	void * (*next)(struct seq_file *, void *, loff_t *);
1935 	int (*show)(struct seq_file *, void *);
1936 };
1937 
1938 struct x86_hw_tss {
1939 	u32 reserved1;
1940 	u64 sp0;
1941 	u64 sp1;
1942 	u64 sp2;
1943 	u64 reserved2;
1944 	u64 ist[7];
1945 	u32 reserved3;
1946 	u32 reserved4;
1947 	u16 reserved5;
1948 	u16 io_bitmap_base;
1949 } __attribute__((packed));
1950 
1951 struct entry_stack {
1952 	char stack[4096];
1953 };
1954 
1955 struct entry_stack_page {
1956 	struct entry_stack stack;
1957 };
1958 
1959 struct x86_io_bitmap {
1960 	u64 prev_sequence;
1961 	unsigned int prev_max;
1962 	long unsigned int bitmap[1025];
1963 	long unsigned int mapall[1025];
1964 };
1965 
1966 struct tss_struct {
1967 	struct x86_hw_tss x86_tss;
1968 	struct x86_io_bitmap io_bitmap;
1969 	long: 64;
1970 	long: 64;
1971 	long: 64;
1972 	long: 64;
1973 	long: 64;
1974 	long: 64;
1975 	long: 64;
1976 	long: 64;
1977 	long: 64;
1978 	long: 64;
1979 	long: 64;
1980 	long: 64;
1981 	long: 64;
1982 	long: 64;
1983 	long: 64;
1984 	long: 64;
1985 	long: 64;
1986 	long: 64;
1987 	long: 64;
1988 	long: 64;
1989 	long: 64;
1990 	long: 64;
1991 	long: 64;
1992 	long: 64;
1993 	long: 64;
1994 	long: 64;
1995 	long: 64;
1996 	long: 64;
1997 	long: 64;
1998 	long: 64;
1999 	long: 64;
2000 	long: 64;
2001 	long: 64;
2002 	long: 64;
2003 	long: 64;
2004 	long: 64;
2005 	long: 64;
2006 	long: 64;
2007 	long: 64;
2008 	long: 64;
2009 	long: 64;
2010 	long: 64;
2011 	long: 64;
2012 	long: 64;
2013 	long: 64;
2014 	long: 64;
2015 	long: 64;
2016 	long: 64;
2017 	long: 64;
2018 	long: 64;
2019 	long: 64;
2020 	long: 64;
2021 	long: 64;
2022 	long: 64;
2023 	long: 64;
2024 	long: 64;
2025 	long: 64;
2026 	long: 64;
2027 	long: 64;
2028 	long: 64;
2029 	long: 64;
2030 	long: 64;
2031 	long: 64;
2032 	long: 64;
2033 	long: 64;
2034 	long: 64;
2035 	long: 64;
2036 	long: 64;
2037 	long: 64;
2038 	long: 64;
2039 	long: 64;
2040 	long: 64;
2041 	long: 64;
2042 	long: 64;
2043 	long: 64;
2044 	long: 64;
2045 	long: 64;
2046 	long: 64;
2047 	long: 64;
2048 	long: 64;
2049 	long: 64;
2050 	long: 64;
2051 	long: 64;
2052 	long: 64;
2053 	long: 64;
2054 	long: 64;
2055 	long: 64;
2056 	long: 64;
2057 	long: 64;
2058 	long: 64;
2059 	long: 64;
2060 	long: 64;
2061 	long: 64;
2062 	long: 64;
2063 	long: 64;
2064 	long: 64;
2065 	long: 64;
2066 	long: 64;
2067 	long: 64;
2068 	long: 64;
2069 	long: 64;
2070 	long: 64;
2071 	long: 64;
2072 	long: 64;
2073 	long: 64;
2074 	long: 64;
2075 	long: 64;
2076 	long: 64;
2077 	long: 64;
2078 	long: 64;
2079 	long: 64;
2080 	long: 64;
2081 	long: 64;
2082 	long: 64;
2083 	long: 64;
2084 	long: 64;
2085 	long: 64;
2086 	long: 64;
2087 	long: 64;
2088 	long: 64;
2089 	long: 64;
2090 	long: 64;
2091 	long: 64;
2092 	long: 64;
2093 	long: 64;
2094 	long: 64;
2095 	long: 64;
2096 	long: 64;
2097 	long: 64;
2098 	long: 64;
2099 	long: 64;
2100 	long: 64;
2101 	long: 64;
2102 	long: 64;
2103 	long: 64;
2104 	long: 64;
2105 	long: 64;
2106 	long: 64;
2107 	long: 64;
2108 	long: 64;
2109 	long: 64;
2110 	long: 64;
2111 	long: 64;
2112 	long: 64;
2113 	long: 64;
2114 	long: 64;
2115 	long: 64;
2116 	long: 64;
2117 	long: 64;
2118 	long: 64;
2119 	long: 64;
2120 	long: 64;
2121 	long: 64;
2122 	long: 64;
2123 	long: 64;
2124 	long: 64;
2125 	long: 64;
2126 	long: 64;
2127 	long: 64;
2128 	long: 64;
2129 	long: 64;
2130 	long: 64;
2131 	long: 64;
2132 	long: 64;
2133 	long: 64;
2134 	long: 64;
2135 	long: 64;
2136 	long: 64;
2137 	long: 64;
2138 	long: 64;
2139 	long: 64;
2140 	long: 64;
2141 	long: 64;
2142 	long: 64;
2143 	long: 64;
2144 	long: 64;
2145 	long: 64;
2146 	long: 64;
2147 	long: 64;
2148 	long: 64;
2149 	long: 64;
2150 	long: 64;
2151 	long: 64;
2152 	long: 64;
2153 	long: 64;
2154 	long: 64;
2155 	long: 64;
2156 	long: 64;
2157 	long: 64;
2158 	long: 64;
2159 	long: 64;
2160 	long: 64;
2161 	long: 64;
2162 	long: 64;
2163 	long: 64;
2164 	long: 64;
2165 	long: 64;
2166 	long: 64;
2167 	long: 64;
2168 	long: 64;
2169 	long: 64;
2170 	long: 64;
2171 	long: 64;
2172 	long: 64;
2173 	long: 64;
2174 	long: 64;
2175 	long: 64;
2176 	long: 64;
2177 	long: 64;
2178 	long: 64;
2179 	long: 64;
2180 	long: 64;
2181 	long: 64;
2182 	long: 64;
2183 	long: 64;
2184 	long: 64;
2185 	long: 64;
2186 	long: 64;
2187 	long: 64;
2188 	long: 64;
2189 	long: 64;
2190 	long: 64;
2191 	long: 64;
2192 	long: 64;
2193 	long: 64;
2194 	long: 64;
2195 	long: 64;
2196 	long: 64;
2197 	long: 64;
2198 	long: 64;
2199 	long: 64;
2200 	long: 64;
2201 	long: 64;
2202 	long: 64;
2203 	long: 64;
2204 	long: 64;
2205 	long: 64;
2206 	long: 64;
2207 	long: 64;
2208 	long: 64;
2209 	long: 64;
2210 	long: 64;
2211 	long: 64;
2212 	long: 64;
2213 	long: 64;
2214 	long: 64;
2215 	long: 64;
2216 	long: 64;
2217 	long: 64;
2218 	long: 64;
2219 	long: 64;
2220 	long: 64;
2221 	long: 64;
2222 	long: 64;
2223 	long: 64;
2224 	long: 64;
2225 	long: 64;
2226 	long: 64;
2227 	long: 64;
2228 	long: 64;
2229 	long: 64;
2230 	long: 64;
2231 	long: 64;
2232 	long: 64;
2233 	long: 64;
2234 	long: 64;
2235 	long: 64;
2236 	long: 64;
2237 	long: 64;
2238 	long: 64;
2239 	long: 64;
2240 	long: 64;
2241 	long: 64;
2242 	long: 64;
2243 	long: 64;
2244 	long: 64;
2245 	long: 64;
2246 	long: 64;
2247 	long: 64;
2248 	long: 64;
2249 	long: 64;
2250 	long: 64;
2251 	long: 64;
2252 	long: 64;
2253 	long: 64;
2254 	long: 64;
2255 	long: 64;
2256 	long: 64;
2257 	long: 64;
2258 	long: 64;
2259 	long: 64;
2260 	long: 64;
2261 	long: 64;
2262 	long: 64;
2263 	long: 64;
2264 	long: 64;
2265 	long: 64;
2266 	long: 64;
2267 	long: 64;
2268 	long: 64;
2269 	long: 64;
2270 	long: 64;
2271 	long: 64;
2272 	long: 64;
2273 	long: 64;
2274 	long: 64;
2275 	long: 64;
2276 	long: 64;
2277 	long: 64;
2278 	long: 64;
2279 	long: 64;
2280 	long: 64;
2281 	long: 64;
2282 	long: 64;
2283 	long: 64;
2284 	long: 64;
2285 	long: 64;
2286 	long: 64;
2287 	long: 64;
2288 	long: 64;
2289 	long: 64;
2290 	long: 64;
2291 	long: 64;
2292 	long: 64;
2293 	long: 64;
2294 	long: 64;
2295 	long: 64;
2296 	long: 64;
2297 	long: 64;
2298 	long: 64;
2299 	long: 64;
2300 	long: 64;
2301 	long: 64;
2302 	long: 64;
2303 	long: 64;
2304 	long: 64;
2305 	long: 64;
2306 	long: 64;
2307 	long: 64;
2308 	long: 64;
2309 	long: 64;
2310 	long: 64;
2311 	long: 64;
2312 	long: 64;
2313 	long: 64;
2314 	long: 64;
2315 	long: 64;
2316 	long: 64;
2317 	long: 64;
2318 	long: 64;
2319 	long: 64;
2320 	long: 64;
2321 	long: 64;
2322 	long: 64;
2323 	long: 64;
2324 	long: 64;
2325 	long: 64;
2326 	long: 64;
2327 	long: 64;
2328 	long: 64;
2329 	long: 64;
2330 	long: 64;
2331 	long: 64;
2332 	long: 64;
2333 	long: 64;
2334 	long: 64;
2335 	long: 64;
2336 	long: 64;
2337 	long: 64;
2338 	long: 64;
2339 	long: 64;
2340 	long: 64;
2341 	long: 64;
2342 	long: 64;
2343 	long: 64;
2344 	long: 64;
2345 	long: 64;
2346 	long: 64;
2347 	long: 64;
2348 	long: 64;
2349 	long: 64;
2350 	long: 64;
2351 	long: 64;
2352 	long: 64;
2353 	long: 64;
2354 	long: 64;
2355 	long: 64;
2356 	long: 64;
2357 	long: 64;
2358 	long: 64;
2359 	long: 64;
2360 	long: 64;
2361 	long: 64;
2362 	long: 64;
2363 	long: 64;
2364 	long: 64;
2365 	long: 64;
2366 	long: 64;
2367 	long: 64;
2368 	long: 64;
2369 	long: 64;
2370 	long: 64;
2371 	long: 64;
2372 	long: 64;
2373 	long: 64;
2374 	long: 64;
2375 	long: 64;
2376 	long: 64;
2377 	long: 64;
2378 	long: 64;
2379 	long: 64;
2380 	long: 64;
2381 	long: 64;
2382 	long: 64;
2383 	long: 64;
2384 	long: 64;
2385 	long: 64;
2386 	long: 64;
2387 	long: 64;
2388 	long: 64;
2389 	long: 64;
2390 	long: 64;
2391 	long: 64;
2392 	long: 64;
2393 	long: 64;
2394 	long: 64;
2395 	long: 64;
2396 	long: 64;
2397 	long: 64;
2398 	long: 64;
2399 	long: 64;
2400 	long: 64;
2401 	long: 64;
2402 	long: 64;
2403 	long: 64;
2404 	long: 64;
2405 	long: 64;
2406 	long: 64;
2407 	long: 64;
2408 	long: 64;
2409 	long: 64;
2410 	long: 64;
2411 	long: 64;
2412 	long: 64;
2413 	long: 64;
2414 	long: 64;
2415 	long: 64;
2416 	long: 64;
2417 	long: 64;
2418 	long: 64;
2419 	long: 64;
2420 	long: 64;
2421 	long: 64;
2422 	long: 64;
2423 	long: 64;
2424 	long: 64;
2425 	long: 64;
2426 	long: 64;
2427 	long: 64;
2428 	long: 64;
2429 	long: 64;
2430 	long: 64;
2431 	long: 64;
2432 	long: 64;
2433 	long: 64;
2434 	long: 64;
2435 	long: 64;
2436 	long: 64;
2437 	long: 64;
2438 	long: 64;
2439 	long: 64;
2440 	long: 64;
2441 	long: 64;
2442 	long: 64;
2443 	long: 64;
2444 	long: 64;
2445 	long: 64;
2446 	long: 64;
2447 	long: 64;
2448 	long: 64;
2449 	long: 64;
2450 	long: 64;
2451 	long: 64;
2452 	long: 64;
2453 	long: 64;
2454 	long: 64;
2455 	long: 64;
2456 	long: 64;
2457 	long: 64;
2458 	long: 64;
2459 	long: 64;
2460 	long: 64;
2461 	long: 64;
2462 	long: 64;
2463 	long: 64;
2464 };
2465 
2466 struct fixed_percpu_data {
2467 	char gs_base[40];
2468 	long unsigned int stack_canary;
2469 };
2470 
2471 enum l1tf_mitigations {
2472 	L1TF_MITIGATION_OFF = 0,
2473 	L1TF_MITIGATION_FLUSH_NOWARN = 1,
2474 	L1TF_MITIGATION_FLUSH = 2,
2475 	L1TF_MITIGATION_FLUSH_NOSMT = 3,
2476 	L1TF_MITIGATION_FULL = 4,
2477 	L1TF_MITIGATION_FULL_FORCE = 5,
2478 };
2479 
2480 struct smp_ops {
2481 	void (*smp_prepare_boot_cpu)();
2482 	void (*smp_prepare_cpus)(unsigned int);
2483 	void (*smp_cpus_done)(unsigned int);
2484 	void (*stop_other_cpus)(int);
2485 	void (*crash_stop_other_cpus)();
2486 	void (*smp_send_reschedule)(int);
2487 	int (*cpu_up)(unsigned int, struct task_struct *);
2488 	int (*cpu_disable)();
2489 	void (*cpu_die)(unsigned int);
2490 	void (*play_dead)();
2491 	void (*send_call_func_ipi)(const struct cpumask *);
2492 	void (*send_call_func_single_ipi)(int);
2493 };
2494 
2495 enum pcpu_fc {
2496 	PCPU_FC_AUTO = 0,
2497 	PCPU_FC_EMBED = 1,
2498 	PCPU_FC_PAGE = 2,
2499 	PCPU_FC_NR = 3,
2500 };
2501 
2502 struct fwnode_operations;
2503 
2504 struct device;
2505 
2506 struct fwnode_handle {
2507 	struct fwnode_handle *secondary;
2508 	const struct fwnode_operations *ops;
2509 	struct device *dev;
2510 	struct list_head suppliers;
2511 	struct list_head consumers;
2512 	u8 flags;
2513 };
2514 
2515 struct fwnode_reference_args;
2516 
2517 struct fwnode_endpoint;
2518 
2519 struct fwnode_operations {
2520 	struct fwnode_handle * (*get)(struct fwnode_handle *);
2521 	void (*put)(struct fwnode_handle *);
2522 	bool (*device_is_available)(const struct fwnode_handle *);
2523 	const void * (*device_get_match_data)(const struct fwnode_handle *, const struct device *);
2524 	bool (*property_present)(const struct fwnode_handle *, const char *);
2525 	int (*property_read_int_array)(const struct fwnode_handle *, const char *, unsigned int, void *, size_t);
2526 	int (*property_read_string_array)(const struct fwnode_handle *, const char *, const char **, size_t);
2527 	const char * (*get_name)(const struct fwnode_handle *);
2528 	const char * (*get_name_prefix)(const struct fwnode_handle *);
2529 	struct fwnode_handle * (*get_parent)(const struct fwnode_handle *);
2530 	struct fwnode_handle * (*get_next_child_node)(const struct fwnode_handle *, struct fwnode_handle *);
2531 	struct fwnode_handle * (*get_named_child_node)(const struct fwnode_handle *, const char *);
2532 	int (*get_reference_args)(const struct fwnode_handle *, const char *, const char *, unsigned int, unsigned int, struct fwnode_reference_args *);
2533 	struct fwnode_handle * (*graph_get_next_endpoint)(const struct fwnode_handle *, struct fwnode_handle *);
2534 	struct fwnode_handle * (*graph_get_remote_endpoint)(const struct fwnode_handle *);
2535 	struct fwnode_handle * (*graph_get_port_parent)(struct fwnode_handle *);
2536 	int (*graph_parse_endpoint)(const struct fwnode_handle *, struct fwnode_endpoint *);
2537 	int (*add_links)(struct fwnode_handle *);
2538 };
2539 
2540 struct kref {
2541 	refcount_t refcount;
2542 };
2543 
2544 struct kset;
2545 
2546 struct kobj_type;
2547 
2548 struct kernfs_node;
2549 
2550 struct kobject {
2551 	const char *name;
2552 	struct list_head entry;
2553 	struct kobject *parent;
2554 	struct kset *kset;
2555 	const struct kobj_type *ktype;
2556 	struct kernfs_node *sd;
2557 	struct kref kref;
2558 	unsigned int state_initialized: 1;
2559 	unsigned int state_in_sysfs: 1;
2560 	unsigned int state_add_uevent_sent: 1;
2561 	unsigned int state_remove_uevent_sent: 1;
2562 	unsigned int uevent_suppress: 1;
2563 };
2564 
2565 enum dl_dev_state {
2566 	DL_DEV_NO_DRIVER = 0,
2567 	DL_DEV_PROBING = 1,
2568 	DL_DEV_DRIVER_BOUND = 2,
2569 	DL_DEV_UNBINDING = 3,
2570 };
2571 
2572 struct dev_links_info {
2573 	struct list_head suppliers;
2574 	struct list_head consumers;
2575 	struct list_head defer_sync;
2576 	enum dl_dev_state status;
2577 };
2578 
2579 struct pm_message {
2580 	int event;
2581 };
2582 
2583 typedef struct pm_message pm_message_t;
2584 
2585 struct pm_subsys_data;
2586 
2587 struct dev_pm_qos;
2588 
2589 struct dev_pm_info {
2590 	pm_message_t power_state;
2591 	unsigned int can_wakeup: 1;
2592 	unsigned int async_suspend: 1;
2593 	bool in_dpm_list: 1;
2594 	bool is_prepared: 1;
2595 	bool is_suspended: 1;
2596 	bool is_noirq_suspended: 1;
2597 	bool is_late_suspended: 1;
2598 	bool no_pm: 1;
2599 	bool early_init: 1;
2600 	bool direct_complete: 1;
2601 	u32 driver_flags;
2602 	spinlock_t lock;
2603 	unsigned int should_wakeup: 1;
2604 	struct pm_subsys_data *subsys_data;
2605 	void (*set_latency_tolerance)(struct device *, s32);
2606 	struct dev_pm_qos *qos;
2607 };
2608 
2609 struct irq_domain;
2610 
2611 struct msi_device_data;
2612 
2613 struct dev_msi_info {
2614 	struct irq_domain *domain;
2615 	struct msi_device_data *data;
2616 };
2617 
2618 struct dev_archdata {};
2619 
2620 struct dev_iommu;
2621 
2622 enum device_removable {
2623 	DEVICE_REMOVABLE_NOT_SUPPORTED = 0,
2624 	DEVICE_REMOVABLE_UNKNOWN = 1,
2625 	DEVICE_FIXED = 2,
2626 	DEVICE_REMOVABLE = 3,
2627 };
2628 
2629 struct device_private;
2630 
2631 struct device_type;
2632 
2633 struct bus_type;
2634 
2635 struct device_driver;
2636 
2637 struct dev_pm_domain;
2638 
2639 struct dma_map_ops;
2640 
2641 struct bus_dma_region;
2642 
2643 struct device_dma_parameters;
2644 
2645 struct cma;
2646 
2647 struct io_tlb_mem;
2648 
2649 struct device_node;
2650 
2651 struct class;
2652 
2653 struct attribute_group;
2654 
2655 struct iommu_group;
2656 
2657 struct device {
2658 	struct kobject kobj;
2659 	struct device *parent;
2660 	struct device_private *p;
2661 	const char *init_name;
2662 	const struct device_type *type;
2663 	struct bus_type *bus;
2664 	struct device_driver *driver;
2665 	void *platform_data;
2666 	void *driver_data;
2667 	struct mutex lockdep_mutex;
2668 	struct mutex mutex;
2669 	struct dev_links_info links;
2670 	struct dev_pm_info power;
2671 	struct dev_pm_domain *pm_domain;
2672 	struct dev_msi_info msi;
2673 	const struct dma_map_ops *dma_ops;
2674 	u64 *dma_mask;
2675 	u64 coherent_dma_mask;
2676 	u64 bus_dma_limit;
2677 	const struct bus_dma_region *dma_range_map;
2678 	struct device_dma_parameters *dma_parms;
2679 	struct list_head dma_pools;
2680 	struct cma *cma_area;
2681 	struct io_tlb_mem *dma_io_tlb_mem;
2682 	struct dev_archdata archdata;
2683 	struct device_node *of_node;
2684 	struct fwnode_handle *fwnode;
2685 	int numa_node;
2686 	dev_t devt;
2687 	u32 id;
2688 	spinlock_t devres_lock;
2689 	struct list_head devres_head;
2690 	struct class *class;
2691 	const struct attribute_group **groups;
2692 	void (*release)(struct device *);
2693 	struct iommu_group *iommu_group;
2694 	struct dev_iommu *iommu;
2695 	enum device_removable removable;
2696 	bool offline_disabled: 1;
2697 	bool offline: 1;
2698 	bool of_node_reused: 1;
2699 	bool state_synced: 1;
2700 	bool can_match: 1;
2701 };
2702 
2703 struct fwnode_endpoint {
2704 	unsigned int port;
2705 	unsigned int id;
2706 	const struct fwnode_handle *local_fwnode;
2707 };
2708 
2709 struct fwnode_reference_args {
2710 	struct fwnode_handle *fwnode;
2711 	unsigned int nargs;
2712 	u64 args[8];
2713 };
2714 
2715 typedef struct {
2716 	arch_rwlock_t raw_lock;
2717 	unsigned int magic;
2718 	unsigned int owner_cpu;
2719 	void *owner;
2720 	struct lockdep_map dep_map;
2721 } rwlock_t;
2722 
2723 struct vm_struct {
2724 	struct vm_struct *next;
2725 	void *addr;
2726 	long unsigned int size;
2727 	long unsigned int flags;
2728 	struct page **pages;
2729 	unsigned int nr_pages;
2730 	phys_addr_t phys_addr;
2731 	const void *caller;
2732 };
2733 
2734 struct wait_queue_head {
2735 	spinlock_t lock;
2736 	struct list_head head;
2737 };
2738 
2739 typedef struct wait_queue_head wait_queue_head_t;
2740 
2741 struct seqcount_raw_spinlock {
2742 	seqcount_t seqcount;
2743 	raw_spinlock_t *lock;
2744 };
2745 
2746 typedef struct seqcount_raw_spinlock seqcount_raw_spinlock_t;
2747 
2748 typedef struct {
2749 	seqcount_spinlock_t seqcount;
2750 	spinlock_t lock;
2751 } seqlock_t;
2752 
2753 enum node_states {
2754 	N_POSSIBLE = 0,
2755 	N_ONLINE = 1,
2756 	N_NORMAL_MEMORY = 2,
2757 	N_HIGH_MEMORY = 2,
2758 	N_MEMORY = 3,
2759 	N_CPU = 4,
2760 	N_GENERIC_INITIATOR = 5,
2761 	NR_NODE_STATES = 6,
2762 };
2763 
2764 struct userfaultfd_ctx;
2765 
2766 struct vm_userfaultfd_ctx {
2767 	struct userfaultfd_ctx *ctx;
2768 };
2769 
2770 struct anon_vma_name;
2771 
2772 struct anon_vma;
2773 
2774 struct vm_operations_struct;
2775 
2776 struct vm_area_struct {
2777 	long unsigned int vm_start;
2778 	long unsigned int vm_end;
2779 	struct vm_area_struct *vm_next;
2780 	struct vm_area_struct *vm_prev;
2781 	struct rb_node vm_rb;
2782 	long unsigned int rb_subtree_gap;
2783 	struct mm_struct *vm_mm;
2784 	pgprot_t vm_page_prot;
2785 	long unsigned int vm_flags;
2786 	union {
2787 		struct {
2788 			struct rb_node rb;
2789 			long unsigned int rb_subtree_last;
2790 		} shared;
2791 		struct anon_vma_name *anon_name;
2792 	};
2793 	struct list_head anon_vma_chain;
2794 	struct anon_vma *anon_vma;
2795 	const struct vm_operations_struct *vm_ops;
2796 	long unsigned int vm_pgoff;
2797 	struct file *vm_file;
2798 	void *vm_private_data;
2799 	atomic_long_t swap_readahead_info;
2800 	struct mempolicy *vm_policy;
2801 	struct vm_userfaultfd_ctx vm_userfaultfd_ctx;
2802 };
2803 
2804 enum {
2805 	MM_FILEPAGES = 0,
2806 	MM_ANONPAGES = 1,
2807 	MM_SWAPENTS = 2,
2808 	MM_SHMEMPAGES = 3,
2809 	NR_MM_COUNTERS = 4,
2810 };
2811 
2812 struct mm_rss_stat {
2813 	atomic_long_t count[4];
2814 };
2815 
2816 struct rw_semaphore {
2817 	atomic_long_t count;
2818 	atomic_long_t owner;
2819 	struct optimistic_spin_queue osq;
2820 	raw_spinlock_t wait_lock;
2821 	struct list_head wait_list;
2822 	void *magic;
2823 	struct lockdep_map dep_map;
2824 };
2825 
2826 struct swait_queue_head {
2827 	raw_spinlock_t lock;
2828 	struct list_head task_list;
2829 };
2830 
2831 struct completion {
2832 	unsigned int done;
2833 	struct swait_queue_head wait;
2834 };
2835 
2836 struct ldt_struct;
2837 
2838 struct vdso_image;
2839 
2840 typedef struct {
2841 	u64 ctx_id;
2842 	atomic64_t tlb_gen;
2843 	struct rw_semaphore ldt_usr_sem;
2844 	struct ldt_struct *ldt;
2845 	short unsigned int flags;
2846 	struct mutex lock;
2847 	void *vdso;
2848 	const struct vdso_image *vdso_image;
2849 	atomic_t perf_rdpmc_allowed;
2850 } mm_context_t;
2851 
2852 struct xol_area;
2853 
2854 struct uprobes_state {
2855 	struct xol_area *xol_area;
2856 };
2857 
2858 struct work_struct;
2859 
2860 typedef void (*work_func_t)(struct work_struct *);
2861 
2862 struct work_struct {
2863 	atomic_long_t data;
2864 	struct list_head entry;
2865 	work_func_t func;
2866 	struct lockdep_map lockdep_map;
2867 };
2868 
2869 struct linux_binfmt;
2870 
2871 struct kioctx_table;
2872 
2873 struct user_namespace;
2874 
2875 struct mm_struct {
2876 	struct {
2877 		struct vm_area_struct *mmap;
2878 		struct rb_root mm_rb;
2879 		u64 vmacache_seqnum;
2880 		long unsigned int (*get_unmapped_area)(struct file *, long unsigned int, long unsigned int, long unsigned int, long unsigned int);
2881 		long unsigned int mmap_base;
2882 		long unsigned int mmap_legacy_base;
2883 		long unsigned int task_size;
2884 		long unsigned int highest_vm_end;
2885 		pgd_t *pgd;
2886 		atomic_t membarrier_state;
2887 		atomic_t mm_users;
2888 		atomic_t mm_count;
2889 		atomic_long_t pgtables_bytes;
2890 		int map_count;
2891 		spinlock_t page_table_lock;
2892 		struct rw_semaphore mmap_lock;
2893 		struct list_head mmlist;
2894 		long unsigned int hiwater_rss;
2895 		long unsigned int hiwater_vm;
2896 		long unsigned int total_vm;
2897 		long unsigned int locked_vm;
2898 		atomic64_t pinned_vm;
2899 		long unsigned int data_vm;
2900 		long unsigned int exec_vm;
2901 		long unsigned int stack_vm;
2902 		long unsigned int def_flags;
2903 		seqcount_t write_protect_seq;
2904 		spinlock_t arg_lock;
2905 		long unsigned int start_code;
2906 		long unsigned int end_code;
2907 		long unsigned int start_data;
2908 		long unsigned int end_data;
2909 		long unsigned int start_brk;
2910 		long unsigned int brk;
2911 		long unsigned int start_stack;
2912 		long unsigned int arg_start;
2913 		long unsigned int arg_end;
2914 		long unsigned int env_start;
2915 		long unsigned int env_end;
2916 		long unsigned int saved_auxv[46];
2917 		struct mm_rss_stat rss_stat;
2918 		struct linux_binfmt *binfmt;
2919 		mm_context_t context;
2920 		long unsigned int flags;
2921 		spinlock_t ioctx_lock;
2922 		struct kioctx_table *ioctx_table;
2923 		struct task_struct *owner;
2924 		struct user_namespace *user_ns;
2925 		struct file *exe_file;
2926 		long unsigned int numa_next_scan;
2927 		long unsigned int numa_scan_offset;
2928 		int numa_scan_seq;
2929 		atomic_t tlb_flush_pending;
2930 		atomic_t tlb_flush_batched;
2931 		struct uprobes_state uprobes_state;
2932 		atomic_long_t hugetlb_usage;
2933 		struct work_struct async_put_work;
2934 	};
2935 	long unsigned int cpu_bitmap[0];
2936 };
2937 
2938 struct timer_list {
2939 	struct hlist_node entry;
2940 	long unsigned int expires;
2941 	void (*function)(struct timer_list *);
2942 	u32 flags;
2943 	struct lockdep_map lockdep_map;
2944 };
2945 
2946 struct workqueue_struct;
2947 
2948 struct delayed_work {
2949 	struct work_struct work;
2950 	struct timer_list timer;
2951 	struct workqueue_struct *wq;
2952 	int cpu;
2953 };
2954 
2955 struct rcu_segcblist {
2956 	struct callback_head *head;
2957 	struct callback_head **tails[4];
2958 	long unsigned int gp_seq[4];
2959 	long int len;
2960 	long int seglen[4];
2961 	u8 flags;
2962 };
2963 
2964 struct srcu_node;
2965 
2966 struct srcu_struct;
2967 
2968 struct srcu_data {
2969 	long unsigned int srcu_lock_count[2];
2970 	long unsigned int srcu_unlock_count[2];
2971 	long: 64;
2972 	long: 64;
2973 	long: 64;
2974 	long: 64;
2975 	spinlock_t lock;
2976 	struct rcu_segcblist srcu_cblist;
2977 	long unsigned int srcu_gp_seq_needed;
2978 	long unsigned int srcu_gp_seq_needed_exp;
2979 	bool srcu_cblist_invoking;
2980 	struct timer_list delay_work;
2981 	struct work_struct work;
2982 	struct callback_head srcu_barrier_head;
2983 	struct srcu_node *mynode;
2984 	long unsigned int grpmask;
2985 	int cpu;
2986 	struct srcu_struct *ssp;
2987 	long: 64;
2988 	long: 64;
2989 	long: 64;
2990 	long: 64;
2991 	long: 64;
2992 };
2993 
2994 struct srcu_node {
2995 	spinlock_t lock;
2996 	long unsigned int srcu_have_cbs[4];
2997 	long unsigned int srcu_data_have_cbs[4];
2998 	long unsigned int srcu_gp_seq_needed_exp;
2999 	struct srcu_node *srcu_parent;
3000 	int grplo;
3001 	int grphi;
3002 };
3003 
3004 struct srcu_struct {
3005 	struct srcu_node node[9];
3006 	struct srcu_node *level[3];
3007 	struct mutex srcu_cb_mutex;
3008 	spinlock_t lock;
3009 	struct mutex srcu_gp_mutex;
3010 	unsigned int srcu_idx;
3011 	long unsigned int srcu_gp_seq;
3012 	long unsigned int srcu_gp_seq_needed;
3013 	long unsigned int srcu_gp_seq_needed_exp;
3014 	long unsigned int srcu_last_gp_end;
3015 	struct srcu_data *sda;
3016 	long unsigned int srcu_barrier_seq;
3017 	struct mutex srcu_barrier_mutex;
3018 	struct completion srcu_barrier_completion;
3019 	atomic_t srcu_barrier_cpu_cnt;
3020 	struct delayed_work work;
3021 	struct lockdep_map dep_map;
3022 };
3023 
3024 struct notifier_block;
3025 
3026 typedef int (*notifier_fn_t)(struct notifier_block *, long unsigned int, void *);
3027 
3028 struct notifier_block {
3029 	notifier_fn_t notifier_call;
3030 	struct notifier_block *next;
3031 	int priority;
3032 };
3033 
3034 struct blocking_notifier_head {
3035 	struct rw_semaphore rwsem;
3036 	struct notifier_block *head;
3037 };
3038 
3039 struct arch_uprobe_task {
3040 	long unsigned int saved_scratch_register;
3041 	unsigned int saved_trap_nr;
3042 	unsigned int saved_tf;
3043 };
3044 
3045 enum uprobe_task_state {
3046 	UTASK_RUNNING = 0,
3047 	UTASK_SSTEP = 1,
3048 	UTASK_SSTEP_ACK = 2,
3049 	UTASK_SSTEP_TRAPPED = 3,
3050 };
3051 
3052 struct uprobe;
3053 
3054 struct return_instance;
3055 
3056 struct uprobe_task {
3057 	enum uprobe_task_state state;
3058 	union {
3059 		struct {
3060 			struct arch_uprobe_task autask;
3061 			long unsigned int vaddr;
3062 		};
3063 		struct {
3064 			struct callback_head dup_xol_work;
3065 			long unsigned int dup_xol_addr;
3066 		};
3067 	};
3068 	struct uprobe *active_uprobe;
3069 	long unsigned int xol_vaddr;
3070 	struct return_instance *return_instances;
3071 	unsigned int depth;
3072 };
3073 
3074 struct return_instance {
3075 	struct uprobe *uprobe;
3076 	long unsigned int func;
3077 	long unsigned int stack;
3078 	long unsigned int orig_ret_vaddr;
3079 	bool chained;
3080 	struct return_instance *next;
3081 };
3082 
3083 struct vdso_image {
3084 	void *data;
3085 	long unsigned int size;
3086 	long unsigned int alt;
3087 	long unsigned int alt_len;
3088 	long unsigned int extable_base;
3089 	long unsigned int extable_len;
3090 	const void *extable;
3091 	long int sym_vvar_start;
3092 	long int sym_vvar_page;
3093 	long int sym_pvclock_page;
3094 	long int sym_hvclock_page;
3095 	long int sym_timens_page;
3096 	long int sym_VDSO32_NOTE_MASK;
3097 	long int sym___kernel_sigreturn;
3098 	long int sym___kernel_rt_sigreturn;
3099 	long int sym___kernel_vsyscall;
3100 	long int sym_int80_landing_pad;
3101 	long int sym_vdso32_sigreturn_landing_pad;
3102 	long int sym_vdso32_rt_sigreturn_landing_pad;
3103 };
3104 
3105 struct xarray {
3106 	spinlock_t xa_lock;
3107 	gfp_t xa_flags;
3108 	void *xa_head;
3109 };
3110 
3111 typedef u32 errseq_t;
3112 
3113 struct address_space_operations;
3114 
3115 struct address_space {
3116 	struct inode *host;
3117 	struct xarray i_pages;
3118 	struct rw_semaphore invalidate_lock;
3119 	gfp_t gfp_mask;
3120 	atomic_t i_mmap_writable;
3121 	struct rb_root_cached i_mmap;
3122 	struct rw_semaphore i_mmap_rwsem;
3123 	long unsigned int nrpages;
3124 	long unsigned int writeback_index;
3125 	const struct address_space_operations *a_ops;
3126 	long unsigned int flags;
3127 	errseq_t wb_err;
3128 	spinlock_t private_lock;
3129 	struct list_head private_list;
3130 	void *private_data;
3131 };
3132 
3133 struct vmem_altmap {
3134 	long unsigned int base_pfn;
3135 	const long unsigned int end_pfn;
3136 	const long unsigned int reserve;
3137 	long unsigned int free;
3138 	long unsigned int align;
3139 	long unsigned int alloc;
3140 };
3141 
3142 struct percpu_ref_data;
3143 
3144 struct percpu_ref {
3145 	long unsigned int percpu_count_ptr;
3146 	struct percpu_ref_data *data;
3147 };
3148 
3149 enum memory_type {
3150 	MEMORY_DEVICE_PRIVATE = 1,
3151 	MEMORY_DEVICE_FS_DAX = 2,
3152 	MEMORY_DEVICE_GENERIC = 3,
3153 	MEMORY_DEVICE_PCI_P2PDMA = 4,
3154 };
3155 
3156 struct dev_pagemap_ops;
3157 
3158 struct dev_pagemap {
3159 	struct vmem_altmap altmap;
3160 	struct percpu_ref ref;
3161 	struct completion done;
3162 	enum memory_type type;
3163 	unsigned int flags;
3164 	long unsigned int vmemmap_shift;
3165 	const struct dev_pagemap_ops *ops;
3166 	void *owner;
3167 	int nr_range;
3168 	union {
3169 		struct range range;
3170 		struct range ranges[0];
3171 	};
3172 };
3173 
3174 struct vfsmount;
3175 
3176 struct path {
3177 	struct vfsmount *mnt;
3178 	struct dentry *dentry;
3179 };
3180 
3181 enum rw_hint {
3182 	WRITE_LIFE_NOT_SET = 0,
3183 	WRITE_LIFE_NONE = 1,
3184 	WRITE_LIFE_SHORT = 2,
3185 	WRITE_LIFE_MEDIUM = 3,
3186 	WRITE_LIFE_LONG = 4,
3187 	WRITE_LIFE_EXTREME = 5,
3188 };
3189 
3190 enum pid_type {
3191 	PIDTYPE_PID = 0,
3192 	PIDTYPE_TGID = 1,
3193 	PIDTYPE_PGID = 2,
3194 	PIDTYPE_SID = 3,
3195 	PIDTYPE_MAX = 4,
3196 };
3197 
3198 struct fown_struct {
3199 	rwlock_t lock;
3200 	struct pid *pid;
3201 	enum pid_type pid_type;
3202 	kuid_t uid;
3203 	kuid_t euid;
3204 	int signum;
3205 };
3206 
3207 struct file_ra_state {
3208 	long unsigned int start;
3209 	unsigned int size;
3210 	unsigned int async_size;
3211 	unsigned int ra_pages;
3212 	unsigned int mmap_miss;
3213 	loff_t prev_pos;
3214 };
3215 
3216 struct file {
3217 	union {
3218 		struct llist_node fu_llist;
3219 		struct callback_head fu_rcuhead;
3220 	} f_u;
3221 	struct path f_path;
3222 	struct inode *f_inode;
3223 	const struct file_operations *f_op;
3224 	spinlock_t f_lock;
3225 	enum rw_hint f_write_hint;
3226 	atomic_long_t f_count;
3227 	unsigned int f_flags;
3228 	fmode_t f_mode;
3229 	struct mutex f_pos_lock;
3230 	loff_t f_pos;
3231 	struct fown_struct f_owner;
3232 	const struct cred *f_cred;
3233 	struct file_ra_state f_ra;
3234 	u64 f_version;
3235 	void *f_security;
3236 	void *private_data;
3237 	struct hlist_head *f_ep;
3238 	struct address_space *f_mapping;
3239 	errseq_t f_wb_err;
3240 	errseq_t f_sb_err;
3241 };
3242 
3243 struct anon_vma_name {
3244 	struct kref kref;
3245 	char name[0];
3246 };
3247 
3248 typedef unsigned int vm_fault_t;
3249 
3250 enum page_entry_size {
3251 	PE_SIZE_PTE = 0,
3252 	PE_SIZE_PMD = 1,
3253 	PE_SIZE_PUD = 2,
3254 };
3255 
3256 struct vm_fault;
3257 
3258 struct vm_operations_struct {
3259 	void (*open)(struct vm_area_struct *);
3260 	void (*close)(struct vm_area_struct *);
3261 	int (*may_split)(struct vm_area_struct *, long unsigned int);
3262 	int (*mremap)(struct vm_area_struct *);
3263 	int (*mprotect)(struct vm_area_struct *, long unsigned int, long unsigned int, long unsigned int);
3264 	vm_fault_t (*fault)(struct vm_fault *);
3265 	vm_fault_t (*huge_fault)(struct vm_fault *, enum page_entry_size);
3266 	vm_fault_t (*map_pages)(struct vm_fault *, long unsigned int, long unsigned int);
3267 	long unsigned int (*pagesize)(struct vm_area_struct *);
3268 	vm_fault_t (*page_mkwrite)(struct vm_fault *);
3269 	vm_fault_t (*pfn_mkwrite)(struct vm_fault *);
3270 	int (*access)(struct vm_area_struct *, long unsigned int, void *, int, int);
3271 	const char * (*name)(struct vm_area_struct *);
3272 	int (*set_policy)(struct vm_area_struct *, struct mempolicy *);
3273 	struct mempolicy * (*get_policy)(struct vm_area_struct *, long unsigned int);
3274 	struct page * (*find_special_page)(struct vm_area_struct *, long unsigned int);
3275 };
3276 
3277 enum fault_flag {
3278 	FAULT_FLAG_WRITE = 1,
3279 	FAULT_FLAG_MKWRITE = 2,
3280 	FAULT_FLAG_ALLOW_RETRY = 4,
3281 	FAULT_FLAG_RETRY_NOWAIT = 8,
3282 	FAULT_FLAG_KILLABLE = 16,
3283 	FAULT_FLAG_TRIED = 32,
3284 	FAULT_FLAG_USER = 64,
3285 	FAULT_FLAG_REMOTE = 128,
3286 	FAULT_FLAG_INSTRUCTION = 256,
3287 	FAULT_FLAG_INTERRUPTIBLE = 512,
3288 };
3289 
3290 struct vm_fault {
3291 	const struct {
3292 		struct vm_area_struct *vma;
3293 		gfp_t gfp_mask;
3294 		long unsigned int pgoff;
3295 		long unsigned int address;
3296 	};
3297 	enum fault_flag flags;
3298 	pmd_t *pmd;
3299 	pud_t *pud;
3300 	union {
3301 		pte_t orig_pte;
3302 		pmd_t orig_pmd;
3303 	};
3304 	struct page *cow_page;
3305 	struct page *page;
3306 	pte_t *pte;
3307 	spinlock_t *ptl;
3308 	pgtable_t prealloc_pte;
3309 };
3310 
3311 typedef struct {
3312 	struct lockdep_map dep_map;
3313 	struct task_struct *owner;
3314 } local_lock_t;
3315 
3316 enum migratetype {
3317 	MIGRATE_UNMOVABLE = 0,
3318 	MIGRATE_MOVABLE = 1,
3319 	MIGRATE_RECLAIMABLE = 2,
3320 	MIGRATE_PCPTYPES = 3,
3321 	MIGRATE_HIGHATOMIC = 3,
3322 	MIGRATE_CMA = 4,
3323 	MIGRATE_ISOLATE = 5,
3324 	MIGRATE_TYPES = 6,
3325 };
3326 
3327 struct free_area {
3328 	struct list_head free_list[6];
3329 	long unsigned int nr_free;
3330 };
3331 
3332 struct zone_padding {
3333 	char x[0];
3334 };
3335 
3336 enum numa_stat_item {
3337 	NUMA_HIT = 0,
3338 	NUMA_MISS = 1,
3339 	NUMA_FOREIGN = 2,
3340 	NUMA_INTERLEAVE_HIT = 3,
3341 	NUMA_LOCAL = 4,
3342 	NUMA_OTHER = 5,
3343 	NR_VM_NUMA_EVENT_ITEMS = 6,
3344 };
3345 
3346 enum zone_stat_item {
3347 	NR_FREE_PAGES = 0,
3348 	NR_ZONE_LRU_BASE = 1,
3349 	NR_ZONE_INACTIVE_ANON = 1,
3350 	NR_ZONE_ACTIVE_ANON = 2,
3351 	NR_ZONE_INACTIVE_FILE = 3,
3352 	NR_ZONE_ACTIVE_FILE = 4,
3353 	NR_ZONE_UNEVICTABLE = 5,
3354 	NR_ZONE_WRITE_PENDING = 6,
3355 	NR_MLOCK = 7,
3356 	NR_BOUNCE = 8,
3357 	NR_FREE_CMA_PAGES = 9,
3358 	NR_VM_ZONE_STAT_ITEMS = 10,
3359 };
3360 
3361 enum node_stat_item {
3362 	NR_LRU_BASE = 0,
3363 	NR_INACTIVE_ANON = 0,
3364 	NR_ACTIVE_ANON = 1,
3365 	NR_INACTIVE_FILE = 2,
3366 	NR_ACTIVE_FILE = 3,
3367 	NR_UNEVICTABLE = 4,
3368 	NR_SLAB_RECLAIMABLE_B = 5,
3369 	NR_SLAB_UNRECLAIMABLE_B = 6,
3370 	NR_ISOLATED_ANON = 7,
3371 	NR_ISOLATED_FILE = 8,
3372 	WORKINGSET_NODES = 9,
3373 	WORKINGSET_REFAULT_BASE = 10,
3374 	WORKINGSET_REFAULT_ANON = 10,
3375 	WORKINGSET_REFAULT_FILE = 11,
3376 	WORKINGSET_ACTIVATE_BASE = 12,
3377 	WORKINGSET_ACTIVATE_ANON = 12,
3378 	WORKINGSET_ACTIVATE_FILE = 13,
3379 	WORKINGSET_RESTORE_BASE = 14,
3380 	WORKINGSET_RESTORE_ANON = 14,
3381 	WORKINGSET_RESTORE_FILE = 15,
3382 	WORKINGSET_NODERECLAIM = 16,
3383 	NR_ANON_MAPPED = 17,
3384 	NR_FILE_MAPPED = 18,
3385 	NR_FILE_PAGES = 19,
3386 	NR_FILE_DIRTY = 20,
3387 	NR_WRITEBACK = 21,
3388 	NR_WRITEBACK_TEMP = 22,
3389 	NR_SHMEM = 23,
3390 	NR_SHMEM_THPS = 24,
3391 	NR_SHMEM_PMDMAPPED = 25,
3392 	NR_FILE_THPS = 26,
3393 	NR_FILE_PMDMAPPED = 27,
3394 	NR_ANON_THPS = 28,
3395 	NR_VMSCAN_WRITE = 29,
3396 	NR_VMSCAN_IMMEDIATE = 30,
3397 	NR_DIRTIED = 31,
3398 	NR_WRITTEN = 32,
3399 	NR_THROTTLED_WRITTEN = 33,
3400 	NR_KERNEL_MISC_RECLAIMABLE = 34,
3401 	NR_FOLL_PIN_ACQUIRED = 35,
3402 	NR_FOLL_PIN_RELEASED = 36,
3403 	NR_KERNEL_STACK_KB = 37,
3404 	NR_PAGETABLE = 38,
3405 	NR_SWAPCACHE = 39,
3406 	NR_VM_NODE_STAT_ITEMS = 40,
3407 };
3408 
3409 enum lru_list {
3410 	LRU_INACTIVE_ANON = 0,
3411 	LRU_ACTIVE_ANON = 1,
3412 	LRU_INACTIVE_FILE = 2,
3413 	LRU_ACTIVE_FILE = 3,
3414 	LRU_UNEVICTABLE = 4,
3415 	NR_LRU_LISTS = 5,
3416 };
3417 
3418 enum vmscan_throttle_state {
3419 	VMSCAN_THROTTLE_WRITEBACK = 0,
3420 	VMSCAN_THROTTLE_ISOLATED = 1,
3421 	VMSCAN_THROTTLE_NOPROGRESS = 2,
3422 	VMSCAN_THROTTLE_CONGESTED = 3,
3423 	NR_VMSCAN_THROTTLE = 4,
3424 };
3425 
3426 struct pglist_data;
3427 
3428 struct lruvec {
3429 	struct list_head lists[5];
3430 	spinlock_t lru_lock;
3431 	long unsigned int anon_cost;
3432 	long unsigned int file_cost;
3433 	atomic_long_t nonresident_age;
3434 	long unsigned int refaults[2];
3435 	long unsigned int flags;
3436 	struct pglist_data *pgdat;
3437 };
3438 
3439 struct per_cpu_pages;
3440 
3441 struct per_cpu_zonestat;
3442 
3443 struct zone {
3444 	long unsigned int _watermark[3];
3445 	long unsigned int watermark_boost;
3446 	long unsigned int nr_reserved_highatomic;
3447 	long int lowmem_reserve[4];
3448 	int node;
3449 	struct pglist_data *zone_pgdat;
3450 	struct per_cpu_pages *per_cpu_pageset;
3451 	struct per_cpu_zonestat *per_cpu_zonestats;
3452 	int pageset_high;
3453 	int pageset_batch;
3454 	long unsigned int zone_start_pfn;
3455 	atomic_long_t managed_pages;
3456 	long unsigned int spanned_pages;
3457 	long unsigned int present_pages;
3458 	long unsigned int cma_pages;
3459 	const char *name;
3460 	long unsigned int nr_isolate_pageblock;
3461 	int initialized;
3462 	long: 32;
3463 	long: 64;
3464 	long: 64;
3465 	struct zone_padding _pad1_;
3466 	struct free_area free_area[11];
3467 	long unsigned int flags;
3468 	spinlock_t lock;
3469 	struct zone_padding _pad2_;
3470 	long unsigned int percpu_drift_mark;
3471 	long unsigned int compact_cached_free_pfn;
3472 	long unsigned int compact_cached_migrate_pfn[2];
3473 	long unsigned int compact_init_migrate_pfn;
3474 	long unsigned int compact_init_free_pfn;
3475 	unsigned int compact_considered;
3476 	unsigned int compact_defer_shift;
3477 	int compact_order_failed;
3478 	bool compact_blockskip_flush;
3479 	bool contiguous;
3480 	short: 16;
3481 	struct zone_padding _pad3_;
3482 	atomic_long_t vm_stat[10];
3483 	atomic_long_t vm_numa_event[6];
3484 };
3485 
3486 struct zoneref {
3487 	struct zone *zone;
3488 	int zone_idx;
3489 };
3490 
3491 struct zonelist {
3492 	struct zoneref _zonerefs[257];
3493 };
3494 
3495 enum zone_type {
3496 	ZONE_DMA = 0,
3497 	ZONE_DMA32 = 1,
3498 	ZONE_NORMAL = 2,
3499 	ZONE_MOVABLE = 3,
3500 	__MAX_NR_ZONES = 4,
3501 };
3502 
3503 struct deferred_split {
3504 	spinlock_t split_queue_lock;
3505 	struct list_head split_queue;
3506 	long unsigned int split_queue_len;
3507 };
3508 
3509 struct per_cpu_nodestat;
3510 
3511 struct pglist_data {
3512 	struct zone node_zones[4];
3513 	struct zonelist node_zonelists[2];
3514 	int nr_zones;
3515 	long unsigned int node_start_pfn;
3516 	long unsigned int node_present_pages;
3517 	long unsigned int node_spanned_pages;
3518 	int node_id;
3519 	wait_queue_head_t kswapd_wait;
3520 	wait_queue_head_t pfmemalloc_wait;
3521 	wait_queue_head_t reclaim_wait[4];
3522 	atomic_t nr_writeback_throttled;
3523 	long unsigned int nr_reclaim_start;
3524 	struct task_struct *kswapd;
3525 	int kswapd_order;
3526 	enum zone_type kswapd_highest_zoneidx;
3527 	int kswapd_failures;
3528 	int kcompactd_max_order;
3529 	enum zone_type kcompactd_highest_zoneidx;
3530 	wait_queue_head_t kcompactd_wait;
3531 	struct task_struct *kcompactd;
3532 	bool proactive_compact_trigger;
3533 	long unsigned int totalreserve_pages;
3534 	long unsigned int min_unmapped_pages;
3535 	long unsigned int min_slab_pages;
3536 	long: 64;
3537 	long: 64;
3538 	long: 64;
3539 	long: 64;
3540 	long: 64;
3541 	long: 64;
3542 	struct zone_padding _pad1_;
3543 	struct deferred_split deferred_split_queue;
3544 	struct lruvec __lruvec;
3545 	long unsigned int flags;
3546 	long: 64;
3547 	long: 64;
3548 	long: 64;
3549 	struct zone_padding _pad2_;
3550 	struct per_cpu_nodestat *per_cpu_nodestats;
3551 	atomic_long_t vm_stat[40];
3552 	long: 64;
3553 	long: 64;
3554 	long: 64;
3555 	long: 64;
3556 	long: 64;
3557 	long: 64;
3558 	long: 64;
3559 };
3560 
3561 typedef unsigned int isolate_mode_t;
3562 
3563 enum zone_watermarks {
3564 	WMARK_MIN = 0,
3565 	WMARK_LOW = 1,
3566 	WMARK_HIGH = 2,
3567 	NR_WMARK = 3,
3568 };
3569 
3570 struct per_cpu_pages {
3571 	int count;
3572 	int high;
3573 	int batch;
3574 	short int free_factor;
3575 	short int expire;
3576 	struct list_head lists[15];
3577 };
3578 
3579 struct per_cpu_zonestat {
3580 	s8 vm_stat_diff[10];
3581 	s8 stat_threshold;
3582 	long unsigned int vm_numa_event[6];
3583 };
3584 
3585 struct per_cpu_nodestat {
3586 	s8 stat_threshold;
3587 	s8 vm_node_stat_diff[40];
3588 };
3589 
3590 enum {
3591 	ZONELIST_FALLBACK = 0,
3592 	ZONELIST_NOFALLBACK = 1,
3593 	MAX_ZONELISTS = 2,
3594 };
3595 
3596 struct mem_section_usage {
3597 	long unsigned int subsection_map[1];
3598 	long unsigned int pageblock_flags[0];
3599 };
3600 
3601 struct mem_section {
3602 	long unsigned int section_mem_map;
3603 	struct mem_section_usage *usage;
3604 };
3605 
3606 struct x86_init_mpparse {
3607 	void (*setup_ioapic_ids)();
3608 	void (*find_smp_config)();
3609 	void (*get_smp_config)(unsigned int);
3610 };
3611 
3612 struct x86_init_resources {
3613 	void (*probe_roms)();
3614 	void (*reserve_resources)();
3615 	char * (*memory_setup)();
3616 };
3617 
3618 struct x86_init_irqs {
3619 	void (*pre_vector_init)();
3620 	void (*intr_init)();
3621 	void (*intr_mode_select)();
3622 	void (*intr_mode_init)();
3623 	struct irq_domain * (*create_pci_msi_domain)();
3624 };
3625 
3626 struct x86_init_oem {
3627 	void (*arch_setup)();
3628 	void (*banner)();
3629 };
3630 
3631 struct x86_init_paging {
3632 	void (*pagetable_init)();
3633 };
3634 
3635 struct x86_init_timers {
3636 	void (*setup_percpu_clockev)();
3637 	void (*timer_init)();
3638 	void (*wallclock_init)();
3639 };
3640 
3641 struct x86_init_iommu {
3642 	int (*iommu_init)();
3643 };
3644 
3645 struct x86_init_pci {
3646 	int (*arch_init)();
3647 	int (*init)();
3648 	void (*init_irq)();
3649 	void (*fixup_irqs)();
3650 };
3651 
3652 struct x86_hyper_init {
3653 	void (*init_platform)();
3654 	void (*guest_late_init)();
3655 	bool (*x2apic_available)();
3656 	bool (*msi_ext_dest_id)();
3657 	void (*init_mem_mapping)();
3658 	void (*init_after_bootmem)();
3659 };
3660 
3661 struct x86_init_acpi {
3662 	void (*set_root_pointer)(u64);
3663 	u64 (*get_root_pointer)();
3664 	void (*reduced_hw_early_init)();
3665 };
3666 
3667 struct x86_init_ops {
3668 	struct x86_init_resources resources;
3669 	struct x86_init_mpparse mpparse;
3670 	struct x86_init_irqs irqs;
3671 	struct x86_init_oem oem;
3672 	struct x86_init_paging paging;
3673 	struct x86_init_timers timers;
3674 	struct x86_init_iommu iommu;
3675 	struct x86_init_pci pci;
3676 	struct x86_hyper_init hyper;
3677 	struct x86_init_acpi acpi;
3678 };
3679 
3680 struct x86_cpuinit_ops {
3681 	void (*setup_percpu_clockev)();
3682 	void (*early_percpu_clock_init)();
3683 	void (*fixup_cpu_id)(struct cpuinfo_x86 *, int);
3684 };
3685 
3686 struct x86_legacy_devices {
3687 	int pnpbios;
3688 };
3689 
3690 enum x86_legacy_i8042_state {
3691 	X86_LEGACY_I8042_PLATFORM_ABSENT = 0,
3692 	X86_LEGACY_I8042_FIRMWARE_ABSENT = 1,
3693 	X86_LEGACY_I8042_EXPECTED_PRESENT = 2,
3694 };
3695 
3696 struct x86_legacy_features {
3697 	enum x86_legacy_i8042_state i8042;
3698 	int rtc;
3699 	int warm_reset;
3700 	int no_vga;
3701 	int reserve_bios_regions;
3702 	struct x86_legacy_devices devices;
3703 };
3704 
3705 struct ghcb;
3706 
3707 struct x86_hyper_runtime {
3708 	void (*pin_vcpu)(int);
3709 	void (*sev_es_hcall_prepare)(struct ghcb *, struct pt_regs *);
3710 	bool (*sev_es_hcall_finish)(struct ghcb *, struct pt_regs *);
3711 };
3712 
3713 struct x86_platform_ops {
3714 	long unsigned int (*calibrate_cpu)();
3715 	long unsigned int (*calibrate_tsc)();
3716 	void (*get_wallclock)(struct timespec64 *);
3717 	int (*set_wallclock)(const struct timespec64 *);
3718 	void (*iommu_shutdown)();
3719 	bool (*is_untracked_pat_range)(u64, u64);
3720 	void (*nmi_init)();
3721 	unsigned char (*get_nmi_reason)();
3722 	void (*save_sched_clock_state)();
3723 	void (*restore_sched_clock_state)();
3724 	void (*apic_post_init)();
3725 	struct x86_legacy_features legacy;
3726 	void (*set_legacy_features)();
3727 	struct x86_hyper_runtime hyper;
3728 };
3729 
3730 struct x86_apic_ops {
3731 	unsigned int (*io_apic_read)(unsigned int, unsigned int);
3732 	void (*restore)();
3733 };
3734 
3735 struct x86_msi_ops;
3736 
3737 struct physid_mask {
3738 	long unsigned int mask[512];
3739 };
3740 
3741 typedef struct physid_mask physid_mask_t;
3742 
3743 typedef void percpu_ref_func_t(struct percpu_ref *);
3744 
3745 struct percpu_ref_data {
3746 	atomic_long_t count;
3747 	percpu_ref_func_t *release;
3748 	percpu_ref_func_t *confirm_switch;
3749 	bool force_atomic: 1;
3750 	bool allow_reinit: 1;
3751 	struct callback_head rcu;
3752 	struct percpu_ref *ref;
3753 };
3754 
3755 struct shrink_control {
3756 	gfp_t gfp_mask;
3757 	int nid;
3758 	long unsigned int nr_to_scan;
3759 	long unsigned int nr_scanned;
3760 	struct mem_cgroup *memcg;
3761 };
3762 
3763 struct shrinker {
3764 	long unsigned int (*count_objects)(struct shrinker *, struct shrink_control *);
3765 	long unsigned int (*scan_objects)(struct shrinker *, struct shrink_control *);
3766 	long int batch;
3767 	int seeks;
3768 	unsigned int flags;
3769 	struct list_head list;
3770 	int id;
3771 	atomic_long_t *nr_deferred;
3772 };
3773 
3774 struct rlimit {
3775 	__kernel_ulong_t rlim_cur;
3776 	__kernel_ulong_t rlim_max;
3777 };
3778 
3779 struct resource {
3780 	resource_size_t start;
3781 	resource_size_t end;
3782 	const char *name;
3783 	long unsigned int flags;
3784 	long unsigned int desc;
3785 	struct resource *parent;
3786 	struct resource *sibling;
3787 	struct resource *child;
3788 };
3789 
3790 struct dev_pagemap_ops {
3791 	void (*page_free)(struct page *);
3792 	vm_fault_t (*migrate_to_ram)(struct vm_fault *);
3793 };
3794 
3795 struct pid_namespace;
3796 
3797 struct upid {
3798 	int nr;
3799 	struct pid_namespace *ns;
3800 };
3801 
3802 struct pid {
3803 	refcount_t count;
3804 	unsigned int level;
3805 	spinlock_t lock;
3806 	struct hlist_head tasks[4];
3807 	struct hlist_head inodes;
3808 	wait_queue_head_t wait_pidfd;
3809 	struct callback_head rcu;
3810 	struct upid numbers[1];
3811 };
3812 
3813 typedef struct {
3814 	gid_t val;
3815 } kgid_t;
3816 
3817 struct hrtimer_cpu_base;
3818 
3819 struct hrtimer_clock_base {
3820 	struct hrtimer_cpu_base *cpu_base;
3821 	unsigned int index;
3822 	clockid_t clockid;
3823 	seqcount_raw_spinlock_t seq;
3824 	struct hrtimer *running;
3825 	struct timerqueue_head active;
3826 	ktime_t (*get_time)();
3827 	ktime_t offset;
3828 	long: 64;
3829 	long: 64;
3830 };
3831 
3832 struct hrtimer_cpu_base {
3833 	raw_spinlock_t lock;
3834 	unsigned int cpu;
3835 	unsigned int active_bases;
3836 	unsigned int clock_was_set_seq;
3837 	unsigned int hres_active: 1;
3838 	unsigned int in_hrtirq: 1;
3839 	unsigned int hang_detected: 1;
3840 	unsigned int softirq_activated: 1;
3841 	unsigned int nr_events;
3842 	short unsigned int nr_retries;
3843 	short unsigned int nr_hangs;
3844 	unsigned int max_hang_time;
3845 	ktime_t expires_next;
3846 	struct hrtimer *next_timer;
3847 	ktime_t softirq_expires_next;
3848 	struct hrtimer *softirq_next_timer;
3849 	struct hrtimer_clock_base clock_base[8];
3850 };
3851 
3852 enum hrtimer_base_type {
3853 	HRTIMER_BASE_MONOTONIC = 0,
3854 	HRTIMER_BASE_REALTIME = 1,
3855 	HRTIMER_BASE_BOOTTIME = 2,
3856 	HRTIMER_BASE_TAI = 3,
3857 	HRTIMER_BASE_MONOTONIC_SOFT = 4,
3858 	HRTIMER_BASE_REALTIME_SOFT = 5,
3859 	HRTIMER_BASE_BOOTTIME_SOFT = 6,
3860 	HRTIMER_BASE_TAI_SOFT = 7,
3861 	HRTIMER_MAX_CLOCK_BASES = 8,
3862 };
3863 
3864 struct tick_device;
3865 
3866 typedef void __signalfn_t(int);
3867 
3868 typedef __signalfn_t *__sighandler_t;
3869 
3870 typedef void __restorefn_t();
3871 
3872 typedef __restorefn_t *__sigrestore_t;
3873 
3874 union sigval {
3875 	int sival_int;
3876 	void *sival_ptr;
3877 };
3878 
3879 typedef union sigval sigval_t;
3880 
3881 union __sifields {
3882 	struct {
3883 		__kernel_pid_t _pid;
3884 		__kernel_uid32_t _uid;
3885 	} _kill;
3886 	struct {
3887 		__kernel_timer_t _tid;
3888 		int _overrun;
3889 		sigval_t _sigval;
3890 		int _sys_private;
3891 	} _timer;
3892 	struct {
3893 		__kernel_pid_t _pid;
3894 		__kernel_uid32_t _uid;
3895 		sigval_t _sigval;
3896 	} _rt;
3897 	struct {
3898 		__kernel_pid_t _pid;
3899 		__kernel_uid32_t _uid;
3900 		int _status;
3901 		__kernel_clock_t _utime;
3902 		__kernel_clock_t _stime;
3903 	} _sigchld;
3904 	struct {
3905 		void *_addr;
3906 		union {
3907 			int _trapno;
3908 			short int _addr_lsb;
3909 			struct {
3910 				char _dummy_bnd[8];
3911 				void *_lower;
3912 				void *_upper;
3913 			} _addr_bnd;
3914 			struct {
3915 				char _dummy_pkey[8];
3916 				__u32 _pkey;
3917 			} _addr_pkey;
3918 			struct {
3919 				long unsigned int _data;
3920 				__u32 _type;
3921 			} _perf;
3922 		};
3923 	} _sigfault;
3924 	struct {
3925 		long int _band;
3926 		int _fd;
3927 	} _sigpoll;
3928 	struct {
3929 		void *_call_addr;
3930 		int _syscall;
3931 		unsigned int _arch;
3932 	} _sigsys;
3933 };
3934 
3935 struct kernel_siginfo {
3936 	struct {
3937 		int si_signo;
3938 		int si_errno;
3939 		int si_code;
3940 		union __sifields _sifields;
3941 	};
3942 };
3943 
3944 struct sigaction {
3945 	__sighandler_t sa_handler;
3946 	long unsigned int sa_flags;
3947 	__sigrestore_t sa_restorer;
3948 	sigset_t sa_mask;
3949 };
3950 
3951 struct k_sigaction {
3952 	struct sigaction sa;
3953 };
3954 
3955 struct cpu_itimer {
3956 	u64 expires;
3957 	u64 incr;
3958 };
3959 
3960 struct task_cputime_atomic {
3961 	atomic64_t utime;
3962 	atomic64_t stime;
3963 	atomic64_t sum_exec_runtime;
3964 };
3965 
3966 struct thread_group_cputimer {
3967 	struct task_cputime_atomic cputime_atomic;
3968 };
3969 
3970 struct pacct_struct {
3971 	int ac_flag;
3972 	long int ac_exitcode;
3973 	long unsigned int ac_mem;
3974 	u64 ac_utime;
3975 	u64 ac_stime;
3976 	long unsigned int ac_minflt;
3977 	long unsigned int ac_majflt;
3978 };
3979 
3980 struct core_state;
3981 
3982 struct tty_struct;
3983 
3984 struct taskstats;
3985 
3986 struct tty_audit_buf;
3987 
3988 struct signal_struct {
3989 	refcount_t sigcnt;
3990 	atomic_t live;
3991 	int nr_threads;
3992 	struct list_head thread_head;
3993 	wait_queue_head_t wait_chldexit;
3994 	struct task_struct *curr_target;
3995 	struct sigpending shared_pending;
3996 	struct hlist_head multiprocess;
3997 	int group_exit_code;
3998 	int notify_count;
3999 	struct task_struct *group_exec_task;
4000 	int group_stop_count;
4001 	unsigned int flags;
4002 	struct core_state *core_state;
4003 	unsigned int is_child_subreaper: 1;
4004 	unsigned int has_child_subreaper: 1;
4005 	int posix_timer_id;
4006 	struct list_head posix_timers;
4007 	struct hrtimer real_timer;
4008 	ktime_t it_real_incr;
4009 	struct cpu_itimer it[2];
4010 	struct thread_group_cputimer cputimer;
4011 	struct posix_cputimers posix_cputimers;
4012 	struct pid *pids[4];
4013 	struct pid *tty_old_pgrp;
4014 	int leader;
4015 	struct tty_struct *tty;
4016 	seqlock_t stats_lock;
4017 	u64 utime;
4018 	u64 stime;
4019 	u64 cutime;
4020 	u64 cstime;
4021 	u64 gtime;
4022 	u64 cgtime;
4023 	struct prev_cputime prev_cputime;
4024 	long unsigned int nvcsw;
4025 	long unsigned int nivcsw;
4026 	long unsigned int cnvcsw;
4027 	long unsigned int cnivcsw;
4028 	long unsigned int min_flt;
4029 	long unsigned int maj_flt;
4030 	long unsigned int cmin_flt;
4031 	long unsigned int cmaj_flt;
4032 	long unsigned int inblock;
4033 	long unsigned int oublock;
4034 	long unsigned int cinblock;
4035 	long unsigned int coublock;
4036 	long unsigned int maxrss;
4037 	long unsigned int cmaxrss;
4038 	struct task_io_accounting ioac;
4039 	long long unsigned int sum_sched_runtime;
4040 	struct rlimit rlim[16];
4041 	struct pacct_struct pacct;
4042 	struct taskstats *stats;
4043 	unsigned int audit_tty;
4044 	struct tty_audit_buf *tty_audit_buf;
4045 	bool oom_flag_origin;
4046 	short int oom_score_adj;
4047 	short int oom_score_adj_min;
4048 	struct mm_struct *oom_mm;
4049 	struct mutex cred_guard_mutex;
4050 	struct rw_semaphore exec_update_lock;
4051 };
4052 
4053 enum rseq_cs_flags_bit {
4054 	RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT_BIT = 0,
4055 	RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL_BIT = 1,
4056 	RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE_BIT = 2,
4057 };
4058 
4059 struct rseq {
4060 	__u32 cpu_id_start;
4061 	__u32 cpu_id;
4062 	union {
4063 		__u64 ptr64;
4064 		__u64 ptr;
4065 	} rseq_cs;
4066 	__u32 flags;
4067 	long: 32;
4068 	long: 64;
4069 };
4070 
4071 enum {
4072 	TASK_COMM_LEN = 16,
4073 };
4074 
4075 struct root_domain;
4076 
4077 enum perf_event_task_context {
4078 	perf_invalid_context = 4294967295,
4079 	perf_hw_context = 0,
4080 	perf_sw_context = 1,
4081 	perf_nr_task_contexts = 2,
4082 };
4083 
4084 struct rq;
4085 
4086 struct rq_flags;
4087 
4088 struct sched_class {
4089 	void (*enqueue_task)(struct rq *, struct task_struct *, int);
4090 	void (*dequeue_task)(struct rq *, struct task_struct *, int);
4091 	void (*yield_task)(struct rq *);
4092 	bool (*yield_to_task)(struct rq *, struct task_struct *);
4093 	void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
4094 	struct task_struct * (*pick_next_task)(struct rq *);
4095 	void (*put_prev_task)(struct rq *, struct task_struct *);
4096 	void (*set_next_task)(struct rq *, struct task_struct *, bool);
4097 	int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
4098 	int (*select_task_rq)(struct task_struct *, int, int);
4099 	struct task_struct * (*pick_task)(struct rq *);
4100 	void (*migrate_task_rq)(struct task_struct *, int);
4101 	void (*task_woken)(struct rq *, struct task_struct *);
4102 	void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *, u32);
4103 	void (*rq_online)(struct rq *);
4104 	void (*rq_offline)(struct rq *);
4105 	struct rq * (*find_lock_rq)(struct task_struct *, struct rq *);
4106 	void (*task_tick)(struct rq *, struct task_struct *, int);
4107 	void (*task_fork)(struct task_struct *);
4108 	void (*task_dead)(struct task_struct *);
4109 	void (*switched_from)(struct rq *, struct task_struct *);
4110 	void (*switched_to)(struct rq *, struct task_struct *);
4111 	void (*prio_changed)(struct rq *, struct task_struct *, int);
4112 	unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
4113 	void (*update_curr)(struct rq *);
4114 	void (*task_change_group)(struct task_struct *, int);
4115 };
4116 
4117 struct kernel_cap_struct {
4118 	__u32 cap[2];
4119 };
4120 
4121 typedef struct kernel_cap_struct kernel_cap_t;
4122 
4123 struct user_struct;
4124 
4125 struct ucounts;
4126 
4127 struct group_info;
4128 
4129 struct cred {
4130 	atomic_t usage;
4131 	atomic_t subscribers;
4132 	void *put_addr;
4133 	unsigned int magic;
4134 	kuid_t uid;
4135 	kgid_t gid;
4136 	kuid_t suid;
4137 	kgid_t sgid;
4138 	kuid_t euid;
4139 	kgid_t egid;
4140 	kuid_t fsuid;
4141 	kgid_t fsgid;
4142 	unsigned int securebits;
4143 	kernel_cap_t cap_inheritable;
4144 	kernel_cap_t cap_permitted;
4145 	kernel_cap_t cap_effective;
4146 	kernel_cap_t cap_bset;
4147 	kernel_cap_t cap_ambient;
4148 	unsigned char jit_keyring;
4149 	struct key *session_keyring;
4150 	struct key *process_keyring;
4151 	struct key *thread_keyring;
4152 	struct key *request_key_auth;
4153 	void *security;
4154 	struct user_struct *user;
4155 	struct user_namespace *user_ns;
4156 	struct ucounts *ucounts;
4157 	struct group_info *group_info;
4158 	union {
4159 		int non_rcu;
4160 		struct callback_head rcu;
4161 	};
4162 };
4163 
4164 typedef int32_t key_serial_t;
4165 
4166 typedef uint32_t key_perm_t;
4167 
4168 struct key_type;
4169 
4170 struct key_tag;
4171 
4172 struct keyring_index_key {
4173 	long unsigned int hash;
4174 	union {
4175 		struct {
4176 			u16 desc_len;
4177 			char desc[6];
4178 		};
4179 		long unsigned int x;
4180 	};
4181 	struct key_type *type;
4182 	struct key_tag *domain_tag;
4183 	const char *description;
4184 };
4185 
4186 union key_payload {
4187 	void *rcu_data0;
4188 	void *data[4];
4189 };
4190 
4191 struct assoc_array_ptr;
4192 
4193 struct assoc_array {
4194 	struct assoc_array_ptr *root;
4195 	long unsigned int nr_leaves_on_tree;
4196 };
4197 
4198 struct key_user;
4199 
4200 struct key_restriction;
4201 
4202 struct key {
4203 	refcount_t usage;
4204 	key_serial_t serial;
4205 	union {
4206 		struct list_head graveyard_link;
4207 		struct rb_node serial_node;
4208 	};
4209 	struct rw_semaphore sem;
4210 	struct key_user *user;
4211 	void *security;
4212 	union {
4213 		time64_t expiry;
4214 		time64_t revoked_at;
4215 	};
4216 	time64_t last_used_at;
4217 	kuid_t uid;
4218 	kgid_t gid;
4219 	key_perm_t perm;
4220 	short unsigned int quotalen;
4221 	short unsigned int datalen;
4222 	short int state;
4223 	long unsigned int flags;
4224 	union {
4225 		struct keyring_index_key index_key;
4226 		struct {
4227 			long unsigned int hash;
4228 			long unsigned int len_desc;
4229 			struct key_type *type;
4230 			struct key_tag *domain_tag;
4231 			char *description;
4232 		};
4233 	};
4234 	union {
4235 		union key_payload payload;
4236 		struct {
4237 			struct list_head name_link;
4238 			struct assoc_array keys;
4239 		};
4240 	};
4241 	struct key_restriction *restrict_link;
4242 };
4243 
4244 struct sighand_struct {
4245 	spinlock_t siglock;
4246 	refcount_t count;
4247 	wait_queue_head_t signalfd_wqh;
4248 	struct k_sigaction action[64];
4249 };
4250 
4251 struct io_context {
4252 	atomic_long_t refcount;
4253 	atomic_t active_ref;
4254 	short unsigned int ioprio;
4255 };
4256 
4257 union thread_union {
4258 	struct task_struct task;
4259 	long unsigned int stack[2048];
4260 };
4261 
4262 enum rseq_event_mask_bits {
4263 	RSEQ_EVENT_PREEMPT_BIT = 0,
4264 	RSEQ_EVENT_SIGNAL_BIT = 1,
4265 	RSEQ_EVENT_MIGRATE_BIT = 2,
4266 };
4267 
4268 enum fixed_addresses {
4269 	VSYSCALL_PAGE = 511,
4270 	FIX_DBGP_BASE = 512,
4271 	FIX_EARLYCON_MEM_BASE = 513,
4272 	FIX_APIC_BASE = 514,
4273 	FIX_IO_APIC_BASE_0 = 515,
4274 	FIX_IO_APIC_BASE_END = 642,
4275 	__end_of_permanent_fixed_addresses = 643,
4276 	FIX_BTMAP_END = 1024,
4277 	FIX_BTMAP_BEGIN = 1535,
4278 	__end_of_fixed_addresses = 1536,
4279 };
4280 
4281 struct hlist_bl_node;
4282 
4283 struct hlist_bl_head {
4284 	struct hlist_bl_node *first;
4285 };
4286 
4287 struct hlist_bl_node {
4288 	struct hlist_bl_node *next;
4289 	struct hlist_bl_node **pprev;
4290 };
4291 
4292 struct lockref {
4293 	union {
4294 		struct {
4295 			spinlock_t lock;
4296 			int count;
4297 		};
4298 	};
4299 };
4300 
4301 struct qstr {
4302 	union {
4303 		struct {
4304 			u32 hash;
4305 			u32 len;
4306 		};
4307 		u64 hash_len;
4308 	};
4309 	const unsigned char *name;
4310 };
4311 
4312 struct dentry_stat_t {
4313 	long int nr_dentry;
4314 	long int nr_unused;
4315 	long int age_limit;
4316 	long int want_pages;
4317 	long int nr_negative;
4318 	long int dummy;
4319 };
4320 
4321 struct dentry_operations;
4322 
4323 struct dentry {
4324 	unsigned int d_flags;
4325 	seqcount_spinlock_t d_seq;
4326 	struct hlist_bl_node d_hash;
4327 	struct dentry *d_parent;
4328 	struct qstr d_name;
4329 	struct inode *d_inode;
4330 	unsigned char d_iname[32];
4331 	struct lockref d_lockref;
4332 	const struct dentry_operations *d_op;
4333 	struct super_block *d_sb;
4334 	long unsigned int d_time;
4335 	void *d_fsdata;
4336 	union {
4337 		struct list_head d_lru;
4338 		wait_queue_head_t *d_wait;
4339 	};
4340 	struct list_head d_child;
4341 	struct list_head d_subdirs;
4342 	union {
4343 		struct hlist_node d_alias;
4344 		struct hlist_bl_node d_in_lookup_hash;
4345 		struct callback_head d_rcu;
4346 	} d_u;
4347 };
4348 
4349 struct posix_acl;
4350 
4351 struct inode_operations;
4352 
4353 struct bdi_writeback;
4354 
4355 struct file_lock_context;
4356 
4357 struct cdev;
4358 
4359 struct fsnotify_mark_connector;
4360 
4361 struct inode {
4362 	umode_t i_mode;
4363 	short unsigned int i_opflags;
4364 	kuid_t i_uid;
4365 	kgid_t i_gid;
4366 	unsigned int i_flags;
4367 	struct posix_acl *i_acl;
4368 	struct posix_acl *i_default_acl;
4369 	const struct inode_operations *i_op;
4370 	struct super_block *i_sb;
4371 	struct address_space *i_mapping;
4372 	void *i_security;
4373 	long unsigned int i_ino;
4374 	union {
4375 		const unsigned int i_nlink;
4376 		unsigned int __i_nlink;
4377 	};
4378 	dev_t i_rdev;
4379 	loff_t i_size;
4380 	struct timespec64 i_atime;
4381 	struct timespec64 i_mtime;
4382 	struct timespec64 i_ctime;
4383 	spinlock_t i_lock;
4384 	short unsigned int i_bytes;
4385 	u8 i_blkbits;
4386 	u8 i_write_hint;
4387 	blkcnt_t i_blocks;
4388 	long unsigned int i_state;
4389 	struct rw_semaphore i_rwsem;
4390 	long unsigned int dirtied_when;
4391 	long unsigned int dirtied_time_when;
4392 	struct hlist_node i_hash;
4393 	struct list_head i_io_list;
4394 	struct bdi_writeback *i_wb;
4395 	int i_wb_frn_winner;
4396 	u16 i_wb_frn_avg_time;
4397 	u16 i_wb_frn_history;
4398 	struct list_head i_lru;
4399 	struct list_head i_sb_list;
4400 	struct list_head i_wb_list;
4401 	union {
4402 		struct hlist_head i_dentry;
4403 		struct callback_head i_rcu;
4404 	};
4405 	atomic64_t i_version;
4406 	atomic64_t i_sequence;
4407 	atomic_t i_count;
4408 	atomic_t i_dio_count;
4409 	atomic_t i_writecount;
4410 	atomic_t i_readcount;
4411 	union {
4412 		const struct file_operations *i_fop;
4413 		void (*free_inode)(struct inode *);
4414 	};
4415 	struct file_lock_context *i_flctx;
4416 	struct address_space i_data;
4417 	struct list_head i_devices;
4418 	union {
4419 		struct pipe_inode_info *i_pipe;
4420 		struct cdev *i_cdev;
4421 		char *i_link;
4422 		unsigned int i_dir_seq;
4423 	};
4424 	__u32 i_generation;
4425 	__u32 i_fsnotify_mask;
4426 	struct fsnotify_mark_connector *i_fsnotify_marks;
4427 	void *i_private;
4428 };
4429 
4430 struct dentry_operations {
4431 	int (*d_revalidate)(struct dentry *, unsigned int);
4432 	int (*d_weak_revalidate)(struct dentry *, unsigned int);
4433 	int (*d_hash)(const struct dentry *, struct qstr *);
4434 	int (*d_compare)(const struct dentry *, unsigned int, const char *, const struct qstr *);
4435 	int (*d_delete)(const struct dentry *);
4436 	int (*d_init)(struct dentry *);
4437 	void (*d_release)(struct dentry *);
4438 	void (*d_prune)(struct dentry *);
4439 	void (*d_iput)(struct dentry *, struct inode *);
4440 	char * (*d_dname)(struct dentry *, char *, int);
4441 	struct vfsmount * (*d_automount)(struct path *);
4442 	int (*d_manage)(const struct path *, bool);
4443 	struct dentry * (*d_real)(struct dentry *, const struct inode *);
4444 	long: 64;
4445 	long: 64;
4446 	long: 64;
4447 };
4448 
4449 struct mtd_info;
4450 
4451 typedef long long int qsize_t;
4452 
4453 struct quota_format_type;
4454 
4455 struct mem_dqinfo {
4456 	struct quota_format_type *dqi_format;
4457 	int dqi_fmt_id;
4458 	struct list_head dqi_dirty_list;
4459 	long unsigned int dqi_flags;
4460 	unsigned int dqi_bgrace;
4461 	unsigned int dqi_igrace;
4462 	qsize_t dqi_max_spc_limit;
4463 	qsize_t dqi_max_ino_limit;
4464 	void *dqi_priv;
4465 };
4466 
4467 struct quota_format_ops;
4468 
4469 struct quota_info {
4470 	unsigned int flags;
4471 	struct rw_semaphore dqio_sem;
4472 	struct inode *files[3];
4473 	struct mem_dqinfo info[3];
4474 	const struct quota_format_ops *ops[3];
4475 };
4476 
4477 struct rcu_sync {
4478 	int gp_state;
4479 	int gp_count;
4480 	wait_queue_head_t gp_wait;
4481 	struct callback_head cb_head;
4482 };
4483 
4484 struct rcuwait {
4485 	struct task_struct *task;
4486 };
4487 
4488 struct percpu_rw_semaphore {
4489 	struct rcu_sync rss;
4490 	unsigned int *read_count;
4491 	struct rcuwait writer;
4492 	wait_queue_head_t waiters;
4493 	atomic_t block;
4494 	struct lockdep_map dep_map;
4495 };
4496 
4497 struct sb_writers {
4498 	int frozen;
4499 	wait_queue_head_t wait_unfrozen;
4500 	struct percpu_rw_semaphore rw_sem[3];
4501 };
4502 
4503 typedef struct {
4504 	__u8 b[16];
4505 } uuid_t;
4506 
4507 struct list_lru_node;
4508 
4509 struct list_lru {
4510 	struct list_lru_node *node;
4511 	struct list_head list;
4512 	int shrinker_id;
4513 	bool memcg_aware;
4514 };
4515 
4516 struct super_operations;
4517 
4518 struct dquot_operations;
4519 
4520 struct quotactl_ops;
4521 
4522 struct export_operations;
4523 
4524 struct xattr_handler;
4525 
4526 struct block_device;
4527 
4528 struct super_block {
4529 	struct list_head s_list;
4530 	dev_t s_dev;
4531 	unsigned char s_blocksize_bits;
4532 	long unsigned int s_blocksize;
4533 	loff_t s_maxbytes;
4534 	struct file_system_type *s_type;
4535 	const struct super_operations *s_op;
4536 	const struct dquot_operations *dq_op;
4537 	const struct quotactl_ops *s_qcop;
4538 	const struct export_operations *s_export_op;
4539 	long unsigned int s_flags;
4540 	long unsigned int s_iflags;
4541 	long unsigned int s_magic;
4542 	struct dentry *s_root;
4543 	struct rw_semaphore s_umount;
4544 	int s_count;
4545 	atomic_t s_active;
4546 	void *s_security;
4547 	const struct xattr_handler **s_xattr;
4548 	struct hlist_bl_head s_roots;
4549 	struct list_head s_mounts;
4550 	struct block_device *s_bdev;
4551 	struct backing_dev_info *s_bdi;
4552 	struct mtd_info *s_mtd;
4553 	struct hlist_node s_instances;
4554 	unsigned int s_quota_types;
4555 	struct quota_info s_dquot;
4556 	struct sb_writers s_writers;
4557 	void *s_fs_info;
4558 	u32 s_time_gran;
4559 	time64_t s_time_min;
4560 	time64_t s_time_max;
4561 	__u32 s_fsnotify_mask;
4562 	struct fsnotify_mark_connector *s_fsnotify_marks;
4563 	char s_id[32];
4564 	uuid_t s_uuid;
4565 	unsigned int s_max_links;
4566 	fmode_t s_mode;
4567 	struct mutex s_vfs_rename_mutex;
4568 	const char *s_subtype;
4569 	const struct dentry_operations *s_d_op;
4570 	int cleancache_poolid;
4571 	struct shrinker s_shrink;
4572 	atomic_long_t s_remove_count;
4573 	atomic_long_t s_fsnotify_connectors;
4574 	int s_readonly_remount;
4575 	errseq_t s_wb_err;
4576 	struct workqueue_struct *s_dio_done_wq;
4577 	struct hlist_head s_pins;
4578 	struct user_namespace *s_user_ns;
4579 	struct list_lru s_dentry_lru;
4580 	struct list_lru s_inode_lru;
4581 	struct callback_head rcu;
4582 	struct work_struct destroy_work;
4583 	struct mutex s_sync_lock;
4584 	int s_stack_depth;
4585 	spinlock_t s_inode_list_lock;
4586 	struct list_head s_inodes;
4587 	spinlock_t s_inode_wblist_lock;
4588 	struct list_head s_inodes_wb;
4589 	long: 64;
4590 	long: 64;
4591 	long: 64;
4592 	long: 64;
4593 };
4594 
4595 struct vfsmount {
4596 	struct dentry *mnt_root;
4597 	struct super_block *mnt_sb;
4598 	int mnt_flags;
4599 	struct user_namespace *mnt_userns;
4600 };
4601 
4602 struct kstat {
4603 	u32 result_mask;
4604 	umode_t mode;
4605 	unsigned int nlink;
4606 	uint32_t blksize;
4607 	u64 attributes;
4608 	u64 attributes_mask;
4609 	u64 ino;
4610 	dev_t dev;
4611 	dev_t rdev;
4612 	kuid_t uid;
4613 	kgid_t gid;
4614 	loff_t size;
4615 	struct timespec64 atime;
4616 	struct timespec64 mtime;
4617 	struct timespec64 ctime;
4618 	struct timespec64 btime;
4619 	u64 blocks;
4620 	u64 mnt_id;
4621 };
4622 
4623 struct list_lru_one {
4624 	struct list_head list;
4625 	long int nr_items;
4626 };
4627 
4628 struct list_lru_memcg {
4629 	struct callback_head rcu;
4630 	struct list_lru_one *lru[0];
4631 };
4632 
4633 struct list_lru_node {
4634 	spinlock_t lock;
4635 	struct list_lru_one lru;
4636 	struct list_lru_memcg *memcg_lrus;
4637 	long int nr_items;
4638 	long: 64;
4639 	long: 64;
4640 	long: 64;
4641 };
4642 
4643 struct xa_node {
4644 	unsigned char shift;
4645 	unsigned char offset;
4646 	unsigned char count;
4647 	unsigned char nr_values;
4648 	struct xa_node *parent;
4649 	struct xarray *array;
4650 	union {
4651 		struct list_head private_list;
4652 		struct callback_head callback_head;
4653 	};
4654 	void *slots[64];
4655 	union {
4656 		long unsigned int tags[3];
4657 		long unsigned int marks[3];
4658 	};
4659 };
4660 
4661 struct radix_tree_preload {
4662 	local_lock_t lock;
4663 	unsigned int nr;
4664 	struct xa_node *nodes;
4665 };
4666 
4667 enum migrate_mode {
4668 	MIGRATE_ASYNC = 0,
4669 	MIGRATE_SYNC_LIGHT = 1,
4670 	MIGRATE_SYNC = 2,
4671 	MIGRATE_SYNC_NO_COPY = 3,
4672 };
4673 
4674 struct exception_table_entry {
4675 	int insn;
4676 	int fixup;
4677 	int data;
4678 };
4679 
4680 struct movsl_mask {
4681 	int mask;
4682 	long: 32;
4683 	long: 64;
4684 	long: 64;
4685 	long: 64;
4686 	long: 64;
4687 	long: 64;
4688 	long: 64;
4689 	long: 64;
4690 };
4691 
4692 struct ctl_table;
4693 
4694 typedef int proc_handler(struct ctl_table *, int, void *, size_t *, loff_t *);
4695 
4696 struct ctl_table_poll;
4697 
4698 struct ctl_table {
4699 	const char *procname;
4700 	void *data;
4701 	int maxlen;
4702 	umode_t mode;
4703 	struct ctl_table *child;
4704 	proc_handler *proc_handler;
4705 	struct ctl_table_poll *poll;
4706 	void *extra1;
4707 	void *extra2;
4708 };
4709 
4710 struct ctl_table_poll {
4711 	atomic_t event;
4712 	wait_queue_head_t wait;
4713 };
4714 
4715 struct key_tag {
4716 	struct callback_head rcu;
4717 	refcount_t usage;
4718 	bool removed;
4719 };
4720 
4721 typedef int (*request_key_actor_t)(struct key *, void *);
4722 
4723 struct key_preparsed_payload;
4724 
4725 struct key_match_data;
4726 
4727 struct kernel_pkey_params;
4728 
4729 struct kernel_pkey_query;
4730 
4731 struct key_type {
4732 	const char *name;
4733 	size_t def_datalen;
4734 	unsigned int flags;
4735 	int (*vet_description)(const char *);
4736 	int (*preparse)(struct key_preparsed_payload *);
4737 	void (*free_preparse)(struct key_preparsed_payload *);
4738 	int (*instantiate)(struct key *, struct key_preparsed_payload *);
4739 	int (*update)(struct key *, struct key_preparsed_payload *);
4740 	int (*match_preparse)(struct key_match_data *);
4741 	void (*match_free)(struct key_match_data *);
4742 	void (*revoke)(struct key *);
4743 	void (*destroy)(struct key *);
4744 	void (*describe)(const struct key *, struct seq_file *);
4745 	long int (*read)(const struct key *, char *, size_t);
4746 	request_key_actor_t request_key;
4747 	struct key_restriction * (*lookup_restriction)(const char *);
4748 	int (*asym_query)(const struct kernel_pkey_params *, struct kernel_pkey_query *);
4749 	int (*asym_eds_op)(struct kernel_pkey_params *, const void *, void *);
4750 	int (*asym_verify_signature)(struct kernel_pkey_params *, const void *, const void *);
4751 	struct list_head link;
4752 	struct lock_class_key lock_class;
4753 };
4754 
4755 typedef int (*key_restrict_link_func_t)(struct key *, const struct key_type *, const union key_payload *, struct key *);
4756 
4757 struct key_restriction {
4758 	key_restrict_link_func_t check;
4759 	struct key *key;
4760 	struct key_type *keytype;
4761 };
4762 
4763 struct percpu_counter {
4764 	raw_spinlock_t lock;
4765 	s64 count;
4766 	struct list_head list;
4767 	s32 *counters;
4768 };
4769 
4770 struct user_struct {
4771 	refcount_t __count;
4772 	struct percpu_counter epoll_watches;
4773 	long unsigned int unix_inflight;
4774 	atomic_long_t pipe_bufs;
4775 	struct hlist_node uidhash_node;
4776 	kuid_t uid;
4777 	atomic_long_t locked_vm;
4778 	struct ratelimit_state ratelimit;
4779 };
4780 
4781 struct group_info {
4782 	atomic_t usage;
4783 	int ngroups;
4784 	kgid_t gid[0];
4785 };
4786 
4787 struct core_thread {
4788 	struct task_struct *task;
4789 	struct core_thread *next;
4790 };
4791 
4792 struct core_state {
4793 	atomic_t nr_threads;
4794 	struct core_thread dumper;
4795 	struct completion startup;
4796 };
4797 
4798 struct delayed_call {
4799 	void (*fn)(void *);
4800 	void *arg;
4801 };
4802 
4803 typedef struct {
4804 	__u8 b[16];
4805 } guid_t;
4806 
4807 struct files_stat_struct {
4808 	long unsigned int nr_files;
4809 	long unsigned int nr_free_files;
4810 	long unsigned int max_files;
4811 };
4812 
4813 struct inodes_stat_t {
4814 	long int nr_inodes;
4815 	long int nr_unused;
4816 	long int dummy[5];
4817 };
4818 
4819 struct wait_page_queue;
4820 
4821 struct kiocb {
4822 	struct file *ki_filp;
4823 	loff_t ki_pos;
4824 	void (*ki_complete)(struct kiocb *, long int);
4825 	void *private;
4826 	int ki_flags;
4827 	u16 ki_hint;
4828 	u16 ki_ioprio;
4829 	struct wait_page_queue *ki_waitq;
4830 };
4831 
4832 struct iattr {
4833 	unsigned int ia_valid;
4834 	umode_t ia_mode;
4835 	kuid_t ia_uid;
4836 	kgid_t ia_gid;
4837 	loff_t ia_size;
4838 	struct timespec64 ia_atime;
4839 	struct timespec64 ia_mtime;
4840 	struct timespec64 ia_ctime;
4841 	struct file *ia_file;
4842 };
4843 
4844 typedef __kernel_uid32_t projid_t;
4845 
4846 typedef struct {
4847 	projid_t val;
4848 } kprojid_t;
4849 
4850 enum quota_type {
4851 	USRQUOTA = 0,
4852 	GRPQUOTA = 1,
4853 	PRJQUOTA = 2,
4854 };
4855 
4856 struct kqid {
4857 	union {
4858 		kuid_t uid;
4859 		kgid_t gid;
4860 		kprojid_t projid;
4861 	};
4862 	enum quota_type type;
4863 };
4864 
4865 struct mem_dqblk {
4866 	qsize_t dqb_bhardlimit;
4867 	qsize_t dqb_bsoftlimit;
4868 	qsize_t dqb_curspace;
4869 	qsize_t dqb_rsvspace;
4870 	qsize_t dqb_ihardlimit;
4871 	qsize_t dqb_isoftlimit;
4872 	qsize_t dqb_curinodes;
4873 	time64_t dqb_btime;
4874 	time64_t dqb_itime;
4875 };
4876 
4877 struct dquot {
4878 	struct hlist_node dq_hash;
4879 	struct list_head dq_inuse;
4880 	struct list_head dq_free;
4881 	struct list_head dq_dirty;
4882 	struct mutex dq_lock;
4883 	spinlock_t dq_dqb_lock;
4884 	atomic_t dq_count;
4885 	struct super_block *dq_sb;
4886 	struct kqid dq_id;
4887 	loff_t dq_off;
4888 	long unsigned int dq_flags;
4889 	struct mem_dqblk dq_dqb;
4890 };
4891 
4892 enum {
4893 	DQF_ROOT_SQUASH_B = 0,
4894 	DQF_SYS_FILE_B = 16,
4895 	DQF_PRIVATE = 17,
4896 };
4897 
4898 struct quota_format_type {
4899 	int qf_fmt_id;
4900 	const struct quota_format_ops *qf_ops;
4901 	struct module *qf_owner;
4902 	struct quota_format_type *qf_next;
4903 };
4904 
4905 enum {
4906 	DQST_LOOKUPS = 0,
4907 	DQST_DROPS = 1,
4908 	DQST_READS = 2,
4909 	DQST_WRITES = 3,
4910 	DQST_CACHE_HITS = 4,
4911 	DQST_ALLOC_DQUOTS = 5,
4912 	DQST_FREE_DQUOTS = 6,
4913 	DQST_SYNCS = 7,
4914 	_DQST_DQSTAT_LAST = 8,
4915 };
4916 
4917 struct dqstats {
4918 	long unsigned int stat[8];
4919 	struct percpu_counter counter[8];
4920 };
4921 
4922 struct quota_format_ops {
4923 	int (*check_quota_file)(struct super_block *, int);
4924 	int (*read_file_info)(struct super_block *, int);
4925 	int (*write_file_info)(struct super_block *, int);
4926 	int (*free_file_info)(struct super_block *, int);
4927 	int (*read_dqblk)(struct dquot *);
4928 	int (*commit_dqblk)(struct dquot *);
4929 	int (*release_dqblk)(struct dquot *);
4930 	int (*get_next_id)(struct super_block *, struct kqid *);
4931 };
4932 
4933 struct dquot_operations {
4934 	int (*write_dquot)(struct dquot *);
4935 	struct dquot * (*alloc_dquot)(struct super_block *, int);
4936 	void (*destroy_dquot)(struct dquot *);
4937 	int (*acquire_dquot)(struct dquot *);
4938 	int (*release_dquot)(struct dquot *);
4939 	int (*mark_dirty)(struct dquot *);
4940 	int (*write_info)(struct super_block *, int);
4941 	qsize_t * (*get_reserved_space)(struct inode *);
4942 	int (*get_projid)(struct inode *, kprojid_t *);
4943 	int (*get_inode_usage)(struct inode *, qsize_t *);
4944 	int (*get_next_id)(struct super_block *, struct kqid *);
4945 };
4946 
4947 struct qc_dqblk {
4948 	int d_fieldmask;
4949 	u64 d_spc_hardlimit;
4950 	u64 d_spc_softlimit;
4951 	u64 d_ino_hardlimit;
4952 	u64 d_ino_softlimit;
4953 	u64 d_space;
4954 	u64 d_ino_count;
4955 	s64 d_ino_timer;
4956 	s64 d_spc_timer;
4957 	int d_ino_warns;
4958 	int d_spc_warns;
4959 	u64 d_rt_spc_hardlimit;
4960 	u64 d_rt_spc_softlimit;
4961 	u64 d_rt_space;
4962 	s64 d_rt_spc_timer;
4963 	int d_rt_spc_warns;
4964 };
4965 
4966 struct qc_type_state {
4967 	unsigned int flags;
4968 	unsigned int spc_timelimit;
4969 	unsigned int ino_timelimit;
4970 	unsigned int rt_spc_timelimit;
4971 	unsigned int spc_warnlimit;
4972 	unsigned int ino_warnlimit;
4973 	unsigned int rt_spc_warnlimit;
4974 	long long unsigned int ino;
4975 	blkcnt_t blocks;
4976 	blkcnt_t nextents;
4977 };
4978 
4979 struct qc_state {
4980 	unsigned int s_incoredqs;
4981 	struct qc_type_state s_state[3];
4982 };
4983 
4984 struct qc_info {
4985 	int i_fieldmask;
4986 	unsigned int i_flags;
4987 	unsigned int i_spc_timelimit;
4988 	unsigned int i_ino_timelimit;
4989 	unsigned int i_rt_spc_timelimit;
4990 	unsigned int i_spc_warnlimit;
4991 	unsigned int i_ino_warnlimit;
4992 	unsigned int i_rt_spc_warnlimit;
4993 };
4994 
4995 struct quotactl_ops {
4996 	int (*quota_on)(struct super_block *, int, int, const struct path *);
4997 	int (*quota_off)(struct super_block *, int);
4998 	int (*quota_enable)(struct super_block *, unsigned int);
4999 	int (*quota_disable)(struct super_block *, unsigned int);
5000 	int (*quota_sync)(struct super_block *, int);
5001 	int (*set_info)(struct super_block *, int, struct qc_info *);
5002 	int (*get_dqblk)(struct super_block *, struct kqid, struct qc_dqblk *);
5003 	int (*get_nextdqblk)(struct super_block *, struct kqid *, struct qc_dqblk *);
5004 	int (*set_dqblk)(struct super_block *, struct kqid, struct qc_dqblk *);
5005 	int (*get_state)(struct super_block *, struct qc_state *);
5006 	int (*rm_xquota)(struct super_block *, unsigned int);
5007 };
5008 
5009 enum module_state {
5010 	MODULE_STATE_LIVE = 0,
5011 	MODULE_STATE_COMING = 1,
5012 	MODULE_STATE_GOING = 2,
5013 	MODULE_STATE_UNFORMED = 3,
5014 };
5015 
5016 struct module_param_attrs;
5017 
5018 struct module_kobject {
5019 	struct kobject kobj;
5020 	struct module *mod;
5021 	struct kobject *drivers_dir;
5022 	struct module_param_attrs *mp;
5023 	struct completion *kobj_completion;
5024 };
5025 
5026 struct latch_tree_node {
5027 	struct rb_node node[2];
5028 };
5029 
5030 struct mod_tree_node {
5031 	struct module *mod;
5032 	struct latch_tree_node node;
5033 };
5034 
5035 struct module_layout {
5036 	void *base;
5037 	unsigned int size;
5038 	unsigned int text_size;
5039 	unsigned int ro_size;
5040 	unsigned int ro_after_init_size;
5041 	struct mod_tree_node mtn;
5042 };
5043 
5044 struct mod_arch_specific {
5045 	unsigned int num_orcs;
5046 	int *orc_unwind_ip;
5047 	struct orc_entry *orc_unwind;
5048 };
5049 
5050 struct elf64_sym;
5051 
5052 typedef struct elf64_sym Elf64_Sym;
5053 
5054 struct mod_kallsyms {
5055 	Elf64_Sym *symtab;
5056 	unsigned int num_symtab;
5057 	char *strtab;
5058 	char *typetab;
5059 };
5060 
5061 struct module_attribute;
5062 
5063 struct kernel_param;
5064 
5065 struct module_sect_attrs;
5066 
5067 struct module_notes_attrs;
5068 
5069 struct trace_event_call;
5070 
5071 struct trace_eval_map;
5072 
5073 struct error_injection_entry;
5074 
5075 struct module {
5076 	enum module_state state;
5077 	struct list_head list;
5078 	char name[56];
5079 	struct module_kobject mkobj;
5080 	struct module_attribute *modinfo_attrs;
5081 	const char *version;
5082 	const char *srcversion;
5083 	struct kobject *holders_dir;
5084 	const struct kernel_symbol *syms;
5085 	const s32 *crcs;
5086 	unsigned int num_syms;
5087 	struct mutex param_lock;
5088 	struct kernel_param *kp;
5089 	unsigned int num_kp;
5090 	unsigned int num_gpl_syms;
5091 	const struct kernel_symbol *gpl_syms;
5092 	const s32 *gpl_crcs;
5093 	bool using_gplonly_symbols;
5094 	bool async_probe_requested;
5095 	unsigned int num_exentries;
5096 	struct exception_table_entry *extable;
5097 	int (*init)();
5098 	long: 64;
5099 	long: 64;
5100 	struct module_layout core_layout;
5101 	struct module_layout init_layout;
5102 	struct mod_arch_specific arch;
5103 	long unsigned int taints;
5104 	unsigned int num_bugs;
5105 	struct list_head bug_list;
5106 	struct bug_entry *bug_table;
5107 	struct mod_kallsyms *kallsyms;
5108 	struct mod_kallsyms core_kallsyms;
5109 	struct module_sect_attrs *sect_attrs;
5110 	struct module_notes_attrs *notes_attrs;
5111 	char *args;
5112 	void *percpu;
5113 	unsigned int percpu_size;
5114 	void *noinstr_text_start;
5115 	unsigned int noinstr_text_size;
5116 	unsigned int num_tracepoints;
5117 	tracepoint_ptr_t *tracepoints_ptrs;
5118 	unsigned int num_srcu_structs;
5119 	struct srcu_struct **srcu_struct_ptrs;
5120 	unsigned int num_bpf_raw_events;
5121 	struct bpf_raw_event_map *bpf_raw_events;
5122 	unsigned int btf_data_size;
5123 	void *btf_data;
5124 	struct jump_entry *jump_entries;
5125 	unsigned int num_jump_entries;
5126 	unsigned int num_trace_bprintk_fmt;
5127 	const char **trace_bprintk_fmt_start;
5128 	struct trace_event_call **trace_events;
5129 	unsigned int num_trace_events;
5130 	struct trace_eval_map **trace_evals;
5131 	unsigned int num_trace_evals;
5132 	unsigned int num_ftrace_callsites;
5133 	long unsigned int *ftrace_callsites;
5134 	void *kprobes_text_start;
5135 	unsigned int kprobes_text_size;
5136 	long unsigned int *kprobe_blacklist;
5137 	unsigned int num_kprobe_blacklist;
5138 	int num_static_call_sites;
5139 	struct static_call_site *static_call_sites;
5140 	struct list_head source_list;
5141 	struct list_head target_list;
5142 	void (*exit)();
5143 	atomic_t refcnt;
5144 	struct error_injection_entry *ei_funcs;
5145 	unsigned int num_ei_funcs;
5146 	long: 32;
5147 	long: 64;
5148 	long: 64;
5149 	long: 64;
5150 	long: 64;
5151 };
5152 
5153 struct writeback_control;
5154 
5155 struct readahead_control;
5156 
5157 struct swap_info_struct;
5158 
5159 struct address_space_operations {
5160 	int (*writepage)(struct page *, struct writeback_control *);
5161 	int (*readpage)(struct file *, struct page *);
5162 	int (*writepages)(struct address_space *, struct writeback_control *);
5163 	int (*set_page_dirty)(struct page *);
5164 	int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
5165 	void (*readahead)(struct readahead_control *);
5166 	int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
5167 	int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
5168 	sector_t (*bmap)(struct address_space *, sector_t);
5169 	void (*invalidatepage)(struct page *, unsigned int, unsigned int);
5170 	int (*releasepage)(struct page *, gfp_t);
5171 	void (*freepage)(struct page *);
5172 	ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
5173 	int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
5174 	bool (*isolate_page)(struct page *, isolate_mode_t);
5175 	void (*putback_page)(struct page *);
5176 	int (*launder_page)(struct page *);
5177 	int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
5178 	void (*is_dirty_writeback)(struct page *, bool *, bool *);
5179 	int (*error_remove_page)(struct address_space *, struct page *);
5180 	int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
5181 	void (*swap_deactivate)(struct file *);
5182 };
5183 
5184 struct fiemap_extent_info;
5185 
5186 struct fileattr;
5187 
5188 struct inode_operations {
5189 	struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
5190 	const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
5191 	int (*permission)(struct user_namespace *, struct inode *, int);
5192 	struct posix_acl * (*get_acl)(struct inode *, int, bool);
5193 	int (*readlink)(struct dentry *, char *, int);
5194 	int (*create)(struct user_namespace *, struct inode *, struct dentry *, umode_t, bool);
5195 	int (*link)(struct dentry *, struct inode *, struct dentry *);
5196 	int (*unlink)(struct inode *, struct dentry *);
5197 	int (*symlink)(struct user_namespace *, struct inode *, struct dentry *, const char *);
5198 	int (*mkdir)(struct user_namespace *, struct inode *, struct dentry *, umode_t);
5199 	int (*rmdir)(struct inode *, struct dentry *);
5200 	int (*mknod)(struct user_namespace *, struct inode *, struct dentry *, umode_t, dev_t);
5201 	int (*rename)(struct user_namespace *, struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
5202 	int (*setattr)(struct user_namespace *, struct dentry *, struct iattr *);
5203 	int (*getattr)(struct user_namespace *, const struct path *, struct kstat *, u32, unsigned int);
5204 	ssize_t (*listxattr)(struct dentry *, char *, size_t);
5205 	int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
5206 	int (*update_time)(struct inode *, struct timespec64 *, int);
5207 	int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
5208 	int (*tmpfile)(struct user_namespace *, struct inode *, struct dentry *, umode_t);
5209 	int (*set_acl)(struct user_namespace *, struct inode *, struct posix_acl *, int);
5210 	int (*fileattr_set)(struct user_namespace *, struct dentry *, struct fileattr *);
5211 	int (*fileattr_get)(struct dentry *, struct fileattr *);
5212 	long: 64;
5213 };
5214 
5215 struct file_lock_context {
5216 	spinlock_t flc_lock;
5217 	struct list_head flc_flock;
5218 	struct list_head flc_posix;
5219 	struct list_head flc_lease;
5220 };
5221 
5222 struct file_lock_operations {
5223 	void (*fl_copy_lock)(struct file_lock *, struct file_lock *);
5224 	void (*fl_release_private)(struct file_lock *);
5225 };
5226 
5227 struct nlm_lockowner;
5228 
5229 struct nfs_lock_info {
5230 	u32 state;
5231 	struct nlm_lockowner *owner;
5232 	struct list_head list;
5233 };
5234 
5235 struct nfs4_lock_state;
5236 
5237 struct nfs4_lock_info {
5238 	struct nfs4_lock_state *owner;
5239 };
5240 
5241 struct fasync_struct;
5242 
5243 struct lock_manager_operations;
5244 
5245 struct file_lock {
5246 	struct file_lock *fl_blocker;
5247 	struct list_head fl_list;
5248 	struct hlist_node fl_link;
5249 	struct list_head fl_blocked_requests;
5250 	struct list_head fl_blocked_member;
5251 	fl_owner_t fl_owner;
5252 	unsigned int fl_flags;
5253 	unsigned char fl_type;
5254 	unsigned int fl_pid;
5255 	int fl_link_cpu;
5256 	wait_queue_head_t fl_wait;
5257 	struct file *fl_file;
5258 	loff_t fl_start;
5259 	loff_t fl_end;
5260 	struct fasync_struct *fl_fasync;
5261 	long unsigned int fl_break_time;
5262 	long unsigned int fl_downgrade_time;
5263 	const struct file_lock_operations *fl_ops;
5264 	const struct lock_manager_operations *fl_lmops;
5265 	union {
5266 		struct nfs_lock_info nfs_fl;
5267 		struct nfs4_lock_info nfs4_fl;
5268 		struct {
5269 			struct list_head link;
5270 			int state;
5271 			unsigned int debug_id;
5272 		} afs;
5273 	} fl_u;
5274 };
5275 
5276 struct lock_manager_operations {
5277 	fl_owner_t (*lm_get_owner)(fl_owner_t);
5278 	void (*lm_put_owner)(fl_owner_t);
5279 	void (*lm_notify)(struct file_lock *);
5280 	int (*lm_grant)(struct file_lock *, int);
5281 	bool (*lm_break)(struct file_lock *);
5282 	int (*lm_change)(struct file_lock *, int, struct list_head *);
5283 	void (*lm_setup)(struct file_lock *, void **);
5284 	bool (*lm_breaker_owns_lease)(struct file_lock *);
5285 };
5286 
5287 struct fasync_struct {
5288 	rwlock_t fa_lock;
5289 	int magic;
5290 	int fa_fd;
5291 	struct fasync_struct *fa_next;
5292 	struct file *fa_file;
5293 	struct callback_head fa_rcu;
5294 };
5295 
5296 enum {
5297 	SB_UNFROZEN = 0,
5298 	SB_FREEZE_WRITE = 1,
5299 	SB_FREEZE_PAGEFAULT = 2,
5300 	SB_FREEZE_FS = 3,
5301 	SB_FREEZE_COMPLETE = 4,
5302 };
5303 
5304 struct kstatfs;
5305 
5306 struct super_operations {
5307 	struct inode * (*alloc_inode)(struct super_block *);
5308 	void (*destroy_inode)(struct inode *);
5309 	void (*free_inode)(struct inode *);
5310 	void (*dirty_inode)(struct inode *, int);
5311 	int (*write_inode)(struct inode *, struct writeback_control *);
5312 	int (*drop_inode)(struct inode *);
5313 	void (*evict_inode)(struct inode *);
5314 	void (*put_super)(struct super_block *);
5315 	int (*sync_fs)(struct super_block *, int);
5316 	int (*freeze_super)(struct super_block *);
5317 	int (*freeze_fs)(struct super_block *);
5318 	int (*thaw_super)(struct super_block *);
5319 	int (*unfreeze_fs)(struct super_block *);
5320 	int (*statfs)(struct dentry *, struct kstatfs *);
5321 	int (*remount_fs)(struct super_block *, int *, char *);
5322 	void (*umount_begin)(struct super_block *);
5323 	int (*show_options)(struct seq_file *, struct dentry *);
5324 	int (*show_devname)(struct seq_file *, struct dentry *);
5325 	int (*show_path)(struct seq_file *, struct dentry *);
5326 	int (*show_stats)(struct seq_file *, struct dentry *);
5327 	long int (*nr_cached_objects)(struct super_block *, struct shrink_control *);
5328 	long int (*free_cached_objects)(struct super_block *, struct shrink_control *);
5329 };
5330 
5331 struct iomap;
5332 
5333 struct fid;
5334 
5335 struct export_operations {
5336 	int (*encode_fh)(struct inode *, __u32 *, int *, struct inode *);
5337 	struct dentry * (*fh_to_dentry)(struct super_block *, struct fid *, int, int);
5338 	struct dentry * (*fh_to_parent)(struct super_block *, struct fid *, int, int);
5339 	int (*get_name)(struct dentry *, char *, struct dentry *);
5340 	struct dentry * (*get_parent)(struct dentry *);
5341 	int (*commit_metadata)(struct inode *);
5342 	int (*get_uuid)(struct super_block *, u8 *, u32 *, u64 *);
5343 	int (*map_blocks)(struct inode *, loff_t, u64, struct iomap *, bool, u32 *);
5344 	int (*commit_blocks)(struct inode *, struct iomap *, int, struct iattr *);
5345 	u64 (*fetch_iversion)(struct inode *);
5346 	long unsigned int flags;
5347 };
5348 
5349 struct xattr_handler {
5350 	const char *name;
5351 	const char *prefix;
5352 	int flags;
5353 	bool (*list)(struct dentry *);
5354 	int (*get)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, size_t);
5355 	int (*set)(const struct xattr_handler *, struct user_namespace *, struct dentry *, struct inode *, const char *, const void *, size_t, int);
5356 };
5357 
5358 typedef int (*filldir_t)(struct dir_context *, const char *, int, loff_t, u64, unsigned int);
5359 
5360 struct dir_context {
5361 	filldir_t actor;
5362 	loff_t pos;
5363 };
5364 
5365 struct p_log;
5366 
5367 struct fs_parameter;
5368 
5369 struct fs_parse_result;
5370 
5371 typedef int fs_param_type(struct p_log *, const struct fs_parameter_spec *, struct fs_parameter *, struct fs_parse_result *);
5372 
5373 struct fs_parameter_spec {
5374 	const char *name;
5375 	fs_param_type *type;
5376 	u8 opt;
5377 	short unsigned int flags;
5378 	const void *data;
5379 };
5380 
5381 struct attribute {
5382 	const char *name;
5383 	umode_t mode;
5384 	bool ignore_lockdep: 1;
5385 	struct lock_class_key *key;
5386 	struct lock_class_key skey;
5387 };
5388 
5389 struct kobj_attribute {
5390 	struct attribute attr;
5391 	ssize_t (*show)(struct kobject *, struct kobj_attribute *, char *);
5392 	ssize_t (*store)(struct kobject *, struct kobj_attribute *, const char *, size_t);
5393 };
5394 
5395 typedef void compound_page_dtor(struct page *);
5396 
5397 enum compound_dtor_id {
5398 	NULL_COMPOUND_DTOR = 0,
5399 	COMPOUND_PAGE_DTOR = 1,
5400 	HUGETLB_PAGE_DTOR = 2,
5401 	TRANSHUGE_PAGE_DTOR = 3,
5402 	NR_COMPOUND_DTORS = 4,
5403 };
5404 
5405 enum vm_event_item {
5406 	PGPGIN = 0,
5407 	PGPGOUT = 1,
5408 	PSWPIN = 2,
5409 	PSWPOUT = 3,
5410 	PGALLOC_DMA = 4,
5411 	PGALLOC_DMA32 = 5,
5412 	PGALLOC_NORMAL = 6,
5413 	PGALLOC_MOVABLE = 7,
5414 	ALLOCSTALL_DMA = 8,
5415 	ALLOCSTALL_DMA32 = 9,
5416 	ALLOCSTALL_NORMAL = 10,
5417 	ALLOCSTALL_MOVABLE = 11,
5418 	PGSCAN_SKIP_DMA = 12,
5419 	PGSCAN_SKIP_DMA32 = 13,
5420 	PGSCAN_SKIP_NORMAL = 14,
5421 	PGSCAN_SKIP_MOVABLE = 15,
5422 	PGFREE = 16,
5423 	PGACTIVATE = 17,
5424 	PGDEACTIVATE = 18,
5425 	PGLAZYFREE = 19,
5426 	PGFAULT = 20,
5427 	PGMAJFAULT = 21,
5428 	PGLAZYFREED = 22,
5429 	PGREFILL = 23,
5430 	PGREUSE = 24,
5431 	PGSTEAL_KSWAPD = 25,
5432 	PGSTEAL_DIRECT = 26,
5433 	PGDEMOTE_KSWAPD = 27,
5434 	PGDEMOTE_DIRECT = 28,
5435 	PGSCAN_KSWAPD = 29,
5436 	PGSCAN_DIRECT = 30,
5437 	PGSCAN_DIRECT_THROTTLE = 31,
5438 	PGSCAN_ANON = 32,
5439 	PGSCAN_FILE = 33,
5440 	PGSTEAL_ANON = 34,
5441 	PGSTEAL_FILE = 35,
5442 	PGSCAN_ZONE_RECLAIM_FAILED = 36,
5443 	PGINODESTEAL = 37,
5444 	SLABS_SCANNED = 38,
5445 	KSWAPD_INODESTEAL = 39,
5446 	KSWAPD_LOW_WMARK_HIT_QUICKLY = 40,
5447 	KSWAPD_HIGH_WMARK_HIT_QUICKLY = 41,
5448 	PAGEOUTRUN = 42,
5449 	PGROTATED = 43,
5450 	DROP_PAGECACHE = 44,
5451 	DROP_SLAB = 45,
5452 	OOM_KILL = 46,
5453 	NUMA_PTE_UPDATES = 47,
5454 	NUMA_HUGE_PTE_UPDATES = 48,
5455 	NUMA_HINT_FAULTS = 49,
5456 	NUMA_HINT_FAULTS_LOCAL = 50,
5457 	NUMA_PAGE_MIGRATE = 51,
5458 	PGMIGRATE_SUCCESS = 52,
5459 	PGMIGRATE_FAIL = 53,
5460 	THP_MIGRATION_SUCCESS = 54,
5461 	THP_MIGRATION_FAIL = 55,
5462 	THP_MIGRATION_SPLIT = 56,
5463 	COMPACTMIGRATE_SCANNED = 57,
5464 	COMPACTFREE_SCANNED = 58,
5465 	COMPACTISOLATED = 59,
5466 	COMPACTSTALL = 60,
5467 	COMPACTFAIL = 61,
5468 	COMPACTSUCCESS = 62,
5469 	KCOMPACTD_WAKE = 63,
5470 	KCOMPACTD_MIGRATE_SCANNED = 64,
5471 	KCOMPACTD_FREE_SCANNED = 65,
5472 	HTLB_BUDDY_PGALLOC = 66,
5473 	HTLB_BUDDY_PGALLOC_FAIL = 67,
5474 	CMA_ALLOC_SUCCESS = 68,
5475 	CMA_ALLOC_FAIL = 69,
5476 	UNEVICTABLE_PGCULLED = 70,
5477 	UNEVICTABLE_PGSCANNED = 71,
5478 	UNEVICTABLE_PGRESCUED = 72,
5479 	UNEVICTABLE_PGMLOCKED = 73,
5480 	UNEVICTABLE_PGMUNLOCKED = 74,
5481 	UNEVICTABLE_PGCLEARED = 75,
5482 	UNEVICTABLE_PGSTRANDED = 76,
5483 	THP_FAULT_ALLOC = 77,
5484 	THP_FAULT_FALLBACK = 78,
5485 	THP_FAULT_FALLBACK_CHARGE = 79,
5486 	THP_COLLAPSE_ALLOC = 80,
5487 	THP_COLLAPSE_ALLOC_FAILED = 81,
5488 	THP_FILE_ALLOC = 82,
5489 	THP_FILE_FALLBACK = 83,
5490 	THP_FILE_FALLBACK_CHARGE = 84,
5491 	THP_FILE_MAPPED = 85,
5492 	THP_SPLIT_PAGE = 86,
5493 	THP_SPLIT_PAGE_FAILED = 87,
5494 	THP_DEFERRED_SPLIT_PAGE = 88,
5495 	THP_SPLIT_PMD = 89,
5496 	THP_SCAN_EXCEED_NONE_PTE = 90,
5497 	THP_SCAN_EXCEED_SWAP_PTE = 91,
5498 	THP_SCAN_EXCEED_SHARED_PTE = 92,
5499 	THP_SPLIT_PUD = 93,
5500 	THP_ZERO_PAGE_ALLOC = 94,
5501 	THP_ZERO_PAGE_ALLOC_FAILED = 95,
5502 	THP_SWPOUT = 96,
5503 	THP_SWPOUT_FALLBACK = 97,
5504 	BALLOON_INFLATE = 98,
5505 	BALLOON_DEFLATE = 99,
5506 	BALLOON_MIGRATE = 100,
5507 	SWAP_RA = 101,
5508 	SWAP_RA_HIT = 102,
5509 	DIRECT_MAP_LEVEL2_SPLIT = 103,
5510 	DIRECT_MAP_LEVEL3_SPLIT = 104,
5511 	NR_VM_EVENT_ITEMS = 105,
5512 };
5513 
5514 struct vm_event_state {
5515 	long unsigned int event[105];
5516 };
5517 
5518 enum memblock_flags {
5519 	MEMBLOCK_NONE = 0,
5520 	MEMBLOCK_HOTPLUG = 1,
5521 	MEMBLOCK_MIRROR = 2,
5522 	MEMBLOCK_NOMAP = 4,
5523 	MEMBLOCK_DRIVER_MANAGED = 8,
5524 };
5525 
5526 struct memblock_region {
5527 	phys_addr_t base;
5528 	phys_addr_t size;
5529 	enum memblock_flags flags;
5530 	int nid;
5531 };
5532 
5533 struct memblock_type {
5534 	long unsigned int cnt;
5535 	long unsigned int max;
5536 	phys_addr_t total_size;
5537 	struct memblock_region *regions;
5538 	char *name;
5539 };
5540 
5541 struct memblock {
5542 	bool bottom_up;
5543 	phys_addr_t current_limit;
5544 	struct memblock_type memory;
5545 	struct memblock_type reserved;
5546 };
5547 
5548 struct debug_store {
5549 	u64 bts_buffer_base;
5550 	u64 bts_index;
5551 	u64 bts_absolute_maximum;
5552 	u64 bts_interrupt_threshold;
5553 	u64 pebs_buffer_base;
5554 	u64 pebs_index;
5555 	u64 pebs_absolute_maximum;
5556 	u64 pebs_interrupt_threshold;
5557 	u64 pebs_event_reset[12];
5558 	long: 64;
5559 	long: 64;
5560 	long: 64;
5561 	long: 64;
5562 	long: 64;
5563 	long: 64;
5564 	long: 64;
5565 	long: 64;
5566 	long: 64;
5567 	long: 64;
5568 	long: 64;
5569 	long: 64;
5570 	long: 64;
5571 	long: 64;
5572 	long: 64;
5573 	long: 64;
5574 	long: 64;
5575 	long: 64;
5576 	long: 64;
5577 	long: 64;
5578 	long: 64;
5579 	long: 64;
5580 	long: 64;
5581 	long: 64;
5582 	long: 64;
5583 	long: 64;
5584 	long: 64;
5585 	long: 64;
5586 	long: 64;
5587 	long: 64;
5588 	long: 64;
5589 	long: 64;
5590 	long: 64;
5591 	long: 64;
5592 	long: 64;
5593 	long: 64;
5594 	long: 64;
5595 	long: 64;
5596 	long: 64;
5597 	long: 64;
5598 	long: 64;
5599 	long: 64;
5600 	long: 64;
5601 	long: 64;
5602 	long: 64;
5603 	long: 64;
5604 	long: 64;
5605 	long: 64;
5606 	long: 64;
5607 	long: 64;
5608 	long: 64;
5609 	long: 64;
5610 	long: 64;
5611 	long: 64;
5612 	long: 64;
5613 	long: 64;
5614 	long: 64;
5615 	long: 64;
5616 	long: 64;
5617 	long: 64;
5618 	long: 64;
5619 	long: 64;
5620 	long: 64;
5621 	long: 64;
5622 	long: 64;
5623 	long: 64;
5624 	long: 64;
5625 	long: 64;
5626 	long: 64;
5627 	long: 64;
5628 	long: 64;
5629 	long: 64;
5630 	long: 64;
5631 	long: 64;
5632 	long: 64;
5633 	long: 64;
5634 	long: 64;
5635 	long: 64;
5636 	long: 64;
5637 	long: 64;
5638 	long: 64;
5639 	long: 64;
5640 	long: 64;
5641 	long: 64;
5642 	long: 64;
5643 	long: 64;
5644 	long: 64;
5645 	long: 64;
5646 	long: 64;
5647 	long: 64;
5648 	long: 64;
5649 	long: 64;
5650 	long: 64;
5651 	long: 64;
5652 	long: 64;
5653 	long: 64;
5654 	long: 64;
5655 	long: 64;
5656 	long: 64;
5657 	long: 64;
5658 	long: 64;
5659 	long: 64;
5660 	long: 64;
5661 	long: 64;
5662 	long: 64;
5663 	long: 64;
5664 	long: 64;
5665 	long: 64;
5666 	long: 64;
5667 	long: 64;
5668 	long: 64;
5669 	long: 64;
5670 	long: 64;
5671 	long: 64;
5672 	long: 64;
5673 	long: 64;
5674 	long: 64;
5675 	long: 64;
5676 	long: 64;
5677 	long: 64;
5678 	long: 64;
5679 	long: 64;
5680 	long: 64;
5681 	long: 64;
5682 	long: 64;
5683 	long: 64;
5684 	long: 64;
5685 	long: 64;
5686 	long: 64;
5687 	long: 64;
5688 	long: 64;
5689 	long: 64;
5690 	long: 64;
5691 	long: 64;
5692 	long: 64;
5693 	long: 64;
5694 	long: 64;
5695 	long: 64;
5696 	long: 64;
5697 	long: 64;
5698 	long: 64;
5699 	long: 64;
5700 	long: 64;
5701 	long: 64;
5702 	long: 64;
5703 	long: 64;
5704 	long: 64;
5705 	long: 64;
5706 	long: 64;
5707 	long: 64;
5708 	long: 64;
5709 	long: 64;
5710 	long: 64;
5711 	long: 64;
5712 	long: 64;
5713 	long: 64;
5714 	long: 64;
5715 	long: 64;
5716 	long: 64;
5717 	long: 64;
5718 	long: 64;
5719 	long: 64;
5720 	long: 64;
5721 	long: 64;
5722 	long: 64;
5723 	long: 64;
5724 	long: 64;
5725 	long: 64;
5726 	long: 64;
5727 	long: 64;
5728 	long: 64;
5729 	long: 64;
5730 	long: 64;
5731 	long: 64;
5732 	long: 64;
5733 	long: 64;
5734 	long: 64;
5735 	long: 64;
5736 	long: 64;
5737 	long: 64;
5738 	long: 64;
5739 	long: 64;
5740 	long: 64;
5741 	long: 64;
5742 	long: 64;
5743 	long: 64;
5744 	long: 64;
5745 	long: 64;
5746 	long: 64;
5747 	long: 64;
5748 	long: 64;
5749 	long: 64;
5750 	long: 64;
5751 	long: 64;
5752 	long: 64;
5753 	long: 64;
5754 	long: 64;
5755 	long: 64;
5756 	long: 64;
5757 	long: 64;
5758 	long: 64;
5759 	long: 64;
5760 	long: 64;
5761 	long: 64;
5762 	long: 64;
5763 	long: 64;
5764 	long: 64;
5765 	long: 64;
5766 	long: 64;
5767 	long: 64;
5768 	long: 64;
5769 	long: 64;
5770 	long: 64;
5771 	long: 64;
5772 	long: 64;
5773 	long: 64;
5774 	long: 64;
5775 	long: 64;
5776 	long: 64;
5777 	long: 64;
5778 	long: 64;
5779 	long: 64;
5780 	long: 64;
5781 	long: 64;
5782 	long: 64;
5783 	long: 64;
5784 	long: 64;
5785 	long: 64;
5786 	long: 64;
5787 	long: 64;
5788 	long: 64;
5789 	long: 64;
5790 	long: 64;
5791 	long: 64;
5792 	long: 64;
5793 	long: 64;
5794 	long: 64;
5795 	long: 64;
5796 	long: 64;
5797 	long: 64;
5798 	long: 64;
5799 	long: 64;
5800 	long: 64;
5801 	long: 64;
5802 	long: 64;
5803 	long: 64;
5804 	long: 64;
5805 	long: 64;
5806 	long: 64;
5807 	long: 64;
5808 	long: 64;
5809 	long: 64;
5810 	long: 64;
5811 	long: 64;
5812 	long: 64;
5813 	long: 64;
5814 	long: 64;
5815 	long: 64;
5816 	long: 64;
5817 	long: 64;
5818 	long: 64;
5819 	long: 64;
5820 	long: 64;
5821 	long: 64;
5822 	long: 64;
5823 	long: 64;
5824 	long: 64;
5825 	long: 64;
5826 	long: 64;
5827 	long: 64;
5828 	long: 64;
5829 	long: 64;
5830 	long: 64;
5831 	long: 64;
5832 	long: 64;
5833 	long: 64;
5834 	long: 64;
5835 	long: 64;
5836 	long: 64;
5837 	long: 64;
5838 	long: 64;
5839 	long: 64;
5840 	long: 64;
5841 	long: 64;
5842 	long: 64;
5843 	long: 64;
5844 	long: 64;
5845 	long: 64;
5846 	long: 64;
5847 	long: 64;
5848 	long: 64;
5849 	long: 64;
5850 	long: 64;
5851 	long: 64;
5852 	long: 64;
5853 	long: 64;
5854 	long: 64;
5855 	long: 64;
5856 	long: 64;
5857 	long: 64;
5858 	long: 64;
5859 	long: 64;
5860 	long: 64;
5861 	long: 64;
5862 	long: 64;
5863 	long: 64;
5864 	long: 64;
5865 	long: 64;
5866 	long: 64;
5867 	long: 64;
5868 	long: 64;
5869 	long: 64;
5870 	long: 64;
5871 	long: 64;
5872 	long: 64;
5873 	long: 64;
5874 	long: 64;
5875 	long: 64;
5876 	long: 64;
5877 	long: 64;
5878 	long: 64;
5879 	long: 64;
5880 	long: 64;
5881 	long: 64;
5882 	long: 64;
5883 	long: 64;
5884 	long: 64;
5885 	long: 64;
5886 	long: 64;
5887 	long: 64;
5888 	long: 64;
5889 	long: 64;
5890 	long: 64;
5891 	long: 64;
5892 	long: 64;
5893 	long: 64;
5894 	long: 64;
5895 	long: 64;
5896 	long: 64;
5897 	long: 64;
5898 	long: 64;
5899 	long: 64;
5900 	long: 64;
5901 	long: 64;
5902 	long: 64;
5903 	long: 64;
5904 	long: 64;
5905 	long: 64;
5906 	long: 64;
5907 	long: 64;
5908 	long: 64;
5909 	long: 64;
5910 	long: 64;
5911 	long: 64;
5912 	long: 64;
5913 	long: 64;
5914 	long: 64;
5915 	long: 64;
5916 	long: 64;
5917 	long: 64;
5918 	long: 64;
5919 	long: 64;
5920 	long: 64;
5921 	long: 64;
5922 	long: 64;
5923 	long: 64;
5924 	long: 64;
5925 	long: 64;
5926 	long: 64;
5927 	long: 64;
5928 	long: 64;
5929 	long: 64;
5930 	long: 64;
5931 	long: 64;
5932 	long: 64;
5933 	long: 64;
5934 	long: 64;
5935 	long: 64;
5936 	long: 64;
5937 	long: 64;
5938 	long: 64;
5939 	long: 64;
5940 	long: 64;
5941 	long: 64;
5942 	long: 64;
5943 	long: 64;
5944 	long: 64;
5945 	long: 64;
5946 	long: 64;
5947 	long: 64;
5948 	long: 64;
5949 	long: 64;
5950 	long: 64;
5951 	long: 64;
5952 	long: 64;
5953 	long: 64;
5954 	long: 64;
5955 	long: 64;
5956 	long: 64;
5957 	long: 64;
5958 	long: 64;
5959 	long: 64;
5960 	long: 64;
5961 	long: 64;
5962 	long: 64;
5963 	long: 64;
5964 	long: 64;
5965 	long: 64;
5966 	long: 64;
5967 	long: 64;
5968 	long: 64;
5969 	long: 64;
5970 	long: 64;
5971 	long: 64;
5972 	long: 64;
5973 	long: 64;
5974 	long: 64;
5975 	long: 64;
5976 	long: 64;
5977 	long: 64;
5978 	long: 64;
5979 	long: 64;
5980 	long: 64;
5981 	long: 64;
5982 	long: 64;
5983 	long: 64;
5984 	long: 64;
5985 	long: 64;
5986 	long: 64;
5987 	long: 64;
5988 	long: 64;
5989 	long: 64;
5990 	long: 64;
5991 	long: 64;
5992 	long: 64;
5993 	long: 64;
5994 	long: 64;
5995 	long: 64;
5996 	long: 64;
5997 	long: 64;
5998 	long: 64;
5999 	long: 64;
6000 	long: 64;
6001 	long: 64;
6002 	long: 64;
6003 	long: 64;
6004 	long: 64;
6005 	long: 64;
6006 	long: 64;
6007 	long: 64;
6008 	long: 64;
6009 	long: 64;
6010 	long: 64;
6011 	long: 64;
6012 	long: 64;
6013 	long: 64;
6014 	long: 64;
6015 	long: 64;
6016 	long: 64;
6017 	long: 64;
6018 	long: 64;
6019 	long: 64;
6020 	long: 64;
6021 	long: 64;
6022 	long: 64;
6023 	long: 64;
6024 	long: 64;
6025 	long: 64;
6026 	long: 64;
6027 	long: 64;
6028 	long: 64;
6029 	long: 64;
6030 	long: 64;
6031 	long: 64;
6032 	long: 64;
6033 	long: 64;
6034 	long: 64;
6035 	long: 64;
6036 	long: 64;
6037 	long: 64;
6038 	long: 64;
6039 	long: 64;
6040 	long: 64;
6041 	long: 64;
6042 	long: 64;
6043 	long: 64;
6044 	long: 64;
6045 	long: 64;
6046 	long: 64;
6047 	long: 64;
6048 	long: 64;
6049 	long: 64;
6050 };
6051 
6052 struct debug_store_buffers {
6053 	char bts_buffer[65536];
6054 	char pebs_buffer[65536];
6055 };
6056 
6057 struct cea_exception_stacks {
6058 	char DF_stack_guard[4096];
6059 	char DF_stack[8192];
6060 	char NMI_stack_guard[4096];
6061 	char NMI_stack[8192];
6062 	char DB_stack_guard[4096];
6063 	char DB_stack[8192];
6064 	char MCE_stack_guard[4096];
6065 	char MCE_stack[8192];
6066 	char VC_stack_guard[4096];
6067 	char VC_stack[8192];
6068 	char VC2_stack_guard[4096];
6069 	char VC2_stack[8192];
6070 	char IST_top_guard[4096];
6071 };
6072 
6073 struct cpu_entry_area {
6074 	char gdt[4096];
6075 	struct entry_stack_page entry_stack_page;
6076 	struct tss_struct tss;
6077 	struct cea_exception_stacks estacks;
6078 	struct debug_store cpu_debug_store;
6079 	struct debug_store_buffers cpu_debug_buffers;
6080 };
6081 
6082 struct gdt_page {
6083 	struct desc_struct gdt[16];
6084 	long: 64;
6085 	long: 64;
6086 	long: 64;
6087 	long: 64;
6088 	long: 64;
6089 	long: 64;
6090 	long: 64;
6091 	long: 64;
6092 	long: 64;
6093 	long: 64;
6094 	long: 64;
6095 	long: 64;
6096 	long: 64;
6097 	long: 64;
6098 	long: 64;
6099 	long: 64;
6100 	long: 64;
6101 	long: 64;
6102 	long: 64;
6103 	long: 64;
6104 	long: 64;
6105 	long: 64;
6106 	long: 64;
6107 	long: 64;
6108 	long: 64;
6109 	long: 64;
6110 	long: 64;
6111 	long: 64;
6112 	long: 64;
6113 	long: 64;
6114 	long: 64;
6115 	long: 64;
6116 	long: 64;
6117 	long: 64;
6118 	long: 64;
6119 	long: 64;
6120 	long: 64;
6121 	long: 64;
6122 	long: 64;
6123 	long: 64;
6124 	long: 64;
6125 	long: 64;
6126 	long: 64;
6127 	long: 64;
6128 	long: 64;
6129 	long: 64;
6130 	long: 64;
6131 	long: 64;
6132 	long: 64;
6133 	long: 64;
6134 	long: 64;
6135 	long: 64;
6136 	long: 64;
6137 	long: 64;
6138 	long: 64;
6139 	long: 64;
6140 	long: 64;
6141 	long: 64;
6142 	long: 64;
6143 	long: 64;
6144 	long: 64;
6145 	long: 64;
6146 	long: 64;
6147 	long: 64;
6148 	long: 64;
6149 	long: 64;
6150 	long: 64;
6151 	long: 64;
6152 	long: 64;
6153 	long: 64;
6154 	long: 64;
6155 	long: 64;
6156 	long: 64;
6157 	long: 64;
6158 	long: 64;
6159 	long: 64;
6160 	long: 64;
6161 	long: 64;
6162 	long: 64;
6163 	long: 64;
6164 	long: 64;
6165 	long: 64;
6166 	long: 64;
6167 	long: 64;
6168 	long: 64;
6169 	long: 64;
6170 	long: 64;
6171 	long: 64;
6172 	long: 64;
6173 	long: 64;
6174 	long: 64;
6175 	long: 64;
6176 	long: 64;
6177 	long: 64;
6178 	long: 64;
6179 	long: 64;
6180 	long: 64;
6181 	long: 64;
6182 	long: 64;
6183 	long: 64;
6184 	long: 64;
6185 	long: 64;
6186 	long: 64;
6187 	long: 64;
6188 	long: 64;
6189 	long: 64;
6190 	long: 64;
6191 	long: 64;
6192 	long: 64;
6193 	long: 64;
6194 	long: 64;
6195 	long: 64;
6196 	long: 64;
6197 	long: 64;
6198 	long: 64;
6199 	long: 64;
6200 	long: 64;
6201 	long: 64;
6202 	long: 64;
6203 	long: 64;
6204 	long: 64;
6205 	long: 64;
6206 	long: 64;
6207 	long: 64;
6208 	long: 64;
6209 	long: 64;
6210 	long: 64;
6211 	long: 64;
6212 	long: 64;
6213 	long: 64;
6214 	long: 64;
6215 	long: 64;
6216 	long: 64;
6217 	long: 64;
6218 	long: 64;
6219 	long: 64;
6220 	long: 64;
6221 	long: 64;
6222 	long: 64;
6223 	long: 64;
6224 	long: 64;
6225 	long: 64;
6226 	long: 64;
6227 	long: 64;
6228 	long: 64;
6229 	long: 64;
6230 	long: 64;
6231 	long: 64;
6232 	long: 64;
6233 	long: 64;
6234 	long: 64;
6235 	long: 64;
6236 	long: 64;
6237 	long: 64;
6238 	long: 64;
6239 	long: 64;
6240 	long: 64;
6241 	long: 64;
6242 	long: 64;
6243 	long: 64;
6244 	long: 64;
6245 	long: 64;
6246 	long: 64;
6247 	long: 64;
6248 	long: 64;
6249 	long: 64;
6250 	long: 64;
6251 	long: 64;
6252 	long: 64;
6253 	long: 64;
6254 	long: 64;
6255 	long: 64;
6256 	long: 64;
6257 	long: 64;
6258 	long: 64;
6259 	long: 64;
6260 	long: 64;
6261 	long: 64;
6262 	long: 64;
6263 	long: 64;
6264 	long: 64;
6265 	long: 64;
6266 	long: 64;
6267 	long: 64;
6268 	long: 64;
6269 	long: 64;
6270 	long: 64;
6271 	long: 64;
6272 	long: 64;
6273 	long: 64;
6274 	long: 64;
6275 	long: 64;
6276 	long: 64;
6277 	long: 64;
6278 	long: 64;
6279 	long: 64;
6280 	long: 64;
6281 	long: 64;
6282 	long: 64;
6283 	long: 64;
6284 	long: 64;
6285 	long: 64;
6286 	long: 64;
6287 	long: 64;
6288 	long: 64;
6289 	long: 64;
6290 	long: 64;
6291 	long: 64;
6292 	long: 64;
6293 	long: 64;
6294 	long: 64;
6295 	long: 64;
6296 	long: 64;
6297 	long: 64;
6298 	long: 64;
6299 	long: 64;
6300 	long: 64;
6301 	long: 64;
6302 	long: 64;
6303 	long: 64;
6304 	long: 64;
6305 	long: 64;
6306 	long: 64;
6307 	long: 64;
6308 	long: 64;
6309 	long: 64;
6310 	long: 64;
6311 	long: 64;
6312 	long: 64;
6313 	long: 64;
6314 	long: 64;
6315 	long: 64;
6316 	long: 64;
6317 	long: 64;
6318 	long: 64;
6319 	long: 64;
6320 	long: 64;
6321 	long: 64;
6322 	long: 64;
6323 	long: 64;
6324 	long: 64;
6325 	long: 64;
6326 	long: 64;
6327 	long: 64;
6328 	long: 64;
6329 	long: 64;
6330 	long: 64;
6331 	long: 64;
6332 	long: 64;
6333 	long: 64;
6334 	long: 64;
6335 	long: 64;
6336 	long: 64;
6337 	long: 64;
6338 	long: 64;
6339 	long: 64;
6340 	long: 64;
6341 	long: 64;
6342 	long: 64;
6343 	long: 64;
6344 	long: 64;
6345 	long: 64;
6346 	long: 64;
6347 	long: 64;
6348 	long: 64;
6349 	long: 64;
6350 	long: 64;
6351 	long: 64;
6352 	long: 64;
6353 	long: 64;
6354 	long: 64;
6355 	long: 64;
6356 	long: 64;
6357 	long: 64;
6358 	long: 64;
6359 	long: 64;
6360 	long: 64;
6361 	long: 64;
6362 	long: 64;
6363 	long: 64;
6364 	long: 64;
6365 	long: 64;
6366 	long: 64;
6367 	long: 64;
6368 	long: 64;
6369 	long: 64;
6370 	long: 64;
6371 	long: 64;
6372 	long: 64;
6373 	long: 64;
6374 	long: 64;
6375 	long: 64;
6376 	long: 64;
6377 	long: 64;
6378 	long: 64;
6379 	long: 64;
6380 	long: 64;
6381 	long: 64;
6382 	long: 64;
6383 	long: 64;
6384 	long: 64;
6385 	long: 64;
6386 	long: 64;
6387 	long: 64;
6388 	long: 64;
6389 	long: 64;
6390 	long: 64;
6391 	long: 64;
6392 	long: 64;
6393 	long: 64;
6394 	long: 64;
6395 	long: 64;
6396 	long: 64;
6397 	long: 64;
6398 	long: 64;
6399 	long: 64;
6400 	long: 64;
6401 	long: 64;
6402 	long: 64;
6403 	long: 64;
6404 	long: 64;
6405 	long: 64;
6406 	long: 64;
6407 	long: 64;
6408 	long: 64;
6409 	long: 64;
6410 	long: 64;
6411 	long: 64;
6412 	long: 64;
6413 	long: 64;
6414 	long: 64;
6415 	long: 64;
6416 	long: 64;
6417 	long: 64;
6418 	long: 64;
6419 	long: 64;
6420 	long: 64;
6421 	long: 64;
6422 	long: 64;
6423 	long: 64;
6424 	long: 64;
6425 	long: 64;
6426 	long: 64;
6427 	long: 64;
6428 	long: 64;
6429 	long: 64;
6430 	long: 64;
6431 	long: 64;
6432 	long: 64;
6433 	long: 64;
6434 	long: 64;
6435 	long: 64;
6436 	long: 64;
6437 	long: 64;
6438 	long: 64;
6439 	long: 64;
6440 	long: 64;
6441 	long: 64;
6442 	long: 64;
6443 	long: 64;
6444 	long: 64;
6445 	long: 64;
6446 	long: 64;
6447 	long: 64;
6448 	long: 64;
6449 	long: 64;
6450 	long: 64;
6451 	long: 64;
6452 	long: 64;
6453 	long: 64;
6454 	long: 64;
6455 	long: 64;
6456 	long: 64;
6457 	long: 64;
6458 	long: 64;
6459 	long: 64;
6460 	long: 64;
6461 	long: 64;
6462 	long: 64;
6463 	long: 64;
6464 	long: 64;
6465 	long: 64;
6466 	long: 64;
6467 	long: 64;
6468 	long: 64;
6469 	long: 64;
6470 	long: 64;
6471 	long: 64;
6472 	long: 64;
6473 	long: 64;
6474 	long: 64;
6475 	long: 64;
6476 	long: 64;
6477 	long: 64;
6478 	long: 64;
6479 	long: 64;
6480 	long: 64;
6481 	long: 64;
6482 	long: 64;
6483 	long: 64;
6484 	long: 64;
6485 	long: 64;
6486 	long: 64;
6487 	long: 64;
6488 	long: 64;
6489 	long: 64;
6490 	long: 64;
6491 	long: 64;
6492 	long: 64;
6493 	long: 64;
6494 	long: 64;
6495 	long: 64;
6496 	long: 64;
6497 	long: 64;
6498 	long: 64;
6499 	long: 64;
6500 	long: 64;
6501 	long: 64;
6502 	long: 64;
6503 	long: 64;
6504 	long: 64;
6505 	long: 64;
6506 	long: 64;
6507 	long: 64;
6508 	long: 64;
6509 	long: 64;
6510 	long: 64;
6511 	long: 64;
6512 	long: 64;
6513 	long: 64;
6514 	long: 64;
6515 	long: 64;
6516 	long: 64;
6517 	long: 64;
6518 	long: 64;
6519 	long: 64;
6520 	long: 64;
6521 	long: 64;
6522 	long: 64;
6523 	long: 64;
6524 	long: 64;
6525 	long: 64;
6526 	long: 64;
6527 	long: 64;
6528 	long: 64;
6529 	long: 64;
6530 	long: 64;
6531 	long: 64;
6532 	long: 64;
6533 	long: 64;
6534 	long: 64;
6535 	long: 64;
6536 	long: 64;
6537 	long: 64;
6538 	long: 64;
6539 	long: 64;
6540 	long: 64;
6541 	long: 64;
6542 	long: 64;
6543 	long: 64;
6544 	long: 64;
6545 	long: 64;
6546 	long: 64;
6547 	long: 64;
6548 	long: 64;
6549 	long: 64;
6550 	long: 64;
6551 	long: 64;
6552 	long: 64;
6553 	long: 64;
6554 	long: 64;
6555 	long: 64;
6556 	long: 64;
6557 	long: 64;
6558 	long: 64;
6559 	long: 64;
6560 	long: 64;
6561 	long: 64;
6562 	long: 64;
6563 	long: 64;
6564 	long: 64;
6565 	long: 64;
6566 	long: 64;
6567 	long: 64;
6568 	long: 64;
6569 	long: 64;
6570 	long: 64;
6571 	long: 64;
6572 	long: 64;
6573 	long: 64;
6574 	long: 64;
6575 	long: 64;
6576 	long: 64;
6577 	long: 64;
6578 	long: 64;
6579 	long: 64;
6580 };
6581 
6582 struct tlb_context {
6583 	u64 ctx_id;
6584 	u64 tlb_gen;
6585 };
6586 
6587 struct tlb_state {
6588 	struct mm_struct *loaded_mm;
6589 	union {
6590 		struct mm_struct *last_user_mm;
6591 		long unsigned int last_user_mm_spec;
6592 	};
6593 	u16 loaded_mm_asid;
6594 	u16 next_asid;
6595 	bool invalidate_other;
6596 	short unsigned int user_pcid_flush_mask;
6597 	long unsigned int cr4;
6598 	struct tlb_context ctxs[6];
6599 };
6600 
6601 struct tlb_state_shared {
6602 	bool is_lazy;
6603 };
6604 
6605 enum e820_type {
6606 	E820_TYPE_RAM = 1,
6607 	E820_TYPE_RESERVED = 2,
6608 	E820_TYPE_ACPI = 3,
6609 	E820_TYPE_NVS = 4,
6610 	E820_TYPE_UNUSABLE = 5,
6611 	E820_TYPE_PMEM = 7,
6612 	E820_TYPE_PRAM = 12,
6613 	E820_TYPE_SOFT_RESERVED = 4026531839,
6614 	E820_TYPE_RESERVED_KERN = 128,
6615 };
6616 
6617 struct e820_entry {
6618 	u64 addr;
6619 	u64 size;
6620 	enum e820_type type;
6621 } __attribute__((packed));
6622 
6623 struct e820_table {
6624 	__u32 nr_entries;
6625 	struct e820_entry entries[320];
6626 } __attribute__((packed));
6627 
6628 struct boot_params_to_save {
6629 	unsigned int start;
6630 	unsigned int len;
6631 };
6632 
6633 struct idr {
6634 	struct xarray idr_rt;
6635 	unsigned int idr_base;
6636 	unsigned int idr_next;
6637 };
6638 
6639 struct kernfs_root;
6640 
6641 struct kernfs_elem_dir {
6642 	long unsigned int subdirs;
6643 	struct rb_root children;
6644 	struct kernfs_root *root;
6645 	long unsigned int rev;
6646 };
6647 
6648 struct kernfs_syscall_ops;
6649 
6650 struct kernfs_root {
6651 	struct kernfs_node *kn;
6652 	unsigned int flags;
6653 	struct idr ino_idr;
6654 	u32 last_id_lowbits;
6655 	u32 id_highbits;
6656 	struct kernfs_syscall_ops *syscall_ops;
6657 	struct list_head supers;
6658 	wait_queue_head_t deactivate_waitq;
6659 	struct rw_semaphore kernfs_rwsem;
6660 };
6661 
6662 struct kernfs_elem_symlink {
6663 	struct kernfs_node *target_kn;
6664 };
6665 
6666 struct kernfs_ops;
6667 
6668 struct kernfs_open_node;
6669 
6670 struct kernfs_elem_attr {
6671 	const struct kernfs_ops *ops;
6672 	struct kernfs_open_node *open;
6673 	loff_t size;
6674 	struct kernfs_node *notify_next;
6675 };
6676 
6677 struct kernfs_iattrs;
6678 
6679 struct kernfs_node {
6680 	atomic_t count;
6681 	atomic_t active;
6682 	struct lockdep_map dep_map;
6683 	struct kernfs_node *parent;
6684 	const char *name;
6685 	struct rb_node rb;
6686 	const void *ns;
6687 	unsigned int hash;
6688 	union {
6689 		struct kernfs_elem_dir dir;
6690 		struct kernfs_elem_symlink symlink;
6691 		struct kernfs_elem_attr attr;
6692 	};
6693 	void *priv;
6694 	u64 id;
6695 	short unsigned int flags;
6696 	umode_t mode;
6697 	struct kernfs_iattrs *iattr;
6698 };
6699 
6700 struct kernfs_open_file;
6701 
6702 struct kernfs_ops {
6703 	int (*open)(struct kernfs_open_file *);
6704 	void (*release)(struct kernfs_open_file *);
6705 	int (*seq_show)(struct seq_file *, void *);
6706 	void * (*seq_start)(struct seq_file *, loff_t *);
6707 	void * (*seq_next)(struct seq_file *, void *, loff_t *);
6708 	void (*seq_stop)(struct seq_file *, void *);
6709 	ssize_t (*read)(struct kernfs_open_file *, char *, size_t, loff_t);
6710 	size_t atomic_write_len;
6711 	bool prealloc;
6712 	ssize_t (*write)(struct kernfs_open_file *, char *, size_t, loff_t);
6713 	__poll_t (*poll)(struct kernfs_open_file *, struct poll_table_struct *);
6714 	int (*mmap)(struct kernfs_open_file *, struct vm_area_struct *);
6715 };
6716 
6717 struct kernfs_syscall_ops {
6718 	int (*show_options)(struct seq_file *, struct kernfs_root *);
6719 	int (*mkdir)(struct kernfs_node *, const char *, umode_t);
6720 	int (*rmdir)(struct kernfs_node *);
6721 	int (*rename)(struct kernfs_node *, struct kernfs_node *, const char *);
6722 	int (*show_path)(struct seq_file *, struct kernfs_node *, struct kernfs_root *);
6723 };
6724 
6725 struct kernfs_open_file {
6726 	struct kernfs_node *kn;
6727 	struct file *file;
6728 	struct seq_file *seq_file;
6729 	void *priv;
6730 	struct mutex mutex;
6731 	struct mutex prealloc_mutex;
6732 	int event;
6733 	struct list_head list;
6734 	char *prealloc_buf;
6735 	size_t atomic_write_len;
6736 	bool mmapped: 1;
6737 	bool released: 1;
6738 	const struct vm_operations_struct *vm_ops;
6739 };
6740 
6741 enum kobj_ns_type {
6742 	KOBJ_NS_TYPE_NONE = 0,
6743 	KOBJ_NS_TYPE_NET = 1,
6744 	KOBJ_NS_TYPES = 2,
6745 };
6746 
6747 struct sock;
6748 
6749 struct kobj_ns_type_operations {
6750 	enum kobj_ns_type type;
6751 	bool (*current_may_mount)();
6752 	void * (*grab_current_ns)();
6753 	const void * (*netlink_ns)(struct sock *);
6754 	const void * (*initial_ns)();
6755 	void (*drop_ns)(void *);
6756 };
6757 
6758 struct bin_attribute;
6759 
6760 struct attribute_group {
6761 	const char *name;
6762 	umode_t (*is_visible)(struct kobject *, struct attribute *, int);
6763 	umode_t (*is_bin_visible)(struct kobject *, struct bin_attribute *, int);
6764 	struct attribute **attrs;
6765 	struct bin_attribute **bin_attrs;
6766 };
6767 
6768 struct bin_attribute {
6769 	struct attribute attr;
6770 	size_t size;
6771 	void *private;
6772 	struct address_space * (*f_mapping)();
6773 	ssize_t (*read)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t);
6774 	ssize_t (*write)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t);
6775 	int (*mmap)(struct file *, struct kobject *, struct bin_attribute *, struct vm_area_struct *);
6776 };
6777 
6778 struct sysfs_ops {
6779 	ssize_t (*show)(struct kobject *, struct attribute *, char *);
6780 	ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t);
6781 };
6782 
6783 struct kset_uevent_ops;
6784 
6785 struct kset {
6786 	struct list_head list;
6787 	spinlock_t list_lock;
6788 	struct kobject kobj;
6789 	const struct kset_uevent_ops *uevent_ops;
6790 };
6791 
6792 struct kobj_type {
6793 	void (*release)(struct kobject *);
6794 	const struct sysfs_ops *sysfs_ops;
6795 	struct attribute **default_attrs;
6796 	const struct attribute_group **default_groups;
6797 	const struct kobj_ns_type_operations * (*child_ns_type)(struct kobject *);
6798 	const void * (*namespace)(struct kobject *);
6799 	void (*get_ownership)(struct kobject *, kuid_t *, kgid_t *);
6800 };
6801 
6802 struct kobj_uevent_env {
6803 	char *argv[3];
6804 	char *envp[64];
6805 	int envp_idx;
6806 	char buf[2048];
6807 	int buflen;
6808 };
6809 
6810 struct kset_uevent_ops {
6811 	int (* const filter)(struct kobject *);
6812 	const char * (* const name)(struct kobject *);
6813 	int (* const uevent)(struct kobject *, struct kobj_uevent_env *);
6814 };
6815 
6816 enum cpu_idle_type {
6817 	CPU_IDLE = 0,
6818 	CPU_NOT_IDLE = 1,
6819 	CPU_NEWLY_IDLE = 2,
6820 	CPU_MAX_IDLE_TYPES = 3,
6821 };
6822 
6823 enum {
6824 	__SD_BALANCE_NEWIDLE = 0,
6825 	__SD_BALANCE_EXEC = 1,
6826 	__SD_BALANCE_FORK = 2,
6827 	__SD_BALANCE_WAKE = 3,
6828 	__SD_WAKE_AFFINE = 4,
6829 	__SD_ASYM_CPUCAPACITY = 5,
6830 	__SD_ASYM_CPUCAPACITY_FULL = 6,
6831 	__SD_SHARE_CPUCAPACITY = 7,
6832 	__SD_SHARE_PKG_RESOURCES = 8,
6833 	__SD_SERIALIZE = 9,
6834 	__SD_ASYM_PACKING = 10,
6835 	__SD_PREFER_SIBLING = 11,
6836 	__SD_OVERLAP = 12,
6837 	__SD_NUMA = 13,
6838 	__SD_FLAG_CNT = 14,
6839 };
6840 
6841 struct sd_flag_debug {
6842 	unsigned int meta_flags;
6843 	char *name;
6844 };
6845 
6846 struct dev_pm_ops {
6847 	int (*prepare)(struct device *);
6848 	void (*complete)(struct device *);
6849 	int (*suspend)(struct device *);
6850 	int (*resume)(struct device *);
6851 	int (*freeze)(struct device *);
6852 	int (*thaw)(struct device *);
6853 	int (*poweroff)(struct device *);
6854 	int (*restore)(struct device *);
6855 	int (*suspend_late)(struct device *);
6856 	int (*resume_early)(struct device *);
6857 	int (*freeze_late)(struct device *);
6858 	int (*thaw_early)(struct device *);
6859 	int (*poweroff_late)(struct device *);
6860 	int (*restore_early)(struct device *);
6861 	int (*suspend_noirq)(struct device *);
6862 	int (*resume_noirq)(struct device *);
6863 	int (*freeze_noirq)(struct device *);
6864 	int (*thaw_noirq)(struct device *);
6865 	int (*poweroff_noirq)(struct device *);
6866 	int (*restore_noirq)(struct device *);
6867 	int (*runtime_suspend)(struct device *);
6868 	int (*runtime_resume)(struct device *);
6869 	int (*runtime_idle)(struct device *);
6870 };
6871 
6872 struct pm_subsys_data {
6873 	spinlock_t lock;
6874 	unsigned int refcount;
6875 };
6876 
6877 struct dev_pm_domain {
6878 	struct dev_pm_ops ops;
6879 	int (*start)(struct device *);
6880 	void (*detach)(struct device *, bool);
6881 	int (*activate)(struct device *);
6882 	void (*sync)(struct device *);
6883 	void (*dismiss)(struct device *);
6884 };
6885 
6886 struct iommu_ops;
6887 
6888 struct subsys_private;
6889 
6890 struct bus_type {
6891 	const char *name;
6892 	const char *dev_name;
6893 	struct device *dev_root;
6894 	const struct attribute_group **bus_groups;
6895 	const struct attribute_group **dev_groups;
6896 	const struct attribute_group **drv_groups;
6897 	int (*match)(struct device *, struct device_driver *);
6898 	int (*uevent)(struct device *, struct kobj_uevent_env *);
6899 	int (*probe)(struct device *);
6900 	void (*sync_state)(struct device *);
6901 	void (*remove)(struct device *);
6902 	void (*shutdown)(struct device *);
6903 	int (*online)(struct device *);
6904 	int (*offline)(struct device *);
6905 	int (*suspend)(struct device *, pm_message_t);
6906 	int (*resume)(struct device *);
6907 	int (*num_vf)(struct device *);
6908 	int (*dma_configure)(struct device *);
6909 	const struct dev_pm_ops *pm;
6910 	const struct iommu_ops *iommu_ops;
6911 	struct subsys_private *p;
6912 	struct lock_class_key lock_key;
6913 	bool need_parent_lock;
6914 };
6915 
6916 enum probe_type {
6917 	PROBE_DEFAULT_STRATEGY = 0,
6918 	PROBE_PREFER_ASYNCHRONOUS = 1,
6919 	PROBE_FORCE_SYNCHRONOUS = 2,
6920 };
6921 
6922 struct of_device_id;
6923 
6924 struct acpi_device_id;
6925 
6926 struct driver_private;
6927 
6928 struct device_driver {
6929 	const char *name;
6930 	struct bus_type *bus;
6931 	struct module *owner;
6932 	const char *mod_name;
6933 	bool suppress_bind_attrs;
6934 	enum probe_type probe_type;
6935 	const struct of_device_id *of_match_table;
6936 	const struct acpi_device_id *acpi_match_table;
6937 	int (*probe)(struct device *);
6938 	void (*sync_state)(struct device *);
6939 	int (*remove)(struct device *);
6940 	void (*shutdown)(struct device *);
6941 	int (*suspend)(struct device *, pm_message_t);
6942 	int (*resume)(struct device *);
6943 	const struct attribute_group **groups;
6944 	const struct attribute_group **dev_groups;
6945 	const struct dev_pm_ops *pm;
6946 	void (*coredump)(struct device *);
6947 	struct driver_private *p;
6948 };
6949 
6950 struct iommu_ops {};
6951 
6952 struct device_type {
6953 	const char *name;
6954 	const struct attribute_group **groups;
6955 	int (*uevent)(struct device *, struct kobj_uevent_env *);
6956 	char * (*devnode)(struct device *, umode_t *, kuid_t *, kgid_t *);
6957 	void (*release)(struct device *);
6958 	const struct dev_pm_ops *pm;
6959 };
6960 
6961 struct class {
6962 	const char *name;
6963 	struct module *owner;
6964 	const struct attribute_group **class_groups;
6965 	const struct attribute_group **dev_groups;
6966 	struct kobject *dev_kobj;
6967 	int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
6968 	char * (*devnode)(struct device *, umode_t *);
6969 	void (*class_release)(struct class *);
6970 	void (*dev_release)(struct device *);
6971 	int (*shutdown_pre)(struct device *);
6972 	const struct kobj_ns_type_operations *ns_type;
6973 	const void * (*namespace)(struct device *);
6974 	void (*get_ownership)(struct device *, kuid_t *, kgid_t *);
6975 	const struct dev_pm_ops *pm;
6976 	struct subsys_private *p;
6977 };
6978 
6979 struct va_alignment {
6980 	int flags;
6981 	long unsigned int mask;
6982 	long unsigned int bits;
6983 	long: 64;
6984 	long: 64;
6985 	long: 64;
6986 	long: 64;
6987 	long: 64;
6988 };
6989 
6990 typedef __u64 Elf64_Addr;
6991 
6992 typedef __u16 Elf64_Half;
6993 
6994 typedef __u32 Elf64_Word;
6995 
6996 typedef __u64 Elf64_Xword;
6997 
6998 typedef __s64 Elf64_Sxword;
6999 
7000 typedef struct {
7001 	Elf64_Sxword d_tag;
7002 	union {
7003 		Elf64_Xword d_val;
7004 		Elf64_Addr d_ptr;
7005 	} d_un;
7006 } Elf64_Dyn;
7007 
7008 struct elf64_sym {
7009 	Elf64_Word st_name;
7010 	unsigned char st_info;
7011 	unsigned char st_other;
7012 	Elf64_Half st_shndx;
7013 	Elf64_Addr st_value;
7014 	Elf64_Xword st_size;
7015 };
7016 
7017 struct kernel_param_ops {
7018 	unsigned int flags;
7019 	int (*set)(const char *, const struct kernel_param *);
7020 	int (*get)(char *, const struct kernel_param *);
7021 	void (*free)(void *);
7022 };
7023 
7024 struct kparam_string;
7025 
7026 struct kparam_array;
7027 
7028 struct kernel_param {
7029 	const char *name;
7030 	struct module *mod;
7031 	const struct kernel_param_ops *ops;
7032 	const u16 perm;
7033 	s8 level;
7034 	u8 flags;
7035 	union {
7036 		void *arg;
7037 		const struct kparam_string *str;
7038 		const struct kparam_array *arr;
7039 	};
7040 };
7041 
7042 struct kparam_string {
7043 	unsigned int maxlen;
7044 	char *string;
7045 };
7046 
7047 struct kparam_array {
7048 	unsigned int max;
7049 	unsigned int elemsize;
7050 	unsigned int *num;
7051 	const struct kernel_param_ops *ops;
7052 	void *elem;
7053 };
7054 
7055 struct error_injection_entry {
7056 	long unsigned int addr;
7057 	int etype;
7058 };
7059 
7060 struct module_attribute {
7061 	struct attribute attr;
7062 	ssize_t (*show)(struct module_attribute *, struct module_kobject *, char *);
7063 	ssize_t (*store)(struct module_attribute *, struct module_kobject *, const char *, size_t);
7064 	void (*setup)(struct module *, const char *);
7065 	int (*test)(struct module *);
7066 	void (*free)(struct module *);
7067 };
7068 
7069 struct of_device_id {
7070 	char name[32];
7071 	char type[32];
7072 	char compatible[128];
7073 	const void *data;
7074 };
7075 
7076 typedef long unsigned int kernel_ulong_t;
7077 
7078 struct acpi_device_id {
7079 	__u8 id[9];
7080 	kernel_ulong_t driver_data;
7081 	__u32 cls;
7082 	__u32 cls_msk;
7083 };
7084 
7085 struct device_dma_parameters {
7086 	unsigned int max_segment_size;
7087 	unsigned int min_align_mask;
7088 	long unsigned int segment_boundary_mask;
7089 };
7090 
7091 typedef u64 dma_addr_t;
7092 
7093 enum dma_data_direction {
7094 	DMA_BIDIRECTIONAL = 0,
7095 	DMA_TO_DEVICE = 1,
7096 	DMA_FROM_DEVICE = 2,
7097 	DMA_NONE = 3,
7098 };
7099 
7100 struct sg_table;
7101 
7102 struct scatterlist;
7103 
7104 struct dma_map_ops {
7105 	void * (*alloc)(struct device *, size_t, dma_addr_t *, gfp_t, long unsigned int);
7106 	void (*free)(struct device *, size_t, void *, dma_addr_t, long unsigned int);
7107 	struct page * (*alloc_pages)(struct device *, size_t, dma_addr_t *, enum dma_data_direction, gfp_t);
7108 	void (*free_pages)(struct device *, size_t, struct page *, dma_addr_t, enum dma_data_direction);
7109 	struct sg_table * (*alloc_noncontiguous)(struct device *, size_t, enum dma_data_direction, gfp_t, long unsigned int);
7110 	void (*free_noncontiguous)(struct device *, size_t, struct sg_table *, enum dma_data_direction);
7111 	int (*mmap)(struct device *, struct vm_area_struct *, void *, dma_addr_t, size_t, long unsigned int);
7112 	int (*get_sgtable)(struct device *, struct sg_table *, void *, dma_addr_t, size_t, long unsigned int);
7113 	dma_addr_t (*map_page)(struct device *, struct page *, long unsigned int, size_t, enum dma_data_direction, long unsigned int);
7114 	void (*unmap_page)(struct device *, dma_addr_t, size_t, enum dma_data_direction, long unsigned int);
7115 	int (*map_sg)(struct device *, struct scatterlist *, int, enum dma_data_direction, long unsigned int);
7116 	void (*unmap_sg)(struct device *, struct scatterlist *, int, enum dma_data_direction, long unsigned int);
7117 	dma_addr_t (*map_resource)(struct device *, phys_addr_t, size_t, enum dma_data_direction, long unsigned int);
7118 	void (*unmap_resource)(struct device *, dma_addr_t, size_t, enum dma_data_direction, long unsigned int);
7119 	void (*sync_single_for_cpu)(struct device *, dma_addr_t, size_t, enum dma_data_direction);
7120 	void (*sync_single_for_device)(struct device *, dma_addr_t, size_t, enum dma_data_direction);
7121 	void (*sync_sg_for_cpu)(struct device *, struct scatterlist *, int, enum dma_data_direction);
7122 	void (*sync_sg_for_device)(struct device *, struct scatterlist *, int, enum dma_data_direction);
7123 	void (*cache_sync)(struct device *, void *, size_t, enum dma_data_direction);
7124 	int (*dma_supported)(struct device *, u64);
7125 	u64 (*get_required_mask)(struct device *);
7126 	size_t (*max_mapping_size)(struct device *);
7127 	long unsigned int (*get_merge_boundary)(struct device *);
7128 };
7129 
7130 struct bus_dma_region {
7131 	phys_addr_t cpu_start;
7132 	dma_addr_t dma_start;
7133 	u64 size;
7134 	u64 offset;
7135 };
7136 
7137 struct node {
7138 	struct device dev;
7139 	struct list_head access_list;
7140 };
7141 
7142 enum cpuhp_smt_control {
7143 	CPU_SMT_ENABLED = 0,
7144 	CPU_SMT_DISABLED = 1,
7145 	CPU_SMT_FORCE_DISABLED = 2,
7146 	CPU_SMT_NOT_SUPPORTED = 3,
7147 	CPU_SMT_NOT_IMPLEMENTED = 4,
7148 };
7149 
7150 struct cpu_signature {
7151 	unsigned int sig;
7152 	unsigned int pf;
7153 	unsigned int rev;
7154 };
7155 
7156 struct ucode_cpu_info {
7157 	struct cpu_signature cpu_sig;
7158 	int valid;
7159 	void *mc;
7160 };
7161 
7162 struct real_mode_header {
7163 	u32 text_start;
7164 	u32 ro_end;
7165 	u32 trampoline_start;
7166 	u32 trampoline_header;
7167 	u32 trampoline_pgd;
7168 	u32 machine_real_restart_asm;
7169 	u32 machine_real_restart_seg;
7170 };
7171 
7172 struct kobj_attribute___2;
7173 
7174 struct file_system_type___2;
7175 
7176 typedef __u32 __le32;
7177 
7178 typedef unsigned int uint;
7179 
7180 typedef long unsigned int ulong;
7181 
7182 typedef u16 uint16_t;
7183 
7184 typedef long unsigned int irq_hw_number_t;
7185 
7186 typedef int (*initcall_t)();
7187 
7188 struct obs_kernel_param {
7189 	const char *str;
7190 	int (*setup_func)(char *);
7191 	int early;
7192 };
7193 
7194 enum lockdep_wait_type {
7195 	LD_WAIT_INV = 0,
7196 	LD_WAIT_FREE = 1,
7197 	LD_WAIT_SPIN = 2,
7198 	LD_WAIT_CONFIG = 2,
7199 	LD_WAIT_SLEEP = 3,
7200 	LD_WAIT_MAX = 4,
7201 };
7202 
7203 struct static_call_mod {
7204 	struct static_call_mod *next;
7205 	struct module *mod;
7206 	struct static_call_site *sites;
7207 };
7208 
7209 enum ftrace_dump_mode {
7210 	DUMP_NONE = 0,
7211 	DUMP_ALL = 1,
7212 	DUMP_ORIG = 2,
7213 };
7214 
7215 enum perf_event_state {
7216 	PERF_EVENT_STATE_DEAD = 4294967292,
7217 	PERF_EVENT_STATE_EXIT = 4294967293,
7218 	PERF_EVENT_STATE_ERROR = 4294967294,
7219 	PERF_EVENT_STATE_OFF = 4294967295,
7220 	PERF_EVENT_STATE_INACTIVE = 0,
7221 	PERF_EVENT_STATE_ACTIVE = 1,
7222 };
7223 
7224 typedef struct {
7225 	atomic_long_t a;
7226 } local_t;
7227 
7228 typedef struct {
7229 	local_t a;
7230 } local64_t;
7231 
7232 struct perf_event_attr {
7233 	__u32 type;
7234 	__u32 size;
7235 	__u64 config;
7236 	union {
7237 		__u64 sample_period;
7238 		__u64 sample_freq;
7239 	};
7240 	__u64 sample_type;
7241 	__u64 read_format;
7242 	__u64 disabled: 1;
7243 	__u64 inherit: 1;
7244 	__u64 pinned: 1;
7245 	__u64 exclusive: 1;
7246 	__u64 exclude_user: 1;
7247 	__u64 exclude_kernel: 1;
7248 	__u64 exclude_hv: 1;
7249 	__u64 exclude_idle: 1;
7250 	__u64 mmap: 1;
7251 	__u64 comm: 1;
7252 	__u64 freq: 1;
7253 	__u64 inherit_stat: 1;
7254 	__u64 enable_on_exec: 1;
7255 	__u64 task: 1;
7256 	__u64 watermark: 1;
7257 	__u64 precise_ip: 2;
7258 	__u64 mmap_data: 1;
7259 	__u64 sample_id_all: 1;
7260 	__u64 exclude_host: 1;
7261 	__u64 exclude_guest: 1;
7262 	__u64 exclude_callchain_kernel: 1;
7263 	__u64 exclude_callchain_user: 1;
7264 	__u64 mmap2: 1;
7265 	__u64 comm_exec: 1;
7266 	__u64 use_clockid: 1;
7267 	__u64 context_switch: 1;
7268 	__u64 write_backward: 1;
7269 	__u64 namespaces: 1;
7270 	__u64 ksymbol: 1;
7271 	__u64 bpf_event: 1;
7272 	__u64 aux_output: 1;
7273 	__u64 cgroup: 1;
7274 	__u64 text_poke: 1;
7275 	__u64 build_id: 1;
7276 	__u64 inherit_thread: 1;
7277 	__u64 remove_on_exec: 1;
7278 	__u64 sigtrap: 1;
7279 	__u64 __reserved_1: 26;
7280 	union {
7281 		__u32 wakeup_events;
7282 		__u32 wakeup_watermark;
7283 	};
7284 	__u32 bp_type;
7285 	union {
7286 		__u64 bp_addr;
7287 		__u64 kprobe_func;
7288 		__u64 uprobe_path;
7289 		__u64 config1;
7290 	};
7291 	union {
7292 		__u64 bp_len;
7293 		__u64 kprobe_addr;
7294 		__u64 probe_offset;
7295 		__u64 config2;
7296 	};
7297 	__u64 branch_sample_type;
7298 	__u64 sample_regs_user;
7299 	__u32 sample_stack_user;
7300 	__s32 clockid;
7301 	__u64 sample_regs_intr;
7302 	__u32 aux_watermark;
7303 	__u16 sample_max_stack;
7304 	__u16 __reserved_2;
7305 	__u32 aux_sample_size;
7306 	__u32 __reserved_3;
7307 	__u64 sig_data;
7308 };
7309 
7310 struct hw_perf_event_extra {
7311 	u64 config;
7312 	unsigned int reg;
7313 	int alloc;
7314 	int idx;
7315 };
7316 
7317 struct arch_hw_breakpoint {
7318 	long unsigned int address;
7319 	long unsigned int mask;
7320 	u8 len;
7321 	u8 type;
7322 };
7323 
7324 struct hw_perf_event {
7325 	union {
7326 		struct {
7327 			u64 config;
7328 			u64 last_tag;
7329 			long unsigned int config_base;
7330 			long unsigned int event_base;
7331 			int event_base_rdpmc;
7332 			int idx;
7333 			int last_cpu;
7334 			int flags;
7335 			struct hw_perf_event_extra extra_reg;
7336 			struct hw_perf_event_extra branch_reg;
7337 		};
7338 		struct {
7339 			struct hrtimer hrtimer;
7340 		};
7341 		struct {
7342 			struct list_head tp_list;
7343 		};
7344 		struct {
7345 			u64 pwr_acc;
7346 			u64 ptsc;
7347 		};
7348 		struct {
7349 			struct arch_hw_breakpoint info;
7350 			struct list_head bp_list;
7351 		};
7352 		struct {
7353 			u8 iommu_bank;
7354 			u8 iommu_cntr;
7355 			u16 padding;
7356 			u64 conf;
7357 			u64 conf1;
7358 		};
7359 	};
7360 	struct task_struct *target;
7361 	void *addr_filters;
7362 	long unsigned int addr_filters_gen;
7363 	int state;
7364 	local64_t prev_count;
7365 	u64 sample_period;
7366 	union {
7367 		struct {
7368 			u64 last_period;
7369 			local64_t period_left;
7370 		};
7371 		struct {
7372 			u64 saved_metric;
7373 			u64 saved_slots;
7374 		};
7375 	};
7376 	u64 interrupts_seq;
7377 	u64 interrupts;
7378 	u64 freq_time_stamp;
7379 	u64 freq_count_stamp;
7380 };
7381 
7382 struct irq_work {
7383 	struct __call_single_node node;
7384 	void (*func)(struct irq_work *);
7385 	struct rcuwait irqwait;
7386 };
7387 
7388 struct perf_addr_filters_head {
7389 	struct list_head list;
7390 	raw_spinlock_t lock;
7391 	unsigned int nr_file_filters;
7392 };
7393 
7394 struct perf_sample_data;
7395 
7396 typedef void (*perf_overflow_handler_t)(struct perf_event *, struct perf_sample_data *, struct pt_regs *);
7397 
7398 struct ftrace_ops;
7399 
7400 struct ftrace_regs;
7401 
7402 typedef void (*ftrace_func_t)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *);
7403 
7404 struct ftrace_hash;
7405 
7406 struct ftrace_ops_hash {
7407 	struct ftrace_hash *notrace_hash;
7408 	struct ftrace_hash *filter_hash;
7409 	struct mutex regex_lock;
7410 };
7411 
7412 struct ftrace_ops {
7413 	ftrace_func_t func;
7414 	struct ftrace_ops *next;
7415 	long unsigned int flags;
7416 	void *private;
7417 	ftrace_func_t saved_func;
7418 	struct ftrace_ops_hash local_hash;
7419 	struct ftrace_ops_hash *func_hash;
7420 	struct ftrace_ops_hash old_hash;
7421 	long unsigned int trampoline;
7422 	long unsigned int trampoline_size;
7423 	struct list_head list;
7424 };
7425 
7426 struct pmu;
7427 
7428 struct perf_buffer;
7429 
7430 struct perf_addr_filter_range;
7431 
7432 struct bpf_prog;
7433 
7434 struct event_filter;
7435 
7436 struct perf_cgroup;
7437 
7438 struct perf_event {
7439 	struct list_head event_entry;
7440 	struct list_head sibling_list;
7441 	struct list_head active_list;
7442 	struct rb_node group_node;
7443 	u64 group_index;
7444 	struct list_head migrate_entry;
7445 	struct hlist_node hlist_entry;
7446 	struct list_head active_entry;
7447 	int nr_siblings;
7448 	int event_caps;
7449 	int group_caps;
7450 	struct perf_event *group_leader;
7451 	struct pmu *pmu;
7452 	void *pmu_private;
7453 	enum perf_event_state state;
7454 	unsigned int attach_state;
7455 	local64_t count;
7456 	atomic64_t child_count;
7457 	u64 total_time_enabled;
7458 	u64 total_time_running;
7459 	u64 tstamp;
7460 	u64 shadow_ctx_time;
7461 	struct perf_event_attr attr;
7462 	u16 header_size;
7463 	u16 id_header_size;
7464 	u16 read_size;
7465 	struct hw_perf_event hw;
7466 	struct perf_event_context *ctx;
7467 	atomic_long_t refcount;
7468 	atomic64_t child_total_time_enabled;
7469 	atomic64_t child_total_time_running;
7470 	struct mutex child_mutex;
7471 	struct list_head child_list;
7472 	struct perf_event *parent;
7473 	int oncpu;
7474 	int cpu;
7475 	struct list_head owner_entry;
7476 	struct task_struct *owner;
7477 	struct mutex mmap_mutex;
7478 	atomic_t mmap_count;
7479 	struct perf_buffer *rb;
7480 	struct list_head rb_entry;
7481 	long unsigned int rcu_batches;
7482 	int rcu_pending;
7483 	wait_queue_head_t waitq;
7484 	struct fasync_struct *fasync;
7485 	int pending_wakeup;
7486 	int pending_kill;
7487 	int pending_disable;
7488 	long unsigned int pending_addr;
7489 	struct irq_work pending;
7490 	atomic_t event_limit;
7491 	struct perf_addr_filters_head addr_filters;
7492 	struct perf_addr_filter_range *addr_filter_ranges;
7493 	long unsigned int addr_filters_gen;
7494 	struct perf_event *aux_event;
7495 	void (*destroy)(struct perf_event *);
7496 	struct callback_head callback_head;
7497 	struct pid_namespace *ns;
7498 	u64 id;
7499 	u64 (*clock)();
7500 	perf_overflow_handler_t overflow_handler;
7501 	void *overflow_handler_context;
7502 	perf_overflow_handler_t orig_overflow_handler;
7503 	struct bpf_prog *prog;
7504 	u64 bpf_cookie;
7505 	struct trace_event_call *tp_event;
7506 	struct event_filter *filter;
7507 	struct ftrace_ops ftrace_ops;
7508 	struct perf_cgroup *cgrp;
7509 	void *security;
7510 	struct list_head sb_list;
7511 };
7512 
7513 struct uid_gid_extent {
7514 	u32 first;
7515 	u32 lower_first;
7516 	u32 count;
7517 };
7518 
7519 struct uid_gid_map {
7520 	u32 nr_extents;
7521 	union {
7522 		struct uid_gid_extent extent[5];
7523 		struct {
7524 			struct uid_gid_extent *forward;
7525 			struct uid_gid_extent *reverse;
7526 		};
7527 	};
7528 };
7529 
7530 struct proc_ns_operations;
7531 
7532 struct ns_common {
7533 	atomic_long_t stashed;
7534 	const struct proc_ns_operations *ops;
7535 	unsigned int inum;
7536 	refcount_t count;
7537 };
7538 
7539 struct ctl_table_root;
7540 
7541 struct ctl_table_set;
7542 
7543 struct ctl_dir;
7544 
7545 struct ctl_node;
7546 
7547 struct ctl_table_header {
7548 	union {
7549 		struct {
7550 			struct ctl_table *ctl_table;
7551 			int used;
7552 			int count;
7553 			int nreg;
7554 		};
7555 		struct callback_head rcu;
7556 	};
7557 	struct completion *unregistering;
7558 	struct ctl_table *ctl_table_arg;
7559 	struct ctl_table_root *root;
7560 	struct ctl_table_set *set;
7561 	struct ctl_dir *parent;
7562 	struct ctl_node *node;
7563 	struct hlist_head inodes;
7564 };
7565 
7566 struct ctl_dir {
7567 	struct ctl_table_header header;
7568 	struct rb_root root;
7569 };
7570 
7571 struct ctl_table_set {
7572 	int (*is_seen)(struct ctl_table_set *);
7573 	struct ctl_dir dir;
7574 };
7575 
7576 struct user_namespace {
7577 	struct uid_gid_map uid_map;
7578 	struct uid_gid_map gid_map;
7579 	struct uid_gid_map projid_map;
7580 	struct user_namespace *parent;
7581 	int level;
7582 	kuid_t owner;
7583 	kgid_t group;
7584 	struct ns_common ns;
7585 	long unsigned int flags;
7586 	bool parent_could_setfcap;
7587 	struct list_head keyring_name_list;
7588 	struct key *user_keyring_register;
7589 	struct rw_semaphore keyring_sem;
7590 	struct work_struct work;
7591 	struct ctl_table_set set;
7592 	struct ctl_table_header *sysctls;
7593 	struct ucounts *ucounts;
7594 	long int ucount_max[14];
7595 };
7596 
7597 struct pollfd {
7598 	int fd;
7599 	short int events;
7600 	short int revents;
7601 };
7602 
7603 enum refcount_saturation_type {
7604 	REFCOUNT_ADD_NOT_ZERO_OVF = 0,
7605 	REFCOUNT_ADD_OVF = 1,
7606 	REFCOUNT_ADD_UAF = 2,
7607 	REFCOUNT_SUB_UAF = 3,
7608 	REFCOUNT_DEC_LEAK = 4,
7609 };
7610 
7611 struct wait_queue_entry;
7612 
7613 typedef int (*wait_queue_func_t)(struct wait_queue_entry *, unsigned int, int, void *);
7614 
7615 struct wait_queue_entry {
7616 	unsigned int flags;
7617 	void *private;
7618 	wait_queue_func_t func;
7619 	struct list_head entry;
7620 };
7621 
7622 typedef struct wait_queue_entry wait_queue_entry_t;
7623 
7624 struct rcu_work {
7625 	struct work_struct work;
7626 	struct callback_head rcu;
7627 	struct workqueue_struct *wq;
7628 };
7629 
7630 struct ldt_struct {
7631 	struct desc_struct *entries;
7632 	unsigned int nr_entries;
7633 	int slot;
7634 };
7635 
7636 struct folio {
7637 	union {
7638 		struct {
7639 			long unsigned int flags;
7640 			struct list_head lru;
7641 			struct address_space *mapping;
7642 			long unsigned int index;
7643 			void *private;
7644 			atomic_t _mapcount;
7645 			atomic_t _refcount;
7646 			long unsigned int memcg_data;
7647 		};
7648 		struct page page;
7649 	};
7650 };
7651 
7652 struct anon_vma {
7653 	struct anon_vma *root;
7654 	struct rw_semaphore rwsem;
7655 	atomic_t refcount;
7656 	unsigned int degree;
7657 	struct anon_vma *parent;
7658 	struct rb_root_cached rb_root;
7659 };
7660 
7661 struct mempolicy {
7662 	atomic_t refcnt;
7663 	short unsigned int mode;
7664 	short unsigned int flags;
7665 	nodemask_t nodes;
7666 	int home_node;
7667 	union {
7668 		nodemask_t cpuset_mems_allowed;
7669 		nodemask_t user_nodemask;
7670 	} w;
7671 };
7672 
7673 struct linux_binprm;
7674 
7675 struct coredump_params;
7676 
7677 struct linux_binfmt {
7678 	struct list_head lh;
7679 	struct module *module;
7680 	int (*load_binary)(struct linux_binprm *);
7681 	int (*load_shlib)(struct file *);
7682 	int (*core_dump)(struct coredump_params *);
7683 	long unsigned int min_coredump;
7684 };
7685 
7686 enum irq_domain_bus_token {
7687 	DOMAIN_BUS_ANY = 0,
7688 	DOMAIN_BUS_WIRED = 1,
7689 	DOMAIN_BUS_GENERIC_MSI = 2,
7690 	DOMAIN_BUS_PCI_MSI = 3,
7691 	DOMAIN_BUS_PLATFORM_MSI = 4,
7692 	DOMAIN_BUS_NEXUS = 5,
7693 	DOMAIN_BUS_IPI = 6,
7694 	DOMAIN_BUS_FSL_MC_MSI = 7,
7695 	DOMAIN_BUS_TI_SCI_INTA_MSI = 8,
7696 	DOMAIN_BUS_WAKEUP = 9,
7697 	DOMAIN_BUS_VMD_MSI = 10,
7698 };
7699 
7700 struct irq_domain_ops;
7701 
7702 struct irq_domain_chip_generic;
7703 
7704 struct irq_data;
7705 
7706 struct irq_domain {
7707 	struct list_head link;
7708 	const char *name;
7709 	const struct irq_domain_ops *ops;
7710 	void *host_data;
7711 	unsigned int flags;
7712 	unsigned int mapcount;
7713 	struct fwnode_handle *fwnode;
7714 	enum irq_domain_bus_token bus_token;
7715 	struct irq_domain_chip_generic *gc;
7716 	struct irq_domain *parent;
7717 	irq_hw_number_t hwirq_max;
7718 	unsigned int revmap_size;
7719 	struct xarray revmap_tree;
7720 	struct mutex revmap_mutex;
7721 	struct irq_data *revmap[0];
7722 };
7723 
7724 struct ctl_node {
7725 	struct rb_node node;
7726 	struct ctl_table_header *header;
7727 };
7728 
7729 struct ctl_table_root {
7730 	struct ctl_table_set default_set;
7731 	struct ctl_table_set * (*lookup)(struct ctl_table_root *);
7732 	void (*set_ownership)(struct ctl_table_header *, struct ctl_table *, kuid_t *, kgid_t *);
7733 	int (*permissions)(struct ctl_table_header *, struct ctl_table *);
7734 };
7735 
7736 struct seq_file {
7737 	char *buf;
7738 	size_t size;
7739 	size_t from;
7740 	size_t count;
7741 	size_t pad_until;
7742 	loff_t index;
7743 	loff_t read_pos;
7744 	struct mutex lock;
7745 	const struct seq_operations *op;
7746 	int poll_event;
7747 	const struct file *file;
7748 	void *private;
7749 };
7750 
7751 typedef void (*poll_queue_proc)(struct file *, wait_queue_head_t *, struct poll_table_struct *);
7752 
7753 struct poll_table_struct {
7754 	poll_queue_proc _qproc;
7755 	__poll_t _key;
7756 };
7757 
7758 struct trace_event_functions;
7759 
7760 struct trace_event {
7761 	struct hlist_node node;
7762 	struct list_head list;
7763 	int type;
7764 	struct trace_event_functions *funcs;
7765 };
7766 
7767 struct trace_event_class;
7768 
7769 struct bpf_prog_array;
7770 
7771 struct trace_event_call {
7772 	struct list_head list;
7773 	struct trace_event_class *class;
7774 	union {
7775 		char *name;
7776 		struct tracepoint *tp;
7777 	};
7778 	struct trace_event event;
7779 	char *print_fmt;
7780 	struct event_filter *filter;
7781 	union {
7782 		void *module;
7783 		atomic_t refcnt;
7784 	};
7785 	void *data;
7786 	int flags;
7787 	int perf_refcount;
7788 	struct hlist_head *perf_events;
7789 	struct bpf_prog_array *prog_array;
7790 	int (*perf_perm)(struct trace_event_call *, struct perf_event *);
7791 };
7792 
7793 struct trace_eval_map {
7794 	const char *system;
7795 	const char *eval_string;
7796 	long unsigned int eval_value;
7797 };
7798 
7799 struct cgroup;
7800 
7801 struct cgroup_subsys;
7802 
7803 struct cgroup_subsys_state {
7804 	struct cgroup *cgroup;
7805 	struct cgroup_subsys *ss;
7806 	struct percpu_ref refcnt;
7807 	struct list_head sibling;
7808 	struct list_head children;
7809 	struct list_head rstat_css_node;
7810 	int id;
7811 	unsigned int flags;
7812 	u64 serial_nr;
7813 	atomic_t online_cnt;
7814 	struct work_struct destroy_work;
7815 	struct rcu_work destroy_rwork;
7816 	struct cgroup_subsys_state *parent;
7817 };
7818 
7819 struct mem_cgroup_id {
7820 	int id;
7821 	refcount_t ref;
7822 };
7823 
7824 struct page_counter {
7825 	atomic_long_t usage;
7826 	long unsigned int min;
7827 	long unsigned int low;
7828 	long unsigned int high;
7829 	long unsigned int max;
7830 	long unsigned int emin;
7831 	atomic_long_t min_usage;
7832 	atomic_long_t children_min_usage;
7833 	long unsigned int elow;
7834 	atomic_long_t low_usage;
7835 	atomic_long_t children_low_usage;
7836 	long unsigned int watermark;
7837 	long unsigned int failcnt;
7838 	struct page_counter *parent;
7839 };
7840 
7841 struct vmpressure {
7842 	long unsigned int scanned;
7843 	long unsigned int reclaimed;
7844 	long unsigned int tree_scanned;
7845 	long unsigned int tree_reclaimed;
7846 	spinlock_t sr_lock;
7847 	struct list_head events;
7848 	struct mutex events_lock;
7849 	struct work_struct work;
7850 };
7851 
7852 struct cgroup_file {
7853 	struct kernfs_node *kn;
7854 	long unsigned int notified_at;
7855 	struct timer_list notify_timer;
7856 };
7857 
7858 struct mem_cgroup_threshold_ary;
7859 
7860 struct mem_cgroup_thresholds {
7861 	struct mem_cgroup_threshold_ary *primary;
7862 	struct mem_cgroup_threshold_ary *spare;
7863 };
7864 
7865 struct memcg_padding {
7866 	char x[0];
7867 };
7868 
7869 struct memcg_vmstats {
7870 	long int state[44];
7871 	long unsigned int events[105];
7872 	long int state_pending[44];
7873 	long unsigned int events_pending[105];
7874 };
7875 
7876 struct fprop_global {
7877 	struct percpu_counter events;
7878 	unsigned int period;
7879 	seqcount_t sequence;
7880 };
7881 
7882 struct wb_domain {
7883 	spinlock_t lock;
7884 	struct fprop_global completions;
7885 	struct timer_list period_timer;
7886 	long unsigned int period_time;
7887 	long unsigned int dirty_limit_tstamp;
7888 	long unsigned int dirty_limit;
7889 };
7890 
7891 struct wb_completion {
7892 	atomic_t cnt;
7893 	wait_queue_head_t *waitq;
7894 };
7895 
7896 struct memcg_cgwb_frn {
7897 	u64 bdi_id;
7898 	int memcg_id;
7899 	u64 at;
7900 	struct wb_completion done;
7901 };
7902 
7903 struct obj_cgroup;
7904 
7905 struct memcg_vmstats_percpu;
7906 
7907 struct mem_cgroup_per_node;
7908 
7909 struct mem_cgroup {
7910 	struct cgroup_subsys_state css;
7911 	struct mem_cgroup_id id;
7912 	struct page_counter memory;
7913 	union {
7914 		struct page_counter swap;
7915 		struct page_counter memsw;
7916 	};
7917 	struct page_counter kmem;
7918 	struct page_counter tcpmem;
7919 	struct work_struct high_work;
7920 	long unsigned int soft_limit;
7921 	struct vmpressure vmpressure;
7922 	bool oom_group;
7923 	bool oom_lock;
7924 	int under_oom;
7925 	int swappiness;
7926 	int oom_kill_disable;
7927 	struct cgroup_file events_file;
7928 	struct cgroup_file events_local_file;
7929 	struct cgroup_file swap_events_file;
7930 	struct mutex thresholds_lock;
7931 	struct mem_cgroup_thresholds thresholds;
7932 	struct mem_cgroup_thresholds memsw_thresholds;
7933 	struct list_head oom_notify;
7934 	long unsigned int move_charge_at_immigrate;
7935 	spinlock_t move_lock;
7936 	long unsigned int move_lock_flags;
7937 	long: 64;
7938 	struct memcg_padding _pad1_;
7939 	struct memcg_vmstats vmstats;
7940 	atomic_long_t memory_events[9];
7941 	atomic_long_t memory_events_local[9];
7942 	long unsigned int socket_pressure;
7943 	bool tcpmem_active;
7944 	int tcpmem_pressure;
7945 	int kmemcg_id;
7946 	struct obj_cgroup *objcg;
7947 	struct list_head objcg_list;
7948 	long: 64;
7949 	long: 64;
7950 	long: 64;
7951 	long: 64;
7952 	long: 64;
7953 	long: 64;
7954 	struct memcg_padding _pad2_;
7955 	atomic_t moving_account;
7956 	struct task_struct *move_lock_task;
7957 	struct memcg_vmstats_percpu *vmstats_percpu;
7958 	struct list_head cgwb_list;
7959 	struct wb_domain cgwb_domain;
7960 	struct memcg_cgwb_frn cgwb_frn[4];
7961 	struct list_head event_list;
7962 	spinlock_t event_list_lock;
7963 	struct deferred_split deferred_split_queue;
7964 	struct mem_cgroup_per_node *nodeinfo[0];
7965 	long: 64;
7966 	long: 64;
7967 };
7968 
7969 struct kmem_cache;
7970 
7971 struct fs_pin;
7972 
7973 struct pid_namespace {
7974 	struct idr idr;
7975 	struct callback_head rcu;
7976 	unsigned int pid_allocated;
7977 	struct task_struct *child_reaper;
7978 	struct kmem_cache *pid_cachep;
7979 	unsigned int level;
7980 	struct pid_namespace *parent;
7981 	struct fs_pin *bacct;
7982 	struct user_namespace *user_ns;
7983 	struct ucounts *ucounts;
7984 	int reboot;
7985 	struct ns_common ns;
7986 };
7987 
7988 struct ucounts {
7989 	struct hlist_node node;
7990 	struct user_namespace *ns;
7991 	kuid_t uid;
7992 	atomic_t count;
7993 	atomic_long_t ucount[14];
7994 };
7995 
7996 struct task_cputime {
7997 	u64 stime;
7998 	u64 utime;
7999 	long long unsigned int sum_exec_runtime;
8000 };
8001 
8002 struct uts_namespace;
8003 
8004 struct ipc_namespace;
8005 
8006 struct mnt_namespace;
8007 
8008 struct net;
8009 
8010 struct time_namespace;
8011 
8012 struct cgroup_namespace;
8013 
8014 struct nsproxy {
8015 	atomic_t count;
8016 	struct uts_namespace *uts_ns;
8017 	struct ipc_namespace *ipc_ns;
8018 	struct mnt_namespace *mnt_ns;
8019 	struct pid_namespace *pid_ns_for_children;
8020 	struct net *net_ns;
8021 	struct time_namespace *time_ns;
8022 	struct time_namespace *time_ns_for_children;
8023 	struct cgroup_namespace *cgroup_ns;
8024 };
8025 
8026 struct bio;
8027 
8028 struct bio_list {
8029 	struct bio *head;
8030 	struct bio *tail;
8031 };
8032 
8033 struct request;
8034 
8035 struct blk_plug {
8036 	struct request *mq_list;
8037 	struct request *cached_rq;
8038 	short unsigned int nr_ios;
8039 	short unsigned int rq_count;
8040 	bool multiple_queues;
8041 	bool has_elevator;
8042 	bool nowait;
8043 	struct list_head cb_list;
8044 };
8045 
8046 struct reclaim_state {
8047 	long unsigned int reclaimed_slab;
8048 };
8049 
8050 struct fprop_local_percpu {
8051 	struct percpu_counter events;
8052 	unsigned int period;
8053 	raw_spinlock_t lock;
8054 };
8055 
8056 enum wb_reason {
8057 	WB_REASON_BACKGROUND = 0,
8058 	WB_REASON_VMSCAN = 1,
8059 	WB_REASON_SYNC = 2,
8060 	WB_REASON_PERIODIC = 3,
8061 	WB_REASON_LAPTOP_TIMER = 4,
8062 	WB_REASON_FS_FREE_SPACE = 5,
8063 	WB_REASON_FORKER_THREAD = 6,
8064 	WB_REASON_FOREIGN_FLUSH = 7,
8065 	WB_REASON_MAX = 8,
8066 };
8067 
8068 struct bdi_writeback {
8069 	struct backing_dev_info *bdi;
8070 	long unsigned int state;
8071 	long unsigned int last_old_flush;
8072 	struct list_head b_dirty;
8073 	struct list_head b_io;
8074 	struct list_head b_more_io;
8075 	struct list_head b_dirty_time;
8076 	spinlock_t list_lock;
8077 	atomic_t writeback_inodes;
8078 	struct percpu_counter stat[4];
8079 	long unsigned int congested;
8080 	long unsigned int bw_time_stamp;
8081 	long unsigned int dirtied_stamp;
8082 	long unsigned int written_stamp;
8083 	long unsigned int write_bandwidth;
8084 	long unsigned int avg_write_bandwidth;
8085 	long unsigned int dirty_ratelimit;
8086 	long unsigned int balanced_dirty_ratelimit;
8087 	struct fprop_local_percpu completions;
8088 	int dirty_exceeded;
8089 	enum wb_reason start_all_reason;
8090 	spinlock_t work_lock;
8091 	struct list_head work_list;
8092 	struct delayed_work dwork;
8093 	struct delayed_work bw_dwork;
8094 	long unsigned int dirty_sleep;
8095 	struct list_head bdi_node;
8096 	struct percpu_ref refcnt;
8097 	struct fprop_local_percpu memcg_completions;
8098 	struct cgroup_subsys_state *memcg_css;
8099 	struct cgroup_subsys_state *blkcg_css;
8100 	struct list_head memcg_node;
8101 	struct list_head blkcg_node;
8102 	struct list_head b_attached;
8103 	struct list_head offline_node;
8104 	union {
8105 		struct work_struct release_work;
8106 		struct callback_head rcu;
8107 	};
8108 };
8109 
8110 struct backing_dev_info {
8111 	u64 id;
8112 	struct rb_node rb_node;
8113 	struct list_head bdi_list;
8114 	long unsigned int ra_pages;
8115 	long unsigned int io_pages;
8116 	struct kref refcnt;
8117 	unsigned int capabilities;
8118 	unsigned int min_ratio;
8119 	unsigned int max_ratio;
8120 	unsigned int max_prop_frac;
8121 	atomic_long_t tot_write_bandwidth;
8122 	struct bdi_writeback wb;
8123 	struct list_head wb_list;
8124 	struct xarray cgwb_tree;
8125 	struct mutex cgwb_release_mutex;
8126 	struct rw_semaphore wb_switch_rwsem;
8127 	wait_queue_head_t wb_waitq;
8128 	struct device *dev;
8129 	char dev_name[64];
8130 	struct device *owner;
8131 	struct timer_list laptop_mode_wb_timer;
8132 	struct dentry *debug_dir;
8133 };
8134 
8135 struct css_set {
8136 	struct cgroup_subsys_state *subsys[10];
8137 	refcount_t refcount;
8138 	struct css_set *dom_cset;
8139 	struct cgroup *dfl_cgrp;
8140 	int nr_tasks;
8141 	struct list_head tasks;
8142 	struct list_head mg_tasks;
8143 	struct list_head dying_tasks;
8144 	struct list_head task_iters;
8145 	struct list_head e_cset_node[10];
8146 	struct list_head threaded_csets;
8147 	struct list_head threaded_csets_node;
8148 	struct hlist_node hlist;
8149 	struct list_head cgrp_links;
8150 	struct list_head mg_preload_node;
8151 	struct list_head mg_node;
8152 	struct cgroup *mg_src_cgrp;
8153 	struct cgroup *mg_dst_cgrp;
8154 	struct css_set *mg_dst_cset;
8155 	bool dead;
8156 	struct callback_head callback_head;
8157 };
8158 
8159 struct perf_event_groups {
8160 	struct rb_root tree;
8161 	u64 index;
8162 };
8163 
8164 struct perf_event_context {
8165 	struct pmu *pmu;
8166 	raw_spinlock_t lock;
8167 	struct mutex mutex;
8168 	struct list_head active_ctx_list;
8169 	struct perf_event_groups pinned_groups;
8170 	struct perf_event_groups flexible_groups;
8171 	struct list_head event_list;
8172 	struct list_head pinned_active;
8173 	struct list_head flexible_active;
8174 	int nr_events;
8175 	int nr_active;
8176 	int nr_user;
8177 	int is_active;
8178 	int nr_stat;
8179 	int nr_freq;
8180 	int rotate_disable;
8181 	int rotate_necessary;
8182 	refcount_t refcount;
8183 	struct task_struct *task;
8184 	u64 time;
8185 	u64 timestamp;
8186 	struct perf_event_context *parent_ctx;
8187 	u64 parent_gen;
8188 	u64 generation;
8189 	int pin_count;
8190 	int nr_cgroups;
8191 	void *task_ctx_data;
8192 	struct callback_head callback_head;
8193 };
8194 
8195 struct task_delay_info {
8196 	raw_spinlock_t lock;
8197 	u64 blkio_start;
8198 	u64 blkio_delay;
8199 	u64 swapin_start;
8200 	u64 swapin_delay;
8201 	u32 blkio_count;
8202 	u32 swapin_count;
8203 	u64 freepages_start;
8204 	u64 freepages_delay;
8205 	u64 thrashing_start;
8206 	u64 thrashing_delay;
8207 	u64 compact_start;
8208 	u64 compact_delay;
8209 	u32 freepages_count;
8210 	u32 thrashing_count;
8211 	u32 compact_count;
8212 };
8213 
8214 struct ftrace_ret_stack {
8215 	long unsigned int ret;
8216 	long unsigned int func;
8217 	long long unsigned int calltime;
8218 	long unsigned int *retp;
8219 };
8220 
8221 enum blk_bounce {
8222 	BLK_BOUNCE_NONE = 0,
8223 	BLK_BOUNCE_HIGH = 1,
8224 };
8225 
8226 enum blk_zoned_model {
8227 	BLK_ZONED_NONE = 0,
8228 	BLK_ZONED_HA = 1,
8229 	BLK_ZONED_HM = 2,
8230 };
8231 
8232 struct queue_limits {
8233 	enum blk_bounce bounce;
8234 	long unsigned int seg_boundary_mask;
8235 	long unsigned int virt_boundary_mask;
8236 	unsigned int max_hw_sectors;
8237 	unsigned int max_dev_sectors;
8238 	unsigned int chunk_sectors;
8239 	unsigned int max_sectors;
8240 	unsigned int max_segment_size;
8241 	unsigned int physical_block_size;
8242 	unsigned int logical_block_size;
8243 	unsigned int alignment_offset;
8244 	unsigned int io_min;
8245 	unsigned int io_opt;
8246 	unsigned int max_discard_sectors;
8247 	unsigned int max_hw_discard_sectors;
8248 	unsigned int max_write_same_sectors;
8249 	unsigned int max_write_zeroes_sectors;
8250 	unsigned int max_zone_append_sectors;
8251 	unsigned int discard_granularity;
8252 	unsigned int discard_alignment;
8253 	unsigned int zone_write_granularity;
8254 	short unsigned int max_segments;
8255 	short unsigned int max_integrity_segments;
8256 	short unsigned int max_discard_segments;
8257 	unsigned char misaligned;
8258 	unsigned char discard_misaligned;
8259 	unsigned char raid_partial_stripes_expensive;
8260 	enum blk_zoned_model zoned;
8261 };
8262 
8263 typedef void *mempool_alloc_t(gfp_t, void *);
8264 
8265 typedef void mempool_free_t(void *, void *);
8266 
8267 struct mempool_s {
8268 	spinlock_t lock;
8269 	int min_nr;
8270 	int curr_nr;
8271 	void **elements;
8272 	void *pool_data;
8273 	mempool_alloc_t *alloc;
8274 	mempool_free_t *free;
8275 	wait_queue_head_t wait;
8276 };
8277 
8278 typedef struct mempool_s mempool_t;
8279 
8280 struct bio_alloc_cache;
8281 
8282 struct bio_set {
8283 	struct kmem_cache *bio_slab;
8284 	unsigned int front_pad;
8285 	struct bio_alloc_cache *cache;
8286 	mempool_t bio_pool;
8287 	mempool_t bvec_pool;
8288 	unsigned int back_pad;
8289 	spinlock_t rescue_lock;
8290 	struct bio_list rescue_list;
8291 	struct work_struct rescue_work;
8292 	struct workqueue_struct *rescue_workqueue;
8293 	struct hlist_node cpuhp_dead;
8294 };
8295 
8296 struct elevator_queue;
8297 
8298 struct blk_queue_stats;
8299 
8300 struct rq_qos;
8301 
8302 struct blk_mq_ops;
8303 
8304 struct blk_mq_ctx;
8305 
8306 struct blk_mq_hw_ctx;
8307 
8308 struct gendisk;
8309 
8310 struct blk_stat_callback;
8311 
8312 struct blk_rq_stat;
8313 
8314 struct blk_mq_tags;
8315 
8316 struct blkcg_gq;
8317 
8318 struct blk_trace;
8319 
8320 struct blk_flush_queue;
8321 
8322 struct throtl_data;
8323 
8324 struct blk_mq_tag_set;
8325 
8326 struct blk_independent_access_ranges;
8327 
8328 struct request_queue {
8329 	struct request *last_merge;
8330 	struct elevator_queue *elevator;
8331 	struct percpu_ref q_usage_counter;
8332 	struct blk_queue_stats *stats;
8333 	struct rq_qos *rq_qos;
8334 	const struct blk_mq_ops *mq_ops;
8335 	struct blk_mq_ctx *queue_ctx;
8336 	unsigned int queue_depth;
8337 	struct blk_mq_hw_ctx **queue_hw_ctx;
8338 	unsigned int nr_hw_queues;
8339 	void *queuedata;
8340 	long unsigned int queue_flags;
8341 	atomic_t pm_only;
8342 	int id;
8343 	spinlock_t queue_lock;
8344 	struct gendisk *disk;
8345 	struct kobject kobj;
8346 	struct kobject *mq_kobj;
8347 	long unsigned int nr_requests;
8348 	unsigned int dma_pad_mask;
8349 	unsigned int dma_alignment;
8350 	unsigned int rq_timeout;
8351 	int poll_nsec;
8352 	struct blk_stat_callback *poll_cb;
8353 	struct blk_rq_stat *poll_stat;
8354 	struct timer_list timeout;
8355 	struct work_struct timeout_work;
8356 	atomic_t nr_active_requests_shared_tags;
8357 	struct blk_mq_tags *sched_shared_tags;
8358 	struct list_head icq_list;
8359 	long unsigned int blkcg_pols[1];
8360 	struct blkcg_gq *root_blkg;
8361 	struct list_head blkg_list;
8362 	struct queue_limits limits;
8363 	unsigned int required_elevator_features;
8364 	int node;
8365 	struct mutex debugfs_mutex;
8366 	struct blk_trace *blk_trace;
8367 	struct blk_flush_queue *fq;
8368 	struct list_head requeue_list;
8369 	spinlock_t requeue_lock;
8370 	struct delayed_work requeue_work;
8371 	struct mutex sysfs_lock;
8372 	struct mutex sysfs_dir_lock;
8373 	struct list_head unused_hctx_list;
8374 	spinlock_t unused_hctx_lock;
8375 	int mq_freeze_depth;
8376 	struct throtl_data *td;
8377 	struct callback_head callback_head;
8378 	wait_queue_head_t mq_freeze_wq;
8379 	struct mutex mq_freeze_lock;
8380 	int quiesce_depth;
8381 	struct blk_mq_tag_set *tag_set;
8382 	struct list_head tag_set_list;
8383 	struct bio_set bio_split;
8384 	struct dentry *debugfs_dir;
8385 	struct dentry *sched_debugfs_dir;
8386 	struct dentry *rqos_debugfs_dir;
8387 	bool mq_sysfs_init_done;
8388 	u64 write_hints[5];
8389 	struct blk_independent_access_ranges *ia_ranges;
8390 	struct srcu_struct srcu[0];
8391 };
8392 
8393 struct cgroup_base_stat {
8394 	struct task_cputime cputime;
8395 };
8396 
8397 struct psi_group {};
8398 
8399 struct cgroup_bpf {
8400 	struct bpf_prog_array *effective[23];
8401 	struct list_head progs[23];
8402 	u32 flags[23];
8403 	struct list_head storages;
8404 	struct bpf_prog_array *inactive;
8405 	struct percpu_ref refcnt;
8406 	struct work_struct release_work;
8407 };
8408 
8409 struct cgroup_freezer_state {
8410 	bool freeze;
8411 	int e_freeze;
8412 	int nr_frozen_descendants;
8413 	int nr_frozen_tasks;
8414 };
8415 
8416 struct cgroup_root;
8417 
8418 struct cgroup_rstat_cpu;
8419 
8420 struct cgroup {
8421 	struct cgroup_subsys_state self;
8422 	long unsigned int flags;
8423 	int level;
8424 	int max_depth;
8425 	int nr_descendants;
8426 	int nr_dying_descendants;
8427 	int max_descendants;
8428 	int nr_populated_csets;
8429 	int nr_populated_domain_children;
8430 	int nr_populated_threaded_children;
8431 	int nr_threaded_children;
8432 	struct kernfs_node *kn;
8433 	struct cgroup_file procs_file;
8434 	struct cgroup_file events_file;
8435 	u16 subtree_control;
8436 	u16 subtree_ss_mask;
8437 	u16 old_subtree_control;
8438 	u16 old_subtree_ss_mask;
8439 	struct cgroup_subsys_state *subsys[10];
8440 	struct cgroup_root *root;
8441 	struct list_head cset_links;
8442 	struct list_head e_csets[10];
8443 	struct cgroup *dom_cgrp;
8444 	struct cgroup *old_dom_cgrp;
8445 	struct cgroup_rstat_cpu *rstat_cpu;
8446 	struct list_head rstat_css_list;
8447 	struct cgroup_base_stat last_bstat;
8448 	struct cgroup_base_stat bstat;
8449 	struct prev_cputime prev_cputime;
8450 	struct list_head pidlists;
8451 	struct mutex pidlist_mutex;
8452 	wait_queue_head_t offline_waitq;
8453 	struct work_struct release_agent_work;
8454 	struct psi_group psi;
8455 	struct cgroup_bpf bpf;
8456 	atomic_t congestion_count;
8457 	struct cgroup_freezer_state freezer;
8458 	u64 ancestor_ids[0];
8459 };
8460 
8461 struct taskstats {
8462 	__u16 version;
8463 	__u32 ac_exitcode;
8464 	__u8 ac_flag;
8465 	__u8 ac_nice;
8466 	__u64 cpu_count;
8467 	__u64 cpu_delay_total;
8468 	__u64 blkio_count;
8469 	__u64 blkio_delay_total;
8470 	__u64 swapin_count;
8471 	__u64 swapin_delay_total;
8472 	__u64 cpu_run_real_total;
8473 	__u64 cpu_run_virtual_total;
8474 	char ac_comm[32];
8475 	__u8 ac_sched;
8476 	__u8 ac_pad[3];
8477 	int: 32;
8478 	__u32 ac_uid;
8479 	__u32 ac_gid;
8480 	__u32 ac_pid;
8481 	__u32 ac_ppid;
8482 	__u32 ac_btime;
8483 	__u64 ac_etime;
8484 	__u64 ac_utime;
8485 	__u64 ac_stime;
8486 	__u64 ac_minflt;
8487 	__u64 ac_majflt;
8488 	__u64 coremem;
8489 	__u64 virtmem;
8490 	__u64 hiwater_rss;
8491 	__u64 hiwater_vm;
8492 	__u64 read_char;
8493 	__u64 write_char;
8494 	__u64 read_syscalls;
8495 	__u64 write_syscalls;
8496 	__u64 read_bytes;
8497 	__u64 write_bytes;
8498 	__u64 cancelled_write_bytes;
8499 	__u64 nvcsw;
8500 	__u64 nivcsw;
8501 	__u64 ac_utimescaled;
8502 	__u64 ac_stimescaled;
8503 	__u64 cpu_scaled_run_real_total;
8504 	__u64 freepages_count;
8505 	__u64 freepages_delay_total;
8506 	__u64 thrashing_count;
8507 	__u64 thrashing_delay_total;
8508 	__u64 ac_btime64;
8509 	__u64 compact_count;
8510 	__u64 compact_delay_total;
8511 };
8512 
8513 struct wait_page_queue {
8514 	struct folio *folio;
8515 	int bit_nr;
8516 	wait_queue_entry_t wait;
8517 };
8518 
8519 enum writeback_sync_modes {
8520 	WB_SYNC_NONE = 0,
8521 	WB_SYNC_ALL = 1,
8522 };
8523 
8524 struct writeback_control {
8525 	long int nr_to_write;
8526 	long int pages_skipped;
8527 	loff_t range_start;
8528 	loff_t range_end;
8529 	enum writeback_sync_modes sync_mode;
8530 	unsigned int for_kupdate: 1;
8531 	unsigned int for_background: 1;
8532 	unsigned int tagged_writepages: 1;
8533 	unsigned int for_reclaim: 1;
8534 	unsigned int range_cyclic: 1;
8535 	unsigned int for_sync: 1;
8536 	unsigned int unpinned_fscache_wb: 1;
8537 	unsigned int no_cgroup_owner: 1;
8538 	unsigned int punt_to_cgroup: 1;
8539 	struct bdi_writeback *wb;
8540 	struct inode *inode;
8541 	int wb_id;
8542 	int wb_lcand_id;
8543 	int wb_tcand_id;
8544 	size_t wb_bytes;
8545 	size_t wb_lcand_bytes;
8546 	size_t wb_tcand_bytes;
8547 };
8548 
8549 struct readahead_control {
8550 	struct file *file;
8551 	struct address_space *mapping;
8552 	struct file_ra_state *ra;
8553 	long unsigned int _index;
8554 	unsigned int _nr_pages;
8555 	unsigned int _batch_count;
8556 };
8557 
8558 struct iovec;
8559 
8560 struct kvec;
8561 
8562 struct bio_vec;
8563 
8564 struct iov_iter {
8565 	u8 iter_type;
8566 	bool nofault;
8567 	bool data_source;
8568 	size_t iov_offset;
8569 	size_t count;
8570 	union {
8571 		const struct iovec *iov;
8572 		const struct kvec *kvec;
8573 		const struct bio_vec *bvec;
8574 		struct xarray *xarray;
8575 		struct pipe_inode_info *pipe;
8576 	};
8577 	union {
8578 		long unsigned int nr_segs;
8579 		struct {
8580 			unsigned int head;
8581 			unsigned int start_head;
8582 		};
8583 		loff_t xarray_start;
8584 	};
8585 };
8586 
8587 struct swap_cluster_info {
8588 	spinlock_t lock;
8589 	unsigned int data: 24;
8590 	unsigned int flags: 8;
8591 };
8592 
8593 struct swap_cluster_list {
8594 	struct swap_cluster_info head;
8595 	struct swap_cluster_info tail;
8596 };
8597 
8598 struct percpu_cluster;
8599 
8600 struct swap_info_struct {
8601 	struct percpu_ref users;
8602 	long unsigned int flags;
8603 	short int prio;
8604 	struct plist_node list;
8605 	signed char type;
8606 	unsigned int max;
8607 	unsigned char *swap_map;
8608 	struct swap_cluster_info *cluster_info;
8609 	struct swap_cluster_list free_clusters;
8610 	unsigned int lowest_bit;
8611 	unsigned int highest_bit;
8612 	unsigned int pages;
8613 	unsigned int inuse_pages;
8614 	unsigned int cluster_next;
8615 	unsigned int cluster_nr;
8616 	unsigned int *cluster_next_cpu;
8617 	struct percpu_cluster *percpu_cluster;
8618 	struct rb_root swap_extent_root;
8619 	struct block_device *bdev;
8620 	struct file *swap_file;
8621 	unsigned int old_block_size;
8622 	struct completion comp;
8623 	spinlock_t lock;
8624 	spinlock_t cont_lock;
8625 	struct work_struct discard_work;
8626 	struct swap_cluster_list discard_clusters;
8627 	struct plist_node avail_lists[0];
8628 };
8629 
8630 struct cdev {
8631 	struct kobject kobj;
8632 	struct module *owner;
8633 	const struct file_operations *ops;
8634 	struct list_head list;
8635 	dev_t dev;
8636 	unsigned int count;
8637 };
8638 
8639 struct disk_stats;
8640 
8641 struct partition_meta_info;
8642 
8643 struct block_device {
8644 	sector_t bd_start_sect;
8645 	sector_t bd_nr_sectors;
8646 	struct disk_stats *bd_stats;
8647 	long unsigned int bd_stamp;
8648 	bool bd_read_only;
8649 	dev_t bd_dev;
8650 	int bd_openers;
8651 	struct inode *bd_inode;
8652 	struct super_block *bd_super;
8653 	void *bd_claiming;
8654 	struct device bd_device;
8655 	void *bd_holder;
8656 	int bd_holders;
8657 	bool bd_write_holder;
8658 	struct kobject *bd_holder_dir;
8659 	u8 bd_partno;
8660 	spinlock_t bd_size_lock;
8661 	struct gendisk *bd_disk;
8662 	struct request_queue *bd_queue;
8663 	int bd_fsfreeze_count;
8664 	struct mutex bd_fsfreeze_mutex;
8665 	struct super_block *bd_fsfreeze_sb;
8666 	struct partition_meta_info *bd_meta_info;
8667 };
8668 
8669 struct io_comp_batch {
8670 	struct request *req_list;
8671 	bool need_ts;
8672 	void (*complete)(struct io_comp_batch *);
8673 };
8674 
8675 struct fc_log;
8676 
8677 struct p_log {
8678 	const char *prefix;
8679 	struct fc_log *log;
8680 };
8681 
8682 enum fs_context_purpose {
8683 	FS_CONTEXT_FOR_MOUNT = 0,
8684 	FS_CONTEXT_FOR_SUBMOUNT = 1,
8685 	FS_CONTEXT_FOR_RECONFIGURE = 2,
8686 };
8687 
8688 enum fs_context_phase {
8689 	FS_CONTEXT_CREATE_PARAMS = 0,
8690 	FS_CONTEXT_CREATING = 1,
8691 	FS_CONTEXT_AWAITING_MOUNT = 2,
8692 	FS_CONTEXT_AWAITING_RECONF = 3,
8693 	FS_CONTEXT_RECONF_PARAMS = 4,
8694 	FS_CONTEXT_RECONFIGURING = 5,
8695 	FS_CONTEXT_FAILED = 6,
8696 };
8697 
8698 struct fs_context_operations;
8699 
8700 struct fs_context {
8701 	const struct fs_context_operations *ops;
8702 	struct mutex uapi_mutex;
8703 	struct file_system_type *fs_type;
8704 	void *fs_private;
8705 	void *sget_key;
8706 	struct dentry *root;
8707 	struct user_namespace *user_ns;
8708 	struct net *net_ns;
8709 	const struct cred *cred;
8710 	struct p_log log;
8711 	const char *source;
8712 	void *security;
8713 	void *s_fs_info;
8714 	unsigned int sb_flags;
8715 	unsigned int sb_flags_mask;
8716 	unsigned int s_iflags;
8717 	unsigned int lsm_flags;
8718 	enum fs_context_purpose purpose: 8;
8719 	enum fs_context_phase phase: 8;
8720 	bool need_free: 1;
8721 	bool global: 1;
8722 	bool oldapi: 1;
8723 };
8724 
8725 struct audit_names;
8726 
8727 struct filename {
8728 	const char *name;
8729 	const char *uptr;
8730 	int refcnt;
8731 	struct audit_names *aname;
8732 	const char iname[0];
8733 };
8734 
8735 typedef u8 blk_status_t;
8736 
8737 struct bvec_iter {
8738 	sector_t bi_sector;
8739 	unsigned int bi_size;
8740 	unsigned int bi_idx;
8741 	unsigned int bi_bvec_done;
8742 } __attribute__((packed));
8743 
8744 typedef unsigned int blk_qc_t;
8745 
8746 typedef void bio_end_io_t(struct bio *);
8747 
8748 struct bio_issue {
8749 	u64 value;
8750 };
8751 
8752 struct bio_vec {
8753 	struct page *bv_page;
8754 	unsigned int bv_len;
8755 	unsigned int bv_offset;
8756 };
8757 
8758 struct bio {
8759 	struct bio *bi_next;
8760 	struct block_device *bi_bdev;
8761 	unsigned int bi_opf;
8762 	short unsigned int bi_flags;
8763 	short unsigned int bi_ioprio;
8764 	short unsigned int bi_write_hint;
8765 	blk_status_t bi_status;
8766 	atomic_t __bi_remaining;
8767 	struct bvec_iter bi_iter;
8768 	blk_qc_t bi_cookie;
8769 	bio_end_io_t *bi_end_io;
8770 	void *bi_private;
8771 	struct blkcg_gq *bi_blkg;
8772 	struct bio_issue bi_issue;
8773 	union {	};
8774 	short unsigned int bi_vcnt;
8775 	short unsigned int bi_max_vecs;
8776 	atomic_t __bi_cnt;
8777 	struct bio_vec *bi_io_vec;
8778 	struct bio_set *bi_pool;
8779 	struct bio_vec bi_inline_vecs[0];
8780 };
8781 
8782 struct linux_binprm {
8783 	struct vm_area_struct *vma;
8784 	long unsigned int vma_pages;
8785 	struct mm_struct *mm;
8786 	long unsigned int p;
8787 	long unsigned int argmin;
8788 	unsigned int have_execfd: 1;
8789 	unsigned int execfd_creds: 1;
8790 	unsigned int secureexec: 1;
8791 	unsigned int point_of_no_return: 1;
8792 	struct file *executable;
8793 	struct file *interpreter;
8794 	struct file *file;
8795 	struct cred *cred;
8796 	int unsafe;
8797 	unsigned int per_clear;
8798 	int argc;
8799 	int envc;
8800 	const char *filename;
8801 	const char *interp;
8802 	const char *fdpath;
8803 	unsigned int interp_flags;
8804 	int execfd;
8805 	long unsigned int loader;
8806 	long unsigned int exec;
8807 	struct rlimit rlim_stack;
8808 	char buf[256];
8809 };
8810 
8811 struct coredump_params {
8812 	const kernel_siginfo_t *siginfo;
8813 	struct pt_regs *regs;
8814 	struct file *file;
8815 	long unsigned int limit;
8816 	long unsigned int mm_flags;
8817 	loff_t written;
8818 	loff_t pos;
8819 	loff_t to_skip;
8820 };
8821 
8822 typedef u32 phandle;
8823 
8824 struct property;
8825 
8826 struct device_node {
8827 	const char *name;
8828 	phandle phandle;
8829 	const char *full_name;
8830 	struct fwnode_handle fwnode;
8831 	struct property *properties;
8832 	struct property *deadprops;
8833 	struct device_node *parent;
8834 	struct device_node *child;
8835 	struct device_node *sibling;
8836 	long unsigned int _flags;
8837 	void *data;
8838 };
8839 
8840 enum cpuhp_state {
8841 	CPUHP_INVALID = 4294967295,
8842 	CPUHP_OFFLINE = 0,
8843 	CPUHP_CREATE_THREADS = 1,
8844 	CPUHP_PERF_PREPARE = 2,
8845 	CPUHP_PERF_X86_PREPARE = 3,
8846 	CPUHP_PERF_X86_AMD_UNCORE_PREP = 4,
8847 	CPUHP_PERF_POWER = 5,
8848 	CPUHP_PERF_SUPERH = 6,
8849 	CPUHP_X86_HPET_DEAD = 7,
8850 	CPUHP_X86_APB_DEAD = 8,
8851 	CPUHP_X86_MCE_DEAD = 9,
8852 	CPUHP_VIRT_NET_DEAD = 10,
8853 	CPUHP_SLUB_DEAD = 11,
8854 	CPUHP_DEBUG_OBJ_DEAD = 12,
8855 	CPUHP_MM_WRITEBACK_DEAD = 13,
8856 	CPUHP_MM_DEMOTION_DEAD = 14,
8857 	CPUHP_MM_VMSTAT_DEAD = 15,
8858 	CPUHP_SOFTIRQ_DEAD = 16,
8859 	CPUHP_NET_MVNETA_DEAD = 17,
8860 	CPUHP_CPUIDLE_DEAD = 18,
8861 	CPUHP_ARM64_FPSIMD_DEAD = 19,
8862 	CPUHP_ARM_OMAP_WAKE_DEAD = 20,
8863 	CPUHP_IRQ_POLL_DEAD = 21,
8864 	CPUHP_BLOCK_SOFTIRQ_DEAD = 22,
8865 	CPUHP_BIO_DEAD = 23,
8866 	CPUHP_ACPI_CPUDRV_DEAD = 24,
8867 	CPUHP_S390_PFAULT_DEAD = 25,
8868 	CPUHP_BLK_MQ_DEAD = 26,
8869 	CPUHP_FS_BUFF_DEAD = 27,
8870 	CPUHP_PRINTK_DEAD = 28,
8871 	CPUHP_MM_MEMCQ_DEAD = 29,
8872 	CPUHP_XFS_DEAD = 30,
8873 	CPUHP_PERCPU_CNT_DEAD = 31,
8874 	CPUHP_RADIX_DEAD = 32,
8875 	CPUHP_PAGE_ALLOC = 33,
8876 	CPUHP_NET_DEV_DEAD = 34,
8877 	CPUHP_PCI_XGENE_DEAD = 35,
8878 	CPUHP_IOMMU_IOVA_DEAD = 36,
8879 	CPUHP_LUSTRE_CFS_DEAD = 37,
8880 	CPUHP_AP_ARM_CACHE_B15_RAC_DEAD = 38,
8881 	CPUHP_PADATA_DEAD = 39,
8882 	CPUHP_AP_DTPM_CPU_DEAD = 40,
8883 	CPUHP_WORKQUEUE_PREP = 41,
8884 	CPUHP_POWER_NUMA_PREPARE = 42,
8885 	CPUHP_HRTIMERS_PREPARE = 43,
8886 	CPUHP_PROFILE_PREPARE = 44,
8887 	CPUHP_X2APIC_PREPARE = 45,
8888 	CPUHP_SMPCFD_PREPARE = 46,
8889 	CPUHP_RELAY_PREPARE = 47,
8890 	CPUHP_SLAB_PREPARE = 48,
8891 	CPUHP_MD_RAID5_PREPARE = 49,
8892 	CPUHP_RCUTREE_PREP = 50,
8893 	CPUHP_CPUIDLE_COUPLED_PREPARE = 51,
8894 	CPUHP_POWERPC_PMAC_PREPARE = 52,
8895 	CPUHP_POWERPC_MMU_CTX_PREPARE = 53,
8896 	CPUHP_XEN_PREPARE = 54,
8897 	CPUHP_XEN_EVTCHN_PREPARE = 55,
8898 	CPUHP_ARM_SHMOBILE_SCU_PREPARE = 56,
8899 	CPUHP_SH_SH3X_PREPARE = 57,
8900 	CPUHP_NET_FLOW_PREPARE = 58,
8901 	CPUHP_TOPOLOGY_PREPARE = 59,
8902 	CPUHP_NET_IUCV_PREPARE = 60,
8903 	CPUHP_ARM_BL_PREPARE = 61,
8904 	CPUHP_TRACE_RB_PREPARE = 62,
8905 	CPUHP_MM_ZS_PREPARE = 63,
8906 	CPUHP_MM_ZSWP_MEM_PREPARE = 64,
8907 	CPUHP_MM_ZSWP_POOL_PREPARE = 65,
8908 	CPUHP_KVM_PPC_BOOK3S_PREPARE = 66,
8909 	CPUHP_ZCOMP_PREPARE = 67,
8910 	CPUHP_TIMERS_PREPARE = 68,
8911 	CPUHP_MIPS_SOC_PREPARE = 69,
8912 	CPUHP_BP_PREPARE_DYN = 70,
8913 	CPUHP_BP_PREPARE_DYN_END = 90,
8914 	CPUHP_BRINGUP_CPU = 91,
8915 	CPUHP_AP_IDLE_DEAD = 92,
8916 	CPUHP_AP_OFFLINE = 93,
8917 	CPUHP_AP_SCHED_STARTING = 94,
8918 	CPUHP_AP_RCUTREE_DYING = 95,
8919 	CPUHP_AP_CPU_PM_STARTING = 96,
8920 	CPUHP_AP_IRQ_GIC_STARTING = 97,
8921 	CPUHP_AP_IRQ_HIP04_STARTING = 98,
8922 	CPUHP_AP_IRQ_APPLE_AIC_STARTING = 99,
8923 	CPUHP_AP_IRQ_ARMADA_XP_STARTING = 100,
8924 	CPUHP_AP_IRQ_BCM2836_STARTING = 101,
8925 	CPUHP_AP_IRQ_MIPS_GIC_STARTING = 102,
8926 	CPUHP_AP_IRQ_RISCV_STARTING = 103,
8927 	CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING = 104,
8928 	CPUHP_AP_ARM_MVEBU_COHERENCY = 105,
8929 	CPUHP_AP_MICROCODE_LOADER = 106,
8930 	CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING = 107,
8931 	CPUHP_AP_PERF_X86_STARTING = 108,
8932 	CPUHP_AP_PERF_X86_AMD_IBS_STARTING = 109,
8933 	CPUHP_AP_PERF_X86_CQM_STARTING = 110,
8934 	CPUHP_AP_PERF_X86_CSTATE_STARTING = 111,
8935 	CPUHP_AP_PERF_XTENSA_STARTING = 112,
8936 	CPUHP_AP_MIPS_OP_LOONGSON3_STARTING = 113,
8937 	CPUHP_AP_ARM_SDEI_STARTING = 114,
8938 	CPUHP_AP_ARM_VFP_STARTING = 115,
8939 	CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING = 116,
8940 	CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING = 117,
8941 	CPUHP_AP_PERF_ARM_ACPI_STARTING = 118,
8942 	CPUHP_AP_PERF_ARM_STARTING = 119,
8943 	CPUHP_AP_ARM_L2X0_STARTING = 120,
8944 	CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING = 121,
8945 	CPUHP_AP_ARM_ARCH_TIMER_STARTING = 122,
8946 	CPUHP_AP_ARM_GLOBAL_TIMER_STARTING = 123,
8947 	CPUHP_AP_JCORE_TIMER_STARTING = 124,
8948 	CPUHP_AP_ARM_TWD_STARTING = 125,
8949 	CPUHP_AP_QCOM_TIMER_STARTING = 126,
8950 	CPUHP_AP_TEGRA_TIMER_STARTING = 127,
8951 	CPUHP_AP_ARMADA_TIMER_STARTING = 128,
8952 	CPUHP_AP_MARCO_TIMER_STARTING = 129,
8953 	CPUHP_AP_MIPS_GIC_TIMER_STARTING = 130,
8954 	CPUHP_AP_ARC_TIMER_STARTING = 131,
8955 	CPUHP_AP_RISCV_TIMER_STARTING = 132,
8956 	CPUHP_AP_CLINT_TIMER_STARTING = 133,
8957 	CPUHP_AP_CSKY_TIMER_STARTING = 134,
8958 	CPUHP_AP_TI_GP_TIMER_STARTING = 135,
8959 	CPUHP_AP_HYPERV_TIMER_STARTING = 136,
8960 	CPUHP_AP_KVM_STARTING = 137,
8961 	CPUHP_AP_KVM_ARM_VGIC_INIT_STARTING = 138,
8962 	CPUHP_AP_KVM_ARM_VGIC_STARTING = 139,
8963 	CPUHP_AP_KVM_ARM_TIMER_STARTING = 140,
8964 	CPUHP_AP_DUMMY_TIMER_STARTING = 141,
8965 	CPUHP_AP_ARM_XEN_STARTING = 142,
8966 	CPUHP_AP_ARM_CORESIGHT_STARTING = 143,
8967 	CPUHP_AP_ARM_CORESIGHT_CTI_STARTING = 144,
8968 	CPUHP_AP_ARM64_ISNDEP_STARTING = 145,
8969 	CPUHP_AP_SMPCFD_DYING = 146,
8970 	CPUHP_AP_X86_TBOOT_DYING = 147,
8971 	CPUHP_AP_ARM_CACHE_B15_RAC_DYING = 148,
8972 	CPUHP_AP_ONLINE = 149,
8973 	CPUHP_TEARDOWN_CPU = 150,
8974 	CPUHP_AP_ONLINE_IDLE = 151,
8975 	CPUHP_AP_SCHED_WAIT_EMPTY = 152,
8976 	CPUHP_AP_SMPBOOT_THREADS = 153,
8977 	CPUHP_AP_X86_VDSO_VMA_ONLINE = 154,
8978 	CPUHP_AP_IRQ_AFFINITY_ONLINE = 155,
8979 	CPUHP_AP_BLK_MQ_ONLINE = 156,
8980 	CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 157,
8981 	CPUHP_AP_X86_INTEL_EPB_ONLINE = 158,
8982 	CPUHP_AP_PERF_ONLINE = 159,
8983 	CPUHP_AP_PERF_X86_ONLINE = 160,
8984 	CPUHP_AP_PERF_X86_UNCORE_ONLINE = 161,
8985 	CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 162,
8986 	CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 163,
8987 	CPUHP_AP_PERF_X86_RAPL_ONLINE = 164,
8988 	CPUHP_AP_PERF_X86_CQM_ONLINE = 165,
8989 	CPUHP_AP_PERF_X86_CSTATE_ONLINE = 166,
8990 	CPUHP_AP_PERF_X86_IDXD_ONLINE = 167,
8991 	CPUHP_AP_PERF_S390_CF_ONLINE = 168,
8992 	CPUHP_AP_PERF_S390_SF_ONLINE = 169,
8993 	CPUHP_AP_PERF_ARM_CCI_ONLINE = 170,
8994 	CPUHP_AP_PERF_ARM_CCN_ONLINE = 171,
8995 	CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE = 172,
8996 	CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE = 173,
8997 	CPUHP_AP_PERF_ARM_HISI_L3_ONLINE = 174,
8998 	CPUHP_AP_PERF_ARM_HISI_PA_ONLINE = 175,
8999 	CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE = 176,
9000 	CPUHP_AP_PERF_ARM_HISI_PCIE_PMU_ONLINE = 177,
9001 	CPUHP_AP_PERF_ARM_L2X0_ONLINE = 178,
9002 	CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE = 179,
9003 	CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE = 180,
9004 	CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE = 181,
9005 	CPUHP_AP_PERF_ARM_CAVIUM_TX2_UNCORE_ONLINE = 182,
9006 	CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE = 183,
9007 	CPUHP_AP_PERF_POWERPC_CORE_IMC_ONLINE = 184,
9008 	CPUHP_AP_PERF_POWERPC_THREAD_IMC_ONLINE = 185,
9009 	CPUHP_AP_PERF_POWERPC_TRACE_IMC_ONLINE = 186,
9010 	CPUHP_AP_PERF_POWERPC_HV_24x7_ONLINE = 187,
9011 	CPUHP_AP_PERF_POWERPC_HV_GPCI_ONLINE = 188,
9012 	CPUHP_AP_PERF_CSKY_ONLINE = 189,
9013 	CPUHP_AP_WATCHDOG_ONLINE = 190,
9014 	CPUHP_AP_WORKQUEUE_ONLINE = 191,
9015 	CPUHP_AP_RCUTREE_ONLINE = 192,
9016 	CPUHP_AP_BASE_CACHEINFO_ONLINE = 193,
9017 	CPUHP_AP_ONLINE_DYN = 194,
9018 	CPUHP_AP_ONLINE_DYN_END = 224,
9019 	CPUHP_AP_MM_DEMOTION_ONLINE = 225,
9020 	CPUHP_AP_X86_HPET_ONLINE = 226,
9021 	CPUHP_AP_X86_KVM_CLK_ONLINE = 227,
9022 	CPUHP_AP_ACTIVE = 228,
9023 	CPUHP_ONLINE = 229,
9024 };
9025 
9026 struct ring_buffer_event {
9027 	u32 type_len: 5;
9028 	u32 time_delta: 27;
9029 	u32 array[0];
9030 };
9031 
9032 struct seq_buf {
9033 	char *buffer;
9034 	size_t size;
9035 	size_t len;
9036 	loff_t readpos;
9037 };
9038 
9039 struct trace_seq {
9040 	char buffer[4096];
9041 	struct seq_buf seq;
9042 	int full;
9043 };
9044 
9045 typedef struct {
9046 	u16 __softirq_pending;
9047 	unsigned int __nmi_count;
9048 	unsigned int apic_timer_irqs;
9049 	unsigned int irq_spurious_count;
9050 	unsigned int icr_read_retry_count;
9051 	unsigned int kvm_posted_intr_ipis;
9052 	unsigned int kvm_posted_intr_wakeup_ipis;
9053 	unsigned int kvm_posted_intr_nested_ipis;
9054 	unsigned int x86_platform_ipis;
9055 	unsigned int apic_perf_irqs;
9056 	unsigned int apic_irq_work_irqs;
9057 	unsigned int irq_resched_count;
9058 	unsigned int irq_call_count;
9059 	unsigned int irq_tlb_count;
9060 	unsigned int irq_thermal_count;
9061 	unsigned int irq_threshold_count;
9062 	unsigned int irq_deferred_error_count;
9063 	long: 32;
9064 	long: 64;
9065 	long: 64;
9066 	long: 64;
9067 	long: 64;
9068 	long: 64;
9069 	long: 64;
9070 	long: 64;
9071 } irq_cpustat_t;
9072 
9073 enum perf_sw_ids {
9074 	PERF_COUNT_SW_CPU_CLOCK = 0,
9075 	PERF_COUNT_SW_TASK_CLOCK = 1,
9076 	PERF_COUNT_SW_PAGE_FAULTS = 2,
9077 	PERF_COUNT_SW_CONTEXT_SWITCHES = 3,
9078 	PERF_COUNT_SW_CPU_MIGRATIONS = 4,
9079 	PERF_COUNT_SW_PAGE_FAULTS_MIN = 5,
9080 	PERF_COUNT_SW_PAGE_FAULTS_MAJ = 6,
9081 	PERF_COUNT_SW_ALIGNMENT_FAULTS = 7,
9082 	PERF_COUNT_SW_EMULATION_FAULTS = 8,
9083 	PERF_COUNT_SW_DUMMY = 9,
9084 	PERF_COUNT_SW_BPF_OUTPUT = 10,
9085 	PERF_COUNT_SW_CGROUP_SWITCHES = 11,
9086 	PERF_COUNT_SW_MAX = 12,
9087 };
9088 
9089 union perf_mem_data_src {
9090 	__u64 val;
9091 	struct {
9092 		__u64 mem_op: 5;
9093 		__u64 mem_lvl: 14;
9094 		__u64 mem_snoop: 5;
9095 		__u64 mem_lock: 2;
9096 		__u64 mem_dtlb: 7;
9097 		__u64 mem_lvl_num: 4;
9098 		__u64 mem_remote: 1;
9099 		__u64 mem_snoopx: 2;
9100 		__u64 mem_blk: 3;
9101 		__u64 mem_hops: 3;
9102 		__u64 mem_rsvd: 18;
9103 	};
9104 };
9105 
9106 struct perf_branch_entry {
9107 	__u64 from;
9108 	__u64 to;
9109 	__u64 mispred: 1;
9110 	__u64 predicted: 1;
9111 	__u64 in_tx: 1;
9112 	__u64 abort: 1;
9113 	__u64 cycles: 16;
9114 	__u64 type: 4;
9115 	__u64 reserved: 40;
9116 };
9117 
9118 union perf_sample_weight {
9119 	__u64 full;
9120 	struct {
9121 		__u32 var1_dw;
9122 		__u16 var2_w;
9123 		__u16 var3_w;
9124 	};
9125 };
9126 
9127 struct new_utsname {
9128 	char sysname[65];
9129 	char nodename[65];
9130 	char release[65];
9131 	char version[65];
9132 	char machine[65];
9133 	char domainname[65];
9134 };
9135 
9136 struct uts_namespace {
9137 	struct new_utsname name;
9138 	struct user_namespace *user_ns;
9139 	struct ucounts *ucounts;
9140 	struct ns_common ns;
9141 };
9142 
9143 struct cgroup_namespace {
9144 	struct ns_common ns;
9145 	struct user_namespace *user_ns;
9146 	struct ucounts *ucounts;
9147 	struct css_set *root_cset;
9148 };
9149 
9150 struct nsset {
9151 	unsigned int flags;
9152 	struct nsproxy *nsproxy;
9153 	struct fs_struct *fs;
9154 	const struct cred *cred;
9155 };
9156 
9157 struct proc_ns_operations {
9158 	const char *name;
9159 	const char *real_ns_name;
9160 	int type;
9161 	struct ns_common * (*get)(struct task_struct *);
9162 	void (*put)(struct ns_common *);
9163 	int (*install)(struct nsset *, struct ns_common *);
9164 	struct user_namespace * (*owner)(struct ns_common *);
9165 	struct ns_common * (*get_parent)(struct ns_common *);
9166 };
9167 
9168 struct perf_cpu_context;
9169 
9170 struct perf_output_handle;
9171 
9172 struct pmu {
9173 	struct list_head entry;
9174 	struct module *module;
9175 	struct device *dev;
9176 	const struct attribute_group **attr_groups;
9177 	const struct attribute_group **attr_update;
9178 	const char *name;
9179 	int type;
9180 	int capabilities;
9181 	int *pmu_disable_count;
9182 	struct perf_cpu_context *pmu_cpu_context;
9183 	atomic_t exclusive_cnt;
9184 	int task_ctx_nr;
9185 	int hrtimer_interval_ms;
9186 	unsigned int nr_addr_filters;
9187 	void (*pmu_enable)(struct pmu *);
9188 	void (*pmu_disable)(struct pmu *);
9189 	int (*event_init)(struct perf_event *);
9190 	void (*event_mapped)(struct perf_event *, struct mm_struct *);
9191 	void (*event_unmapped)(struct perf_event *, struct mm_struct *);
9192 	int (*add)(struct perf_event *, int);
9193 	void (*del)(struct perf_event *, int);
9194 	void (*start)(struct perf_event *, int);
9195 	void (*stop)(struct perf_event *, int);
9196 	void (*read)(struct perf_event *);
9197 	void (*start_txn)(struct pmu *, unsigned int);
9198 	int (*commit_txn)(struct pmu *);
9199 	void (*cancel_txn)(struct pmu *);
9200 	int (*event_idx)(struct perf_event *);
9201 	void (*sched_task)(struct perf_event_context *, bool);
9202 	struct kmem_cache *task_ctx_cache;
9203 	void (*swap_task_ctx)(struct perf_event_context *, struct perf_event_context *);
9204 	void * (*setup_aux)(struct perf_event *, void **, int, bool);
9205 	void (*free_aux)(void *);
9206 	long int (*snapshot_aux)(struct perf_event *, struct perf_output_handle *, long unsigned int);
9207 	int (*addr_filters_validate)(struct list_head *);
9208 	void (*addr_filters_sync)(struct perf_event *);
9209 	int (*aux_output_match)(struct perf_event *);
9210 	int (*filter_match)(struct perf_event *);
9211 	int (*check_period)(struct perf_event *, u64);
9212 };
9213 
9214 struct ftrace_regs {
9215 	struct pt_regs regs;
9216 };
9217 
9218 enum ftrace_tracing_type_t {
9219 	FTRACE_TYPE_ENTER = 0,
9220 	FTRACE_TYPE_RETURN = 1,
9221 };
9222 
9223 enum ftrace_bug_type {
9224 	FTRACE_BUG_UNKNOWN = 0,
9225 	FTRACE_BUG_INIT = 1,
9226 	FTRACE_BUG_NOP = 2,
9227 	FTRACE_BUG_CALL = 3,
9228 	FTRACE_BUG_UPDATE = 4,
9229 };
9230 
9231 struct ftrace_graph_ent {
9232 	long unsigned int func;
9233 	int depth;
9234 } __attribute__((packed));
9235 
9236 struct ftrace_graph_ret {
9237 	long unsigned int func;
9238 	int depth;
9239 	unsigned int overrun;
9240 	long long unsigned int calltime;
9241 	long long unsigned int rettime;
9242 };
9243 
9244 typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *);
9245 
9246 typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *);
9247 
9248 struct perf_regs {
9249 	__u64 abi;
9250 	struct pt_regs *regs;
9251 };
9252 
9253 struct kernel_cpustat {
9254 	u64 cpustat[10];
9255 };
9256 
9257 struct kernel_stat {
9258 	long unsigned int irqs_sum;
9259 	unsigned int softirqs[10];
9260 };
9261 
9262 struct u64_stats_sync {};
9263 
9264 struct cgroup_taskset;
9265 
9266 struct cftype;
9267 
9268 struct cgroup_subsys {
9269 	struct cgroup_subsys_state * (*css_alloc)(struct cgroup_subsys_state *);
9270 	int (*css_online)(struct cgroup_subsys_state *);
9271 	void (*css_offline)(struct cgroup_subsys_state *);
9272 	void (*css_released)(struct cgroup_subsys_state *);
9273 	void (*css_free)(struct cgroup_subsys_state *);
9274 	void (*css_reset)(struct cgroup_subsys_state *);
9275 	void (*css_rstat_flush)(struct cgroup_subsys_state *, int);
9276 	int (*css_extra_stat_show)(struct seq_file *, struct cgroup_subsys_state *);
9277 	int (*can_attach)(struct cgroup_taskset *);
9278 	void (*cancel_attach)(struct cgroup_taskset *);
9279 	void (*attach)(struct cgroup_taskset *);
9280 	void (*post_attach)();
9281 	int (*can_fork)(struct task_struct *, struct css_set *);
9282 	void (*cancel_fork)(struct task_struct *, struct css_set *);
9283 	void (*fork)(struct task_struct *);
9284 	void (*exit)(struct task_struct *);
9285 	void (*release)(struct task_struct *);
9286 	void (*bind)(struct cgroup_subsys_state *);
9287 	bool early_init: 1;
9288 	bool implicit_on_dfl: 1;
9289 	bool threaded: 1;
9290 	int id;
9291 	const char *name;
9292 	const char *legacy_name;
9293 	struct cgroup_root *root;
9294 	struct idr css_idr;
9295 	struct list_head cfts;
9296 	struct cftype *dfl_cftypes;
9297 	struct cftype *legacy_cftypes;
9298 	unsigned int depends_on;
9299 };
9300 
9301 struct cgroup_rstat_cpu {
9302 	struct u64_stats_sync bsync;
9303 	struct cgroup_base_stat bstat;
9304 	struct cgroup_base_stat last_bstat;
9305 	struct cgroup *updated_children;
9306 	struct cgroup *updated_next;
9307 };
9308 
9309 struct cgroup_root {
9310 	struct kernfs_root *kf_root;
9311 	unsigned int subsys_mask;
9312 	int hierarchy_id;
9313 	struct cgroup cgrp;
9314 	u64 cgrp_ancestor_id_storage;
9315 	atomic_t nr_cgrps;
9316 	struct list_head root_list;
9317 	unsigned int flags;
9318 	char release_agent_path[4096];
9319 	char name[64];
9320 };
9321 
9322 struct cftype {
9323 	char name[64];
9324 	long unsigned int private;
9325 	size_t max_write_len;
9326 	unsigned int flags;
9327 	unsigned int file_offset;
9328 	struct cgroup_subsys *ss;
9329 	struct list_head node;
9330 	struct kernfs_ops *kf_ops;
9331 	int (*open)(struct kernfs_open_file *);
9332 	void (*release)(struct kernfs_open_file *);
9333 	u64 (*read_u64)(struct cgroup_subsys_state *, struct cftype *);
9334 	s64 (*read_s64)(struct cgroup_subsys_state *, struct cftype *);
9335 	int (*seq_show)(struct seq_file *, void *);
9336 	void * (*seq_start)(struct seq_file *, loff_t *);
9337 	void * (*seq_next)(struct seq_file *, void *, loff_t *);
9338 	void (*seq_stop)(struct seq_file *, void *);
9339 	int (*write_u64)(struct cgroup_subsys_state *, struct cftype *, u64);
9340 	int (*write_s64)(struct cgroup_subsys_state *, struct cftype *, s64);
9341 	ssize_t (*write)(struct kernfs_open_file *, char *, size_t, loff_t);
9342 	__poll_t (*poll)(struct kernfs_open_file *, struct poll_table_struct *);
9343 	struct lock_class_key lockdep_key;
9344 };
9345 
9346 enum kmalloc_cache_type {
9347 	KMALLOC_NORMAL = 0,
9348 	KMALLOC_CGROUP = 1,
9349 	KMALLOC_RECLAIM = 2,
9350 	KMALLOC_DMA = 3,
9351 	NR_KMALLOC_TYPES = 4,
9352 };
9353 
9354 struct perf_callchain_entry {
9355 	__u64 nr;
9356 	__u64 ip[0];
9357 };
9358 
9359 typedef long unsigned int (*perf_copy_f)(void *, const void *, long unsigned int, long unsigned int);
9360 
9361 struct perf_raw_frag {
9362 	union {
9363 		struct perf_raw_frag *next;
9364 		long unsigned int pad;
9365 	};
9366 	perf_copy_f copy;
9367 	void *data;
9368 	u32 size;
9369 } __attribute__((packed));
9370 
9371 struct perf_raw_record {
9372 	struct perf_raw_frag frag;
9373 	u32 size;
9374 };
9375 
9376 struct perf_branch_stack {
9377 	__u64 nr;
9378 	__u64 hw_idx;
9379 	struct perf_branch_entry entries[0];
9380 };
9381 
9382 struct perf_cpu_context {
9383 	struct perf_event_context ctx;
9384 	struct perf_event_context *task_ctx;
9385 	int active_oncpu;
9386 	int exclusive;
9387 	raw_spinlock_t hrtimer_lock;
9388 	struct hrtimer hrtimer;
9389 	ktime_t hrtimer_interval;
9390 	unsigned int hrtimer_active;
9391 	struct perf_cgroup *cgrp;
9392 	struct list_head cgrp_cpuctx_entry;
9393 	struct list_head sched_cb_entry;
9394 	int sched_cb_usage;
9395 	int online;
9396 	int heap_size;
9397 	struct perf_event **heap;
9398 	struct perf_event *heap_default[2];
9399 };
9400 
9401 struct perf_output_handle {
9402 	struct perf_event *event;
9403 	struct perf_buffer *rb;
9404 	long unsigned int wakeup;
9405 	long unsigned int size;
9406 	u64 aux_flags;
9407 	union {
9408 		void *addr;
9409 		long unsigned int head;
9410 	};
9411 	int page;
9412 };
9413 
9414 struct perf_addr_filter_range {
9415 	long unsigned int start;
9416 	long unsigned int size;
9417 };
9418 
9419 struct perf_sample_data {
9420 	u64 addr;
9421 	struct perf_raw_record *raw;
9422 	struct perf_branch_stack *br_stack;
9423 	u64 period;
9424 	union perf_sample_weight weight;
9425 	u64 txn;
9426 	union perf_mem_data_src data_src;
9427 	u64 type;
9428 	u64 ip;
9429 	struct {
9430 		u32 pid;
9431 		u32 tid;
9432 	} tid_entry;
9433 	u64 time;
9434 	u64 id;
9435 	u64 stream_id;
9436 	struct {
9437 		u32 cpu;
9438 		u32 reserved;
9439 	} cpu_entry;
9440 	struct perf_callchain_entry *callchain;
9441 	u64 aux_size;
9442 	struct perf_regs regs_user;
9443 	struct perf_regs regs_intr;
9444 	u64 stack_user_size;
9445 	u64 phys_addr;
9446 	u64 cgroup;
9447 	u64 data_page_size;
9448 	u64 code_page_size;
9449 	long: 64;
9450 	long: 64;
9451 	long: 64;
9452 	long: 64;
9453 	long: 64;
9454 	long: 64;
9455 	long: 64;
9456 };
9457 
9458 struct perf_cgroup_info;
9459 
9460 struct perf_cgroup {
9461 	struct cgroup_subsys_state css;
9462 	struct perf_cgroup_info *info;
9463 };
9464 
9465 struct perf_cgroup_info {
9466 	u64 time;
9467 	u64 timestamp;
9468 };
9469 
9470 struct trace_entry {
9471 	short unsigned int type;
9472 	unsigned char flags;
9473 	unsigned char preempt_count;
9474 	int pid;
9475 };
9476 
9477 struct trace_array;
9478 
9479 struct tracer;
9480 
9481 struct array_buffer;
9482 
9483 struct ring_buffer_iter;
9484 
9485 struct trace_iterator {
9486 	struct trace_array *tr;
9487 	struct tracer *trace;
9488 	struct array_buffer *array_buffer;
9489 	void *private;
9490 	int cpu_file;
9491 	struct mutex mutex;
9492 	struct ring_buffer_iter **buffer_iter;
9493 	long unsigned int iter_flags;
9494 	void *temp;
9495 	unsigned int temp_size;
9496 	char *fmt;
9497 	unsigned int fmt_size;
9498 	struct trace_seq tmp_seq;
9499 	cpumask_var_t started;
9500 	bool snapshot;
9501 	struct trace_seq seq;
9502 	struct trace_entry *ent;
9503 	long unsigned int lost_events;
9504 	int leftover;
9505 	int ent_size;
9506 	int cpu;
9507 	u64 ts;
9508 	loff_t pos;
9509 	long int idx;
9510 };
9511 
9512 enum print_line_t {
9513 	TRACE_TYPE_PARTIAL_LINE = 0,
9514 	TRACE_TYPE_HANDLED = 1,
9515 	TRACE_TYPE_UNHANDLED = 2,
9516 	TRACE_TYPE_NO_CONSUME = 3,
9517 };
9518 
9519 typedef enum print_line_t (*trace_print_func)(struct trace_iterator *, int, struct trace_event *);
9520 
9521 struct trace_event_functions {
9522 	trace_print_func trace;
9523 	trace_print_func raw;
9524 	trace_print_func hex;
9525 	trace_print_func binary;
9526 };
9527 
9528 enum trace_reg {
9529 	TRACE_REG_REGISTER = 0,
9530 	TRACE_REG_UNREGISTER = 1,
9531 	TRACE_REG_PERF_REGISTER = 2,
9532 	TRACE_REG_PERF_UNREGISTER = 3,
9533 	TRACE_REG_PERF_OPEN = 4,
9534 	TRACE_REG_PERF_CLOSE = 5,
9535 	TRACE_REG_PERF_ADD = 6,
9536 	TRACE_REG_PERF_DEL = 7,
9537 };
9538 
9539 struct trace_event_fields {
9540 	const char *type;
9541 	union {
9542 		struct {
9543 			const char *name;
9544 			const int size;
9545 			const int align;
9546 			const int is_signed;
9547 			const int filter_type;
9548 		};
9549 		int (*define_fields)(struct trace_event_call *);
9550 	};
9551 };
9552 
9553 struct trace_event_class {
9554 	const char *system;
9555 	void *probe;
9556 	void *perf_probe;
9557 	int (*reg)(struct trace_event_call *, enum trace_reg, void *);
9558 	struct trace_event_fields *fields_array;
9559 	struct list_head * (*get_fields)(struct trace_event_call *);
9560 	struct list_head fields;
9561 	int (*raw_init)(struct trace_event_call *);
9562 };
9563 
9564 struct trace_buffer;
9565 
9566 struct trace_event_file;
9567 
9568 struct trace_event_buffer {
9569 	struct trace_buffer *buffer;
9570 	struct ring_buffer_event *event;
9571 	struct trace_event_file *trace_file;
9572 	void *entry;
9573 	unsigned int trace_ctx;
9574 	struct pt_regs *regs;
9575 };
9576 
9577 struct trace_subsystem_dir;
9578 
9579 struct trace_event_file {
9580 	struct list_head list;
9581 	struct trace_event_call *event_call;
9582 	struct event_filter *filter;
9583 	struct dentry *dir;
9584 	struct trace_array *tr;
9585 	struct trace_subsystem_dir *system;
9586 	struct list_head triggers;
9587 	long unsigned int flags;
9588 	atomic_t sm_ref;
9589 	atomic_t tm_ref;
9590 };
9591 
9592 enum {
9593 	TRACE_EVENT_FL_FILTERED_BIT = 0,
9594 	TRACE_EVENT_FL_CAP_ANY_BIT = 1,
9595 	TRACE_EVENT_FL_NO_SET_FILTER_BIT = 2,
9596 	TRACE_EVENT_FL_IGNORE_ENABLE_BIT = 3,
9597 	TRACE_EVENT_FL_TRACEPOINT_BIT = 4,
9598 	TRACE_EVENT_FL_DYNAMIC_BIT = 5,
9599 	TRACE_EVENT_FL_KPROBE_BIT = 6,
9600 	TRACE_EVENT_FL_UPROBE_BIT = 7,
9601 	TRACE_EVENT_FL_EPROBE_BIT = 8,
9602 };
9603 
9604 enum {
9605 	TRACE_EVENT_FL_FILTERED = 1,
9606 	TRACE_EVENT_FL_CAP_ANY = 2,
9607 	TRACE_EVENT_FL_NO_SET_FILTER = 4,
9608 	TRACE_EVENT_FL_IGNORE_ENABLE = 8,
9609 	TRACE_EVENT_FL_TRACEPOINT = 16,
9610 	TRACE_EVENT_FL_DYNAMIC = 32,
9611 	TRACE_EVENT_FL_KPROBE = 64,
9612 	TRACE_EVENT_FL_UPROBE = 128,
9613 	TRACE_EVENT_FL_EPROBE = 256,
9614 };
9615 
9616 enum {
9617 	EVENT_FILE_FL_ENABLED_BIT = 0,
9618 	EVENT_FILE_FL_RECORDED_CMD_BIT = 1,
9619 	EVENT_FILE_FL_RECORDED_TGID_BIT = 2,
9620 	EVENT_FILE_FL_FILTERED_BIT = 3,
9621 	EVENT_FILE_FL_NO_SET_FILTER_BIT = 4,
9622 	EVENT_FILE_FL_SOFT_MODE_BIT = 5,
9623 	EVENT_FILE_FL_SOFT_DISABLED_BIT = 6,
9624 	EVENT_FILE_FL_TRIGGER_MODE_BIT = 7,
9625 	EVENT_FILE_FL_TRIGGER_COND_BIT = 8,
9626 	EVENT_FILE_FL_PID_FILTER_BIT = 9,
9627 	EVENT_FILE_FL_WAS_ENABLED_BIT = 10,
9628 };
9629 
9630 enum {
9631 	EVENT_FILE_FL_ENABLED = 1,
9632 	EVENT_FILE_FL_RECORDED_CMD = 2,
9633 	EVENT_FILE_FL_RECORDED_TGID = 4,
9634 	EVENT_FILE_FL_FILTERED = 8,
9635 	EVENT_FILE_FL_NO_SET_FILTER = 16,
9636 	EVENT_FILE_FL_SOFT_MODE = 32,
9637 	EVENT_FILE_FL_SOFT_DISABLED = 64,
9638 	EVENT_FILE_FL_TRIGGER_MODE = 128,
9639 	EVENT_FILE_FL_TRIGGER_COND = 256,
9640 	EVENT_FILE_FL_PID_FILTER = 512,
9641 	EVENT_FILE_FL_WAS_ENABLED = 1024,
9642 };
9643 
9644 enum {
9645 	FILTER_OTHER = 0,
9646 	FILTER_STATIC_STRING = 1,
9647 	FILTER_DYN_STRING = 2,
9648 	FILTER_RDYN_STRING = 3,
9649 	FILTER_PTR_STRING = 4,
9650 	FILTER_TRACE_FN = 5,
9651 	FILTER_COMM = 6,
9652 	FILTER_CPU = 7,
9653 };
9654 
9655 struct property {
9656 	char *name;
9657 	int length;
9658 	void *value;
9659 	struct property *next;
9660 };
9661 
9662 struct irq_fwspec {
9663 	struct fwnode_handle *fwnode;
9664 	int param_count;
9665 	u32 param[16];
9666 };
9667 
9668 struct irq_domain_ops {
9669 	int (*match)(struct irq_domain *, struct device_node *, enum irq_domain_bus_token);
9670 	int (*select)(struct irq_domain *, struct irq_fwspec *, enum irq_domain_bus_token);
9671 	int (*map)(struct irq_domain *, unsigned int, irq_hw_number_t);
9672 	void (*unmap)(struct irq_domain *, unsigned int);
9673 	int (*xlate)(struct irq_domain *, struct device_node *, const u32 *, unsigned int, long unsigned int *, unsigned int *);
9674 	int (*alloc)(struct irq_domain *, unsigned int, unsigned int, void *);
9675 	void (*free)(struct irq_domain *, unsigned int, unsigned int);
9676 	int (*activate)(struct irq_domain *, struct irq_data *, bool);
9677 	void (*deactivate)(struct irq_domain *, struct irq_data *);
9678 	int (*translate)(struct irq_domain *, struct irq_fwspec *, long unsigned int *, unsigned int *);
9679 };
9680 
9681 struct acpi_table_header {
9682 	char signature[4];
9683 	u32 length;
9684 	u8 revision;
9685 	u8 checksum;
9686 	char oem_id[6];
9687 	char oem_table_id[8];
9688 	u32 oem_revision;
9689 	char asl_compiler_id[4];
9690 	u32 asl_compiler_revision;
9691 };
9692 
9693 struct acpi_generic_address {
9694 	u8 space_id;
9695 	u8 bit_width;
9696 	u8 bit_offset;
9697 	u8 access_width;
9698 	u64 address;
9699 } __attribute__((packed));
9700 
9701 struct acpi_table_fadt {
9702 	struct acpi_table_header header;
9703 	u32 facs;
9704 	u32 dsdt;
9705 	u8 model;
9706 	u8 preferred_profile;
9707 	u16 sci_interrupt;
9708 	u32 smi_command;
9709 	u8 acpi_enable;
9710 	u8 acpi_disable;
9711 	u8 s4_bios_request;
9712 	u8 pstate_control;
9713 	u32 pm1a_event_block;
9714 	u32 pm1b_event_block;
9715 	u32 pm1a_control_block;
9716 	u32 pm1b_control_block;
9717 	u32 pm2_control_block;
9718 	u32 pm_timer_block;
9719 	u32 gpe0_block;
9720 	u32 gpe1_block;
9721 	u8 pm1_event_length;
9722 	u8 pm1_control_length;
9723 	u8 pm2_control_length;
9724 	u8 pm_timer_length;
9725 	u8 gpe0_block_length;
9726 	u8 gpe1_block_length;
9727 	u8 gpe1_base;
9728 	u8 cst_control;
9729 	u16 c2_latency;
9730 	u16 c3_latency;
9731 	u16 flush_size;
9732 	u16 flush_stride;
9733 	u8 duty_offset;
9734 	u8 duty_width;
9735 	u8 day_alarm;
9736 	u8 month_alarm;
9737 	u8 century;
9738 	u16 boot_flags;
9739 	u8 reserved;
9740 	u32 flags;
9741 	struct acpi_generic_address reset_register;
9742 	u8 reset_value;
9743 	u16 arm_boot_flags;
9744 	u8 minor_revision;
9745 	u64 Xfacs;
9746 	u64 Xdsdt;
9747 	struct acpi_generic_address xpm1a_event_block;
9748 	struct acpi_generic_address xpm1b_event_block;
9749 	struct acpi_generic_address xpm1a_control_block;
9750 	struct acpi_generic_address xpm1b_control_block;
9751 	struct acpi_generic_address xpm2_control_block;
9752 	struct acpi_generic_address xpm_timer_block;
9753 	struct acpi_generic_address xgpe0_block;
9754 	struct acpi_generic_address xgpe1_block;
9755 	struct acpi_generic_address sleep_control;
9756 	struct acpi_generic_address sleep_status;
9757 	u64 hypervisor_id;
9758 } __attribute__((packed));
9759 
9760 enum acpi_irq_model_id {
9761 	ACPI_IRQ_MODEL_PIC = 0,
9762 	ACPI_IRQ_MODEL_IOAPIC = 1,
9763 	ACPI_IRQ_MODEL_IOSAPIC = 2,
9764 	ACPI_IRQ_MODEL_PLATFORM = 3,
9765 	ACPI_IRQ_MODEL_GIC = 4,
9766 	ACPI_IRQ_MODEL_COUNT = 5,
9767 };
9768 
9769 struct xbc_node {
9770 	uint16_t next;
9771 	uint16_t child;
9772 	uint16_t parent;
9773 	uint16_t data;
9774 };
9775 
9776 enum con_scroll {
9777 	SM_UP = 0,
9778 	SM_DOWN = 1,
9779 };
9780 
9781 enum vc_intensity {
9782 	VCI_HALF_BRIGHT = 0,
9783 	VCI_NORMAL = 1,
9784 	VCI_BOLD = 2,
9785 	VCI_MASK = 3,
9786 };
9787 
9788 struct vc_data;
9789 
9790 struct console_font;
9791 
9792 struct consw {
9793 	struct module *owner;
9794 	const char * (*con_startup)();
9795 	void (*con_init)(struct vc_data *, int);
9796 	void (*con_deinit)(struct vc_data *);
9797 	void (*con_clear)(struct vc_data *, int, int, int, int);
9798 	void (*con_putc)(struct vc_data *, int, int, int);
9799 	void (*con_putcs)(struct vc_data *, const short unsigned int *, int, int, int);
9800 	void (*con_cursor)(struct vc_data *, int);
9801 	bool (*con_scroll)(struct vc_data *, unsigned int, unsigned int, enum con_scroll, unsigned int);
9802 	int (*con_switch)(struct vc_data *);
9803 	int (*con_blank)(struct vc_data *, int, int);
9804 	int (*con_font_set)(struct vc_data *, struct console_font *, unsigned int);
9805 	int (*con_font_get)(struct vc_data *, struct console_font *);
9806 	int (*con_font_default)(struct vc_data *, struct console_font *, char *);
9807 	int (*con_resize)(struct vc_data *, unsigned int, unsigned int, unsigned int);
9808 	void (*con_set_palette)(struct vc_data *, const unsigned char *);
9809 	void (*con_scrolldelta)(struct vc_data *, int);
9810 	int (*con_set_origin)(struct vc_data *);
9811 	void (*con_save_screen)(struct vc_data *);
9812 	u8 (*con_build_attr)(struct vc_data *, u8, enum vc_intensity, bool, bool, bool, bool);
9813 	void (*con_invert_region)(struct vc_data *, u16 *, int);
9814 	u16 * (*con_screen_pos)(const struct vc_data *, int);
9815 	long unsigned int (*con_getxy)(struct vc_data *, long unsigned int, int *, int *);
9816 	void (*con_flush_scrollback)(struct vc_data *);
9817 	int (*con_debug_enter)(struct vc_data *);
9818 	int (*con_debug_leave)(struct vc_data *);
9819 };
9820 
9821 struct tty_buffer {
9822 	union {
9823 		struct tty_buffer *next;
9824 		struct llist_node free;
9825 	};
9826 	int used;
9827 	int size;
9828 	int commit;
9829 	int read;
9830 	int flags;
9831 	long unsigned int data[0];
9832 };
9833 
9834 struct tty_bufhead {
9835 	struct tty_buffer *head;
9836 	struct work_struct work;
9837 	struct mutex lock;
9838 	atomic_t priority;
9839 	struct tty_buffer sentinel;
9840 	struct llist_head free;
9841 	atomic_t mem_used;
9842 	int mem_limit;
9843 	struct tty_buffer *tail;
9844 };
9845 
9846 struct tty_port_operations;
9847 
9848 struct tty_port_client_operations;
9849 
9850 struct tty_port {
9851 	struct tty_bufhead buf;
9852 	struct tty_struct *tty;
9853 	struct tty_struct *itty;
9854 	const struct tty_port_operations *ops;
9855 	const struct tty_port_client_operations *client_ops;
9856 	spinlock_t lock;
9857 	int blocked_open;
9858 	int count;
9859 	wait_queue_head_t open_wait;
9860 	wait_queue_head_t delta_msr_wait;
9861 	long unsigned int flags;
9862 	long unsigned int iflags;
9863 	unsigned char console: 1;
9864 	struct mutex mutex;
9865 	struct mutex buf_mutex;
9866 	unsigned char *xmit_buf;
9867 	unsigned int close_delay;
9868 	unsigned int closing_wait;
9869 	int drain_delay;
9870 	struct kref kref;
9871 	void *client_data;
9872 };
9873 
9874 struct vc_state {
9875 	unsigned int x;
9876 	unsigned int y;
9877 	unsigned char color;
9878 	unsigned char Gx_charset[2];
9879 	unsigned int charset: 1;
9880 	enum vc_intensity intensity;
9881 	bool italic;
9882 	bool underline;
9883 	bool blink;
9884 	bool reverse;
9885 };
9886 
9887 struct console_font {
9888 	unsigned int width;
9889 	unsigned int height;
9890 	unsigned int charcount;
9891 	unsigned char *data;
9892 };
9893 
9894 struct vt_mode {
9895 	char mode;
9896 	char waitv;
9897 	short int relsig;
9898 	short int acqsig;
9899 	short int frsig;
9900 };
9901 
9902 struct uni_pagedir;
9903 
9904 struct uni_screen;
9905 
9906 struct vc_data {
9907 	struct tty_port port;
9908 	struct vc_state state;
9909 	struct vc_state saved_state;
9910 	short unsigned int vc_num;
9911 	unsigned int vc_cols;
9912 	unsigned int vc_rows;
9913 	unsigned int vc_size_row;
9914 	unsigned int vc_scan_lines;
9915 	unsigned int vc_cell_height;
9916 	long unsigned int vc_origin;
9917 	long unsigned int vc_scr_end;
9918 	long unsigned int vc_visible_origin;
9919 	unsigned int vc_top;
9920 	unsigned int vc_bottom;
9921 	const struct consw *vc_sw;
9922 	short unsigned int *vc_screenbuf;
9923 	unsigned int vc_screenbuf_size;
9924 	unsigned char vc_mode;
9925 	unsigned char vc_attr;
9926 	unsigned char vc_def_color;
9927 	unsigned char vc_ulcolor;
9928 	unsigned char vc_itcolor;
9929 	unsigned char vc_halfcolor;
9930 	unsigned int vc_cursor_type;
9931 	short unsigned int vc_complement_mask;
9932 	short unsigned int vc_s_complement_mask;
9933 	long unsigned int vc_pos;
9934 	short unsigned int vc_hi_font_mask;
9935 	struct console_font vc_font;
9936 	short unsigned int vc_video_erase_char;
9937 	unsigned int vc_state;
9938 	unsigned int vc_npar;
9939 	unsigned int vc_par[16];
9940 	struct vt_mode vt_mode;
9941 	struct pid *vt_pid;
9942 	int vt_newvt;
9943 	wait_queue_head_t paste_wait;
9944 	unsigned int vc_disp_ctrl: 1;
9945 	unsigned int vc_toggle_meta: 1;
9946 	unsigned int vc_decscnm: 1;
9947 	unsigned int vc_decom: 1;
9948 	unsigned int vc_decawm: 1;
9949 	unsigned int vc_deccm: 1;
9950 	unsigned int vc_decim: 1;
9951 	unsigned int vc_priv: 3;
9952 	unsigned int vc_need_wrap: 1;
9953 	unsigned int vc_can_do_color: 1;
9954 	unsigned int vc_report_mouse: 2;
9955 	unsigned char vc_utf: 1;
9956 	unsigned char vc_utf_count;
9957 	int vc_utf_char;
9958 	long unsigned int vc_tab_stop[4];
9959 	unsigned char vc_palette[48];
9960 	short unsigned int *vc_translate;
9961 	unsigned int vc_resize_user;
9962 	unsigned int vc_bell_pitch;
9963 	unsigned int vc_bell_duration;
9964 	short unsigned int vc_cur_blink_ms;
9965 	struct vc_data **vc_display_fg;
9966 	struct uni_pagedir *vc_uni_pagedir;
9967 	struct uni_pagedir **vc_uni_pagedir_loc;
9968 	struct uni_screen *vc_uni_screen;
9969 };
9970 
9971 struct tty_driver;
9972 
9973 struct console {
9974 	char name[16];
9975 	void (*write)(struct console *, const char *, unsigned int);
9976 	int (*read)(struct console *, char *, unsigned int);
9977 	struct tty_driver * (*device)(struct console *, int *);
9978 	void (*unblank)();
9979 	int (*setup)(struct console *, char *);
9980 	int (*exit)(struct console *);
9981 	int (*match)(struct console *, char *, int, char *);
9982 	short int flags;
9983 	short int index;
9984 	int cflag;
9985 	uint ispeed;
9986 	uint ospeed;
9987 	void *data;
9988 	struct console *next;
9989 };
9990 
9991 typedef u8 kprobe_opcode_t;
9992 
9993 struct kprobe;
9994 
9995 struct arch_specific_insn {
9996 	kprobe_opcode_t *insn;
9997 	unsigned int boostable: 1;
9998 	unsigned char size;
9999 	union {
10000 		unsigned char opcode;
10001 		struct {
10002 			unsigned char type;
10003 		} jcc;
10004 		struct {
10005 			unsigned char type;
10006 			unsigned char asize;
10007 		} loop;
10008 		struct {
10009 			unsigned char reg;
10010 		} indirect;
10011 	};
10012 	s32 rel32;
10013 	void (*emulate_op)(struct kprobe *, struct pt_regs *);
10014 	int tp_len;
10015 };
10016 
10017 typedef int (*kprobe_pre_handler_t)(struct kprobe *, struct pt_regs *);
10018 
10019 typedef void (*kprobe_post_handler_t)(struct kprobe *, struct pt_regs *, long unsigned int);
10020 
10021 struct kprobe {
10022 	struct hlist_node hlist;
10023 	struct list_head list;
10024 	long unsigned int nmissed;
10025 	kprobe_opcode_t *addr;
10026 	const char *symbol_name;
10027 	unsigned int offset;
10028 	kprobe_pre_handler_t pre_handler;
10029 	kprobe_post_handler_t post_handler;
10030 	kprobe_opcode_t opcode;
10031 	struct arch_specific_insn ainsn;
10032 	u32 flags;
10033 };
10034 
10035 struct prev_kprobe {
10036 	struct kprobe *kp;
10037 	long unsigned int status;
10038 	long unsigned int old_flags;
10039 	long unsigned int saved_flags;
10040 };
10041 
10042 struct kprobe_ctlblk {
10043 	long unsigned int kprobe_status;
10044 	long unsigned int kprobe_old_flags;
10045 	long unsigned int kprobe_saved_flags;
10046 	struct prev_kprobe prev_kprobe;
10047 };
10048 
10049 struct kretprobe_blackpoint {
10050 	const char *name;
10051 	void *addr;
10052 };
10053 
10054 struct kprobe_insn_cache {
10055 	struct mutex mutex;
10056 	void * (*alloc)();
10057 	void (*free)(void *);
10058 	const char *sym;
10059 	struct list_head pages;
10060 	size_t insn_size;
10061 	int nr_garbage;
10062 };
10063 
10064 enum wb_stat_item {
10065 	WB_RECLAIMABLE = 0,
10066 	WB_WRITEBACK = 1,
10067 	WB_DIRTIED = 2,
10068 	WB_WRITTEN = 3,
10069 	NR_WB_STAT_ITEMS = 4,
10070 };
10071 
10072 struct block_device_operations;
10073 
10074 struct timer_rand_state;
10075 
10076 struct disk_events;
10077 
10078 struct badblocks;
10079 
10080 struct gendisk {
10081 	int major;
10082 	int first_minor;
10083 	int minors;
10084 	char disk_name[32];
10085 	short unsigned int events;
10086 	short unsigned int event_flags;
10087 	struct xarray part_tbl;
10088 	struct block_device *part0;
10089 	const struct block_device_operations *fops;
10090 	struct request_queue *queue;
10091 	void *private_data;
10092 	int flags;
10093 	long unsigned int state;
10094 	struct mutex open_mutex;
10095 	unsigned int open_partitions;
10096 	struct backing_dev_info *bdi;
10097 	struct kobject *slave_dir;
10098 	struct timer_rand_state *random;
10099 	atomic_t sync_io;
10100 	struct disk_events *ev;
10101 	int node_id;
10102 	struct badblocks *bb;
10103 	struct lockdep_map lockdep_map;
10104 	u64 diskseq;
10105 };
10106 
10107 struct partition_meta_info {
10108 	char uuid[37];
10109 	u8 volname[64];
10110 };
10111 
10112 struct blk_rq_stat {
10113 	u64 mean;
10114 	u64 min;
10115 	u64 max;
10116 	u32 nr_samples;
10117 	u64 batch;
10118 };
10119 
10120 struct iovec {
10121 	void *iov_base;
10122 	__kernel_size_t iov_len;
10123 };
10124 
10125 struct kvec {
10126 	void *iov_base;
10127 	size_t iov_len;
10128 };
10129 
10130 enum reboot_mode {
10131 	REBOOT_UNDEFINED = 4294967295,
10132 	REBOOT_COLD = 0,
10133 	REBOOT_WARM = 1,
10134 	REBOOT_HARD = 2,
10135 	REBOOT_SOFT = 3,
10136 	REBOOT_GPIO = 4,
10137 };
10138 
10139 enum reboot_type {
10140 	BOOT_TRIPLE = 116,
10141 	BOOT_KBD = 107,
10142 	BOOT_BIOS = 98,
10143 	BOOT_ACPI = 97,
10144 	BOOT_EFI = 101,
10145 	BOOT_CF9_FORCE = 112,
10146 	BOOT_CF9_SAFE = 113,
10147 };
10148 
10149 typedef long unsigned int efi_status_t;
10150 
10151 typedef u8 efi_bool_t;
10152 
10153 typedef u16 efi_char16_t;
10154 
10155 typedef guid_t efi_guid_t;
10156 
10157 typedef struct {
10158 	u64 signature;
10159 	u32 revision;
10160 	u32 headersize;
10161 	u32 crc32;
10162 	u32 reserved;
10163 } efi_table_hdr_t;
10164 
10165 typedef struct {
10166 	u32 type;
10167 	u32 pad;
10168 	u64 phys_addr;
10169 	u64 virt_addr;
10170 	u64 num_pages;
10171 	u64 attribute;
10172 } efi_memory_desc_t;
10173 
10174 typedef struct {
10175 	efi_guid_t guid;
10176 	u32 headersize;
10177 	u32 flags;
10178 	u32 imagesize;
10179 } efi_capsule_header_t;
10180 
10181 typedef struct {
10182 	u16 year;
10183 	u8 month;
10184 	u8 day;
10185 	u8 hour;
10186 	u8 minute;
10187 	u8 second;
10188 	u8 pad1;
10189 	u32 nanosecond;
10190 	s16 timezone;
10191 	u8 daylight;
10192 	u8 pad2;
10193 } efi_time_t;
10194 
10195 typedef struct {
10196 	u32 resolution;
10197 	u32 accuracy;
10198 	u8 sets_to_zero;
10199 } efi_time_cap_t;
10200 
10201 typedef struct {
10202 	efi_table_hdr_t hdr;
10203 	u32 get_time;
10204 	u32 set_time;
10205 	u32 get_wakeup_time;
10206 	u32 set_wakeup_time;
10207 	u32 set_virtual_address_map;
10208 	u32 convert_pointer;
10209 	u32 get_variable;
10210 	u32 get_next_variable;
10211 	u32 set_variable;
10212 	u32 get_next_high_mono_count;
10213 	u32 reset_system;
10214 	u32 update_capsule;
10215 	u32 query_capsule_caps;
10216 	u32 query_variable_info;
10217 } efi_runtime_services_32_t;
10218 
10219 typedef efi_status_t efi_get_time_t(efi_time_t *, efi_time_cap_t *);
10220 
10221 typedef efi_status_t efi_set_time_t(efi_time_t *);
10222 
10223 typedef efi_status_t efi_get_wakeup_time_t(efi_bool_t *, efi_bool_t *, efi_time_t *);
10224 
10225 typedef efi_status_t efi_set_wakeup_time_t(efi_bool_t, efi_time_t *);
10226 
10227 typedef efi_status_t efi_get_variable_t(efi_char16_t *, efi_guid_t *, u32 *, long unsigned int *, void *);
10228 
10229 typedef efi_status_t efi_get_next_variable_t(long unsigned int *, efi_char16_t *, efi_guid_t *);
10230 
10231 typedef efi_status_t efi_set_variable_t(efi_char16_t *, efi_guid_t *, u32, long unsigned int, void *);
10232 
10233 typedef efi_status_t efi_get_next_high_mono_count_t(u32 *);
10234 
10235 typedef void efi_reset_system_t(int, efi_status_t, long unsigned int, efi_char16_t *);
10236 
10237 typedef efi_status_t efi_query_variable_info_t(u32, u64 *, u64 *, u64 *);
10238 
10239 typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t **, long unsigned int, long unsigned int);
10240 
10241 typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **, long unsigned int, u64 *, int *);
10242 
10243 typedef union {
10244 	struct {
10245 		efi_table_hdr_t hdr;
10246 		efi_status_t (*get_time)(efi_time_t *, efi_time_cap_t *);
10247 		efi_status_t (*set_time)(efi_time_t *);
10248 		efi_status_t (*get_wakeup_time)(efi_bool_t *, efi_bool_t *, efi_time_t *);
10249 		efi_status_t (*set_wakeup_time)(efi_bool_t, efi_time_t *);
10250 		efi_status_t (*set_virtual_address_map)(long unsigned int, long unsigned int, u32, efi_memory_desc_t *);
10251 		void *convert_pointer;
10252 		efi_status_t (*get_variable)(efi_char16_t *, efi_guid_t *, u32 *, long unsigned int *, void *);
10253 		efi_status_t (*get_next_variable)(long unsigned int *, efi_char16_t *, efi_guid_t *);
10254 		efi_status_t (*set_variable)(efi_char16_t *, efi_guid_t *, u32, long unsigned int, void *);
10255 		efi_status_t (*get_next_high_mono_count)(u32 *);
10256 		void (*reset_system)(int, efi_status_t, long unsigned int, efi_char16_t *);
10257 		efi_status_t (*update_capsule)(efi_capsule_header_t **, long unsigned int, long unsigned int);
10258 		efi_status_t (*query_capsule_caps)(efi_capsule_header_t **, long unsigned int, u64 *, int *);
10259 		efi_status_t (*query_variable_info)(u32, u64 *, u64 *, u64 *);
10260 	};
10261 	efi_runtime_services_32_t mixed_mode;
10262 } efi_runtime_services_t;
10263 
10264 struct efi_memory_map {
10265 	phys_addr_t phys_map;
10266 	void *map;
10267 	void *map_end;
10268 	int nr_map;
10269 	long unsigned int desc_version;
10270 	long unsigned int desc_size;
10271 	long unsigned int flags;
10272 };
10273 
10274 struct efi {
10275 	const efi_runtime_services_t *runtime;
10276 	unsigned int runtime_version;
10277 	unsigned int runtime_supported_mask;
10278 	long unsigned int acpi;
10279 	long unsigned int acpi20;
10280 	long unsigned int smbios;
10281 	long unsigned int smbios3;
10282 	long unsigned int esrt;
10283 	long unsigned int tpm_log;
10284 	long unsigned int tpm_final_log;
10285 	long unsigned int mokvar_table;
10286 	efi_get_time_t *get_time;
10287 	efi_set_time_t *set_time;
10288 	efi_get_wakeup_time_t *get_wakeup_time;
10289 	efi_set_wakeup_time_t *set_wakeup_time;
10290 	efi_get_variable_t *get_variable;
10291 	efi_get_next_variable_t *get_next_variable;
10292 	efi_set_variable_t *set_variable;
10293 	efi_set_variable_t *set_variable_nonblocking;
10294 	efi_query_variable_info_t *query_variable_info;
10295 	efi_query_variable_info_t *query_variable_info_nonblocking;
10296 	efi_update_capsule_t *update_capsule;
10297 	efi_query_capsule_caps_t *query_capsule_caps;
10298 	efi_get_next_high_mono_count_t *get_next_high_mono_count;
10299 	efi_reset_system_t *reset_system;
10300 	struct efi_memory_map memmap;
10301 	long unsigned int flags;
10302 };
10303 
10304 enum efi_rts_ids {
10305 	EFI_NONE = 0,
10306 	EFI_GET_TIME = 1,
10307 	EFI_SET_TIME = 2,
10308 	EFI_GET_WAKEUP_TIME = 3,
10309 	EFI_SET_WAKEUP_TIME = 4,
10310 	EFI_GET_VARIABLE = 5,
10311 	EFI_GET_NEXT_VARIABLE = 6,
10312 	EFI_SET_VARIABLE = 7,
10313 	EFI_QUERY_VARIABLE_INFO = 8,
10314 	EFI_GET_NEXT_HIGH_MONO_COUNT = 9,
10315 	EFI_RESET_SYSTEM = 10,
10316 	EFI_UPDATE_CAPSULE = 11,
10317 	EFI_QUERY_CAPSULE_CAPS = 12,
10318 };
10319 
10320 struct efi_runtime_work {
10321 	void *arg1;
10322 	void *arg2;
10323 	void *arg3;
10324 	void *arg4;
10325 	void *arg5;
10326 	efi_status_t status;
10327 	struct work_struct work;
10328 	enum efi_rts_ids efi_rts_id;
10329 	struct completion efi_rts_comp;
10330 };
10331 
10332 enum memcg_stat_item {
10333 	MEMCG_SWAP = 40,
10334 	MEMCG_SOCK = 41,
10335 	MEMCG_PERCPU_B = 42,
10336 	MEMCG_VMALLOC = 43,
10337 	MEMCG_NR_STAT = 44,
10338 };
10339 
10340 enum memcg_memory_event {
10341 	MEMCG_LOW = 0,
10342 	MEMCG_HIGH = 1,
10343 	MEMCG_MAX = 2,
10344 	MEMCG_OOM = 3,
10345 	MEMCG_OOM_KILL = 4,
10346 	MEMCG_OOM_GROUP_KILL = 5,
10347 	MEMCG_SWAP_HIGH = 6,
10348 	MEMCG_SWAP_MAX = 7,
10349 	MEMCG_SWAP_FAIL = 8,
10350 	MEMCG_NR_MEMORY_EVENTS = 9,
10351 };
10352 
10353 enum mem_cgroup_events_target {
10354 	MEM_CGROUP_TARGET_THRESH = 0,
10355 	MEM_CGROUP_TARGET_SOFTLIMIT = 1,
10356 	MEM_CGROUP_NTARGETS = 2,
10357 };
10358 
10359 struct memcg_vmstats_percpu {
10360 	long int state[44];
10361 	long unsigned int events[105];
10362 	long int state_prev[44];
10363 	long unsigned int events_prev[105];
10364 	long unsigned int nr_page_events;
10365 	long unsigned int targets[2];
10366 };
10367 
10368 struct mem_cgroup_reclaim_iter {
10369 	struct mem_cgroup *position;
10370 	unsigned int generation;
10371 };
10372 
10373 struct shrinker_info {
10374 	struct callback_head rcu;
10375 	atomic_long_t *nr_deferred;
10376 	long unsigned int *map;
10377 };
10378 
10379 struct lruvec_stats_percpu {
10380 	long int state[40];
10381 	long int state_prev[40];
10382 };
10383 
10384 struct lruvec_stats {
10385 	long int state[40];
10386 	long int state_pending[40];
10387 };
10388 
10389 struct mem_cgroup_per_node {
10390 	struct lruvec lruvec;
10391 	struct lruvec_stats_percpu *lruvec_stats_percpu;
10392 	struct lruvec_stats lruvec_stats;
10393 	long unsigned int lru_zone_size[20];
10394 	struct mem_cgroup_reclaim_iter iter;
10395 	struct shrinker_info *shrinker_info;
10396 	struct rb_node tree_node;
10397 	long unsigned int usage_in_excess;
10398 	bool on_tree;
10399 	struct mem_cgroup *memcg;
10400 };
10401 
10402 struct eventfd_ctx;
10403 
10404 struct mem_cgroup_threshold {
10405 	struct eventfd_ctx *eventfd;
10406 	long unsigned int threshold;
10407 };
10408 
10409 struct mem_cgroup_threshold_ary {
10410 	int current_threshold;
10411 	unsigned int size;
10412 	struct mem_cgroup_threshold entries[0];
10413 };
10414 
10415 struct obj_cgroup {
10416 	struct percpu_ref refcnt;
10417 	struct mem_cgroup *memcg;
10418 	atomic_t nr_charged_bytes;
10419 	union {
10420 		struct list_head list;
10421 		struct callback_head rcu;
10422 	};
10423 };
10424 
10425 struct percpu_cluster {
10426 	struct swap_cluster_info index;
10427 	unsigned int next;
10428 };
10429 
10430 enum fs_value_type {
10431 	fs_value_is_undefined = 0,
10432 	fs_value_is_flag = 1,
10433 	fs_value_is_string = 2,
10434 	fs_value_is_blob = 3,
10435 	fs_value_is_filename = 4,
10436 	fs_value_is_file = 5,
10437 };
10438 
10439 struct fs_parameter {
10440 	const char *key;
10441 	enum fs_value_type type: 8;
10442 	union {
10443 		char *string;
10444 		void *blob;
10445 		struct filename *name;
10446 		struct file *file;
10447 	};
10448 	size_t size;
10449 	int dirfd;
10450 };
10451 
10452 struct fc_log {
10453 	refcount_t usage;
10454 	u8 head;
10455 	u8 tail;
10456 	u8 need_free;
10457 	struct module *owner;
10458 	char *buffer[8];
10459 };
10460 
10461 struct fs_context_operations {
10462 	void (*free)(struct fs_context *);
10463 	int (*dup)(struct fs_context *, struct fs_context *);
10464 	int (*parse_param)(struct fs_context *, struct fs_parameter *);
10465 	int (*parse_monolithic)(struct fs_context *, void *);
10466 	int (*get_tree)(struct fs_context *);
10467 	int (*reconfigure)(struct fs_context *);
10468 };
10469 
10470 struct fs_parse_result {
10471 	bool negated;
10472 	union {
10473 		bool boolean;
10474 		int int_32;
10475 		unsigned int uint_32;
10476 		u64 uint_64;
10477 	};
10478 };
10479 
10480 struct blk_zone;
10481 
10482 typedef int (*report_zones_cb)(struct blk_zone *, unsigned int, void *);
10483 
10484 enum blk_unique_id {
10485 	BLK_UID_T10 = 1,
10486 	BLK_UID_EUI64 = 2,
10487 	BLK_UID_NAA = 3,
10488 };
10489 
10490 struct hd_geometry;
10491 
10492 struct pr_ops;
10493 
10494 struct block_device_operations {
10495 	void (*submit_bio)(struct bio *);
10496 	int (*open)(struct block_device *, fmode_t);
10497 	void (*release)(struct gendisk *, fmode_t);
10498 	int (*rw_page)(struct block_device *, sector_t, struct page *, unsigned int);
10499 	int (*ioctl)(struct block_device *, fmode_t, unsigned int, long unsigned int);
10500 	int (*compat_ioctl)(struct block_device *, fmode_t, unsigned int, long unsigned int);
10501 	unsigned int (*check_events)(struct gendisk *, unsigned int);
10502 	void (*unlock_native_capacity)(struct gendisk *);
10503 	int (*getgeo)(struct block_device *, struct hd_geometry *);
10504 	int (*set_read_only)(struct block_device *, bool);
10505 	void (*swap_slot_free_notify)(struct block_device *, long unsigned int);
10506 	int (*report_zones)(struct gendisk *, sector_t, unsigned int, report_zones_cb, void *);
10507 	char * (*devnode)(struct gendisk *, umode_t *);
10508 	int (*get_unique_id)(struct gendisk *, u8 *, enum blk_unique_id);
10509 	struct module *owner;
10510 	const struct pr_ops *pr_ops;
10511 	int (*alternative_gpt_sector)(struct gendisk *, sector_t *);
10512 };
10513 
10514 struct blk_zone {
10515 	__u64 start;
10516 	__u64 len;
10517 	__u64 wp;
10518 	__u8 type;
10519 	__u8 cond;
10520 	__u8 non_seq;
10521 	__u8 reset;
10522 	__u8 resv[4];
10523 	__u64 capacity;
10524 	__u8 reserved[24];
10525 };
10526 
10527 struct blk_independent_access_range {
10528 	struct kobject kobj;
10529 	struct request_queue *queue;
10530 	sector_t sector;
10531 	sector_t nr_sectors;
10532 };
10533 
10534 struct blk_independent_access_ranges {
10535 	struct kobject kobj;
10536 	bool sysfs_registered;
10537 	unsigned int nr_ia_ranges;
10538 	struct blk_independent_access_range ia_range[0];
10539 };
10540 
10541 enum blk_eh_timer_return {
10542 	BLK_EH_DONE = 0,
10543 	BLK_EH_RESET_TIMER = 1,
10544 };
10545 
10546 struct blk_mq_queue_data;
10547 
10548 struct blk_mq_ops {
10549 	blk_status_t (*queue_rq)(struct blk_mq_hw_ctx *, const struct blk_mq_queue_data *);
10550 	void (*commit_rqs)(struct blk_mq_hw_ctx *);
10551 	void (*queue_rqs)(struct request **);
10552 	int (*get_budget)(struct request_queue *);
10553 	void (*put_budget)(struct request_queue *, int);
10554 	void (*set_rq_budget_token)(struct request *, int);
10555 	int (*get_rq_budget_token)(struct request *);
10556 	enum blk_eh_timer_return (*timeout)(struct request *, bool);
10557 	int (*poll)(struct blk_mq_hw_ctx *, struct io_comp_batch *);
10558 	void (*complete)(struct request *);
10559 	int (*init_hctx)(struct blk_mq_hw_ctx *, void *, unsigned int);
10560 	void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int);
10561 	int (*init_request)(struct blk_mq_tag_set *, struct request *, unsigned int, unsigned int);
10562 	void (*exit_request)(struct blk_mq_tag_set *, struct request *, unsigned int);
10563 	void (*cleanup_rq)(struct request *);
10564 	bool (*busy)(struct request_queue *);
10565 	int (*map_queues)(struct blk_mq_tag_set *);
10566 	void (*show_rq)(struct seq_file *, struct request *);
10567 };
10568 
10569 enum pr_type {
10570 	PR_WRITE_EXCLUSIVE = 1,
10571 	PR_EXCLUSIVE_ACCESS = 2,
10572 	PR_WRITE_EXCLUSIVE_REG_ONLY = 3,
10573 	PR_EXCLUSIVE_ACCESS_REG_ONLY = 4,
10574 	PR_WRITE_EXCLUSIVE_ALL_REGS = 5,
10575 	PR_EXCLUSIVE_ACCESS_ALL_REGS = 6,
10576 };
10577 
10578 struct pr_ops {
10579 	int (*pr_register)(struct block_device *, u64, u64, u32);
10580 	int (*pr_reserve)(struct block_device *, u64, enum pr_type, u32);
10581 	int (*pr_release)(struct block_device *, u64, enum pr_type);
10582 	int (*pr_preempt)(struct block_device *, u64, u64, enum pr_type, bool);
10583 	int (*pr_clear)(struct block_device *, u64);
10584 };
10585 
10586 struct trace_event_raw_initcall_level {
10587 	struct trace_entry ent;
10588 	u32 __data_loc_level;
10589 	char __data[0];
10590 };
10591 
10592 struct trace_event_raw_initcall_start {
10593 	struct trace_entry ent;
10594 	initcall_t func;
10595 	char __data[0];
10596 };
10597 
10598 struct trace_event_raw_initcall_finish {
10599 	struct trace_entry ent;
10600 	initcall_t func;
10601 	int ret;
10602 	char __data[0];
10603 };
10604 
10605 struct trace_event_data_offsets_initcall_level {
10606 	u32 level;
10607 };
10608 
10609 struct trace_event_data_offsets_initcall_start {};
10610 
10611 struct trace_event_data_offsets_initcall_finish {};
10612 
10613 typedef void (*btf_trace_initcall_level)(void *, const char *);
10614 
10615 typedef void (*btf_trace_initcall_start)(void *, initcall_t);
10616 
10617 typedef void (*btf_trace_initcall_finish)(void *, initcall_t, int);
10618 
10619 struct blacklist_entry {
10620 	struct list_head next;
10621 	char *buf;
10622 };
10623 
10624 typedef __u32 Elf32_Word;
10625 
10626 struct elf32_note {
10627 	Elf32_Word n_namesz;
10628 	Elf32_Word n_descsz;
10629 	Elf32_Word n_type;
10630 };
10631 
10632 struct rw_semaphore___2;
10633 
10634 enum {
10635 	PROC_ROOT_INO = 1,
10636 	PROC_IPC_INIT_INO = 4026531839,
10637 	PROC_UTS_INIT_INO = 4026531838,
10638 	PROC_USER_INIT_INO = 4026531837,
10639 	PROC_PID_INIT_INO = 4026531836,
10640 	PROC_CGROUP_INIT_INO = 4026531835,
10641 	PROC_TIME_INIT_INO = 4026531834,
10642 };
10643 
10644 typedef __u16 __le16;
10645 
10646 typedef __u16 __be16;
10647 
10648 typedef __u32 __be32;
10649 
10650 typedef __u64 __be64;
10651 
10652 typedef __u32 __wsum;
10653 
10654 typedef u64 uint64_t;
10655 
10656 typedef unsigned int slab_flags_t;
10657 
10658 typedef void (*smp_call_func_t)(void *);
10659 
10660 struct __call_single_data {
10661 	struct __call_single_node node;
10662 	smp_call_func_t func;
10663 	void *info;
10664 };
10665 
10666 typedef struct __call_single_data call_single_data_t;
10667 
10668 struct raw_notifier_head {
10669 	struct notifier_block *head;
10670 };
10671 
10672 struct page_pool_params {
10673 	unsigned int flags;
10674 	unsigned int order;
10675 	unsigned int pool_size;
10676 	int nid;
10677 	struct device *dev;
10678 	enum dma_data_direction dma_dir;
10679 	unsigned int max_len;
10680 	unsigned int offset;
10681 	void (*init_callback)(struct page *, void *);
10682 	void *init_arg;
10683 };
10684 
10685 struct pp_alloc_cache {
10686 	u32 count;
10687 	struct page *cache[128];
10688 };
10689 
10690 struct ptr_ring {
10691 	int producer;
10692 	spinlock_t producer_lock;
10693 	long: 64;
10694 	long: 64;
10695 	long: 64;
10696 	long: 64;
10697 	long: 64;
10698 	long: 64;
10699 	long: 64;
10700 	int consumer_head;
10701 	int consumer_tail;
10702 	spinlock_t consumer_lock;
10703 	long: 64;
10704 	long: 64;
10705 	long: 64;
10706 	long: 64;
10707 	long: 64;
10708 	long: 64;
10709 	long: 64;
10710 	int size;
10711 	int batch;
10712 	void **queue;
10713 	long: 64;
10714 	long: 64;
10715 	long: 64;
10716 	long: 64;
10717 	long: 64;
10718 	long: 64;
10719 };
10720 
10721 struct page_pool {
10722 	struct page_pool_params p;
10723 	struct delayed_work release_dw;
10724 	void (*disconnect)(void *);
10725 	long unsigned int defer_start;
10726 	long unsigned int defer_warn;
10727 	u32 pages_state_hold_cnt;
10728 	unsigned int frag_offset;
10729 	struct page *frag_page;
10730 	long int frag_users;
10731 	u32 xdp_mem_id;
10732 	long: 32;
10733 	long: 64;
10734 	long: 64;
10735 	long: 64;
10736 	long: 64;
10737 	long: 64;
10738 	struct pp_alloc_cache alloc;
10739 	long: 64;
10740 	long: 64;
10741 	long: 64;
10742 	long: 64;
10743 	long: 64;
10744 	long: 64;
10745 	long: 64;
10746 	struct ptr_ring ring;
10747 	atomic_t pages_state_release_cnt;
10748 	refcount_t user_cnt;
10749 	u64 destroy_cnt;
10750 	long: 64;
10751 	long: 64;
10752 	long: 64;
10753 	long: 64;
10754 	long: 64;
10755 	long: 64;
10756 };
10757 
10758 struct ida {
10759 	struct xarray xa;
10760 };
10761 
10762 typedef __u64 __addrpair;
10763 
10764 typedef __u32 __portpair;
10765 
10766 typedef struct {
10767 	struct net *net;
10768 } possible_net_t;
10769 
10770 struct in6_addr {
10771 	union {
10772 		__u8 u6_addr8[16];
10773 		__be16 u6_addr16[8];
10774 		__be32 u6_addr32[4];
10775 	} in6_u;
10776 };
10777 
10778 struct hlist_nulls_node {
10779 	struct hlist_nulls_node *next;
10780 	struct hlist_nulls_node **pprev;
10781 };
10782 
10783 struct proto;
10784 
10785 struct inet_timewait_death_row;
10786 
10787 struct sock_common {
10788 	union {
10789 		__addrpair skc_addrpair;
10790 		struct {
10791 			__be32 skc_daddr;
10792 			__be32 skc_rcv_saddr;
10793 		};
10794 	};
10795 	union {
10796 		unsigned int skc_hash;
10797 		__u16 skc_u16hashes[2];
10798 	};
10799 	union {
10800 		__portpair skc_portpair;
10801 		struct {
10802 			__be16 skc_dport;
10803 			__u16 skc_num;
10804 		};
10805 	};
10806 	short unsigned int skc_family;
10807 	volatile unsigned char skc_state;
10808 	unsigned char skc_reuse: 4;
10809 	unsigned char skc_reuseport: 1;
10810 	unsigned char skc_ipv6only: 1;
10811 	unsigned char skc_net_refcnt: 1;
10812 	int skc_bound_dev_if;
10813 	union {
10814 		struct hlist_node skc_bind_node;
10815 		struct hlist_node skc_portaddr_node;
10816 	};
10817 	struct proto *skc_prot;
10818 	possible_net_t skc_net;
10819 	struct in6_addr skc_v6_daddr;
10820 	struct in6_addr skc_v6_rcv_saddr;
10821 	atomic64_t skc_cookie;
10822 	union {
10823 		long unsigned int skc_flags;
10824 		struct sock *skc_listener;
10825 		struct inet_timewait_death_row *skc_tw_dr;
10826 	};
10827 	int skc_dontcopy_begin[0];
10828 	union {
10829 		struct hlist_node skc_node;
10830 		struct hlist_nulls_node skc_nulls_node;
10831 	};
10832 	short unsigned int skc_tx_queue_mapping;
10833 	short unsigned int skc_rx_queue_mapping;
10834 	union {
10835 		int skc_incoming_cpu;
10836 		u32 skc_rcv_wnd;
10837 		u32 skc_tw_rcv_nxt;
10838 	};
10839 	refcount_t skc_refcnt;
10840 	int skc_dontcopy_end[0];
10841 	union {
10842 		u32 skc_rxhash;
10843 		u32 skc_window_clamp;
10844 		u32 skc_tw_snd_nxt;
10845 	};
10846 };
10847 
10848 typedef struct {
10849 	spinlock_t slock;
10850 	int owned;
10851 	wait_queue_head_t wq;
10852 	struct lockdep_map dep_map;
10853 } socket_lock_t;
10854 
10855 struct sk_buff;
10856 
10857 struct sk_buff_list {
10858 	struct sk_buff *next;
10859 	struct sk_buff *prev;
10860 };
10861 
10862 struct sk_buff_head {
10863 	union {
10864 		struct {
10865 			struct sk_buff *next;
10866 			struct sk_buff *prev;
10867 		};
10868 		struct sk_buff_list list;
10869 	};
10870 	__u32 qlen;
10871 	spinlock_t lock;
10872 };
10873 
10874 typedef u64 netdev_features_t;
10875 
10876 struct sock_cgroup_data {
10877 	struct cgroup *cgroup;
10878 	u32 classid;
10879 };
10880 
10881 typedef struct {} netns_tracker;
10882 
10883 struct dst_entry;
10884 
10885 struct sk_filter;
10886 
10887 struct socket_wq;
10888 
10889 struct xfrm_policy;
10890 
10891 struct socket;
10892 
10893 struct sock_reuseport;
10894 
10895 struct sock {
10896 	struct sock_common __sk_common;
10897 	struct dst_entry *sk_rx_dst;
10898 	int sk_rx_dst_ifindex;
10899 	u32 sk_rx_dst_cookie;
10900 	socket_lock_t sk_lock;
10901 	atomic_t sk_drops;
10902 	int sk_rcvlowat;
10903 	struct sk_buff_head sk_error_queue;
10904 	struct sk_buff_head sk_receive_queue;
10905 	struct {
10906 		atomic_t rmem_alloc;
10907 		int len;
10908 		struct sk_buff *head;
10909 		struct sk_buff *tail;
10910 	} sk_backlog;
10911 	struct llist_head defer_list;
10912 	int sk_forward_alloc;
10913 	u32 sk_reserved_mem;
10914 	unsigned int sk_ll_usec;
10915 	unsigned int sk_napi_id;
10916 	int sk_rcvbuf;
10917 	struct sk_filter *sk_filter;
10918 	union {
10919 		struct socket_wq *sk_wq;
10920 		struct socket_wq *sk_wq_raw;
10921 	};
10922 	struct xfrm_policy *sk_policy[2];
10923 	struct dst_entry *sk_dst_cache;
10924 	atomic_t sk_omem_alloc;
10925 	int sk_sndbuf;
10926 	int sk_wmem_queued;
10927 	refcount_t sk_wmem_alloc;
10928 	long unsigned int sk_tsq_flags;
10929 	union {
10930 		struct sk_buff *sk_send_head;
10931 		struct rb_root tcp_rtx_queue;
10932 	};
10933 	struct sk_buff_head sk_write_queue;
10934 	__s32 sk_peek_off;
10935 	int sk_write_pending;
10936 	__u32 sk_dst_pending_confirm;
10937 	u32 sk_pacing_status;
10938 	long int sk_sndtimeo;
10939 	struct timer_list sk_timer;
10940 	__u32 sk_priority;
10941 	__u32 sk_mark;
10942 	long unsigned int sk_pacing_rate;
10943 	long unsigned int sk_max_pacing_rate;
10944 	struct page_frag sk_frag;
10945 	netdev_features_t sk_route_caps;
10946 	int sk_gso_type;
10947 	unsigned int sk_gso_max_size;
10948 	gfp_t sk_allocation;
10949 	__u32 sk_txhash;
10950 	u8 sk_gso_disabled: 1;
10951 	u8 sk_kern_sock: 1;
10952 	u8 sk_no_check_tx: 1;
10953 	u8 sk_no_check_rx: 1;
10954 	u8 sk_userlocks: 4;
10955 	u8 sk_pacing_shift;
10956 	u16 sk_type;
10957 	u16 sk_protocol;
10958 	u16 sk_gso_max_segs;
10959 	long unsigned int sk_lingertime;
10960 	struct proto *sk_prot_creator;
10961 	rwlock_t sk_callback_lock;
10962 	int sk_err;
10963 	int sk_err_soft;
10964 	u32 sk_ack_backlog;
10965 	u32 sk_max_ack_backlog;
10966 	kuid_t sk_uid;
10967 	u8 sk_prefer_busy_poll;
10968 	u16 sk_busy_poll_budget;
10969 	spinlock_t sk_peer_lock;
10970 	int sk_bind_phc;
10971 	struct pid *sk_peer_pid;
10972 	const struct cred *sk_peer_cred;
10973 	long int sk_rcvtimeo;
10974 	ktime_t sk_stamp;
10975 	u16 sk_tsflags;
10976 	u8 sk_shutdown;
10977 	u32 sk_tskey;
10978 	atomic_t sk_zckey;
10979 	u8 sk_clockid;
10980 	u8 sk_txtime_deadline_mode: 1;
10981 	u8 sk_txtime_report_errors: 1;
10982 	u8 sk_txtime_unused: 6;
10983 	struct socket *sk_socket;
10984 	void *sk_user_data;
10985 	void *sk_security;
10986 	struct sock_cgroup_data sk_cgrp_data;
10987 	struct mem_cgroup *sk_memcg;
10988 	void (*sk_state_change)(struct sock *);
10989 	void (*sk_data_ready)(struct sock *);
10990 	void (*sk_write_space)(struct sock *);
10991 	void (*sk_error_report)(struct sock *);
10992 	int (*sk_backlog_rcv)(struct sock *, struct sk_buff *);
10993 	void (*sk_destruct)(struct sock *);
10994 	struct sock_reuseport *sk_reuseport_cb;
10995 	struct bpf_local_storage *sk_bpf_storage;
10996 	struct callback_head sk_rcu;
10997 	netns_tracker ns_tracker;
10998 };
10999 
11000 struct rhash_head {
11001 	struct rhash_head *next;
11002 };
11003 
11004 struct rhashtable;
11005 
11006 struct rhashtable_compare_arg {
11007 	struct rhashtable *ht;
11008 	const void *key;
11009 };
11010 
11011 typedef u32 (*rht_hashfn_t)(const void *, u32, u32);
11012 
11013 typedef u32 (*rht_obj_hashfn_t)(const void *, u32, u32);
11014 
11015 typedef int (*rht_obj_cmpfn_t)(struct rhashtable_compare_arg *, const void *);
11016 
11017 struct rhashtable_params {
11018 	u16 nelem_hint;
11019 	u16 key_len;
11020 	u16 key_offset;
11021 	u16 head_offset;
11022 	unsigned int max_size;
11023 	u16 min_size;
11024 	bool automatic_shrinking;
11025 	rht_hashfn_t hashfn;
11026 	rht_obj_hashfn_t obj_hashfn;
11027 	rht_obj_cmpfn_t obj_cmpfn;
11028 };
11029 
11030 struct bucket_table;
11031 
11032 struct rhashtable {
11033 	struct bucket_table *tbl;
11034 	unsigned int key_len;
11035 	unsigned int max_elems;
11036 	struct rhashtable_params p;
11037 	bool rhlist;
11038 	struct work_struct run_work;
11039 	struct mutex mutex;
11040 	spinlock_t lock;
11041 	atomic_t nelems;
11042 };
11043 
11044 struct fs_struct {
11045 	int users;
11046 	spinlock_t lock;
11047 	seqcount_spinlock_t seq;
11048 	int umask;
11049 	int in_exec;
11050 	struct path root;
11051 	struct path pwd;
11052 };
11053 
11054 struct pipe_buffer;
11055 
11056 struct pipe_inode_info {
11057 	struct mutex mutex;
11058 	wait_queue_head_t rd_wait;
11059 	wait_queue_head_t wr_wait;
11060 	unsigned int head;
11061 	unsigned int tail;
11062 	unsigned int max_usage;
11063 	unsigned int ring_size;
11064 	unsigned int nr_accounted;
11065 	unsigned int readers;
11066 	unsigned int writers;
11067 	unsigned int files;
11068 	unsigned int r_counter;
11069 	unsigned int w_counter;
11070 	unsigned int poll_usage;
11071 	struct page *tmp_page;
11072 	struct fasync_struct *fasync_readers;
11073 	struct fasync_struct *fasync_writers;
11074 	struct pipe_buffer *bufs;
11075 	struct user_struct *user;
11076 };
11077 
11078 struct ld_semaphore {
11079 	atomic_long_t count;
11080 	raw_spinlock_t wait_lock;
11081 	unsigned int wait_readers;
11082 	struct list_head read_wait;
11083 	struct list_head write_wait;
11084 	struct lockdep_map dep_map;
11085 };
11086 
11087 typedef unsigned int tcflag_t;
11088 
11089 typedef unsigned char cc_t;
11090 
11091 typedef unsigned int speed_t;
11092 
11093 struct ktermios {
11094 	tcflag_t c_iflag;
11095 	tcflag_t c_oflag;
11096 	tcflag_t c_cflag;
11097 	tcflag_t c_lflag;
11098 	cc_t c_line;
11099 	cc_t c_cc[19];
11100 	speed_t c_ispeed;
11101 	speed_t c_ospeed;
11102 };
11103 
11104 struct winsize {
11105 	short unsigned int ws_row;
11106 	short unsigned int ws_col;
11107 	short unsigned int ws_xpixel;
11108 	short unsigned int ws_ypixel;
11109 };
11110 
11111 struct tty_operations;
11112 
11113 struct tty_ldisc;
11114 
11115 struct tty_struct {
11116 	int magic;
11117 	struct kref kref;
11118 	struct device *dev;
11119 	struct tty_driver *driver;
11120 	const struct tty_operations *ops;
11121 	int index;
11122 	struct ld_semaphore ldisc_sem;
11123 	struct tty_ldisc *ldisc;
11124 	struct mutex atomic_write_lock;
11125 	struct mutex legacy_mutex;
11126 	struct mutex throttle_mutex;
11127 	struct rw_semaphore termios_rwsem;
11128 	struct mutex winsize_mutex;
11129 	struct ktermios termios;
11130 	struct ktermios termios_locked;
11131 	char name[64];
11132 	long unsigned int flags;
11133 	int count;
11134 	struct winsize winsize;
11135 	struct {
11136 		spinlock_t lock;
11137 		bool stopped;
11138 		bool tco_stopped;
11139 		long unsigned int unused[0];
11140 	} flow;
11141 	struct {
11142 		spinlock_t lock;
11143 		struct pid *pgrp;
11144 		struct pid *session;
11145 		unsigned char pktstatus;
11146 		bool packet;
11147 		long unsigned int unused[0];
11148 	} ctrl;
11149 	int hw_stopped;
11150 	unsigned int receive_room;
11151 	int flow_change;
11152 	struct tty_struct *link;
11153 	struct fasync_struct *fasync;
11154 	wait_queue_head_t write_wait;
11155 	wait_queue_head_t read_wait;
11156 	struct work_struct hangup_work;
11157 	void *disc_data;
11158 	void *driver_data;
11159 	spinlock_t files_lock;
11160 	struct list_head tty_files;
11161 	int closing;
11162 	unsigned char *write_buf;
11163 	int write_cnt;
11164 	struct work_struct SAK_work;
11165 	struct tty_port *port;
11166 };
11167 
11168 typedef struct {
11169 	size_t written;
11170 	size_t count;
11171 	union {
11172 		char *buf;
11173 		void *data;
11174 	} arg;
11175 	int error;
11176 } read_descriptor_t;
11177 
11178 struct posix_acl_entry {
11179 	short int e_tag;
11180 	short unsigned int e_perm;
11181 	union {
11182 		kuid_t e_uid;
11183 		kgid_t e_gid;
11184 	};
11185 };
11186 
11187 struct posix_acl {
11188 	refcount_t a_refcount;
11189 	struct callback_head a_rcu;
11190 	unsigned int a_count;
11191 	struct posix_acl_entry a_entries[0];
11192 };
11193 
11194 struct serial_icounter_struct;
11195 
11196 struct serial_struct;
11197 
11198 struct tty_operations {
11199 	struct tty_struct * (*lookup)(struct tty_driver *, struct file *, int);
11200 	int (*install)(struct tty_driver *, struct tty_struct *);
11201 	void (*remove)(struct tty_driver *, struct tty_struct *);
11202 	int (*open)(struct tty_struct *, struct file *);
11203 	void (*close)(struct tty_struct *, struct file *);
11204 	void (*shutdown)(struct tty_struct *);
11205 	void (*cleanup)(struct tty_struct *);
11206 	int (*write)(struct tty_struct *, const unsigned char *, int);
11207 	int (*put_char)(struct tty_struct *, unsigned char);
11208 	void (*flush_chars)(struct tty_struct *);
11209 	unsigned int (*write_room)(struct tty_struct *);
11210 	unsigned int (*chars_in_buffer)(struct tty_struct *);
11211 	int (*ioctl)(struct tty_struct *, unsigned int, long unsigned int);
11212 	long int (*compat_ioctl)(struct tty_struct *, unsigned int, long unsigned int);
11213 	void (*set_termios)(struct tty_struct *, struct ktermios *);
11214 	void (*throttle)(struct tty_struct *);
11215 	void (*unthrottle)(struct tty_struct *);
11216 	void (*stop)(struct tty_struct *);
11217 	void (*start)(struct tty_struct *);
11218 	void (*hangup)(struct tty_struct *);
11219 	int (*break_ctl)(struct tty_struct *, int);
11220 	void (*flush_buffer)(struct tty_struct *);
11221 	void (*set_ldisc)(struct tty_struct *);
11222 	void (*wait_until_sent)(struct tty_struct *, int);
11223 	void (*send_xchar)(struct tty_struct *, char);
11224 	int (*tiocmget)(struct tty_struct *);
11225 	int (*tiocmset)(struct tty_struct *, unsigned int, unsigned int);
11226 	int (*resize)(struct tty_struct *, struct winsize *);
11227 	int (*get_icount)(struct tty_struct *, struct serial_icounter_struct *);
11228 	int (*get_serial)(struct tty_struct *, struct serial_struct *);
11229 	int (*set_serial)(struct tty_struct *, struct serial_struct *);
11230 	void (*show_fdinfo)(struct tty_struct *, struct seq_file *);
11231 	int (*proc_show)(struct seq_file *, void *);
11232 };
11233 
11234 struct proc_dir_entry;
11235 
11236 struct tty_driver {
11237 	int magic;
11238 	struct kref kref;
11239 	struct cdev **cdevs;
11240 	struct module *owner;
11241 	const char *driver_name;
11242 	const char *name;
11243 	int name_base;
11244 	int major;
11245 	int minor_start;
11246 	unsigned int num;
11247 	short int type;
11248 	short int subtype;
11249 	struct ktermios init_termios;
11250 	long unsigned int flags;
11251 	struct proc_dir_entry *proc_entry;
11252 	struct tty_driver *other;
11253 	struct tty_struct **ttys;
11254 	struct tty_port **ports;
11255 	struct ktermios **termios;
11256 	void *driver_state;
11257 	const struct tty_operations *ops;
11258 	struct list_head tty_drivers;
11259 };
11260 
11261 struct tty_ldisc_ops {
11262 	char *name;
11263 	int num;
11264 	int (*open)(struct tty_struct *);
11265 	void (*close)(struct tty_struct *);
11266 	void (*flush_buffer)(struct tty_struct *);
11267 	ssize_t (*read)(struct tty_struct *, struct file *, unsigned char *, size_t, void **, long unsigned int);
11268 	ssize_t (*write)(struct tty_struct *, struct file *, const unsigned char *, size_t);
11269 	int (*ioctl)(struct tty_struct *, unsigned int, long unsigned int);
11270 	int (*compat_ioctl)(struct tty_struct *, unsigned int, long unsigned int);
11271 	void (*set_termios)(struct tty_struct *, struct ktermios *);
11272 	__poll_t (*poll)(struct tty_struct *, struct file *, struct poll_table_struct *);
11273 	void (*hangup)(struct tty_struct *);
11274 	void (*receive_buf)(struct tty_struct *, const unsigned char *, const char *, int);
11275 	void (*write_wakeup)(struct tty_struct *);
11276 	void (*dcd_change)(struct tty_struct *, unsigned int);
11277 	int (*receive_buf2)(struct tty_struct *, const unsigned char *, const char *, int);
11278 	struct module *owner;
11279 };
11280 
11281 struct tty_ldisc {
11282 	struct tty_ldisc_ops *ops;
11283 	struct tty_struct *tty;
11284 };
11285 
11286 struct tty_port_operations {
11287 	int (*carrier_raised)(struct tty_port *);
11288 	void (*dtr_rts)(struct tty_port *, int);
11289 	void (*shutdown)(struct tty_port *);
11290 	int (*activate)(struct tty_port *, struct tty_struct *);
11291 	void (*destruct)(struct tty_port *);
11292 };
11293 
11294 struct tty_port_client_operations {
11295 	int (*receive_buf)(struct tty_port *, const unsigned char *, const unsigned char *, size_t);
11296 	void (*write_wakeup)(struct tty_port *);
11297 };
11298 
11299 struct ref_tracker_dir {};
11300 
11301 struct prot_inuse;
11302 
11303 struct netns_core {
11304 	struct ctl_table_header *sysctl_hdr;
11305 	int sysctl_somaxconn;
11306 	struct prot_inuse *prot_inuse;
11307 };
11308 
11309 struct ipstats_mib;
11310 
11311 struct tcp_mib;
11312 
11313 struct linux_mib;
11314 
11315 struct udp_mib;
11316 
11317 struct linux_tls_mib;
11318 
11319 struct icmp_mib;
11320 
11321 struct icmpmsg_mib;
11322 
11323 struct icmpv6_mib;
11324 
11325 struct icmpv6msg_mib;
11326 
11327 struct netns_mib {
11328 	struct ipstats_mib *ip_statistics;
11329 	struct ipstats_mib *ipv6_statistics;
11330 	struct tcp_mib *tcp_statistics;
11331 	struct linux_mib *net_statistics;
11332 	struct udp_mib *udp_statistics;
11333 	struct udp_mib *udp_stats_in6;
11334 	struct linux_tls_mib *tls_statistics;
11335 	struct udp_mib *udplite_statistics;
11336 	struct udp_mib *udplite_stats_in6;
11337 	struct icmp_mib *icmp_statistics;
11338 	struct icmpmsg_mib *icmpmsg_statistics;
11339 	struct icmpv6_mib *icmpv6_statistics;
11340 	struct icmpv6msg_mib *icmpv6msg_statistics;
11341 	struct proc_dir_entry *proc_net_devsnmp6;
11342 };
11343 
11344 struct netns_packet {
11345 	struct mutex sklist_lock;
11346 	struct hlist_head sklist;
11347 };
11348 
11349 struct netns_unix {
11350 	int sysctl_max_dgram_qlen;
11351 	struct ctl_table_header *ctl;
11352 };
11353 
11354 struct netns_nexthop {
11355 	struct rb_root rb_root;
11356 	struct hlist_head *devhash;
11357 	unsigned int seq;
11358 	u32 last_id_allocated;
11359 	struct blocking_notifier_head notifier_chain;
11360 };
11361 
11362 struct inet_hashinfo;
11363 
11364 struct inet_timewait_death_row {
11365 	atomic_t tw_count;
11366 	char tw_pad[60];
11367 	struct inet_hashinfo *hashinfo;
11368 	int sysctl_max_tw_buckets;
11369 };
11370 
11371 struct local_ports {
11372 	seqlock_t lock;
11373 	int range[2];
11374 	bool warned;
11375 };
11376 
11377 struct ping_group_range {
11378 	seqlock_t lock;
11379 	kgid_t range[2];
11380 };
11381 
11382 typedef struct {
11383 	u64 key[2];
11384 } siphash_key_t;
11385 
11386 struct ipv4_devconf;
11387 
11388 struct ip_ra_chain;
11389 
11390 struct fib_rules_ops;
11391 
11392 struct fib_table;
11393 
11394 struct inet_peer_base;
11395 
11396 struct fqdir;
11397 
11398 struct tcp_congestion_ops;
11399 
11400 struct tcp_fastopen_context;
11401 
11402 struct mr_table;
11403 
11404 struct fib_notifier_ops;
11405 
11406 struct netns_ipv4 {
11407 	struct inet_timewait_death_row tcp_death_row;
11408 	struct ctl_table_header *forw_hdr;
11409 	struct ctl_table_header *frags_hdr;
11410 	struct ctl_table_header *ipv4_hdr;
11411 	struct ctl_table_header *route_hdr;
11412 	struct ctl_table_header *xfrm4_hdr;
11413 	struct ipv4_devconf *devconf_all;
11414 	struct ipv4_devconf *devconf_dflt;
11415 	struct ip_ra_chain *ra_chain;
11416 	struct mutex ra_mutex;
11417 	struct fib_rules_ops *rules_ops;
11418 	struct fib_table *fib_main;
11419 	struct fib_table *fib_default;
11420 	unsigned int fib_rules_require_fldissect;
11421 	bool fib_has_custom_rules;
11422 	bool fib_has_custom_local_routes;
11423 	bool fib_offload_disabled;
11424 	struct hlist_head *fib_table_hash;
11425 	struct sock *fibnl;
11426 	struct sock **icmp_sk;
11427 	struct sock *mc_autojoin_sk;
11428 	struct inet_peer_base *peers;
11429 	struct sock **tcp_sk;
11430 	struct fqdir *fqdir;
11431 	u8 sysctl_icmp_echo_ignore_all;
11432 	u8 sysctl_icmp_echo_enable_probe;
11433 	u8 sysctl_icmp_echo_ignore_broadcasts;
11434 	u8 sysctl_icmp_ignore_bogus_error_responses;
11435 	u8 sysctl_icmp_errors_use_inbound_ifaddr;
11436 	int sysctl_icmp_ratelimit;
11437 	int sysctl_icmp_ratemask;
11438 	u32 ip_rt_min_pmtu;
11439 	int ip_rt_mtu_expires;
11440 	struct local_ports ip_local_ports;
11441 	u8 sysctl_tcp_ecn;
11442 	u8 sysctl_tcp_ecn_fallback;
11443 	u8 sysctl_ip_default_ttl;
11444 	u8 sysctl_ip_no_pmtu_disc;
11445 	u8 sysctl_ip_fwd_use_pmtu;
11446 	u8 sysctl_ip_fwd_update_priority;
11447 	u8 sysctl_ip_nonlocal_bind;
11448 	u8 sysctl_ip_autobind_reuse;
11449 	u8 sysctl_ip_dynaddr;
11450 	u8 sysctl_ip_early_demux;
11451 	u8 sysctl_tcp_early_demux;
11452 	u8 sysctl_udp_early_demux;
11453 	u8 sysctl_nexthop_compat_mode;
11454 	u8 sysctl_fwmark_reflect;
11455 	u8 sysctl_tcp_fwmark_accept;
11456 	u8 sysctl_tcp_mtu_probing;
11457 	int sysctl_tcp_mtu_probe_floor;
11458 	int sysctl_tcp_base_mss;
11459 	int sysctl_tcp_min_snd_mss;
11460 	int sysctl_tcp_probe_threshold;
11461 	u32 sysctl_tcp_probe_interval;
11462 	int sysctl_tcp_keepalive_time;
11463 	int sysctl_tcp_keepalive_intvl;
11464 	u8 sysctl_tcp_keepalive_probes;
11465 	u8 sysctl_tcp_syn_retries;
11466 	u8 sysctl_tcp_synack_retries;
11467 	u8 sysctl_tcp_syncookies;
11468 	u8 sysctl_tcp_migrate_req;
11469 	int sysctl_tcp_reordering;
11470 	u8 sysctl_tcp_retries1;
11471 	u8 sysctl_tcp_retries2;
11472 	u8 sysctl_tcp_orphan_retries;
11473 	u8 sysctl_tcp_tw_reuse;
11474 	int sysctl_tcp_fin_timeout;
11475 	unsigned int sysctl_tcp_notsent_lowat;
11476 	u8 sysctl_tcp_sack;
11477 	u8 sysctl_tcp_window_scaling;
11478 	u8 sysctl_tcp_timestamps;
11479 	u8 sysctl_tcp_early_retrans;
11480 	u8 sysctl_tcp_recovery;
11481 	u8 sysctl_tcp_thin_linear_timeouts;
11482 	u8 sysctl_tcp_slow_start_after_idle;
11483 	u8 sysctl_tcp_retrans_collapse;
11484 	u8 sysctl_tcp_stdurg;
11485 	u8 sysctl_tcp_rfc1337;
11486 	u8 sysctl_tcp_abort_on_overflow;
11487 	u8 sysctl_tcp_fack;
11488 	int sysctl_tcp_max_reordering;
11489 	int sysctl_tcp_adv_win_scale;
11490 	u8 sysctl_tcp_dsack;
11491 	u8 sysctl_tcp_app_win;
11492 	u8 sysctl_tcp_frto;
11493 	u8 sysctl_tcp_nometrics_save;
11494 	u8 sysctl_tcp_no_ssthresh_metrics_save;
11495 	u8 sysctl_tcp_moderate_rcvbuf;
11496 	u8 sysctl_tcp_tso_win_divisor;
11497 	u8 sysctl_tcp_workaround_signed_windows;
11498 	int sysctl_tcp_limit_output_bytes;
11499 	int sysctl_tcp_challenge_ack_limit;
11500 	int sysctl_tcp_min_rtt_wlen;
11501 	u8 sysctl_tcp_min_tso_segs;
11502 	u8 sysctl_tcp_autocorking;
11503 	u8 sysctl_tcp_reflect_tos;
11504 	u8 sysctl_tcp_comp_sack_nr;
11505 	int sysctl_tcp_invalid_ratelimit;
11506 	int sysctl_tcp_pacing_ss_ratio;
11507 	int sysctl_tcp_pacing_ca_ratio;
11508 	int sysctl_tcp_wmem[3];
11509 	int sysctl_tcp_rmem[3];
11510 	long unsigned int sysctl_tcp_comp_sack_delay_ns;
11511 	long unsigned int sysctl_tcp_comp_sack_slack_ns;
11512 	int sysctl_max_syn_backlog;
11513 	int sysctl_tcp_fastopen;
11514 	const struct tcp_congestion_ops *tcp_congestion_control;
11515 	struct tcp_fastopen_context *tcp_fastopen_ctx;
11516 	unsigned int sysctl_tcp_fastopen_blackhole_timeout;
11517 	atomic_t tfo_active_disable_times;
11518 	long unsigned int tfo_active_disable_stamp;
11519 	int sysctl_udp_wmem_min;
11520 	int sysctl_udp_rmem_min;
11521 	u8 sysctl_fib_notify_on_flag_change;
11522 	u8 sysctl_igmp_llm_reports;
11523 	int sysctl_igmp_max_memberships;
11524 	int sysctl_igmp_max_msf;
11525 	int sysctl_igmp_qrv;
11526 	struct ping_group_range ping_group_range;
11527 	atomic_t dev_addr_genid;
11528 	long unsigned int *sysctl_local_reserved_ports;
11529 	int sysctl_ip_prot_sock;
11530 	struct mr_table *mrt;
11531 	u32 sysctl_fib_multipath_hash_fields;
11532 	u8 sysctl_fib_multipath_use_neigh;
11533 	u8 sysctl_fib_multipath_hash_policy;
11534 	struct fib_notifier_ops *notifier_ops;
11535 	unsigned int fib_seq;
11536 	struct fib_notifier_ops *ipmr_notifier_ops;
11537 	unsigned int ipmr_seq;
11538 	atomic_t rt_genid;
11539 	siphash_key_t ip_id_key;
11540 	long: 64;
11541 	long: 64;
11542 	long: 64;
11543 	long: 64;
11544 	long: 64;
11545 };
11546 
11547 struct net_device;
11548 
11549 struct neighbour;
11550 
11551 struct dst_ops {
11552 	short unsigned int family;
11553 	unsigned int gc_thresh;
11554 	int (*gc)(struct dst_ops *);
11555 	struct dst_entry * (*check)(struct dst_entry *, __u32);
11556 	unsigned int (*default_advmss)(const struct dst_entry *);
11557 	unsigned int (*mtu)(const struct dst_entry *);
11558 	u32 * (*cow_metrics)(struct dst_entry *, long unsigned int);
11559 	void (*destroy)(struct dst_entry *);
11560 	void (*ifdown)(struct dst_entry *, struct net_device *, int);
11561 	struct dst_entry * (*negative_advice)(struct dst_entry *);
11562 	void (*link_failure)(struct sk_buff *);
11563 	void (*update_pmtu)(struct dst_entry *, struct sock *, struct sk_buff *, u32, bool);
11564 	void (*redirect)(struct dst_entry *, struct sock *, struct sk_buff *);
11565 	int (*local_out)(struct net *, struct sock *, struct sk_buff *);
11566 	struct neighbour * (*neigh_lookup)(const struct dst_entry *, struct sk_buff *, const void *);
11567 	void (*confirm_neigh)(const struct dst_entry *, const void *);
11568 	struct kmem_cache *kmem_cachep;
11569 	struct percpu_counter pcpuc_entries;
11570 	long: 64;
11571 	long: 64;
11572 	long: 64;
11573 	long: 64;
11574 };
11575 
11576 struct netns_sysctl_ipv6 {
11577 	struct ctl_table_header *hdr;
11578 	struct ctl_table_header *route_hdr;
11579 	struct ctl_table_header *icmp_hdr;
11580 	struct ctl_table_header *frags_hdr;
11581 	struct ctl_table_header *xfrm6_hdr;
11582 	int flush_delay;
11583 	int ip6_rt_max_size;
11584 	int ip6_rt_gc_min_interval;
11585 	int ip6_rt_gc_timeout;
11586 	int ip6_rt_gc_interval;
11587 	int ip6_rt_gc_elasticity;
11588 	int ip6_rt_mtu_expires;
11589 	int ip6_rt_min_advmss;
11590 	u32 multipath_hash_fields;
11591 	u8 multipath_hash_policy;
11592 	u8 bindv6only;
11593 	u8 flowlabel_consistency;
11594 	u8 auto_flowlabels;
11595 	int icmpv6_time;
11596 	u8 icmpv6_echo_ignore_all;
11597 	u8 icmpv6_echo_ignore_multicast;
11598 	u8 icmpv6_echo_ignore_anycast;
11599 	long unsigned int icmpv6_ratemask[4];
11600 	long unsigned int *icmpv6_ratemask_ptr;
11601 	u8 anycast_src_echo_reply;
11602 	u8 ip_nonlocal_bind;
11603 	u8 fwmark_reflect;
11604 	u8 flowlabel_state_ranges;
11605 	int idgen_retries;
11606 	int idgen_delay;
11607 	int flowlabel_reflect;
11608 	int max_dst_opts_cnt;
11609 	int max_hbh_opts_cnt;
11610 	int max_dst_opts_len;
11611 	int max_hbh_opts_len;
11612 	int seg6_flowlabel;
11613 	u32 ioam6_id;
11614 	u64 ioam6_id_wide;
11615 	bool skip_notify_on_dev_down;
11616 	u8 fib_notify_on_flag_change;
11617 };
11618 
11619 struct ipv6_devconf;
11620 
11621 struct fib6_info;
11622 
11623 struct rt6_info;
11624 
11625 struct rt6_statistics;
11626 
11627 struct fib6_table;
11628 
11629 struct seg6_pernet_data;
11630 
11631 struct ioam6_pernet_data;
11632 
11633 struct netns_ipv6 {
11634 	struct dst_ops ip6_dst_ops;
11635 	struct netns_sysctl_ipv6 sysctl;
11636 	struct ipv6_devconf *devconf_all;
11637 	struct ipv6_devconf *devconf_dflt;
11638 	struct inet_peer_base *peers;
11639 	struct fqdir *fqdir;
11640 	struct fib6_info *fib6_null_entry;
11641 	struct rt6_info *ip6_null_entry;
11642 	struct rt6_statistics *rt6_stats;
11643 	struct timer_list ip6_fib_timer;
11644 	struct hlist_head *fib_table_hash;
11645 	struct fib6_table *fib6_main_tbl;
11646 	struct list_head fib6_walkers;
11647 	rwlock_t fib6_walker_lock;
11648 	spinlock_t fib6_gc_lock;
11649 	unsigned int ip6_rt_gc_expire;
11650 	long unsigned int ip6_rt_last_gc;
11651 	unsigned int fib6_rules_require_fldissect;
11652 	bool fib6_has_custom_rules;
11653 	unsigned int fib6_routes_require_src;
11654 	struct rt6_info *ip6_prohibit_entry;
11655 	struct rt6_info *ip6_blk_hole_entry;
11656 	struct fib6_table *fib6_local_tbl;
11657 	struct fib_rules_ops *fib6_rules_ops;
11658 	struct sock **icmp_sk;
11659 	struct sock *ndisc_sk;
11660 	struct sock *tcp_sk;
11661 	struct sock *igmp_sk;
11662 	struct sock *mc_autojoin_sk;
11663 	atomic_t dev_addr_genid;
11664 	atomic_t fib6_sernum;
11665 	struct seg6_pernet_data *seg6_data;
11666 	struct fib_notifier_ops *notifier_ops;
11667 	struct fib_notifier_ops *ip6mr_notifier_ops;
11668 	unsigned int ipmr_seq;
11669 	struct {
11670 		struct hlist_head head;
11671 		spinlock_t lock;
11672 		u32 seq;
11673 	} ip6addrlbl_table;
11674 	struct ioam6_pernet_data *ioam6_data;
11675 	long: 64;
11676 	long: 64;
11677 	long: 64;
11678 	long: 64;
11679 	long: 64;
11680 	long: 64;
11681 	long: 64;
11682 };
11683 
11684 struct nf_logger;
11685 
11686 struct nf_hook_entries;
11687 
11688 struct netns_nf {
11689 	struct proc_dir_entry *proc_netfilter;
11690 	const struct nf_logger *nf_loggers[13];
11691 	struct ctl_table_header *nf_log_dir_header;
11692 	struct nf_hook_entries *hooks_ipv4[5];
11693 	struct nf_hook_entries *hooks_ipv6[5];
11694 	unsigned int defrag_ipv4_users;
11695 	unsigned int defrag_ipv6_users;
11696 };
11697 
11698 struct nf_ct_event_notifier;
11699 
11700 struct nf_generic_net {
11701 	unsigned int timeout;
11702 };
11703 
11704 struct nf_tcp_net {
11705 	unsigned int timeouts[14];
11706 	u8 tcp_loose;
11707 	u8 tcp_be_liberal;
11708 	u8 tcp_max_retrans;
11709 	u8 tcp_ignore_invalid_rst;
11710 };
11711 
11712 struct nf_udp_net {
11713 	unsigned int timeouts[2];
11714 };
11715 
11716 struct nf_icmp_net {
11717 	unsigned int timeout;
11718 };
11719 
11720 struct nf_dccp_net {
11721 	u8 dccp_loose;
11722 	unsigned int dccp_timeout[10];
11723 };
11724 
11725 struct nf_sctp_net {
11726 	unsigned int timeouts[10];
11727 };
11728 
11729 struct nf_ip_net {
11730 	struct nf_generic_net generic;
11731 	struct nf_tcp_net tcp;
11732 	struct nf_udp_net udp;
11733 	struct nf_icmp_net icmp;
11734 	struct nf_icmp_net icmpv6;
11735 	struct nf_dccp_net dccp;
11736 	struct nf_sctp_net sctp;
11737 };
11738 
11739 struct ct_pcpu;
11740 
11741 struct ip_conntrack_stat;
11742 
11743 struct netns_ct {
11744 	u8 sysctl_log_invalid;
11745 	u8 sysctl_events;
11746 	u8 sysctl_acct;
11747 	u8 sysctl_auto_assign_helper;
11748 	u8 sysctl_tstamp;
11749 	u8 sysctl_checksum;
11750 	struct ct_pcpu *pcpu_lists;
11751 	struct ip_conntrack_stat *stat;
11752 	struct nf_ct_event_notifier *nf_conntrack_event_cb;
11753 	struct nf_ip_net nf_ct_proto;
11754 };
11755 
11756 struct netns_bpf {
11757 	struct bpf_prog_array *run_array[2];
11758 	struct bpf_prog *progs[2];
11759 	struct list_head links[2];
11760 };
11761 
11762 struct xfrm_policy_hash {
11763 	struct hlist_head *table;
11764 	unsigned int hmask;
11765 	u8 dbits4;
11766 	u8 sbits4;
11767 	u8 dbits6;
11768 	u8 sbits6;
11769 };
11770 
11771 struct xfrm_policy_hthresh {
11772 	struct work_struct work;
11773 	seqlock_t lock;
11774 	u8 lbits4;
11775 	u8 rbits4;
11776 	u8 lbits6;
11777 	u8 rbits6;
11778 };
11779 
11780 struct netns_xfrm {
11781 	struct list_head state_all;
11782 	struct hlist_head *state_bydst;
11783 	struct hlist_head *state_bysrc;
11784 	struct hlist_head *state_byspi;
11785 	struct hlist_head *state_byseq;
11786 	unsigned int state_hmask;
11787 	unsigned int state_num;
11788 	struct work_struct state_hash_work;
11789 	struct list_head policy_all;
11790 	struct hlist_head *policy_byidx;
11791 	unsigned int policy_idx_hmask;
11792 	struct hlist_head policy_inexact[3];
11793 	struct xfrm_policy_hash policy_bydst[3];
11794 	unsigned int policy_count[6];
11795 	struct work_struct policy_hash_work;
11796 	struct xfrm_policy_hthresh policy_hthresh;
11797 	struct list_head inexact_bins;
11798 	struct sock *nlsk;
11799 	struct sock *nlsk_stash;
11800 	u32 sysctl_aevent_etime;
11801 	u32 sysctl_aevent_rseqth;
11802 	int sysctl_larval_drop;
11803 	u32 sysctl_acq_expires;
11804 	u8 policy_default;
11805 	struct ctl_table_header *sysctl_hdr;
11806 	long: 64;
11807 	long: 64;
11808 	long: 64;
11809 	long: 64;
11810 	long: 64;
11811 	long: 64;
11812 	struct dst_ops xfrm4_dst_ops;
11813 	struct dst_ops xfrm6_dst_ops;
11814 	spinlock_t xfrm_state_lock;
11815 	seqcount_spinlock_t xfrm_state_hash_generation;
11816 	seqcount_spinlock_t xfrm_policy_hash_generation;
11817 	spinlock_t xfrm_policy_lock;
11818 	struct mutex xfrm_cfg_mutex;
11819 };
11820 
11821 struct mpls_route;
11822 
11823 struct netns_mpls {
11824 	int ip_ttl_propagate;
11825 	int default_ttl;
11826 	size_t platform_labels;
11827 	struct mpls_route **platform_label;
11828 	struct ctl_table_header *ctl;
11829 };
11830 
11831 struct netns_xdp {
11832 	struct mutex lock;
11833 	struct hlist_head list;
11834 };
11835 
11836 struct uevent_sock;
11837 
11838 struct net_generic;
11839 
11840 struct net {
11841 	refcount_t passive;
11842 	spinlock_t rules_mod_lock;
11843 	unsigned int dev_unreg_count;
11844 	unsigned int dev_base_seq;
11845 	int ifindex;
11846 	spinlock_t nsid_lock;
11847 	atomic_t fnhe_genid;
11848 	struct list_head list;
11849 	struct list_head exit_list;
11850 	struct llist_node cleanup_list;
11851 	struct key_tag *key_domain;
11852 	struct user_namespace *user_ns;
11853 	struct ucounts *ucounts;
11854 	struct idr netns_ids;
11855 	struct ns_common ns;
11856 	struct ref_tracker_dir refcnt_tracker;
11857 	struct list_head dev_base_head;
11858 	struct proc_dir_entry *proc_net;
11859 	struct proc_dir_entry *proc_net_stat;
11860 	struct ctl_table_set sysctls;
11861 	struct sock *rtnl;
11862 	struct sock *genl_sock;
11863 	struct uevent_sock *uevent_sock;
11864 	struct hlist_head *dev_name_head;
11865 	struct hlist_head *dev_index_head;
11866 	struct raw_notifier_head netdev_chain;
11867 	u32 hash_mix;
11868 	struct net_device *loopback_dev;
11869 	struct list_head rules_ops;
11870 	struct netns_core core;
11871 	struct netns_mib mib;
11872 	struct netns_packet packet;
11873 	struct netns_unix unx;
11874 	struct netns_nexthop nexthop;
11875 	long: 64;
11876 	long: 64;
11877 	long: 64;
11878 	long: 64;
11879 	long: 64;
11880 	long: 64;
11881 	long: 64;
11882 	struct netns_ipv4 ipv4;
11883 	struct netns_ipv6 ipv6;
11884 	struct netns_nf nf;
11885 	struct netns_ct ct;
11886 	struct net_generic *gen;
11887 	struct netns_bpf bpf;
11888 	long: 64;
11889 	long: 64;
11890 	long: 64;
11891 	long: 64;
11892 	struct netns_xfrm xfrm;
11893 	u64 net_cookie;
11894 	struct netns_mpls mpls;
11895 	struct netns_xdp xdp;
11896 	struct sock *diag_nlsk;
11897 	long: 64;
11898 	long: 64;
11899 	long: 64;
11900 	long: 64;
11901 	long: 64;
11902 	long: 64;
11903 	long: 64;
11904 };
11905 
11906 typedef struct {
11907 	local64_t v;
11908 } u64_stats_t;
11909 
11910 enum suspend_stat_step {
11911 	SUSPEND_FREEZE = 1,
11912 	SUSPEND_PREPARE = 2,
11913 	SUSPEND_SUSPEND = 3,
11914 	SUSPEND_SUSPEND_LATE = 4,
11915 	SUSPEND_SUSPEND_NOIRQ = 5,
11916 	SUSPEND_RESUME_NOIRQ = 6,
11917 	SUSPEND_RESUME_EARLY = 7,
11918 	SUSPEND_RESUME = 8,
11919 };
11920 
11921 struct suspend_stats {
11922 	int success;
11923 	int fail;
11924 	int failed_freeze;
11925 	int failed_prepare;
11926 	int failed_suspend;
11927 	int failed_suspend_late;
11928 	int failed_suspend_noirq;
11929 	int failed_resume;
11930 	int failed_resume_early;
11931 	int failed_resume_noirq;
11932 	int last_failed_dev;
11933 	char failed_devs[80];
11934 	int last_failed_errno;
11935 	int errno[2];
11936 	int last_failed_step;
11937 	enum suspend_stat_step failed_steps[2];
11938 };
11939 
11940 enum {
11941 	Root_NFS = 255,
11942 	Root_CIFS = 254,
11943 	Root_RAM0 = 1048576,
11944 	Root_RAM1 = 1048577,
11945 	Root_FD0 = 2097152,
11946 	Root_HDA1 = 3145729,
11947 	Root_HDA2 = 3145730,
11948 	Root_SDA1 = 8388609,
11949 	Root_SDA2 = 8388610,
11950 	Root_HDC1 = 23068673,
11951 	Root_SR0 = 11534336,
11952 };
11953 
11954 typedef short unsigned int __kernel_sa_family_t;
11955 
11956 struct __kernel_sockaddr_storage {
11957 	union {
11958 		struct {
11959 			__kernel_sa_family_t ss_family;
11960 			char __data[126];
11961 		};
11962 		void *__align;
11963 	};
11964 };
11965 
11966 typedef __kernel_sa_family_t sa_family_t;
11967 
11968 struct sockaddr {
11969 	sa_family_t sa_family;
11970 	char sa_data[14];
11971 };
11972 
11973 struct msghdr {
11974 	void *msg_name;
11975 	int msg_namelen;
11976 	struct iov_iter msg_iter;
11977 	union {
11978 		void *msg_control;
11979 		void *msg_control_user;
11980 	};
11981 	bool msg_control_is_user: 1;
11982 	__kernel_size_t msg_controllen;
11983 	unsigned int msg_flags;
11984 	struct kiocb *msg_iocb;
11985 };
11986 
11987 struct xdr_buf {
11988 	struct kvec head[1];
11989 	struct kvec tail[1];
11990 	struct bio_vec *bvec;
11991 	struct page **pages;
11992 	unsigned int page_base;
11993 	unsigned int page_len;
11994 	unsigned int flags;
11995 	unsigned int buflen;
11996 	unsigned int len;
11997 };
11998 
11999 struct rpc_rqst;
12000 
12001 struct xdr_stream {
12002 	__be32 *p;
12003 	struct xdr_buf *buf;
12004 	__be32 *end;
12005 	struct kvec *iov;
12006 	struct kvec scratch;
12007 	struct page **page_ptr;
12008 	unsigned int nwords;
12009 	struct rpc_rqst *rqst;
12010 };
12011 
12012 struct rpc_xprt;
12013 
12014 struct rpc_task;
12015 
12016 struct rpc_cred;
12017 
12018 struct rpc_rqst {
12019 	struct rpc_xprt *rq_xprt;
12020 	struct xdr_buf rq_snd_buf;
12021 	struct xdr_buf rq_rcv_buf;
12022 	struct rpc_task *rq_task;
12023 	struct rpc_cred *rq_cred;
12024 	__be32 rq_xid;
12025 	int rq_cong;
12026 	u32 rq_seqno;
12027 	int rq_enc_pages_num;
12028 	struct page **rq_enc_pages;
12029 	void (*rq_release_snd_buf)(struct rpc_rqst *);
12030 	union {
12031 		struct list_head rq_list;
12032 		struct rb_node rq_recv;
12033 	};
12034 	struct list_head rq_xmit;
12035 	struct list_head rq_xmit2;
12036 	void *rq_buffer;
12037 	size_t rq_callsize;
12038 	void *rq_rbuffer;
12039 	size_t rq_rcvsize;
12040 	size_t rq_xmit_bytes_sent;
12041 	size_t rq_reply_bytes_recvd;
12042 	struct xdr_buf rq_private_buf;
12043 	long unsigned int rq_majortimeo;
12044 	long unsigned int rq_minortimeo;
12045 	long unsigned int rq_timeout;
12046 	ktime_t rq_rtt;
12047 	unsigned int rq_retries;
12048 	unsigned int rq_connect_cookie;
12049 	atomic_t rq_pin;
12050 	u32 rq_bytes_sent;
12051 	ktime_t rq_xtime;
12052 	int rq_ntrans;
12053 };
12054 
12055 typedef void (*kxdreproc_t)(struct rpc_rqst *, struct xdr_stream *, const void *);
12056 
12057 typedef int (*kxdrdproc_t)(struct rpc_rqst *, struct xdr_stream *, void *);
12058 
12059 struct rpc_procinfo;
12060 
12061 struct rpc_message {
12062 	const struct rpc_procinfo *rpc_proc;
12063 	void *rpc_argp;
12064 	void *rpc_resp;
12065 	const struct cred *rpc_cred;
12066 };
12067 
12068 struct rpc_procinfo {
12069 	u32 p_proc;
12070 	kxdreproc_t p_encode;
12071 	kxdrdproc_t p_decode;
12072 	unsigned int p_arglen;
12073 	unsigned int p_replen;
12074 	unsigned int p_timer;
12075 	u32 p_statidx;
12076 	const char *p_name;
12077 };
12078 
12079 struct rpc_wait {
12080 	struct list_head list;
12081 	struct list_head links;
12082 	struct list_head timer_list;
12083 };
12084 
12085 struct rpc_wait_queue;
12086 
12087 struct rpc_call_ops;
12088 
12089 struct rpc_clnt;
12090 
12091 struct rpc_task {
12092 	atomic_t tk_count;
12093 	int tk_status;
12094 	struct list_head tk_task;
12095 	void (*tk_callback)(struct rpc_task *);
12096 	void (*tk_action)(struct rpc_task *);
12097 	long unsigned int tk_timeout;
12098 	long unsigned int tk_runstate;
12099 	struct rpc_wait_queue *tk_waitqueue;
12100 	union {
12101 		struct work_struct tk_work;
12102 		struct rpc_wait tk_wait;
12103 	} u;
12104 	int tk_rpc_status;
12105 	struct rpc_message tk_msg;
12106 	void *tk_calldata;
12107 	const struct rpc_call_ops *tk_ops;
12108 	struct rpc_clnt *tk_client;
12109 	struct rpc_xprt *tk_xprt;
12110 	struct rpc_cred *tk_op_cred;
12111 	struct rpc_rqst *tk_rqstp;
12112 	struct workqueue_struct *tk_workqueue;
12113 	ktime_t tk_start;
12114 	pid_t tk_owner;
12115 	short unsigned int tk_flags;
12116 	short unsigned int tk_timeouts;
12117 	short unsigned int tk_pid;
12118 	unsigned char tk_priority: 2;
12119 	unsigned char tk_garb_retry: 2;
12120 	unsigned char tk_cred_retry: 2;
12121 	unsigned char tk_rebind_retry: 2;
12122 };
12123 
12124 struct rpc_timer {
12125 	struct list_head list;
12126 	long unsigned int expires;
12127 	struct delayed_work dwork;
12128 };
12129 
12130 struct rpc_wait_queue {
12131 	spinlock_t lock;
12132 	struct list_head tasks[4];
12133 	unsigned char maxpriority;
12134 	unsigned char priority;
12135 	unsigned char nr;
12136 	short unsigned int qlen;
12137 	struct rpc_timer timer_list;
12138 	const char *name;
12139 };
12140 
12141 struct rpc_call_ops {
12142 	void (*rpc_call_prepare)(struct rpc_task *, void *);
12143 	void (*rpc_call_done)(struct rpc_task *, void *);
12144 	void (*rpc_count_stats)(struct rpc_task *, void *);
12145 	void (*rpc_release)(void *);
12146 };
12147 
12148 struct rpc_iostats;
12149 
12150 struct rpc_pipe_dir_head {
12151 	struct list_head pdh_entries;
12152 	struct dentry *pdh_dentry;
12153 };
12154 
12155 struct rpc_rtt {
12156 	long unsigned int timeo;
12157 	long unsigned int srtt[5];
12158 	long unsigned int sdrtt[5];
12159 	int ntimeouts[5];
12160 };
12161 
12162 struct rpc_timeout {
12163 	long unsigned int to_initval;
12164 	long unsigned int to_maxval;
12165 	long unsigned int to_increment;
12166 	unsigned int to_retries;
12167 	unsigned char to_exponential;
12168 };
12169 
12170 struct rpc_sysfs_client;
12171 
12172 struct rpc_xprt_switch;
12173 
12174 struct rpc_xprt_iter_ops;
12175 
12176 struct rpc_xprt_iter {
12177 	struct rpc_xprt_switch *xpi_xpswitch;
12178 	struct rpc_xprt *xpi_cursor;
12179 	const struct rpc_xprt_iter_ops *xpi_ops;
12180 };
12181 
12182 struct rpc_auth;
12183 
12184 struct rpc_stat;
12185 
12186 struct rpc_program;
12187 
12188 struct rpc_clnt {
12189 	refcount_t cl_count;
12190 	unsigned int cl_clid;
12191 	struct list_head cl_clients;
12192 	struct list_head cl_tasks;
12193 	atomic_t cl_pid;
12194 	spinlock_t cl_lock;
12195 	struct rpc_xprt *cl_xprt;
12196 	const struct rpc_procinfo *cl_procinfo;
12197 	u32 cl_prog;
12198 	u32 cl_vers;
12199 	u32 cl_maxproc;
12200 	struct rpc_auth *cl_auth;
12201 	struct rpc_stat *cl_stats;
12202 	struct rpc_iostats *cl_metrics;
12203 	unsigned int cl_softrtry: 1;
12204 	unsigned int cl_softerr: 1;
12205 	unsigned int cl_discrtry: 1;
12206 	unsigned int cl_noretranstimeo: 1;
12207 	unsigned int cl_autobind: 1;
12208 	unsigned int cl_chatty: 1;
12209 	struct rpc_rtt *cl_rtt;
12210 	const struct rpc_timeout *cl_timeout;
12211 	atomic_t cl_swapper;
12212 	int cl_nodelen;
12213 	char cl_nodename[65];
12214 	struct rpc_pipe_dir_head cl_pipedir_objects;
12215 	struct rpc_clnt *cl_parent;
12216 	struct rpc_rtt cl_rtt_default;
12217 	struct rpc_timeout cl_timeout_default;
12218 	const struct rpc_program *cl_program;
12219 	const char *cl_principal;
12220 	struct rpc_sysfs_client *cl_sysfs;
12221 	union {
12222 		struct rpc_xprt_iter cl_xpi;
12223 		struct work_struct cl_work;
12224 	};
12225 	const struct cred *cl_cred;
12226 	unsigned int cl_max_connect;
12227 };
12228 
12229 struct svc_xprt;
12230 
12231 struct rpc_sysfs_xprt;
12232 
12233 struct rpc_xprt_ops;
12234 
12235 struct xprt_class;
12236 
12237 struct rpc_xprt {
12238 	struct kref kref;
12239 	const struct rpc_xprt_ops *ops;
12240 	unsigned int id;
12241 	const struct rpc_timeout *timeout;
12242 	struct __kernel_sockaddr_storage addr;
12243 	size_t addrlen;
12244 	int prot;
12245 	long unsigned int cong;
12246 	long unsigned int cwnd;
12247 	size_t max_payload;
12248 	struct rpc_wait_queue binding;
12249 	struct rpc_wait_queue sending;
12250 	struct rpc_wait_queue pending;
12251 	struct rpc_wait_queue backlog;
12252 	struct list_head free;
12253 	unsigned int max_reqs;
12254 	unsigned int min_reqs;
12255 	unsigned int num_reqs;
12256 	long unsigned int state;
12257 	unsigned char resvport: 1;
12258 	unsigned char reuseport: 1;
12259 	atomic_t swapper;
12260 	unsigned int bind_index;
12261 	struct list_head xprt_switch;
12262 	long unsigned int bind_timeout;
12263 	long unsigned int reestablish_timeout;
12264 	unsigned int connect_cookie;
12265 	struct work_struct task_cleanup;
12266 	struct timer_list timer;
12267 	long unsigned int last_used;
12268 	long unsigned int idle_timeout;
12269 	long unsigned int connect_timeout;
12270 	long unsigned int max_reconnect_timeout;
12271 	atomic_long_t queuelen;
12272 	spinlock_t transport_lock;
12273 	spinlock_t reserve_lock;
12274 	spinlock_t queue_lock;
12275 	u32 xid;
12276 	struct rpc_task *snd_task;
12277 	struct list_head xmit_queue;
12278 	atomic_long_t xmit_queuelen;
12279 	struct svc_xprt *bc_xprt;
12280 	struct rb_root recv_queue;
12281 	struct {
12282 		long unsigned int bind_count;
12283 		long unsigned int connect_count;
12284 		long unsigned int connect_start;
12285 		long unsigned int connect_time;
12286 		long unsigned int sends;
12287 		long unsigned int recvs;
12288 		long unsigned int bad_xids;
12289 		long unsigned int max_slots;
12290 		long long unsigned int req_u;
12291 		long long unsigned int bklog_u;
12292 		long long unsigned int sending_u;
12293 		long long unsigned int pending_u;
12294 	} stat;
12295 	struct net *xprt_net;
12296 	const char *servername;
12297 	const char *address_strings[6];
12298 	struct callback_head rcu;
12299 	const struct xprt_class *xprt_class;
12300 	struct rpc_sysfs_xprt *xprt_sysfs;
12301 	bool main;
12302 };
12303 
12304 struct rpc_credops;
12305 
12306 struct rpc_cred {
12307 	struct hlist_node cr_hash;
12308 	struct list_head cr_lru;
12309 	struct callback_head cr_rcu;
12310 	struct rpc_auth *cr_auth;
12311 	const struct rpc_credops *cr_ops;
12312 	long unsigned int cr_expire;
12313 	long unsigned int cr_flags;
12314 	refcount_t cr_count;
12315 	const struct cred *cr_cred;
12316 };
12317 
12318 typedef u32 rpc_authflavor_t;
12319 
12320 struct flow_dissector {
12321 	unsigned int used_keys;
12322 	short unsigned int offset[28];
12323 };
12324 
12325 typedef unsigned int sk_buff_data_t;
12326 
12327 struct skb_ext;
12328 
12329 struct sk_buff {
12330 	union {
12331 		struct {
12332 			struct sk_buff *next;
12333 			struct sk_buff *prev;
12334 			union {
12335 				struct net_device *dev;
12336 				long unsigned int dev_scratch;
12337 			};
12338 		};
12339 		struct rb_node rbnode;
12340 		struct list_head list;
12341 		struct llist_node ll_node;
12342 	};
12343 	union {
12344 		struct sock *sk;
12345 		int ip_defrag_offset;
12346 	};
12347 	union {
12348 		ktime_t tstamp;
12349 		u64 skb_mstamp_ns;
12350 	};
12351 	char cb[48];
12352 	union {
12353 		struct {
12354 			long unsigned int _skb_refdst;
12355 			void (*destructor)(struct sk_buff *);
12356 		};
12357 		struct list_head tcp_tsorted_anchor;
12358 		long unsigned int _sk_redir;
12359 	};
12360 	long unsigned int _nfct;
12361 	unsigned int len;
12362 	unsigned int data_len;
12363 	__u16 mac_len;
12364 	__u16 hdr_len;
12365 	__u16 queue_mapping;
12366 	__u8 __cloned_offset[0];
12367 	__u8 cloned: 1;
12368 	__u8 nohdr: 1;
12369 	__u8 fclone: 2;
12370 	__u8 peeked: 1;
12371 	__u8 head_frag: 1;
12372 	__u8 pfmemalloc: 1;
12373 	__u8 pp_recycle: 1;
12374 	__u8 active_extensions;
12375 	union {
12376 		struct {
12377 			__u8 __pkt_type_offset[0];
12378 			__u8 pkt_type: 3;
12379 			__u8 ignore_df: 1;
12380 			__u8 nf_trace: 1;
12381 			__u8 ip_summed: 2;
12382 			__u8 ooo_okay: 1;
12383 			__u8 l4_hash: 1;
12384 			__u8 sw_hash: 1;
12385 			__u8 wifi_acked_valid: 1;
12386 			__u8 wifi_acked: 1;
12387 			__u8 no_fcs: 1;
12388 			__u8 encapsulation: 1;
12389 			__u8 encap_hdr_csum: 1;
12390 			__u8 csum_valid: 1;
12391 			__u8 __pkt_vlan_present_offset[0];
12392 			__u8 vlan_present: 1;
12393 			__u8 csum_complete_sw: 1;
12394 			__u8 csum_level: 2;
12395 			__u8 csum_not_inet: 1;
12396 			__u8 dst_pending_confirm: 1;
12397 			__u8 ndisc_nodetype: 2;
12398 			__u8 ipvs_property: 1;
12399 			__u8 inner_protocol_type: 1;
12400 			__u8 remcsum_offload: 1;
12401 			__u8 tc_skip_classify: 1;
12402 			__u8 tc_at_ingress: 1;
12403 			__u8 redirected: 1;
12404 			__u8 nf_skip_egress: 1;
12405 			__u8 slow_gro: 1;
12406 			__u16 tc_index;
12407 			union {
12408 				__wsum csum;
12409 				struct {
12410 					__u16 csum_start;
12411 					__u16 csum_offset;
12412 				};
12413 			};
12414 			__u32 priority;
12415 			int skb_iif;
12416 			__u32 hash;
12417 			__be16 vlan_proto;
12418 			__u16 vlan_tci;
12419 			union {
12420 				unsigned int napi_id;
12421 				unsigned int sender_cpu;
12422 			};
12423 			__u32 secmark;
12424 			union {
12425 				__u32 mark;
12426 				__u32 reserved_tailroom;
12427 			};
12428 			union {
12429 				__be16 inner_protocol;
12430 				__u8 inner_ipproto;
12431 			};
12432 			__u16 inner_transport_header;
12433 			__u16 inner_network_header;
12434 			__u16 inner_mac_header;
12435 			__be16 protocol;
12436 			__u16 transport_header;
12437 			__u16 network_header;
12438 			__u16 mac_header;
12439 		};
12440 		struct {
12441 			__u8 __pkt_type_offset[0];
12442 			__u8 pkt_type: 3;
12443 			__u8 ignore_df: 1;
12444 			__u8 nf_trace: 1;
12445 			__u8 ip_summed: 2;
12446 			__u8 ooo_okay: 1;
12447 			__u8 l4_hash: 1;
12448 			__u8 sw_hash: 1;
12449 			__u8 wifi_acked_valid: 1;
12450 			__u8 wifi_acked: 1;
12451 			__u8 no_fcs: 1;
12452 			__u8 encapsulation: 1;
12453 			__u8 encap_hdr_csum: 1;
12454 			__u8 csum_valid: 1;
12455 			__u8 __pkt_vlan_present_offset[0];
12456 			__u8 vlan_present: 1;
12457 			__u8 csum_complete_sw: 1;
12458 			__u8 csum_level: 2;
12459 			__u8 csum_not_inet: 1;
12460 			__u8 dst_pending_confirm: 1;
12461 			__u8 ndisc_nodetype: 2;
12462 			__u8 ipvs_property: 1;
12463 			__u8 inner_protocol_type: 1;
12464 			__u8 remcsum_offload: 1;
12465 			__u8 tc_skip_classify: 1;
12466 			__u8 tc_at_ingress: 1;
12467 			__u8 redirected: 1;
12468 			__u8 nf_skip_egress: 1;
12469 			__u8 slow_gro: 1;
12470 			__u16 tc_index;
12471 			union {
12472 				__wsum csum;
12473 				struct {
12474 					__u16 csum_start;
12475 					__u16 csum_offset;
12476 				};
12477 			};
12478 			__u32 priority;
12479 			int skb_iif;
12480 			__u32 hash;
12481 			__be16 vlan_proto;
12482 			__u16 vlan_tci;
12483 			union {
12484 				unsigned int napi_id;
12485 				unsigned int sender_cpu;
12486 			};
12487 			__u32 secmark;
12488 			union {
12489 				__u32 mark;
12490 				__u32 reserved_tailroom;
12491 			};
12492 			union {
12493 				__be16 inner_protocol;
12494 				__u8 inner_ipproto;
12495 			};
12496 			__u16 inner_transport_header;
12497 			__u16 inner_network_header;
12498 			__u16 inner_mac_header;
12499 			__be16 protocol;
12500 			__u16 transport_header;
12501 			__u16 network_header;
12502 			__u16 mac_header;
12503 		} headers;
12504 	};
12505 	sk_buff_data_t tail;
12506 	sk_buff_data_t end;
12507 	unsigned char *head;
12508 	unsigned char *data;
12509 	unsigned int truesize;
12510 	refcount_t users;
12511 	struct skb_ext *extensions;
12512 };
12513 
12514 struct flowi_tunnel {
12515 	__be64 tun_id;
12516 };
12517 
12518 struct flowi_common {
12519 	int flowic_oif;
12520 	int flowic_iif;
12521 	__u32 flowic_mark;
12522 	__u8 flowic_tos;
12523 	__u8 flowic_scope;
12524 	__u8 flowic_proto;
12525 	__u8 flowic_flags;
12526 	__u32 flowic_secid;
12527 	kuid_t flowic_uid;
12528 	struct flowi_tunnel flowic_tun_key;
12529 	__u32 flowic_multipath_hash;
12530 };
12531 
12532 union flowi_uli {
12533 	struct {
12534 		__be16 dport;
12535 		__be16 sport;
12536 	} ports;
12537 	struct {
12538 		__u8 type;
12539 		__u8 code;
12540 	} icmpt;
12541 	struct {
12542 		__le16 dport;
12543 		__le16 sport;
12544 	} dnports;
12545 	__be32 gre_key;
12546 	struct {
12547 		__u8 type;
12548 	} mht;
12549 };
12550 
12551 struct flowi4 {
12552 	struct flowi_common __fl_common;
12553 	__be32 saddr;
12554 	__be32 daddr;
12555 	union flowi_uli uli;
12556 };
12557 
12558 struct flowi6 {
12559 	struct flowi_common __fl_common;
12560 	struct in6_addr daddr;
12561 	struct in6_addr saddr;
12562 	__be32 flowlabel;
12563 	union flowi_uli uli;
12564 	__u32 mp_hash;
12565 };
12566 
12567 struct flowidn {
12568 	struct flowi_common __fl_common;
12569 	__le16 daddr;
12570 	__le16 saddr;
12571 	union flowi_uli uli;
12572 };
12573 
12574 struct flowi {
12575 	union {
12576 		struct flowi_common __fl_common;
12577 		struct flowi4 ip4;
12578 		struct flowi6 ip6;
12579 		struct flowidn dn;
12580 	} u;
12581 };
12582 
12583 struct prot_inuse {
12584 	int all;
12585 	int val[64];
12586 };
12587 
12588 struct ipstats_mib {
12589 	u64 mibs[37];
12590 	struct u64_stats_sync syncp;
12591 };
12592 
12593 struct icmp_mib {
12594 	long unsigned int mibs[28];
12595 };
12596 
12597 struct icmpmsg_mib {
12598 	atomic_long_t mibs[512];
12599 };
12600 
12601 struct icmpv6_mib {
12602 	long unsigned int mibs[6];
12603 };
12604 
12605 struct icmpv6_mib_device {
12606 	atomic_long_t mibs[6];
12607 };
12608 
12609 struct icmpv6msg_mib {
12610 	atomic_long_t mibs[512];
12611 };
12612 
12613 struct icmpv6msg_mib_device {
12614 	atomic_long_t mibs[512];
12615 };
12616 
12617 struct tcp_mib {
12618 	long unsigned int mibs[16];
12619 };
12620 
12621 struct udp_mib {
12622 	long unsigned int mibs[10];
12623 };
12624 
12625 struct linux_mib {
12626 	long unsigned int mibs[126];
12627 };
12628 
12629 struct linux_tls_mib {
12630 	long unsigned int mibs[11];
12631 };
12632 
12633 struct inet_frags;
12634 
12635 struct fqdir {
12636 	long int high_thresh;
12637 	long int low_thresh;
12638 	int timeout;
12639 	int max_dist;
12640 	struct inet_frags *f;
12641 	struct net *net;
12642 	bool dead;
12643 	long: 56;
12644 	long: 64;
12645 	long: 64;
12646 	struct rhashtable rhashtable;
12647 	long: 64;
12648 	long: 64;
12649 	long: 64;
12650 	long: 64;
12651 	atomic_long_t mem;
12652 	struct work_struct destroy_work;
12653 	struct llist_node free_list;
12654 	long: 64;
12655 	long: 64;
12656 	long: 64;
12657 	long: 64;
12658 	long: 64;
12659 };
12660 
12661 struct inet_frag_queue;
12662 
12663 struct inet_frags {
12664 	unsigned int qsize;
12665 	void (*constructor)(struct inet_frag_queue *, const void *);
12666 	void (*destructor)(struct inet_frag_queue *);
12667 	void (*frag_expire)(struct timer_list *);
12668 	struct kmem_cache *frags_cachep;
12669 	const char *frags_cache_name;
12670 	struct rhashtable_params rhash_params;
12671 	refcount_t refcnt;
12672 	struct completion completion;
12673 };
12674 
12675 struct frag_v4_compare_key {
12676 	__be32 saddr;
12677 	__be32 daddr;
12678 	u32 user;
12679 	u32 vif;
12680 	__be16 id;
12681 	u16 protocol;
12682 };
12683 
12684 struct frag_v6_compare_key {
12685 	struct in6_addr saddr;
12686 	struct in6_addr daddr;
12687 	u32 user;
12688 	__be32 id;
12689 	u32 iif;
12690 };
12691 
12692 struct inet_frag_queue {
12693 	struct rhash_head node;
12694 	union {
12695 		struct frag_v4_compare_key v4;
12696 		struct frag_v6_compare_key v6;
12697 	} key;
12698 	struct timer_list timer;
12699 	spinlock_t lock;
12700 	refcount_t refcnt;
12701 	struct rb_root rb_fragments;
12702 	struct sk_buff *fragments_tail;
12703 	struct sk_buff *last_run_head;
12704 	ktime_t stamp;
12705 	int len;
12706 	int meat;
12707 	__u8 flags;
12708 	u16 max_size;
12709 	struct fqdir *fqdir;
12710 	struct callback_head rcu;
12711 };
12712 
12713 struct fib_rule;
12714 
12715 struct fib_lookup_arg;
12716 
12717 struct fib_rule_hdr;
12718 
12719 struct nlattr;
12720 
12721 struct netlink_ext_ack;
12722 
12723 struct fib_rules_ops {
12724 	int family;
12725 	struct list_head list;
12726 	int rule_size;
12727 	int addr_size;
12728 	int unresolved_rules;
12729 	int nr_goto_rules;
12730 	unsigned int fib_rules_seq;
12731 	int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
12732 	bool (*suppress)(struct fib_rule *, int, struct fib_lookup_arg *);
12733 	int (*match)(struct fib_rule *, struct flowi *, int);
12734 	int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
12735 	int (*delete)(struct fib_rule *);
12736 	int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
12737 	int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
12738 	size_t (*nlmsg_payload)(struct fib_rule *);
12739 	void (*flush_cache)(struct fib_rules_ops *);
12740 	int nlgroup;
12741 	struct list_head rules_list;
12742 	struct module *owner;
12743 	struct net *fro_net;
12744 	struct callback_head rcu;
12745 };
12746 
12747 enum tcp_ca_event {
12748 	CA_EVENT_TX_START = 0,
12749 	CA_EVENT_CWND_RESTART = 1,
12750 	CA_EVENT_COMPLETE_CWR = 2,
12751 	CA_EVENT_LOSS = 3,
12752 	CA_EVENT_ECN_NO_CE = 4,
12753 	CA_EVENT_ECN_IS_CE = 5,
12754 };
12755 
12756 struct ack_sample;
12757 
12758 struct rate_sample;
12759 
12760 union tcp_cc_info;
12761 
12762 struct tcp_congestion_ops {
12763 	u32 (*ssthresh)(struct sock *);
12764 	void (*cong_avoid)(struct sock *, u32, u32);
12765 	void (*set_state)(struct sock *, u8);
12766 	void (*cwnd_event)(struct sock *, enum tcp_ca_event);
12767 	void (*in_ack_event)(struct sock *, u32);
12768 	void (*pkts_acked)(struct sock *, const struct ack_sample *);
12769 	u32 (*min_tso_segs)(struct sock *);
12770 	void (*cong_control)(struct sock *, const struct rate_sample *);
12771 	u32 (*undo_cwnd)(struct sock *);
12772 	u32 (*sndbuf_expand)(struct sock *);
12773 	size_t (*get_info)(struct sock *, u32, int *, union tcp_cc_info *);
12774 	char name[16];
12775 	struct module *owner;
12776 	struct list_head list;
12777 	u32 key;
12778 	u32 flags;
12779 	void (*init)(struct sock *);
12780 	void (*release)(struct sock *);
12781 	long: 64;
12782 	long: 64;
12783 	long: 64;
12784 	long: 64;
12785 	long: 64;
12786 };
12787 
12788 struct fib_notifier_ops {
12789 	int family;
12790 	struct list_head list;
12791 	unsigned int (*fib_seq_read)(struct net *);
12792 	int (*fib_dump)(struct net *, struct notifier_block *, struct netlink_ext_ack *);
12793 	struct module *owner;
12794 	struct callback_head rcu;
12795 };
12796 
12797 typedef struct {} netdevice_tracker;
12798 
12799 struct xfrm_state;
12800 
12801 struct lwtunnel_state;
12802 
12803 struct dst_entry {
12804 	struct net_device *dev;
12805 	struct dst_ops *ops;
12806 	long unsigned int _metrics;
12807 	long unsigned int expires;
12808 	struct xfrm_state *xfrm;
12809 	int (*input)(struct sk_buff *);
12810 	int (*output)(struct net *, struct sock *, struct sk_buff *);
12811 	short unsigned int flags;
12812 	short int obsolete;
12813 	short unsigned int header_len;
12814 	short unsigned int trailer_len;
12815 	atomic_t __refcnt;
12816 	int __use;
12817 	long unsigned int lastuse;
12818 	struct lwtunnel_state *lwtstate;
12819 	struct callback_head callback_head;
12820 	short int error;
12821 	short int __pad;
12822 	__u32 tclassid;
12823 	netdevice_tracker dev_tracker;
12824 };
12825 
12826 struct net_device_stats {
12827 	long unsigned int rx_packets;
12828 	long unsigned int tx_packets;
12829 	long unsigned int rx_bytes;
12830 	long unsigned int tx_bytes;
12831 	long unsigned int rx_errors;
12832 	long unsigned int tx_errors;
12833 	long unsigned int rx_dropped;
12834 	long unsigned int tx_dropped;
12835 	long unsigned int multicast;
12836 	long unsigned int collisions;
12837 	long unsigned int rx_length_errors;
12838 	long unsigned int rx_over_errors;
12839 	long unsigned int rx_crc_errors;
12840 	long unsigned int rx_frame_errors;
12841 	long unsigned int rx_fifo_errors;
12842 	long unsigned int rx_missed_errors;
12843 	long unsigned int tx_aborted_errors;
12844 	long unsigned int tx_carrier_errors;
12845 	long unsigned int tx_fifo_errors;
12846 	long unsigned int tx_heartbeat_errors;
12847 	long unsigned int tx_window_errors;
12848 	long unsigned int rx_compressed;
12849 	long unsigned int tx_compressed;
12850 };
12851 
12852 struct netdev_hw_addr_list {
12853 	struct list_head list;
12854 	int count;
12855 	struct rb_root tree;
12856 };
12857 
12858 struct wireless_dev;
12859 
12860 enum rx_handler_result {
12861 	RX_HANDLER_CONSUMED = 0,
12862 	RX_HANDLER_ANOTHER = 1,
12863 	RX_HANDLER_EXACT = 2,
12864 	RX_HANDLER_PASS = 3,
12865 };
12866 
12867 typedef enum rx_handler_result rx_handler_result_t;
12868 
12869 typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **);
12870 
12871 enum netdev_ml_priv_type {
12872 	ML_PRIV_NONE = 0,
12873 	ML_PRIV_CAN = 1,
12874 };
12875 
12876 struct pcpu_dstats;
12877 
12878 struct netdev_tc_txq {
12879 	u16 count;
12880 	u16 offset;
12881 };
12882 
12883 struct sfp_bus;
12884 
12885 struct bpf_xdp_link;
12886 
12887 struct bpf_xdp_entity {
12888 	struct bpf_prog *prog;
12889 	struct bpf_xdp_link *link;
12890 };
12891 
12892 struct netdev_name_node;
12893 
12894 struct dev_ifalias;
12895 
12896 struct net_device_ops;
12897 
12898 struct ethtool_ops;
12899 
12900 struct ndisc_ops;
12901 
12902 struct header_ops;
12903 
12904 struct vlan_info;
12905 
12906 struct in_device;
12907 
12908 struct inet6_dev;
12909 
12910 struct wpan_dev;
12911 
12912 struct netdev_rx_queue;
12913 
12914 struct mini_Qdisc;
12915 
12916 struct netdev_queue;
12917 
12918 struct cpu_rmap;
12919 
12920 struct Qdisc;
12921 
12922 struct xdp_dev_bulk_queue;
12923 
12924 struct xps_dev_maps;
12925 
12926 struct pcpu_lstats;
12927 
12928 struct pcpu_sw_netstats;
12929 
12930 struct rtnl_link_ops;
12931 
12932 struct dcbnl_rtnl_ops;
12933 
12934 struct phy_device;
12935 
12936 struct udp_tunnel_nic_info;
12937 
12938 struct udp_tunnel_nic;
12939 
12940 struct net_device {
12941 	char name[16];
12942 	struct netdev_name_node *name_node;
12943 	struct dev_ifalias *ifalias;
12944 	long unsigned int mem_end;
12945 	long unsigned int mem_start;
12946 	long unsigned int base_addr;
12947 	long unsigned int state;
12948 	struct list_head dev_list;
12949 	struct list_head napi_list;
12950 	struct list_head unreg_list;
12951 	struct list_head close_list;
12952 	struct list_head ptype_all;
12953 	struct list_head ptype_specific;
12954 	struct {
12955 		struct list_head upper;
12956 		struct list_head lower;
12957 	} adj_list;
12958 	unsigned int flags;
12959 	long long unsigned int priv_flags;
12960 	const struct net_device_ops *netdev_ops;
12961 	int ifindex;
12962 	short unsigned int gflags;
12963 	short unsigned int hard_header_len;
12964 	unsigned int mtu;
12965 	short unsigned int needed_headroom;
12966 	short unsigned int needed_tailroom;
12967 	netdev_features_t features;
12968 	netdev_features_t hw_features;
12969 	netdev_features_t wanted_features;
12970 	netdev_features_t vlan_features;
12971 	netdev_features_t hw_enc_features;
12972 	netdev_features_t mpls_features;
12973 	netdev_features_t gso_partial_features;
12974 	unsigned int min_mtu;
12975 	unsigned int max_mtu;
12976 	short unsigned int type;
12977 	unsigned char min_header_len;
12978 	unsigned char name_assign_type;
12979 	int group;
12980 	struct net_device_stats stats;
12981 	atomic_long_t rx_dropped;
12982 	atomic_long_t tx_dropped;
12983 	atomic_long_t rx_nohandler;
12984 	atomic_t carrier_up_count;
12985 	atomic_t carrier_down_count;
12986 	const struct ethtool_ops *ethtool_ops;
12987 	const struct ndisc_ops *ndisc_ops;
12988 	const struct header_ops *header_ops;
12989 	unsigned char operstate;
12990 	unsigned char link_mode;
12991 	unsigned char if_port;
12992 	unsigned char dma;
12993 	unsigned char perm_addr[32];
12994 	unsigned char addr_assign_type;
12995 	unsigned char addr_len;
12996 	unsigned char upper_level;
12997 	unsigned char lower_level;
12998 	short unsigned int neigh_priv_len;
12999 	short unsigned int dev_id;
13000 	short unsigned int dev_port;
13001 	short unsigned int padded;
13002 	spinlock_t addr_list_lock;
13003 	int irq;
13004 	struct netdev_hw_addr_list uc;
13005 	struct netdev_hw_addr_list mc;
13006 	struct netdev_hw_addr_list dev_addrs;
13007 	struct kset *queues_kset;
13008 	struct list_head unlink_list;
13009 	unsigned int promiscuity;
13010 	unsigned int allmulti;
13011 	bool uc_promisc;
13012 	unsigned char nested_level;
13013 	struct vlan_info *vlan_info;
13014 	struct in_device *ip_ptr;
13015 	struct inet6_dev *ip6_ptr;
13016 	struct wireless_dev *ieee80211_ptr;
13017 	struct wpan_dev *ieee802154_ptr;
13018 	const unsigned char *dev_addr;
13019 	struct netdev_rx_queue *_rx;
13020 	unsigned int num_rx_queues;
13021 	unsigned int real_num_rx_queues;
13022 	struct bpf_prog *xdp_prog;
13023 	long unsigned int gro_flush_timeout;
13024 	int napi_defer_hard_irqs;
13025 	unsigned int gro_max_size;
13026 	rx_handler_func_t *rx_handler;
13027 	void *rx_handler_data;
13028 	struct mini_Qdisc *miniq_ingress;
13029 	struct netdev_queue *ingress_queue;
13030 	struct nf_hook_entries *nf_hooks_ingress;
13031 	unsigned char broadcast[32];
13032 	struct cpu_rmap *rx_cpu_rmap;
13033 	struct hlist_node index_hlist;
13034 	long: 64;
13035 	long: 64;
13036 	long: 64;
13037 	long: 64;
13038 	long: 64;
13039 	struct netdev_queue *_tx;
13040 	unsigned int num_tx_queues;
13041 	unsigned int real_num_tx_queues;
13042 	struct Qdisc *qdisc;
13043 	unsigned int tx_queue_len;
13044 	spinlock_t tx_global_lock;
13045 	struct xdp_dev_bulk_queue *xdp_bulkq;
13046 	struct xps_dev_maps *xps_maps[2];
13047 	struct mini_Qdisc *miniq_egress;
13048 	struct nf_hook_entries *nf_hooks_egress;
13049 	struct hlist_head qdisc_hash[16];
13050 	struct timer_list watchdog_timer;
13051 	int watchdog_timeo;
13052 	u32 proto_down_reason;
13053 	struct list_head todo_list;
13054 	int *pcpu_refcnt;
13055 	struct ref_tracker_dir refcnt_tracker;
13056 	struct list_head link_watch_list;
13057 	enum {
13058 		NETREG_UNINITIALIZED = 0,
13059 		NETREG_REGISTERED = 1,
13060 		NETREG_UNREGISTERING = 2,
13061 		NETREG_UNREGISTERED = 3,
13062 		NETREG_RELEASED = 4,
13063 		NETREG_DUMMY = 5,
13064 	} reg_state: 8;
13065 	bool dismantle;
13066 	enum {
13067 		RTNL_LINK_INITIALIZED = 0,
13068 		RTNL_LINK_INITIALIZING = 1,
13069 	} rtnl_link_state: 16;
13070 	bool needs_free_netdev;
13071 	void (*priv_destructor)(struct net_device *);
13072 	possible_net_t nd_net;
13073 	void *ml_priv;
13074 	enum netdev_ml_priv_type ml_priv_type;
13075 	union {
13076 		struct pcpu_lstats *lstats;
13077 		struct pcpu_sw_netstats *tstats;
13078 		struct pcpu_dstats *dstats;
13079 	};
13080 	struct device dev;
13081 	const struct attribute_group *sysfs_groups[4];
13082 	const struct attribute_group *sysfs_rx_queue_group;
13083 	const struct rtnl_link_ops *rtnl_link_ops;
13084 	unsigned int gso_max_size;
13085 	u16 gso_max_segs;
13086 	const struct dcbnl_rtnl_ops *dcbnl_ops;
13087 	s16 num_tc;
13088 	struct netdev_tc_txq tc_to_txq[16];
13089 	u8 prio_tc_map[16];
13090 	struct phy_device *phydev;
13091 	struct sfp_bus *sfp_bus;
13092 	struct lock_class_key *qdisc_tx_busylock;
13093 	bool proto_down;
13094 	unsigned int wol_enabled: 1;
13095 	unsigned int threaded: 1;
13096 	struct list_head net_notifier_list;
13097 	const struct udp_tunnel_nic_info *udp_tunnel_nic_info;
13098 	struct udp_tunnel_nic *udp_tunnel_nic;
13099 	struct bpf_xdp_entity xdp_state[3];
13100 	u8 dev_addr_shadow[32];
13101 	netdevice_tracker linkwatch_dev_tracker;
13102 	netdevice_tracker watchdog_dev_tracker;
13103 	long: 64;
13104 	long: 64;
13105 };
13106 
13107 struct hh_cache {
13108 	unsigned int hh_len;
13109 	seqlock_t hh_lock;
13110 	long unsigned int hh_data[4];
13111 };
13112 
13113 struct neigh_table;
13114 
13115 struct neigh_parms;
13116 
13117 struct neigh_ops;
13118 
13119 struct neighbour {
13120 	struct neighbour *next;
13121 	struct neigh_table *tbl;
13122 	struct neigh_parms *parms;
13123 	long unsigned int confirmed;
13124 	long unsigned int updated;
13125 	rwlock_t lock;
13126 	refcount_t refcnt;
13127 	unsigned int arp_queue_len_bytes;
13128 	struct sk_buff_head arp_queue;
13129 	struct timer_list timer;
13130 	long unsigned int used;
13131 	atomic_t probes;
13132 	u8 nud_state;
13133 	u8 type;
13134 	u8 dead;
13135 	u8 protocol;
13136 	u32 flags;
13137 	seqlock_t ha_lock;
13138 	unsigned char ha[32];
13139 	struct hh_cache hh;
13140 	int (*output)(struct neighbour *, struct sk_buff *);
13141 	const struct neigh_ops *ops;
13142 	struct list_head gc_list;
13143 	struct list_head managed_list;
13144 	struct callback_head rcu;
13145 	struct net_device *dev;
13146 	netdevice_tracker dev_tracker;
13147 	u8 primary_key[0];
13148 };
13149 
13150 struct ipv6_stable_secret {
13151 	bool initialized;
13152 	struct in6_addr secret;
13153 };
13154 
13155 struct ipv6_devconf {
13156 	__s32 forwarding;
13157 	__s32 hop_limit;
13158 	__s32 mtu6;
13159 	__s32 accept_ra;
13160 	__s32 accept_redirects;
13161 	__s32 autoconf;
13162 	__s32 dad_transmits;
13163 	__s32 rtr_solicits;
13164 	__s32 rtr_solicit_interval;
13165 	__s32 rtr_solicit_max_interval;
13166 	__s32 rtr_solicit_delay;
13167 	__s32 force_mld_version;
13168 	__s32 mldv1_unsolicited_report_interval;
13169 	__s32 mldv2_unsolicited_report_interval;
13170 	__s32 use_tempaddr;
13171 	__s32 temp_valid_lft;
13172 	__s32 temp_prefered_lft;
13173 	__s32 regen_max_retry;
13174 	__s32 max_desync_factor;
13175 	__s32 max_addresses;
13176 	__s32 accept_ra_defrtr;
13177 	__u32 ra_defrtr_metric;
13178 	__s32 accept_ra_min_hop_limit;
13179 	__s32 accept_ra_pinfo;
13180 	__s32 ignore_routes_with_linkdown;
13181 	__s32 accept_ra_rtr_pref;
13182 	__s32 rtr_probe_interval;
13183 	__s32 accept_ra_rt_info_min_plen;
13184 	__s32 accept_ra_rt_info_max_plen;
13185 	__s32 proxy_ndp;
13186 	__s32 accept_source_route;
13187 	__s32 accept_ra_from_local;
13188 	__s32 disable_ipv6;
13189 	__s32 drop_unicast_in_l2_multicast;
13190 	__s32 accept_dad;
13191 	__s32 force_tllao;
13192 	__s32 ndisc_notify;
13193 	__s32 suppress_frag_ndisc;
13194 	__s32 accept_ra_mtu;
13195 	__s32 drop_unsolicited_na;
13196 	struct ipv6_stable_secret stable_secret;
13197 	__s32 use_oif_addrs_only;
13198 	__s32 keep_addr_on_down;
13199 	__s32 seg6_enabled;
13200 	__u32 enhanced_dad;
13201 	__u32 addr_gen_mode;
13202 	__s32 disable_policy;
13203 	__s32 ndisc_tclass;
13204 	__s32 rpl_seg_enabled;
13205 	__u32 ioam6_id;
13206 	__u32 ioam6_id_wide;
13207 	__u8 ioam6_enabled;
13208 	__u8 ndisc_evict_nocarrier;
13209 	struct ctl_table_header *sysctl_header;
13210 };
13211 
13212 enum nf_log_type {
13213 	NF_LOG_TYPE_LOG = 0,
13214 	NF_LOG_TYPE_ULOG = 1,
13215 	NF_LOG_TYPE_MAX = 2,
13216 };
13217 
13218 typedef u8 u_int8_t;
13219 
13220 struct nf_loginfo;
13221 
13222 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 *);
13223 
13224 struct nf_logger {
13225 	char *name;
13226 	enum nf_log_type type;
13227 	nf_logfn *logfn;
13228 	struct module *me;
13229 };
13230 
13231 struct hlist_nulls_head {
13232 	struct hlist_nulls_node *first;
13233 };
13234 
13235 struct ip_conntrack_stat {
13236 	unsigned int found;
13237 	unsigned int invalid;
13238 	unsigned int insert;
13239 	unsigned int insert_failed;
13240 	unsigned int clash_resolve;
13241 	unsigned int drop;
13242 	unsigned int early_drop;
13243 	unsigned int error;
13244 	unsigned int expect_new;
13245 	unsigned int expect_create;
13246 	unsigned int expect_delete;
13247 	unsigned int search_restart;
13248 	unsigned int chaintoolong;
13249 };
13250 
13251 struct ct_pcpu {
13252 	spinlock_t lock;
13253 	struct hlist_nulls_head unconfirmed;
13254 	struct hlist_nulls_head dying;
13255 };
13256 
13257 typedef struct {
13258 	union {
13259 		void *kernel;
13260 		void *user;
13261 	};
13262 	bool is_kernel: 1;
13263 } sockptr_t;
13264 
13265 typedef enum {
13266 	SS_FREE = 0,
13267 	SS_UNCONNECTED = 1,
13268 	SS_CONNECTING = 2,
13269 	SS_CONNECTED = 3,
13270 	SS_DISCONNECTING = 4,
13271 } socket_state;
13272 
13273 struct socket_wq {
13274 	wait_queue_head_t wait;
13275 	struct fasync_struct *fasync_list;
13276 	long unsigned int flags;
13277 	struct callback_head rcu;
13278 	long: 64;
13279 	long: 64;
13280 };
13281 
13282 struct proto_ops;
13283 
13284 struct socket {
13285 	socket_state state;
13286 	short int type;
13287 	long unsigned int flags;
13288 	struct file *file;
13289 	struct sock *sk;
13290 	const struct proto_ops *ops;
13291 	long: 64;
13292 	long: 64;
13293 	long: 64;
13294 	struct socket_wq wq;
13295 };
13296 
13297 typedef int (*sk_read_actor_t)(read_descriptor_t *, struct sk_buff *, unsigned int, size_t);
13298 
13299 struct proto_ops {
13300 	int family;
13301 	struct module *owner;
13302 	int (*release)(struct socket *);
13303 	int (*bind)(struct socket *, struct sockaddr *, int);
13304 	int (*connect)(struct socket *, struct sockaddr *, int, int);
13305 	int (*socketpair)(struct socket *, struct socket *);
13306 	int (*accept)(struct socket *, struct socket *, int, bool);
13307 	int (*getname)(struct socket *, struct sockaddr *, int);
13308 	__poll_t (*poll)(struct file *, struct socket *, struct poll_table_struct *);
13309 	int (*ioctl)(struct socket *, unsigned int, long unsigned int);
13310 	int (*gettstamp)(struct socket *, void *, bool, bool);
13311 	int (*listen)(struct socket *, int);
13312 	int (*shutdown)(struct socket *, int);
13313 	int (*setsockopt)(struct socket *, int, int, sockptr_t, unsigned int);
13314 	int (*getsockopt)(struct socket *, int, int, char *, int *);
13315 	void (*show_fdinfo)(struct seq_file *, struct socket *);
13316 	int (*sendmsg)(struct socket *, struct msghdr *, size_t);
13317 	int (*recvmsg)(struct socket *, struct msghdr *, size_t, int);
13318 	int (*mmap)(struct file *, struct socket *, struct vm_area_struct *);
13319 	ssize_t (*sendpage)(struct socket *, struct page *, int, size_t, int);
13320 	ssize_t (*splice_read)(struct socket *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
13321 	int (*set_peek_off)(struct sock *, int);
13322 	int (*peek_len)(struct socket *);
13323 	int (*read_sock)(struct sock *, read_descriptor_t *, sk_read_actor_t);
13324 	int (*sendpage_locked)(struct sock *, struct page *, int, size_t, int);
13325 	int (*sendmsg_locked)(struct sock *, struct msghdr *, size_t);
13326 	int (*set_rcvlowat)(struct sock *, int);
13327 };
13328 
13329 struct pipe_buf_operations;
13330 
13331 struct pipe_buffer {
13332 	struct page *page;
13333 	unsigned int offset;
13334 	unsigned int len;
13335 	const struct pipe_buf_operations *ops;
13336 	unsigned int flags;
13337 	long unsigned int private;
13338 };
13339 
13340 struct pipe_buf_operations {
13341 	int (*confirm)(struct pipe_inode_info *, struct pipe_buffer *);
13342 	void (*release)(struct pipe_inode_info *, struct pipe_buffer *);
13343 	bool (*try_steal)(struct pipe_inode_info *, struct pipe_buffer *);
13344 	bool (*get)(struct pipe_inode_info *, struct pipe_buffer *);
13345 };
13346 
13347 struct skb_ext {
13348 	refcount_t refcnt;
13349 	u8 offset[2];
13350 	u8 chunks;
13351 	char: 8;
13352 	char data[0];
13353 };
13354 
13355 struct skb_checksum_ops {
13356 	__wsum (*update)(const void *, int, __wsum);
13357 	__wsum (*combine)(__wsum, __wsum, int, int);
13358 };
13359 
13360 struct pernet_operations {
13361 	struct list_head list;
13362 	int (*init)(struct net *);
13363 	void (*pre_exit)(struct net *);
13364 	void (*exit)(struct net *);
13365 	void (*exit_batch)(struct list_head *);
13366 	unsigned int *id;
13367 	size_t size;
13368 };
13369 
13370 struct auth_cred {
13371 	const struct cred *cred;
13372 	const char *principal;
13373 };
13374 
13375 struct rpc_cred_cache;
13376 
13377 struct rpc_authops;
13378 
13379 struct rpc_auth {
13380 	unsigned int au_cslack;
13381 	unsigned int au_rslack;
13382 	unsigned int au_verfsize;
13383 	unsigned int au_ralign;
13384 	long unsigned int au_flags;
13385 	const struct rpc_authops *au_ops;
13386 	rpc_authflavor_t au_flavor;
13387 	refcount_t au_count;
13388 	struct rpc_cred_cache *au_credcache;
13389 };
13390 
13391 struct rpc_credops {
13392 	const char *cr_name;
13393 	int (*cr_init)(struct rpc_auth *, struct rpc_cred *);
13394 	void (*crdestroy)(struct rpc_cred *);
13395 	int (*crmatch)(struct auth_cred *, struct rpc_cred *, int);
13396 	int (*crmarshal)(struct rpc_task *, struct xdr_stream *);
13397 	int (*crrefresh)(struct rpc_task *);
13398 	int (*crvalidate)(struct rpc_task *, struct xdr_stream *);
13399 	int (*crwrap_req)(struct rpc_task *, struct xdr_stream *);
13400 	int (*crunwrap_resp)(struct rpc_task *, struct xdr_stream *);
13401 	int (*crkey_timeout)(struct rpc_cred *);
13402 	char * (*crstringify_acceptor)(struct rpc_cred *);
13403 	bool (*crneed_reencode)(struct rpc_task *);
13404 };
13405 
13406 struct rpc_auth_create_args;
13407 
13408 struct rpcsec_gss_info;
13409 
13410 struct rpc_authops {
13411 	struct module *owner;
13412 	rpc_authflavor_t au_flavor;
13413 	char *au_name;
13414 	struct rpc_auth * (*create)(const struct rpc_auth_create_args *, struct rpc_clnt *);
13415 	void (*destroy)(struct rpc_auth *);
13416 	int (*hash_cred)(struct auth_cred *, unsigned int);
13417 	struct rpc_cred * (*lookup_cred)(struct rpc_auth *, struct auth_cred *, int);
13418 	struct rpc_cred * (*crcreate)(struct rpc_auth *, struct auth_cred *, int, gfp_t);
13419 	rpc_authflavor_t (*info2flavor)(struct rpcsec_gss_info *);
13420 	int (*flavor2info)(rpc_authflavor_t, struct rpcsec_gss_info *);
13421 	int (*key_timeout)(struct rpc_auth *, struct rpc_cred *);
13422 };
13423 
13424 struct rpc_auth_create_args {
13425 	rpc_authflavor_t pseudoflavor;
13426 	const char *target_name;
13427 };
13428 
13429 struct rpcsec_gss_oid {
13430 	unsigned int len;
13431 	u8 data[32];
13432 };
13433 
13434 struct rpcsec_gss_info {
13435 	struct rpcsec_gss_oid oid;
13436 	u32 qop;
13437 	u32 service;
13438 };
13439 
13440 struct rpc_xprt_ops {
13441 	void (*set_buffer_size)(struct rpc_xprt *, size_t, size_t);
13442 	int (*reserve_xprt)(struct rpc_xprt *, struct rpc_task *);
13443 	void (*release_xprt)(struct rpc_xprt *, struct rpc_task *);
13444 	void (*alloc_slot)(struct rpc_xprt *, struct rpc_task *);
13445 	void (*free_slot)(struct rpc_xprt *, struct rpc_rqst *);
13446 	void (*rpcbind)(struct rpc_task *);
13447 	void (*set_port)(struct rpc_xprt *, short unsigned int);
13448 	void (*connect)(struct rpc_xprt *, struct rpc_task *);
13449 	int (*buf_alloc)(struct rpc_task *);
13450 	void (*buf_free)(struct rpc_task *);
13451 	void (*prepare_request)(struct rpc_rqst *);
13452 	int (*send_request)(struct rpc_rqst *);
13453 	void (*wait_for_reply_request)(struct rpc_task *);
13454 	void (*timer)(struct rpc_xprt *, struct rpc_task *);
13455 	void (*release_request)(struct rpc_task *);
13456 	void (*close)(struct rpc_xprt *);
13457 	void (*destroy)(struct rpc_xprt *);
13458 	void (*set_connect_timeout)(struct rpc_xprt *, long unsigned int, long unsigned int);
13459 	void (*print_stats)(struct rpc_xprt *, struct seq_file *);
13460 	int (*enable_swap)(struct rpc_xprt *);
13461 	void (*disable_swap)(struct rpc_xprt *);
13462 	void (*inject_disconnect)(struct rpc_xprt *);
13463 	int (*bc_setup)(struct rpc_xprt *, unsigned int);
13464 	size_t (*bc_maxpayload)(struct rpc_xprt *);
13465 	unsigned int (*bc_num_slots)(struct rpc_xprt *);
13466 	void (*bc_free_rqst)(struct rpc_rqst *);
13467 	void (*bc_destroy)(struct rpc_xprt *, unsigned int);
13468 };
13469 
13470 struct xprt_create;
13471 
13472 struct xprt_class {
13473 	struct list_head list;
13474 	int ident;
13475 	struct rpc_xprt * (*setup)(struct xprt_create *);
13476 	struct module *owner;
13477 	char name[32];
13478 	const char *netid[0];
13479 };
13480 
13481 struct xprt_create {
13482 	int ident;
13483 	struct net *net;
13484 	struct sockaddr *srcaddr;
13485 	struct sockaddr *dstaddr;
13486 	size_t addrlen;
13487 	const char *servername;
13488 	struct svc_xprt *bc_xprt;
13489 	struct rpc_xprt_switch *bc_xps;
13490 	unsigned int flags;
13491 };
13492 
13493 struct rpc_sysfs_xprt_switch;
13494 
13495 struct rpc_xprt_switch {
13496 	spinlock_t xps_lock;
13497 	struct kref xps_kref;
13498 	unsigned int xps_id;
13499 	unsigned int xps_nxprts;
13500 	unsigned int xps_nactive;
13501 	unsigned int xps_nunique_destaddr_xprts;
13502 	atomic_long_t xps_queuelen;
13503 	struct list_head xps_xprt_list;
13504 	struct net *xps_net;
13505 	const struct rpc_xprt_iter_ops *xps_iter_ops;
13506 	struct rpc_sysfs_xprt_switch *xps_sysfs;
13507 	struct callback_head xps_rcu;
13508 };
13509 
13510 struct rpc_stat {
13511 	const struct rpc_program *program;
13512 	unsigned int netcnt;
13513 	unsigned int netudpcnt;
13514 	unsigned int nettcpcnt;
13515 	unsigned int nettcpconn;
13516 	unsigned int netreconn;
13517 	unsigned int rpccnt;
13518 	unsigned int rpcretrans;
13519 	unsigned int rpcauthrefresh;
13520 	unsigned int rpcgarbage;
13521 };
13522 
13523 struct rpc_version;
13524 
13525 struct rpc_program {
13526 	const char *name;
13527 	u32 number;
13528 	unsigned int nrvers;
13529 	const struct rpc_version **version;
13530 	struct rpc_stat *stats;
13531 	const char *pipe_dir_name;
13532 };
13533 
13534 struct ipv6_params {
13535 	__s32 disable_ipv6;
13536 	__s32 autoconf;
13537 };
13538 
13539 struct dql {
13540 	unsigned int num_queued;
13541 	unsigned int adj_limit;
13542 	unsigned int last_obj_cnt;
13543 	long: 32;
13544 	long: 64;
13545 	long: 64;
13546 	long: 64;
13547 	long: 64;
13548 	long: 64;
13549 	long: 64;
13550 	unsigned int limit;
13551 	unsigned int num_completed;
13552 	unsigned int prev_ovlimit;
13553 	unsigned int prev_num_queued;
13554 	unsigned int prev_last_obj_cnt;
13555 	unsigned int lowest_slack;
13556 	long unsigned int slack_start_time;
13557 	unsigned int max_limit;
13558 	unsigned int min_limit;
13559 	unsigned int slack_hold_time;
13560 	long: 32;
13561 	long: 64;
13562 	long: 64;
13563 };
13564 
13565 struct ieee_ets {
13566 	__u8 willing;
13567 	__u8 ets_cap;
13568 	__u8 cbs;
13569 	__u8 tc_tx_bw[8];
13570 	__u8 tc_rx_bw[8];
13571 	__u8 tc_tsa[8];
13572 	__u8 prio_tc[8];
13573 	__u8 tc_reco_bw[8];
13574 	__u8 tc_reco_tsa[8];
13575 	__u8 reco_prio_tc[8];
13576 };
13577 
13578 struct ieee_maxrate {
13579 	__u64 tc_maxrate[8];
13580 };
13581 
13582 struct ieee_qcn {
13583 	__u8 rpg_enable[8];
13584 	__u32 rppp_max_rps[8];
13585 	__u32 rpg_time_reset[8];
13586 	__u32 rpg_byte_reset[8];
13587 	__u32 rpg_threshold[8];
13588 	__u32 rpg_max_rate[8];
13589 	__u32 rpg_ai_rate[8];
13590 	__u32 rpg_hai_rate[8];
13591 	__u32 rpg_gd[8];
13592 	__u32 rpg_min_dec_fac[8];
13593 	__u32 rpg_min_rate[8];
13594 	__u32 cndd_state_machine[8];
13595 };
13596 
13597 struct ieee_qcn_stats {
13598 	__u64 rppp_rp_centiseconds[8];
13599 	__u32 rppp_created_rps[8];
13600 };
13601 
13602 struct ieee_pfc {
13603 	__u8 pfc_cap;
13604 	__u8 pfc_en;
13605 	__u8 mbc;
13606 	__u16 delay;
13607 	__u64 requests[8];
13608 	__u64 indications[8];
13609 };
13610 
13611 struct dcbnl_buffer {
13612 	__u8 prio2buffer[8];
13613 	__u32 buffer_size[8];
13614 	__u32 total_size;
13615 };
13616 
13617 struct cee_pg {
13618 	__u8 willing;
13619 	__u8 error;
13620 	__u8 pg_en;
13621 	__u8 tcs_supported;
13622 	__u8 pg_bw[8];
13623 	__u8 prio_pg[8];
13624 };
13625 
13626 struct cee_pfc {
13627 	__u8 willing;
13628 	__u8 error;
13629 	__u8 pfc_en;
13630 	__u8 tcs_supported;
13631 };
13632 
13633 struct dcb_app {
13634 	__u8 selector;
13635 	__u8 priority;
13636 	__u16 protocol;
13637 };
13638 
13639 struct dcb_peer_app_info {
13640 	__u8 willing;
13641 	__u8 error;
13642 };
13643 
13644 struct dcbnl_rtnl_ops {
13645 	int (*ieee_getets)(struct net_device *, struct ieee_ets *);
13646 	int (*ieee_setets)(struct net_device *, struct ieee_ets *);
13647 	int (*ieee_getmaxrate)(struct net_device *, struct ieee_maxrate *);
13648 	int (*ieee_setmaxrate)(struct net_device *, struct ieee_maxrate *);
13649 	int (*ieee_getqcn)(struct net_device *, struct ieee_qcn *);
13650 	int (*ieee_setqcn)(struct net_device *, struct ieee_qcn *);
13651 	int (*ieee_getqcnstats)(struct net_device *, struct ieee_qcn_stats *);
13652 	int (*ieee_getpfc)(struct net_device *, struct ieee_pfc *);
13653 	int (*ieee_setpfc)(struct net_device *, struct ieee_pfc *);
13654 	int (*ieee_getapp)(struct net_device *, struct dcb_app *);
13655 	int (*ieee_setapp)(struct net_device *, struct dcb_app *);
13656 	int (*ieee_delapp)(struct net_device *, struct dcb_app *);
13657 	int (*ieee_peer_getets)(struct net_device *, struct ieee_ets *);
13658 	int (*ieee_peer_getpfc)(struct net_device *, struct ieee_pfc *);
13659 	u8 (*getstate)(struct net_device *);
13660 	u8 (*setstate)(struct net_device *, u8);
13661 	void (*getpermhwaddr)(struct net_device *, u8 *);
13662 	void (*setpgtccfgtx)(struct net_device *, int, u8, u8, u8, u8);
13663 	void (*setpgbwgcfgtx)(struct net_device *, int, u8);
13664 	void (*setpgtccfgrx)(struct net_device *, int, u8, u8, u8, u8);
13665 	void (*setpgbwgcfgrx)(struct net_device *, int, u8);
13666 	void (*getpgtccfgtx)(struct net_device *, int, u8 *, u8 *, u8 *, u8 *);
13667 	void (*getpgbwgcfgtx)(struct net_device *, int, u8 *);
13668 	void (*getpgtccfgrx)(struct net_device *, int, u8 *, u8 *, u8 *, u8 *);
13669 	void (*getpgbwgcfgrx)(struct net_device *, int, u8 *);
13670 	void (*setpfccfg)(struct net_device *, int, u8);
13671 	void (*getpfccfg)(struct net_device *, int, u8 *);
13672 	u8 (*setall)(struct net_device *);
13673 	u8 (*getcap)(struct net_device *, int, u8 *);
13674 	int (*getnumtcs)(struct net_device *, int, u8 *);
13675 	int (*setnumtcs)(struct net_device *, int, u8);
13676 	u8 (*getpfcstate)(struct net_device *);
13677 	void (*setpfcstate)(struct net_device *, u8);
13678 	void (*getbcncfg)(struct net_device *, int, u32 *);
13679 	void (*setbcncfg)(struct net_device *, int, u32);
13680 	void (*getbcnrp)(struct net_device *, int, u8 *);
13681 	void (*setbcnrp)(struct net_device *, int, u8);
13682 	int (*setapp)(struct net_device *, u8, u16, u8);
13683 	int (*getapp)(struct net_device *, u8, u16);
13684 	u8 (*getfeatcfg)(struct net_device *, int, u8 *);
13685 	u8 (*setfeatcfg)(struct net_device *, int, u8);
13686 	u8 (*getdcbx)(struct net_device *);
13687 	u8 (*setdcbx)(struct net_device *, u8);
13688 	int (*peer_getappinfo)(struct net_device *, struct dcb_peer_app_info *, u16 *);
13689 	int (*peer_getapptable)(struct net_device *, struct dcb_app *);
13690 	int (*cee_peer_getpg)(struct net_device *, struct cee_pg *);
13691 	int (*cee_peer_getpfc)(struct net_device *, struct cee_pfc *);
13692 	int (*dcbnl_getbuffer)(struct net_device *, struct dcbnl_buffer *);
13693 	int (*dcbnl_setbuffer)(struct net_device *, struct dcbnl_buffer *);
13694 };
13695 
13696 struct xdp_mem_info {
13697 	u32 type;
13698 	u32 id;
13699 };
13700 
13701 struct xdp_rxq_info {
13702 	struct net_device *dev;
13703 	u32 queue_index;
13704 	u32 reg_state;
13705 	struct xdp_mem_info mem;
13706 	unsigned int napi_id;
13707 	u32 frag_size;
13708 	long: 64;
13709 	long: 64;
13710 	long: 64;
13711 	long: 64;
13712 };
13713 
13714 struct xdp_txq_info {
13715 	struct net_device *dev;
13716 };
13717 
13718 struct xdp_buff {
13719 	void *data;
13720 	void *data_end;
13721 	void *data_meta;
13722 	void *data_hard_start;
13723 	struct xdp_rxq_info *rxq;
13724 	struct xdp_txq_info *txq;
13725 	u32 frame_sz;
13726 	u32 flags;
13727 };
13728 
13729 struct xdp_frame {
13730 	void *data;
13731 	u16 len;
13732 	u16 headroom;
13733 	u32 metasize: 8;
13734 	u32 frame_sz: 24;
13735 	struct xdp_mem_info mem;
13736 	struct net_device *dev_rx;
13737 	u32 flags;
13738 };
13739 
13740 struct nlmsghdr {
13741 	__u32 nlmsg_len;
13742 	__u16 nlmsg_type;
13743 	__u16 nlmsg_flags;
13744 	__u32 nlmsg_seq;
13745 	__u32 nlmsg_pid;
13746 };
13747 
13748 struct nlattr {
13749 	__u16 nla_len;
13750 	__u16 nla_type;
13751 };
13752 
13753 struct nla_policy;
13754 
13755 struct netlink_ext_ack {
13756 	const char *_msg;
13757 	const struct nlattr *bad_attr;
13758 	const struct nla_policy *policy;
13759 	u8 cookie[20];
13760 	u8 cookie_len;
13761 };
13762 
13763 struct netlink_range_validation;
13764 
13765 struct netlink_range_validation_signed;
13766 
13767 struct nla_policy {
13768 	u8 type;
13769 	u8 validation_type;
13770 	u16 len;
13771 	union {
13772 		const u32 bitfield32_valid;
13773 		const u32 mask;
13774 		const char *reject_message;
13775 		const struct nla_policy *nested_policy;
13776 		struct netlink_range_validation *range;
13777 		struct netlink_range_validation_signed *range_signed;
13778 		struct {
13779 			s16 min;
13780 			s16 max;
13781 		};
13782 		int (*validate)(const struct nlattr *, struct netlink_ext_ack *);
13783 		u16 strict_start_type;
13784 	};
13785 };
13786 
13787 struct netlink_callback {
13788 	struct sk_buff *skb;
13789 	const struct nlmsghdr *nlh;
13790 	int (*dump)(struct sk_buff *, struct netlink_callback *);
13791 	int (*done)(struct netlink_callback *);
13792 	void *data;
13793 	struct module *module;
13794 	struct netlink_ext_ack *extack;
13795 	u16 family;
13796 	u16 answer_flags;
13797 	u32 min_dump_alloc;
13798 	unsigned int prev_seq;
13799 	unsigned int seq;
13800 	bool strict_check;
13801 	union {
13802 		u8 ctx[48];
13803 		long int args[6];
13804 	};
13805 };
13806 
13807 struct ndmsg {
13808 	__u8 ndm_family;
13809 	__u8 ndm_pad1;
13810 	__u16 ndm_pad2;
13811 	__s32 ndm_ifindex;
13812 	__u16 ndm_state;
13813 	__u8 ndm_flags;
13814 	__u8 ndm_type;
13815 };
13816 
13817 typedef struct {
13818 	unsigned int clock_rate;
13819 	unsigned int clock_type;
13820 	short unsigned int loopback;
13821 } sync_serial_settings;
13822 
13823 typedef struct {
13824 	unsigned int clock_rate;
13825 	unsigned int clock_type;
13826 	short unsigned int loopback;
13827 	unsigned int slot_map;
13828 } te1_settings;
13829 
13830 typedef struct {
13831 	short unsigned int encoding;
13832 	short unsigned int parity;
13833 } raw_hdlc_proto;
13834 
13835 typedef struct {
13836 	unsigned int t391;
13837 	unsigned int t392;
13838 	unsigned int n391;
13839 	unsigned int n392;
13840 	unsigned int n393;
13841 	short unsigned int lmi;
13842 	short unsigned int dce;
13843 } fr_proto;
13844 
13845 typedef struct {
13846 	unsigned int dlci;
13847 } fr_proto_pvc;
13848 
13849 typedef struct {
13850 	unsigned int dlci;
13851 	char master[16];
13852 } fr_proto_pvc_info;
13853 
13854 typedef struct {
13855 	unsigned int interval;
13856 	unsigned int timeout;
13857 } cisco_proto;
13858 
13859 typedef struct {
13860 	short unsigned int dce;
13861 	unsigned int modulo;
13862 	unsigned int window;
13863 	unsigned int t1;
13864 	unsigned int t2;
13865 	unsigned int n2;
13866 } x25_hdlc_proto;
13867 
13868 struct ifmap {
13869 	long unsigned int mem_start;
13870 	long unsigned int mem_end;
13871 	short unsigned int base_addr;
13872 	unsigned char irq;
13873 	unsigned char dma;
13874 	unsigned char port;
13875 };
13876 
13877 struct if_settings {
13878 	unsigned int type;
13879 	unsigned int size;
13880 	union {
13881 		raw_hdlc_proto *raw_hdlc;
13882 		cisco_proto *cisco;
13883 		fr_proto *fr;
13884 		fr_proto_pvc *fr_pvc;
13885 		fr_proto_pvc_info *fr_pvc_info;
13886 		x25_hdlc_proto *x25;
13887 		sync_serial_settings *sync;
13888 		te1_settings *te1;
13889 	} ifs_ifsu;
13890 };
13891 
13892 struct ifreq {
13893 	union {
13894 		char ifrn_name[16];
13895 	} ifr_ifrn;
13896 	union {
13897 		struct sockaddr ifru_addr;
13898 		struct sockaddr ifru_dstaddr;
13899 		struct sockaddr ifru_broadaddr;
13900 		struct sockaddr ifru_netmask;
13901 		struct sockaddr ifru_hwaddr;
13902 		short int ifru_flags;
13903 		int ifru_ivalue;
13904 		int ifru_mtu;
13905 		struct ifmap ifru_map;
13906 		char ifru_slave[16];
13907 		char ifru_newname[16];
13908 		void *ifru_data;
13909 		struct if_settings ifru_settings;
13910 	} ifr_ifru;
13911 };
13912 
13913 struct rtnl_link_stats64 {
13914 	__u64 rx_packets;
13915 	__u64 tx_packets;
13916 	__u64 rx_bytes;
13917 	__u64 tx_bytes;
13918 	__u64 rx_errors;
13919 	__u64 tx_errors;
13920 	__u64 rx_dropped;
13921 	__u64 tx_dropped;
13922 	__u64 multicast;
13923 	__u64 collisions;
13924 	__u64 rx_length_errors;
13925 	__u64 rx_over_errors;
13926 	__u64 rx_crc_errors;
13927 	__u64 rx_frame_errors;
13928 	__u64 rx_fifo_errors;
13929 	__u64 rx_missed_errors;
13930 	__u64 tx_aborted_errors;
13931 	__u64 tx_carrier_errors;
13932 	__u64 tx_fifo_errors;
13933 	__u64 tx_heartbeat_errors;
13934 	__u64 tx_window_errors;
13935 	__u64 rx_compressed;
13936 	__u64 tx_compressed;
13937 	__u64 rx_nohandler;
13938 };
13939 
13940 struct ifla_vf_guid {
13941 	__u32 vf;
13942 	__u64 guid;
13943 };
13944 
13945 struct ifla_vf_stats {
13946 	__u64 rx_packets;
13947 	__u64 tx_packets;
13948 	__u64 rx_bytes;
13949 	__u64 tx_bytes;
13950 	__u64 broadcast;
13951 	__u64 multicast;
13952 	__u64 rx_dropped;
13953 	__u64 tx_dropped;
13954 };
13955 
13956 struct ifla_vf_info {
13957 	__u32 vf;
13958 	__u8 mac[32];
13959 	__u32 vlan;
13960 	__u32 qos;
13961 	__u32 spoofchk;
13962 	__u32 linkstate;
13963 	__u32 min_tx_rate;
13964 	__u32 max_tx_rate;
13965 	__u32 rss_query_en;
13966 	__u32 trusted;
13967 	__be16 vlan_proto;
13968 };
13969 
13970 enum netdev_tx {
13971 	__NETDEV_TX_MIN = 2147483648,
13972 	NETDEV_TX_OK = 0,
13973 	NETDEV_TX_BUSY = 16,
13974 };
13975 
13976 typedef enum netdev_tx netdev_tx_t;
13977 
13978 struct header_ops {
13979 	int (*create)(struct sk_buff *, struct net_device *, short unsigned int, const void *, const void *, unsigned int);
13980 	int (*parse)(const struct sk_buff *, unsigned char *);
13981 	int (*cache)(const struct neighbour *, struct hh_cache *, __be16);
13982 	void (*cache_update)(struct hh_cache *, const struct net_device *, const unsigned char *);
13983 	bool (*validate)(const char *, unsigned int);
13984 	__be16 (*parse_protocol)(const struct sk_buff *);
13985 };
13986 
13987 struct gro_list {
13988 	struct list_head list;
13989 	int count;
13990 };
13991 
13992 struct napi_struct {
13993 	struct list_head poll_list;
13994 	long unsigned int state;
13995 	int weight;
13996 	int defer_hard_irqs_count;
13997 	long unsigned int gro_bitmask;
13998 	int (*poll)(struct napi_struct *, int);
13999 	struct net_device *dev;
14000 	struct gro_list gro_hash[8];
14001 	struct sk_buff *skb;
14002 	struct list_head rx_list;
14003 	int rx_count;
14004 	struct hrtimer timer;
14005 	struct list_head dev_list;
14006 	struct hlist_node napi_hash_node;
14007 	unsigned int napi_id;
14008 	struct task_struct *thread;
14009 };
14010 
14011 struct xsk_buff_pool;
14012 
14013 struct netdev_queue {
14014 	struct net_device *dev;
14015 	netdevice_tracker dev_tracker;
14016 	struct Qdisc *qdisc;
14017 	struct Qdisc *qdisc_sleeping;
14018 	struct kobject kobj;
14019 	int numa_node;
14020 	long unsigned int tx_maxrate;
14021 	atomic_long_t trans_timeout;
14022 	struct net_device *sb_dev;
14023 	struct xsk_buff_pool *pool;
14024 	spinlock_t _xmit_lock;
14025 	int xmit_lock_owner;
14026 	long unsigned int trans_start;
14027 	long unsigned int state;
14028 	long: 64;
14029 	long: 64;
14030 	long: 64;
14031 	long: 64;
14032 	long: 64;
14033 	struct dql dql;
14034 };
14035 
14036 struct rps_map {
14037 	unsigned int len;
14038 	struct callback_head rcu;
14039 	u16 cpus[0];
14040 };
14041 
14042 struct rps_dev_flow {
14043 	u16 cpu;
14044 	u16 filter;
14045 	unsigned int last_qtail;
14046 };
14047 
14048 struct rps_dev_flow_table {
14049 	unsigned int mask;
14050 	struct callback_head rcu;
14051 	struct rps_dev_flow flows[0];
14052 };
14053 
14054 struct rps_sock_flow_table {
14055 	u32 mask;
14056 	long: 32;
14057 	long: 64;
14058 	long: 64;
14059 	long: 64;
14060 	long: 64;
14061 	long: 64;
14062 	long: 64;
14063 	long: 64;
14064 	u32 ents[0];
14065 };
14066 
14067 struct netdev_rx_queue {
14068 	struct xdp_rxq_info xdp_rxq;
14069 	struct rps_map *rps_map;
14070 	struct rps_dev_flow_table *rps_flow_table;
14071 	struct kobject kobj;
14072 	struct net_device *dev;
14073 	netdevice_tracker dev_tracker;
14074 	struct xsk_buff_pool *pool;
14075 	long: 64;
14076 	long: 64;
14077 	long: 64;
14078 	long: 64;
14079 };
14080 
14081 struct xps_map {
14082 	unsigned int len;
14083 	unsigned int alloc_len;
14084 	struct callback_head rcu;
14085 	u16 queues[0];
14086 };
14087 
14088 struct xps_dev_maps {
14089 	struct callback_head rcu;
14090 	unsigned int nr_ids;
14091 	s16 num_tc;
14092 	struct xps_map *attr_map[0];
14093 };
14094 
14095 struct netdev_phys_item_id {
14096 	unsigned char id[32];
14097 	unsigned char id_len;
14098 };
14099 
14100 enum net_device_path_type {
14101 	DEV_PATH_ETHERNET = 0,
14102 	DEV_PATH_VLAN = 1,
14103 	DEV_PATH_BRIDGE = 2,
14104 	DEV_PATH_PPPOE = 3,
14105 	DEV_PATH_DSA = 4,
14106 };
14107 
14108 struct net_device_path {
14109 	enum net_device_path_type type;
14110 	const struct net_device *dev;
14111 	union {
14112 		struct {
14113 			u16 id;
14114 			__be16 proto;
14115 			u8 h_dest[6];
14116 		} encap;
14117 		struct {
14118 			enum {
14119 				DEV_PATH_BR_VLAN_KEEP = 0,
14120 				DEV_PATH_BR_VLAN_TAG = 1,
14121 				DEV_PATH_BR_VLAN_UNTAG = 2,
14122 				DEV_PATH_BR_VLAN_UNTAG_HW = 3,
14123 			} vlan_mode;
14124 			u16 vlan_id;
14125 			__be16 vlan_proto;
14126 		} bridge;
14127 		struct {
14128 			int port;
14129 			u16 proto;
14130 		} dsa;
14131 	};
14132 };
14133 
14134 struct net_device_path_ctx {
14135 	const struct net_device *dev;
14136 	const u8 *daddr;
14137 	int num_vlans;
14138 	struct {
14139 		u16 id;
14140 		__be16 proto;
14141 	} vlan[2];
14142 };
14143 
14144 enum tc_setup_type {
14145 	TC_SETUP_QDISC_MQPRIO = 0,
14146 	TC_SETUP_CLSU32 = 1,
14147 	TC_SETUP_CLSFLOWER = 2,
14148 	TC_SETUP_CLSMATCHALL = 3,
14149 	TC_SETUP_CLSBPF = 4,
14150 	TC_SETUP_BLOCK = 5,
14151 	TC_SETUP_QDISC_CBS = 6,
14152 	TC_SETUP_QDISC_RED = 7,
14153 	TC_SETUP_QDISC_PRIO = 8,
14154 	TC_SETUP_QDISC_MQ = 9,
14155 	TC_SETUP_QDISC_ETF = 10,
14156 	TC_SETUP_ROOT_QDISC = 11,
14157 	TC_SETUP_QDISC_GRED = 12,
14158 	TC_SETUP_QDISC_TAPRIO = 13,
14159 	TC_SETUP_FT = 14,
14160 	TC_SETUP_QDISC_ETS = 15,
14161 	TC_SETUP_QDISC_TBF = 16,
14162 	TC_SETUP_QDISC_FIFO = 17,
14163 	TC_SETUP_QDISC_HTB = 18,
14164 	TC_SETUP_ACT = 19,
14165 };
14166 
14167 enum bpf_netdev_command {
14168 	XDP_SETUP_PROG = 0,
14169 	XDP_SETUP_PROG_HW = 1,
14170 	BPF_OFFLOAD_MAP_ALLOC = 2,
14171 	BPF_OFFLOAD_MAP_FREE = 3,
14172 	XDP_SETUP_XSK_POOL = 4,
14173 };
14174 
14175 struct bpf_offloaded_map;
14176 
14177 struct netdev_bpf {
14178 	enum bpf_netdev_command command;
14179 	union {
14180 		struct {
14181 			u32 flags;
14182 			struct bpf_prog *prog;
14183 			struct netlink_ext_ack *extack;
14184 		};
14185 		struct {
14186 			struct bpf_offloaded_map *offmap;
14187 		};
14188 		struct {
14189 			struct xsk_buff_pool *pool;
14190 			u16 queue_id;
14191 		} xsk;
14192 	};
14193 };
14194 
14195 struct dev_ifalias {
14196 	struct callback_head rcuhead;
14197 	char ifalias[0];
14198 };
14199 
14200 struct netdev_name_node {
14201 	struct hlist_node hlist;
14202 	struct list_head list;
14203 	struct net_device *dev;
14204 	const char *name;
14205 };
14206 
14207 struct devlink_port;
14208 
14209 struct ip_tunnel_parm;
14210 
14211 struct net_device_ops {
14212 	int (*ndo_init)(struct net_device *);
14213 	void (*ndo_uninit)(struct net_device *);
14214 	int (*ndo_open)(struct net_device *);
14215 	int (*ndo_stop)(struct net_device *);
14216 	netdev_tx_t (*ndo_start_xmit)(struct sk_buff *, struct net_device *);
14217 	netdev_features_t (*ndo_features_check)(struct sk_buff *, struct net_device *, netdev_features_t);
14218 	u16 (*ndo_select_queue)(struct net_device *, struct sk_buff *, struct net_device *);
14219 	void (*ndo_change_rx_flags)(struct net_device *, int);
14220 	void (*ndo_set_rx_mode)(struct net_device *);
14221 	int (*ndo_set_mac_address)(struct net_device *, void *);
14222 	int (*ndo_validate_addr)(struct net_device *);
14223 	int (*ndo_do_ioctl)(struct net_device *, struct ifreq *, int);
14224 	int (*ndo_eth_ioctl)(struct net_device *, struct ifreq *, int);
14225 	int (*ndo_siocbond)(struct net_device *, struct ifreq *, int);
14226 	int (*ndo_siocwandev)(struct net_device *, struct if_settings *);
14227 	int (*ndo_siocdevprivate)(struct net_device *, struct ifreq *, void *, int);
14228 	int (*ndo_set_config)(struct net_device *, struct ifmap *);
14229 	int (*ndo_change_mtu)(struct net_device *, int);
14230 	int (*ndo_neigh_setup)(struct net_device *, struct neigh_parms *);
14231 	void (*ndo_tx_timeout)(struct net_device *, unsigned int);
14232 	void (*ndo_get_stats64)(struct net_device *, struct rtnl_link_stats64 *);
14233 	bool (*ndo_has_offload_stats)(const struct net_device *, int);
14234 	int (*ndo_get_offload_stats)(int, const struct net_device *, void *);
14235 	struct net_device_stats * (*ndo_get_stats)(struct net_device *);
14236 	int (*ndo_vlan_rx_add_vid)(struct net_device *, __be16, u16);
14237 	int (*ndo_vlan_rx_kill_vid)(struct net_device *, __be16, u16);
14238 	int (*ndo_set_vf_mac)(struct net_device *, int, u8 *);
14239 	int (*ndo_set_vf_vlan)(struct net_device *, int, u16, u8, __be16);
14240 	int (*ndo_set_vf_rate)(struct net_device *, int, int, int);
14241 	int (*ndo_set_vf_spoofchk)(struct net_device *, int, bool);
14242 	int (*ndo_set_vf_trust)(struct net_device *, int, bool);
14243 	int (*ndo_get_vf_config)(struct net_device *, int, struct ifla_vf_info *);
14244 	int (*ndo_set_vf_link_state)(struct net_device *, int, int);
14245 	int (*ndo_get_vf_stats)(struct net_device *, int, struct ifla_vf_stats *);
14246 	int (*ndo_set_vf_port)(struct net_device *, int, struct nlattr **);
14247 	int (*ndo_get_vf_port)(struct net_device *, int, struct sk_buff *);
14248 	int (*ndo_get_vf_guid)(struct net_device *, int, struct ifla_vf_guid *, struct ifla_vf_guid *);
14249 	int (*ndo_set_vf_guid)(struct net_device *, int, u64, int);
14250 	int (*ndo_set_vf_rss_query_en)(struct net_device *, int, bool);
14251 	int (*ndo_setup_tc)(struct net_device *, enum tc_setup_type, void *);
14252 	int (*ndo_rx_flow_steer)(struct net_device *, const struct sk_buff *, u16, u32);
14253 	int (*ndo_add_slave)(struct net_device *, struct net_device *, struct netlink_ext_ack *);
14254 	int (*ndo_del_slave)(struct net_device *, struct net_device *);
14255 	struct net_device * (*ndo_get_xmit_slave)(struct net_device *, struct sk_buff *, bool);
14256 	struct net_device * (*ndo_sk_get_lower_dev)(struct net_device *, struct sock *);
14257 	netdev_features_t (*ndo_fix_features)(struct net_device *, netdev_features_t);
14258 	int (*ndo_set_features)(struct net_device *, netdev_features_t);
14259 	int (*ndo_neigh_construct)(struct net_device *, struct neighbour *);
14260 	void (*ndo_neigh_destroy)(struct net_device *, struct neighbour *);
14261 	int (*ndo_fdb_add)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, u16, struct netlink_ext_ack *);
14262 	int (*ndo_fdb_del)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16);
14263 	int (*ndo_fdb_dump)(struct sk_buff *, struct netlink_callback *, struct net_device *, struct net_device *, int *);
14264 	int (*ndo_fdb_get)(struct sk_buff *, struct nlattr **, struct net_device *, const unsigned char *, u16, u32, u32, struct netlink_ext_ack *);
14265 	int (*ndo_bridge_setlink)(struct net_device *, struct nlmsghdr *, u16, struct netlink_ext_ack *);
14266 	int (*ndo_bridge_getlink)(struct sk_buff *, u32, u32, struct net_device *, u32, int);
14267 	int (*ndo_bridge_dellink)(struct net_device *, struct nlmsghdr *, u16);
14268 	int (*ndo_change_carrier)(struct net_device *, bool);
14269 	int (*ndo_get_phys_port_id)(struct net_device *, struct netdev_phys_item_id *);
14270 	int (*ndo_get_port_parent_id)(struct net_device *, struct netdev_phys_item_id *);
14271 	int (*ndo_get_phys_port_name)(struct net_device *, char *, size_t);
14272 	void * (*ndo_dfwd_add_station)(struct net_device *, struct net_device *);
14273 	void (*ndo_dfwd_del_station)(struct net_device *, void *);
14274 	int (*ndo_set_tx_maxrate)(struct net_device *, int, u32);
14275 	int (*ndo_get_iflink)(const struct net_device *);
14276 	int (*ndo_fill_metadata_dst)(struct net_device *, struct sk_buff *);
14277 	void (*ndo_set_rx_headroom)(struct net_device *, int);
14278 	int (*ndo_bpf)(struct net_device *, struct netdev_bpf *);
14279 	int (*ndo_xdp_xmit)(struct net_device *, int, struct xdp_frame **, u32);
14280 	struct net_device * (*ndo_xdp_get_xmit_slave)(struct net_device *, struct xdp_buff *);
14281 	int (*ndo_xsk_wakeup)(struct net_device *, u32, u32);
14282 	struct devlink_port * (*ndo_get_devlink_port)(struct net_device *);
14283 	int (*ndo_tunnel_ctl)(struct net_device *, struct ip_tunnel_parm *, int);
14284 	struct net_device * (*ndo_get_peer_dev)(struct net_device *);
14285 	int (*ndo_fill_forward_path)(struct net_device_path_ctx *, struct net_device_path *);
14286 };
14287 
14288 struct neigh_parms {
14289 	possible_net_t net;
14290 	struct net_device *dev;
14291 	netdevice_tracker dev_tracker;
14292 	struct list_head list;
14293 	int (*neigh_setup)(struct neighbour *);
14294 	struct neigh_table *tbl;
14295 	void *sysctl_table;
14296 	int dead;
14297 	refcount_t refcnt;
14298 	struct callback_head callback_head;
14299 	int reachable_time;
14300 	int data[13];
14301 	long unsigned int data_state[1];
14302 };
14303 
14304 struct pcpu_lstats {
14305 	u64_stats_t packets;
14306 	u64_stats_t bytes;
14307 	struct u64_stats_sync syncp;
14308 };
14309 
14310 struct pcpu_sw_netstats {
14311 	u64 rx_packets;
14312 	u64 rx_bytes;
14313 	u64 tx_packets;
14314 	u64 tx_bytes;
14315 	struct u64_stats_sync syncp;
14316 };
14317 
14318 enum ethtool_phys_id_state {
14319 	ETHTOOL_ID_INACTIVE = 0,
14320 	ETHTOOL_ID_ACTIVE = 1,
14321 	ETHTOOL_ID_ON = 2,
14322 	ETHTOOL_ID_OFF = 3,
14323 };
14324 
14325 struct ethtool_drvinfo;
14326 
14327 struct ethtool_regs;
14328 
14329 struct ethtool_wolinfo;
14330 
14331 struct ethtool_link_ext_state_info;
14332 
14333 struct ethtool_eeprom;
14334 
14335 struct ethtool_coalesce;
14336 
14337 struct kernel_ethtool_coalesce;
14338 
14339 struct ethtool_ringparam;
14340 
14341 struct kernel_ethtool_ringparam;
14342 
14343 struct ethtool_pause_stats;
14344 
14345 struct ethtool_pauseparam;
14346 
14347 struct ethtool_test;
14348 
14349 struct ethtool_stats;
14350 
14351 struct ethtool_rxnfc;
14352 
14353 struct ethtool_flash;
14354 
14355 struct ethtool_channels;
14356 
14357 struct ethtool_dump;
14358 
14359 struct ethtool_ts_info;
14360 
14361 struct ethtool_modinfo;
14362 
14363 struct ethtool_eee;
14364 
14365 struct ethtool_tunable;
14366 
14367 struct ethtool_link_ksettings;
14368 
14369 struct ethtool_fec_stats;
14370 
14371 struct ethtool_fecparam;
14372 
14373 struct ethtool_module_eeprom;
14374 
14375 struct ethtool_eth_phy_stats;
14376 
14377 struct ethtool_eth_mac_stats;
14378 
14379 struct ethtool_eth_ctrl_stats;
14380 
14381 struct ethtool_rmon_stats;
14382 
14383 struct ethtool_rmon_hist_range;
14384 
14385 struct ethtool_module_power_mode_params;
14386 
14387 struct ethtool_ops {
14388 	u32 cap_link_lanes_supported: 1;
14389 	u32 supported_coalesce_params;
14390 	u32 supported_ring_params;
14391 	void (*get_drvinfo)(struct net_device *, struct ethtool_drvinfo *);
14392 	int (*get_regs_len)(struct net_device *);
14393 	void (*get_regs)(struct net_device *, struct ethtool_regs *, void *);
14394 	void (*get_wol)(struct net_device *, struct ethtool_wolinfo *);
14395 	int (*set_wol)(struct net_device *, struct ethtool_wolinfo *);
14396 	u32 (*get_msglevel)(struct net_device *);
14397 	void (*set_msglevel)(struct net_device *, u32);
14398 	int (*nway_reset)(struct net_device *);
14399 	u32 (*get_link)(struct net_device *);
14400 	int (*get_link_ext_state)(struct net_device *, struct ethtool_link_ext_state_info *);
14401 	int (*get_eeprom_len)(struct net_device *);
14402 	int (*get_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
14403 	int (*set_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
14404 	int (*get_coalesce)(struct net_device *, struct ethtool_coalesce *, struct kernel_ethtool_coalesce *, struct netlink_ext_ack *);
14405 	int (*set_coalesce)(struct net_device *, struct ethtool_coalesce *, struct kernel_ethtool_coalesce *, struct netlink_ext_ack *);
14406 	void (*get_ringparam)(struct net_device *, struct ethtool_ringparam *, struct kernel_ethtool_ringparam *, struct netlink_ext_ack *);
14407 	int (*set_ringparam)(struct net_device *, struct ethtool_ringparam *, struct kernel_ethtool_ringparam *, struct netlink_ext_ack *);
14408 	void (*get_pause_stats)(struct net_device *, struct ethtool_pause_stats *);
14409 	void (*get_pauseparam)(struct net_device *, struct ethtool_pauseparam *);
14410 	int (*set_pauseparam)(struct net_device *, struct ethtool_pauseparam *);
14411 	void (*self_test)(struct net_device *, struct ethtool_test *, u64 *);
14412 	void (*get_strings)(struct net_device *, u32, u8 *);
14413 	int (*set_phys_id)(struct net_device *, enum ethtool_phys_id_state);
14414 	void (*get_ethtool_stats)(struct net_device *, struct ethtool_stats *, u64 *);
14415 	int (*begin)(struct net_device *);
14416 	void (*complete)(struct net_device *);
14417 	u32 (*get_priv_flags)(struct net_device *);
14418 	int (*set_priv_flags)(struct net_device *, u32);
14419 	int (*get_sset_count)(struct net_device *, int);
14420 	int (*get_rxnfc)(struct net_device *, struct ethtool_rxnfc *, u32 *);
14421 	int (*set_rxnfc)(struct net_device *, struct ethtool_rxnfc *);
14422 	int (*flash_device)(struct net_device *, struct ethtool_flash *);
14423 	int (*reset)(struct net_device *, u32 *);
14424 	u32 (*get_rxfh_key_size)(struct net_device *);
14425 	u32 (*get_rxfh_indir_size)(struct net_device *);
14426 	int (*get_rxfh)(struct net_device *, u32 *, u8 *, u8 *);
14427 	int (*set_rxfh)(struct net_device *, const u32 *, const u8 *, const u8);
14428 	int (*get_rxfh_context)(struct net_device *, u32 *, u8 *, u8 *, u32);
14429 	int (*set_rxfh_context)(struct net_device *, const u32 *, const u8 *, const u8, u32 *, bool);
14430 	void (*get_channels)(struct net_device *, struct ethtool_channels *);
14431 	int (*set_channels)(struct net_device *, struct ethtool_channels *);
14432 	int (*get_dump_flag)(struct net_device *, struct ethtool_dump *);
14433 	int (*get_dump_data)(struct net_device *, struct ethtool_dump *, void *);
14434 	int (*set_dump)(struct net_device *, struct ethtool_dump *);
14435 	int (*get_ts_info)(struct net_device *, struct ethtool_ts_info *);
14436 	int (*get_module_info)(struct net_device *, struct ethtool_modinfo *);
14437 	int (*get_module_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
14438 	int (*get_eee)(struct net_device *, struct ethtool_eee *);
14439 	int (*set_eee)(struct net_device *, struct ethtool_eee *);
14440 	int (*get_tunable)(struct net_device *, const struct ethtool_tunable *, void *);
14441 	int (*set_tunable)(struct net_device *, const struct ethtool_tunable *, const void *);
14442 	int (*get_per_queue_coalesce)(struct net_device *, u32, struct ethtool_coalesce *);
14443 	int (*set_per_queue_coalesce)(struct net_device *, u32, struct ethtool_coalesce *);
14444 	int (*get_link_ksettings)(struct net_device *, struct ethtool_link_ksettings *);
14445 	int (*set_link_ksettings)(struct net_device *, const struct ethtool_link_ksettings *);
14446 	void (*get_fec_stats)(struct net_device *, struct ethtool_fec_stats *);
14447 	int (*get_fecparam)(struct net_device *, struct ethtool_fecparam *);
14448 	int (*set_fecparam)(struct net_device *, struct ethtool_fecparam *);
14449 	void (*get_ethtool_phy_stats)(struct net_device *, struct ethtool_stats *, u64 *);
14450 	int (*get_phy_tunable)(struct net_device *, const struct ethtool_tunable *, void *);
14451 	int (*set_phy_tunable)(struct net_device *, const struct ethtool_tunable *, const void *);
14452 	int (*get_module_eeprom_by_page)(struct net_device *, const struct ethtool_module_eeprom *, struct netlink_ext_ack *);
14453 	void (*get_eth_phy_stats)(struct net_device *, struct ethtool_eth_phy_stats *);
14454 	void (*get_eth_mac_stats)(struct net_device *, struct ethtool_eth_mac_stats *);
14455 	void (*get_eth_ctrl_stats)(struct net_device *, struct ethtool_eth_ctrl_stats *);
14456 	void (*get_rmon_stats)(struct net_device *, struct ethtool_rmon_stats *, const struct ethtool_rmon_hist_range **);
14457 	int (*get_module_power_mode)(struct net_device *, struct ethtool_module_power_mode_params *, struct netlink_ext_ack *);
14458 	int (*set_module_power_mode)(struct net_device *, const struct ethtool_module_power_mode_params *, struct netlink_ext_ack *);
14459 };
14460 
14461 struct nd_opt_hdr;
14462 
14463 struct ndisc_options;
14464 
14465 struct prefix_info;
14466 
14467 struct ndisc_ops {
14468 	int (*is_useropt)(u8);
14469 	int (*parse_options)(const struct net_device *, struct nd_opt_hdr *, struct ndisc_options *);
14470 	void (*update)(const struct net_device *, struct neighbour *, u32, u8, const struct ndisc_options *);
14471 	int (*opt_addr_space)(const struct net_device *, u8, struct neighbour *, u8 *, u8 **);
14472 	void (*fill_addr_option)(const struct net_device *, struct sk_buff *, u8, const u8 *);
14473 	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);
14474 };
14475 
14476 struct ipv6_devstat {
14477 	struct proc_dir_entry *proc_dir_entry;
14478 	struct ipstats_mib *ipv6;
14479 	struct icmpv6_mib_device *icmpv6dev;
14480 	struct icmpv6msg_mib_device *icmpv6msgdev;
14481 };
14482 
14483 struct ifmcaddr6;
14484 
14485 struct ifacaddr6;
14486 
14487 struct inet6_dev {
14488 	struct net_device *dev;
14489 	netdevice_tracker dev_tracker;
14490 	struct list_head addr_list;
14491 	struct ifmcaddr6 *mc_list;
14492 	struct ifmcaddr6 *mc_tomb;
14493 	unsigned char mc_qrv;
14494 	unsigned char mc_gq_running;
14495 	unsigned char mc_ifc_count;
14496 	unsigned char mc_dad_count;
14497 	long unsigned int mc_v1_seen;
14498 	long unsigned int mc_qi;
14499 	long unsigned int mc_qri;
14500 	long unsigned int mc_maxdelay;
14501 	struct delayed_work mc_gq_work;
14502 	struct delayed_work mc_ifc_work;
14503 	struct delayed_work mc_dad_work;
14504 	struct delayed_work mc_query_work;
14505 	struct delayed_work mc_report_work;
14506 	struct sk_buff_head mc_query_queue;
14507 	struct sk_buff_head mc_report_queue;
14508 	spinlock_t mc_query_lock;
14509 	spinlock_t mc_report_lock;
14510 	struct mutex mc_lock;
14511 	struct ifacaddr6 *ac_list;
14512 	rwlock_t lock;
14513 	refcount_t refcnt;
14514 	__u32 if_flags;
14515 	int dead;
14516 	u32 desync_factor;
14517 	struct list_head tempaddr_list;
14518 	struct in6_addr token;
14519 	struct neigh_parms *nd_parms;
14520 	struct ipv6_devconf cnf;
14521 	struct ipv6_devstat stats;
14522 	struct timer_list rs_timer;
14523 	__s32 rs_interval;
14524 	__u8 rs_probes;
14525 	long unsigned int tstamp;
14526 	struct callback_head rcu;
14527 	unsigned int ra_mtu;
14528 };
14529 
14530 struct rtnl_link_ops {
14531 	struct list_head list;
14532 	const char *kind;
14533 	size_t priv_size;
14534 	struct net_device * (*alloc)(struct nlattr **, const char *, unsigned char, unsigned int, unsigned int);
14535 	void (*setup)(struct net_device *);
14536 	bool netns_refund;
14537 	unsigned int maxtype;
14538 	const struct nla_policy *policy;
14539 	int (*validate)(struct nlattr **, struct nlattr **, struct netlink_ext_ack *);
14540 	int (*newlink)(struct net *, struct net_device *, struct nlattr **, struct nlattr **, struct netlink_ext_ack *);
14541 	int (*changelink)(struct net_device *, struct nlattr **, struct nlattr **, struct netlink_ext_ack *);
14542 	void (*dellink)(struct net_device *, struct list_head *);
14543 	size_t (*get_size)(const struct net_device *);
14544 	int (*fill_info)(struct sk_buff *, const struct net_device *);
14545 	size_t (*get_xstats_size)(const struct net_device *);
14546 	int (*fill_xstats)(struct sk_buff *, const struct net_device *);
14547 	unsigned int (*get_num_tx_queues)();
14548 	unsigned int (*get_num_rx_queues)();
14549 	unsigned int slave_maxtype;
14550 	const struct nla_policy *slave_policy;
14551 	int (*slave_changelink)(struct net_device *, struct net_device *, struct nlattr **, struct nlattr **, struct netlink_ext_ack *);
14552 	size_t (*get_slave_size)(const struct net_device *, const struct net_device *);
14553 	int (*fill_slave_info)(struct sk_buff *, const struct net_device *, const struct net_device *);
14554 	struct net * (*get_link_net)(const struct net_device *);
14555 	size_t (*get_linkxstats_size)(const struct net_device *, int);
14556 	int (*fill_linkxstats)(struct sk_buff *, const struct net_device *, int *, int);
14557 };
14558 
14559 struct udp_tunnel_nic_table_info {
14560 	unsigned int n_entries;
14561 	unsigned int tunnel_types;
14562 };
14563 
14564 struct udp_tunnel_info;
14565 
14566 struct udp_tunnel_nic_shared;
14567 
14568 struct udp_tunnel_nic_info {
14569 	int (*set_port)(struct net_device *, unsigned int, unsigned int, struct udp_tunnel_info *);
14570 	int (*unset_port)(struct net_device *, unsigned int, unsigned int, struct udp_tunnel_info *);
14571 	int (*sync_table)(struct net_device *, unsigned int);
14572 	struct udp_tunnel_nic_shared *shared;
14573 	unsigned int flags;
14574 	struct udp_tunnel_nic_table_info tables[4];
14575 };
14576 
14577 struct sd_flow_limit {
14578 	u64 count;
14579 	unsigned int num_buckets;
14580 	unsigned int history_head;
14581 	u16 history[128];
14582 	u8 buckets[0];
14583 };
14584 
14585 struct softnet_data {
14586 	struct list_head poll_list;
14587 	struct sk_buff_head process_queue;
14588 	unsigned int processed;
14589 	unsigned int time_squeeze;
14590 	unsigned int received_rps;
14591 	struct softnet_data *rps_ipi_list;
14592 	struct sd_flow_limit *flow_limit;
14593 	struct Qdisc *output_queue;
14594 	struct Qdisc **output_queue_tailp;
14595 	struct sk_buff *completion_queue;
14596 	struct {
14597 		u16 recursion;
14598 		u8 more;
14599 	} xmit;
14600 	long: 32;
14601 	long: 64;
14602 	long: 64;
14603 	long: 64;
14604 	unsigned int input_queue_head;
14605 	long: 32;
14606 	long: 64;
14607 	long: 64;
14608 	long: 64;
14609 	long: 64;
14610 	long: 64;
14611 	long: 64;
14612 	long: 64;
14613 	call_single_data_t csd;
14614 	struct softnet_data *rps_ipi_next;
14615 	unsigned int cpu;
14616 	unsigned int input_queue_tail;
14617 	unsigned int dropped;
14618 	struct sk_buff_head input_pkt_queue;
14619 	struct napi_struct backlog;
14620 	long: 64;
14621 	long: 64;
14622 	long: 64;
14623 	long: 64;
14624 	long: 64;
14625 };
14626 
14627 enum {
14628 	RTAX_UNSPEC = 0,
14629 	RTAX_LOCK = 1,
14630 	RTAX_MTU = 2,
14631 	RTAX_WINDOW = 3,
14632 	RTAX_RTT = 4,
14633 	RTAX_RTTVAR = 5,
14634 	RTAX_SSTHRESH = 6,
14635 	RTAX_CWND = 7,
14636 	RTAX_ADVMSS = 8,
14637 	RTAX_REORDERING = 9,
14638 	RTAX_HOPLIMIT = 10,
14639 	RTAX_INITCWND = 11,
14640 	RTAX_FEATURES = 12,
14641 	RTAX_RTO_MIN = 13,
14642 	RTAX_INITRWND = 14,
14643 	RTAX_QUICKACK = 15,
14644 	RTAX_CC_ALGO = 16,
14645 	RTAX_FASTOPEN_NO_COOKIE = 17,
14646 	__RTAX_MAX = 18,
14647 };
14648 
14649 struct netlink_range_validation {
14650 	u64 min;
14651 	u64 max;
14652 };
14653 
14654 struct netlink_range_validation_signed {
14655 	s64 min;
14656 	s64 max;
14657 };
14658 
14659 struct nl_info {
14660 	struct nlmsghdr *nlh;
14661 	struct net *nl_net;
14662 	u32 portid;
14663 	u8 skip_notify: 1;
14664 	u8 skip_notify_kernel: 1;
14665 };
14666 
14667 enum {
14668 	NEIGH_VAR_MCAST_PROBES = 0,
14669 	NEIGH_VAR_UCAST_PROBES = 1,
14670 	NEIGH_VAR_APP_PROBES = 2,
14671 	NEIGH_VAR_MCAST_REPROBES = 3,
14672 	NEIGH_VAR_RETRANS_TIME = 4,
14673 	NEIGH_VAR_BASE_REACHABLE_TIME = 5,
14674 	NEIGH_VAR_DELAY_PROBE_TIME = 6,
14675 	NEIGH_VAR_GC_STALETIME = 7,
14676 	NEIGH_VAR_QUEUE_LEN_BYTES = 8,
14677 	NEIGH_VAR_PROXY_QLEN = 9,
14678 	NEIGH_VAR_ANYCAST_DELAY = 10,
14679 	NEIGH_VAR_PROXY_DELAY = 11,
14680 	NEIGH_VAR_LOCKTIME = 12,
14681 	NEIGH_VAR_QUEUE_LEN = 13,
14682 	NEIGH_VAR_RETRANS_TIME_MS = 14,
14683 	NEIGH_VAR_BASE_REACHABLE_TIME_MS = 15,
14684 	NEIGH_VAR_GC_INTERVAL = 16,
14685 	NEIGH_VAR_GC_THRESH1 = 17,
14686 	NEIGH_VAR_GC_THRESH2 = 18,
14687 	NEIGH_VAR_GC_THRESH3 = 19,
14688 	NEIGH_VAR_MAX = 20,
14689 };
14690 
14691 struct pneigh_entry;
14692 
14693 struct neigh_statistics;
14694 
14695 struct neigh_hash_table;
14696 
14697 struct neigh_table {
14698 	int family;
14699 	unsigned int entry_size;
14700 	unsigned int key_len;
14701 	__be16 protocol;
14702 	__u32 (*hash)(const void *, const struct net_device *, __u32 *);
14703 	bool (*key_eq)(const struct neighbour *, const void *);
14704 	int (*constructor)(struct neighbour *);
14705 	int (*pconstructor)(struct pneigh_entry *);
14706 	void (*pdestructor)(struct pneigh_entry *);
14707 	void (*proxy_redo)(struct sk_buff *);
14708 	int (*is_multicast)(const void *);
14709 	bool (*allow_add)(const struct net_device *, struct netlink_ext_ack *);
14710 	char *id;
14711 	struct neigh_parms parms;
14712 	struct list_head parms_list;
14713 	int gc_interval;
14714 	int gc_thresh1;
14715 	int gc_thresh2;
14716 	int gc_thresh3;
14717 	long unsigned int last_flush;
14718 	struct delayed_work gc_work;
14719 	struct delayed_work managed_work;
14720 	struct timer_list proxy_timer;
14721 	struct sk_buff_head proxy_queue;
14722 	atomic_t entries;
14723 	atomic_t gc_entries;
14724 	struct list_head gc_list;
14725 	struct list_head managed_list;
14726 	rwlock_t lock;
14727 	long unsigned int last_rand;
14728 	struct neigh_statistics *stats;
14729 	struct neigh_hash_table *nht;
14730 	struct pneigh_entry **phash_buckets;
14731 };
14732 
14733 struct neigh_statistics {
14734 	long unsigned int allocs;
14735 	long unsigned int destroys;
14736 	long unsigned int hash_grows;
14737 	long unsigned int res_failed;
14738 	long unsigned int lookups;
14739 	long unsigned int hits;
14740 	long unsigned int rcv_probes_mcast;
14741 	long unsigned int rcv_probes_ucast;
14742 	long unsigned int periodic_gc_runs;
14743 	long unsigned int forced_gc_runs;
14744 	long unsigned int unres_discards;
14745 	long unsigned int table_fulls;
14746 };
14747 
14748 struct neigh_ops {
14749 	int family;
14750 	void (*solicit)(struct neighbour *, struct sk_buff *);
14751 	void (*error_report)(struct neighbour *, struct sk_buff *);
14752 	int (*output)(struct neighbour *, struct sk_buff *);
14753 	int (*connected_output)(struct neighbour *, struct sk_buff *);
14754 };
14755 
14756 struct pneigh_entry {
14757 	struct pneigh_entry *next;
14758 	possible_net_t net;
14759 	struct net_device *dev;
14760 	netdevice_tracker dev_tracker;
14761 	u32 flags;
14762 	u8 protocol;
14763 	u8 key[0];
14764 };
14765 
14766 struct neigh_hash_table {
14767 	struct neighbour **hash_buckets;
14768 	unsigned int hash_shift;
14769 	__u32 hash_rnd[4];
14770 	struct callback_head rcu;
14771 };
14772 
14773 struct dst_metrics {
14774 	u32 metrics[17];
14775 	refcount_t refcnt;
14776 };
14777 
14778 enum {
14779 	TCP_ESTABLISHED = 1,
14780 	TCP_SYN_SENT = 2,
14781 	TCP_SYN_RECV = 3,
14782 	TCP_FIN_WAIT1 = 4,
14783 	TCP_FIN_WAIT2 = 5,
14784 	TCP_TIME_WAIT = 6,
14785 	TCP_CLOSE = 7,
14786 	TCP_CLOSE_WAIT = 8,
14787 	TCP_LAST_ACK = 9,
14788 	TCP_LISTEN = 10,
14789 	TCP_CLOSING = 11,
14790 	TCP_NEW_SYN_RECV = 12,
14791 	TCP_MAX_STATES = 13,
14792 };
14793 
14794 struct fib_rule_hdr {
14795 	__u8 family;
14796 	__u8 dst_len;
14797 	__u8 src_len;
14798 	__u8 tos;
14799 	__u8 table;
14800 	__u8 res1;
14801 	__u8 res2;
14802 	__u8 action;
14803 	__u32 flags;
14804 };
14805 
14806 struct fib_rule_port_range {
14807 	__u16 start;
14808 	__u16 end;
14809 };
14810 
14811 struct fib_kuid_range {
14812 	kuid_t start;
14813 	kuid_t end;
14814 };
14815 
14816 struct fib_rule {
14817 	struct list_head list;
14818 	int iifindex;
14819 	int oifindex;
14820 	u32 mark;
14821 	u32 mark_mask;
14822 	u32 flags;
14823 	u32 table;
14824 	u8 action;
14825 	u8 l3mdev;
14826 	u8 proto;
14827 	u8 ip_proto;
14828 	u32 target;
14829 	__be64 tun_id;
14830 	struct fib_rule *ctarget;
14831 	struct net *fr_net;
14832 	refcount_t refcnt;
14833 	u32 pref;
14834 	int suppress_ifgroup;
14835 	int suppress_prefixlen;
14836 	char iifname[16];
14837 	char oifname[16];
14838 	struct fib_kuid_range uid_range;
14839 	struct fib_rule_port_range sport_range;
14840 	struct fib_rule_port_range dport_range;
14841 	struct callback_head rcu;
14842 };
14843 
14844 struct fib_lookup_arg {
14845 	void *lookup_ptr;
14846 	const void *lookup_data;
14847 	void *result;
14848 	struct fib_rule *rule;
14849 	u32 table;
14850 	int flags;
14851 };
14852 
14853 struct smc_hashinfo;
14854 
14855 struct sk_psock;
14856 
14857 struct request_sock_ops;
14858 
14859 struct timewait_sock_ops;
14860 
14861 struct udp_table;
14862 
14863 struct raw_hashinfo;
14864 
14865 struct proto {
14866 	void (*close)(struct sock *, long int);
14867 	int (*pre_connect)(struct sock *, struct sockaddr *, int);
14868 	int (*connect)(struct sock *, struct sockaddr *, int);
14869 	int (*disconnect)(struct sock *, int);
14870 	struct sock * (*accept)(struct sock *, int, int *, bool);
14871 	int (*ioctl)(struct sock *, int, long unsigned int);
14872 	int (*init)(struct sock *);
14873 	void (*destroy)(struct sock *);
14874 	void (*shutdown)(struct sock *, int);
14875 	int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int);
14876 	int (*getsockopt)(struct sock *, int, int, char *, int *);
14877 	void (*keepalive)(struct sock *, int);
14878 	int (*sendmsg)(struct sock *, struct msghdr *, size_t);
14879 	int (*recvmsg)(struct sock *, struct msghdr *, size_t, int, int, int *);
14880 	int (*sendpage)(struct sock *, struct page *, int, size_t, int);
14881 	int (*bind)(struct sock *, struct sockaddr *, int);
14882 	int (*bind_add)(struct sock *, struct sockaddr *, int);
14883 	int (*backlog_rcv)(struct sock *, struct sk_buff *);
14884 	bool (*bpf_bypass_getsockopt)(int, int);
14885 	void (*release_cb)(struct sock *);
14886 	int (*hash)(struct sock *);
14887 	void (*unhash)(struct sock *);
14888 	void (*rehash)(struct sock *);
14889 	int (*get_port)(struct sock *, short unsigned int);
14890 	void (*put_port)(struct sock *);
14891 	int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool);
14892 	unsigned int inuse_idx;
14893 	bool (*stream_memory_free)(const struct sock *, int);
14894 	bool (*sock_is_readable)(struct sock *);
14895 	void (*enter_memory_pressure)(struct sock *);
14896 	void (*leave_memory_pressure)(struct sock *);
14897 	atomic_long_t *memory_allocated;
14898 	struct percpu_counter *sockets_allocated;
14899 	long unsigned int *memory_pressure;
14900 	long int *sysctl_mem;
14901 	int *sysctl_wmem;
14902 	int *sysctl_rmem;
14903 	u32 sysctl_wmem_offset;
14904 	u32 sysctl_rmem_offset;
14905 	int max_header;
14906 	bool no_autobind;
14907 	struct kmem_cache *slab;
14908 	unsigned int obj_size;
14909 	slab_flags_t slab_flags;
14910 	unsigned int useroffset;
14911 	unsigned int usersize;
14912 	unsigned int *orphan_count;
14913 	struct request_sock_ops *rsk_prot;
14914 	struct timewait_sock_ops *twsk_prot;
14915 	union {
14916 		struct inet_hashinfo *hashinfo;
14917 		struct udp_table *udp_table;
14918 		struct raw_hashinfo *raw_hash;
14919 		struct smc_hashinfo *smc_hash;
14920 	} h;
14921 	struct module *owner;
14922 	char name[32];
14923 	struct list_head node;
14924 	int (*diag_destroy)(struct sock *, int);
14925 };
14926 
14927 struct request_sock;
14928 
14929 struct request_sock_ops {
14930 	int family;
14931 	unsigned int obj_size;
14932 	struct kmem_cache *slab;
14933 	char *slab_name;
14934 	int (*rtx_syn_ack)(const struct sock *, struct request_sock *);
14935 	void (*send_ack)(const struct sock *, struct sk_buff *, struct request_sock *);
14936 	void (*send_reset)(const struct sock *, struct sk_buff *);
14937 	void (*destructor)(struct request_sock *);
14938 	void (*syn_ack_timeout)(const struct request_sock *);
14939 };
14940 
14941 struct timewait_sock_ops {
14942 	struct kmem_cache *twsk_slab;
14943 	char *twsk_slab_name;
14944 	unsigned int twsk_obj_size;
14945 	int (*twsk_unique)(struct sock *, struct sock *, void *);
14946 	void (*twsk_destructor)(struct sock *);
14947 };
14948 
14949 struct saved_syn;
14950 
14951 struct request_sock {
14952 	struct sock_common __req_common;
14953 	struct request_sock *dl_next;
14954 	u16 mss;
14955 	u8 num_retrans;
14956 	u8 syncookie: 1;
14957 	u8 num_timeout: 7;
14958 	u32 ts_recent;
14959 	struct timer_list rsk_timer;
14960 	const struct request_sock_ops *rsk_ops;
14961 	struct sock *sk;
14962 	struct saved_syn *saved_syn;
14963 	u32 secid;
14964 	u32 peer_secid;
14965 };
14966 
14967 struct saved_syn {
14968 	u32 mac_hdrlen;
14969 	u32 network_hdrlen;
14970 	u32 tcp_hdrlen;
14971 	u8 data[0];
14972 };
14973 
14974 enum tsq_enum {
14975 	TSQ_THROTTLED = 0,
14976 	TSQ_QUEUED = 1,
14977 	TCP_TSQ_DEFERRED = 2,
14978 	TCP_WRITE_TIMER_DEFERRED = 3,
14979 	TCP_DELACK_TIMER_DEFERRED = 4,
14980 	TCP_MTU_REDUCED_DEFERRED = 5,
14981 };
14982 
14983 struct static_key_false_deferred {
14984 	struct static_key_false key;
14985 	long unsigned int timeout;
14986 	struct delayed_work work;
14987 };
14988 
14989 struct ip6_sf_list {
14990 	struct ip6_sf_list *sf_next;
14991 	struct in6_addr sf_addr;
14992 	long unsigned int sf_count[2];
14993 	unsigned char sf_gsresp;
14994 	unsigned char sf_oldin;
14995 	unsigned char sf_crcount;
14996 	struct callback_head rcu;
14997 };
14998 
14999 struct ifmcaddr6 {
15000 	struct in6_addr mca_addr;
15001 	struct inet6_dev *idev;
15002 	struct ifmcaddr6 *next;
15003 	struct ip6_sf_list *mca_sources;
15004 	struct ip6_sf_list *mca_tomb;
15005 	unsigned int mca_sfmode;
15006 	unsigned char mca_crcount;
15007 	long unsigned int mca_sfcount[2];
15008 	struct delayed_work mca_work;
15009 	unsigned int mca_flags;
15010 	int mca_users;
15011 	refcount_t mca_refcnt;
15012 	long unsigned int mca_cstamp;
15013 	long unsigned int mca_tstamp;
15014 	struct callback_head rcu;
15015 };
15016 
15017 struct ifacaddr6 {
15018 	struct in6_addr aca_addr;
15019 	struct fib6_info *aca_rt;
15020 	struct ifacaddr6 *aca_next;
15021 	struct hlist_node aca_addr_lst;
15022 	int aca_users;
15023 	refcount_t aca_refcnt;
15024 	long unsigned int aca_cstamp;
15025 	long unsigned int aca_tstamp;
15026 	struct callback_head rcu;
15027 };
15028 
15029 struct fib6_result;
15030 
15031 struct fib6_nh;
15032 
15033 struct fib6_config;
15034 
15035 struct ipv6_stub {
15036 	int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
15037 	int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
15038 	struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
15039 	int (*ipv6_route_input)(struct sk_buff *);
15040 	struct fib6_table * (*fib6_get_table)(struct net *, u32);
15041 	int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
15042 	int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
15043 	void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
15044 	u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
15045 	int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
15046 	void (*fib6_nh_release)(struct fib6_nh *);
15047 	void (*fib6_nh_release_dsts)(struct fib6_nh *);
15048 	void (*fib6_update_sernum)(struct net *, struct fib6_info *);
15049 	int (*ip6_del_rt)(struct net *, struct fib6_info *, bool);
15050 	void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
15051 	void (*udpv6_encap_enable)();
15052 	void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
15053 	void (*xfrm6_local_rxpmtu)(struct sk_buff *, u32);
15054 	int (*xfrm6_udp_encap_rcv)(struct sock *, struct sk_buff *);
15055 	int (*xfrm6_rcv_encap)(struct sk_buff *, int, __be32, int);
15056 	struct neigh_table *nd_tbl;
15057 	int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *));
15058 	struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *);
15059 };
15060 
15061 struct fib6_result {
15062 	struct fib6_nh *nh;
15063 	struct fib6_info *f6i;
15064 	u32 fib6_flags;
15065 	u8 fib6_type;
15066 	struct rt6_info *rt6;
15067 };
15068 
15069 struct ipv6_bpf_stub {
15070 	int (*inet6_bind)(struct sock *, struct sockaddr *, int, u32);
15071 	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 *);
15072 };
15073 
15074 enum {
15075 	__ND_OPT_PREFIX_INFO_END = 0,
15076 	ND_OPT_SOURCE_LL_ADDR = 1,
15077 	ND_OPT_TARGET_LL_ADDR = 2,
15078 	ND_OPT_PREFIX_INFO = 3,
15079 	ND_OPT_REDIRECT_HDR = 4,
15080 	ND_OPT_MTU = 5,
15081 	ND_OPT_NONCE = 14,
15082 	__ND_OPT_ARRAY_MAX = 15,
15083 	ND_OPT_ROUTE_INFO = 24,
15084 	ND_OPT_RDNSS = 25,
15085 	ND_OPT_DNSSL = 31,
15086 	ND_OPT_6CO = 34,
15087 	ND_OPT_CAPTIVE_PORTAL = 37,
15088 	ND_OPT_PREF64 = 38,
15089 	__ND_OPT_MAX = 39,
15090 };
15091 
15092 struct nd_opt_hdr {
15093 	__u8 nd_opt_type;
15094 	__u8 nd_opt_len;
15095 };
15096 
15097 struct ndisc_options {
15098 	struct nd_opt_hdr *nd_opt_array[15];
15099 	struct nd_opt_hdr *nd_opts_ri;
15100 	struct nd_opt_hdr *nd_opts_ri_end;
15101 	struct nd_opt_hdr *nd_useropts;
15102 	struct nd_opt_hdr *nd_useropts_end;
15103 };
15104 
15105 struct prefix_info {
15106 	__u8 type;
15107 	__u8 length;
15108 	__u8 prefix_len;
15109 	__u8 reserved: 6;
15110 	__u8 autoconf: 1;
15111 	__u8 onlink: 1;
15112 	__be32 valid;
15113 	__be32 prefered;
15114 	__be32 reserved2;
15115 	struct in6_addr prefix;
15116 };
15117 
15118 struct ip6_ra_chain {
15119 	struct ip6_ra_chain *next;
15120 	struct sock *sk;
15121 	int sel;
15122 	void (*destructor)(struct sock *);
15123 };
15124 
15125 struct rpc_xprt_iter_ops {
15126 	void (*xpi_rewind)(struct rpc_xprt_iter *);
15127 	struct rpc_xprt * (*xpi_xprt)(struct rpc_xprt_iter *);
15128 	struct rpc_xprt * (*xpi_next)(struct rpc_xprt_iter *);
15129 };
15130 
15131 struct rpc_version {
15132 	u32 number;
15133 	unsigned int nrprocs;
15134 	const struct rpc_procinfo *procs;
15135 	unsigned int *counts;
15136 };
15137 
15138 struct nfs_fh {
15139 	short unsigned int size;
15140 	unsigned char data[128];
15141 };
15142 
15143 enum nfs3_stable_how {
15144 	NFS_UNSTABLE = 0,
15145 	NFS_DATA_SYNC = 1,
15146 	NFS_FILE_SYNC = 2,
15147 	NFS_INVALID_STABLE_HOW = 4294967295,
15148 };
15149 
15150 struct nfs4_label {
15151 	uint32_t lfs;
15152 	uint32_t pi;
15153 	u32 len;
15154 	char *label;
15155 };
15156 
15157 struct nfs4_stateid_struct {
15158 	union {
15159 		char data[16];
15160 		struct {
15161 			__be32 seqid;
15162 			char other[12];
15163 		};
15164 	};
15165 	enum {
15166 		NFS4_INVALID_STATEID_TYPE = 0,
15167 		NFS4_SPECIAL_STATEID_TYPE = 1,
15168 		NFS4_OPEN_STATEID_TYPE = 2,
15169 		NFS4_LOCK_STATEID_TYPE = 3,
15170 		NFS4_DELEGATION_STATEID_TYPE = 4,
15171 		NFS4_LAYOUT_STATEID_TYPE = 5,
15172 		NFS4_PNFS_DS_STATEID_TYPE = 6,
15173 		NFS4_REVOKED_STATEID_TYPE = 7,
15174 	} type;
15175 };
15176 
15177 typedef struct nfs4_stateid_struct nfs4_stateid;
15178 
15179 enum nfs_opnum4 {
15180 	OP_ACCESS = 3,
15181 	OP_CLOSE = 4,
15182 	OP_COMMIT = 5,
15183 	OP_CREATE = 6,
15184 	OP_DELEGPURGE = 7,
15185 	OP_DELEGRETURN = 8,
15186 	OP_GETATTR = 9,
15187 	OP_GETFH = 10,
15188 	OP_LINK = 11,
15189 	OP_LOCK = 12,
15190 	OP_LOCKT = 13,
15191 	OP_LOCKU = 14,
15192 	OP_LOOKUP = 15,
15193 	OP_LOOKUPP = 16,
15194 	OP_NVERIFY = 17,
15195 	OP_OPEN = 18,
15196 	OP_OPENATTR = 19,
15197 	OP_OPEN_CONFIRM = 20,
15198 	OP_OPEN_DOWNGRADE = 21,
15199 	OP_PUTFH = 22,
15200 	OP_PUTPUBFH = 23,
15201 	OP_PUTROOTFH = 24,
15202 	OP_READ = 25,
15203 	OP_READDIR = 26,
15204 	OP_READLINK = 27,
15205 	OP_REMOVE = 28,
15206 	OP_RENAME = 29,
15207 	OP_RENEW = 30,
15208 	OP_RESTOREFH = 31,
15209 	OP_SAVEFH = 32,
15210 	OP_SECINFO = 33,
15211 	OP_SETATTR = 34,
15212 	OP_SETCLIENTID = 35,
15213 	OP_SETCLIENTID_CONFIRM = 36,
15214 	OP_VERIFY = 37,
15215 	OP_WRITE = 38,
15216 	OP_RELEASE_LOCKOWNER = 39,
15217 	OP_BACKCHANNEL_CTL = 40,
15218 	OP_BIND_CONN_TO_SESSION = 41,
15219 	OP_EXCHANGE_ID = 42,
15220 	OP_CREATE_SESSION = 43,
15221 	OP_DESTROY_SESSION = 44,
15222 	OP_FREE_STATEID = 45,
15223 	OP_GET_DIR_DELEGATION = 46,
15224 	OP_GETDEVICEINFO = 47,
15225 	OP_GETDEVICELIST = 48,
15226 	OP_LAYOUTCOMMIT = 49,
15227 	OP_LAYOUTGET = 50,
15228 	OP_LAYOUTRETURN = 51,
15229 	OP_SECINFO_NO_NAME = 52,
15230 	OP_SEQUENCE = 53,
15231 	OP_SET_SSV = 54,
15232 	OP_TEST_STATEID = 55,
15233 	OP_WANT_DELEGATION = 56,
15234 	OP_DESTROY_CLIENTID = 57,
15235 	OP_RECLAIM_COMPLETE = 58,
15236 	OP_ALLOCATE = 59,
15237 	OP_COPY = 60,
15238 	OP_COPY_NOTIFY = 61,
15239 	OP_DEALLOCATE = 62,
15240 	OP_IO_ADVISE = 63,
15241 	OP_LAYOUTERROR = 64,
15242 	OP_LAYOUTSTATS = 65,
15243 	OP_OFFLOAD_CANCEL = 66,
15244 	OP_OFFLOAD_STATUS = 67,
15245 	OP_READ_PLUS = 68,
15246 	OP_SEEK = 69,
15247 	OP_WRITE_SAME = 70,
15248 	OP_CLONE = 71,
15249 	OP_GETXATTR = 72,
15250 	OP_SETXATTR = 73,
15251 	OP_LISTXATTRS = 74,
15252 	OP_REMOVEXATTR = 75,
15253 	OP_ILLEGAL = 10044,
15254 };
15255 
15256 enum nfs4_change_attr_type {
15257 	NFS4_CHANGE_TYPE_IS_MONOTONIC_INCR = 0,
15258 	NFS4_CHANGE_TYPE_IS_VERSION_COUNTER = 1,
15259 	NFS4_CHANGE_TYPE_IS_VERSION_COUNTER_NOPNFS = 2,
15260 	NFS4_CHANGE_TYPE_IS_TIME_METADATA = 3,
15261 	NFS4_CHANGE_TYPE_IS_UNDEFINED = 4,
15262 };
15263 
15264 struct nfs4_string {
15265 	unsigned int len;
15266 	char *data;
15267 };
15268 
15269 struct nfs_fsid {
15270 	uint64_t major;
15271 	uint64_t minor;
15272 };
15273 
15274 struct nfs4_threshold {
15275 	__u32 bm;
15276 	__u32 l_type;
15277 	__u64 rd_sz;
15278 	__u64 wr_sz;
15279 	__u64 rd_io_sz;
15280 	__u64 wr_io_sz;
15281 };
15282 
15283 struct nfs_fattr {
15284 	unsigned int valid;
15285 	umode_t mode;
15286 	__u32 nlink;
15287 	kuid_t uid;
15288 	kgid_t gid;
15289 	dev_t rdev;
15290 	__u64 size;
15291 	union {
15292 		struct {
15293 			__u32 blocksize;
15294 			__u32 blocks;
15295 		} nfs2;
15296 		struct {
15297 			__u64 used;
15298 		} nfs3;
15299 	} du;
15300 	struct nfs_fsid fsid;
15301 	__u64 fileid;
15302 	__u64 mounted_on_fileid;
15303 	struct timespec64 atime;
15304 	struct timespec64 mtime;
15305 	struct timespec64 ctime;
15306 	__u64 change_attr;
15307 	__u64 pre_change_attr;
15308 	__u64 pre_size;
15309 	struct timespec64 pre_mtime;
15310 	struct timespec64 pre_ctime;
15311 	long unsigned int time_start;
15312 	long unsigned int gencount;
15313 	struct nfs4_string *owner_name;
15314 	struct nfs4_string *group_name;
15315 	struct nfs4_threshold *mdsthreshold;
15316 	struct nfs4_label *label;
15317 };
15318 
15319 struct nfs_fsinfo {
15320 	struct nfs_fattr *fattr;
15321 	__u32 rtmax;
15322 	__u32 rtpref;
15323 	__u32 rtmult;
15324 	__u32 wtmax;
15325 	__u32 wtpref;
15326 	__u32 wtmult;
15327 	__u32 dtpref;
15328 	__u64 maxfilesize;
15329 	struct timespec64 time_delta;
15330 	__u32 lease_time;
15331 	__u32 nlayouttypes;
15332 	__u32 layouttype[8];
15333 	__u32 blksize;
15334 	__u32 clone_blksize;
15335 	enum nfs4_change_attr_type change_attr_type;
15336 	__u32 xattr_support;
15337 };
15338 
15339 struct nfs_fsstat {
15340 	struct nfs_fattr *fattr;
15341 	__u64 tbytes;
15342 	__u64 fbytes;
15343 	__u64 abytes;
15344 	__u64 tfiles;
15345 	__u64 ffiles;
15346 	__u64 afiles;
15347 };
15348 
15349 struct nfs_pathconf {
15350 	struct nfs_fattr *fattr;
15351 	__u32 max_link;
15352 	__u32 max_namelen;
15353 };
15354 
15355 struct nfs4_change_info {
15356 	u32 atomic;
15357 	u64 before;
15358 	u64 after;
15359 };
15360 
15361 struct nfs4_slot;
15362 
15363 struct nfs4_sequence_args {
15364 	struct nfs4_slot *sa_slot;
15365 	u8 sa_cache_this: 1;
15366 	u8 sa_privileged: 1;
15367 };
15368 
15369 struct nfs4_sequence_res {
15370 	struct nfs4_slot *sr_slot;
15371 	long unsigned int sr_timestamp;
15372 	int sr_status;
15373 	u32 sr_status_flags;
15374 	u32 sr_highest_slotid;
15375 	u32 sr_target_highest_slotid;
15376 };
15377 
15378 struct nfs_open_context;
15379 
15380 struct nfs_lock_context {
15381 	refcount_t count;
15382 	struct list_head list;
15383 	struct nfs_open_context *open_context;
15384 	fl_owner_t lockowner;
15385 	atomic_t io_count;
15386 	struct callback_head callback_head;
15387 };
15388 
15389 struct nfs4_state;
15390 
15391 struct nfs_open_context {
15392 	struct nfs_lock_context lock_context;
15393 	fl_owner_t flock_owner;
15394 	struct dentry *dentry;
15395 	const struct cred *cred;
15396 	struct rpc_cred *ll_cred;
15397 	struct nfs4_state *state;
15398 	fmode_t mode;
15399 	long unsigned int flags;
15400 	int error;
15401 	struct list_head list;
15402 	struct nfs4_threshold *mdsthreshold;
15403 	struct callback_head callback_head;
15404 };
15405 
15406 struct nlm_host;
15407 
15408 struct nfs_iostats;
15409 
15410 struct nfs_auth_info {
15411 	unsigned int flavor_len;
15412 	rpc_authflavor_t flavors[12];
15413 };
15414 
15415 struct nfs_client;
15416 
15417 struct nfs_server {
15418 	struct nfs_client *nfs_client;
15419 	struct list_head client_link;
15420 	struct list_head master_link;
15421 	struct rpc_clnt *client;
15422 	struct rpc_clnt *client_acl;
15423 	struct nlm_host *nlm_host;
15424 	struct nfs_iostats *io_stats;
15425 	atomic_long_t writeback;
15426 	unsigned int flags;
15427 	unsigned int fattr_valid;
15428 	unsigned int caps;
15429 	unsigned int rsize;
15430 	unsigned int rpages;
15431 	unsigned int wsize;
15432 	unsigned int wpages;
15433 	unsigned int wtmult;
15434 	unsigned int dtsize;
15435 	short unsigned int port;
15436 	unsigned int bsize;
15437 	unsigned int acregmin;
15438 	unsigned int acregmax;
15439 	unsigned int acdirmin;
15440 	unsigned int acdirmax;
15441 	unsigned int namelen;
15442 	unsigned int options;
15443 	unsigned int clone_blksize;
15444 	enum nfs4_change_attr_type change_attr_type;
15445 	struct nfs_fsid fsid;
15446 	__u64 maxfilesize;
15447 	struct timespec64 time_delta;
15448 	long unsigned int mount_time;
15449 	struct super_block *super;
15450 	dev_t s_dev;
15451 	struct nfs_auth_info auth_info;
15452 	u32 pnfs_blksize;
15453 	struct ida openowner_id;
15454 	struct ida lockowner_id;
15455 	struct list_head state_owners_lru;
15456 	struct list_head layouts;
15457 	struct list_head delegations;
15458 	struct list_head ss_copies;
15459 	long unsigned int mig_gen;
15460 	long unsigned int mig_status;
15461 	void (*destroy)(struct nfs_server *);
15462 	atomic_t active;
15463 	struct __kernel_sockaddr_storage mountd_address;
15464 	size_t mountd_addrlen;
15465 	u32 mountd_version;
15466 	short unsigned int mountd_port;
15467 	short unsigned int mountd_protocol;
15468 	struct rpc_wait_queue uoc_rpcwaitq;
15469 	unsigned int read_hdrsize;
15470 	const struct cred *cred;
15471 	bool has_sec_mnt_opts;
15472 };
15473 
15474 struct nfs_subversion;
15475 
15476 struct nfs_rpc_ops;
15477 
15478 struct nfs_client {
15479 	refcount_t cl_count;
15480 	atomic_t cl_mds_count;
15481 	int cl_cons_state;
15482 	long unsigned int cl_res_state;
15483 	long unsigned int cl_flags;
15484 	struct __kernel_sockaddr_storage cl_addr;
15485 	size_t cl_addrlen;
15486 	char *cl_hostname;
15487 	char *cl_acceptor;
15488 	struct list_head cl_share_link;
15489 	struct list_head cl_superblocks;
15490 	struct rpc_clnt *cl_rpcclient;
15491 	const struct nfs_rpc_ops *rpc_ops;
15492 	int cl_proto;
15493 	struct nfs_subversion *cl_nfs_mod;
15494 	u32 cl_minorversion;
15495 	unsigned int cl_nconnect;
15496 	unsigned int cl_max_connect;
15497 	const char *cl_principal;
15498 	char cl_ipaddr[48];
15499 	struct net *cl_net;
15500 	struct list_head pending_cb_stateids;
15501 };
15502 
15503 struct pnfs_layout_segment;
15504 
15505 struct nfs_write_verifier {
15506 	char data[8];
15507 };
15508 
15509 struct nfs_writeverf {
15510 	struct nfs_write_verifier verifier;
15511 	enum nfs3_stable_how committed;
15512 };
15513 
15514 struct nfs_pgio_args {
15515 	struct nfs4_sequence_args seq_args;
15516 	struct nfs_fh *fh;
15517 	struct nfs_open_context *context;
15518 	struct nfs_lock_context *lock_context;
15519 	nfs4_stateid stateid;
15520 	__u64 offset;
15521 	__u32 count;
15522 	unsigned int pgbase;
15523 	struct page **pages;
15524 	union {
15525 		unsigned int replen;
15526 		struct {
15527 			const u32 *bitmask;
15528 			u32 bitmask_store[3];
15529 			enum nfs3_stable_how stable;
15530 		};
15531 	};
15532 };
15533 
15534 struct nfs_pgio_res {
15535 	struct nfs4_sequence_res seq_res;
15536 	struct nfs_fattr *fattr;
15537 	__u64 count;
15538 	__u32 op_status;
15539 	union {
15540 		struct {
15541 			unsigned int replen;
15542 			int eof;
15543 		};
15544 		struct {
15545 			struct nfs_writeverf *verf;
15546 			const struct nfs_server *server;
15547 		};
15548 	};
15549 };
15550 
15551 struct nfs_commitargs {
15552 	struct nfs4_sequence_args seq_args;
15553 	struct nfs_fh *fh;
15554 	__u64 offset;
15555 	__u32 count;
15556 	const u32 *bitmask;
15557 };
15558 
15559 struct nfs_commitres {
15560 	struct nfs4_sequence_res seq_res;
15561 	__u32 op_status;
15562 	struct nfs_fattr *fattr;
15563 	struct nfs_writeverf *verf;
15564 	const struct nfs_server *server;
15565 };
15566 
15567 struct nfs_removeargs {
15568 	struct nfs4_sequence_args seq_args;
15569 	const struct nfs_fh *fh;
15570 	struct qstr name;
15571 };
15572 
15573 struct nfs_removeres {
15574 	struct nfs4_sequence_res seq_res;
15575 	struct nfs_server *server;
15576 	struct nfs_fattr *dir_attr;
15577 	struct nfs4_change_info cinfo;
15578 };
15579 
15580 struct nfs_renameargs {
15581 	struct nfs4_sequence_args seq_args;
15582 	const struct nfs_fh *old_dir;
15583 	const struct nfs_fh *new_dir;
15584 	const struct qstr *old_name;
15585 	const struct qstr *new_name;
15586 };
15587 
15588 struct nfs_renameres {
15589 	struct nfs4_sequence_res seq_res;
15590 	struct nfs_server *server;
15591 	struct nfs4_change_info old_cinfo;
15592 	struct nfs_fattr *old_fattr;
15593 	struct nfs4_change_info new_cinfo;
15594 	struct nfs_fattr *new_fattr;
15595 };
15596 
15597 struct nfs_entry {
15598 	__u64 ino;
15599 	__u64 cookie;
15600 	__u64 prev_cookie;
15601 	const char *name;
15602 	unsigned int len;
15603 	int eof;
15604 	struct nfs_fh *fh;
15605 	struct nfs_fattr *fattr;
15606 	unsigned char d_type;
15607 	struct nfs_server *server;
15608 };
15609 
15610 struct nfs_readdir_arg {
15611 	struct dentry *dentry;
15612 	const struct cred *cred;
15613 	__be32 *verf;
15614 	u64 cookie;
15615 	struct page **pages;
15616 	unsigned int page_len;
15617 	bool plus;
15618 };
15619 
15620 struct nfs_readdir_res {
15621 	__be32 *verf;
15622 };
15623 
15624 struct pnfs_ds_commit_info {};
15625 
15626 struct nfs_page_array {
15627 	struct page **pagevec;
15628 	unsigned int npages;
15629 	struct page *page_array[8];
15630 };
15631 
15632 struct nfs_page;
15633 
15634 struct nfs_rw_ops;
15635 
15636 struct nfs_io_completion;
15637 
15638 struct nfs_direct_req;
15639 
15640 struct nfs_pgio_completion_ops;
15641 
15642 struct nfs_pgio_header {
15643 	struct inode *inode;
15644 	const struct cred *cred;
15645 	struct list_head pages;
15646 	struct nfs_page *req;
15647 	struct nfs_writeverf verf;
15648 	fmode_t rw_mode;
15649 	struct pnfs_layout_segment *lseg;
15650 	loff_t io_start;
15651 	const struct rpc_call_ops *mds_ops;
15652 	void (*release)(struct nfs_pgio_header *);
15653 	const struct nfs_pgio_completion_ops *completion_ops;
15654 	const struct nfs_rw_ops *rw_ops;
15655 	struct nfs_io_completion *io_completion;
15656 	struct nfs_direct_req *dreq;
15657 	int pnfs_error;
15658 	int error;
15659 	unsigned int good_bytes;
15660 	long unsigned int flags;
15661 	struct rpc_task task;
15662 	struct nfs_fattr fattr;
15663 	struct nfs_pgio_args args;
15664 	struct nfs_pgio_res res;
15665 	long unsigned int timestamp;
15666 	int (*pgio_done_cb)(struct rpc_task *, struct nfs_pgio_header *);
15667 	__u64 mds_offset;
15668 	struct nfs_page_array page_array;
15669 	struct nfs_client *ds_clp;
15670 	u32 ds_commit_idx;
15671 	u32 pgio_mirror_idx;
15672 };
15673 
15674 struct nfs_pgio_completion_ops {
15675 	void (*error_cleanup)(struct list_head *, int);
15676 	void (*init_hdr)(struct nfs_pgio_header *);
15677 	void (*completion)(struct nfs_pgio_header *);
15678 	void (*reschedule_io)(struct nfs_pgio_header *);
15679 };
15680 
15681 struct nfs_mds_commit_info {
15682 	atomic_t rpcs_out;
15683 	atomic_long_t ncommit;
15684 	struct list_head list;
15685 };
15686 
15687 struct nfs_commit_data;
15688 
15689 struct nfs_commit_info;
15690 
15691 struct nfs_commit_completion_ops {
15692 	void (*completion)(struct nfs_commit_data *);
15693 	void (*resched_write)(struct nfs_commit_info *, struct nfs_page *);
15694 };
15695 
15696 struct nfs_commit_data {
15697 	struct rpc_task task;
15698 	struct inode *inode;
15699 	const struct cred *cred;
15700 	struct nfs_fattr fattr;
15701 	struct nfs_writeverf verf;
15702 	struct list_head pages;
15703 	struct list_head list;
15704 	struct nfs_direct_req *dreq;
15705 	struct nfs_commitargs args;
15706 	struct nfs_commitres res;
15707 	struct nfs_open_context *context;
15708 	struct pnfs_layout_segment *lseg;
15709 	struct nfs_client *ds_clp;
15710 	int ds_commit_index;
15711 	loff_t lwb;
15712 	const struct rpc_call_ops *mds_ops;
15713 	const struct nfs_commit_completion_ops *completion_ops;
15714 	int (*commit_done_cb)(struct rpc_task *, struct nfs_commit_data *);
15715 	long unsigned int flags;
15716 };
15717 
15718 struct nfs_commit_info {
15719 	struct inode *inode;
15720 	struct nfs_mds_commit_info *mds;
15721 	struct pnfs_ds_commit_info *ds;
15722 	struct nfs_direct_req *dreq;
15723 	const struct nfs_commit_completion_ops *completion_ops;
15724 };
15725 
15726 struct nfs_unlinkdata {
15727 	struct nfs_removeargs args;
15728 	struct nfs_removeres res;
15729 	struct dentry *dentry;
15730 	wait_queue_head_t wq;
15731 	const struct cred *cred;
15732 	struct nfs_fattr dir_attr;
15733 	long int timeout;
15734 };
15735 
15736 struct nfs_renamedata {
15737 	struct nfs_renameargs args;
15738 	struct nfs_renameres res;
15739 	const struct cred *cred;
15740 	struct inode *old_dir;
15741 	struct dentry *old_dentry;
15742 	struct nfs_fattr old_fattr;
15743 	struct inode *new_dir;
15744 	struct dentry *new_dentry;
15745 	struct nfs_fattr new_fattr;
15746 	void (*complete)(struct rpc_task *, struct nfs_renamedata *);
15747 	long int timeout;
15748 	bool cancelled;
15749 };
15750 
15751 struct nlmclnt_operations;
15752 
15753 struct nfs_client_initdata;
15754 
15755 struct nfs_access_entry;
15756 
15757 struct nfs_rpc_ops {
15758 	u32 version;
15759 	const struct dentry_operations *dentry_ops;
15760 	const struct inode_operations *dir_inode_ops;
15761 	const struct inode_operations *file_inode_ops;
15762 	const struct file_operations *file_ops;
15763 	const struct nlmclnt_operations *nlmclnt_ops;
15764 	int (*getroot)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *);
15765 	int (*submount)(struct fs_context *, struct nfs_server *);
15766 	int (*try_get_tree)(struct fs_context *);
15767 	int (*getattr)(struct nfs_server *, struct nfs_fh *, struct nfs_fattr *, struct inode *);
15768 	int (*setattr)(struct dentry *, struct nfs_fattr *, struct iattr *);
15769 	int (*lookup)(struct inode *, struct dentry *, struct nfs_fh *, struct nfs_fattr *);
15770 	int (*lookupp)(struct inode *, struct nfs_fh *, struct nfs_fattr *);
15771 	int (*access)(struct inode *, struct nfs_access_entry *);
15772 	int (*readlink)(struct inode *, struct page *, unsigned int, unsigned int);
15773 	int (*create)(struct inode *, struct dentry *, struct iattr *, int);
15774 	int (*remove)(struct inode *, struct dentry *);
15775 	void (*unlink_setup)(struct rpc_message *, struct dentry *, struct inode *);
15776 	void (*unlink_rpc_prepare)(struct rpc_task *, struct nfs_unlinkdata *);
15777 	int (*unlink_done)(struct rpc_task *, struct inode *);
15778 	void (*rename_setup)(struct rpc_message *, struct dentry *, struct dentry *);
15779 	void (*rename_rpc_prepare)(struct rpc_task *, struct nfs_renamedata *);
15780 	int (*rename_done)(struct rpc_task *, struct inode *, struct inode *);
15781 	int (*link)(struct inode *, struct inode *, const struct qstr *);
15782 	int (*symlink)(struct inode *, struct dentry *, struct page *, unsigned int, struct iattr *);
15783 	int (*mkdir)(struct inode *, struct dentry *, struct iattr *);
15784 	int (*rmdir)(struct inode *, const struct qstr *);
15785 	int (*readdir)(struct nfs_readdir_arg *, struct nfs_readdir_res *);
15786 	int (*mknod)(struct inode *, struct dentry *, struct iattr *, dev_t);
15787 	int (*statfs)(struct nfs_server *, struct nfs_fh *, struct nfs_fsstat *);
15788 	int (*fsinfo)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *);
15789 	int (*pathconf)(struct nfs_server *, struct nfs_fh *, struct nfs_pathconf *);
15790 	int (*set_capabilities)(struct nfs_server *, struct nfs_fh *);
15791 	int (*decode_dirent)(struct xdr_stream *, struct nfs_entry *, bool);
15792 	int (*pgio_rpc_prepare)(struct rpc_task *, struct nfs_pgio_header *);
15793 	void (*read_setup)(struct nfs_pgio_header *, struct rpc_message *);
15794 	int (*read_done)(struct rpc_task *, struct nfs_pgio_header *);
15795 	void (*write_setup)(struct nfs_pgio_header *, struct rpc_message *, struct rpc_clnt **);
15796 	int (*write_done)(struct rpc_task *, struct nfs_pgio_header *);
15797 	void (*commit_setup)(struct nfs_commit_data *, struct rpc_message *, struct rpc_clnt **);
15798 	void (*commit_rpc_prepare)(struct rpc_task *, struct nfs_commit_data *);
15799 	int (*commit_done)(struct rpc_task *, struct nfs_commit_data *);
15800 	int (*lock)(struct file *, int, struct file_lock *);
15801 	int (*lock_check_bounds)(const struct file_lock *);
15802 	void (*clear_acl_cache)(struct inode *);
15803 	void (*close_context)(struct nfs_open_context *, int);
15804 	struct inode * (*open_context)(struct inode *, struct nfs_open_context *, int, struct iattr *, int *);
15805 	int (*have_delegation)(struct inode *, fmode_t);
15806 	struct nfs_client * (*alloc_client)(const struct nfs_client_initdata *);
15807 	struct nfs_client * (*init_client)(struct nfs_client *, const struct nfs_client_initdata *);
15808 	void (*free_client)(struct nfs_client *);
15809 	struct nfs_server * (*create_server)(struct fs_context *);
15810 	struct nfs_server * (*clone_server)(struct nfs_server *, struct nfs_fh *, struct nfs_fattr *, rpc_authflavor_t);
15811 };
15812 
15813 struct nfs_access_entry {
15814 	struct rb_node rb_node;
15815 	struct list_head lru;
15816 	const struct cred *cred;
15817 	__u32 mask;
15818 	struct callback_head callback_head;
15819 };
15820 
15821 enum perf_branch_sample_type_shift {
15822 	PERF_SAMPLE_BRANCH_USER_SHIFT = 0,
15823 	PERF_SAMPLE_BRANCH_KERNEL_SHIFT = 1,
15824 	PERF_SAMPLE_BRANCH_HV_SHIFT = 2,
15825 	PERF_SAMPLE_BRANCH_ANY_SHIFT = 3,
15826 	PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT = 4,
15827 	PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT = 5,
15828 	PERF_SAMPLE_BRANCH_IND_CALL_SHIFT = 6,
15829 	PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT = 7,
15830 	PERF_SAMPLE_BRANCH_IN_TX_SHIFT = 8,
15831 	PERF_SAMPLE_BRANCH_NO_TX_SHIFT = 9,
15832 	PERF_SAMPLE_BRANCH_COND_SHIFT = 10,
15833 	PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT = 11,
15834 	PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT = 12,
15835 	PERF_SAMPLE_BRANCH_CALL_SHIFT = 13,
15836 	PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 14,
15837 	PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 15,
15838 	PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 16,
15839 	PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 17,
15840 	PERF_SAMPLE_BRANCH_MAX_SHIFT = 18,
15841 };
15842 
15843 enum exception_stack_ordering {
15844 	ESTACK_DF = 0,
15845 	ESTACK_NMI = 1,
15846 	ESTACK_DB = 2,
15847 	ESTACK_MCE = 3,
15848 	ESTACK_VC = 4,
15849 	ESTACK_VC2 = 5,
15850 	N_EXCEPTION_STACKS = 6,
15851 };
15852 
15853 enum {
15854 	TSK_TRACE_FL_TRACE_BIT = 0,
15855 	TSK_TRACE_FL_GRAPH_BIT = 1,
15856 };
15857 
15858 struct uuidcmp {
15859 	const char *uuid;
15860 	int len;
15861 };
15862 
15863 typedef __u64 __le64;
15864 
15865 struct minix_super_block {
15866 	__u16 s_ninodes;
15867 	__u16 s_nzones;
15868 	__u16 s_imap_blocks;
15869 	__u16 s_zmap_blocks;
15870 	__u16 s_firstdatazone;
15871 	__u16 s_log_zone_size;
15872 	__u32 s_max_size;
15873 	__u16 s_magic;
15874 	__u16 s_state;
15875 	__u32 s_zones;
15876 };
15877 
15878 struct romfs_super_block {
15879 	__be32 word0;
15880 	__be32 word1;
15881 	__be32 size;
15882 	__be32 checksum;
15883 	char name[0];
15884 };
15885 
15886 struct cramfs_inode {
15887 	__u32 mode: 16;
15888 	__u32 uid: 16;
15889 	__u32 size: 24;
15890 	__u32 gid: 8;
15891 	__u32 namelen: 6;
15892 	__u32 offset: 26;
15893 };
15894 
15895 struct cramfs_info {
15896 	__u32 crc;
15897 	__u32 edition;
15898 	__u32 blocks;
15899 	__u32 files;
15900 };
15901 
15902 struct cramfs_super {
15903 	__u32 magic;
15904 	__u32 size;
15905 	__u32 flags;
15906 	__u32 future;
15907 	__u8 signature[16];
15908 	struct cramfs_info fsid;
15909 	__u8 name[16];
15910 	struct cramfs_inode root;
15911 };
15912 
15913 struct squashfs_super_block {
15914 	__le32 s_magic;
15915 	__le32 inodes;
15916 	__le32 mkfs_time;
15917 	__le32 block_size;
15918 	__le32 fragments;
15919 	__le16 compression;
15920 	__le16 block_log;
15921 	__le16 flags;
15922 	__le16 no_ids;
15923 	__le16 s_major;
15924 	__le16 s_minor;
15925 	__le64 root_inode;
15926 	__le64 bytes_used;
15927 	__le64 id_table_start;
15928 	__le64 xattr_id_table_start;
15929 	__le64 inode_table_start;
15930 	__le64 directory_table_start;
15931 	__le64 fragment_table_start;
15932 	__le64 lookup_table_start;
15933 };
15934 
15935 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 *));
15936 
15937 struct subprocess_info {
15938 	struct work_struct work;
15939 	struct completion *complete;
15940 	const char *path;
15941 	char **argv;
15942 	char **envp;
15943 	int wait;
15944 	int retval;
15945 	int (*init)(struct subprocess_info *, struct cred *);
15946 	void (*cleanup)(struct subprocess_info *);
15947 	void *data;
15948 };
15949 
15950 struct __va_list_tag {
15951 	unsigned int gp_offset;
15952 	unsigned int fp_offset;
15953 	void *overflow_arg_area;
15954 	void *reg_save_area;
15955 };
15956 
15957 typedef __builtin_va_list va_list;
15958 
15959 enum umh_disable_depth {
15960 	UMH_ENABLED = 0,
15961 	UMH_FREEZING = 1,
15962 	UMH_DISABLED = 2,
15963 };
15964 
15965 typedef u64 async_cookie_t;
15966 
15967 typedef void (*async_func_t)(void *, async_cookie_t);
15968 
15969 struct async_domain {
15970 	struct list_head pending;
15971 	unsigned int registered: 1;
15972 };
15973 
15974 struct hash {
15975 	int ino;
15976 	int minor;
15977 	int major;
15978 	umode_t mode;
15979 	struct hash *next;
15980 	char name[4098];
15981 };
15982 
15983 struct dir_entry {
15984 	struct list_head list;
15985 	char *name;
15986 	time64_t mtime;
15987 };
15988 
15989 enum state {
15990 	Start = 0,
15991 	Collect = 1,
15992 	GotHeader = 2,
15993 	SkipIt = 3,
15994 	GotName = 4,
15995 	CopyFile = 5,
15996 	GotSymlink = 6,
15997 	Reset = 7,
15998 };
15999 
16000 typedef u32 note_buf_t[92];
16001 
16002 struct kimage_arch {
16003 	p4d_t *p4d;
16004 	pud_t *pud;
16005 	pmd_t *pmd;
16006 	pte_t *pte;
16007 };
16008 
16009 typedef void crash_vmclear_fn();
16010 
16011 typedef long unsigned int kimage_entry_t;
16012 
16013 struct kexec_segment {
16014 	union {
16015 		void *buf;
16016 		void *kbuf;
16017 	};
16018 	size_t bufsz;
16019 	long unsigned int mem;
16020 	size_t memsz;
16021 };
16022 
16023 struct kimage {
16024 	kimage_entry_t head;
16025 	kimage_entry_t *entry;
16026 	kimage_entry_t *last_entry;
16027 	long unsigned int start;
16028 	struct page *control_code_page;
16029 	struct page *swap_page;
16030 	void *vmcoreinfo_data_copy;
16031 	long unsigned int nr_segments;
16032 	struct kexec_segment segment[16];
16033 	struct list_head control_pages;
16034 	struct list_head dest_pages;
16035 	struct list_head unusable_pages;
16036 	long unsigned int control_page;
16037 	unsigned int type: 1;
16038 	unsigned int preserve_context: 1;
16039 	unsigned int file_mode: 1;
16040 	struct kimage_arch arch;
16041 	void *elf_headers;
16042 	long unsigned int elf_headers_sz;
16043 	long unsigned int elf_load_addr;
16044 };
16045 
16046 enum {
16047 	HI_SOFTIRQ = 0,
16048 	TIMER_SOFTIRQ = 1,
16049 	NET_TX_SOFTIRQ = 2,
16050 	NET_RX_SOFTIRQ = 3,
16051 	BLOCK_SOFTIRQ = 4,
16052 	IRQ_POLL_SOFTIRQ = 5,
16053 	TASKLET_SOFTIRQ = 6,
16054 	SCHED_SOFTIRQ = 7,
16055 	HRTIMER_SOFTIRQ = 8,
16056 	RCU_SOFTIRQ = 9,
16057 	NR_SOFTIRQS = 10,
16058 };
16059 
16060 enum ucount_type {
16061 	UCOUNT_USER_NAMESPACES = 0,
16062 	UCOUNT_PID_NAMESPACES = 1,
16063 	UCOUNT_UTS_NAMESPACES = 2,
16064 	UCOUNT_IPC_NAMESPACES = 3,
16065 	UCOUNT_NET_NAMESPACES = 4,
16066 	UCOUNT_MNT_NAMESPACES = 5,
16067 	UCOUNT_CGROUP_NAMESPACES = 6,
16068 	UCOUNT_TIME_NAMESPACES = 7,
16069 	UCOUNT_INOTIFY_INSTANCES = 8,
16070 	UCOUNT_INOTIFY_WATCHES = 9,
16071 	UCOUNT_RLIMIT_NPROC = 10,
16072 	UCOUNT_RLIMIT_MSGQUEUE = 11,
16073 	UCOUNT_RLIMIT_SIGPENDING = 12,
16074 	UCOUNT_RLIMIT_MEMLOCK = 13,
16075 	UCOUNT_COUNTS = 14,
16076 };
16077 
16078 enum flow_dissector_key_id {
16079 	FLOW_DISSECTOR_KEY_CONTROL = 0,
16080 	FLOW_DISSECTOR_KEY_BASIC = 1,
16081 	FLOW_DISSECTOR_KEY_IPV4_ADDRS = 2,
16082 	FLOW_DISSECTOR_KEY_IPV6_ADDRS = 3,
16083 	FLOW_DISSECTOR_KEY_PORTS = 4,
16084 	FLOW_DISSECTOR_KEY_PORTS_RANGE = 5,
16085 	FLOW_DISSECTOR_KEY_ICMP = 6,
16086 	FLOW_DISSECTOR_KEY_ETH_ADDRS = 7,
16087 	FLOW_DISSECTOR_KEY_TIPC = 8,
16088 	FLOW_DISSECTOR_KEY_ARP = 9,
16089 	FLOW_DISSECTOR_KEY_VLAN = 10,
16090 	FLOW_DISSECTOR_KEY_FLOW_LABEL = 11,
16091 	FLOW_DISSECTOR_KEY_GRE_KEYID = 12,
16092 	FLOW_DISSECTOR_KEY_MPLS_ENTROPY = 13,
16093 	FLOW_DISSECTOR_KEY_ENC_KEYID = 14,
16094 	FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS = 15,
16095 	FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS = 16,
16096 	FLOW_DISSECTOR_KEY_ENC_CONTROL = 17,
16097 	FLOW_DISSECTOR_KEY_ENC_PORTS = 18,
16098 	FLOW_DISSECTOR_KEY_MPLS = 19,
16099 	FLOW_DISSECTOR_KEY_TCP = 20,
16100 	FLOW_DISSECTOR_KEY_IP = 21,
16101 	FLOW_DISSECTOR_KEY_CVLAN = 22,
16102 	FLOW_DISSECTOR_KEY_ENC_IP = 23,
16103 	FLOW_DISSECTOR_KEY_ENC_OPTS = 24,
16104 	FLOW_DISSECTOR_KEY_META = 25,
16105 	FLOW_DISSECTOR_KEY_CT = 26,
16106 	FLOW_DISSECTOR_KEY_HASH = 27,
16107 	FLOW_DISSECTOR_KEY_MAX = 28,
16108 };
16109 
16110 enum {
16111 	IPSTATS_MIB_NUM = 0,
16112 	IPSTATS_MIB_INPKTS = 1,
16113 	IPSTATS_MIB_INOCTETS = 2,
16114 	IPSTATS_MIB_INDELIVERS = 3,
16115 	IPSTATS_MIB_OUTFORWDATAGRAMS = 4,
16116 	IPSTATS_MIB_OUTPKTS = 5,
16117 	IPSTATS_MIB_OUTOCTETS = 6,
16118 	IPSTATS_MIB_INHDRERRORS = 7,
16119 	IPSTATS_MIB_INTOOBIGERRORS = 8,
16120 	IPSTATS_MIB_INNOROUTES = 9,
16121 	IPSTATS_MIB_INADDRERRORS = 10,
16122 	IPSTATS_MIB_INUNKNOWNPROTOS = 11,
16123 	IPSTATS_MIB_INTRUNCATEDPKTS = 12,
16124 	IPSTATS_MIB_INDISCARDS = 13,
16125 	IPSTATS_MIB_OUTDISCARDS = 14,
16126 	IPSTATS_MIB_OUTNOROUTES = 15,
16127 	IPSTATS_MIB_REASMTIMEOUT = 16,
16128 	IPSTATS_MIB_REASMREQDS = 17,
16129 	IPSTATS_MIB_REASMOKS = 18,
16130 	IPSTATS_MIB_REASMFAILS = 19,
16131 	IPSTATS_MIB_FRAGOKS = 20,
16132 	IPSTATS_MIB_FRAGFAILS = 21,
16133 	IPSTATS_MIB_FRAGCREATES = 22,
16134 	IPSTATS_MIB_INMCASTPKTS = 23,
16135 	IPSTATS_MIB_OUTMCASTPKTS = 24,
16136 	IPSTATS_MIB_INBCASTPKTS = 25,
16137 	IPSTATS_MIB_OUTBCASTPKTS = 26,
16138 	IPSTATS_MIB_INMCASTOCTETS = 27,
16139 	IPSTATS_MIB_OUTMCASTOCTETS = 28,
16140 	IPSTATS_MIB_INBCASTOCTETS = 29,
16141 	IPSTATS_MIB_OUTBCASTOCTETS = 30,
16142 	IPSTATS_MIB_CSUMERRORS = 31,
16143 	IPSTATS_MIB_NOECTPKTS = 32,
16144 	IPSTATS_MIB_ECT1PKTS = 33,
16145 	IPSTATS_MIB_ECT0PKTS = 34,
16146 	IPSTATS_MIB_CEPKTS = 35,
16147 	IPSTATS_MIB_REASM_OVERLAPS = 36,
16148 	__IPSTATS_MIB_MAX = 37,
16149 };
16150 
16151 enum {
16152 	ICMP_MIB_NUM = 0,
16153 	ICMP_MIB_INMSGS = 1,
16154 	ICMP_MIB_INERRORS = 2,
16155 	ICMP_MIB_INDESTUNREACHS = 3,
16156 	ICMP_MIB_INTIMEEXCDS = 4,
16157 	ICMP_MIB_INPARMPROBS = 5,
16158 	ICMP_MIB_INSRCQUENCHS = 6,
16159 	ICMP_MIB_INREDIRECTS = 7,
16160 	ICMP_MIB_INECHOS = 8,
16161 	ICMP_MIB_INECHOREPS = 9,
16162 	ICMP_MIB_INTIMESTAMPS = 10,
16163 	ICMP_MIB_INTIMESTAMPREPS = 11,
16164 	ICMP_MIB_INADDRMASKS = 12,
16165 	ICMP_MIB_INADDRMASKREPS = 13,
16166 	ICMP_MIB_OUTMSGS = 14,
16167 	ICMP_MIB_OUTERRORS = 15,
16168 	ICMP_MIB_OUTDESTUNREACHS = 16,
16169 	ICMP_MIB_OUTTIMEEXCDS = 17,
16170 	ICMP_MIB_OUTPARMPROBS = 18,
16171 	ICMP_MIB_OUTSRCQUENCHS = 19,
16172 	ICMP_MIB_OUTREDIRECTS = 20,
16173 	ICMP_MIB_OUTECHOS = 21,
16174 	ICMP_MIB_OUTECHOREPS = 22,
16175 	ICMP_MIB_OUTTIMESTAMPS = 23,
16176 	ICMP_MIB_OUTTIMESTAMPREPS = 24,
16177 	ICMP_MIB_OUTADDRMASKS = 25,
16178 	ICMP_MIB_OUTADDRMASKREPS = 26,
16179 	ICMP_MIB_CSUMERRORS = 27,
16180 	__ICMP_MIB_MAX = 28,
16181 };
16182 
16183 enum {
16184 	ICMP6_MIB_NUM = 0,
16185 	ICMP6_MIB_INMSGS = 1,
16186 	ICMP6_MIB_INERRORS = 2,
16187 	ICMP6_MIB_OUTMSGS = 3,
16188 	ICMP6_MIB_OUTERRORS = 4,
16189 	ICMP6_MIB_CSUMERRORS = 5,
16190 	__ICMP6_MIB_MAX = 6,
16191 };
16192 
16193 enum {
16194 	TCP_MIB_NUM = 0,
16195 	TCP_MIB_RTOALGORITHM = 1,
16196 	TCP_MIB_RTOMIN = 2,
16197 	TCP_MIB_RTOMAX = 3,
16198 	TCP_MIB_MAXCONN = 4,
16199 	TCP_MIB_ACTIVEOPENS = 5,
16200 	TCP_MIB_PASSIVEOPENS = 6,
16201 	TCP_MIB_ATTEMPTFAILS = 7,
16202 	TCP_MIB_ESTABRESETS = 8,
16203 	TCP_MIB_CURRESTAB = 9,
16204 	TCP_MIB_INSEGS = 10,
16205 	TCP_MIB_OUTSEGS = 11,
16206 	TCP_MIB_RETRANSSEGS = 12,
16207 	TCP_MIB_INERRS = 13,
16208 	TCP_MIB_OUTRSTS = 14,
16209 	TCP_MIB_CSUMERRORS = 15,
16210 	__TCP_MIB_MAX = 16,
16211 };
16212 
16213 enum {
16214 	UDP_MIB_NUM = 0,
16215 	UDP_MIB_INDATAGRAMS = 1,
16216 	UDP_MIB_NOPORTS = 2,
16217 	UDP_MIB_INERRORS = 3,
16218 	UDP_MIB_OUTDATAGRAMS = 4,
16219 	UDP_MIB_RCVBUFERRORS = 5,
16220 	UDP_MIB_SNDBUFERRORS = 6,
16221 	UDP_MIB_CSUMERRORS = 7,
16222 	UDP_MIB_IGNOREDMULTI = 8,
16223 	UDP_MIB_MEMERRORS = 9,
16224 	__UDP_MIB_MAX = 10,
16225 };
16226 
16227 enum {
16228 	LINUX_MIB_NUM = 0,
16229 	LINUX_MIB_SYNCOOKIESSENT = 1,
16230 	LINUX_MIB_SYNCOOKIESRECV = 2,
16231 	LINUX_MIB_SYNCOOKIESFAILED = 3,
16232 	LINUX_MIB_EMBRYONICRSTS = 4,
16233 	LINUX_MIB_PRUNECALLED = 5,
16234 	LINUX_MIB_RCVPRUNED = 6,
16235 	LINUX_MIB_OFOPRUNED = 7,
16236 	LINUX_MIB_OUTOFWINDOWICMPS = 8,
16237 	LINUX_MIB_LOCKDROPPEDICMPS = 9,
16238 	LINUX_MIB_ARPFILTER = 10,
16239 	LINUX_MIB_TIMEWAITED = 11,
16240 	LINUX_MIB_TIMEWAITRECYCLED = 12,
16241 	LINUX_MIB_TIMEWAITKILLED = 13,
16242 	LINUX_MIB_PAWSACTIVEREJECTED = 14,
16243 	LINUX_MIB_PAWSESTABREJECTED = 15,
16244 	LINUX_MIB_DELAYEDACKS = 16,
16245 	LINUX_MIB_DELAYEDACKLOCKED = 17,
16246 	LINUX_MIB_DELAYEDACKLOST = 18,
16247 	LINUX_MIB_LISTENOVERFLOWS = 19,
16248 	LINUX_MIB_LISTENDROPS = 20,
16249 	LINUX_MIB_TCPHPHITS = 21,
16250 	LINUX_MIB_TCPPUREACKS = 22,
16251 	LINUX_MIB_TCPHPACKS = 23,
16252 	LINUX_MIB_TCPRENORECOVERY = 24,
16253 	LINUX_MIB_TCPSACKRECOVERY = 25,
16254 	LINUX_MIB_TCPSACKRENEGING = 26,
16255 	LINUX_MIB_TCPSACKREORDER = 27,
16256 	LINUX_MIB_TCPRENOREORDER = 28,
16257 	LINUX_MIB_TCPTSREORDER = 29,
16258 	LINUX_MIB_TCPFULLUNDO = 30,
16259 	LINUX_MIB_TCPPARTIALUNDO = 31,
16260 	LINUX_MIB_TCPDSACKUNDO = 32,
16261 	LINUX_MIB_TCPLOSSUNDO = 33,
16262 	LINUX_MIB_TCPLOSTRETRANSMIT = 34,
16263 	LINUX_MIB_TCPRENOFAILURES = 35,
16264 	LINUX_MIB_TCPSACKFAILURES = 36,
16265 	LINUX_MIB_TCPLOSSFAILURES = 37,
16266 	LINUX_MIB_TCPFASTRETRANS = 38,
16267 	LINUX_MIB_TCPSLOWSTARTRETRANS = 39,
16268 	LINUX_MIB_TCPTIMEOUTS = 40,
16269 	LINUX_MIB_TCPLOSSPROBES = 41,
16270 	LINUX_MIB_TCPLOSSPROBERECOVERY = 42,
16271 	LINUX_MIB_TCPRENORECOVERYFAIL = 43,
16272 	LINUX_MIB_TCPSACKRECOVERYFAIL = 44,
16273 	LINUX_MIB_TCPRCVCOLLAPSED = 45,
16274 	LINUX_MIB_TCPDSACKOLDSENT = 46,
16275 	LINUX_MIB_TCPDSACKOFOSENT = 47,
16276 	LINUX_MIB_TCPDSACKRECV = 48,
16277 	LINUX_MIB_TCPDSACKOFORECV = 49,
16278 	LINUX_MIB_TCPABORTONDATA = 50,
16279 	LINUX_MIB_TCPABORTONCLOSE = 51,
16280 	LINUX_MIB_TCPABORTONMEMORY = 52,
16281 	LINUX_MIB_TCPABORTONTIMEOUT = 53,
16282 	LINUX_MIB_TCPABORTONLINGER = 54,
16283 	LINUX_MIB_TCPABORTFAILED = 55,
16284 	LINUX_MIB_TCPMEMORYPRESSURES = 56,
16285 	LINUX_MIB_TCPMEMORYPRESSURESCHRONO = 57,
16286 	LINUX_MIB_TCPSACKDISCARD = 58,
16287 	LINUX_MIB_TCPDSACKIGNOREDOLD = 59,
16288 	LINUX_MIB_TCPDSACKIGNOREDNOUNDO = 60,
16289 	LINUX_MIB_TCPSPURIOUSRTOS = 61,
16290 	LINUX_MIB_TCPMD5NOTFOUND = 62,
16291 	LINUX_MIB_TCPMD5UNEXPECTED = 63,
16292 	LINUX_MIB_TCPMD5FAILURE = 64,
16293 	LINUX_MIB_SACKSHIFTED = 65,
16294 	LINUX_MIB_SACKMERGED = 66,
16295 	LINUX_MIB_SACKSHIFTFALLBACK = 67,
16296 	LINUX_MIB_TCPBACKLOGDROP = 68,
16297 	LINUX_MIB_PFMEMALLOCDROP = 69,
16298 	LINUX_MIB_TCPMINTTLDROP = 70,
16299 	LINUX_MIB_TCPDEFERACCEPTDROP = 71,
16300 	LINUX_MIB_IPRPFILTER = 72,
16301 	LINUX_MIB_TCPTIMEWAITOVERFLOW = 73,
16302 	LINUX_MIB_TCPREQQFULLDOCOOKIES = 74,
16303 	LINUX_MIB_TCPREQQFULLDROP = 75,
16304 	LINUX_MIB_TCPRETRANSFAIL = 76,
16305 	LINUX_MIB_TCPRCVCOALESCE = 77,
16306 	LINUX_MIB_TCPBACKLOGCOALESCE = 78,
16307 	LINUX_MIB_TCPOFOQUEUE = 79,
16308 	LINUX_MIB_TCPOFODROP = 80,
16309 	LINUX_MIB_TCPOFOMERGE = 81,
16310 	LINUX_MIB_TCPCHALLENGEACK = 82,
16311 	LINUX_MIB_TCPSYNCHALLENGE = 83,
16312 	LINUX_MIB_TCPFASTOPENACTIVE = 84,
16313 	LINUX_MIB_TCPFASTOPENACTIVEFAIL = 85,
16314 	LINUX_MIB_TCPFASTOPENPASSIVE = 86,
16315 	LINUX_MIB_TCPFASTOPENPASSIVEFAIL = 87,
16316 	LINUX_MIB_TCPFASTOPENLISTENOVERFLOW = 88,
16317 	LINUX_MIB_TCPFASTOPENCOOKIEREQD = 89,
16318 	LINUX_MIB_TCPFASTOPENBLACKHOLE = 90,
16319 	LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES = 91,
16320 	LINUX_MIB_BUSYPOLLRXPACKETS = 92,
16321 	LINUX_MIB_TCPAUTOCORKING = 93,
16322 	LINUX_MIB_TCPFROMZEROWINDOWADV = 94,
16323 	LINUX_MIB_TCPTOZEROWINDOWADV = 95,
16324 	LINUX_MIB_TCPWANTZEROWINDOWADV = 96,
16325 	LINUX_MIB_TCPSYNRETRANS = 97,
16326 	LINUX_MIB_TCPORIGDATASENT = 98,
16327 	LINUX_MIB_TCPHYSTARTTRAINDETECT = 99,
16328 	LINUX_MIB_TCPHYSTARTTRAINCWND = 100,
16329 	LINUX_MIB_TCPHYSTARTDELAYDETECT = 101,
16330 	LINUX_MIB_TCPHYSTARTDELAYCWND = 102,
16331 	LINUX_MIB_TCPACKSKIPPEDSYNRECV = 103,
16332 	LINUX_MIB_TCPACKSKIPPEDPAWS = 104,
16333 	LINUX_MIB_TCPACKSKIPPEDSEQ = 105,
16334 	LINUX_MIB_TCPACKSKIPPEDFINWAIT2 = 106,
16335 	LINUX_MIB_TCPACKSKIPPEDTIMEWAIT = 107,
16336 	LINUX_MIB_TCPACKSKIPPEDCHALLENGE = 108,
16337 	LINUX_MIB_TCPWINPROBE = 109,
16338 	LINUX_MIB_TCPKEEPALIVE = 110,
16339 	LINUX_MIB_TCPMTUPFAIL = 111,
16340 	LINUX_MIB_TCPMTUPSUCCESS = 112,
16341 	LINUX_MIB_TCPDELIVERED = 113,
16342 	LINUX_MIB_TCPDELIVEREDCE = 114,
16343 	LINUX_MIB_TCPACKCOMPRESSED = 115,
16344 	LINUX_MIB_TCPZEROWINDOWDROP = 116,
16345 	LINUX_MIB_TCPRCVQDROP = 117,
16346 	LINUX_MIB_TCPWQUEUETOOBIG = 118,
16347 	LINUX_MIB_TCPFASTOPENPASSIVEALTKEY = 119,
16348 	LINUX_MIB_TCPTIMEOUTREHASH = 120,
16349 	LINUX_MIB_TCPDUPLICATEDATAREHASH = 121,
16350 	LINUX_MIB_TCPDSACKRECVSEGS = 122,
16351 	LINUX_MIB_TCPDSACKIGNOREDDUBIOUS = 123,
16352 	LINUX_MIB_TCPMIGRATEREQSUCCESS = 124,
16353 	LINUX_MIB_TCPMIGRATEREQFAILURE = 125,
16354 	__LINUX_MIB_MAX = 126,
16355 };
16356 
16357 enum {
16358 	LINUX_MIB_XFRMNUM = 0,
16359 	LINUX_MIB_XFRMINERROR = 1,
16360 	LINUX_MIB_XFRMINBUFFERERROR = 2,
16361 	LINUX_MIB_XFRMINHDRERROR = 3,
16362 	LINUX_MIB_XFRMINNOSTATES = 4,
16363 	LINUX_MIB_XFRMINSTATEPROTOERROR = 5,
16364 	LINUX_MIB_XFRMINSTATEMODEERROR = 6,
16365 	LINUX_MIB_XFRMINSTATESEQERROR = 7,
16366 	LINUX_MIB_XFRMINSTATEEXPIRED = 8,
16367 	LINUX_MIB_XFRMINSTATEMISMATCH = 9,
16368 	LINUX_MIB_XFRMINSTATEINVALID = 10,
16369 	LINUX_MIB_XFRMINTMPLMISMATCH = 11,
16370 	LINUX_MIB_XFRMINNOPOLS = 12,
16371 	LINUX_MIB_XFRMINPOLBLOCK = 13,
16372 	LINUX_MIB_XFRMINPOLERROR = 14,
16373 	LINUX_MIB_XFRMOUTERROR = 15,
16374 	LINUX_MIB_XFRMOUTBUNDLEGENERROR = 16,
16375 	LINUX_MIB_XFRMOUTBUNDLECHECKERROR = 17,
16376 	LINUX_MIB_XFRMOUTNOSTATES = 18,
16377 	LINUX_MIB_XFRMOUTSTATEPROTOERROR = 19,
16378 	LINUX_MIB_XFRMOUTSTATEMODEERROR = 20,
16379 	LINUX_MIB_XFRMOUTSTATESEQERROR = 21,
16380 	LINUX_MIB_XFRMOUTSTATEEXPIRED = 22,
16381 	LINUX_MIB_XFRMOUTPOLBLOCK = 23,
16382 	LINUX_MIB_XFRMOUTPOLDEAD = 24,
16383 	LINUX_MIB_XFRMOUTPOLERROR = 25,
16384 	LINUX_MIB_XFRMFWDHDRERROR = 26,
16385 	LINUX_MIB_XFRMOUTSTATEINVALID = 27,
16386 	LINUX_MIB_XFRMACQUIREERROR = 28,
16387 	__LINUX_MIB_XFRMMAX = 29,
16388 };
16389 
16390 enum {
16391 	LINUX_MIB_TLSNUM = 0,
16392 	LINUX_MIB_TLSCURRTXSW = 1,
16393 	LINUX_MIB_TLSCURRRXSW = 2,
16394 	LINUX_MIB_TLSCURRTXDEVICE = 3,
16395 	LINUX_MIB_TLSCURRRXDEVICE = 4,
16396 	LINUX_MIB_TLSTXSW = 5,
16397 	LINUX_MIB_TLSRXSW = 6,
16398 	LINUX_MIB_TLSTXDEVICE = 7,
16399 	LINUX_MIB_TLSRXDEVICE = 8,
16400 	LINUX_MIB_TLSDECRYPTERROR = 9,
16401 	LINUX_MIB_TLSRXDEVICERESYNC = 10,
16402 	__LINUX_MIB_TLSMAX = 11,
16403 };
16404 
16405 enum nf_inet_hooks {
16406 	NF_INET_PRE_ROUTING = 0,
16407 	NF_INET_LOCAL_IN = 1,
16408 	NF_INET_FORWARD = 2,
16409 	NF_INET_LOCAL_OUT = 3,
16410 	NF_INET_POST_ROUTING = 4,
16411 	NF_INET_NUMHOOKS = 5,
16412 	NF_INET_INGRESS = 5,
16413 };
16414 
16415 enum {
16416 	NFPROTO_UNSPEC = 0,
16417 	NFPROTO_INET = 1,
16418 	NFPROTO_IPV4 = 2,
16419 	NFPROTO_ARP = 3,
16420 	NFPROTO_NETDEV = 5,
16421 	NFPROTO_BRIDGE = 7,
16422 	NFPROTO_IPV6 = 10,
16423 	NFPROTO_DECNET = 12,
16424 	NFPROTO_NUMPROTO = 13,
16425 };
16426 
16427 enum tcp_conntrack {
16428 	TCP_CONNTRACK_NONE = 0,
16429 	TCP_CONNTRACK_SYN_SENT = 1,
16430 	TCP_CONNTRACK_SYN_RECV = 2,
16431 	TCP_CONNTRACK_ESTABLISHED = 3,
16432 	TCP_CONNTRACK_FIN_WAIT = 4,
16433 	TCP_CONNTRACK_CLOSE_WAIT = 5,
16434 	TCP_CONNTRACK_LAST_ACK = 6,
16435 	TCP_CONNTRACK_TIME_WAIT = 7,
16436 	TCP_CONNTRACK_CLOSE = 8,
16437 	TCP_CONNTRACK_LISTEN = 9,
16438 	TCP_CONNTRACK_MAX = 10,
16439 	TCP_CONNTRACK_IGNORE = 11,
16440 	TCP_CONNTRACK_RETRANS = 12,
16441 	TCP_CONNTRACK_UNACK = 13,
16442 	TCP_CONNTRACK_TIMEOUT_MAX = 14,
16443 };
16444 
16445 enum ct_dccp_states {
16446 	CT_DCCP_NONE = 0,
16447 	CT_DCCP_REQUEST = 1,
16448 	CT_DCCP_RESPOND = 2,
16449 	CT_DCCP_PARTOPEN = 3,
16450 	CT_DCCP_OPEN = 4,
16451 	CT_DCCP_CLOSEREQ = 5,
16452 	CT_DCCP_CLOSING = 6,
16453 	CT_DCCP_TIMEWAIT = 7,
16454 	CT_DCCP_IGNORE = 8,
16455 	CT_DCCP_INVALID = 9,
16456 	__CT_DCCP_MAX = 10,
16457 };
16458 
16459 enum ip_conntrack_dir {
16460 	IP_CT_DIR_ORIGINAL = 0,
16461 	IP_CT_DIR_REPLY = 1,
16462 	IP_CT_DIR_MAX = 2,
16463 };
16464 
16465 enum sctp_conntrack {
16466 	SCTP_CONNTRACK_NONE = 0,
16467 	SCTP_CONNTRACK_CLOSED = 1,
16468 	SCTP_CONNTRACK_COOKIE_WAIT = 2,
16469 	SCTP_CONNTRACK_COOKIE_ECHOED = 3,
16470 	SCTP_CONNTRACK_ESTABLISHED = 4,
16471 	SCTP_CONNTRACK_SHUTDOWN_SENT = 5,
16472 	SCTP_CONNTRACK_SHUTDOWN_RECD = 6,
16473 	SCTP_CONNTRACK_SHUTDOWN_ACK_SENT = 7,
16474 	SCTP_CONNTRACK_HEARTBEAT_SENT = 8,
16475 	SCTP_CONNTRACK_HEARTBEAT_ACKED = 9,
16476 	SCTP_CONNTRACK_MAX = 10,
16477 };
16478 
16479 enum udp_conntrack {
16480 	UDP_CT_UNREPLIED = 0,
16481 	UDP_CT_REPLIED = 1,
16482 	UDP_CT_MAX = 2,
16483 };
16484 
16485 enum {
16486 	XFRM_POLICY_IN = 0,
16487 	XFRM_POLICY_OUT = 1,
16488 	XFRM_POLICY_FWD = 2,
16489 	XFRM_POLICY_MASK = 3,
16490 	XFRM_POLICY_MAX = 3,
16491 };
16492 
16493 enum netns_bpf_attach_type {
16494 	NETNS_BPF_INVALID = 4294967295,
16495 	NETNS_BPF_FLOW_DISSECTOR = 0,
16496 	NETNS_BPF_SK_LOOKUP = 1,
16497 	MAX_NETNS_BPF_ATTACH_TYPE = 2,
16498 };
16499 
16500 enum skb_ext_id {
16501 	SKB_EXT_SEC_PATH = 0,
16502 	TC_SKB_EXT = 1,
16503 	SKB_EXT_NUM = 2,
16504 };
16505 
16506 enum audit_ntp_type {
16507 	AUDIT_NTP_OFFSET = 0,
16508 	AUDIT_NTP_FREQ = 1,
16509 	AUDIT_NTP_STATUS = 2,
16510 	AUDIT_NTP_TAI = 3,
16511 	AUDIT_NTP_TICK = 4,
16512 	AUDIT_NTP_ADJUST = 5,
16513 	AUDIT_NTP_NVALS = 6,
16514 };
16515 
16516 typedef long int (*sys_call_ptr_t)(const struct pt_regs *);
16517 
16518 struct io_bitmap {
16519 	u64 sequence;
16520 	refcount_t refcnt;
16521 	unsigned int max;
16522 	long unsigned int bitmap[1024];
16523 };
16524 
16525 enum {
16526 	EI_ETYPE_NONE = 0,
16527 	EI_ETYPE_NULL = 1,
16528 	EI_ETYPE_ERRNO = 2,
16529 	EI_ETYPE_ERRNO_NULL = 3,
16530 	EI_ETYPE_TRUE = 4,
16531 };
16532 
16533 struct blkg_iostat {
16534 	u64 bytes[3];
16535 	u64 ios[3];
16536 };
16537 
16538 struct blkg_iostat_set {
16539 	struct u64_stats_sync sync;
16540 	struct blkg_iostat cur;
16541 	struct blkg_iostat last;
16542 };
16543 
16544 struct blkcg;
16545 
16546 struct blkg_policy_data;
16547 
16548 struct blkcg_gq {
16549 	struct request_queue *q;
16550 	struct list_head q_node;
16551 	struct hlist_node blkcg_node;
16552 	struct blkcg *blkcg;
16553 	struct blkcg_gq *parent;
16554 	struct percpu_ref refcnt;
16555 	bool online;
16556 	struct blkg_iostat_set *iostat_cpu;
16557 	struct blkg_iostat_set iostat;
16558 	struct blkg_policy_data *pd[6];
16559 	spinlock_t async_bio_lock;
16560 	struct bio_list async_bios;
16561 	struct work_struct async_bio_work;
16562 	atomic_t use_delay;
16563 	atomic64_t delay_nsec;
16564 	atomic64_t delay_start;
16565 	u64 last_delay;
16566 	int last_use;
16567 	struct callback_head callback_head;
16568 };
16569 
16570 struct blkcg_policy_data;
16571 
16572 struct blkcg {
16573 	struct cgroup_subsys_state css;
16574 	spinlock_t lock;
16575 	refcount_t online_pin;
16576 	struct xarray blkg_tree;
16577 	struct blkcg_gq *blkg_hint;
16578 	struct hlist_head blkg_list;
16579 	struct blkcg_policy_data *cpd[6];
16580 	struct list_head all_blkcgs_node;
16581 	struct list_head cgwb_list;
16582 };
16583 
16584 struct blkcg_policy_data {
16585 	struct blkcg *blkcg;
16586 	int plid;
16587 };
16588 
16589 struct blkg_policy_data {
16590 	struct blkcg_gq *blkg;
16591 	int plid;
16592 };
16593 
16594 struct syscall_metadata {
16595 	const char *name;
16596 	int syscall_nr;
16597 	int nb_args;
16598 	const char **types;
16599 	const char **args;
16600 	struct list_head enter_fields;
16601 	struct trace_event_call *enter_event;
16602 	struct trace_event_call *exit_event;
16603 };
16604 
16605 struct alt_instr {
16606 	s32 instr_offset;
16607 	s32 repl_offset;
16608 	u16 cpuid;
16609 	u8 instrlen;
16610 	u8 replacementlen;
16611 };
16612 
16613 struct timens_offset {
16614 	s64 sec;
16615 	u64 nsec;
16616 };
16617 
16618 enum vm_fault_reason {
16619 	VM_FAULT_OOM = 1,
16620 	VM_FAULT_SIGBUS = 2,
16621 	VM_FAULT_MAJOR = 4,
16622 	VM_FAULT_WRITE = 8,
16623 	VM_FAULT_HWPOISON = 16,
16624 	VM_FAULT_HWPOISON_LARGE = 32,
16625 	VM_FAULT_SIGSEGV = 64,
16626 	VM_FAULT_NOPAGE = 256,
16627 	VM_FAULT_LOCKED = 512,
16628 	VM_FAULT_RETRY = 1024,
16629 	VM_FAULT_FALLBACK = 2048,
16630 	VM_FAULT_DONE_COW = 4096,
16631 	VM_FAULT_NEEDDSYNC = 8192,
16632 	VM_FAULT_HINDEX_MASK = 983040,
16633 };
16634 
16635 struct vm_special_mapping {
16636 	const char *name;
16637 	struct page **pages;
16638 	vm_fault_t (*fault)(const struct vm_special_mapping *, struct vm_area_struct *, struct vm_fault *);
16639 	int (*mremap)(const struct vm_special_mapping *, struct vm_area_struct *);
16640 };
16641 
16642 struct platform_msi_priv_data;
16643 
16644 struct msi_device_data {
16645 	long unsigned int properties;
16646 	struct platform_msi_priv_data *platform_data;
16647 	struct mutex mutex;
16648 	struct xarray __store;
16649 	long unsigned int __iter_idx;
16650 };
16651 
16652 struct timens_offsets {
16653 	struct timespec64 monotonic;
16654 	struct timespec64 boottime;
16655 };
16656 
16657 struct time_namespace {
16658 	struct user_namespace *user_ns;
16659 	struct ucounts *ucounts;
16660 	struct ns_common ns;
16661 	struct timens_offsets offsets;
16662 	struct page *vvar_page;
16663 	bool frozen_offsets;
16664 };
16665 
16666 struct pvclock_vcpu_time_info {
16667 	u32 version;
16668 	u32 pad0;
16669 	u64 tsc_timestamp;
16670 	u64 system_time;
16671 	u32 tsc_to_system_mul;
16672 	s8 tsc_shift;
16673 	u8 flags;
16674 	u8 pad[2];
16675 };
16676 
16677 struct pvclock_vsyscall_time_info {
16678 	struct pvclock_vcpu_time_info pvti;
16679 	long: 64;
16680 	long: 64;
16681 	long: 64;
16682 	long: 64;
16683 };
16684 
16685 enum vdso_clock_mode {
16686 	VDSO_CLOCKMODE_NONE = 0,
16687 	VDSO_CLOCKMODE_TSC = 1,
16688 	VDSO_CLOCKMODE_PVCLOCK = 2,
16689 	VDSO_CLOCKMODE_HVCLOCK = 3,
16690 	VDSO_CLOCKMODE_MAX = 4,
16691 	VDSO_CLOCKMODE_TIMENS = 2147483647,
16692 };
16693 
16694 struct arch_vdso_data {};
16695 
16696 struct vdso_timestamp {
16697 	u64 sec;
16698 	u64 nsec;
16699 };
16700 
16701 struct vdso_data {
16702 	u32 seq;
16703 	s32 clock_mode;
16704 	u64 cycle_last;
16705 	u64 mask;
16706 	u32 mult;
16707 	u32 shift;
16708 	union {
16709 		struct vdso_timestamp basetime[12];
16710 		struct timens_offset offset[12];
16711 	};
16712 	s32 tz_minuteswest;
16713 	s32 tz_dsttime;
16714 	u32 hrtimer_res;
16715 	u32 __unused;
16716 	struct arch_vdso_data arch_data;
16717 };
16718 
16719 struct irq_desc;
16720 
16721 typedef struct irq_desc *vector_irq_t[256];
16722 
16723 struct ms_hyperv_tsc_page {
16724 	volatile u32 tsc_sequence;
16725 	u32 reserved1;
16726 	volatile u64 tsc_scale;
16727 	volatile s64 tsc_offset;
16728 };
16729 
16730 struct ms_hyperv_info {
16731 	u32 features;
16732 	u32 priv_high;
16733 	u32 misc_features;
16734 	u32 hints;
16735 	u32 nested_features;
16736 	u32 max_vp_index;
16737 	u32 max_lp_index;
16738 	u32 isolation_config_a;
16739 	union {
16740 		u32 isolation_config_b;
16741 		struct {
16742 			u32 cvm_type: 4;
16743 			u32 reserved1: 1;
16744 			u32 shared_gpa_boundary_active: 1;
16745 			u32 shared_gpa_boundary_bits: 6;
16746 			u32 reserved2: 20;
16747 		};
16748 	};
16749 	u64 shared_gpa_boundary;
16750 };
16751 
16752 enum {
16753 	TASKSTATS_CMD_UNSPEC = 0,
16754 	TASKSTATS_CMD_GET = 1,
16755 	TASKSTATS_CMD_NEW = 2,
16756 	__TASKSTATS_CMD_MAX = 3,
16757 };
16758 
16759 enum cpu_usage_stat {
16760 	CPUTIME_USER = 0,
16761 	CPUTIME_NICE = 1,
16762 	CPUTIME_SYSTEM = 2,
16763 	CPUTIME_SOFTIRQ = 3,
16764 	CPUTIME_IRQ = 4,
16765 	CPUTIME_IDLE = 5,
16766 	CPUTIME_IOWAIT = 6,
16767 	CPUTIME_STEAL = 7,
16768 	CPUTIME_GUEST = 8,
16769 	CPUTIME_GUEST_NICE = 9,
16770 	NR_STATS = 10,
16771 };
16772 
16773 enum cgroup_bpf_attach_type {
16774 	CGROUP_BPF_ATTACH_TYPE_INVALID = 4294967295,
16775 	CGROUP_INET_INGRESS = 0,
16776 	CGROUP_INET_EGRESS = 1,
16777 	CGROUP_INET_SOCK_CREATE = 2,
16778 	CGROUP_SOCK_OPS = 3,
16779 	CGROUP_DEVICE = 4,
16780 	CGROUP_INET4_BIND = 5,
16781 	CGROUP_INET6_BIND = 6,
16782 	CGROUP_INET4_CONNECT = 7,
16783 	CGROUP_INET6_CONNECT = 8,
16784 	CGROUP_INET4_POST_BIND = 9,
16785 	CGROUP_INET6_POST_BIND = 10,
16786 	CGROUP_UDP4_SENDMSG = 11,
16787 	CGROUP_UDP6_SENDMSG = 12,
16788 	CGROUP_SYSCTL = 13,
16789 	CGROUP_UDP4_RECVMSG = 14,
16790 	CGROUP_UDP6_RECVMSG = 15,
16791 	CGROUP_GETSOCKOPT = 16,
16792 	CGROUP_SETSOCKOPT = 17,
16793 	CGROUP_INET4_GETPEERNAME = 18,
16794 	CGROUP_INET6_GETPEERNAME = 19,
16795 	CGROUP_INET4_GETSOCKNAME = 20,
16796 	CGROUP_INET6_GETSOCKNAME = 21,
16797 	CGROUP_INET_SOCK_RELEASE = 22,
16798 	MAX_CGROUP_BPF_ATTACH_TYPE = 23,
16799 };
16800 
16801 enum cgroup_subsys_id {
16802 	cpuset_cgrp_id = 0,
16803 	cpu_cgrp_id = 1,
16804 	cpuacct_cgrp_id = 2,
16805 	io_cgrp_id = 3,
16806 	memory_cgrp_id = 4,
16807 	devices_cgrp_id = 5,
16808 	freezer_cgrp_id = 6,
16809 	net_cls_cgrp_id = 7,
16810 	perf_event_cgrp_id = 8,
16811 	hugetlb_cgrp_id = 9,
16812 	CGROUP_SUBSYS_COUNT = 10,
16813 };
16814 
16815 struct vdso_exception_table_entry {
16816 	int insn;
16817 	int fixup;
16818 };
16819 
16820 enum syscall_work_bit {
16821 	SYSCALL_WORK_BIT_SECCOMP = 0,
16822 	SYSCALL_WORK_BIT_SYSCALL_TRACEPOINT = 1,
16823 	SYSCALL_WORK_BIT_SYSCALL_TRACE = 2,
16824 	SYSCALL_WORK_BIT_SYSCALL_EMU = 3,
16825 	SYSCALL_WORK_BIT_SYSCALL_AUDIT = 4,
16826 	SYSCALL_WORK_BIT_SYSCALL_USER_DISPATCH = 5,
16827 	SYSCALL_WORK_BIT_SYSCALL_EXIT_TRAP = 6,
16828 };
16829 
16830 enum blkg_iostat_type {
16831 	BLKG_IOSTAT_READ = 0,
16832 	BLKG_IOSTAT_WRITE = 1,
16833 	BLKG_IOSTAT_DISCARD = 2,
16834 	BLKG_IOSTAT_NR = 3,
16835 };
16836 
16837 enum x86_pf_error_code {
16838 	X86_PF_PROT = 1,
16839 	X86_PF_WRITE = 2,
16840 	X86_PF_USER = 4,
16841 	X86_PF_RSVD = 8,
16842 	X86_PF_INSTR = 16,
16843 	X86_PF_PK = 32,
16844 	X86_PF_SGX = 32768,
16845 };
16846 
16847 struct trace_event_raw_emulate_vsyscall {
16848 	struct trace_entry ent;
16849 	int nr;
16850 	char __data[0];
16851 };
16852 
16853 struct trace_event_data_offsets_emulate_vsyscall {};
16854 
16855 typedef void (*btf_trace_emulate_vsyscall)(void *, int);
16856 
16857 enum {
16858 	EMULATE = 0,
16859 	XONLY = 1,
16860 	NONE = 2,
16861 };
16862 
16863 enum perf_type_id {
16864 	PERF_TYPE_HARDWARE = 0,
16865 	PERF_TYPE_SOFTWARE = 1,
16866 	PERF_TYPE_TRACEPOINT = 2,
16867 	PERF_TYPE_HW_CACHE = 3,
16868 	PERF_TYPE_RAW = 4,
16869 	PERF_TYPE_BREAKPOINT = 5,
16870 	PERF_TYPE_MAX = 6,
16871 };
16872 
16873 enum perf_hw_id {
16874 	PERF_COUNT_HW_CPU_CYCLES = 0,
16875 	PERF_COUNT_HW_INSTRUCTIONS = 1,
16876 	PERF_COUNT_HW_CACHE_REFERENCES = 2,
16877 	PERF_COUNT_HW_CACHE_MISSES = 3,
16878 	PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 4,
16879 	PERF_COUNT_HW_BRANCH_MISSES = 5,
16880 	PERF_COUNT_HW_BUS_CYCLES = 6,
16881 	PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 7,
16882 	PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 8,
16883 	PERF_COUNT_HW_REF_CPU_CYCLES = 9,
16884 	PERF_COUNT_HW_MAX = 10,
16885 };
16886 
16887 enum perf_hw_cache_id {
16888 	PERF_COUNT_HW_CACHE_L1D = 0,
16889 	PERF_COUNT_HW_CACHE_L1I = 1,
16890 	PERF_COUNT_HW_CACHE_LL = 2,
16891 	PERF_COUNT_HW_CACHE_DTLB = 3,
16892 	PERF_COUNT_HW_CACHE_ITLB = 4,
16893 	PERF_COUNT_HW_CACHE_BPU = 5,
16894 	PERF_COUNT_HW_CACHE_NODE = 6,
16895 	PERF_COUNT_HW_CACHE_MAX = 7,
16896 };
16897 
16898 enum perf_hw_cache_op_id {
16899 	PERF_COUNT_HW_CACHE_OP_READ = 0,
16900 	PERF_COUNT_HW_CACHE_OP_WRITE = 1,
16901 	PERF_COUNT_HW_CACHE_OP_PREFETCH = 2,
16902 	PERF_COUNT_HW_CACHE_OP_MAX = 3,
16903 };
16904 
16905 enum perf_hw_cache_op_result_id {
16906 	PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0,
16907 	PERF_COUNT_HW_CACHE_RESULT_MISS = 1,
16908 	PERF_COUNT_HW_CACHE_RESULT_MAX = 2,
16909 };
16910 
16911 enum perf_event_sample_format {
16912 	PERF_SAMPLE_IP = 1,
16913 	PERF_SAMPLE_TID = 2,
16914 	PERF_SAMPLE_TIME = 4,
16915 	PERF_SAMPLE_ADDR = 8,
16916 	PERF_SAMPLE_READ = 16,
16917 	PERF_SAMPLE_CALLCHAIN = 32,
16918 	PERF_SAMPLE_ID = 64,
16919 	PERF_SAMPLE_CPU = 128,
16920 	PERF_SAMPLE_PERIOD = 256,
16921 	PERF_SAMPLE_STREAM_ID = 512,
16922 	PERF_SAMPLE_RAW = 1024,
16923 	PERF_SAMPLE_BRANCH_STACK = 2048,
16924 	PERF_SAMPLE_REGS_USER = 4096,
16925 	PERF_SAMPLE_STACK_USER = 8192,
16926 	PERF_SAMPLE_WEIGHT = 16384,
16927 	PERF_SAMPLE_DATA_SRC = 32768,
16928 	PERF_SAMPLE_IDENTIFIER = 65536,
16929 	PERF_SAMPLE_TRANSACTION = 131072,
16930 	PERF_SAMPLE_REGS_INTR = 262144,
16931 	PERF_SAMPLE_PHYS_ADDR = 524288,
16932 	PERF_SAMPLE_AUX = 1048576,
16933 	PERF_SAMPLE_CGROUP = 2097152,
16934 	PERF_SAMPLE_DATA_PAGE_SIZE = 4194304,
16935 	PERF_SAMPLE_CODE_PAGE_SIZE = 8388608,
16936 	PERF_SAMPLE_WEIGHT_STRUCT = 16777216,
16937 	PERF_SAMPLE_MAX = 33554432,
16938 	__PERF_SAMPLE_CALLCHAIN_EARLY = 0,
16939 };
16940 
16941 enum perf_branch_sample_type {
16942 	PERF_SAMPLE_BRANCH_USER = 1,
16943 	PERF_SAMPLE_BRANCH_KERNEL = 2,
16944 	PERF_SAMPLE_BRANCH_HV = 4,
16945 	PERF_SAMPLE_BRANCH_ANY = 8,
16946 	PERF_SAMPLE_BRANCH_ANY_CALL = 16,
16947 	PERF_SAMPLE_BRANCH_ANY_RETURN = 32,
16948 	PERF_SAMPLE_BRANCH_IND_CALL = 64,
16949 	PERF_SAMPLE_BRANCH_ABORT_TX = 128,
16950 	PERF_SAMPLE_BRANCH_IN_TX = 256,
16951 	PERF_SAMPLE_BRANCH_NO_TX = 512,
16952 	PERF_SAMPLE_BRANCH_COND = 1024,
16953 	PERF_SAMPLE_BRANCH_CALL_STACK = 2048,
16954 	PERF_SAMPLE_BRANCH_IND_JUMP = 4096,
16955 	PERF_SAMPLE_BRANCH_CALL = 8192,
16956 	PERF_SAMPLE_BRANCH_NO_FLAGS = 16384,
16957 	PERF_SAMPLE_BRANCH_NO_CYCLES = 32768,
16958 	PERF_SAMPLE_BRANCH_TYPE_SAVE = 65536,
16959 	PERF_SAMPLE_BRANCH_HW_INDEX = 131072,
16960 	PERF_SAMPLE_BRANCH_MAX = 262144,
16961 };
16962 
16963 struct perf_event_mmap_page {
16964 	__u32 version;
16965 	__u32 compat_version;
16966 	__u32 lock;
16967 	__u32 index;
16968 	__s64 offset;
16969 	__u64 time_enabled;
16970 	__u64 time_running;
16971 	union {
16972 		__u64 capabilities;
16973 		struct {
16974 			__u64 cap_bit0: 1;
16975 			__u64 cap_bit0_is_deprecated: 1;
16976 			__u64 cap_user_rdpmc: 1;
16977 			__u64 cap_user_time: 1;
16978 			__u64 cap_user_time_zero: 1;
16979 			__u64 cap_user_time_short: 1;
16980 			__u64 cap_____res: 58;
16981 		};
16982 	};
16983 	__u16 pmc_width;
16984 	__u16 time_shift;
16985 	__u32 time_mult;
16986 	__u64 time_offset;
16987 	__u64 time_zero;
16988 	__u32 size;
16989 	__u32 __reserved_1;
16990 	__u64 time_cycles;
16991 	__u64 time_mask;
16992 	__u8 __reserved[928];
16993 	__u64 data_head;
16994 	__u64 data_tail;
16995 	__u64 data_offset;
16996 	__u64 data_size;
16997 	__u64 aux_head;
16998 	__u64 aux_tail;
16999 	__u64 aux_offset;
17000 	__u64 aux_size;
17001 };
17002 
17003 enum apic_delivery_modes {
17004 	APIC_DELIVERY_MODE_FIXED = 0,
17005 	APIC_DELIVERY_MODE_LOWESTPRIO = 1,
17006 	APIC_DELIVERY_MODE_SMI = 2,
17007 	APIC_DELIVERY_MODE_NMI = 4,
17008 	APIC_DELIVERY_MODE_INIT = 5,
17009 	APIC_DELIVERY_MODE_EXTINT = 7,
17010 };
17011 
17012 struct x86_pmu_capability {
17013 	int version;
17014 	int num_counters_gp;
17015 	int num_counters_fixed;
17016 	int bit_width_gp;
17017 	int bit_width_fixed;
17018 	unsigned int events_mask;
17019 	int events_mask_len;
17020 };
17021 
17022 enum stack_type {
17023 	STACK_TYPE_UNKNOWN = 0,
17024 	STACK_TYPE_TASK = 1,
17025 	STACK_TYPE_IRQ = 2,
17026 	STACK_TYPE_SOFTIRQ = 3,
17027 	STACK_TYPE_ENTRY = 4,
17028 	STACK_TYPE_EXCEPTION = 5,
17029 	STACK_TYPE_EXCEPTION_LAST = 10,
17030 };
17031 
17032 struct stack_info {
17033 	enum stack_type type;
17034 	long unsigned int *begin;
17035 	long unsigned int *end;
17036 	long unsigned int *next_sp;
17037 };
17038 
17039 struct stack_frame {
17040 	struct stack_frame *next_frame;
17041 	long unsigned int return_address;
17042 };
17043 
17044 struct perf_guest_switch_msr {
17045 	unsigned int msr;
17046 	u64 host;
17047 	u64 guest;
17048 };
17049 
17050 struct device_attribute {
17051 	struct attribute attr;
17052 	ssize_t (*show)(struct device *, struct device_attribute *, char *);
17053 	ssize_t (*store)(struct device *, struct device_attribute *, const char *, size_t);
17054 };
17055 
17056 enum perf_event_x86_regs {
17057 	PERF_REG_X86_AX = 0,
17058 	PERF_REG_X86_BX = 1,
17059 	PERF_REG_X86_CX = 2,
17060 	PERF_REG_X86_DX = 3,
17061 	PERF_REG_X86_SI = 4,
17062 	PERF_REG_X86_DI = 5,
17063 	PERF_REG_X86_BP = 6,
17064 	PERF_REG_X86_SP = 7,
17065 	PERF_REG_X86_IP = 8,
17066 	PERF_REG_X86_FLAGS = 9,
17067 	PERF_REG_X86_CS = 10,
17068 	PERF_REG_X86_SS = 11,
17069 	PERF_REG_X86_DS = 12,
17070 	PERF_REG_X86_ES = 13,
17071 	PERF_REG_X86_FS = 14,
17072 	PERF_REG_X86_GS = 15,
17073 	PERF_REG_X86_R8 = 16,
17074 	PERF_REG_X86_R9 = 17,
17075 	PERF_REG_X86_R10 = 18,
17076 	PERF_REG_X86_R11 = 19,
17077 	PERF_REG_X86_R12 = 20,
17078 	PERF_REG_X86_R13 = 21,
17079 	PERF_REG_X86_R14 = 22,
17080 	PERF_REG_X86_R15 = 23,
17081 	PERF_REG_X86_32_MAX = 16,
17082 	PERF_REG_X86_64_MAX = 24,
17083 	PERF_REG_X86_XMM0 = 32,
17084 	PERF_REG_X86_XMM1 = 34,
17085 	PERF_REG_X86_XMM2 = 36,
17086 	PERF_REG_X86_XMM3 = 38,
17087 	PERF_REG_X86_XMM4 = 40,
17088 	PERF_REG_X86_XMM5 = 42,
17089 	PERF_REG_X86_XMM6 = 44,
17090 	PERF_REG_X86_XMM7 = 46,
17091 	PERF_REG_X86_XMM8 = 48,
17092 	PERF_REG_X86_XMM9 = 50,
17093 	PERF_REG_X86_XMM10 = 52,
17094 	PERF_REG_X86_XMM11 = 54,
17095 	PERF_REG_X86_XMM12 = 56,
17096 	PERF_REG_X86_XMM13 = 58,
17097 	PERF_REG_X86_XMM14 = 60,
17098 	PERF_REG_X86_XMM15 = 62,
17099 	PERF_REG_X86_XMM_MAX = 64,
17100 };
17101 
17102 struct perf_callchain_entry_ctx {
17103 	struct perf_callchain_entry *entry;
17104 	u32 max_stack;
17105 	u32 nr;
17106 	short int contexts;
17107 	bool contexts_maxed;
17108 };
17109 
17110 struct perf_pmu_events_attr {
17111 	struct device_attribute attr;
17112 	u64 id;
17113 	const char *event_str;
17114 };
17115 
17116 struct perf_pmu_events_ht_attr {
17117 	struct device_attribute attr;
17118 	u64 id;
17119 	const char *event_str_ht;
17120 	const char *event_str_noht;
17121 };
17122 
17123 struct perf_pmu_events_hybrid_attr {
17124 	struct device_attribute attr;
17125 	u64 id;
17126 	const char *event_str;
17127 	u64 pmu_type;
17128 };
17129 
17130 enum apic_intr_mode_id {
17131 	APIC_PIC = 0,
17132 	APIC_VIRTUAL_WIRE = 1,
17133 	APIC_VIRTUAL_WIRE_NO_CONFIG = 2,
17134 	APIC_SYMMETRIC_IO = 3,
17135 	APIC_SYMMETRIC_IO_NO_ROUTING = 4,
17136 };
17137 
17138 struct apic {
17139 	void (*eoi_write)(u32, u32);
17140 	void (*native_eoi_write)(u32, u32);
17141 	void (*write)(u32, u32);
17142 	u32 (*read)(u32);
17143 	void (*wait_icr_idle)();
17144 	u32 (*safe_wait_icr_idle)();
17145 	void (*send_IPI)(int, int);
17146 	void (*send_IPI_mask)(const struct cpumask *, int);
17147 	void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
17148 	void (*send_IPI_allbutself)(int);
17149 	void (*send_IPI_all)(int);
17150 	void (*send_IPI_self)(int);
17151 	u32 disable_esr;
17152 	enum apic_delivery_modes delivery_mode;
17153 	bool dest_mode_logical;
17154 	u32 (*calc_dest_apicid)(unsigned int);
17155 	u64 (*icr_read)();
17156 	void (*icr_write)(u32, u32);
17157 	int (*probe)();
17158 	int (*acpi_madt_oem_check)(char *, char *);
17159 	int (*apic_id_valid)(u32);
17160 	int (*apic_id_registered)();
17161 	bool (*check_apicid_used)(physid_mask_t *, int);
17162 	void (*init_apic_ldr)();
17163 	void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
17164 	void (*setup_apic_routing)();
17165 	int (*cpu_present_to_apicid)(int);
17166 	void (*apicid_to_cpu_present)(int, physid_mask_t *);
17167 	int (*check_phys_apicid_present)(int);
17168 	int (*phys_pkg_id)(int, int);
17169 	u32 (*get_apic_id)(long unsigned int);
17170 	u32 (*set_apic_id)(unsigned int);
17171 	int (*wakeup_secondary_cpu)(int, long unsigned int);
17172 	void (*inquire_remote_apic)(int);
17173 	char *name;
17174 };
17175 
17176 enum {
17177 	NMI_LOCAL = 0,
17178 	NMI_UNKNOWN = 1,
17179 	NMI_SERR = 2,
17180 	NMI_IO_CHECK = 3,
17181 	NMI_MAX = 4,
17182 };
17183 
17184 typedef int (*nmi_handler_t)(unsigned int, struct pt_regs *);
17185 
17186 struct nmiaction {
17187 	struct list_head list;
17188 	nmi_handler_t handler;
17189 	u64 max_duration;
17190 	long unsigned int flags;
17191 	const char *name;
17192 };
17193 
17194 struct cyc2ns_data {
17195 	u32 cyc2ns_mul;
17196 	u32 cyc2ns_shift;
17197 	u64 cyc2ns_offset;
17198 };
17199 
17200 struct unwind_state {
17201 	struct stack_info stack_info;
17202 	long unsigned int stack_mask;
17203 	struct task_struct *task;
17204 	int graph_idx;
17205 	struct llist_node *kr_cur;
17206 	bool error;
17207 	bool signal;
17208 	bool full_regs;
17209 	long unsigned int sp;
17210 	long unsigned int bp;
17211 	long unsigned int ip;
17212 	struct pt_regs *regs;
17213 	struct pt_regs *prev_regs;
17214 };
17215 
17216 enum extra_reg_type {
17217 	EXTRA_REG_NONE = 4294967295,
17218 	EXTRA_REG_RSP_0 = 0,
17219 	EXTRA_REG_RSP_1 = 1,
17220 	EXTRA_REG_LBR = 2,
17221 	EXTRA_REG_LDLAT = 3,
17222 	EXTRA_REG_FE = 4,
17223 	EXTRA_REG_MAX = 5,
17224 };
17225 
17226 struct event_constraint {
17227 	union {
17228 		long unsigned int idxmsk[1];
17229 		u64 idxmsk64;
17230 	};
17231 	u64 code;
17232 	u64 cmask;
17233 	int weight;
17234 	int overlap;
17235 	int flags;
17236 	unsigned int size;
17237 };
17238 
17239 struct amd_nb {
17240 	int nb_id;
17241 	int refcnt;
17242 	struct perf_event *owners[64];
17243 	struct event_constraint event_constraints[64];
17244 };
17245 
17246 struct er_account {
17247 	raw_spinlock_t lock;
17248 	u64 config;
17249 	u64 reg;
17250 	atomic_t ref;
17251 };
17252 
17253 struct intel_shared_regs {
17254 	struct er_account regs[5];
17255 	int refcnt;
17256 	unsigned int core_id;
17257 };
17258 
17259 enum intel_excl_state_type {
17260 	INTEL_EXCL_UNUSED = 0,
17261 	INTEL_EXCL_SHARED = 1,
17262 	INTEL_EXCL_EXCLUSIVE = 2,
17263 };
17264 
17265 struct intel_excl_states {
17266 	enum intel_excl_state_type state[64];
17267 	bool sched_started;
17268 };
17269 
17270 struct intel_excl_cntrs {
17271 	raw_spinlock_t lock;
17272 	struct intel_excl_states states[2];
17273 	union {
17274 		u16 has_exclusive[2];
17275 		u32 exclusive_present;
17276 	};
17277 	int refcnt;
17278 	unsigned int core_id;
17279 };
17280 
17281 enum {
17282 	X86_PERF_KFREE_SHARED = 0,
17283 	X86_PERF_KFREE_EXCL = 1,
17284 	X86_PERF_KFREE_MAX = 2,
17285 };
17286 
17287 struct cpu_hw_events {
17288 	struct perf_event *events[64];
17289 	long unsigned int active_mask[1];
17290 	long unsigned int dirty[1];
17291 	int enabled;
17292 	int n_events;
17293 	int n_added;
17294 	int n_txn;
17295 	int n_txn_pair;
17296 	int n_txn_metric;
17297 	int assign[64];
17298 	u64 tags[64];
17299 	struct perf_event *event_list[64];
17300 	struct event_constraint *event_constraint[64];
17301 	int n_excl;
17302 	unsigned int txn_flags;
17303 	int is_fake;
17304 	struct debug_store *ds;
17305 	void *ds_pebs_vaddr;
17306 	void *ds_bts_vaddr;
17307 	u64 pebs_enabled;
17308 	int n_pebs;
17309 	int n_large_pebs;
17310 	int n_pebs_via_pt;
17311 	int pebs_output;
17312 	u64 pebs_data_cfg;
17313 	u64 active_pebs_data_cfg;
17314 	int pebs_record_size;
17315 	int lbr_users;
17316 	int lbr_pebs_users;
17317 	struct perf_branch_stack lbr_stack;
17318 	struct perf_branch_entry lbr_entries[32];
17319 	union {
17320 		struct er_account *lbr_sel;
17321 		struct er_account *lbr_ctl;
17322 	};
17323 	u64 br_sel;
17324 	void *last_task_ctx;
17325 	int last_log_id;
17326 	int lbr_select;
17327 	void *lbr_xsave;
17328 	u64 intel_ctrl_guest_mask;
17329 	u64 intel_ctrl_host_mask;
17330 	struct perf_guest_switch_msr guest_switch_msrs[64];
17331 	u64 intel_cp_status;
17332 	struct intel_shared_regs *shared_regs;
17333 	struct event_constraint *constraint_list;
17334 	struct intel_excl_cntrs *excl_cntrs;
17335 	int excl_thread_id;
17336 	u64 tfa_shadow;
17337 	int n_metric;
17338 	struct amd_nb *amd_nb;
17339 	u64 perf_ctr_virt_mask;
17340 	int n_pair;
17341 	void *kfree_on_online[2];
17342 	struct pmu *pmu;
17343 };
17344 
17345 struct extra_reg {
17346 	unsigned int event;
17347 	unsigned int msr;
17348 	u64 config_mask;
17349 	u64 valid_mask;
17350 	int idx;
17351 	bool extra_msr_access;
17352 };
17353 
17354 union perf_capabilities {
17355 	struct {
17356 		u64 lbr_format: 6;
17357 		u64 pebs_trap: 1;
17358 		u64 pebs_arch_reg: 1;
17359 		u64 pebs_format: 4;
17360 		u64 smm_freeze: 1;
17361 		u64 full_width_write: 1;
17362 		u64 pebs_baseline: 1;
17363 		u64 perf_metrics: 1;
17364 		u64 pebs_output_pt_available: 1;
17365 		u64 anythread_deprecated: 1;
17366 	};
17367 	u64 capabilities;
17368 };
17369 
17370 struct x86_pmu_quirk {
17371 	struct x86_pmu_quirk *next;
17372 	void (*func)();
17373 };
17374 
17375 enum {
17376 	x86_lbr_exclusive_lbr = 0,
17377 	x86_lbr_exclusive_bts = 1,
17378 	x86_lbr_exclusive_pt = 2,
17379 	x86_lbr_exclusive_max = 3,
17380 };
17381 
17382 struct x86_hybrid_pmu {
17383 	struct pmu pmu;
17384 	const char *name;
17385 	u8 cpu_type;
17386 	cpumask_t supported_cpus;
17387 	union perf_capabilities intel_cap;
17388 	u64 intel_ctrl;
17389 	int max_pebs_events;
17390 	int num_counters;
17391 	int num_counters_fixed;
17392 	struct event_constraint unconstrained;
17393 	u64 hw_cache_event_ids[42];
17394 	u64 hw_cache_extra_regs[42];
17395 	struct event_constraint *event_constraints;
17396 	struct event_constraint *pebs_constraints;
17397 	struct extra_reg *extra_regs;
17398 	unsigned int late_ack: 1;
17399 	unsigned int mid_ack: 1;
17400 	unsigned int enabled_ack: 1;
17401 };
17402 
17403 enum hybrid_pmu_type {
17404 	hybrid_big = 64,
17405 	hybrid_small = 32,
17406 	hybrid_big_small = 96,
17407 };
17408 
17409 struct x86_pmu {
17410 	const char *name;
17411 	int version;
17412 	int (*handle_irq)(struct pt_regs *);
17413 	void (*disable_all)();
17414 	void (*enable_all)(int);
17415 	void (*enable)(struct perf_event *);
17416 	void (*disable)(struct perf_event *);
17417 	void (*assign)(struct perf_event *, int);
17418 	void (*add)(struct perf_event *);
17419 	void (*del)(struct perf_event *);
17420 	void (*read)(struct perf_event *);
17421 	int (*hw_config)(struct perf_event *);
17422 	int (*schedule_events)(struct cpu_hw_events *, int, int *);
17423 	unsigned int eventsel;
17424 	unsigned int perfctr;
17425 	int (*addr_offset)(int, bool);
17426 	int (*rdpmc_index)(int);
17427 	u64 (*event_map)(int);
17428 	int max_events;
17429 	int num_counters;
17430 	int num_counters_fixed;
17431 	int cntval_bits;
17432 	u64 cntval_mask;
17433 	union {
17434 		long unsigned int events_maskl;
17435 		long unsigned int events_mask[1];
17436 	};
17437 	int events_mask_len;
17438 	int apic;
17439 	u64 max_period;
17440 	struct event_constraint * (*get_event_constraints)(struct cpu_hw_events *, int, struct perf_event *);
17441 	void (*put_event_constraints)(struct cpu_hw_events *, struct perf_event *);
17442 	void (*start_scheduling)(struct cpu_hw_events *);
17443 	void (*commit_scheduling)(struct cpu_hw_events *, int, int);
17444 	void (*stop_scheduling)(struct cpu_hw_events *);
17445 	struct event_constraint *event_constraints;
17446 	struct x86_pmu_quirk *quirks;
17447 	int perfctr_second_write;
17448 	u64 (*limit_period)(struct perf_event *, u64);
17449 	unsigned int late_ack: 1;
17450 	unsigned int mid_ack: 1;
17451 	unsigned int enabled_ack: 1;
17452 	int attr_rdpmc_broken;
17453 	int attr_rdpmc;
17454 	struct attribute **format_attrs;
17455 	ssize_t (*events_sysfs_show)(char *, u64);
17456 	const struct attribute_group **attr_update;
17457 	long unsigned int attr_freeze_on_smi;
17458 	int (*cpu_prepare)(int);
17459 	void (*cpu_starting)(int);
17460 	void (*cpu_dying)(int);
17461 	void (*cpu_dead)(int);
17462 	void (*check_microcode)();
17463 	void (*sched_task)(struct perf_event_context *, bool);
17464 	u64 intel_ctrl;
17465 	union perf_capabilities intel_cap;
17466 	unsigned int bts: 1;
17467 	unsigned int bts_active: 1;
17468 	unsigned int pebs: 1;
17469 	unsigned int pebs_active: 1;
17470 	unsigned int pebs_broken: 1;
17471 	unsigned int pebs_prec_dist: 1;
17472 	unsigned int pebs_no_tlb: 1;
17473 	unsigned int pebs_no_isolation: 1;
17474 	unsigned int pebs_block: 1;
17475 	int pebs_record_size;
17476 	int pebs_buffer_size;
17477 	int max_pebs_events;
17478 	void (*drain_pebs)(struct pt_regs *, struct perf_sample_data *);
17479 	struct event_constraint *pebs_constraints;
17480 	void (*pebs_aliases)(struct perf_event *);
17481 	long unsigned int large_pebs_flags;
17482 	u64 rtm_abort_event;
17483 	unsigned int lbr_tos;
17484 	unsigned int lbr_from;
17485 	unsigned int lbr_to;
17486 	unsigned int lbr_info;
17487 	unsigned int lbr_nr;
17488 	union {
17489 		u64 lbr_sel_mask;
17490 		u64 lbr_ctl_mask;
17491 	};
17492 	union {
17493 		const int *lbr_sel_map;
17494 		int *lbr_ctl_map;
17495 	};
17496 	bool lbr_double_abort;
17497 	bool lbr_pt_coexist;
17498 	unsigned int lbr_depth_mask: 8;
17499 	unsigned int lbr_deep_c_reset: 1;
17500 	unsigned int lbr_lip: 1;
17501 	unsigned int lbr_cpl: 1;
17502 	unsigned int lbr_filter: 1;
17503 	unsigned int lbr_call_stack: 1;
17504 	unsigned int lbr_mispred: 1;
17505 	unsigned int lbr_timed_lbr: 1;
17506 	unsigned int lbr_br_type: 1;
17507 	void (*lbr_reset)();
17508 	void (*lbr_read)(struct cpu_hw_events *);
17509 	void (*lbr_save)(void *);
17510 	void (*lbr_restore)(void *);
17511 	atomic_t lbr_exclusive[3];
17512 	int num_topdown_events;
17513 	u64 (*update_topdown_event)(struct perf_event *);
17514 	int (*set_topdown_event_period)(struct perf_event *);
17515 	void (*swap_task_ctx)(struct perf_event_context *, struct perf_event_context *);
17516 	unsigned int amd_nb_constraints: 1;
17517 	u64 perf_ctr_pair_en;
17518 	struct extra_reg *extra_regs;
17519 	unsigned int flags;
17520 	struct perf_guest_switch_msr * (*guest_get_msrs)(int *);
17521 	int (*check_period)(struct perf_event *, u64);
17522 	int (*aux_output_match)(struct perf_event *);
17523 	int (*filter_match)(struct perf_event *);
17524 	int num_hybrid_pmus;
17525 	struct x86_hybrid_pmu *hybrid_pmu;
17526 	u8 (*get_hybrid_cpu_type)();
17527 };
17528 
17529 struct sched_state {
17530 	int weight;
17531 	int event;
17532 	int counter;
17533 	int unassigned;
17534 	int nr_gp;
17535 	u64 used;
17536 };
17537 
17538 struct perf_sched {
17539 	int max_weight;
17540 	int max_events;
17541 	int max_gp;
17542 	int saved_states;
17543 	struct event_constraint **constraints;
17544 	struct sched_state state;
17545 	struct sched_state saved[2];
17546 };
17547 
17548 struct perf_msr {
17549 	u64 msr;
17550 	struct attribute_group *grp;
17551 	bool (*test)(int, void *);
17552 	bool no_check;
17553 	u64 mask;
17554 };
17555 
17556 struct pci_device_id {
17557 	__u32 vendor;
17558 	__u32 device;
17559 	__u32 subvendor;
17560 	__u32 subdevice;
17561 	__u32 class;
17562 	__u32 class_mask;
17563 	kernel_ulong_t driver_data;
17564 	__u32 override_only;
17565 };
17566 
17567 struct pci_bus;
17568 
17569 struct hotplug_slot;
17570 
17571 struct pci_slot {
17572 	struct pci_bus *bus;
17573 	struct list_head list;
17574 	struct hotplug_slot *hotplug;
17575 	unsigned char number;
17576 	struct kobject kobj;
17577 };
17578 
17579 typedef short unsigned int pci_bus_flags_t;
17580 
17581 struct pci_dev;
17582 
17583 struct pci_ops;
17584 
17585 struct pci_bus {
17586 	struct list_head node;
17587 	struct pci_bus *parent;
17588 	struct list_head children;
17589 	struct list_head devices;
17590 	struct pci_dev *self;
17591 	struct list_head slots;
17592 	struct resource *resource[4];
17593 	struct list_head resources;
17594 	struct resource busn_res;
17595 	struct pci_ops *ops;
17596 	void *sysdata;
17597 	struct proc_dir_entry *procdir;
17598 	unsigned char number;
17599 	unsigned char primary;
17600 	unsigned char max_bus_speed;
17601 	unsigned char cur_bus_speed;
17602 	char name[48];
17603 	short unsigned int bridge_ctl;
17604 	pci_bus_flags_t bus_flags;
17605 	struct device *bridge;
17606 	struct device dev;
17607 	struct bin_attribute *legacy_io;
17608 	struct bin_attribute *legacy_mem;
17609 	unsigned int is_added: 1;
17610 };
17611 
17612 enum {
17613 	PCI_STD_RESOURCES = 0,
17614 	PCI_STD_RESOURCE_END = 5,
17615 	PCI_ROM_RESOURCE = 6,
17616 	PCI_IOV_RESOURCES = 7,
17617 	PCI_IOV_RESOURCE_END = 12,
17618 	PCI_BRIDGE_RESOURCES = 13,
17619 	PCI_BRIDGE_RESOURCE_END = 16,
17620 	PCI_NUM_RESOURCES = 17,
17621 	DEVICE_COUNT_RESOURCE = 17,
17622 };
17623 
17624 typedef int pci_power_t;
17625 
17626 typedef unsigned int pci_channel_state_t;
17627 
17628 typedef unsigned int pcie_reset_state_t;
17629 
17630 typedef short unsigned int pci_dev_flags_t;
17631 
17632 struct pci_vpd {
17633 	struct mutex lock;
17634 	unsigned int len;
17635 	u8 cap;
17636 };
17637 
17638 struct rcec_ea;
17639 
17640 struct pci_driver;
17641 
17642 struct pcie_link_state;
17643 
17644 struct pci_sriov;
17645 
17646 struct pci_dev {
17647 	struct list_head bus_list;
17648 	struct pci_bus *bus;
17649 	struct pci_bus *subordinate;
17650 	void *sysdata;
17651 	struct proc_dir_entry *procent;
17652 	struct pci_slot *slot;
17653 	unsigned int devfn;
17654 	short unsigned int vendor;
17655 	short unsigned int device;
17656 	short unsigned int subsystem_vendor;
17657 	short unsigned int subsystem_device;
17658 	unsigned int class;
17659 	u8 revision;
17660 	u8 hdr_type;
17661 	struct rcec_ea *rcec_ea;
17662 	struct pci_dev *rcec;
17663 	u32 devcap;
17664 	u8 pcie_cap;
17665 	u8 msi_cap;
17666 	u8 msix_cap;
17667 	u8 pcie_mpss: 3;
17668 	u8 rom_base_reg;
17669 	u8 pin;
17670 	u16 pcie_flags_reg;
17671 	long unsigned int *dma_alias_mask;
17672 	struct pci_driver *driver;
17673 	u64 dma_mask;
17674 	struct device_dma_parameters dma_parms;
17675 	pci_power_t current_state;
17676 	unsigned int imm_ready: 1;
17677 	u8 pm_cap;
17678 	unsigned int pme_support: 5;
17679 	unsigned int pme_poll: 1;
17680 	unsigned int d1_support: 1;
17681 	unsigned int d2_support: 1;
17682 	unsigned int no_d1d2: 1;
17683 	unsigned int no_d3cold: 1;
17684 	unsigned int bridge_d3: 1;
17685 	unsigned int d3cold_allowed: 1;
17686 	unsigned int mmio_always_on: 1;
17687 	unsigned int wakeup_prepared: 1;
17688 	unsigned int runtime_d3cold: 1;
17689 	unsigned int skip_bus_pm: 1;
17690 	unsigned int ignore_hotplug: 1;
17691 	unsigned int hotplug_user_indicators: 1;
17692 	unsigned int clear_retrain_link: 1;
17693 	unsigned int d3hot_delay;
17694 	unsigned int d3cold_delay;
17695 	struct pcie_link_state *link_state;
17696 	unsigned int ltr_path: 1;
17697 	u16 l1ss;
17698 	unsigned int pasid_no_tlp: 1;
17699 	unsigned int eetlp_prefix_path: 1;
17700 	pci_channel_state_t error_state;
17701 	struct device dev;
17702 	int cfg_size;
17703 	unsigned int irq;
17704 	struct resource resource[17];
17705 	bool match_driver;
17706 	unsigned int transparent: 1;
17707 	unsigned int io_window: 1;
17708 	unsigned int pref_window: 1;
17709 	unsigned int pref_64_window: 1;
17710 	unsigned int multifunction: 1;
17711 	unsigned int is_busmaster: 1;
17712 	unsigned int no_msi: 1;
17713 	unsigned int no_64bit_msi: 1;
17714 	unsigned int block_cfg_access: 1;
17715 	unsigned int broken_parity_status: 1;
17716 	unsigned int irq_reroute_variant: 2;
17717 	unsigned int msi_enabled: 1;
17718 	unsigned int msix_enabled: 1;
17719 	unsigned int ari_enabled: 1;
17720 	unsigned int ats_enabled: 1;
17721 	unsigned int pasid_enabled: 1;
17722 	unsigned int pri_enabled: 1;
17723 	unsigned int is_managed: 1;
17724 	unsigned int is_msi_managed: 1;
17725 	unsigned int needs_freset: 1;
17726 	unsigned int state_saved: 1;
17727 	unsigned int is_physfn: 1;
17728 	unsigned int is_virtfn: 1;
17729 	unsigned int is_hotplug_bridge: 1;
17730 	unsigned int shpc_managed: 1;
17731 	unsigned int is_thunderbolt: 1;
17732 	unsigned int untrusted: 1;
17733 	unsigned int external_facing: 1;
17734 	unsigned int broken_intx_masking: 1;
17735 	unsigned int io_window_1k: 1;
17736 	unsigned int irq_managed: 1;
17737 	unsigned int non_compliant_bars: 1;
17738 	unsigned int is_probed: 1;
17739 	unsigned int link_active_reporting: 1;
17740 	unsigned int no_vf_scan: 1;
17741 	unsigned int no_command_memory: 1;
17742 	unsigned int rom_bar_overlap: 1;
17743 	pci_dev_flags_t dev_flags;
17744 	atomic_t enable_cnt;
17745 	u32 saved_config_space[16];
17746 	struct hlist_head saved_cap_space;
17747 	int rom_attr_enabled;
17748 	struct bin_attribute *res_attr[17];
17749 	struct bin_attribute *res_attr_wc[17];
17750 	void *msix_base;
17751 	raw_spinlock_t msi_lock;
17752 	struct pci_vpd vpd;
17753 	union {
17754 		struct pci_sriov *sriov;
17755 		struct pci_dev *physfn;
17756 	};
17757 	u16 ats_cap;
17758 	u8 ats_stu;
17759 	u16 acs_cap;
17760 	phys_addr_t rom;
17761 	size_t romlen;
17762 	char *driver_override;
17763 	long unsigned int priv_flags;
17764 	u8 reset_methods[7];
17765 };
17766 
17767 struct pci_dynids {
17768 	spinlock_t lock;
17769 	struct list_head list;
17770 };
17771 
17772 struct pci_error_handlers;
17773 
17774 struct pci_driver {
17775 	struct list_head node;
17776 	const char *name;
17777 	const struct pci_device_id *id_table;
17778 	int (*probe)(struct pci_dev *, const struct pci_device_id *);
17779 	void (*remove)(struct pci_dev *);
17780 	int (*suspend)(struct pci_dev *, pm_message_t);
17781 	int (*resume)(struct pci_dev *);
17782 	void (*shutdown)(struct pci_dev *);
17783 	int (*sriov_configure)(struct pci_dev *, int);
17784 	int (*sriov_set_msix_vec_count)(struct pci_dev *, int);
17785 	u32 (*sriov_get_vf_total_msix)(struct pci_dev *);
17786 	const struct pci_error_handlers *err_handler;
17787 	const struct attribute_group **groups;
17788 	const struct attribute_group **dev_groups;
17789 	struct device_driver driver;
17790 	struct pci_dynids dynids;
17791 };
17792 
17793 struct pci_ops {
17794 	int (*add_bus)(struct pci_bus *);
17795 	void (*remove_bus)(struct pci_bus *);
17796 	void * (*map_bus)(struct pci_bus *, unsigned int, int);
17797 	int (*read)(struct pci_bus *, unsigned int, int, int, u32 *);
17798 	int (*write)(struct pci_bus *, unsigned int, int, int, u32);
17799 };
17800 
17801 typedef unsigned int pci_ers_result_t;
17802 
17803 struct pci_error_handlers {
17804 	pci_ers_result_t (*error_detected)(struct pci_dev *, pci_channel_state_t);
17805 	pci_ers_result_t (*mmio_enabled)(struct pci_dev *);
17806 	pci_ers_result_t (*slot_reset)(struct pci_dev *);
17807 	void (*reset_prepare)(struct pci_dev *);
17808 	void (*reset_done)(struct pci_dev *);
17809 	void (*resume)(struct pci_dev *);
17810 };
17811 
17812 enum pcie_bus_config_types {
17813 	PCIE_BUS_TUNE_OFF = 0,
17814 	PCIE_BUS_DEFAULT = 1,
17815 	PCIE_BUS_SAFE = 2,
17816 	PCIE_BUS_PERFORMANCE = 3,
17817 	PCIE_BUS_PEER2PEER = 4,
17818 };
17819 
17820 union ibs_fetch_ctl {
17821 	__u64 val;
17822 	struct {
17823 		__u64 fetch_maxcnt: 16;
17824 		__u64 fetch_cnt: 16;
17825 		__u64 fetch_lat: 16;
17826 		__u64 fetch_en: 1;
17827 		__u64 fetch_val: 1;
17828 		__u64 fetch_comp: 1;
17829 		__u64 ic_miss: 1;
17830 		__u64 phy_addr_valid: 1;
17831 		__u64 l1tlb_pgsz: 2;
17832 		__u64 l1tlb_miss: 1;
17833 		__u64 l2tlb_miss: 1;
17834 		__u64 rand_en: 1;
17835 		__u64 fetch_l2_miss: 1;
17836 		__u64 reserved: 5;
17837 	};
17838 };
17839 
17840 union ibs_op_ctl {
17841 	__u64 val;
17842 	struct {
17843 		__u64 opmaxcnt: 16;
17844 		__u64 reserved0: 1;
17845 		__u64 op_en: 1;
17846 		__u64 op_val: 1;
17847 		__u64 cnt_ctl: 1;
17848 		__u64 opmaxcnt_ext: 7;
17849 		__u64 reserved1: 5;
17850 		__u64 opcurcnt: 27;
17851 		__u64 reserved2: 5;
17852 	};
17853 };
17854 
17855 struct perf_ibs_data {
17856 	u32 size;
17857 	union {
17858 		u32 data[0];
17859 		u32 caps;
17860 	};
17861 	u64 regs[8];
17862 };
17863 
17864 enum ibs_states {
17865 	IBS_ENABLED = 0,
17866 	IBS_STARTED = 1,
17867 	IBS_STOPPING = 2,
17868 	IBS_STOPPED = 3,
17869 	IBS_MAX_STATES = 4,
17870 };
17871 
17872 struct cpu_perf_ibs {
17873 	struct perf_event *event;
17874 	long unsigned int state[1];
17875 };
17876 
17877 struct perf_ibs {
17878 	struct pmu pmu;
17879 	unsigned int msr;
17880 	u64 config_mask;
17881 	u64 cnt_mask;
17882 	u64 enable_mask;
17883 	u64 valid_mask;
17884 	u64 max_period;
17885 	long unsigned int offset_mask[1];
17886 	int offset_max;
17887 	unsigned int fetch_count_reset_broken: 1;
17888 	unsigned int fetch_ignore_if_zero_rip: 1;
17889 	struct cpu_perf_ibs *pcpu;
17890 	struct attribute **format_attrs;
17891 	struct attribute_group format_group;
17892 	const struct attribute_group *attr_groups[2];
17893 	u64 (*get_count)(u64);
17894 };
17895 
17896 typedef void (*exitcall_t)();
17897 
17898 struct amd_uncore {
17899 	int id;
17900 	int refcnt;
17901 	int cpu;
17902 	int num_counters;
17903 	int rdpmc_base;
17904 	u32 msr_base;
17905 	cpumask_t *active_mask;
17906 	struct pmu *pmu;
17907 	struct perf_event *events[6];
17908 	struct hlist_node node;
17909 };
17910 
17911 enum perf_msr_id {
17912 	PERF_MSR_TSC = 0,
17913 	PERF_MSR_APERF = 1,
17914 	PERF_MSR_MPERF = 2,
17915 	PERF_MSR_PPERF = 3,
17916 	PERF_MSR_SMI = 4,
17917 	PERF_MSR_PTSC = 5,
17918 	PERF_MSR_IRPERF = 6,
17919 	PERF_MSR_THERM = 7,
17920 	PERF_MSR_EVENT_MAX = 8,
17921 };
17922 
17923 struct x86_cpu_desc {
17924 	u8 x86_family;
17925 	u8 x86_vendor;
17926 	u8 x86_model;
17927 	u8 x86_stepping;
17928 	u32 x86_microcode_rev;
17929 };
17930 
17931 union cpuid10_eax {
17932 	struct {
17933 		unsigned int version_id: 8;
17934 		unsigned int num_counters: 8;
17935 		unsigned int bit_width: 8;
17936 		unsigned int mask_length: 8;
17937 	} split;
17938 	unsigned int full;
17939 };
17940 
17941 union cpuid10_ebx {
17942 	struct {
17943 		unsigned int no_unhalted_core_cycles: 1;
17944 		unsigned int no_instructions_retired: 1;
17945 		unsigned int no_unhalted_reference_cycles: 1;
17946 		unsigned int no_llc_reference: 1;
17947 		unsigned int no_llc_misses: 1;
17948 		unsigned int no_branch_instruction_retired: 1;
17949 		unsigned int no_branch_misses_retired: 1;
17950 	} split;
17951 	unsigned int full;
17952 };
17953 
17954 union cpuid10_edx {
17955 	struct {
17956 		unsigned int num_counters_fixed: 5;
17957 		unsigned int bit_width_fixed: 8;
17958 		unsigned int reserved1: 2;
17959 		unsigned int anythread_deprecated: 1;
17960 		unsigned int reserved2: 16;
17961 	} split;
17962 	unsigned int full;
17963 };
17964 
17965 struct perf_pmu_format_hybrid_attr {
17966 	struct device_attribute attr;
17967 	u64 pmu_type;
17968 };
17969 
17970 typedef int perf_snapshot_branch_stack_t(struct perf_branch_entry *, unsigned int);
17971 
17972 enum {
17973 	LBR_FORMAT_32 = 0,
17974 	LBR_FORMAT_LIP = 1,
17975 	LBR_FORMAT_EIP = 2,
17976 	LBR_FORMAT_EIP_FLAGS = 3,
17977 	LBR_FORMAT_EIP_FLAGS2 = 4,
17978 	LBR_FORMAT_INFO = 5,
17979 	LBR_FORMAT_TIME = 6,
17980 	LBR_FORMAT_MAX_KNOWN = 6,
17981 };
17982 
17983 union x86_pmu_config {
17984 	struct {
17985 		u64 event: 8;
17986 		u64 umask: 8;
17987 		u64 usr: 1;
17988 		u64 os: 1;
17989 		u64 edge: 1;
17990 		u64 pc: 1;
17991 		u64 interrupt: 1;
17992 		u64 __reserved1: 1;
17993 		u64 en: 1;
17994 		u64 inv: 1;
17995 		u64 cmask: 8;
17996 		u64 event2: 4;
17997 		u64 __reserved2: 4;
17998 		u64 go: 1;
17999 		u64 ho: 1;
18000 	} bits;
18001 	u64 value;
18002 };
18003 
18004 enum pageflags {
18005 	PG_locked = 0,
18006 	PG_referenced = 1,
18007 	PG_uptodate = 2,
18008 	PG_dirty = 3,
18009 	PG_lru = 4,
18010 	PG_active = 5,
18011 	PG_workingset = 6,
18012 	PG_waiters = 7,
18013 	PG_error = 8,
18014 	PG_slab = 9,
18015 	PG_owner_priv_1 = 10,
18016 	PG_arch_1 = 11,
18017 	PG_reserved = 12,
18018 	PG_private = 13,
18019 	PG_private_2 = 14,
18020 	PG_writeback = 15,
18021 	PG_head = 16,
18022 	PG_mappedtodisk = 17,
18023 	PG_reclaim = 18,
18024 	PG_swapbacked = 19,
18025 	PG_unevictable = 20,
18026 	PG_mlocked = 21,
18027 	PG_uncached = 22,
18028 	PG_hwpoison = 23,
18029 	PG_arch_2 = 24,
18030 	__NR_PAGEFLAGS = 25,
18031 	PG_readahead = 18,
18032 	PG_checked = 10,
18033 	PG_swapcache = 10,
18034 	PG_fscache = 14,
18035 	PG_pinned = 10,
18036 	PG_savepinned = 3,
18037 	PG_foreign = 10,
18038 	PG_xen_remapped = 10,
18039 	PG_slob_free = 13,
18040 	PG_double_map = 6,
18041 	PG_has_hwpoisoned = 17,
18042 	PG_isolated = 18,
18043 	PG_reported = 2,
18044 };
18045 
18046 struct bts_ctx {
18047 	struct perf_output_handle handle;
18048 	long: 64;
18049 	long: 64;
18050 	long: 64;
18051 	long: 64;
18052 	long: 64;
18053 	long: 64;
18054 	long: 64;
18055 	long: 64;
18056 	long: 64;
18057 	long: 64;
18058 	long: 64;
18059 	long: 64;
18060 	long: 64;
18061 	long: 64;
18062 	long: 64;
18063 	long: 64;
18064 	long: 64;
18065 	long: 64;
18066 	long: 64;
18067 	long: 64;
18068 	long: 64;
18069 	long: 64;
18070 	long: 64;
18071 	long: 64;
18072 	long: 64;
18073 	long: 64;
18074 	long: 64;
18075 	long: 64;
18076 	long: 64;
18077 	long: 64;
18078 	long: 64;
18079 	long: 64;
18080 	long: 64;
18081 	long: 64;
18082 	long: 64;
18083 	long: 64;
18084 	long: 64;
18085 	long: 64;
18086 	long: 64;
18087 	long: 64;
18088 	long: 64;
18089 	long: 64;
18090 	long: 64;
18091 	long: 64;
18092 	long: 64;
18093 	long: 64;
18094 	long: 64;
18095 	long: 64;
18096 	long: 64;
18097 	long: 64;
18098 	long: 64;
18099 	long: 64;
18100 	long: 64;
18101 	long: 64;
18102 	long: 64;
18103 	long: 64;
18104 	long: 64;
18105 	long: 64;
18106 	long: 64;
18107 	long: 64;
18108 	long: 64;
18109 	long: 64;
18110 	long: 64;
18111 	long: 64;
18112 	long: 64;
18113 	long: 64;
18114 	long: 64;
18115 	long: 64;
18116 	long: 64;
18117 	long: 64;
18118 	long: 64;
18119 	long: 64;
18120 	long: 64;
18121 	long: 64;
18122 	long: 64;
18123 	long: 64;
18124 	long: 64;
18125 	long: 64;
18126 	long: 64;
18127 	long: 64;
18128 	long: 64;
18129 	long: 64;
18130 	long: 64;
18131 	long: 64;
18132 	long: 64;
18133 	long: 64;
18134 	long: 64;
18135 	long: 64;
18136 	long: 64;
18137 	long: 64;
18138 	long: 64;
18139 	long: 64;
18140 	long: 64;
18141 	long: 64;
18142 	long: 64;
18143 	long: 64;
18144 	long: 64;
18145 	long: 64;
18146 	long: 64;
18147 	long: 64;
18148 	long: 64;
18149 	long: 64;
18150 	long: 64;
18151 	long: 64;
18152 	long: 64;
18153 	long: 64;
18154 	long: 64;
18155 	long: 64;
18156 	long: 64;
18157 	long: 64;
18158 	long: 64;
18159 	long: 64;
18160 	long: 64;
18161 	long: 64;
18162 	long: 64;
18163 	long: 64;
18164 	long: 64;
18165 	long: 64;
18166 	long: 64;
18167 	long: 64;
18168 	long: 64;
18169 	long: 64;
18170 	long: 64;
18171 	long: 64;
18172 	long: 64;
18173 	long: 64;
18174 	long: 64;
18175 	long: 64;
18176 	long: 64;
18177 	long: 64;
18178 	long: 64;
18179 	long: 64;
18180 	long: 64;
18181 	long: 64;
18182 	long: 64;
18183 	long: 64;
18184 	long: 64;
18185 	long: 64;
18186 	long: 64;
18187 	long: 64;
18188 	long: 64;
18189 	long: 64;
18190 	long: 64;
18191 	long: 64;
18192 	long: 64;
18193 	long: 64;
18194 	long: 64;
18195 	long: 64;
18196 	long: 64;
18197 	long: 64;
18198 	long: 64;
18199 	long: 64;
18200 	long: 64;
18201 	long: 64;
18202 	long: 64;
18203 	long: 64;
18204 	long: 64;
18205 	long: 64;
18206 	long: 64;
18207 	long: 64;
18208 	long: 64;
18209 	long: 64;
18210 	long: 64;
18211 	long: 64;
18212 	long: 64;
18213 	long: 64;
18214 	long: 64;
18215 	long: 64;
18216 	long: 64;
18217 	long: 64;
18218 	long: 64;
18219 	long: 64;
18220 	long: 64;
18221 	long: 64;
18222 	long: 64;
18223 	long: 64;
18224 	long: 64;
18225 	long: 64;
18226 	long: 64;
18227 	long: 64;
18228 	long: 64;
18229 	long: 64;
18230 	long: 64;
18231 	long: 64;
18232 	long: 64;
18233 	long: 64;
18234 	long: 64;
18235 	long: 64;
18236 	long: 64;
18237 	long: 64;
18238 	long: 64;
18239 	long: 64;
18240 	long: 64;
18241 	long: 64;
18242 	long: 64;
18243 	long: 64;
18244 	long: 64;
18245 	long: 64;
18246 	long: 64;
18247 	long: 64;
18248 	long: 64;
18249 	long: 64;
18250 	long: 64;
18251 	long: 64;
18252 	long: 64;
18253 	long: 64;
18254 	long: 64;
18255 	long: 64;
18256 	long: 64;
18257 	long: 64;
18258 	long: 64;
18259 	long: 64;
18260 	long: 64;
18261 	long: 64;
18262 	long: 64;
18263 	long: 64;
18264 	long: 64;
18265 	long: 64;
18266 	long: 64;
18267 	long: 64;
18268 	long: 64;
18269 	long: 64;
18270 	long: 64;
18271 	long: 64;
18272 	long: 64;
18273 	long: 64;
18274 	long: 64;
18275 	long: 64;
18276 	long: 64;
18277 	long: 64;
18278 	long: 64;
18279 	long: 64;
18280 	long: 64;
18281 	long: 64;
18282 	long: 64;
18283 	long: 64;
18284 	long: 64;
18285 	long: 64;
18286 	long: 64;
18287 	long: 64;
18288 	long: 64;
18289 	long: 64;
18290 	long: 64;
18291 	long: 64;
18292 	long: 64;
18293 	long: 64;
18294 	long: 64;
18295 	long: 64;
18296 	long: 64;
18297 	long: 64;
18298 	long: 64;
18299 	long: 64;
18300 	long: 64;
18301 	long: 64;
18302 	long: 64;
18303 	long: 64;
18304 	long: 64;
18305 	long: 64;
18306 	long: 64;
18307 	long: 64;
18308 	long: 64;
18309 	long: 64;
18310 	long: 64;
18311 	long: 64;
18312 	long: 64;
18313 	long: 64;
18314 	long: 64;
18315 	long: 64;
18316 	long: 64;
18317 	long: 64;
18318 	long: 64;
18319 	long: 64;
18320 	long: 64;
18321 	long: 64;
18322 	long: 64;
18323 	long: 64;
18324 	long: 64;
18325 	long: 64;
18326 	long: 64;
18327 	long: 64;
18328 	long: 64;
18329 	long: 64;
18330 	long: 64;
18331 	long: 64;
18332 	long: 64;
18333 	long: 64;
18334 	long: 64;
18335 	long: 64;
18336 	long: 64;
18337 	long: 64;
18338 	long: 64;
18339 	long: 64;
18340 	long: 64;
18341 	long: 64;
18342 	long: 64;
18343 	long: 64;
18344 	long: 64;
18345 	long: 64;
18346 	long: 64;
18347 	long: 64;
18348 	long: 64;
18349 	long: 64;
18350 	long: 64;
18351 	long: 64;
18352 	long: 64;
18353 	long: 64;
18354 	long: 64;
18355 	long: 64;
18356 	long: 64;
18357 	long: 64;
18358 	long: 64;
18359 	long: 64;
18360 	long: 64;
18361 	long: 64;
18362 	long: 64;
18363 	long: 64;
18364 	long: 64;
18365 	long: 64;
18366 	long: 64;
18367 	long: 64;
18368 	long: 64;
18369 	long: 64;
18370 	long: 64;
18371 	long: 64;
18372 	long: 64;
18373 	long: 64;
18374 	long: 64;
18375 	long: 64;
18376 	long: 64;
18377 	long: 64;
18378 	long: 64;
18379 	long: 64;
18380 	long: 64;
18381 	long: 64;
18382 	long: 64;
18383 	long: 64;
18384 	long: 64;
18385 	long: 64;
18386 	long: 64;
18387 	long: 64;
18388 	long: 64;
18389 	long: 64;
18390 	long: 64;
18391 	long: 64;
18392 	long: 64;
18393 	long: 64;
18394 	long: 64;
18395 	long: 64;
18396 	long: 64;
18397 	long: 64;
18398 	long: 64;
18399 	long: 64;
18400 	long: 64;
18401 	long: 64;
18402 	long: 64;
18403 	long: 64;
18404 	long: 64;
18405 	long: 64;
18406 	long: 64;
18407 	long: 64;
18408 	long: 64;
18409 	long: 64;
18410 	long: 64;
18411 	long: 64;
18412 	long: 64;
18413 	long: 64;
18414 	long: 64;
18415 	long: 64;
18416 	long: 64;
18417 	long: 64;
18418 	long: 64;
18419 	long: 64;
18420 	long: 64;
18421 	long: 64;
18422 	long: 64;
18423 	long: 64;
18424 	long: 64;
18425 	long: 64;
18426 	long: 64;
18427 	long: 64;
18428 	long: 64;
18429 	long: 64;
18430 	long: 64;
18431 	long: 64;
18432 	long: 64;
18433 	long: 64;
18434 	long: 64;
18435 	long: 64;
18436 	long: 64;
18437 	long: 64;
18438 	long: 64;
18439 	long: 64;
18440 	long: 64;
18441 	long: 64;
18442 	long: 64;
18443 	long: 64;
18444 	long: 64;
18445 	long: 64;
18446 	long: 64;
18447 	long: 64;
18448 	long: 64;
18449 	long: 64;
18450 	long: 64;
18451 	long: 64;
18452 	long: 64;
18453 	long: 64;
18454 	long: 64;
18455 	long: 64;
18456 	long: 64;
18457 	long: 64;
18458 	long: 64;
18459 	long: 64;
18460 	long: 64;
18461 	long: 64;
18462 	long: 64;
18463 	long: 64;
18464 	long: 64;
18465 	long: 64;
18466 	long: 64;
18467 	long: 64;
18468 	long: 64;
18469 	long: 64;
18470 	long: 64;
18471 	long: 64;
18472 	long: 64;
18473 	long: 64;
18474 	long: 64;
18475 	long: 64;
18476 	long: 64;
18477 	long: 64;
18478 	long: 64;
18479 	long: 64;
18480 	long: 64;
18481 	long: 64;
18482 	long: 64;
18483 	long: 64;
18484 	long: 64;
18485 	long: 64;
18486 	long: 64;
18487 	long: 64;
18488 	long: 64;
18489 	long: 64;
18490 	long: 64;
18491 	long: 64;
18492 	long: 64;
18493 	long: 64;
18494 	long: 64;
18495 	long: 64;
18496 	long: 64;
18497 	long: 64;
18498 	long: 64;
18499 	long: 64;
18500 	long: 64;
18501 	long: 64;
18502 	long: 64;
18503 	long: 64;
18504 	long: 64;
18505 	long: 64;
18506 	long: 64;
18507 	long: 64;
18508 	long: 64;
18509 	long: 64;
18510 	long: 64;
18511 	long: 64;
18512 	long: 64;
18513 	long: 64;
18514 	long: 64;
18515 	long: 64;
18516 	long: 64;
18517 	long: 64;
18518 	long: 64;
18519 	long: 64;
18520 	long: 64;
18521 	long: 64;
18522 	long: 64;
18523 	long: 64;
18524 	long: 64;
18525 	long: 64;
18526 	long: 64;
18527 	long: 64;
18528 	long: 64;
18529 	long: 64;
18530 	long: 64;
18531 	long: 64;
18532 	long: 64;
18533 	long: 64;
18534 	long: 64;
18535 	long: 64;
18536 	long: 64;
18537 	long: 64;
18538 	long: 64;
18539 	long: 64;
18540 	long: 64;
18541 	long: 64;
18542 	long: 64;
18543 	long: 64;
18544 	long: 64;
18545 	long: 64;
18546 	long: 64;
18547 	long: 64;
18548 	long: 64;
18549 	long: 64;
18550 	long: 64;
18551 	long: 64;
18552 	long: 64;
18553 	struct debug_store ds_back;
18554 	int state;
18555 	long: 32;
18556 	long: 64;
18557 	long: 64;
18558 	long: 64;
18559 	long: 64;
18560 	long: 64;
18561 	long: 64;
18562 	long: 64;
18563 	long: 64;
18564 	long: 64;
18565 	long: 64;
18566 	long: 64;
18567 	long: 64;
18568 	long: 64;
18569 	long: 64;
18570 	long: 64;
18571 	long: 64;
18572 	long: 64;
18573 	long: 64;
18574 	long: 64;
18575 	long: 64;
18576 	long: 64;
18577 	long: 64;
18578 	long: 64;
18579 	long: 64;
18580 	long: 64;
18581 	long: 64;
18582 	long: 64;
18583 	long: 64;
18584 	long: 64;
18585 	long: 64;
18586 	long: 64;
18587 	long: 64;
18588 	long: 64;
18589 	long: 64;
18590 	long: 64;
18591 	long: 64;
18592 	long: 64;
18593 	long: 64;
18594 	long: 64;
18595 	long: 64;
18596 	long: 64;
18597 	long: 64;
18598 	long: 64;
18599 	long: 64;
18600 	long: 64;
18601 	long: 64;
18602 	long: 64;
18603 	long: 64;
18604 	long: 64;
18605 	long: 64;
18606 	long: 64;
18607 	long: 64;
18608 	long: 64;
18609 	long: 64;
18610 	long: 64;
18611 	long: 64;
18612 	long: 64;
18613 	long: 64;
18614 	long: 64;
18615 	long: 64;
18616 	long: 64;
18617 	long: 64;
18618 	long: 64;
18619 	long: 64;
18620 	long: 64;
18621 	long: 64;
18622 	long: 64;
18623 	long: 64;
18624 	long: 64;
18625 	long: 64;
18626 	long: 64;
18627 	long: 64;
18628 	long: 64;
18629 	long: 64;
18630 	long: 64;
18631 	long: 64;
18632 	long: 64;
18633 	long: 64;
18634 	long: 64;
18635 	long: 64;
18636 	long: 64;
18637 	long: 64;
18638 	long: 64;
18639 	long: 64;
18640 	long: 64;
18641 	long: 64;
18642 	long: 64;
18643 	long: 64;
18644 	long: 64;
18645 	long: 64;
18646 	long: 64;
18647 	long: 64;
18648 	long: 64;
18649 	long: 64;
18650 	long: 64;
18651 	long: 64;
18652 	long: 64;
18653 	long: 64;
18654 	long: 64;
18655 	long: 64;
18656 	long: 64;
18657 	long: 64;
18658 	long: 64;
18659 	long: 64;
18660 	long: 64;
18661 	long: 64;
18662 	long: 64;
18663 	long: 64;
18664 	long: 64;
18665 	long: 64;
18666 	long: 64;
18667 	long: 64;
18668 	long: 64;
18669 	long: 64;
18670 	long: 64;
18671 	long: 64;
18672 	long: 64;
18673 	long: 64;
18674 	long: 64;
18675 	long: 64;
18676 	long: 64;
18677 	long: 64;
18678 	long: 64;
18679 	long: 64;
18680 	long: 64;
18681 	long: 64;
18682 	long: 64;
18683 	long: 64;
18684 	long: 64;
18685 	long: 64;
18686 	long: 64;
18687 	long: 64;
18688 	long: 64;
18689 	long: 64;
18690 	long: 64;
18691 	long: 64;
18692 	long: 64;
18693 	long: 64;
18694 	long: 64;
18695 	long: 64;
18696 	long: 64;
18697 	long: 64;
18698 	long: 64;
18699 	long: 64;
18700 	long: 64;
18701 	long: 64;
18702 	long: 64;
18703 	long: 64;
18704 	long: 64;
18705 	long: 64;
18706 	long: 64;
18707 	long: 64;
18708 	long: 64;
18709 	long: 64;
18710 	long: 64;
18711 	long: 64;
18712 	long: 64;
18713 	long: 64;
18714 	long: 64;
18715 	long: 64;
18716 	long: 64;
18717 	long: 64;
18718 	long: 64;
18719 	long: 64;
18720 	long: 64;
18721 	long: 64;
18722 	long: 64;
18723 	long: 64;
18724 	long: 64;
18725 	long: 64;
18726 	long: 64;
18727 	long: 64;
18728 	long: 64;
18729 	long: 64;
18730 	long: 64;
18731 	long: 64;
18732 	long: 64;
18733 	long: 64;
18734 	long: 64;
18735 	long: 64;
18736 	long: 64;
18737 	long: 64;
18738 	long: 64;
18739 	long: 64;
18740 	long: 64;
18741 	long: 64;
18742 	long: 64;
18743 	long: 64;
18744 	long: 64;
18745 	long: 64;
18746 	long: 64;
18747 	long: 64;
18748 	long: 64;
18749 	long: 64;
18750 	long: 64;
18751 	long: 64;
18752 	long: 64;
18753 	long: 64;
18754 	long: 64;
18755 	long: 64;
18756 	long: 64;
18757 	long: 64;
18758 	long: 64;
18759 	long: 64;
18760 	long: 64;
18761 	long: 64;
18762 	long: 64;
18763 	long: 64;
18764 	long: 64;
18765 	long: 64;
18766 	long: 64;
18767 	long: 64;
18768 	long: 64;
18769 	long: 64;
18770 	long: 64;
18771 	long: 64;
18772 	long: 64;
18773 	long: 64;
18774 	long: 64;
18775 	long: 64;
18776 	long: 64;
18777 	long: 64;
18778 	long: 64;
18779 	long: 64;
18780 	long: 64;
18781 	long: 64;
18782 	long: 64;
18783 	long: 64;
18784 	long: 64;
18785 	long: 64;
18786 	long: 64;
18787 	long: 64;
18788 	long: 64;
18789 	long: 64;
18790 	long: 64;
18791 	long: 64;
18792 	long: 64;
18793 	long: 64;
18794 	long: 64;
18795 	long: 64;
18796 	long: 64;
18797 	long: 64;
18798 	long: 64;
18799 	long: 64;
18800 	long: 64;
18801 	long: 64;
18802 	long: 64;
18803 	long: 64;
18804 	long: 64;
18805 	long: 64;
18806 	long: 64;
18807 	long: 64;
18808 	long: 64;
18809 	long: 64;
18810 	long: 64;
18811 	long: 64;
18812 	long: 64;
18813 	long: 64;
18814 	long: 64;
18815 	long: 64;
18816 	long: 64;
18817 	long: 64;
18818 	long: 64;
18819 	long: 64;
18820 	long: 64;
18821 	long: 64;
18822 	long: 64;
18823 	long: 64;
18824 	long: 64;
18825 	long: 64;
18826 	long: 64;
18827 	long: 64;
18828 	long: 64;
18829 	long: 64;
18830 	long: 64;
18831 	long: 64;
18832 	long: 64;
18833 	long: 64;
18834 	long: 64;
18835 	long: 64;
18836 	long: 64;
18837 	long: 64;
18838 	long: 64;
18839 	long: 64;
18840 	long: 64;
18841 	long: 64;
18842 	long: 64;
18843 	long: 64;
18844 	long: 64;
18845 	long: 64;
18846 	long: 64;
18847 	long: 64;
18848 	long: 64;
18849 	long: 64;
18850 	long: 64;
18851 	long: 64;
18852 	long: 64;
18853 	long: 64;
18854 	long: 64;
18855 	long: 64;
18856 	long: 64;
18857 	long: 64;
18858 	long: 64;
18859 	long: 64;
18860 	long: 64;
18861 	long: 64;
18862 	long: 64;
18863 	long: 64;
18864 	long: 64;
18865 	long: 64;
18866 	long: 64;
18867 	long: 64;
18868 	long: 64;
18869 	long: 64;
18870 	long: 64;
18871 	long: 64;
18872 	long: 64;
18873 	long: 64;
18874 	long: 64;
18875 	long: 64;
18876 	long: 64;
18877 	long: 64;
18878 	long: 64;
18879 	long: 64;
18880 	long: 64;
18881 	long: 64;
18882 	long: 64;
18883 	long: 64;
18884 	long: 64;
18885 	long: 64;
18886 	long: 64;
18887 	long: 64;
18888 	long: 64;
18889 	long: 64;
18890 	long: 64;
18891 	long: 64;
18892 	long: 64;
18893 	long: 64;
18894 	long: 64;
18895 	long: 64;
18896 	long: 64;
18897 	long: 64;
18898 	long: 64;
18899 	long: 64;
18900 	long: 64;
18901 	long: 64;
18902 	long: 64;
18903 	long: 64;
18904 	long: 64;
18905 	long: 64;
18906 	long: 64;
18907 	long: 64;
18908 	long: 64;
18909 	long: 64;
18910 	long: 64;
18911 	long: 64;
18912 	long: 64;
18913 	long: 64;
18914 	long: 64;
18915 	long: 64;
18916 	long: 64;
18917 	long: 64;
18918 	long: 64;
18919 	long: 64;
18920 	long: 64;
18921 	long: 64;
18922 	long: 64;
18923 	long: 64;
18924 	long: 64;
18925 	long: 64;
18926 	long: 64;
18927 	long: 64;
18928 	long: 64;
18929 	long: 64;
18930 	long: 64;
18931 	long: 64;
18932 	long: 64;
18933 	long: 64;
18934 	long: 64;
18935 	long: 64;
18936 	long: 64;
18937 	long: 64;
18938 	long: 64;
18939 	long: 64;
18940 	long: 64;
18941 	long: 64;
18942 	long: 64;
18943 	long: 64;
18944 	long: 64;
18945 	long: 64;
18946 	long: 64;
18947 	long: 64;
18948 	long: 64;
18949 	long: 64;
18950 	long: 64;
18951 	long: 64;
18952 	long: 64;
18953 	long: 64;
18954 	long: 64;
18955 	long: 64;
18956 	long: 64;
18957 	long: 64;
18958 	long: 64;
18959 	long: 64;
18960 	long: 64;
18961 	long: 64;
18962 	long: 64;
18963 	long: 64;
18964 	long: 64;
18965 	long: 64;
18966 	long: 64;
18967 	long: 64;
18968 	long: 64;
18969 	long: 64;
18970 	long: 64;
18971 	long: 64;
18972 	long: 64;
18973 	long: 64;
18974 	long: 64;
18975 	long: 64;
18976 	long: 64;
18977 	long: 64;
18978 	long: 64;
18979 	long: 64;
18980 	long: 64;
18981 	long: 64;
18982 	long: 64;
18983 	long: 64;
18984 	long: 64;
18985 	long: 64;
18986 	long: 64;
18987 	long: 64;
18988 	long: 64;
18989 	long: 64;
18990 	long: 64;
18991 	long: 64;
18992 	long: 64;
18993 	long: 64;
18994 	long: 64;
18995 	long: 64;
18996 	long: 64;
18997 	long: 64;
18998 	long: 64;
18999 	long: 64;
19000 	long: 64;
19001 	long: 64;
19002 	long: 64;
19003 	long: 64;
19004 	long: 64;
19005 	long: 64;
19006 	long: 64;
19007 	long: 64;
19008 	long: 64;
19009 	long: 64;
19010 	long: 64;
19011 	long: 64;
19012 	long: 64;
19013 	long: 64;
19014 	long: 64;
19015 	long: 64;
19016 	long: 64;
19017 	long: 64;
19018 	long: 64;
19019 	long: 64;
19020 	long: 64;
19021 	long: 64;
19022 	long: 64;
19023 	long: 64;
19024 	long: 64;
19025 	long: 64;
19026 	long: 64;
19027 	long: 64;
19028 	long: 64;
19029 	long: 64;
19030 	long: 64;
19031 	long: 64;
19032 	long: 64;
19033 	long: 64;
19034 	long: 64;
19035 	long: 64;
19036 	long: 64;
19037 	long: 64;
19038 	long: 64;
19039 	long: 64;
19040 	long: 64;
19041 	long: 64;
19042 	long: 64;
19043 	long: 64;
19044 	long: 64;
19045 	long: 64;
19046 	long: 64;
19047 	long: 64;
19048 	long: 64;
19049 	long: 64;
19050 	long: 64;
19051 	long: 64;
19052 	long: 64;
19053 	long: 64;
19054 	long: 64;
19055 	long: 64;
19056 	long: 64;
19057 	long: 64;
19058 	long: 64;
19059 	long: 64;
19060 	long: 64;
19061 	long: 64;
19062 	long: 64;
19063 	long: 64;
19064 	long: 64;
19065 	long: 64;
19066 	long: 64;
19067 };
19068 
19069 enum {
19070 	BTS_STATE_STOPPED = 0,
19071 	BTS_STATE_INACTIVE = 1,
19072 	BTS_STATE_ACTIVE = 2,
19073 };
19074 
19075 struct bts_phys {
19076 	struct page *page;
19077 	long unsigned int size;
19078 	long unsigned int offset;
19079 	long unsigned int displacement;
19080 };
19081 
19082 struct bts_buffer {
19083 	size_t real_size;
19084 	unsigned int nr_pages;
19085 	unsigned int nr_bufs;
19086 	unsigned int cur_buf;
19087 	bool snapshot;
19088 	local_t data_size;
19089 	local_t head;
19090 	long unsigned int end;
19091 	void **data_pages;
19092 	struct bts_phys buf[0];
19093 };
19094 
19095 struct lbr_entry {
19096 	u64 from;
19097 	u64 to;
19098 	u64 info;
19099 };
19100 
19101 struct pebs_basic {
19102 	u64 format_size;
19103 	u64 ip;
19104 	u64 applicable_counters;
19105 	u64 tsc;
19106 };
19107 
19108 struct pebs_meminfo {
19109 	u64 address;
19110 	u64 aux;
19111 	u64 latency;
19112 	u64 tsx_tuning;
19113 };
19114 
19115 struct pebs_gprs {
19116 	u64 flags;
19117 	u64 ip;
19118 	u64 ax;
19119 	u64 cx;
19120 	u64 dx;
19121 	u64 bx;
19122 	u64 sp;
19123 	u64 bp;
19124 	u64 si;
19125 	u64 di;
19126 	u64 r8;
19127 	u64 r9;
19128 	u64 r10;
19129 	u64 r11;
19130 	u64 r12;
19131 	u64 r13;
19132 	u64 r14;
19133 	u64 r15;
19134 };
19135 
19136 struct pebs_xmm {
19137 	u64 xmm[32];
19138 };
19139 
19140 struct x86_perf_regs {
19141 	struct pt_regs regs;
19142 	u64 *xmm_regs;
19143 };
19144 
19145 typedef unsigned int insn_attr_t;
19146 
19147 typedef unsigned char insn_byte_t;
19148 
19149 typedef int insn_value_t;
19150 
19151 struct insn_field {
19152 	union {
19153 		insn_value_t value;
19154 		insn_byte_t bytes[4];
19155 	};
19156 	unsigned char got;
19157 	unsigned char nbytes;
19158 };
19159 
19160 struct insn {
19161 	struct insn_field prefixes;
19162 	struct insn_field rex_prefix;
19163 	struct insn_field vex_prefix;
19164 	struct insn_field opcode;
19165 	struct insn_field modrm;
19166 	struct insn_field sib;
19167 	struct insn_field displacement;
19168 	union {
19169 		struct insn_field immediate;
19170 		struct insn_field moffset1;
19171 		struct insn_field immediate1;
19172 	};
19173 	union {
19174 		struct insn_field moffset2;
19175 		struct insn_field immediate2;
19176 	};
19177 	int emulate_prefix_size;
19178 	insn_attr_t attr;
19179 	unsigned char opnd_bytes;
19180 	unsigned char addr_bytes;
19181 	unsigned char length;
19182 	unsigned char x86_64;
19183 	const insn_byte_t *kaddr;
19184 	const insn_byte_t *end_kaddr;
19185 	const insn_byte_t *next_byte;
19186 };
19187 
19188 enum {
19189 	PERF_TXN_ELISION = 1,
19190 	PERF_TXN_TRANSACTION = 2,
19191 	PERF_TXN_SYNC = 4,
19192 	PERF_TXN_ASYNC = 8,
19193 	PERF_TXN_RETRY = 16,
19194 	PERF_TXN_CONFLICT = 32,
19195 	PERF_TXN_CAPACITY_WRITE = 64,
19196 	PERF_TXN_CAPACITY_READ = 128,
19197 	PERF_TXN_MAX = 256,
19198 	PERF_TXN_ABORT_MASK = 0,
19199 	PERF_TXN_ABORT_SHIFT = 32,
19200 };
19201 
19202 struct perf_event_header {
19203 	__u32 type;
19204 	__u16 misc;
19205 	__u16 size;
19206 };
19207 
19208 union intel_x86_pebs_dse {
19209 	u64 val;
19210 	struct {
19211 		unsigned int ld_dse: 4;
19212 		unsigned int ld_stlb_miss: 1;
19213 		unsigned int ld_locked: 1;
19214 		unsigned int ld_data_blk: 1;
19215 		unsigned int ld_addr_blk: 1;
19216 		unsigned int ld_reserved: 24;
19217 	};
19218 	struct {
19219 		unsigned int st_l1d_hit: 1;
19220 		unsigned int st_reserved1: 3;
19221 		unsigned int st_stlb_miss: 1;
19222 		unsigned int st_locked: 1;
19223 		unsigned int st_reserved2: 26;
19224 	};
19225 	struct {
19226 		unsigned int st_lat_dse: 4;
19227 		unsigned int st_lat_stlb_miss: 1;
19228 		unsigned int st_lat_locked: 1;
19229 		unsigned int ld_reserved3: 26;
19230 	};
19231 };
19232 
19233 struct pebs_record_core {
19234 	u64 flags;
19235 	u64 ip;
19236 	u64 ax;
19237 	u64 bx;
19238 	u64 cx;
19239 	u64 dx;
19240 	u64 si;
19241 	u64 di;
19242 	u64 bp;
19243 	u64 sp;
19244 	u64 r8;
19245 	u64 r9;
19246 	u64 r10;
19247 	u64 r11;
19248 	u64 r12;
19249 	u64 r13;
19250 	u64 r14;
19251 	u64 r15;
19252 };
19253 
19254 struct pebs_record_nhm {
19255 	u64 flags;
19256 	u64 ip;
19257 	u64 ax;
19258 	u64 bx;
19259 	u64 cx;
19260 	u64 dx;
19261 	u64 si;
19262 	u64 di;
19263 	u64 bp;
19264 	u64 sp;
19265 	u64 r8;
19266 	u64 r9;
19267 	u64 r10;
19268 	u64 r11;
19269 	u64 r12;
19270 	u64 r13;
19271 	u64 r14;
19272 	u64 r15;
19273 	u64 status;
19274 	u64 dla;
19275 	u64 dse;
19276 	u64 lat;
19277 };
19278 
19279 union hsw_tsx_tuning {
19280 	struct {
19281 		u32 cycles_last_block: 32;
19282 		u32 hle_abort: 1;
19283 		u32 rtm_abort: 1;
19284 		u32 instruction_abort: 1;
19285 		u32 non_instruction_abort: 1;
19286 		u32 retry: 1;
19287 		u32 data_conflict: 1;
19288 		u32 capacity_writes: 1;
19289 		u32 capacity_reads: 1;
19290 	};
19291 	u64 value;
19292 };
19293 
19294 struct pebs_record_skl {
19295 	u64 flags;
19296 	u64 ip;
19297 	u64 ax;
19298 	u64 bx;
19299 	u64 cx;
19300 	u64 dx;
19301 	u64 si;
19302 	u64 di;
19303 	u64 bp;
19304 	u64 sp;
19305 	u64 r8;
19306 	u64 r9;
19307 	u64 r10;
19308 	u64 r11;
19309 	u64 r12;
19310 	u64 r13;
19311 	u64 r14;
19312 	u64 r15;
19313 	u64 status;
19314 	u64 dla;
19315 	u64 dse;
19316 	u64 lat;
19317 	u64 real_ip;
19318 	u64 tsx_tuning;
19319 	u64 tsc;
19320 };
19321 
19322 struct bts_record {
19323 	u64 from;
19324 	u64 to;
19325 	u64 flags;
19326 };
19327 
19328 enum {
19329 	PERF_BR_UNKNOWN = 0,
19330 	PERF_BR_COND = 1,
19331 	PERF_BR_UNCOND = 2,
19332 	PERF_BR_IND = 3,
19333 	PERF_BR_CALL = 4,
19334 	PERF_BR_IND_CALL = 5,
19335 	PERF_BR_RET = 6,
19336 	PERF_BR_SYSCALL = 7,
19337 	PERF_BR_SYSRET = 8,
19338 	PERF_BR_COND_CALL = 9,
19339 	PERF_BR_COND_RET = 10,
19340 	PERF_BR_MAX = 11,
19341 };
19342 
19343 enum xfeature {
19344 	XFEATURE_FP = 0,
19345 	XFEATURE_SSE = 1,
19346 	XFEATURE_YMM = 2,
19347 	XFEATURE_BNDREGS = 3,
19348 	XFEATURE_BNDCSR = 4,
19349 	XFEATURE_OPMASK = 5,
19350 	XFEATURE_ZMM_Hi256 = 6,
19351 	XFEATURE_Hi16_ZMM = 7,
19352 	XFEATURE_PT_UNIMPLEMENTED_SO_FAR = 8,
19353 	XFEATURE_PKRU = 9,
19354 	XFEATURE_PASID = 10,
19355 	XFEATURE_RSRVD_COMP_11 = 11,
19356 	XFEATURE_RSRVD_COMP_12 = 12,
19357 	XFEATURE_RSRVD_COMP_13 = 13,
19358 	XFEATURE_RSRVD_COMP_14 = 14,
19359 	XFEATURE_LBR = 15,
19360 	XFEATURE_RSRVD_COMP_16 = 16,
19361 	XFEATURE_XTILE_CFG = 17,
19362 	XFEATURE_XTILE_DATA = 18,
19363 	XFEATURE_MAX = 19,
19364 };
19365 
19366 struct arch_lbr_state {
19367 	u64 lbr_ctl;
19368 	u64 lbr_depth;
19369 	u64 ler_from;
19370 	u64 ler_to;
19371 	u64 ler_info;
19372 	struct lbr_entry entries[0];
19373 };
19374 
19375 union cpuid28_eax {
19376 	struct {
19377 		unsigned int lbr_depth_mask: 8;
19378 		unsigned int reserved: 22;
19379 		unsigned int lbr_deep_c_reset: 1;
19380 		unsigned int lbr_lip: 1;
19381 	} split;
19382 	unsigned int full;
19383 };
19384 
19385 union cpuid28_ebx {
19386 	struct {
19387 		unsigned int lbr_cpl: 1;
19388 		unsigned int lbr_filter: 1;
19389 		unsigned int lbr_call_stack: 1;
19390 	} split;
19391 	unsigned int full;
19392 };
19393 
19394 union cpuid28_ecx {
19395 	struct {
19396 		unsigned int lbr_mispred: 1;
19397 		unsigned int lbr_timed_lbr: 1;
19398 		unsigned int lbr_br_type: 1;
19399 	} split;
19400 	unsigned int full;
19401 };
19402 
19403 struct x86_pmu_lbr {
19404 	unsigned int nr;
19405 	unsigned int from;
19406 	unsigned int to;
19407 	unsigned int info;
19408 };
19409 
19410 struct x86_perf_task_context_opt {
19411 	int lbr_callstack_users;
19412 	int lbr_stack_state;
19413 	int log_id;
19414 };
19415 
19416 struct x86_perf_task_context {
19417 	u64 lbr_sel;
19418 	int tos;
19419 	int valid_lbrs;
19420 	struct x86_perf_task_context_opt opt;
19421 	struct lbr_entry lbr[32];
19422 };
19423 
19424 struct x86_perf_task_context_arch_lbr {
19425 	struct x86_perf_task_context_opt opt;
19426 	struct lbr_entry entries[0];
19427 };
19428 
19429 struct x86_perf_task_context_arch_lbr_xsave {
19430 	struct x86_perf_task_context_opt opt;
19431 	long: 32;
19432 	long: 64;
19433 	long: 64;
19434 	long: 64;
19435 	long: 64;
19436 	long: 64;
19437 	long: 64;
19438 	union {
19439 		struct xregs_state xsave;
19440 		struct {
19441 			struct fxregs_state i387;
19442 			struct xstate_header header;
19443 			struct arch_lbr_state lbr;
19444 			long: 64;
19445 			long: 64;
19446 			long: 64;
19447 		};
19448 	};
19449 };
19450 
19451 enum {
19452 	X86_BR_NONE = 0,
19453 	X86_BR_USER = 1,
19454 	X86_BR_KERNEL = 2,
19455 	X86_BR_CALL = 4,
19456 	X86_BR_RET = 8,
19457 	X86_BR_SYSCALL = 16,
19458 	X86_BR_SYSRET = 32,
19459 	X86_BR_INT = 64,
19460 	X86_BR_IRET = 128,
19461 	X86_BR_JCC = 256,
19462 	X86_BR_JMP = 512,
19463 	X86_BR_IRQ = 1024,
19464 	X86_BR_IND_CALL = 2048,
19465 	X86_BR_ABORT = 4096,
19466 	X86_BR_IN_TX = 8192,
19467 	X86_BR_NO_TX = 16384,
19468 	X86_BR_ZERO_CALL = 32768,
19469 	X86_BR_CALL_STACK = 65536,
19470 	X86_BR_IND_JMP = 131072,
19471 	X86_BR_TYPE_SAVE = 262144,
19472 };
19473 
19474 enum {
19475 	LBR_NONE = 0,
19476 	LBR_VALID = 1,
19477 };
19478 
19479 enum {
19480 	ARCH_LBR_BR_TYPE_JCC = 0,
19481 	ARCH_LBR_BR_TYPE_NEAR_IND_JMP = 1,
19482 	ARCH_LBR_BR_TYPE_NEAR_REL_JMP = 2,
19483 	ARCH_LBR_BR_TYPE_NEAR_IND_CALL = 3,
19484 	ARCH_LBR_BR_TYPE_NEAR_REL_CALL = 4,
19485 	ARCH_LBR_BR_TYPE_NEAR_RET = 5,
19486 	ARCH_LBR_BR_TYPE_KNOWN_MAX = 5,
19487 	ARCH_LBR_BR_TYPE_MAP_MAX = 16,
19488 };
19489 
19490 enum P4_EVENTS {
19491 	P4_EVENT_TC_DELIVER_MODE = 0,
19492 	P4_EVENT_BPU_FETCH_REQUEST = 1,
19493 	P4_EVENT_ITLB_REFERENCE = 2,
19494 	P4_EVENT_MEMORY_CANCEL = 3,
19495 	P4_EVENT_MEMORY_COMPLETE = 4,
19496 	P4_EVENT_LOAD_PORT_REPLAY = 5,
19497 	P4_EVENT_STORE_PORT_REPLAY = 6,
19498 	P4_EVENT_MOB_LOAD_REPLAY = 7,
19499 	P4_EVENT_PAGE_WALK_TYPE = 8,
19500 	P4_EVENT_BSQ_CACHE_REFERENCE = 9,
19501 	P4_EVENT_IOQ_ALLOCATION = 10,
19502 	P4_EVENT_IOQ_ACTIVE_ENTRIES = 11,
19503 	P4_EVENT_FSB_DATA_ACTIVITY = 12,
19504 	P4_EVENT_BSQ_ALLOCATION = 13,
19505 	P4_EVENT_BSQ_ACTIVE_ENTRIES = 14,
19506 	P4_EVENT_SSE_INPUT_ASSIST = 15,
19507 	P4_EVENT_PACKED_SP_UOP = 16,
19508 	P4_EVENT_PACKED_DP_UOP = 17,
19509 	P4_EVENT_SCALAR_SP_UOP = 18,
19510 	P4_EVENT_SCALAR_DP_UOP = 19,
19511 	P4_EVENT_64BIT_MMX_UOP = 20,
19512 	P4_EVENT_128BIT_MMX_UOP = 21,
19513 	P4_EVENT_X87_FP_UOP = 22,
19514 	P4_EVENT_TC_MISC = 23,
19515 	P4_EVENT_GLOBAL_POWER_EVENTS = 24,
19516 	P4_EVENT_TC_MS_XFER = 25,
19517 	P4_EVENT_UOP_QUEUE_WRITES = 26,
19518 	P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE = 27,
19519 	P4_EVENT_RETIRED_BRANCH_TYPE = 28,
19520 	P4_EVENT_RESOURCE_STALL = 29,
19521 	P4_EVENT_WC_BUFFER = 30,
19522 	P4_EVENT_B2B_CYCLES = 31,
19523 	P4_EVENT_BNR = 32,
19524 	P4_EVENT_SNOOP = 33,
19525 	P4_EVENT_RESPONSE = 34,
19526 	P4_EVENT_FRONT_END_EVENT = 35,
19527 	P4_EVENT_EXECUTION_EVENT = 36,
19528 	P4_EVENT_REPLAY_EVENT = 37,
19529 	P4_EVENT_INSTR_RETIRED = 38,
19530 	P4_EVENT_UOPS_RETIRED = 39,
19531 	P4_EVENT_UOP_TYPE = 40,
19532 	P4_EVENT_BRANCH_RETIRED = 41,
19533 	P4_EVENT_MISPRED_BRANCH_RETIRED = 42,
19534 	P4_EVENT_X87_ASSIST = 43,
19535 	P4_EVENT_MACHINE_CLEAR = 44,
19536 	P4_EVENT_INSTR_COMPLETED = 45,
19537 };
19538 
19539 enum P4_EVENT_OPCODES {
19540 	P4_EVENT_TC_DELIVER_MODE_OPCODE = 257,
19541 	P4_EVENT_BPU_FETCH_REQUEST_OPCODE = 768,
19542 	P4_EVENT_ITLB_REFERENCE_OPCODE = 6147,
19543 	P4_EVENT_MEMORY_CANCEL_OPCODE = 517,
19544 	P4_EVENT_MEMORY_COMPLETE_OPCODE = 2050,
19545 	P4_EVENT_LOAD_PORT_REPLAY_OPCODE = 1026,
19546 	P4_EVENT_STORE_PORT_REPLAY_OPCODE = 1282,
19547 	P4_EVENT_MOB_LOAD_REPLAY_OPCODE = 770,
19548 	P4_EVENT_PAGE_WALK_TYPE_OPCODE = 260,
19549 	P4_EVENT_BSQ_CACHE_REFERENCE_OPCODE = 3079,
19550 	P4_EVENT_IOQ_ALLOCATION_OPCODE = 774,
19551 	P4_EVENT_IOQ_ACTIVE_ENTRIES_OPCODE = 6662,
19552 	P4_EVENT_FSB_DATA_ACTIVITY_OPCODE = 5894,
19553 	P4_EVENT_BSQ_ALLOCATION_OPCODE = 1287,
19554 	P4_EVENT_BSQ_ACTIVE_ENTRIES_OPCODE = 1543,
19555 	P4_EVENT_SSE_INPUT_ASSIST_OPCODE = 13313,
19556 	P4_EVENT_PACKED_SP_UOP_OPCODE = 2049,
19557 	P4_EVENT_PACKED_DP_UOP_OPCODE = 3073,
19558 	P4_EVENT_SCALAR_SP_UOP_OPCODE = 2561,
19559 	P4_EVENT_SCALAR_DP_UOP_OPCODE = 3585,
19560 	P4_EVENT_64BIT_MMX_UOP_OPCODE = 513,
19561 	P4_EVENT_128BIT_MMX_UOP_OPCODE = 6657,
19562 	P4_EVENT_X87_FP_UOP_OPCODE = 1025,
19563 	P4_EVENT_TC_MISC_OPCODE = 1537,
19564 	P4_EVENT_GLOBAL_POWER_EVENTS_OPCODE = 4870,
19565 	P4_EVENT_TC_MS_XFER_OPCODE = 1280,
19566 	P4_EVENT_UOP_QUEUE_WRITES_OPCODE = 2304,
19567 	P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE_OPCODE = 1282,
19568 	P4_EVENT_RETIRED_BRANCH_TYPE_OPCODE = 1026,
19569 	P4_EVENT_RESOURCE_STALL_OPCODE = 257,
19570 	P4_EVENT_WC_BUFFER_OPCODE = 1285,
19571 	P4_EVENT_B2B_CYCLES_OPCODE = 5635,
19572 	P4_EVENT_BNR_OPCODE = 2051,
19573 	P4_EVENT_SNOOP_OPCODE = 1539,
19574 	P4_EVENT_RESPONSE_OPCODE = 1027,
19575 	P4_EVENT_FRONT_END_EVENT_OPCODE = 2053,
19576 	P4_EVENT_EXECUTION_EVENT_OPCODE = 3077,
19577 	P4_EVENT_REPLAY_EVENT_OPCODE = 2309,
19578 	P4_EVENT_INSTR_RETIRED_OPCODE = 516,
19579 	P4_EVENT_UOPS_RETIRED_OPCODE = 260,
19580 	P4_EVENT_UOP_TYPE_OPCODE = 514,
19581 	P4_EVENT_BRANCH_RETIRED_OPCODE = 1541,
19582 	P4_EVENT_MISPRED_BRANCH_RETIRED_OPCODE = 772,
19583 	P4_EVENT_X87_ASSIST_OPCODE = 773,
19584 	P4_EVENT_MACHINE_CLEAR_OPCODE = 517,
19585 	P4_EVENT_INSTR_COMPLETED_OPCODE = 1796,
19586 };
19587 
19588 enum P4_ESCR_EMASKS {
19589 	P4_EVENT_TC_DELIVER_MODE__DD = 512,
19590 	P4_EVENT_TC_DELIVER_MODE__DB = 1024,
19591 	P4_EVENT_TC_DELIVER_MODE__DI = 2048,
19592 	P4_EVENT_TC_DELIVER_MODE__BD = 4096,
19593 	P4_EVENT_TC_DELIVER_MODE__BB = 8192,
19594 	P4_EVENT_TC_DELIVER_MODE__BI = 16384,
19595 	P4_EVENT_TC_DELIVER_MODE__ID = 32768,
19596 	P4_EVENT_BPU_FETCH_REQUEST__TCMISS = 512,
19597 	P4_EVENT_ITLB_REFERENCE__HIT = 512,
19598 	P4_EVENT_ITLB_REFERENCE__MISS = 1024,
19599 	P4_EVENT_ITLB_REFERENCE__HIT_UK = 2048,
19600 	P4_EVENT_MEMORY_CANCEL__ST_RB_FULL = 2048,
19601 	P4_EVENT_MEMORY_CANCEL__64K_CONF = 4096,
19602 	P4_EVENT_MEMORY_COMPLETE__LSC = 512,
19603 	P4_EVENT_MEMORY_COMPLETE__SSC = 1024,
19604 	P4_EVENT_LOAD_PORT_REPLAY__SPLIT_LD = 1024,
19605 	P4_EVENT_STORE_PORT_REPLAY__SPLIT_ST = 1024,
19606 	P4_EVENT_MOB_LOAD_REPLAY__NO_STA = 1024,
19607 	P4_EVENT_MOB_LOAD_REPLAY__NO_STD = 4096,
19608 	P4_EVENT_MOB_LOAD_REPLAY__PARTIAL_DATA = 8192,
19609 	P4_EVENT_MOB_LOAD_REPLAY__UNALGN_ADDR = 16384,
19610 	P4_EVENT_PAGE_WALK_TYPE__DTMISS = 512,
19611 	P4_EVENT_PAGE_WALK_TYPE__ITMISS = 1024,
19612 	P4_EVENT_BSQ_CACHE_REFERENCE__RD_2ndL_HITS = 512,
19613 	P4_EVENT_BSQ_CACHE_REFERENCE__RD_2ndL_HITE = 1024,
19614 	P4_EVENT_BSQ_CACHE_REFERENCE__RD_2ndL_HITM = 2048,
19615 	P4_EVENT_BSQ_CACHE_REFERENCE__RD_3rdL_HITS = 4096,
19616 	P4_EVENT_BSQ_CACHE_REFERENCE__RD_3rdL_HITE = 8192,
19617 	P4_EVENT_BSQ_CACHE_REFERENCE__RD_3rdL_HITM = 16384,
19618 	P4_EVENT_BSQ_CACHE_REFERENCE__RD_2ndL_MISS = 131072,
19619 	P4_EVENT_BSQ_CACHE_REFERENCE__RD_3rdL_MISS = 262144,
19620 	P4_EVENT_BSQ_CACHE_REFERENCE__WR_2ndL_MISS = 524288,
19621 	P4_EVENT_IOQ_ALLOCATION__DEFAULT = 512,
19622 	P4_EVENT_IOQ_ALLOCATION__ALL_READ = 16384,
19623 	P4_EVENT_IOQ_ALLOCATION__ALL_WRITE = 32768,
19624 	P4_EVENT_IOQ_ALLOCATION__MEM_UC = 65536,
19625 	P4_EVENT_IOQ_ALLOCATION__MEM_WC = 131072,
19626 	P4_EVENT_IOQ_ALLOCATION__MEM_WT = 262144,
19627 	P4_EVENT_IOQ_ALLOCATION__MEM_WP = 524288,
19628 	P4_EVENT_IOQ_ALLOCATION__MEM_WB = 1048576,
19629 	P4_EVENT_IOQ_ALLOCATION__OWN = 4194304,
19630 	P4_EVENT_IOQ_ALLOCATION__OTHER = 8388608,
19631 	P4_EVENT_IOQ_ALLOCATION__PREFETCH = 16777216,
19632 	P4_EVENT_IOQ_ACTIVE_ENTRIES__DEFAULT = 512,
19633 	P4_EVENT_IOQ_ACTIVE_ENTRIES__ALL_READ = 16384,
19634 	P4_EVENT_IOQ_ACTIVE_ENTRIES__ALL_WRITE = 32768,
19635 	P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_UC = 65536,
19636 	P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_WC = 131072,
19637 	P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_WT = 262144,
19638 	P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_WP = 524288,
19639 	P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_WB = 1048576,
19640 	P4_EVENT_IOQ_ACTIVE_ENTRIES__OWN = 4194304,
19641 	P4_EVENT_IOQ_ACTIVE_ENTRIES__OTHER = 8388608,
19642 	P4_EVENT_IOQ_ACTIVE_ENTRIES__PREFETCH = 16777216,
19643 	P4_EVENT_FSB_DATA_ACTIVITY__DRDY_DRV = 512,
19644 	P4_EVENT_FSB_DATA_ACTIVITY__DRDY_OWN = 1024,
19645 	P4_EVENT_FSB_DATA_ACTIVITY__DRDY_OTHER = 2048,
19646 	P4_EVENT_FSB_DATA_ACTIVITY__DBSY_DRV = 4096,
19647 	P4_EVENT_FSB_DATA_ACTIVITY__DBSY_OWN = 8192,
19648 	P4_EVENT_FSB_DATA_ACTIVITY__DBSY_OTHER = 16384,
19649 	P4_EVENT_BSQ_ALLOCATION__REQ_TYPE0 = 512,
19650 	P4_EVENT_BSQ_ALLOCATION__REQ_TYPE1 = 1024,
19651 	P4_EVENT_BSQ_ALLOCATION__REQ_LEN0 = 2048,
19652 	P4_EVENT_BSQ_ALLOCATION__REQ_LEN1 = 4096,
19653 	P4_EVENT_BSQ_ALLOCATION__REQ_IO_TYPE = 16384,
19654 	P4_EVENT_BSQ_ALLOCATION__REQ_LOCK_TYPE = 32768,
19655 	P4_EVENT_BSQ_ALLOCATION__REQ_CACHE_TYPE = 65536,
19656 	P4_EVENT_BSQ_ALLOCATION__REQ_SPLIT_TYPE = 131072,
19657 	P4_EVENT_BSQ_ALLOCATION__REQ_DEM_TYPE = 262144,
19658 	P4_EVENT_BSQ_ALLOCATION__REQ_ORD_TYPE = 524288,
19659 	P4_EVENT_BSQ_ALLOCATION__MEM_TYPE0 = 1048576,
19660 	P4_EVENT_BSQ_ALLOCATION__MEM_TYPE1 = 2097152,
19661 	P4_EVENT_BSQ_ALLOCATION__MEM_TYPE2 = 4194304,
19662 	P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_TYPE0 = 512,
19663 	P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_TYPE1 = 1024,
19664 	P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_LEN0 = 2048,
19665 	P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_LEN1 = 4096,
19666 	P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_IO_TYPE = 16384,
19667 	P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_LOCK_TYPE = 32768,
19668 	P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_CACHE_TYPE = 65536,
19669 	P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_SPLIT_TYPE = 131072,
19670 	P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_DEM_TYPE = 262144,
19671 	P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_ORD_TYPE = 524288,
19672 	P4_EVENT_BSQ_ACTIVE_ENTRIES__MEM_TYPE0 = 1048576,
19673 	P4_EVENT_BSQ_ACTIVE_ENTRIES__MEM_TYPE1 = 2097152,
19674 	P4_EVENT_BSQ_ACTIVE_ENTRIES__MEM_TYPE2 = 4194304,
19675 	P4_EVENT_SSE_INPUT_ASSIST__ALL = 16777216,
19676 	P4_EVENT_PACKED_SP_UOP__ALL = 16777216,
19677 	P4_EVENT_PACKED_DP_UOP__ALL = 16777216,
19678 	P4_EVENT_SCALAR_SP_UOP__ALL = 16777216,
19679 	P4_EVENT_SCALAR_DP_UOP__ALL = 16777216,
19680 	P4_EVENT_64BIT_MMX_UOP__ALL = 16777216,
19681 	P4_EVENT_128BIT_MMX_UOP__ALL = 16777216,
19682 	P4_EVENT_X87_FP_UOP__ALL = 16777216,
19683 	P4_EVENT_TC_MISC__FLUSH = 8192,
19684 	P4_EVENT_GLOBAL_POWER_EVENTS__RUNNING = 512,
19685 	P4_EVENT_TC_MS_XFER__CISC = 512,
19686 	P4_EVENT_UOP_QUEUE_WRITES__FROM_TC_BUILD = 512,
19687 	P4_EVENT_UOP_QUEUE_WRITES__FROM_TC_DELIVER = 1024,
19688 	P4_EVENT_UOP_QUEUE_WRITES__FROM_ROM = 2048,
19689 	P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE__CONDITIONAL = 1024,
19690 	P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE__CALL = 2048,
19691 	P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE__RETURN = 4096,
19692 	P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE__INDIRECT = 8192,
19693 	P4_EVENT_RETIRED_BRANCH_TYPE__CONDITIONAL = 1024,
19694 	P4_EVENT_RETIRED_BRANCH_TYPE__CALL = 2048,
19695 	P4_EVENT_RETIRED_BRANCH_TYPE__RETURN = 4096,
19696 	P4_EVENT_RETIRED_BRANCH_TYPE__INDIRECT = 8192,
19697 	P4_EVENT_RESOURCE_STALL__SBFULL = 16384,
19698 	P4_EVENT_WC_BUFFER__WCB_EVICTS = 512,
19699 	P4_EVENT_WC_BUFFER__WCB_FULL_EVICTS = 1024,
19700 	P4_EVENT_FRONT_END_EVENT__NBOGUS = 512,
19701 	P4_EVENT_FRONT_END_EVENT__BOGUS = 1024,
19702 	P4_EVENT_EXECUTION_EVENT__NBOGUS0 = 512,
19703 	P4_EVENT_EXECUTION_EVENT__NBOGUS1 = 1024,
19704 	P4_EVENT_EXECUTION_EVENT__NBOGUS2 = 2048,
19705 	P4_EVENT_EXECUTION_EVENT__NBOGUS3 = 4096,
19706 	P4_EVENT_EXECUTION_EVENT__BOGUS0 = 8192,
19707 	P4_EVENT_EXECUTION_EVENT__BOGUS1 = 16384,
19708 	P4_EVENT_EXECUTION_EVENT__BOGUS2 = 32768,
19709 	P4_EVENT_EXECUTION_EVENT__BOGUS3 = 65536,
19710 	P4_EVENT_REPLAY_EVENT__NBOGUS = 512,
19711 	P4_EVENT_REPLAY_EVENT__BOGUS = 1024,
19712 	P4_EVENT_INSTR_RETIRED__NBOGUSNTAG = 512,
19713 	P4_EVENT_INSTR_RETIRED__NBOGUSTAG = 1024,
19714 	P4_EVENT_INSTR_RETIRED__BOGUSNTAG = 2048,
19715 	P4_EVENT_INSTR_RETIRED__BOGUSTAG = 4096,
19716 	P4_EVENT_UOPS_RETIRED__NBOGUS = 512,
19717 	P4_EVENT_UOPS_RETIRED__BOGUS = 1024,
19718 	P4_EVENT_UOP_TYPE__TAGLOADS = 1024,
19719 	P4_EVENT_UOP_TYPE__TAGSTORES = 2048,
19720 	P4_EVENT_BRANCH_RETIRED__MMNP = 512,
19721 	P4_EVENT_BRANCH_RETIRED__MMNM = 1024,
19722 	P4_EVENT_BRANCH_RETIRED__MMTP = 2048,
19723 	P4_EVENT_BRANCH_RETIRED__MMTM = 4096,
19724 	P4_EVENT_MISPRED_BRANCH_RETIRED__NBOGUS = 512,
19725 	P4_EVENT_X87_ASSIST__FPSU = 512,
19726 	P4_EVENT_X87_ASSIST__FPSO = 1024,
19727 	P4_EVENT_X87_ASSIST__POAO = 2048,
19728 	P4_EVENT_X87_ASSIST__POAU = 4096,
19729 	P4_EVENT_X87_ASSIST__PREA = 8192,
19730 	P4_EVENT_MACHINE_CLEAR__CLEAR = 512,
19731 	P4_EVENT_MACHINE_CLEAR__MOCLEAR = 1024,
19732 	P4_EVENT_MACHINE_CLEAR__SMCLEAR = 2048,
19733 	P4_EVENT_INSTR_COMPLETED__NBOGUS = 512,
19734 	P4_EVENT_INSTR_COMPLETED__BOGUS = 1024,
19735 };
19736 
19737 enum P4_PEBS_METRIC {
19738 	P4_PEBS_METRIC__none = 0,
19739 	P4_PEBS_METRIC__1stl_cache_load_miss_retired = 1,
19740 	P4_PEBS_METRIC__2ndl_cache_load_miss_retired = 2,
19741 	P4_PEBS_METRIC__dtlb_load_miss_retired = 3,
19742 	P4_PEBS_METRIC__dtlb_store_miss_retired = 4,
19743 	P4_PEBS_METRIC__dtlb_all_miss_retired = 5,
19744 	P4_PEBS_METRIC__tagged_mispred_branch = 6,
19745 	P4_PEBS_METRIC__mob_load_replay_retired = 7,
19746 	P4_PEBS_METRIC__split_load_retired = 8,
19747 	P4_PEBS_METRIC__split_store_retired = 9,
19748 	P4_PEBS_METRIC__max = 10,
19749 };
19750 
19751 struct p4_event_bind {
19752 	unsigned int opcode;
19753 	unsigned int escr_msr[2];
19754 	unsigned int escr_emask;
19755 	unsigned int shared;
19756 	char cntr[6];
19757 };
19758 
19759 struct p4_pebs_bind {
19760 	unsigned int metric_pebs;
19761 	unsigned int metric_vert;
19762 };
19763 
19764 struct p4_event_alias {
19765 	u64 original;
19766 	u64 alternative;
19767 };
19768 
19769 enum cpuid_regs_idx {
19770 	CPUID_EAX = 0,
19771 	CPUID_EBX = 1,
19772 	CPUID_ECX = 2,
19773 	CPUID_EDX = 3,
19774 };
19775 
19776 struct dev_ext_attribute {
19777 	struct device_attribute attr;
19778 	void *var;
19779 };
19780 
19781 enum pt_capabilities {
19782 	PT_CAP_max_subleaf = 0,
19783 	PT_CAP_cr3_filtering = 1,
19784 	PT_CAP_psb_cyc = 2,
19785 	PT_CAP_ip_filtering = 3,
19786 	PT_CAP_mtc = 4,
19787 	PT_CAP_ptwrite = 5,
19788 	PT_CAP_power_event_trace = 6,
19789 	PT_CAP_topa_output = 7,
19790 	PT_CAP_topa_multiple_entries = 8,
19791 	PT_CAP_single_range_output = 9,
19792 	PT_CAP_output_subsys = 10,
19793 	PT_CAP_payloads_lip = 11,
19794 	PT_CAP_num_address_ranges = 12,
19795 	PT_CAP_mtc_periods = 13,
19796 	PT_CAP_cycle_thresholds = 14,
19797 	PT_CAP_psb_periods = 15,
19798 };
19799 
19800 enum perf_addr_filter_action_t {
19801 	PERF_ADDR_FILTER_ACTION_STOP = 0,
19802 	PERF_ADDR_FILTER_ACTION_START = 1,
19803 	PERF_ADDR_FILTER_ACTION_FILTER = 2,
19804 };
19805 
19806 struct perf_addr_filter {
19807 	struct list_head entry;
19808 	struct path path;
19809 	long unsigned int offset;
19810 	long unsigned int size;
19811 	enum perf_addr_filter_action_t action;
19812 };
19813 
19814 struct topa_entry {
19815 	u64 end: 1;
19816 	u64 rsvd0: 1;
19817 	u64 intr: 1;
19818 	u64 rsvd1: 1;
19819 	u64 stop: 1;
19820 	u64 rsvd2: 1;
19821 	u64 size: 4;
19822 	u64 rsvd3: 2;
19823 	u64 base: 36;
19824 	u64 rsvd4: 16;
19825 };
19826 
19827 struct pt_pmu {
19828 	struct pmu pmu;
19829 	u32 caps[8];
19830 	bool vmx;
19831 	bool branch_en_always_on;
19832 	long unsigned int max_nonturbo_ratio;
19833 	unsigned int tsc_art_num;
19834 	unsigned int tsc_art_den;
19835 };
19836 
19837 struct topa;
19838 
19839 struct pt_buffer {
19840 	struct list_head tables;
19841 	struct topa *first;
19842 	struct topa *last;
19843 	struct topa *cur;
19844 	unsigned int cur_idx;
19845 	size_t output_off;
19846 	long unsigned int nr_pages;
19847 	local_t data_size;
19848 	local64_t head;
19849 	bool snapshot;
19850 	bool single;
19851 	long int stop_pos;
19852 	long int intr_pos;
19853 	struct topa_entry *stop_te;
19854 	struct topa_entry *intr_te;
19855 	void **data_pages;
19856 };
19857 
19858 struct topa {
19859 	struct list_head list;
19860 	u64 offset;
19861 	size_t size;
19862 	int last;
19863 	unsigned int z_count;
19864 };
19865 
19866 struct pt_filter {
19867 	long unsigned int msr_a;
19868 	long unsigned int msr_b;
19869 	long unsigned int config;
19870 };
19871 
19872 struct pt_filters {
19873 	struct pt_filter filter[4];
19874 	unsigned int nr_filters;
19875 };
19876 
19877 struct pt {
19878 	struct perf_output_handle handle;
19879 	struct pt_filters filters;
19880 	int handle_nmi;
19881 	int vmx_on;
19882 	u64 output_base;
19883 	u64 output_mask;
19884 };
19885 
19886 struct pt_cap_desc {
19887 	const char *name;
19888 	u32 leaf;
19889 	u8 reg;
19890 	u32 mask;
19891 };
19892 
19893 struct pt_address_range {
19894 	long unsigned int msr_a;
19895 	long unsigned int msr_b;
19896 	unsigned int reg_off;
19897 };
19898 
19899 struct topa_page {
19900 	struct topa_entry table[507];
19901 	struct topa topa;
19902 };
19903 
19904 struct x86_cpu_id {
19905 	__u16 vendor;
19906 	__u16 family;
19907 	__u16 model;
19908 	__u16 steppings;
19909 	__u16 feature;
19910 	kernel_ulong_t driver_data;
19911 };
19912 
19913 enum hrtimer_mode {
19914 	HRTIMER_MODE_ABS = 0,
19915 	HRTIMER_MODE_REL = 1,
19916 	HRTIMER_MODE_PINNED = 2,
19917 	HRTIMER_MODE_SOFT = 4,
19918 	HRTIMER_MODE_HARD = 8,
19919 	HRTIMER_MODE_ABS_PINNED = 2,
19920 	HRTIMER_MODE_REL_PINNED = 3,
19921 	HRTIMER_MODE_ABS_SOFT = 4,
19922 	HRTIMER_MODE_REL_SOFT = 5,
19923 	HRTIMER_MODE_ABS_PINNED_SOFT = 6,
19924 	HRTIMER_MODE_REL_PINNED_SOFT = 7,
19925 	HRTIMER_MODE_ABS_HARD = 8,
19926 	HRTIMER_MODE_REL_HARD = 9,
19927 	HRTIMER_MODE_ABS_PINNED_HARD = 10,
19928 	HRTIMER_MODE_REL_PINNED_HARD = 11,
19929 };
19930 
19931 struct acpi_device;
19932 
19933 struct pci_sysdata {
19934 	int domain;
19935 	int node;
19936 	struct acpi_device *companion;
19937 	void *iommu;
19938 	void *fwnode;
19939 };
19940 
19941 struct pci_extra_dev {
19942 	struct pci_dev *dev[4];
19943 };
19944 
19945 struct intel_uncore_pmu;
19946 
19947 struct intel_uncore_ops;
19948 
19949 struct uncore_event_desc;
19950 
19951 struct freerunning_counters;
19952 
19953 struct intel_uncore_topology;
19954 
19955 struct intel_uncore_type {
19956 	const char *name;
19957 	int num_counters;
19958 	int num_boxes;
19959 	int perf_ctr_bits;
19960 	int fixed_ctr_bits;
19961 	int num_freerunning_types;
19962 	int type_id;
19963 	unsigned int perf_ctr;
19964 	unsigned int event_ctl;
19965 	unsigned int event_mask;
19966 	unsigned int event_mask_ext;
19967 	unsigned int fixed_ctr;
19968 	unsigned int fixed_ctl;
19969 	unsigned int box_ctl;
19970 	u64 *box_ctls;
19971 	union {
19972 		unsigned int msr_offset;
19973 		unsigned int mmio_offset;
19974 	};
19975 	unsigned int mmio_map_size;
19976 	unsigned int num_shared_regs: 8;
19977 	unsigned int single_fixed: 1;
19978 	unsigned int pair_ctr_ctl: 1;
19979 	union {
19980 		unsigned int *msr_offsets;
19981 		unsigned int *pci_offsets;
19982 		unsigned int *mmio_offsets;
19983 	};
19984 	unsigned int *box_ids;
19985 	struct event_constraint unconstrainted;
19986 	struct event_constraint *constraints;
19987 	struct intel_uncore_pmu *pmus;
19988 	struct intel_uncore_ops *ops;
19989 	struct uncore_event_desc *event_descs;
19990 	struct freerunning_counters *freerunning;
19991 	const struct attribute_group *attr_groups[4];
19992 	const struct attribute_group **attr_update;
19993 	struct pmu *pmu;
19994 	struct intel_uncore_topology *topology;
19995 	int (*get_topology)(struct intel_uncore_type *);
19996 	int (*set_mapping)(struct intel_uncore_type *);
19997 	void (*cleanup_mapping)(struct intel_uncore_type *);
19998 };
19999 
20000 struct intel_uncore_box;
20001 
20002 struct intel_uncore_pmu {
20003 	struct pmu pmu;
20004 	char name[32];
20005 	int pmu_idx;
20006 	int func_id;
20007 	bool registered;
20008 	atomic_t activeboxes;
20009 	struct intel_uncore_type *type;
20010 	struct intel_uncore_box **boxes;
20011 };
20012 
20013 struct intel_uncore_ops {
20014 	void (*init_box)(struct intel_uncore_box *);
20015 	void (*exit_box)(struct intel_uncore_box *);
20016 	void (*disable_box)(struct intel_uncore_box *);
20017 	void (*enable_box)(struct intel_uncore_box *);
20018 	void (*disable_event)(struct intel_uncore_box *, struct perf_event *);
20019 	void (*enable_event)(struct intel_uncore_box *, struct perf_event *);
20020 	u64 (*read_counter)(struct intel_uncore_box *, struct perf_event *);
20021 	int (*hw_config)(struct intel_uncore_box *, struct perf_event *);
20022 	struct event_constraint * (*get_constraint)(struct intel_uncore_box *, struct perf_event *);
20023 	void (*put_constraint)(struct intel_uncore_box *, struct perf_event *);
20024 };
20025 
20026 struct uncore_event_desc {
20027 	struct device_attribute attr;
20028 	const char *config;
20029 };
20030 
20031 struct freerunning_counters {
20032 	unsigned int counter_base;
20033 	unsigned int counter_offset;
20034 	unsigned int box_offset;
20035 	unsigned int num_counters;
20036 	unsigned int bits;
20037 	unsigned int *box_offsets;
20038 };
20039 
20040 struct intel_uncore_topology {
20041 	u64 configuration;
20042 	int segment;
20043 };
20044 
20045 struct intel_uncore_extra_reg {
20046 	raw_spinlock_t lock;
20047 	u64 config;
20048 	u64 config1;
20049 	u64 config2;
20050 	atomic_t ref;
20051 };
20052 
20053 struct intel_uncore_box {
20054 	int dieid;
20055 	int n_active;
20056 	int n_events;
20057 	int cpu;
20058 	long unsigned int flags;
20059 	atomic_t refcnt;
20060 	struct perf_event *events[10];
20061 	struct perf_event *event_list[10];
20062 	struct event_constraint *event_constraint[10];
20063 	long unsigned int active_mask[1];
20064 	u64 tags[10];
20065 	struct pci_dev *pci_dev;
20066 	struct intel_uncore_pmu *pmu;
20067 	u64 hrtimer_duration;
20068 	struct hrtimer hrtimer;
20069 	struct list_head list;
20070 	struct list_head active_list;
20071 	void *io_addr;
20072 	struct intel_uncore_extra_reg shared_regs[0];
20073 };
20074 
20075 struct pci2phy_map {
20076 	struct list_head list;
20077 	int segment;
20078 	int pbus_to_dieid[256];
20079 };
20080 
20081 struct intel_uncore_init_fun {
20082 	void (*cpu_init)();
20083 	int (*pci_init)();
20084 	void (*mmio_init)();
20085 	bool use_discovery;
20086 };
20087 
20088 enum {
20089 	EXTRA_REG_NHMEX_M_FILTER = 0,
20090 	EXTRA_REG_NHMEX_M_DSP = 1,
20091 	EXTRA_REG_NHMEX_M_ISS = 2,
20092 	EXTRA_REG_NHMEX_M_MAP = 3,
20093 	EXTRA_REG_NHMEX_M_MSC_THR = 4,
20094 	EXTRA_REG_NHMEX_M_PGT = 5,
20095 	EXTRA_REG_NHMEX_M_PLD = 6,
20096 	EXTRA_REG_NHMEX_M_ZDP_CTL_FVC = 7,
20097 };
20098 
20099 enum {
20100 	SNB_PCI_UNCORE_IMC = 0,
20101 };
20102 
20103 enum perf_snb_uncore_imc_freerunning_types {
20104 	SNB_PCI_UNCORE_IMC_DATA_READS = 0,
20105 	SNB_PCI_UNCORE_IMC_DATA_WRITES = 1,
20106 	SNB_PCI_UNCORE_IMC_GT_REQUESTS = 2,
20107 	SNB_PCI_UNCORE_IMC_IA_REQUESTS = 3,
20108 	SNB_PCI_UNCORE_IMC_IO_REQUESTS = 4,
20109 	SNB_PCI_UNCORE_IMC_FREERUNNING_TYPE_MAX = 5,
20110 };
20111 
20112 struct imc_uncore_pci_dev {
20113 	__u32 pci_id;
20114 	struct pci_driver *driver;
20115 };
20116 
20117 enum perf_tgl_uncore_imc_freerunning_types {
20118 	TGL_MMIO_UNCORE_IMC_DATA_TOTAL = 0,
20119 	TGL_MMIO_UNCORE_IMC_DATA_READ = 1,
20120 	TGL_MMIO_UNCORE_IMC_DATA_WRITE = 2,
20121 	TGL_MMIO_UNCORE_IMC_FREERUNNING_TYPE_MAX = 3,
20122 };
20123 
20124 enum uncore_access_type {
20125 	UNCORE_ACCESS_MSR = 0,
20126 	UNCORE_ACCESS_MMIO = 1,
20127 	UNCORE_ACCESS_PCI = 2,
20128 	UNCORE_ACCESS_MAX = 3,
20129 };
20130 
20131 enum {
20132 	SNBEP_PCI_QPI_PORT0_FILTER = 0,
20133 	SNBEP_PCI_QPI_PORT1_FILTER = 1,
20134 	BDX_PCI_QPI_PORT2_FILTER = 2,
20135 };
20136 
20137 enum {
20138 	SNBEP_PCI_UNCORE_HA = 0,
20139 	SNBEP_PCI_UNCORE_IMC = 1,
20140 	SNBEP_PCI_UNCORE_QPI = 2,
20141 	SNBEP_PCI_UNCORE_R2PCIE = 3,
20142 	SNBEP_PCI_UNCORE_R3QPI = 4,
20143 };
20144 
20145 enum {
20146 	IVBEP_PCI_UNCORE_HA = 0,
20147 	IVBEP_PCI_UNCORE_IMC = 1,
20148 	IVBEP_PCI_UNCORE_IRP = 2,
20149 	IVBEP_PCI_UNCORE_QPI = 3,
20150 	IVBEP_PCI_UNCORE_R2PCIE = 4,
20151 	IVBEP_PCI_UNCORE_R3QPI = 5,
20152 };
20153 
20154 enum {
20155 	KNL_PCI_UNCORE_MC_UCLK = 0,
20156 	KNL_PCI_UNCORE_MC_DCLK = 1,
20157 	KNL_PCI_UNCORE_EDC_UCLK = 2,
20158 	KNL_PCI_UNCORE_EDC_ECLK = 3,
20159 	KNL_PCI_UNCORE_M2PCIE = 4,
20160 	KNL_PCI_UNCORE_IRP = 5,
20161 };
20162 
20163 enum {
20164 	HSWEP_PCI_UNCORE_HA = 0,
20165 	HSWEP_PCI_UNCORE_IMC = 1,
20166 	HSWEP_PCI_UNCORE_IRP = 2,
20167 	HSWEP_PCI_UNCORE_QPI = 3,
20168 	HSWEP_PCI_UNCORE_R2PCIE = 4,
20169 	HSWEP_PCI_UNCORE_R3QPI = 5,
20170 };
20171 
20172 enum {
20173 	BDX_PCI_UNCORE_HA = 0,
20174 	BDX_PCI_UNCORE_IMC = 1,
20175 	BDX_PCI_UNCORE_IRP = 2,
20176 	BDX_PCI_UNCORE_QPI = 3,
20177 	BDX_PCI_UNCORE_R2PCIE = 4,
20178 	BDX_PCI_UNCORE_R3QPI = 5,
20179 };
20180 
20181 enum perf_uncore_iio_freerunning_type_id {
20182 	SKX_IIO_MSR_IOCLK = 0,
20183 	SKX_IIO_MSR_BW = 1,
20184 	SKX_IIO_MSR_UTIL = 2,
20185 	SKX_IIO_FREERUNNING_TYPE_MAX = 3,
20186 };
20187 
20188 enum {
20189 	SKX_PCI_UNCORE_IMC = 0,
20190 	SKX_PCI_UNCORE_M2M = 1,
20191 	SKX_PCI_UNCORE_UPI = 2,
20192 	SKX_PCI_UNCORE_M2PCIE = 3,
20193 	SKX_PCI_UNCORE_M3UPI = 4,
20194 };
20195 
20196 enum {
20197 	SNR_QAT_PMON_ID = 0,
20198 	SNR_CBDMA_DMI_PMON_ID = 1,
20199 	SNR_NIS_PMON_ID = 2,
20200 	SNR_DLB_PMON_ID = 3,
20201 	SNR_PCIE_GEN3_PMON_ID = 4,
20202 };
20203 
20204 enum perf_uncore_snr_iio_freerunning_type_id {
20205 	SNR_IIO_MSR_IOCLK = 0,
20206 	SNR_IIO_MSR_BW_IN = 1,
20207 	SNR_IIO_FREERUNNING_TYPE_MAX = 2,
20208 };
20209 
20210 enum {
20211 	SNR_PCI_UNCORE_M2M = 0,
20212 	SNR_PCI_UNCORE_PCIE3 = 1,
20213 };
20214 
20215 enum perf_uncore_snr_imc_freerunning_type_id {
20216 	SNR_IMC_DCLK = 0,
20217 	SNR_IMC_DDR = 1,
20218 	SNR_IMC_FREERUNNING_TYPE_MAX = 2,
20219 };
20220 
20221 enum {
20222 	ICX_PCIE1_PMON_ID = 0,
20223 	ICX_PCIE2_PMON_ID = 1,
20224 	ICX_PCIE3_PMON_ID = 2,
20225 	ICX_PCIE4_PMON_ID = 3,
20226 	ICX_PCIE5_PMON_ID = 4,
20227 	ICX_CBDMA_DMI_PMON_ID = 5,
20228 };
20229 
20230 enum perf_uncore_icx_iio_freerunning_type_id {
20231 	ICX_IIO_MSR_IOCLK = 0,
20232 	ICX_IIO_MSR_BW_IN = 1,
20233 	ICX_IIO_FREERUNNING_TYPE_MAX = 2,
20234 };
20235 
20236 enum {
20237 	ICX_PCI_UNCORE_M2M = 0,
20238 	ICX_PCI_UNCORE_UPI = 1,
20239 	ICX_PCI_UNCORE_M3UPI = 2,
20240 };
20241 
20242 enum perf_uncore_icx_imc_freerunning_type_id {
20243 	ICX_IMC_DCLK = 0,
20244 	ICX_IMC_DDR = 1,
20245 	ICX_IMC_DDRT = 2,
20246 	ICX_IMC_FREERUNNING_TYPE_MAX = 3,
20247 };
20248 
20249 enum perf_uncore_spr_iio_freerunning_type_id {
20250 	SPR_IIO_MSR_IOCLK = 0,
20251 	SPR_IIO_MSR_BW_IN = 1,
20252 	SPR_IIO_MSR_BW_OUT = 2,
20253 	SPR_IIO_FREERUNNING_TYPE_MAX = 3,
20254 };
20255 
20256 enum perf_uncore_spr_imc_freerunning_type_id {
20257 	SPR_IMC_DCLK = 0,
20258 	SPR_IMC_PQ_CYCLES = 1,
20259 	SPR_IMC_FREERUNNING_TYPE_MAX = 2,
20260 };
20261 
20262 struct uncore_global_discovery {
20263 	union {
20264 		u64 table1;
20265 		struct {
20266 			u64 type: 8;
20267 			u64 stride: 8;
20268 			u64 max_units: 10;
20269 			u64 __reserved_1: 36;
20270 			u64 access_type: 2;
20271 		};
20272 	};
20273 	u64 ctl;
20274 	union {
20275 		u64 table3;
20276 		struct {
20277 			u64 status_offset: 8;
20278 			u64 num_status: 16;
20279 			u64 __reserved_2: 40;
20280 		};
20281 	};
20282 };
20283 
20284 struct uncore_unit_discovery {
20285 	union {
20286 		u64 table1;
20287 		struct {
20288 			u64 num_regs: 8;
20289 			u64 ctl_offset: 8;
20290 			u64 bit_width: 8;
20291 			u64 ctr_offset: 8;
20292 			u64 status_offset: 8;
20293 			u64 __reserved_1: 22;
20294 			u64 access_type: 2;
20295 		};
20296 	};
20297 	u64 ctl;
20298 	union {
20299 		u64 table3;
20300 		struct {
20301 			u64 box_type: 16;
20302 			u64 box_id: 16;
20303 			u64 __reserved_2: 32;
20304 		};
20305 	};
20306 };
20307 
20308 struct intel_uncore_discovery_type {
20309 	struct rb_node node;
20310 	enum uncore_access_type access_type;
20311 	u64 box_ctrl;
20312 	u64 *box_ctrl_die;
20313 	u16 type;
20314 	u8 num_counters;
20315 	u8 counter_width;
20316 	u8 ctl_offset;
20317 	u8 ctr_offset;
20318 	u16 num_boxes;
20319 	unsigned int *ids;
20320 	unsigned int *box_offset;
20321 };
20322 
20323 enum cc_attr {
20324 	CC_ATTR_MEM_ENCRYPT = 0,
20325 	CC_ATTR_HOST_MEM_ENCRYPT = 1,
20326 	CC_ATTR_GUEST_MEM_ENCRYPT = 2,
20327 	CC_ATTR_GUEST_STATE_ENCRYPT = 3,
20328 	CC_ATTR_GUEST_UNROLL_STRING_IO = 4,
20329 };
20330 
20331 struct trampoline_header {
20332 	u64 start;
20333 	u64 efer;
20334 	u32 cr4;
20335 	u32 flags;
20336 };
20337 
20338 enum show_regs_mode {
20339 	SHOW_REGS_SHORT = 0,
20340 	SHOW_REGS_USER = 1,
20341 	SHOW_REGS_ALL = 2,
20342 };
20343 
20344 struct shared_info;
20345 
20346 struct start_info;
20347 
20348 enum which_selector {
20349 	FS = 0,
20350 	GS = 1,
20351 };
20352 
20353 struct sigcontext_64 {
20354 	__u64 r8;
20355 	__u64 r9;
20356 	__u64 r10;
20357 	__u64 r11;
20358 	__u64 r12;
20359 	__u64 r13;
20360 	__u64 r14;
20361 	__u64 r15;
20362 	__u64 di;
20363 	__u64 si;
20364 	__u64 bp;
20365 	__u64 bx;
20366 	__u64 dx;
20367 	__u64 ax;
20368 	__u64 cx;
20369 	__u64 sp;
20370 	__u64 ip;
20371 	__u64 flags;
20372 	__u16 cs;
20373 	__u16 gs;
20374 	__u16 fs;
20375 	__u16 ss;
20376 	__u64 err;
20377 	__u64 trapno;
20378 	__u64 oldmask;
20379 	__u64 cr2;
20380 	__u64 fpstate;
20381 	__u64 reserved1[8];
20382 };
20383 
20384 typedef sigset_t compat_sigset_t;
20385 
20386 struct sigaltstack {
20387 	void *ss_sp;
20388 	int ss_flags;
20389 	size_t ss_size;
20390 };
20391 
20392 typedef struct sigaltstack stack_t;
20393 
20394 struct siginfo {
20395 	union {
20396 		struct {
20397 			int si_signo;
20398 			int si_errno;
20399 			int si_code;
20400 			union __sifields _sifields;
20401 		};
20402 		int _si_pad[32];
20403 	};
20404 };
20405 
20406 struct ksignal {
20407 	struct k_sigaction ka;
20408 	kernel_siginfo_t info;
20409 	int sig;
20410 };
20411 
20412 struct __large_struct {
20413 	long unsigned int buf[100];
20414 };
20415 
20416 struct ucontext {
20417 	long unsigned int uc_flags;
20418 	struct ucontext *uc_link;
20419 	stack_t uc_stack;
20420 	struct sigcontext_64 uc_mcontext;
20421 	sigset_t uc_sigmask;
20422 };
20423 
20424 struct mce {
20425 	__u64 status;
20426 	__u64 misc;
20427 	__u64 addr;
20428 	__u64 mcgstatus;
20429 	__u64 ip;
20430 	__u64 tsc;
20431 	__u64 time;
20432 	__u8 cpuvendor;
20433 	__u8 inject_flags;
20434 	__u8 severity;
20435 	__u8 pad;
20436 	__u32 cpuid;
20437 	__u8 cs;
20438 	__u8 bank;
20439 	__u8 cpu;
20440 	__u8 finished;
20441 	__u32 extcpu;
20442 	__u32 socketid;
20443 	__u32 apicid;
20444 	__u64 mcgcap;
20445 	__u64 synd;
20446 	__u64 ipid;
20447 	__u64 ppin;
20448 	__u32 microcode;
20449 	__u64 kflags;
20450 };
20451 
20452 typedef long unsigned int mce_banks_t[1];
20453 
20454 struct kernel_vm86_regs {
20455 	struct pt_regs pt;
20456 	short unsigned int es;
20457 	short unsigned int __esh;
20458 	short unsigned int ds;
20459 	short unsigned int __dsh;
20460 	short unsigned int fs;
20461 	short unsigned int __fsh;
20462 	short unsigned int gs;
20463 	short unsigned int __gsh;
20464 };
20465 
20466 struct rt_sigframe {
20467 	char *pretcode;
20468 	struct ucontext uc;
20469 	struct siginfo info;
20470 };
20471 
20472 enum bug_trap_type {
20473 	BUG_TRAP_TYPE_NONE = 0,
20474 	BUG_TRAP_TYPE_WARN = 1,
20475 	BUG_TRAP_TYPE_BUG = 2,
20476 };
20477 
20478 enum insn_mode {
20479 	INSN_MODE_32 = 0,
20480 	INSN_MODE_64 = 1,
20481 	INSN_MODE_KERN = 2,
20482 	INSN_NUM_MODES = 3,
20483 };
20484 
20485 enum die_val {
20486 	DIE_OOPS = 1,
20487 	DIE_INT3 = 2,
20488 	DIE_DEBUG = 3,
20489 	DIE_PANIC = 4,
20490 	DIE_NMI = 5,
20491 	DIE_DIE = 6,
20492 	DIE_KERNELDEBUG = 7,
20493 	DIE_TRAP = 8,
20494 	DIE_GPF = 9,
20495 	DIE_CALL = 10,
20496 	DIE_PAGE_FAULT = 11,
20497 	DIE_NMIUNKNOWN = 12,
20498 };
20499 
20500 struct irqentry_state {
20501 	union {
20502 		bool exit_rcu;
20503 		bool lockdep;
20504 	};
20505 };
20506 
20507 typedef struct irqentry_state irqentry_state_t;
20508 
20509 enum kernel_gp_hint {
20510 	GP_NO_HINT = 0,
20511 	GP_NON_CANONICAL = 1,
20512 	GP_CANONICAL = 2,
20513 };
20514 
20515 struct bad_iret_stack {
20516 	void *error_entry_ret;
20517 	struct pt_regs regs;
20518 };
20519 
20520 enum {
20521 	GATE_INTERRUPT = 14,
20522 	GATE_TRAP = 15,
20523 	GATE_CALL = 12,
20524 	GATE_TASK = 5,
20525 };
20526 
20527 struct idt_data {
20528 	unsigned int vector;
20529 	unsigned int segment;
20530 	struct idt_bits bits;
20531 	const void *addr;
20532 };
20533 
20534 struct mpc_intsrc {
20535 	unsigned char type;
20536 	unsigned char irqtype;
20537 	short unsigned int irqflag;
20538 	unsigned char srcbus;
20539 	unsigned char srcbusirq;
20540 	unsigned char dstapic;
20541 	unsigned char dstirq;
20542 };
20543 
20544 enum irqreturn {
20545 	IRQ_NONE = 0,
20546 	IRQ_HANDLED = 1,
20547 	IRQ_WAKE_THREAD = 2,
20548 };
20549 
20550 typedef enum irqreturn irqreturn_t;
20551 
20552 typedef irqreturn_t (*irq_handler_t)(int, void *);
20553 
20554 struct irqaction {
20555 	irq_handler_t handler;
20556 	void *dev_id;
20557 	void *percpu_dev_id;
20558 	struct irqaction *next;
20559 	irq_handler_t thread_fn;
20560 	struct task_struct *thread;
20561 	struct irqaction *secondary;
20562 	unsigned int irq;
20563 	unsigned int flags;
20564 	long unsigned int thread_flags;
20565 	long unsigned int thread_mask;
20566 	const char *name;
20567 	struct proc_dir_entry *dir;
20568 	long: 64;
20569 	long: 64;
20570 	long: 64;
20571 	long: 64;
20572 };
20573 
20574 struct irq_affinity_notify {
20575 	unsigned int irq;
20576 	struct kref kref;
20577 	struct work_struct work;
20578 	void (*notify)(struct irq_affinity_notify *, const cpumask_t *);
20579 	void (*release)(struct kref *);
20580 };
20581 
20582 enum irqchip_irq_state {
20583 	IRQCHIP_STATE_PENDING = 0,
20584 	IRQCHIP_STATE_ACTIVE = 1,
20585 	IRQCHIP_STATE_MASKED = 2,
20586 	IRQCHIP_STATE_LINE_LEVEL = 3,
20587 };
20588 
20589 struct irq_desc___2;
20590 
20591 typedef void (*irq_flow_handler_t)(struct irq_desc___2 *);
20592 
20593 struct msi_desc;
20594 
20595 struct irq_common_data {
20596 	unsigned int state_use_accessors;
20597 	unsigned int node;
20598 	void *handler_data;
20599 	struct msi_desc *msi_desc;
20600 	cpumask_var_t affinity;
20601 	cpumask_var_t effective_affinity;
20602 };
20603 
20604 struct irq_chip;
20605 
20606 struct irq_data {
20607 	u32 mask;
20608 	unsigned int irq;
20609 	long unsigned int hwirq;
20610 	struct irq_common_data *common;
20611 	struct irq_chip *chip;
20612 	struct irq_domain *domain;
20613 	struct irq_data *parent_data;
20614 	void *chip_data;
20615 };
20616 
20617 struct irq_desc___2 {
20618 	struct irq_common_data irq_common_data;
20619 	struct irq_data irq_data;
20620 	unsigned int *kstat_irqs;
20621 	irq_flow_handler_t handle_irq;
20622 	struct irqaction *action;
20623 	unsigned int status_use_accessors;
20624 	unsigned int core_internal_state__do_not_mess_with_it;
20625 	unsigned int depth;
20626 	unsigned int wake_depth;
20627 	unsigned int tot_count;
20628 	unsigned int irq_count;
20629 	long unsigned int last_unhandled;
20630 	unsigned int irqs_unhandled;
20631 	atomic_t threads_handled;
20632 	int threads_handled_last;
20633 	raw_spinlock_t lock;
20634 	struct cpumask *percpu_enabled;
20635 	const struct cpumask *percpu_affinity;
20636 	const struct cpumask *affinity_hint;
20637 	struct irq_affinity_notify *affinity_notify;
20638 	cpumask_var_t pending_mask;
20639 	long unsigned int threads_oneshot;
20640 	atomic_t threads_active;
20641 	wait_queue_head_t wait_for_threads;
20642 	struct proc_dir_entry *dir;
20643 	struct callback_head rcu;
20644 	struct kobject kobj;
20645 	struct mutex request_mutex;
20646 	int parent_irq;
20647 	struct module *owner;
20648 	const char *name;
20649 	long: 64;
20650 	long: 64;
20651 	long: 64;
20652 	long: 64;
20653 	long: 64;
20654 	long: 64;
20655 	long: 64;
20656 };
20657 
20658 struct msi_msg;
20659 
20660 struct irq_chip {
20661 	struct device *parent_device;
20662 	const char *name;
20663 	unsigned int (*irq_startup)(struct irq_data *);
20664 	void (*irq_shutdown)(struct irq_data *);
20665 	void (*irq_enable)(struct irq_data *);
20666 	void (*irq_disable)(struct irq_data *);
20667 	void (*irq_ack)(struct irq_data *);
20668 	void (*irq_mask)(struct irq_data *);
20669 	void (*irq_mask_ack)(struct irq_data *);
20670 	void (*irq_unmask)(struct irq_data *);
20671 	void (*irq_eoi)(struct irq_data *);
20672 	int (*irq_set_affinity)(struct irq_data *, const struct cpumask *, bool);
20673 	int (*irq_retrigger)(struct irq_data *);
20674 	int (*irq_set_type)(struct irq_data *, unsigned int);
20675 	int (*irq_set_wake)(struct irq_data *, unsigned int);
20676 	void (*irq_bus_lock)(struct irq_data *);
20677 	void (*irq_bus_sync_unlock)(struct irq_data *);
20678 	void (*irq_suspend)(struct irq_data *);
20679 	void (*irq_resume)(struct irq_data *);
20680 	void (*irq_pm_shutdown)(struct irq_data *);
20681 	void (*irq_calc_mask)(struct irq_data *);
20682 	void (*irq_print_chip)(struct irq_data *, struct seq_file *);
20683 	int (*irq_request_resources)(struct irq_data *);
20684 	void (*irq_release_resources)(struct irq_data *);
20685 	void (*irq_compose_msi_msg)(struct irq_data *, struct msi_msg *);
20686 	void (*irq_write_msi_msg)(struct irq_data *, struct msi_msg *);
20687 	int (*irq_get_irqchip_state)(struct irq_data *, enum irqchip_irq_state, bool *);
20688 	int (*irq_set_irqchip_state)(struct irq_data *, enum irqchip_irq_state, bool);
20689 	int (*irq_set_vcpu_affinity)(struct irq_data *, void *);
20690 	void (*ipi_send_single)(struct irq_data *, unsigned int);
20691 	void (*ipi_send_mask)(struct irq_data *, const struct cpumask *);
20692 	int (*irq_nmi_setup)(struct irq_data *);
20693 	void (*irq_nmi_teardown)(struct irq_data *);
20694 	long unsigned int flags;
20695 };
20696 
20697 typedef struct irq_desc___2 *vector_irq_t___2[256];
20698 
20699 struct trace_event_raw_x86_irq_vector {
20700 	struct trace_entry ent;
20701 	int vector;
20702 	char __data[0];
20703 };
20704 
20705 struct trace_event_raw_vector_config {
20706 	struct trace_entry ent;
20707 	unsigned int irq;
20708 	unsigned int vector;
20709 	unsigned int cpu;
20710 	unsigned int apicdest;
20711 	char __data[0];
20712 };
20713 
20714 struct trace_event_raw_vector_mod {
20715 	struct trace_entry ent;
20716 	unsigned int irq;
20717 	unsigned int vector;
20718 	unsigned int cpu;
20719 	unsigned int prev_vector;
20720 	unsigned int prev_cpu;
20721 	char __data[0];
20722 };
20723 
20724 struct trace_event_raw_vector_reserve {
20725 	struct trace_entry ent;
20726 	unsigned int irq;
20727 	int ret;
20728 	char __data[0];
20729 };
20730 
20731 struct trace_event_raw_vector_alloc {
20732 	struct trace_entry ent;
20733 	unsigned int irq;
20734 	unsigned int vector;
20735 	bool reserved;
20736 	int ret;
20737 	char __data[0];
20738 };
20739 
20740 struct trace_event_raw_vector_alloc_managed {
20741 	struct trace_entry ent;
20742 	unsigned int irq;
20743 	unsigned int vector;
20744 	int ret;
20745 	char __data[0];
20746 };
20747 
20748 struct trace_event_raw_vector_activate {
20749 	struct trace_entry ent;
20750 	unsigned int irq;
20751 	bool is_managed;
20752 	bool can_reserve;
20753 	bool reserve;
20754 	char __data[0];
20755 };
20756 
20757 struct trace_event_raw_vector_teardown {
20758 	struct trace_entry ent;
20759 	unsigned int irq;
20760 	bool is_managed;
20761 	bool has_reserved;
20762 	char __data[0];
20763 };
20764 
20765 struct trace_event_raw_vector_setup {
20766 	struct trace_entry ent;
20767 	unsigned int irq;
20768 	bool is_legacy;
20769 	int ret;
20770 	char __data[0];
20771 };
20772 
20773 struct trace_event_raw_vector_free_moved {
20774 	struct trace_entry ent;
20775 	unsigned int irq;
20776 	unsigned int cpu;
20777 	unsigned int vector;
20778 	bool is_managed;
20779 	char __data[0];
20780 };
20781 
20782 struct trace_event_data_offsets_x86_irq_vector {};
20783 
20784 struct trace_event_data_offsets_vector_config {};
20785 
20786 struct trace_event_data_offsets_vector_mod {};
20787 
20788 struct trace_event_data_offsets_vector_reserve {};
20789 
20790 struct trace_event_data_offsets_vector_alloc {};
20791 
20792 struct trace_event_data_offsets_vector_alloc_managed {};
20793 
20794 struct trace_event_data_offsets_vector_activate {};
20795 
20796 struct trace_event_data_offsets_vector_teardown {};
20797 
20798 struct trace_event_data_offsets_vector_setup {};
20799 
20800 struct trace_event_data_offsets_vector_free_moved {};
20801 
20802 typedef void (*btf_trace_local_timer_entry)(void *, int);
20803 
20804 typedef void (*btf_trace_local_timer_exit)(void *, int);
20805 
20806 typedef void (*btf_trace_spurious_apic_entry)(void *, int);
20807 
20808 typedef void (*btf_trace_spurious_apic_exit)(void *, int);
20809 
20810 typedef void (*btf_trace_error_apic_entry)(void *, int);
20811 
20812 typedef void (*btf_trace_error_apic_exit)(void *, int);
20813 
20814 typedef void (*btf_trace_x86_platform_ipi_entry)(void *, int);
20815 
20816 typedef void (*btf_trace_x86_platform_ipi_exit)(void *, int);
20817 
20818 typedef void (*btf_trace_irq_work_entry)(void *, int);
20819 
20820 typedef void (*btf_trace_irq_work_exit)(void *, int);
20821 
20822 typedef void (*btf_trace_reschedule_entry)(void *, int);
20823 
20824 typedef void (*btf_trace_reschedule_exit)(void *, int);
20825 
20826 typedef void (*btf_trace_call_function_entry)(void *, int);
20827 
20828 typedef void (*btf_trace_call_function_exit)(void *, int);
20829 
20830 typedef void (*btf_trace_call_function_single_entry)(void *, int);
20831 
20832 typedef void (*btf_trace_call_function_single_exit)(void *, int);
20833 
20834 typedef void (*btf_trace_threshold_apic_entry)(void *, int);
20835 
20836 typedef void (*btf_trace_threshold_apic_exit)(void *, int);
20837 
20838 typedef void (*btf_trace_deferred_error_apic_entry)(void *, int);
20839 
20840 typedef void (*btf_trace_deferred_error_apic_exit)(void *, int);
20841 
20842 typedef void (*btf_trace_thermal_apic_entry)(void *, int);
20843 
20844 typedef void (*btf_trace_thermal_apic_exit)(void *, int);
20845 
20846 typedef void (*btf_trace_vector_config)(void *, unsigned int, unsigned int, unsigned int, unsigned int);
20847 
20848 typedef void (*btf_trace_vector_update)(void *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int);
20849 
20850 typedef void (*btf_trace_vector_clear)(void *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int);
20851 
20852 typedef void (*btf_trace_vector_reserve_managed)(void *, unsigned int, int);
20853 
20854 typedef void (*btf_trace_vector_reserve)(void *, unsigned int, int);
20855 
20856 typedef void (*btf_trace_vector_alloc)(void *, unsigned int, unsigned int, bool, int);
20857 
20858 typedef void (*btf_trace_vector_alloc_managed)(void *, unsigned int, unsigned int, int);
20859 
20860 typedef void (*btf_trace_vector_activate)(void *, unsigned int, bool, bool, bool);
20861 
20862 typedef void (*btf_trace_vector_deactivate)(void *, unsigned int, bool, bool, bool);
20863 
20864 typedef void (*btf_trace_vector_teardown)(void *, unsigned int, bool, bool);
20865 
20866 typedef void (*btf_trace_vector_setup)(void *, unsigned int, bool, int);
20867 
20868 typedef void (*btf_trace_vector_free_moved)(void *, unsigned int, unsigned int, unsigned int, bool);
20869 
20870 struct irq_stack {
20871 	char stack[16384];
20872 };
20873 
20874 struct estack_pages {
20875 	u32 offs;
20876 	u16 size;
20877 	u16 type;
20878 };
20879 
20880 enum clocksource_ids {
20881 	CSID_GENERIC = 0,
20882 	CSID_ARM_ARCH_COUNTER = 1,
20883 	CSID_MAX = 2,
20884 };
20885 
20886 struct clocksource {
20887 	u64 (*read)(struct clocksource *);
20888 	u64 mask;
20889 	u32 mult;
20890 	u32 shift;
20891 	u64 max_idle_ns;
20892 	u32 maxadj;
20893 	u32 uncertainty_margin;
20894 	u64 max_cycles;
20895 	const char *name;
20896 	struct list_head list;
20897 	int rating;
20898 	enum clocksource_ids id;
20899 	enum vdso_clock_mode vdso_clock_mode;
20900 	long unsigned int flags;
20901 	int (*enable)(struct clocksource *);
20902 	void (*disable)(struct clocksource *);
20903 	void (*suspend)(struct clocksource *);
20904 	void (*resume)(struct clocksource *);
20905 	void (*mark_unstable)(struct clocksource *);
20906 	void (*tick_stable)(struct clocksource *);
20907 	struct list_head wd_list;
20908 	u64 cs_last;
20909 	u64 wd_last;
20910 	struct module *owner;
20911 };
20912 
20913 enum clock_event_state {
20914 	CLOCK_EVT_STATE_DETACHED = 0,
20915 	CLOCK_EVT_STATE_SHUTDOWN = 1,
20916 	CLOCK_EVT_STATE_PERIODIC = 2,
20917 	CLOCK_EVT_STATE_ONESHOT = 3,
20918 	CLOCK_EVT_STATE_ONESHOT_STOPPED = 4,
20919 };
20920 
20921 struct clock_event_device {
20922 	void (*event_handler)(struct clock_event_device *);
20923 	int (*set_next_event)(long unsigned int, struct clock_event_device *);
20924 	int (*set_next_ktime)(ktime_t, struct clock_event_device *);
20925 	ktime_t next_event;
20926 	u64 max_delta_ns;
20927 	u64 min_delta_ns;
20928 	u32 mult;
20929 	u32 shift;
20930 	enum clock_event_state state_use_accessors;
20931 	unsigned int features;
20932 	long unsigned int retries;
20933 	int (*set_state_periodic)(struct clock_event_device *);
20934 	int (*set_state_oneshot)(struct clock_event_device *);
20935 	int (*set_state_oneshot_stopped)(struct clock_event_device *);
20936 	int (*set_state_shutdown)(struct clock_event_device *);
20937 	int (*tick_resume)(struct clock_event_device *);
20938 	void (*broadcast)(const struct cpumask *);
20939 	void (*suspend)(struct clock_event_device *);
20940 	void (*resume)(struct clock_event_device *);
20941 	long unsigned int min_delta_ticks;
20942 	long unsigned int max_delta_ticks;
20943 	const char *name;
20944 	int rating;
20945 	int irq;
20946 	int bound_on;
20947 	const struct cpumask *cpumask;
20948 	struct list_head list;
20949 	struct module *owner;
20950 	long: 64;
20951 	long: 64;
20952 	long: 64;
20953 	long: 64;
20954 	long: 64;
20955 	long: 64;
20956 };
20957 
20958 struct irq_affinity_desc {
20959 	struct cpumask mask;
20960 	unsigned int is_managed: 1;
20961 };
20962 
20963 struct x86_msi_addr_lo {
20964 	union {
20965 		struct {
20966 			u32 reserved_0: 2;
20967 			u32 dest_mode_logical: 1;
20968 			u32 redirect_hint: 1;
20969 			u32 reserved_1: 1;
20970 			u32 virt_destid_8_14: 7;
20971 			u32 destid_0_7: 8;
20972 			u32 base_address: 12;
20973 		};
20974 		struct {
20975 			u32 dmar_reserved_0: 2;
20976 			u32 dmar_index_15: 1;
20977 			u32 dmar_subhandle_valid: 1;
20978 			u32 dmar_format: 1;
20979 			u32 dmar_index_0_14: 15;
20980 			u32 dmar_base_address: 12;
20981 		};
20982 	};
20983 };
20984 
20985 typedef struct x86_msi_addr_lo arch_msi_msg_addr_lo_t;
20986 
20987 struct x86_msi_addr_hi {
20988 	u32 reserved: 8;
20989 	u32 destid_8_31: 24;
20990 };
20991 
20992 typedef struct x86_msi_addr_hi arch_msi_msg_addr_hi_t;
20993 
20994 struct x86_msi_data {
20995 	u32 vector: 8;
20996 	u32 delivery_mode: 3;
20997 	u32 dest_mode_logical: 1;
20998 	u32 reserved: 2;
20999 	u32 active_low: 1;
21000 	u32 is_level: 1;
21001 	u32 dmar_subhandle;
21002 } __attribute__((packed));
21003 
21004 typedef struct x86_msi_data arch_msi_msg_data_t;
21005 
21006 struct msi_msg {
21007 	union {
21008 		u32 address_lo;
21009 		arch_msi_msg_addr_lo_t arch_addr_lo;
21010 	};
21011 	union {
21012 		u32 address_hi;
21013 		arch_msi_msg_addr_hi_t arch_addr_hi;
21014 	};
21015 	union {
21016 		u32 data;
21017 		arch_msi_msg_data_t arch_data;
21018 	};
21019 };
21020 
21021 struct pci_msi_desc {
21022 	union {
21023 		u32 msi_mask;
21024 		u32 msix_ctrl;
21025 	};
21026 	struct {
21027 		u8 is_msix: 1;
21028 		u8 multiple: 3;
21029 		u8 multi_cap: 3;
21030 		u8 can_mask: 1;
21031 		u8 is_64: 1;
21032 		u8 is_virtual: 1;
21033 		unsigned int default_irq;
21034 	} msi_attrib;
21035 	union {
21036 		u8 mask_pos;
21037 		void *mask_base;
21038 	};
21039 };
21040 
21041 struct msi_desc {
21042 	unsigned int irq;
21043 	unsigned int nvec_used;
21044 	struct device *dev;
21045 	struct msi_msg msg;
21046 	struct irq_affinity_desc *affinity;
21047 	struct device_attribute *sysfs_attrs;
21048 	void (*write_msi_msg)(struct msi_desc *, void *);
21049 	void *write_msi_msg_data;
21050 	u16 msi_index;
21051 	struct pci_msi_desc pci;
21052 };
21053 
21054 struct irq_chip_regs {
21055 	long unsigned int enable;
21056 	long unsigned int disable;
21057 	long unsigned int mask;
21058 	long unsigned int ack;
21059 	long unsigned int eoi;
21060 	long unsigned int type;
21061 	long unsigned int polarity;
21062 };
21063 
21064 struct irq_chip_type {
21065 	struct irq_chip chip;
21066 	struct irq_chip_regs regs;
21067 	irq_flow_handler_t handler;
21068 	u32 type;
21069 	u32 mask_cache_priv;
21070 	u32 *mask_cache;
21071 };
21072 
21073 struct irq_chip_generic {
21074 	raw_spinlock_t lock;
21075 	void *reg_base;
21076 	u32 (*reg_readl)(void *);
21077 	void (*reg_writel)(u32, void *);
21078 	void (*suspend)(struct irq_chip_generic *);
21079 	void (*resume)(struct irq_chip_generic *);
21080 	unsigned int irq_base;
21081 	unsigned int irq_cnt;
21082 	u32 mask_cache;
21083 	u32 type_cache;
21084 	u32 polarity_cache;
21085 	u32 wake_enabled;
21086 	u32 wake_active;
21087 	unsigned int num_ct;
21088 	void *private;
21089 	long unsigned int installed;
21090 	long unsigned int unused;
21091 	struct irq_domain *domain;
21092 	struct list_head list;
21093 	struct irq_chip_type chip_types[0];
21094 };
21095 
21096 enum irq_gc_flags {
21097 	IRQ_GC_INIT_MASK_CACHE = 1,
21098 	IRQ_GC_INIT_NESTED_LOCK = 2,
21099 	IRQ_GC_MASK_CACHE_PER_TYPE = 4,
21100 	IRQ_GC_NO_MASK = 8,
21101 	IRQ_GC_BE_IO = 16,
21102 };
21103 
21104 struct irq_domain_chip_generic {
21105 	unsigned int irqs_per_chip;
21106 	unsigned int num_chips;
21107 	unsigned int irq_flags_to_clear;
21108 	unsigned int irq_flags_to_set;
21109 	enum irq_gc_flags gc_flags;
21110 	struct irq_chip_generic *gc[0];
21111 };
21112 
21113 struct legacy_pic {
21114 	int nr_legacy_irqs;
21115 	struct irq_chip *chip;
21116 	void (*mask)(unsigned int);
21117 	void (*unmask)(unsigned int);
21118 	void (*mask_all)();
21119 	void (*restore_mask)();
21120 	void (*init)(int);
21121 	int (*probe)();
21122 	int (*irq_pending)(unsigned int);
21123 	void (*make_irq)(unsigned int);
21124 };
21125 
21126 enum lockdown_reason {
21127 	LOCKDOWN_NONE = 0,
21128 	LOCKDOWN_MODULE_SIGNATURE = 1,
21129 	LOCKDOWN_DEV_MEM = 2,
21130 	LOCKDOWN_EFI_TEST = 3,
21131 	LOCKDOWN_KEXEC = 4,
21132 	LOCKDOWN_HIBERNATION = 5,
21133 	LOCKDOWN_PCI_ACCESS = 6,
21134 	LOCKDOWN_IOPORT = 7,
21135 	LOCKDOWN_MSR = 8,
21136 	LOCKDOWN_ACPI_TABLES = 9,
21137 	LOCKDOWN_PCMCIA_CIS = 10,
21138 	LOCKDOWN_TIOCSSERIAL = 11,
21139 	LOCKDOWN_MODULE_PARAMETERS = 12,
21140 	LOCKDOWN_MMIOTRACE = 13,
21141 	LOCKDOWN_DEBUGFS = 14,
21142 	LOCKDOWN_XMON_WR = 15,
21143 	LOCKDOWN_BPF_WRITE_USER = 16,
21144 	LOCKDOWN_INTEGRITY_MAX = 17,
21145 	LOCKDOWN_KCORE = 18,
21146 	LOCKDOWN_KPROBES = 19,
21147 	LOCKDOWN_BPF_READ_KERNEL = 20,
21148 	LOCKDOWN_PERF = 21,
21149 	LOCKDOWN_TRACEFS = 22,
21150 	LOCKDOWN_XMON_RW = 23,
21151 	LOCKDOWN_XFRM_SECRET = 24,
21152 	LOCKDOWN_CONFIDENTIALITY_MAX = 25,
21153 };
21154 
21155 enum lockdep_ok {
21156 	LOCKDEP_STILL_OK = 0,
21157 	LOCKDEP_NOW_UNRELIABLE = 1,
21158 };
21159 
21160 typedef long unsigned int uintptr_t;
21161 
21162 struct machine_ops {
21163 	void (*restart)(char *);
21164 	void (*halt)();
21165 	void (*power_off)();
21166 	void (*shutdown)();
21167 	void (*crash_shutdown)(struct pt_regs *);
21168 	void (*emergency_restart)();
21169 };
21170 
21171 struct trace_event_raw_nmi_handler {
21172 	struct trace_entry ent;
21173 	void *handler;
21174 	s64 delta_ns;
21175 	int handled;
21176 	char __data[0];
21177 };
21178 
21179 struct trace_event_data_offsets_nmi_handler {};
21180 
21181 typedef void (*btf_trace_nmi_handler)(void *, void *, s64, int);
21182 
21183 struct nmi_desc {
21184 	raw_spinlock_t lock;
21185 	struct list_head head;
21186 };
21187 
21188 struct nmi_stats {
21189 	unsigned int normal;
21190 	unsigned int unknown;
21191 	unsigned int external;
21192 	unsigned int swallow;
21193 };
21194 
21195 enum nmi_states {
21196 	NMI_NOT_RUNNING = 0,
21197 	NMI_EXECUTING = 1,
21198 	NMI_LATCHED = 2,
21199 };
21200 
21201 struct user_desc {
21202 	unsigned int entry_number;
21203 	unsigned int base_addr;
21204 	unsigned int limit;
21205 	unsigned int seg_32bit: 1;
21206 	unsigned int contents: 2;
21207 	unsigned int read_exec_only: 1;
21208 	unsigned int limit_in_pages: 1;
21209 	unsigned int seg_not_present: 1;
21210 	unsigned int useable: 1;
21211 	unsigned int lm: 1;
21212 };
21213 
21214 enum {
21215 	DESC_TSS = 9,
21216 	DESC_LDT = 2,
21217 	DESCTYPE_S = 16,
21218 };
21219 
21220 struct ldttss_desc {
21221 	u16 limit0;
21222 	u16 base0;
21223 	u16 base1: 8;
21224 	u16 type: 5;
21225 	u16 dpl: 2;
21226 	u16 p: 1;
21227 	u16 limit1: 4;
21228 	u16 zero0: 3;
21229 	u16 g: 1;
21230 	u16 base2: 8;
21231 	u32 base3;
21232 	u32 zero1;
21233 };
21234 
21235 typedef struct ldttss_desc ldt_desc;
21236 
21237 struct mmu_gather_batch {
21238 	struct mmu_gather_batch *next;
21239 	unsigned int nr;
21240 	unsigned int max;
21241 	struct page *pages[0];
21242 };
21243 
21244 struct mmu_gather {
21245 	struct mm_struct *mm;
21246 	long unsigned int start;
21247 	long unsigned int end;
21248 	unsigned int fullmm: 1;
21249 	unsigned int need_flush_all: 1;
21250 	unsigned int freed_tables: 1;
21251 	unsigned int cleared_ptes: 1;
21252 	unsigned int cleared_pmds: 1;
21253 	unsigned int cleared_puds: 1;
21254 	unsigned int cleared_p4ds: 1;
21255 	unsigned int vma_exec: 1;
21256 	unsigned int vma_huge: 1;
21257 	unsigned int batch_count;
21258 	struct mmu_gather_batch *active;
21259 	struct mmu_gather_batch local;
21260 	struct page *__pages[8];
21261 };
21262 
21263 struct hvm_start_info {
21264 	uint32_t magic;
21265 	uint32_t version;
21266 	uint32_t flags;
21267 	uint32_t nr_modules;
21268 	uint64_t modlist_paddr;
21269 	uint64_t cmdline_paddr;
21270 	uint64_t rsdp_paddr;
21271 	uint64_t memmap_paddr;
21272 	uint32_t memmap_entries;
21273 	uint32_t reserved;
21274 };
21275 
21276 struct balloon_stats {
21277 	long unsigned int current_pages;
21278 	long unsigned int target_pages;
21279 	long unsigned int target_unpopulated;
21280 	long unsigned int balloon_low;
21281 	long unsigned int balloon_high;
21282 	long unsigned int total_pages;
21283 	long unsigned int schedule_delay;
21284 	long unsigned int max_schedule_delay;
21285 	long unsigned int retry_count;
21286 	long unsigned int max_retry_count;
21287 };
21288 
21289 struct setup_data {
21290 	__u64 next;
21291 	__u32 type;
21292 	__u32 len;
21293 	__u8 data[0];
21294 };
21295 
21296 struct setup_indirect {
21297 	__u32 type;
21298 	__u32 reserved;
21299 	__u64 len;
21300 	__u64 addr;
21301 };
21302 
21303 struct atomic_notifier_head {
21304 	spinlock_t lock;
21305 	struct notifier_block *head;
21306 };
21307 
21308 struct io_tlb_slot;
21309 
21310 struct io_tlb_mem {
21311 	phys_addr_t start;
21312 	phys_addr_t end;
21313 	void *vaddr;
21314 	long unsigned int nslabs;
21315 	long unsigned int used;
21316 	unsigned int index;
21317 	spinlock_t lock;
21318 	struct dentry *debugfs;
21319 	bool late_alloc;
21320 	bool force_bounce;
21321 	bool for_alloc;
21322 	struct io_tlb_slot *slots;
21323 };
21324 
21325 struct scatterlist {
21326 	long unsigned int page_link;
21327 	unsigned int offset;
21328 	unsigned int length;
21329 	dma_addr_t dma_address;
21330 	unsigned int dma_length;
21331 };
21332 
21333 struct sg_table {
21334 	struct scatterlist *sgl;
21335 	unsigned int nents;
21336 	unsigned int orig_nents;
21337 };
21338 
21339 enum swiotlb_force {
21340 	SWIOTLB_NORMAL = 0,
21341 	SWIOTLB_FORCE = 1,
21342 	SWIOTLB_NO_FORCE = 2,
21343 };
21344 
21345 struct io_tlb_slot {
21346 	phys_addr_t orig_addr;
21347 	size_t alloc_size;
21348 	unsigned int list;
21349 };
21350 
21351 enum efi_secureboot_mode {
21352 	efi_secureboot_mode_unset = 0,
21353 	efi_secureboot_mode_unknown = 1,
21354 	efi_secureboot_mode_disabled = 2,
21355 	efi_secureboot_mode_enabled = 3,
21356 };
21357 
21358 struct hstate {
21359 	struct mutex resize_lock;
21360 	int next_nid_to_alloc;
21361 	int next_nid_to_free;
21362 	unsigned int order;
21363 	unsigned int demote_order;
21364 	long unsigned int mask;
21365 	long unsigned int max_huge_pages;
21366 	long unsigned int nr_huge_pages;
21367 	long unsigned int free_huge_pages;
21368 	long unsigned int resv_huge_pages;
21369 	long unsigned int surplus_huge_pages;
21370 	long unsigned int nr_overcommit_huge_pages;
21371 	struct list_head hugepage_activelist;
21372 	struct list_head hugepage_freelists[64];
21373 	unsigned int max_huge_pages_node[64];
21374 	unsigned int nr_huge_pages_node[64];
21375 	unsigned int free_huge_pages_node[64];
21376 	unsigned int surplus_huge_pages_node[64];
21377 	unsigned int nr_free_vmemmap_pages;
21378 	struct cftype cgroup_files_dfl[8];
21379 	struct cftype cgroup_files_legacy[10];
21380 	char name[32];
21381 };
21382 
21383 enum xen_domain_type {
21384 	XEN_NATIVE = 0,
21385 	XEN_PV_DOMAIN = 1,
21386 	XEN_HVM_DOMAIN = 2,
21387 };
21388 
21389 struct pci_raw_ops {
21390 	int (*read)(unsigned int, unsigned int, unsigned int, int, int, u32 *);
21391 	int (*write)(unsigned int, unsigned int, unsigned int, int, int, u32);
21392 };
21393 
21394 struct clock_event_device___2;
21395 
21396 struct syscore_ops {
21397 	struct list_head node;
21398 	int (*suspend)();
21399 	void (*resume)();
21400 	void (*shutdown)();
21401 };
21402 
21403 enum jump_label_type {
21404 	JUMP_LABEL_NOP = 0,
21405 	JUMP_LABEL_JMP = 1,
21406 };
21407 
21408 union text_poke_insn {
21409 	u8 text[5];
21410 	struct {
21411 		u8 opcode;
21412 		s32 disp;
21413 	} __attribute__((packed));
21414 };
21415 
21416 struct jump_label_patch {
21417 	const void *code;
21418 	int size;
21419 };
21420 
21421 enum {
21422 	JL_STATE_START = 0,
21423 	JL_STATE_NO_UPDATE = 1,
21424 	JL_STATE_UPDATE = 2,
21425 };
21426 
21427 enum align_flags {
21428 	ALIGN_VA_32 = 1,
21429 	ALIGN_VA_64 = 2,
21430 };
21431 
21432 struct vm_unmapped_area_info {
21433 	long unsigned int flags;
21434 	long unsigned int length;
21435 	long unsigned int low_limit;
21436 	long unsigned int high_limit;
21437 	long unsigned int align_mask;
21438 	long unsigned int align_offset;
21439 };
21440 
21441 enum {
21442 	MEMREMAP_WB = 1,
21443 	MEMREMAP_WT = 2,
21444 	MEMREMAP_WC = 4,
21445 	MEMREMAP_ENC = 8,
21446 	MEMREMAP_DEC = 16,
21447 };
21448 
21449 enum {
21450 	IORES_DESC_NONE = 0,
21451 	IORES_DESC_CRASH_KERNEL = 1,
21452 	IORES_DESC_ACPI_TABLES = 2,
21453 	IORES_DESC_ACPI_NV_STORAGE = 3,
21454 	IORES_DESC_PERSISTENT_MEMORY = 4,
21455 	IORES_DESC_PERSISTENT_MEMORY_LEGACY = 5,
21456 	IORES_DESC_DEVICE_PRIVATE_MEMORY = 6,
21457 	IORES_DESC_RESERVED = 7,
21458 	IORES_DESC_SOFT_RESERVED = 8,
21459 };
21460 
21461 struct change_member {
21462 	struct e820_entry *entry;
21463 	long long unsigned int addr;
21464 };
21465 
21466 struct iommu_group {};
21467 
21468 struct iommu_table_entry {
21469 	initcall_t detect;
21470 	initcall_t depend;
21471 	void (*early_init)();
21472 	void (*late_init)();
21473 	int flags;
21474 };
21475 
21476 enum dmi_field {
21477 	DMI_NONE = 0,
21478 	DMI_BIOS_VENDOR = 1,
21479 	DMI_BIOS_VERSION = 2,
21480 	DMI_BIOS_DATE = 3,
21481 	DMI_BIOS_RELEASE = 4,
21482 	DMI_EC_FIRMWARE_RELEASE = 5,
21483 	DMI_SYS_VENDOR = 6,
21484 	DMI_PRODUCT_NAME = 7,
21485 	DMI_PRODUCT_VERSION = 8,
21486 	DMI_PRODUCT_SERIAL = 9,
21487 	DMI_PRODUCT_UUID = 10,
21488 	DMI_PRODUCT_SKU = 11,
21489 	DMI_PRODUCT_FAMILY = 12,
21490 	DMI_BOARD_VENDOR = 13,
21491 	DMI_BOARD_NAME = 14,
21492 	DMI_BOARD_VERSION = 15,
21493 	DMI_BOARD_SERIAL = 16,
21494 	DMI_BOARD_ASSET_TAG = 17,
21495 	DMI_CHASSIS_VENDOR = 18,
21496 	DMI_CHASSIS_TYPE = 19,
21497 	DMI_CHASSIS_VERSION = 20,
21498 	DMI_CHASSIS_SERIAL = 21,
21499 	DMI_CHASSIS_ASSET_TAG = 22,
21500 	DMI_STRING_MAX = 23,
21501 	DMI_OEM_STRING = 24,
21502 };
21503 
21504 enum {
21505 	NONE_FORCE_HPET_RESUME = 0,
21506 	OLD_ICH_FORCE_HPET_RESUME = 1,
21507 	ICH_FORCE_HPET_RESUME = 2,
21508 	VT8237_FORCE_HPET_RESUME = 3,
21509 	NVIDIA_FORCE_HPET_RESUME = 4,
21510 	ATI_FORCE_HPET_RESUME = 5,
21511 };
21512 
21513 enum meminit_context {
21514 	MEMINIT_EARLY = 0,
21515 	MEMINIT_HOTPLUG = 1,
21516 };
21517 
21518 struct cpu {
21519 	int node_id;
21520 	int hotpluggable;
21521 	struct device dev;
21522 };
21523 
21524 struct x86_cpu {
21525 	struct cpu cpu;
21526 };
21527 
21528 typedef int (*cmp_func_t)(const void *, const void *);
21529 
21530 struct die_args {
21531 	struct pt_regs *regs;
21532 	const char *str;
21533 	long int err;
21534 	int trapnr;
21535 	int signr;
21536 };
21537 
21538 struct smp_alt_module {
21539 	struct module *mod;
21540 	char *name;
21541 	const s32 *locks;
21542 	const s32 *locks_end;
21543 	u8 *text;
21544 	u8 *text_end;
21545 	struct list_head next;
21546 };
21547 
21548 typedef struct {
21549 	struct mm_struct *mm;
21550 } temp_mm_state_t;
21551 
21552 struct text_poke_loc {
21553 	s32 rel_addr;
21554 	s32 disp;
21555 	u8 len;
21556 	u8 opcode;
21557 	const u8 text[5];
21558 	u8 old;
21559 };
21560 
21561 struct bp_patching_desc {
21562 	struct text_poke_loc *vec;
21563 	int nr_entries;
21564 	atomic_t refs;
21565 };
21566 
21567 struct paravirt_patch_site;
21568 
21569 enum {
21570 	HW_BREAKPOINT_LEN_1 = 1,
21571 	HW_BREAKPOINT_LEN_2 = 2,
21572 	HW_BREAKPOINT_LEN_3 = 3,
21573 	HW_BREAKPOINT_LEN_4 = 4,
21574 	HW_BREAKPOINT_LEN_5 = 5,
21575 	HW_BREAKPOINT_LEN_6 = 6,
21576 	HW_BREAKPOINT_LEN_7 = 7,
21577 	HW_BREAKPOINT_LEN_8 = 8,
21578 };
21579 
21580 enum {
21581 	HW_BREAKPOINT_EMPTY = 0,
21582 	HW_BREAKPOINT_R = 1,
21583 	HW_BREAKPOINT_W = 2,
21584 	HW_BREAKPOINT_RW = 3,
21585 	HW_BREAKPOINT_X = 4,
21586 	HW_BREAKPOINT_INVALID = 7,
21587 };
21588 
21589 typedef unsigned int u_int;
21590 
21591 enum lockdep_lock_type {
21592 	LD_LOCK_NORMAL = 0,
21593 	LD_LOCK_PERCPU = 1,
21594 	LD_LOCK_MAX = 2,
21595 };
21596 
21597 typedef long long unsigned int cycles_t;
21598 
21599 struct system_counterval_t {
21600 	u64 cycles;
21601 	struct clocksource *cs;
21602 };
21603 
21604 enum {
21605 	WORK_STRUCT_PENDING_BIT = 0,
21606 	WORK_STRUCT_INACTIVE_BIT = 1,
21607 	WORK_STRUCT_PWQ_BIT = 2,
21608 	WORK_STRUCT_LINKED_BIT = 3,
21609 	WORK_STRUCT_COLOR_SHIFT = 4,
21610 	WORK_STRUCT_COLOR_BITS = 4,
21611 	WORK_STRUCT_PENDING = 1,
21612 	WORK_STRUCT_INACTIVE = 2,
21613 	WORK_STRUCT_PWQ = 4,
21614 	WORK_STRUCT_LINKED = 8,
21615 	WORK_STRUCT_STATIC = 0,
21616 	WORK_NR_COLORS = 16,
21617 	WORK_CPU_UNBOUND = 128,
21618 	WORK_STRUCT_FLAG_BITS = 8,
21619 	WORK_OFFQ_FLAG_BASE = 4,
21620 	__WORK_OFFQ_CANCELING = 4,
21621 	WORK_OFFQ_CANCELING = 16,
21622 	WORK_OFFQ_FLAG_BITS = 1,
21623 	WORK_OFFQ_POOL_SHIFT = 5,
21624 	WORK_OFFQ_LEFT = 59,
21625 	WORK_OFFQ_POOL_BITS = 31,
21626 	WORK_OFFQ_POOL_NONE = 2147483647,
21627 	WORK_STRUCT_FLAG_MASK = 255,
21628 	WORK_STRUCT_WQ_DATA_MASK = 4294967040,
21629 	WORK_STRUCT_NO_POOL = 4294967264,
21630 	WORK_BUSY_PENDING = 1,
21631 	WORK_BUSY_RUNNING = 2,
21632 	WORKER_DESC_LEN = 24,
21633 };
21634 
21635 struct plist_head {
21636 	struct list_head node_list;
21637 };
21638 
21639 typedef struct {
21640 	seqcount_t seqcount;
21641 } seqcount_latch_t;
21642 
21643 enum pm_qos_type {
21644 	PM_QOS_UNITIALIZED = 0,
21645 	PM_QOS_MAX = 1,
21646 	PM_QOS_MIN = 2,
21647 };
21648 
21649 struct pm_qos_constraints {
21650 	struct plist_head list;
21651 	s32 target_value;
21652 	s32 default_value;
21653 	s32 no_constraint_value;
21654 	enum pm_qos_type type;
21655 	struct blocking_notifier_head *notifiers;
21656 };
21657 
21658 struct freq_constraints {
21659 	struct pm_qos_constraints min_freq;
21660 	struct blocking_notifier_head min_freq_notifiers;
21661 	struct pm_qos_constraints max_freq;
21662 	struct blocking_notifier_head max_freq_notifiers;
21663 };
21664 
21665 struct pm_qos_flags {
21666 	struct list_head list;
21667 	s32 effective_flags;
21668 };
21669 
21670 struct dev_pm_qos_request;
21671 
21672 struct dev_pm_qos {
21673 	struct pm_qos_constraints resume_latency;
21674 	struct pm_qos_constraints latency_tolerance;
21675 	struct freq_constraints freq;
21676 	struct pm_qos_flags flags;
21677 	struct dev_pm_qos_request *resume_latency_req;
21678 	struct dev_pm_qos_request *latency_tolerance_req;
21679 	struct dev_pm_qos_request *flags_req;
21680 };
21681 
21682 struct pm_qos_flags_request {
21683 	struct list_head node;
21684 	s32 flags;
21685 };
21686 
21687 enum freq_qos_req_type {
21688 	FREQ_QOS_MIN = 1,
21689 	FREQ_QOS_MAX = 2,
21690 };
21691 
21692 struct freq_qos_request {
21693 	enum freq_qos_req_type type;
21694 	struct plist_node pnode;
21695 	struct freq_constraints *qos;
21696 };
21697 
21698 enum dev_pm_qos_req_type {
21699 	DEV_PM_QOS_RESUME_LATENCY = 1,
21700 	DEV_PM_QOS_LATENCY_TOLERANCE = 2,
21701 	DEV_PM_QOS_MIN_FREQUENCY = 3,
21702 	DEV_PM_QOS_MAX_FREQUENCY = 4,
21703 	DEV_PM_QOS_FLAGS = 5,
21704 };
21705 
21706 struct dev_pm_qos_request {
21707 	enum dev_pm_qos_req_type type;
21708 	union {
21709 		struct plist_node pnode;
21710 		struct pm_qos_flags_request flr;
21711 		struct freq_qos_request freq;
21712 	} data;
21713 	struct device *dev;
21714 };
21715 
21716 enum cpufreq_table_sorting {
21717 	CPUFREQ_TABLE_UNSORTED = 0,
21718 	CPUFREQ_TABLE_SORTED_ASCENDING = 1,
21719 	CPUFREQ_TABLE_SORTED_DESCENDING = 2,
21720 };
21721 
21722 struct cpufreq_cpuinfo {
21723 	unsigned int max_freq;
21724 	unsigned int min_freq;
21725 	unsigned int transition_latency;
21726 };
21727 
21728 struct clk;
21729 
21730 struct cpufreq_governor;
21731 
21732 struct cpufreq_frequency_table;
21733 
21734 struct cpufreq_stats;
21735 
21736 struct thermal_cooling_device;
21737 
21738 struct cpufreq_policy {
21739 	cpumask_var_t cpus;
21740 	cpumask_var_t related_cpus;
21741 	cpumask_var_t real_cpus;
21742 	unsigned int shared_type;
21743 	unsigned int cpu;
21744 	struct clk *clk;
21745 	struct cpufreq_cpuinfo cpuinfo;
21746 	unsigned int min;
21747 	unsigned int max;
21748 	unsigned int cur;
21749 	unsigned int suspend_freq;
21750 	unsigned int policy;
21751 	unsigned int last_policy;
21752 	struct cpufreq_governor *governor;
21753 	void *governor_data;
21754 	char last_governor[16];
21755 	struct work_struct update;
21756 	struct freq_constraints constraints;
21757 	struct freq_qos_request *min_freq_req;
21758 	struct freq_qos_request *max_freq_req;
21759 	struct cpufreq_frequency_table *freq_table;
21760 	enum cpufreq_table_sorting freq_table_sorted;
21761 	struct list_head policy_list;
21762 	struct kobject kobj;
21763 	struct completion kobj_unregister;
21764 	struct rw_semaphore rwsem;
21765 	bool fast_switch_possible;
21766 	bool fast_switch_enabled;
21767 	bool strict_target;
21768 	bool efficiencies_available;
21769 	unsigned int transition_delay_us;
21770 	bool dvfs_possible_from_any_cpu;
21771 	unsigned int cached_target_freq;
21772 	unsigned int cached_resolved_idx;
21773 	bool transition_ongoing;
21774 	spinlock_t transition_lock;
21775 	wait_queue_head_t transition_wait;
21776 	struct task_struct *transition_task;
21777 	struct cpufreq_stats *stats;
21778 	void *driver_data;
21779 	struct thermal_cooling_device *cdev;
21780 	struct notifier_block nb_min;
21781 	struct notifier_block nb_max;
21782 };
21783 
21784 struct cpufreq_governor {
21785 	char name[16];
21786 	int (*init)(struct cpufreq_policy *);
21787 	void (*exit)(struct cpufreq_policy *);
21788 	int (*start)(struct cpufreq_policy *);
21789 	void (*stop)(struct cpufreq_policy *);
21790 	void (*limits)(struct cpufreq_policy *);
21791 	ssize_t (*show_setspeed)(struct cpufreq_policy *, char *);
21792 	int (*store_setspeed)(struct cpufreq_policy *, unsigned int);
21793 	struct list_head governor_list;
21794 	struct module *owner;
21795 	u8 flags;
21796 };
21797 
21798 struct cpufreq_frequency_table {
21799 	unsigned int flags;
21800 	unsigned int driver_data;
21801 	unsigned int frequency;
21802 };
21803 
21804 struct cpufreq_freqs {
21805 	struct cpufreq_policy *policy;
21806 	unsigned int old;
21807 	unsigned int new;
21808 	u8 flags;
21809 };
21810 
21811 struct freq_attr {
21812 	struct attribute attr;
21813 	ssize_t (*show)(struct cpufreq_policy *, char *);
21814 	ssize_t (*store)(struct cpufreq_policy *, const char *, size_t);
21815 };
21816 
21817 struct cyc2ns {
21818 	struct cyc2ns_data data[2];
21819 	seqcount_latch_t seq;
21820 };
21821 
21822 struct muldiv {
21823 	u32 multiplier;
21824 	u32 divider;
21825 };
21826 
21827 struct freq_desc {
21828 	bool use_msr_plat;
21829 	struct muldiv muldiv[16];
21830 	u32 freqs[16];
21831 	u32 mask;
21832 };
21833 
21834 struct dmi_strmatch {
21835 	unsigned char slot: 7;
21836 	unsigned char exact_match: 1;
21837 	char substr[79];
21838 };
21839 
21840 struct dmi_system_id {
21841 	int (*callback)(const struct dmi_system_id *);
21842 	const char *ident;
21843 	struct dmi_strmatch matches[4];
21844 	void *driver_data;
21845 };
21846 
21847 struct pdev_archdata {};
21848 
21849 struct mfd_cell;
21850 
21851 struct platform_device_id;
21852 
21853 struct platform_device {
21854 	const char *name;
21855 	int id;
21856 	bool id_auto;
21857 	struct device dev;
21858 	u64 platform_dma_mask;
21859 	struct device_dma_parameters dma_parms;
21860 	u32 num_resources;
21861 	struct resource *resource;
21862 	const struct platform_device_id *id_entry;
21863 	char *driver_override;
21864 	struct mfd_cell *mfd_cell;
21865 	struct pdev_archdata archdata;
21866 };
21867 
21868 struct platform_device_id {
21869 	char name[20];
21870 	kernel_ulong_t driver_data;
21871 };
21872 
21873 struct rtc_time {
21874 	int tm_sec;
21875 	int tm_min;
21876 	int tm_hour;
21877 	int tm_mday;
21878 	int tm_mon;
21879 	int tm_year;
21880 	int tm_wday;
21881 	int tm_yday;
21882 	int tm_isdst;
21883 };
21884 
21885 struct pnp_device_id {
21886 	__u8 id[8];
21887 	kernel_ulong_t driver_data;
21888 };
21889 
21890 struct pnp_card_device_id {
21891 	__u8 id[8];
21892 	kernel_ulong_t driver_data;
21893 	struct {
21894 		__u8 id[8];
21895 	} devs[8];
21896 };
21897 
21898 struct pnp_protocol;
21899 
21900 struct pnp_id;
21901 
21902 struct pnp_card {
21903 	struct device dev;
21904 	unsigned char number;
21905 	struct list_head global_list;
21906 	struct list_head protocol_list;
21907 	struct list_head devices;
21908 	struct pnp_protocol *protocol;
21909 	struct pnp_id *id;
21910 	char name[50];
21911 	unsigned char pnpver;
21912 	unsigned char productver;
21913 	unsigned int serial;
21914 	unsigned char checksum;
21915 	struct proc_dir_entry *procdir;
21916 };
21917 
21918 struct pnp_dev;
21919 
21920 struct pnp_protocol {
21921 	struct list_head protocol_list;
21922 	char *name;
21923 	int (*get)(struct pnp_dev *);
21924 	int (*set)(struct pnp_dev *);
21925 	int (*disable)(struct pnp_dev *);
21926 	bool (*can_wakeup)(struct pnp_dev *);
21927 	int (*suspend)(struct pnp_dev *, pm_message_t);
21928 	int (*resume)(struct pnp_dev *);
21929 	unsigned char number;
21930 	struct device dev;
21931 	struct list_head cards;
21932 	struct list_head devices;
21933 };
21934 
21935 struct pnp_id {
21936 	char id[8];
21937 	struct pnp_id *next;
21938 };
21939 
21940 struct pnp_card_driver;
21941 
21942 struct pnp_card_link {
21943 	struct pnp_card *card;
21944 	struct pnp_card_driver *driver;
21945 	void *driver_data;
21946 	pm_message_t pm_state;
21947 };
21948 
21949 struct pnp_driver {
21950 	const char *name;
21951 	const struct pnp_device_id *id_table;
21952 	unsigned int flags;
21953 	int (*probe)(struct pnp_dev *, const struct pnp_device_id *);
21954 	void (*remove)(struct pnp_dev *);
21955 	void (*shutdown)(struct pnp_dev *);
21956 	int (*suspend)(struct pnp_dev *, pm_message_t);
21957 	int (*resume)(struct pnp_dev *);
21958 	struct device_driver driver;
21959 };
21960 
21961 struct pnp_card_driver {
21962 	struct list_head global_list;
21963 	char *name;
21964 	const struct pnp_card_device_id *id_table;
21965 	unsigned int flags;
21966 	int (*probe)(struct pnp_card_link *, const struct pnp_card_device_id *);
21967 	void (*remove)(struct pnp_card_link *);
21968 	int (*suspend)(struct pnp_card_link *, pm_message_t);
21969 	int (*resume)(struct pnp_card_link *);
21970 	struct pnp_driver link;
21971 };
21972 
21973 struct pnp_dev {
21974 	struct device dev;
21975 	u64 dma_mask;
21976 	unsigned int number;
21977 	int status;
21978 	struct list_head global_list;
21979 	struct list_head protocol_list;
21980 	struct list_head card_list;
21981 	struct list_head rdev_list;
21982 	struct pnp_protocol *protocol;
21983 	struct pnp_card *card;
21984 	struct pnp_driver *driver;
21985 	struct pnp_card_link *card_link;
21986 	struct pnp_id *id;
21987 	int active;
21988 	int capabilities;
21989 	unsigned int num_dependent_sets;
21990 	struct list_head resources;
21991 	struct list_head options;
21992 	char name[50];
21993 	int flags;
21994 	struct proc_dir_entry *procent;
21995 	void *data;
21996 };
21997 
21998 enum insn_type {
21999 	CALL = 0,
22000 	NOP = 1,
22001 	JMP = 2,
22002 	RET = 3,
22003 };
22004 
22005 typedef struct ldttss_desc tss_desc;
22006 
22007 enum idle_boot_override {
22008 	IDLE_NO_OVERRIDE = 0,
22009 	IDLE_HALT = 1,
22010 	IDLE_NOMWAIT = 2,
22011 	IDLE_POLL = 3,
22012 };
22013 
22014 enum tick_broadcast_mode {
22015 	TICK_BROADCAST_OFF = 0,
22016 	TICK_BROADCAST_ON = 1,
22017 	TICK_BROADCAST_FORCE = 2,
22018 };
22019 
22020 enum tick_broadcast_state {
22021 	TICK_BROADCAST_EXIT = 0,
22022 	TICK_BROADCAST_ENTER = 1,
22023 };
22024 
22025 struct cpuidle_state_usage {
22026 	long long unsigned int disable;
22027 	long long unsigned int usage;
22028 	u64 time_ns;
22029 	long long unsigned int above;
22030 	long long unsigned int below;
22031 	long long unsigned int rejected;
22032 };
22033 
22034 struct cpuidle_driver_kobj;
22035 
22036 struct cpuidle_state_kobj;
22037 
22038 struct cpuidle_device_kobj;
22039 
22040 struct cpuidle_device {
22041 	unsigned int registered: 1;
22042 	unsigned int enabled: 1;
22043 	unsigned int poll_time_limit: 1;
22044 	unsigned int cpu;
22045 	ktime_t next_hrtimer;
22046 	int last_state_idx;
22047 	u64 last_residency_ns;
22048 	u64 poll_limit_ns;
22049 	u64 forced_idle_latency_limit_ns;
22050 	struct cpuidle_state_usage states_usage[10];
22051 	struct cpuidle_state_kobj *kobjs[10];
22052 	struct cpuidle_driver_kobj *kobj_driver;
22053 	struct cpuidle_device_kobj *kobj_dev;
22054 	struct list_head device_list;
22055 };
22056 
22057 struct inactive_task_frame {
22058 	long unsigned int r15;
22059 	long unsigned int r14;
22060 	long unsigned int r13;
22061 	long unsigned int r12;
22062 	long unsigned int bx;
22063 	long unsigned int bp;
22064 	long unsigned int ret_addr;
22065 };
22066 
22067 struct fork_frame {
22068 	struct inactive_task_frame frame;
22069 	struct pt_regs regs;
22070 };
22071 
22072 struct ssb_state {
22073 	struct ssb_state *shared_state;
22074 	raw_spinlock_t lock;
22075 	unsigned int disable_state;
22076 	long unsigned int local_state;
22077 };
22078 
22079 struct trace_event_raw_x86_fpu {
22080 	struct trace_entry ent;
22081 	struct fpu *fpu;
22082 	bool load_fpu;
22083 	u64 xfeatures;
22084 	u64 xcomp_bv;
22085 	char __data[0];
22086 };
22087 
22088 struct trace_event_data_offsets_x86_fpu {};
22089 
22090 typedef void (*btf_trace_x86_fpu_before_save)(void *, struct fpu *);
22091 
22092 typedef void (*btf_trace_x86_fpu_after_save)(void *, struct fpu *);
22093 
22094 typedef void (*btf_trace_x86_fpu_before_restore)(void *, struct fpu *);
22095 
22096 typedef void (*btf_trace_x86_fpu_after_restore)(void *, struct fpu *);
22097 
22098 typedef void (*btf_trace_x86_fpu_regs_activated)(void *, struct fpu *);
22099 
22100 typedef void (*btf_trace_x86_fpu_regs_deactivated)(void *, struct fpu *);
22101 
22102 typedef void (*btf_trace_x86_fpu_init_state)(void *, struct fpu *);
22103 
22104 typedef void (*btf_trace_x86_fpu_dropped)(void *, struct fpu *);
22105 
22106 typedef void (*btf_trace_x86_fpu_copy_src)(void *, struct fpu *);
22107 
22108 typedef void (*btf_trace_x86_fpu_copy_dst)(void *, struct fpu *);
22109 
22110 typedef void (*btf_trace_x86_fpu_xstate_check_failed)(void *, struct fpu *);
22111 
22112 struct user32_fxsr_struct {
22113 	short unsigned int cwd;
22114 	short unsigned int swd;
22115 	short unsigned int twd;
22116 	short unsigned int fop;
22117 	int fip;
22118 	int fcs;
22119 	int foo;
22120 	int fos;
22121 	int mxcsr;
22122 	int reserved;
22123 	int st_space[32];
22124 	int xmm_space[32];
22125 	int padding[56];
22126 };
22127 
22128 struct membuf {
22129 	void *p;
22130 	size_t left;
22131 };
22132 
22133 struct user_regset;
22134 
22135 typedef int user_regset_active_fn(struct task_struct *, const struct user_regset *);
22136 
22137 typedef int user_regset_get2_fn(struct task_struct *, const struct user_regset *, struct membuf);
22138 
22139 typedef int user_regset_set_fn(struct task_struct *, const struct user_regset *, unsigned int, unsigned int, const void *, const void *);
22140 
22141 typedef int user_regset_writeback_fn(struct task_struct *, const struct user_regset *, int);
22142 
22143 struct user_regset {
22144 	user_regset_get2_fn *regset_get;
22145 	user_regset_set_fn *set;
22146 	user_regset_active_fn *active;
22147 	user_regset_writeback_fn *writeback;
22148 	unsigned int n;
22149 	unsigned int size;
22150 	unsigned int align;
22151 	unsigned int bias;
22152 	unsigned int core_note_type;
22153 };
22154 
22155 enum xstate_copy_mode {
22156 	XSTATE_COPY_FP = 0,
22157 	XSTATE_COPY_FX = 1,
22158 	XSTATE_COPY_XSAVE = 2,
22159 };
22160 
22161 struct _fpx_sw_bytes {
22162 	__u32 magic1;
22163 	__u32 extended_size;
22164 	__u64 xfeatures;
22165 	__u32 xstate_size;
22166 	__u32 padding[7];
22167 };
22168 
22169 struct _fpreg {
22170 	__u16 significand[4];
22171 	__u16 exponent;
22172 };
22173 
22174 struct _fpxreg {
22175 	__u16 significand[4];
22176 	__u16 exponent;
22177 	__u16 padding[3];
22178 };
22179 
22180 struct _xmmreg {
22181 	__u32 element[4];
22182 };
22183 
22184 struct _fpstate_32 {
22185 	__u32 cw;
22186 	__u32 sw;
22187 	__u32 tag;
22188 	__u32 ipoff;
22189 	__u32 cssel;
22190 	__u32 dataoff;
22191 	__u32 datasel;
22192 	struct _fpreg _st[8];
22193 	__u16 status;
22194 	__u16 magic;
22195 	__u32 _fxsr_env[6];
22196 	__u32 mxcsr;
22197 	__u32 reserved;
22198 	struct _fpxreg _fxsr_st[8];
22199 	struct _xmmreg _xmm[8];
22200 	union {
22201 		__u32 padding1[44];
22202 		__u32 padding[44];
22203 	};
22204 	union {
22205 		__u32 padding2[12];
22206 		struct _fpx_sw_bytes sw_reserved;
22207 	};
22208 };
22209 
22210 struct user_i387_ia32_struct {
22211 	u32 cwd;
22212 	u32 swd;
22213 	u32 twd;
22214 	u32 fip;
22215 	u32 fcs;
22216 	u32 foo;
22217 	u32 fos;
22218 	u32 st_space[20];
22219 };
22220 
22221 struct pkru_state {
22222 	u32 pkru;
22223 	u32 pad;
22224 };
22225 
22226 struct fpu_guest {
22227 	u64 xfeatures;
22228 	u64 perm;
22229 	u64 xfd_err;
22230 	unsigned int uabi_size;
22231 	struct fpstate *fpstate;
22232 };
22233 
22234 struct user_regset_view {
22235 	const char *name;
22236 	const struct user_regset *regsets;
22237 	unsigned int n;
22238 	u32 e_flags;
22239 	u16 e_machine;
22240 	u8 ei_osabi;
22241 };
22242 
22243 enum x86_regset {
22244 	REGSET_GENERAL = 0,
22245 	REGSET_FP = 1,
22246 	REGSET_XFP = 2,
22247 	REGSET_IOPERM64 = 2,
22248 	REGSET_XSTATE = 3,
22249 	REGSET_TLS = 4,
22250 	REGSET_IOPERM32 = 5,
22251 };
22252 
22253 struct pt_regs_offset {
22254 	const char *name;
22255 	int offset;
22256 };
22257 
22258 typedef bool (*stack_trace_consume_fn)(void *, long unsigned int);
22259 
22260 struct stack_frame_user {
22261 	const void *next_fp;
22262 	long unsigned int ret_addr;
22263 };
22264 
22265 enum cache_type {
22266 	CACHE_TYPE_NOCACHE = 0,
22267 	CACHE_TYPE_INST = 1,
22268 	CACHE_TYPE_DATA = 2,
22269 	CACHE_TYPE_SEPARATE = 3,
22270 	CACHE_TYPE_UNIFIED = 4,
22271 };
22272 
22273 struct cacheinfo {
22274 	unsigned int id;
22275 	enum cache_type type;
22276 	unsigned int level;
22277 	unsigned int coherency_line_size;
22278 	unsigned int number_of_sets;
22279 	unsigned int ways_of_associativity;
22280 	unsigned int physical_line_partition;
22281 	unsigned int size;
22282 	cpumask_t shared_cpu_map;
22283 	unsigned int attributes;
22284 	void *fw_token;
22285 	bool disable_sysfs;
22286 	void *priv;
22287 };
22288 
22289 struct cpu_cacheinfo {
22290 	struct cacheinfo *info_list;
22291 	unsigned int num_levels;
22292 	unsigned int num_leaves;
22293 	bool cpu_map_populated;
22294 };
22295 
22296 struct amd_nb_bus_dev_range {
22297 	u8 bus;
22298 	u8 dev_base;
22299 	u8 dev_limit;
22300 };
22301 
22302 struct amd_l3_cache {
22303 	unsigned int indices;
22304 	u8 subcaches[4];
22305 };
22306 
22307 struct threshold_block {
22308 	unsigned int block;
22309 	unsigned int bank;
22310 	unsigned int cpu;
22311 	u32 address;
22312 	u16 interrupt_enable;
22313 	bool interrupt_capable;
22314 	u16 threshold_limit;
22315 	struct kobject kobj;
22316 	struct list_head miscj;
22317 };
22318 
22319 struct threshold_bank {
22320 	struct kobject *kobj;
22321 	struct threshold_block *blocks;
22322 	refcount_t cpus;
22323 	unsigned int shared;
22324 };
22325 
22326 struct amd_northbridge {
22327 	struct pci_dev *root;
22328 	struct pci_dev *misc;
22329 	struct pci_dev *link;
22330 	struct amd_l3_cache l3_cache;
22331 	struct threshold_bank *bank4;
22332 };
22333 
22334 struct cpu_dev {
22335 	const char *c_vendor;
22336 	const char *c_ident[2];
22337 	void (*c_early_init)(struct cpuinfo_x86 *);
22338 	void (*c_bsp_init)(struct cpuinfo_x86 *);
22339 	void (*c_init)(struct cpuinfo_x86 *);
22340 	void (*c_identify)(struct cpuinfo_x86 *);
22341 	void (*c_detect_tlb)(struct cpuinfo_x86 *);
22342 	int c_x86_vendor;
22343 };
22344 
22345 enum tsx_ctrl_states {
22346 	TSX_CTRL_ENABLE = 0,
22347 	TSX_CTRL_DISABLE = 1,
22348 	TSX_CTRL_RTM_ALWAYS_ABORT = 2,
22349 	TSX_CTRL_NOT_SUPPORTED = 3,
22350 };
22351 
22352 struct _cache_table {
22353 	unsigned char descriptor;
22354 	char cache_type;
22355 	short int size;
22356 };
22357 
22358 enum _cache_type {
22359 	CTYPE_NULL = 0,
22360 	CTYPE_DATA = 1,
22361 	CTYPE_INST = 2,
22362 	CTYPE_UNIFIED = 3,
22363 };
22364 
22365 union _cpuid4_leaf_eax {
22366 	struct {
22367 		enum _cache_type type: 5;
22368 		unsigned int level: 3;
22369 		unsigned int is_self_initializing: 1;
22370 		unsigned int is_fully_associative: 1;
22371 		unsigned int reserved: 4;
22372 		unsigned int num_threads_sharing: 12;
22373 		unsigned int num_cores_on_die: 6;
22374 	} split;
22375 	u32 full;
22376 };
22377 
22378 union _cpuid4_leaf_ebx {
22379 	struct {
22380 		unsigned int coherency_line_size: 12;
22381 		unsigned int physical_line_partition: 10;
22382 		unsigned int ways_of_associativity: 10;
22383 	} split;
22384 	u32 full;
22385 };
22386 
22387 union _cpuid4_leaf_ecx {
22388 	struct {
22389 		unsigned int number_of_sets: 32;
22390 	} split;
22391 	u32 full;
22392 };
22393 
22394 struct _cpuid4_info_regs {
22395 	union _cpuid4_leaf_eax eax;
22396 	union _cpuid4_leaf_ebx ebx;
22397 	union _cpuid4_leaf_ecx ecx;
22398 	unsigned int id;
22399 	long unsigned int size;
22400 	struct amd_northbridge *nb;
22401 };
22402 
22403 union l1_cache {
22404 	struct {
22405 		unsigned int line_size: 8;
22406 		unsigned int lines_per_tag: 8;
22407 		unsigned int assoc: 8;
22408 		unsigned int size_in_kb: 8;
22409 	};
22410 	unsigned int val;
22411 };
22412 
22413 union l2_cache {
22414 	struct {
22415 		unsigned int line_size: 8;
22416 		unsigned int lines_per_tag: 4;
22417 		unsigned int assoc: 4;
22418 		unsigned int size_in_kb: 16;
22419 	};
22420 	unsigned int val;
22421 };
22422 
22423 union l3_cache {
22424 	struct {
22425 		unsigned int line_size: 8;
22426 		unsigned int lines_per_tag: 4;
22427 		unsigned int assoc: 4;
22428 		unsigned int res: 2;
22429 		unsigned int size_encoded: 14;
22430 	};
22431 	unsigned int val;
22432 };
22433 
22434 struct cpuid_bit {
22435 	u16 feature;
22436 	u8 reg;
22437 	u8 bit;
22438 	u32 level;
22439 	u32 sub_leaf;
22440 };
22441 
22442 enum cpuid_leafs {
22443 	CPUID_1_EDX = 0,
22444 	CPUID_8000_0001_EDX = 1,
22445 	CPUID_8086_0001_EDX = 2,
22446 	CPUID_LNX_1 = 3,
22447 	CPUID_1_ECX = 4,
22448 	CPUID_C000_0001_EDX = 5,
22449 	CPUID_8000_0001_ECX = 6,
22450 	CPUID_LNX_2 = 7,
22451 	CPUID_LNX_3 = 8,
22452 	CPUID_7_0_EBX = 9,
22453 	CPUID_D_1_EAX = 10,
22454 	CPUID_LNX_4 = 11,
22455 	CPUID_7_1_EAX = 12,
22456 	CPUID_8000_0008_EBX = 13,
22457 	CPUID_6_EAX = 14,
22458 	CPUID_8000_000A_EDX = 15,
22459 	CPUID_7_ECX = 16,
22460 	CPUID_8000_0007_EBX = 17,
22461 	CPUID_7_EDX = 18,
22462 	CPUID_8000_001F_EAX = 19,
22463 };
22464 
22465 struct cpuid_dependent_feature {
22466 	u32 feature;
22467 	u32 level;
22468 };
22469 
22470 enum spectre_v2_mitigation {
22471 	SPECTRE_V2_NONE = 0,
22472 	SPECTRE_V2_RETPOLINE_GENERIC = 1,
22473 	SPECTRE_V2_RETPOLINE_AMD = 2,
22474 	SPECTRE_V2_IBRS_ENHANCED = 3,
22475 };
22476 
22477 enum spectre_v2_user_mitigation {
22478 	SPECTRE_V2_USER_NONE = 0,
22479 	SPECTRE_V2_USER_STRICT = 1,
22480 	SPECTRE_V2_USER_STRICT_PREFERRED = 2,
22481 	SPECTRE_V2_USER_PRCTL = 3,
22482 	SPECTRE_V2_USER_SECCOMP = 4,
22483 };
22484 
22485 enum ssb_mitigation {
22486 	SPEC_STORE_BYPASS_NONE = 0,
22487 	SPEC_STORE_BYPASS_DISABLE = 1,
22488 	SPEC_STORE_BYPASS_PRCTL = 2,
22489 	SPEC_STORE_BYPASS_SECCOMP = 3,
22490 };
22491 
22492 enum mds_mitigations {
22493 	MDS_MITIGATION_OFF = 0,
22494 	MDS_MITIGATION_FULL = 1,
22495 	MDS_MITIGATION_VMWERV = 2,
22496 };
22497 
22498 enum vmx_l1d_flush_state {
22499 	VMENTER_L1D_FLUSH_AUTO = 0,
22500 	VMENTER_L1D_FLUSH_NEVER = 1,
22501 	VMENTER_L1D_FLUSH_COND = 2,
22502 	VMENTER_L1D_FLUSH_ALWAYS = 3,
22503 	VMENTER_L1D_FLUSH_EPT_DISABLED = 4,
22504 	VMENTER_L1D_FLUSH_NOT_REQUIRED = 5,
22505 };
22506 
22507 enum x86_hypervisor_type {
22508 	X86_HYPER_NATIVE = 0,
22509 	X86_HYPER_VMWARE = 1,
22510 	X86_HYPER_MS_HYPERV = 2,
22511 	X86_HYPER_XEN_PV = 3,
22512 	X86_HYPER_XEN_HVM = 4,
22513 	X86_HYPER_KVM = 5,
22514 	X86_HYPER_JAILHOUSE = 6,
22515 	X86_HYPER_ACRN = 7,
22516 };
22517 
22518 enum taa_mitigations {
22519 	TAA_MITIGATION_OFF = 0,
22520 	TAA_MITIGATION_UCODE_NEEDED = 1,
22521 	TAA_MITIGATION_VERW = 2,
22522 	TAA_MITIGATION_TSX_DISABLED = 3,
22523 };
22524 
22525 enum srbds_mitigations {
22526 	SRBDS_MITIGATION_OFF = 0,
22527 	SRBDS_MITIGATION_UCODE_NEEDED = 1,
22528 	SRBDS_MITIGATION_FULL = 2,
22529 	SRBDS_MITIGATION_TSX_OFF = 3,
22530 	SRBDS_MITIGATION_HYPERVISOR = 4,
22531 };
22532 
22533 enum l1d_flush_mitigations {
22534 	L1D_FLUSH_OFF = 0,
22535 	L1D_FLUSH_ON = 1,
22536 };
22537 
22538 enum spectre_v1_mitigation {
22539 	SPECTRE_V1_MITIGATION_NONE = 0,
22540 	SPECTRE_V1_MITIGATION_AUTO = 1,
22541 };
22542 
22543 enum spectre_v2_mitigation_cmd {
22544 	SPECTRE_V2_CMD_NONE = 0,
22545 	SPECTRE_V2_CMD_AUTO = 1,
22546 	SPECTRE_V2_CMD_FORCE = 2,
22547 	SPECTRE_V2_CMD_RETPOLINE = 3,
22548 	SPECTRE_V2_CMD_RETPOLINE_GENERIC = 4,
22549 	SPECTRE_V2_CMD_RETPOLINE_AMD = 5,
22550 };
22551 
22552 enum spectre_v2_user_cmd {
22553 	SPECTRE_V2_USER_CMD_NONE = 0,
22554 	SPECTRE_V2_USER_CMD_AUTO = 1,
22555 	SPECTRE_V2_USER_CMD_FORCE = 2,
22556 	SPECTRE_V2_USER_CMD_PRCTL = 3,
22557 	SPECTRE_V2_USER_CMD_PRCTL_IBPB = 4,
22558 	SPECTRE_V2_USER_CMD_SECCOMP = 5,
22559 	SPECTRE_V2_USER_CMD_SECCOMP_IBPB = 6,
22560 };
22561 
22562 enum ssb_mitigation_cmd {
22563 	SPEC_STORE_BYPASS_CMD_NONE = 0,
22564 	SPEC_STORE_BYPASS_CMD_AUTO = 1,
22565 	SPEC_STORE_BYPASS_CMD_ON = 2,
22566 	SPEC_STORE_BYPASS_CMD_PRCTL = 3,
22567 	SPEC_STORE_BYPASS_CMD_SECCOMP = 4,
22568 };
22569 
22570 enum hk_flags {
22571 	HK_FLAG_TIMER = 1,
22572 	HK_FLAG_RCU = 2,
22573 	HK_FLAG_MISC = 4,
22574 	HK_FLAG_SCHED = 8,
22575 	HK_FLAG_TICK = 16,
22576 	HK_FLAG_DOMAIN = 32,
22577 	HK_FLAG_WQ = 64,
22578 	HK_FLAG_MANAGED_IRQ = 128,
22579 	HK_FLAG_KTHREAD = 256,
22580 };
22581 
22582 struct aperfmperf_sample {
22583 	unsigned int khz;
22584 	atomic_t scfpending;
22585 	ktime_t time;
22586 	u64 aperf;
22587 	u64 mperf;
22588 };
22589 
22590 struct cpuid_dep {
22591 	unsigned int feature;
22592 	unsigned int depends;
22593 };
22594 
22595 enum vmx_feature_leafs {
22596 	MISC_FEATURES = 0,
22597 	PRIMARY_CTLS = 1,
22598 	SECONDARY_CTLS = 2,
22599 	NR_VMX_FEATURE_WORDS = 3,
22600 };
22601 
22602 struct _tlb_table {
22603 	unsigned char descriptor;
22604 	char tlb_type;
22605 	unsigned int entries;
22606 	char info[128];
22607 };
22608 
22609 enum split_lock_detect_state {
22610 	sld_off = 0,
22611 	sld_warn = 1,
22612 	sld_fatal = 2,
22613 	sld_ratelimit = 3,
22614 };
22615 
22616 struct sku_microcode {
22617 	u8 model;
22618 	u8 stepping;
22619 	u32 microcode;
22620 };
22621 
22622 struct cpuid_regs {
22623 	u32 eax;
22624 	u32 ebx;
22625 	u32 ecx;
22626 	u32 edx;
22627 };
22628 
22629 enum pconfig_target {
22630 	INVALID_TARGET = 0,
22631 	MKTME_TARGET = 1,
22632 	PCONFIG_TARGET_NR = 2,
22633 };
22634 
22635 enum {
22636 	PCONFIG_CPUID_SUBLEAF_INVALID = 0,
22637 	PCONFIG_CPUID_SUBLEAF_TARGETID = 1,
22638 };
22639 
22640 enum task_work_notify_mode {
22641 	TWA_NONE = 0,
22642 	TWA_RESUME = 1,
22643 	TWA_SIGNAL = 2,
22644 };
22645 
22646 enum mf_flags {
22647 	MF_COUNT_INCREASED = 1,
22648 	MF_ACTION_REQUIRED = 2,
22649 	MF_MUST_KILL = 4,
22650 	MF_SOFT_OFFLINE = 8,
22651 	MF_UNPOISON = 16,
22652 };
22653 
22654 enum mce_notifier_prios {
22655 	MCE_PRIO_LOWEST = 0,
22656 	MCE_PRIO_MCELOG = 1,
22657 	MCE_PRIO_EDAC = 2,
22658 	MCE_PRIO_NFIT = 3,
22659 	MCE_PRIO_EXTLOG = 4,
22660 	MCE_PRIO_UC = 5,
22661 	MCE_PRIO_EARLY = 6,
22662 	MCE_PRIO_CEC = 7,
22663 	MCE_PRIO_HIGHEST = 7,
22664 };
22665 
22666 enum mcp_flags {
22667 	MCP_TIMESTAMP = 1,
22668 	MCP_UC = 2,
22669 	MCP_DONTLOG = 4,
22670 	MCP_QUEUE_LOG = 8,
22671 };
22672 
22673 enum severity_level {
22674 	MCE_NO_SEVERITY = 0,
22675 	MCE_DEFERRED_SEVERITY = 1,
22676 	MCE_UCNA_SEVERITY = 1,
22677 	MCE_KEEP_SEVERITY = 2,
22678 	MCE_SOME_SEVERITY = 3,
22679 	MCE_AO_SEVERITY = 4,
22680 	MCE_UC_SEVERITY = 5,
22681 	MCE_AR_SEVERITY = 6,
22682 	MCE_PANIC_SEVERITY = 7,
22683 };
22684 
22685 struct mce_evt_llist {
22686 	struct llist_node llnode;
22687 	struct mce mce;
22688 };
22689 
22690 struct mca_config {
22691 	__u64 lmce_disabled: 1;
22692 	__u64 disabled: 1;
22693 	__u64 ser: 1;
22694 	__u64 recovery: 1;
22695 	__u64 bios_cmci_threshold: 1;
22696 	__u64 initialized: 1;
22697 	__u64 __reserved: 58;
22698 	bool dont_log_ce;
22699 	bool cmci_disabled;
22700 	bool ignore_ce;
22701 	bool print_all;
22702 	int tolerant;
22703 	int monarch_timeout;
22704 	int panic_timeout;
22705 	u32 rip_msr;
22706 	s8 bootlog;
22707 };
22708 
22709 struct mce_vendor_flags {
22710 	__u64 overflow_recov: 1;
22711 	__u64 succor: 1;
22712 	__u64 smca: 1;
22713 	__u64 amd_threshold: 1;
22714 	__u64 p5: 1;
22715 	__u64 winchip: 1;
22716 	__u64 snb_ifu_quirk: 1;
22717 	__u64 __reserved_0: 57;
22718 };
22719 
22720 enum mca_msr {
22721 	MCA_CTL = 0,
22722 	MCA_STATUS = 1,
22723 	MCA_ADDR = 2,
22724 	MCA_MISC = 3,
22725 };
22726 
22727 struct trace_event_raw_mce_record {
22728 	struct trace_entry ent;
22729 	u64 mcgcap;
22730 	u64 mcgstatus;
22731 	u64 status;
22732 	u64 addr;
22733 	u64 misc;
22734 	u64 synd;
22735 	u64 ipid;
22736 	u64 ip;
22737 	u64 tsc;
22738 	u64 walltime;
22739 	u32 cpu;
22740 	u32 cpuid;
22741 	u32 apicid;
22742 	u32 socketid;
22743 	u8 cs;
22744 	u8 bank;
22745 	u8 cpuvendor;
22746 	char __data[0];
22747 };
22748 
22749 struct trace_event_data_offsets_mce_record {};
22750 
22751 typedef void (*btf_trace_mce_record)(void *, struct mce *);
22752 
22753 struct mce_bank {
22754 	u64 ctl;
22755 	bool init;
22756 };
22757 
22758 struct mce_bank_dev {
22759 	struct device_attribute attr;
22760 	char attrname[16];
22761 	u8 bank;
22762 };
22763 
22764 enum context {
22765 	IN_KERNEL = 1,
22766 	IN_USER = 2,
22767 	IN_KERNEL_RECOV = 3,
22768 };
22769 
22770 enum ser {
22771 	SER_REQUIRED = 1,
22772 	NO_SER = 2,
22773 };
22774 
22775 enum exception {
22776 	EXCP_CONTEXT = 1,
22777 	NO_EXCP = 2,
22778 };
22779 
22780 struct severity {
22781 	u64 mask;
22782 	u64 result;
22783 	unsigned char sev;
22784 	unsigned char mcgmask;
22785 	unsigned char mcgres;
22786 	unsigned char ser;
22787 	unsigned char context;
22788 	unsigned char excp;
22789 	unsigned char covered;
22790 	unsigned char cpu_model;
22791 	unsigned char cpu_minstepping;
22792 	unsigned char bank_lo;
22793 	unsigned char bank_hi;
22794 	char *msg;
22795 };
22796 
22797 struct gen_pool;
22798 
22799 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);
22800 
22801 struct gen_pool {
22802 	spinlock_t lock;
22803 	struct list_head chunks;
22804 	int min_alloc_order;
22805 	genpool_algo_t algo;
22806 	void *data;
22807 	const char *name;
22808 };
22809 
22810 enum {
22811 	CMCI_STORM_NONE = 0,
22812 	CMCI_STORM_ACTIVE = 1,
22813 	CMCI_STORM_SUBSIDED = 2,
22814 };
22815 
22816 enum kobject_action {
22817 	KOBJ_ADD = 0,
22818 	KOBJ_REMOVE = 1,
22819 	KOBJ_CHANGE = 2,
22820 	KOBJ_MOVE = 3,
22821 	KOBJ_ONLINE = 4,
22822 	KOBJ_OFFLINE = 5,
22823 	KOBJ_BIND = 6,
22824 	KOBJ_UNBIND = 7,
22825 };
22826 
22827 enum smca_bank_types {
22828 	SMCA_LS = 0,
22829 	SMCA_LS_V2 = 1,
22830 	SMCA_IF = 2,
22831 	SMCA_L2_CACHE = 3,
22832 	SMCA_DE = 4,
22833 	SMCA_RESERVED = 5,
22834 	SMCA_EX = 6,
22835 	SMCA_FP = 7,
22836 	SMCA_L3_CACHE = 8,
22837 	SMCA_CS = 9,
22838 	SMCA_CS_V2 = 10,
22839 	SMCA_PIE = 11,
22840 	SMCA_UMC = 12,
22841 	SMCA_UMC_V2 = 13,
22842 	SMCA_PB = 14,
22843 	SMCA_PSP = 15,
22844 	SMCA_PSP_V2 = 16,
22845 	SMCA_SMU = 17,
22846 	SMCA_SMU_V2 = 18,
22847 	SMCA_MP5 = 19,
22848 	SMCA_MPDMA = 20,
22849 	SMCA_NBIO = 21,
22850 	SMCA_PCIE = 22,
22851 	SMCA_PCIE_V2 = 23,
22852 	SMCA_XGMI_PCS = 24,
22853 	SMCA_NBIF = 25,
22854 	SMCA_SHUB = 26,
22855 	SMCA_SATA = 27,
22856 	SMCA_USB = 28,
22857 	SMCA_GMI_PCS = 29,
22858 	SMCA_XGMI_PHY = 30,
22859 	SMCA_WAFL_PHY = 31,
22860 	SMCA_GMI_PHY = 32,
22861 	N_SMCA_BANK_TYPES = 33,
22862 };
22863 
22864 struct smca_hwid {
22865 	unsigned int bank_type;
22866 	u32 hwid_mcatype;
22867 };
22868 
22869 struct smca_bank {
22870 	const struct smca_hwid *hwid;
22871 	u32 id;
22872 	u8 sysfs_id;
22873 };
22874 
22875 struct smca_bank_name {
22876 	const char *name;
22877 	const char *long_name;
22878 };
22879 
22880 struct thresh_restart {
22881 	struct threshold_block *b;
22882 	int reset;
22883 	int set_lvt_off;
22884 	int lvt_off;
22885 	u16 old_limit;
22886 };
22887 
22888 struct threshold_attr {
22889 	struct attribute attr;
22890 	ssize_t (*show)(struct threshold_block *, char *);
22891 	ssize_t (*store)(struct threshold_block *, const char *, size_t);
22892 };
22893 
22894 struct mtrr_var_range {
22895 	__u32 base_lo;
22896 	__u32 base_hi;
22897 	__u32 mask_lo;
22898 	__u32 mask_hi;
22899 };
22900 
22901 typedef __u8 mtrr_type;
22902 
22903 struct mtrr_state_type {
22904 	struct mtrr_var_range var_ranges[256];
22905 	mtrr_type fixed_ranges[88];
22906 	unsigned char enabled;
22907 	unsigned char have_fixed;
22908 	mtrr_type def_type;
22909 };
22910 
22911 struct mtrr_ops {
22912 	u32 vendor;
22913 	u32 use_intel_if;
22914 	void (*set)(unsigned int, long unsigned int, long unsigned int, mtrr_type);
22915 	void (*set_all)();
22916 	void (*get)(unsigned int, long unsigned int *, long unsigned int *, mtrr_type *);
22917 	int (*get_free_region)(long unsigned int, long unsigned int, int);
22918 	int (*validate_add_page)(long unsigned int, long unsigned int, unsigned int);
22919 	int (*have_wrcomb)();
22920 };
22921 
22922 struct set_mtrr_data {
22923 	long unsigned int smp_base;
22924 	long unsigned int smp_size;
22925 	unsigned int smp_reg;
22926 	mtrr_type smp_type;
22927 };
22928 
22929 struct mtrr_value {
22930 	mtrr_type ltype;
22931 	long unsigned int lbase;
22932 	long unsigned int lsize;
22933 };
22934 
22935 struct proc_ops {
22936 	unsigned int proc_flags;
22937 	int (*proc_open)(struct inode *, struct file *);
22938 	ssize_t (*proc_read)(struct file *, char *, size_t, loff_t *);
22939 	ssize_t (*proc_read_iter)(struct kiocb *, struct iov_iter *);
22940 	ssize_t (*proc_write)(struct file *, const char *, size_t, loff_t *);
22941 	loff_t (*proc_lseek)(struct file *, loff_t, int);
22942 	int (*proc_release)(struct inode *, struct file *);
22943 	__poll_t (*proc_poll)(struct file *, struct poll_table_struct *);
22944 	long int (*proc_ioctl)(struct file *, unsigned int, long unsigned int);
22945 	int (*proc_mmap)(struct file *, struct vm_area_struct *);
22946 	long unsigned int (*proc_get_unmapped_area)(struct file *, long unsigned int, long unsigned int, long unsigned int, long unsigned int);
22947 };
22948 
22949 struct mtrr_sentry {
22950 	__u64 base;
22951 	__u32 size;
22952 	__u32 type;
22953 };
22954 
22955 struct mtrr_gentry {
22956 	__u64 base;
22957 	__u32 size;
22958 	__u32 regnum;
22959 	__u32 type;
22960 	__u32 _pad;
22961 };
22962 
22963 struct fixed_range_block {
22964 	int base_msr;
22965 	int ranges;
22966 };
22967 
22968 struct var_mtrr_range_state {
22969 	long unsigned int base_pfn;
22970 	long unsigned int size_pfn;
22971 	mtrr_type type;
22972 };
22973 
22974 enum mp_irq_source_types {
22975 	mp_INT = 0,
22976 	mp_NMI = 1,
22977 	mp_SMI = 2,
22978 	mp_ExtINT = 3,
22979 };
22980 
22981 typedef u64 acpi_physical_address;
22982 
22983 typedef u32 acpi_status;
22984 
22985 typedef void *acpi_handle;
22986 
22987 struct acpi_subtable_header {
22988 	u8 type;
22989 	u8 length;
22990 };
22991 
22992 struct acpi_table_boot {
22993 	struct acpi_table_header header;
22994 	u8 cmos_index;
22995 	u8 reserved[3];
22996 };
22997 
22998 struct acpi_cedt_header {
22999 	u8 type;
23000 	u8 reserved;
23001 	u16 length;
23002 };
23003 
23004 struct acpi_hmat_structure {
23005 	u16 type;
23006 	u16 reserved;
23007 	u32 length;
23008 };
23009 
23010 struct acpi_table_hpet {
23011 	struct acpi_table_header header;
23012 	u32 id;
23013 	struct acpi_generic_address address;
23014 	u8 sequence;
23015 	u16 minimum_tick;
23016 	u8 flags;
23017 } __attribute__((packed));
23018 
23019 struct acpi_table_madt {
23020 	struct acpi_table_header header;
23021 	u32 address;
23022 	u32 flags;
23023 };
23024 
23025 enum acpi_madt_type {
23026 	ACPI_MADT_TYPE_LOCAL_APIC = 0,
23027 	ACPI_MADT_TYPE_IO_APIC = 1,
23028 	ACPI_MADT_TYPE_INTERRUPT_OVERRIDE = 2,
23029 	ACPI_MADT_TYPE_NMI_SOURCE = 3,
23030 	ACPI_MADT_TYPE_LOCAL_APIC_NMI = 4,
23031 	ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE = 5,
23032 	ACPI_MADT_TYPE_IO_SAPIC = 6,
23033 	ACPI_MADT_TYPE_LOCAL_SAPIC = 7,
23034 	ACPI_MADT_TYPE_INTERRUPT_SOURCE = 8,
23035 	ACPI_MADT_TYPE_LOCAL_X2APIC = 9,
23036 	ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10,
23037 	ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11,
23038 	ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12,
23039 	ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13,
23040 	ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14,
23041 	ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15,
23042 	ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16,
23043 	ACPI_MADT_TYPE_RESERVED = 17,
23044 };
23045 
23046 struct acpi_madt_local_apic {
23047 	struct acpi_subtable_header header;
23048 	u8 processor_id;
23049 	u8 id;
23050 	u32 lapic_flags;
23051 };
23052 
23053 struct acpi_madt_io_apic {
23054 	struct acpi_subtable_header header;
23055 	u8 id;
23056 	u8 reserved;
23057 	u32 address;
23058 	u32 global_irq_base;
23059 };
23060 
23061 struct acpi_madt_interrupt_override {
23062 	struct acpi_subtable_header header;
23063 	u8 bus;
23064 	u8 source_irq;
23065 	u32 global_irq;
23066 	u16 inti_flags;
23067 } __attribute__((packed));
23068 
23069 struct acpi_madt_nmi_source {
23070 	struct acpi_subtable_header header;
23071 	u16 inti_flags;
23072 	u32 global_irq;
23073 };
23074 
23075 struct acpi_madt_local_apic_nmi {
23076 	struct acpi_subtable_header header;
23077 	u8 processor_id;
23078 	u16 inti_flags;
23079 	u8 lint;
23080 } __attribute__((packed));
23081 
23082 struct acpi_madt_local_apic_override {
23083 	struct acpi_subtable_header header;
23084 	u16 reserved;
23085 	u64 address;
23086 } __attribute__((packed));
23087 
23088 struct acpi_madt_local_sapic {
23089 	struct acpi_subtable_header header;
23090 	u8 processor_id;
23091 	u8 id;
23092 	u8 eid;
23093 	u8 reserved[3];
23094 	u32 lapic_flags;
23095 	u32 uid;
23096 	char uid_string[1];
23097 } __attribute__((packed));
23098 
23099 struct acpi_madt_local_x2apic {
23100 	struct acpi_subtable_header header;
23101 	u16 reserved;
23102 	u32 local_apic_id;
23103 	u32 lapic_flags;
23104 	u32 uid;
23105 };
23106 
23107 struct acpi_madt_local_x2apic_nmi {
23108 	struct acpi_subtable_header header;
23109 	u16 inti_flags;
23110 	u32 uid;
23111 	u8 lint;
23112 	u8 reserved[3];
23113 };
23114 
23115 struct acpi_prmt_module_header {
23116 	u16 revision;
23117 	u16 length;
23118 };
23119 
23120 union acpi_subtable_headers {
23121 	struct acpi_subtable_header common;
23122 	struct acpi_hmat_structure hmat;
23123 	struct acpi_prmt_module_header prmt;
23124 	struct acpi_cedt_header cedt;
23125 };
23126 
23127 typedef int (*acpi_tbl_entry_handler)(union acpi_subtable_headers *, const long unsigned int);
23128 
23129 typedef int (*acpi_tbl_entry_handler_arg)(union acpi_subtable_headers *, void *, const long unsigned int);
23130 
23131 struct acpi_subtable_proc {
23132 	int id;
23133 	acpi_tbl_entry_handler handler;
23134 	acpi_tbl_entry_handler_arg handler_arg;
23135 	void *arg;
23136 	int count;
23137 };
23138 
23139 typedef u32 phys_cpuid_t;
23140 
23141 struct gpio_desc;
23142 
23143 enum irq_alloc_type {
23144 	X86_IRQ_ALLOC_TYPE_IOAPIC = 1,
23145 	X86_IRQ_ALLOC_TYPE_HPET = 2,
23146 	X86_IRQ_ALLOC_TYPE_PCI_MSI = 3,
23147 	X86_IRQ_ALLOC_TYPE_PCI_MSIX = 4,
23148 	X86_IRQ_ALLOC_TYPE_DMAR = 5,
23149 	X86_IRQ_ALLOC_TYPE_AMDVI = 6,
23150 	X86_IRQ_ALLOC_TYPE_UV = 7,
23151 };
23152 
23153 struct ioapic_alloc_info {
23154 	int pin;
23155 	int node;
23156 	u32 is_level: 1;
23157 	u32 active_low: 1;
23158 	u32 valid: 1;
23159 };
23160 
23161 struct uv_alloc_info {
23162 	int limit;
23163 	int blade;
23164 	long unsigned int offset;
23165 	char *name;
23166 };
23167 
23168 struct irq_alloc_info {
23169 	enum irq_alloc_type type;
23170 	u32 flags;
23171 	u32 devid;
23172 	irq_hw_number_t hwirq;
23173 	const struct cpumask *mask;
23174 	struct msi_desc *desc;
23175 	void *data;
23176 	union {
23177 		struct ioapic_alloc_info ioapic;
23178 		struct uv_alloc_info uv;
23179 	};
23180 };
23181 
23182 struct circ_buf {
23183 	char *buf;
23184 	int head;
23185 	int tail;
23186 };
23187 
23188 struct serial_icounter_struct {
23189 	int cts;
23190 	int dsr;
23191 	int rng;
23192 	int dcd;
23193 	int rx;
23194 	int tx;
23195 	int frame;
23196 	int overrun;
23197 	int parity;
23198 	int brk;
23199 	int buf_overrun;
23200 	int reserved[9];
23201 };
23202 
23203 struct serial_struct {
23204 	int type;
23205 	int line;
23206 	unsigned int port;
23207 	int irq;
23208 	int flags;
23209 	int xmit_fifo_size;
23210 	int custom_divisor;
23211 	int baud_base;
23212 	short unsigned int close_delay;
23213 	char io_type;
23214 	char reserved_char[1];
23215 	int hub6;
23216 	short unsigned int closing_wait;
23217 	short unsigned int closing_wait2;
23218 	unsigned char *iomem_base;
23219 	short unsigned int iomem_reg_shift;
23220 	unsigned int port_high;
23221 	long unsigned int iomap_base;
23222 };
23223 
23224 struct sysrq_key_op {
23225 	void (* const handler)(int);
23226 	const char * const help_msg;
23227 	const char * const action_msg;
23228 	const int enable_mask;
23229 };
23230 
23231 struct serial_rs485 {
23232 	__u32 flags;
23233 	__u32 delay_rts_before_send;
23234 	__u32 delay_rts_after_send;
23235 	__u32 padding[5];
23236 };
23237 
23238 struct serial_iso7816 {
23239 	__u32 flags;
23240 	__u32 tg;
23241 	__u32 sc_fi;
23242 	__u32 sc_di;
23243 	__u32 clk;
23244 	__u32 reserved[5];
23245 };
23246 
23247 struct uart_port;
23248 
23249 struct uart_ops {
23250 	unsigned int (*tx_empty)(struct uart_port *);
23251 	void (*set_mctrl)(struct uart_port *, unsigned int);
23252 	unsigned int (*get_mctrl)(struct uart_port *);
23253 	void (*stop_tx)(struct uart_port *);
23254 	void (*start_tx)(struct uart_port *);
23255 	void (*throttle)(struct uart_port *);
23256 	void (*unthrottle)(struct uart_port *);
23257 	void (*send_xchar)(struct uart_port *, char);
23258 	void (*stop_rx)(struct uart_port *);
23259 	void (*enable_ms)(struct uart_port *);
23260 	void (*break_ctl)(struct uart_port *, int);
23261 	int (*startup)(struct uart_port *);
23262 	void (*shutdown)(struct uart_port *);
23263 	void (*flush_buffer)(struct uart_port *);
23264 	void (*set_termios)(struct uart_port *, struct ktermios *, struct ktermios *);
23265 	void (*set_ldisc)(struct uart_port *, struct ktermios *);
23266 	void (*pm)(struct uart_port *, unsigned int, unsigned int);
23267 	const char * (*type)(struct uart_port *);
23268 	void (*release_port)(struct uart_port *);
23269 	int (*request_port)(struct uart_port *);
23270 	void (*config_port)(struct uart_port *, int);
23271 	int (*verify_port)(struct uart_port *, struct serial_struct *);
23272 	int (*ioctl)(struct uart_port *, unsigned int, long unsigned int);
23273 };
23274 
23275 struct uart_icount {
23276 	__u32 cts;
23277 	__u32 dsr;
23278 	__u32 rng;
23279 	__u32 dcd;
23280 	__u32 rx;
23281 	__u32 tx;
23282 	__u32 frame;
23283 	__u32 overrun;
23284 	__u32 parity;
23285 	__u32 brk;
23286 	__u32 buf_overrun;
23287 };
23288 
23289 typedef unsigned int upf_t;
23290 
23291 typedef unsigned int upstat_t;
23292 
23293 struct uart_state;
23294 
23295 struct uart_port {
23296 	spinlock_t lock;
23297 	long unsigned int iobase;
23298 	unsigned char *membase;
23299 	unsigned int (*serial_in)(struct uart_port *, int);
23300 	void (*serial_out)(struct uart_port *, int, int);
23301 	void (*set_termios)(struct uart_port *, struct ktermios *, struct ktermios *);
23302 	void (*set_ldisc)(struct uart_port *, struct ktermios *);
23303 	unsigned int (*get_mctrl)(struct uart_port *);
23304 	void (*set_mctrl)(struct uart_port *, unsigned int);
23305 	unsigned int (*get_divisor)(struct uart_port *, unsigned int, unsigned int *);
23306 	void (*set_divisor)(struct uart_port *, unsigned int, unsigned int, unsigned int);
23307 	int (*startup)(struct uart_port *);
23308 	void (*shutdown)(struct uart_port *);
23309 	void (*throttle)(struct uart_port *);
23310 	void (*unthrottle)(struct uart_port *);
23311 	int (*handle_irq)(struct uart_port *);
23312 	void (*pm)(struct uart_port *, unsigned int, unsigned int);
23313 	void (*handle_break)(struct uart_port *);
23314 	int (*rs485_config)(struct uart_port *, struct serial_rs485 *);
23315 	int (*iso7816_config)(struct uart_port *, struct serial_iso7816 *);
23316 	unsigned int irq;
23317 	long unsigned int irqflags;
23318 	unsigned int uartclk;
23319 	unsigned int fifosize;
23320 	unsigned char x_char;
23321 	unsigned char regshift;
23322 	unsigned char iotype;
23323 	unsigned char quirks;
23324 	unsigned int read_status_mask;
23325 	unsigned int ignore_status_mask;
23326 	struct uart_state *state;
23327 	struct uart_icount icount;
23328 	struct console *cons;
23329 	upf_t flags;
23330 	upstat_t status;
23331 	int hw_stopped;
23332 	unsigned int mctrl;
23333 	unsigned int timeout;
23334 	unsigned int type;
23335 	const struct uart_ops *ops;
23336 	unsigned int custom_divisor;
23337 	unsigned int line;
23338 	unsigned int minor;
23339 	resource_size_t mapbase;
23340 	resource_size_t mapsize;
23341 	struct device *dev;
23342 	long unsigned int sysrq;
23343 	unsigned int sysrq_ch;
23344 	unsigned char has_sysrq;
23345 	unsigned char sysrq_seq;
23346 	unsigned char hub6;
23347 	unsigned char suspended;
23348 	unsigned char console_reinit;
23349 	const char *name;
23350 	struct attribute_group *attr_group;
23351 	const struct attribute_group **tty_groups;
23352 	struct serial_rs485 rs485;
23353 	struct gpio_desc *rs485_term_gpio;
23354 	struct serial_iso7816 iso7816;
23355 	void *private_data;
23356 };
23357 
23358 enum uart_pm_state {
23359 	UART_PM_STATE_ON = 0,
23360 	UART_PM_STATE_OFF = 3,
23361 	UART_PM_STATE_UNDEFINED = 4,
23362 };
23363 
23364 struct uart_state {
23365 	struct tty_port port;
23366 	enum uart_pm_state pm_state;
23367 	struct circ_buf xmit;
23368 	atomic_t refcount;
23369 	wait_queue_head_t remove_wait;
23370 	struct uart_port *uart_port;
23371 };
23372 
23373 struct earlycon_device {
23374 	struct console *con;
23375 	struct uart_port port;
23376 	char options[16];
23377 	unsigned int baud;
23378 };
23379 
23380 struct earlycon_id {
23381 	char name[15];
23382 	char name_term;
23383 	char compatible[128];
23384 	int (*setup)(struct earlycon_device *, const char *);
23385 };
23386 
23387 enum ioapic_domain_type {
23388 	IOAPIC_DOMAIN_INVALID = 0,
23389 	IOAPIC_DOMAIN_LEGACY = 1,
23390 	IOAPIC_DOMAIN_STRICT = 2,
23391 	IOAPIC_DOMAIN_DYNAMIC = 3,
23392 };
23393 
23394 struct ioapic_domain_cfg {
23395 	enum ioapic_domain_type type;
23396 	const struct irq_domain_ops *ops;
23397 	struct device_node *dev;
23398 };
23399 
23400 struct thermal_cooling_device_ops;
23401 
23402 struct thermal_cooling_device {
23403 	int id;
23404 	char *type;
23405 	struct device device;
23406 	struct device_node *np;
23407 	void *devdata;
23408 	void *stats;
23409 	const struct thermal_cooling_device_ops *ops;
23410 	bool updated;
23411 	struct mutex lock;
23412 	struct list_head thermal_instances;
23413 	struct list_head node;
23414 };
23415 
23416 struct thermal_cooling_device_ops {
23417 	int (*get_max_state)(struct thermal_cooling_device *, long unsigned int *);
23418 	int (*get_cur_state)(struct thermal_cooling_device *, long unsigned int *);
23419 	int (*set_cur_state)(struct thermal_cooling_device *, long unsigned int);
23420 	int (*get_requested_power)(struct thermal_cooling_device *, u32 *);
23421 	int (*state2power)(struct thermal_cooling_device *, long unsigned int, u32 *);
23422 	int (*power2state)(struct thermal_cooling_device *, u32, long unsigned int *);
23423 };
23424 
23425 struct acpi_processor_cx {
23426 	u8 valid;
23427 	u8 type;
23428 	u32 address;
23429 	u8 entry_method;
23430 	u8 index;
23431 	u32 latency;
23432 	u8 bm_sts_skip;
23433 	char desc[32];
23434 };
23435 
23436 struct acpi_lpi_state {
23437 	u32 min_residency;
23438 	u32 wake_latency;
23439 	u32 flags;
23440 	u32 arch_flags;
23441 	u32 res_cnt_freq;
23442 	u32 enable_parent_state;
23443 	u64 address;
23444 	u8 index;
23445 	u8 entry_method;
23446 	char desc[32];
23447 };
23448 
23449 struct acpi_processor_power {
23450 	int count;
23451 	union {
23452 		struct acpi_processor_cx states[8];
23453 		struct acpi_lpi_state lpi_states[8];
23454 	};
23455 	int timer_broadcast_on_state;
23456 };
23457 
23458 struct acpi_psd_package {
23459 	u64 num_entries;
23460 	u64 revision;
23461 	u64 domain;
23462 	u64 coord_type;
23463 	u64 num_processors;
23464 };
23465 
23466 struct acpi_pct_register {
23467 	u8 descriptor;
23468 	u16 length;
23469 	u8 space_id;
23470 	u8 bit_width;
23471 	u8 bit_offset;
23472 	u8 reserved;
23473 	u64 address;
23474 } __attribute__((packed));
23475 
23476 struct acpi_processor_px {
23477 	u64 core_frequency;
23478 	u64 power;
23479 	u64 transition_latency;
23480 	u64 bus_master_latency;
23481 	u64 control;
23482 	u64 status;
23483 };
23484 
23485 struct acpi_processor_performance {
23486 	unsigned int state;
23487 	unsigned int platform_limit;
23488 	struct acpi_pct_register control_register;
23489 	struct acpi_pct_register status_register;
23490 	short: 16;
23491 	unsigned int state_count;
23492 	int: 32;
23493 	struct acpi_processor_px *states;
23494 	struct acpi_psd_package domain_info;
23495 	cpumask_var_t shared_cpu_map;
23496 	unsigned int shared_type;
23497 	int: 32;
23498 } __attribute__((packed));
23499 
23500 struct acpi_tsd_package {
23501 	u64 num_entries;
23502 	u64 revision;
23503 	u64 domain;
23504 	u64 coord_type;
23505 	u64 num_processors;
23506 };
23507 
23508 struct acpi_processor_tx_tss {
23509 	u64 freqpercentage;
23510 	u64 power;
23511 	u64 transition_latency;
23512 	u64 control;
23513 	u64 status;
23514 };
23515 
23516 struct acpi_processor_tx {
23517 	u16 power;
23518 	u16 performance;
23519 };
23520 
23521 struct acpi_processor;
23522 
23523 struct acpi_processor_throttling {
23524 	unsigned int state;
23525 	unsigned int platform_limit;
23526 	struct acpi_pct_register control_register;
23527 	struct acpi_pct_register status_register;
23528 	short: 16;
23529 	unsigned int state_count;
23530 	int: 32;
23531 	struct acpi_processor_tx_tss *states_tss;
23532 	struct acpi_tsd_package domain_info;
23533 	cpumask_var_t shared_cpu_map;
23534 	int (*acpi_processor_get_throttling)(struct acpi_processor *);
23535 	int (*acpi_processor_set_throttling)(struct acpi_processor *, int, bool);
23536 	u32 address;
23537 	u8 duty_offset;
23538 	u8 duty_width;
23539 	u8 tsd_valid_flag;
23540 	char: 8;
23541 	unsigned int shared_type;
23542 	struct acpi_processor_tx states[16];
23543 	int: 32;
23544 } __attribute__((packed));
23545 
23546 struct acpi_processor_flags {
23547 	u8 power: 1;
23548 	u8 performance: 1;
23549 	u8 throttling: 1;
23550 	u8 limit: 1;
23551 	u8 bm_control: 1;
23552 	u8 bm_check: 1;
23553 	u8 has_cst: 1;
23554 	u8 has_lpi: 1;
23555 	u8 power_setup_done: 1;
23556 	u8 bm_rld_set: 1;
23557 	u8 need_hotplug_init: 1;
23558 };
23559 
23560 struct acpi_processor_lx {
23561 	int px;
23562 	int tx;
23563 };
23564 
23565 struct acpi_processor_limit {
23566 	struct acpi_processor_lx state;
23567 	struct acpi_processor_lx thermal;
23568 	struct acpi_processor_lx user;
23569 };
23570 
23571 struct acpi_processor {
23572 	acpi_handle handle;
23573 	u32 acpi_id;
23574 	phys_cpuid_t phys_id;
23575 	u32 id;
23576 	u32 pblk;
23577 	int performance_platform_limit;
23578 	int throttling_platform_limit;
23579 	struct acpi_processor_flags flags;
23580 	struct acpi_processor_power power;
23581 	struct acpi_processor_performance *performance;
23582 	struct acpi_processor_throttling throttling;
23583 	struct acpi_processor_limit limit;
23584 	struct thermal_cooling_device *cdev;
23585 	struct device *dev;
23586 	struct freq_qos_request perflib_req;
23587 	struct freq_qos_request thermal_req;
23588 };
23589 
23590 struct acpi_processor_errata {
23591 	u8 smp;
23592 	struct {
23593 		u8 throttle: 1;
23594 		u8 fdma: 1;
23595 		u8 reserved: 6;
23596 		u32 bmisx;
23597 	} piix4;
23598 };
23599 
23600 struct cpuidle_driver;
23601 
23602 struct cpc_reg {
23603 	u8 descriptor;
23604 	u16 length;
23605 	u8 space_id;
23606 	u8 bit_width;
23607 	u8 bit_offset;
23608 	u8 access_width;
23609 	u64 address;
23610 } __attribute__((packed));
23611 
23612 struct acpi_power_register {
23613 	u8 descriptor;
23614 	u16 length;
23615 	u8 space_id;
23616 	u8 bit_width;
23617 	u8 bit_offset;
23618 	u8 access_size;
23619 	u64 address;
23620 } __attribute__((packed));
23621 
23622 struct cstate_entry {
23623 	struct {
23624 		unsigned int eax;
23625 		unsigned int ecx;
23626 	} states[8];
23627 };
23628 
23629 struct vmcb_seg {
23630 	u16 selector;
23631 	u16 attrib;
23632 	u32 limit;
23633 	u64 base;
23634 };
23635 
23636 struct vmcb_save_area {
23637 	struct vmcb_seg es;
23638 	struct vmcb_seg cs;
23639 	struct vmcb_seg ss;
23640 	struct vmcb_seg ds;
23641 	struct vmcb_seg fs;
23642 	struct vmcb_seg gs;
23643 	struct vmcb_seg gdtr;
23644 	struct vmcb_seg ldtr;
23645 	struct vmcb_seg idtr;
23646 	struct vmcb_seg tr;
23647 	u8 reserved_1[43];
23648 	u8 cpl;
23649 	u8 reserved_2[4];
23650 	u64 efer;
23651 	u8 reserved_3[104];
23652 	u64 xss;
23653 	u64 cr4;
23654 	u64 cr3;
23655 	u64 cr0;
23656 	u64 dr7;
23657 	u64 dr6;
23658 	u64 rflags;
23659 	u64 rip;
23660 	u8 reserved_4[88];
23661 	u64 rsp;
23662 	u8 reserved_5[24];
23663 	u64 rax;
23664 	u64 star;
23665 	u64 lstar;
23666 	u64 cstar;
23667 	u64 sfmask;
23668 	u64 kernel_gs_base;
23669 	u64 sysenter_cs;
23670 	u64 sysenter_esp;
23671 	u64 sysenter_eip;
23672 	u64 cr2;
23673 	u8 reserved_6[32];
23674 	u64 g_pat;
23675 	u64 dbgctl;
23676 	u64 br_from;
23677 	u64 br_to;
23678 	u64 last_excp_from;
23679 	u64 last_excp_to;
23680 	u8 reserved_7[72];
23681 	u32 spec_ctrl;
23682 	u8 reserved_7b[4];
23683 	u32 pkru;
23684 	u8 reserved_7a[20];
23685 	u64 reserved_8;
23686 	u64 rcx;
23687 	u64 rdx;
23688 	u64 rbx;
23689 	u64 reserved_9;
23690 	u64 rbp;
23691 	u64 rsi;
23692 	u64 rdi;
23693 	u64 r8;
23694 	u64 r9;
23695 	u64 r10;
23696 	u64 r11;
23697 	u64 r12;
23698 	u64 r13;
23699 	u64 r14;
23700 	u64 r15;
23701 	u8 reserved_10[16];
23702 	u64 sw_exit_code;
23703 	u64 sw_exit_info_1;
23704 	u64 sw_exit_info_2;
23705 	u64 sw_scratch;
23706 	u8 reserved_11[56];
23707 	u64 xcr0;
23708 	u8 valid_bitmap[16];
23709 	u64 x87_state_gpa;
23710 };
23711 
23712 struct ghcb {
23713 	struct vmcb_save_area save;
23714 	u8 reserved_save[1016];
23715 	u8 shared_buffer[2032];
23716 	u8 reserved_1[10];
23717 	u16 protocol_version;
23718 	u32 ghcb_usage;
23719 };
23720 
23721 typedef void (*nmi_shootdown_cb)(int, struct pt_regs *);
23722 
23723 struct pci_ops___2;
23724 
23725 struct pci_dev___2;
23726 
23727 enum intercept_words {
23728 	INTERCEPT_CR = 0,
23729 	INTERCEPT_DR = 1,
23730 	INTERCEPT_EXCEPTION = 2,
23731 	INTERCEPT_WORD3 = 3,
23732 	INTERCEPT_WORD4 = 4,
23733 	INTERCEPT_WORD5 = 5,
23734 	MAX_INTERCEPT = 6,
23735 };
23736 
23737 enum allow_write_msrs {
23738 	MSR_WRITES_ON = 0,
23739 	MSR_WRITES_OFF = 1,
23740 	MSR_WRITES_DEFAULT = 2,
23741 };
23742 
23743 struct cpuid_regs_done {
23744 	struct cpuid_regs regs;
23745 	struct completion done;
23746 };
23747 
23748 struct intel_early_ops {
23749 	resource_size_t (*stolen_size)(int, int, int);
23750 	resource_size_t (*stolen_base)(int, int, int, resource_size_t);
23751 };
23752 
23753 struct chipset {
23754 	u32 vendor;
23755 	u32 device;
23756 	u32 class;
23757 	u32 class_mask;
23758 	u32 flags;
23759 	void (*f)(int, int, int);
23760 };
23761 
23762 enum {
23763 	SD_BALANCE_NEWIDLE = 1,
23764 	SD_BALANCE_EXEC = 2,
23765 	SD_BALANCE_FORK = 4,
23766 	SD_BALANCE_WAKE = 8,
23767 	SD_WAKE_AFFINE = 16,
23768 	SD_ASYM_CPUCAPACITY = 32,
23769 	SD_ASYM_CPUCAPACITY_FULL = 64,
23770 	SD_SHARE_CPUCAPACITY = 128,
23771 	SD_SHARE_PKG_RESOURCES = 256,
23772 	SD_SERIALIZE = 512,
23773 	SD_ASYM_PACKING = 1024,
23774 	SD_PREFER_SIBLING = 2048,
23775 	SD_OVERLAP = 4096,
23776 	SD_NUMA = 8192,
23777 };
23778 
23779 struct sched_domain_shared {
23780 	atomic_t ref;
23781 	atomic_t nr_busy_cpus;
23782 	int has_idle_cores;
23783 };
23784 
23785 struct sched_group;
23786 
23787 struct sched_domain {
23788 	struct sched_domain *parent;
23789 	struct sched_domain *child;
23790 	struct sched_group *groups;
23791 	long unsigned int min_interval;
23792 	long unsigned int max_interval;
23793 	unsigned int busy_factor;
23794 	unsigned int imbalance_pct;
23795 	unsigned int cache_nice_tries;
23796 	int nohz_idle;
23797 	int flags;
23798 	int level;
23799 	long unsigned int last_balance;
23800 	unsigned int balance_interval;
23801 	unsigned int nr_balance_failed;
23802 	u64 max_newidle_lb_cost;
23803 	long unsigned int last_decay_max_lb_cost;
23804 	u64 avg_scan_cost;
23805 	unsigned int lb_count[3];
23806 	unsigned int lb_failed[3];
23807 	unsigned int lb_balanced[3];
23808 	unsigned int lb_imbalance[3];
23809 	unsigned int lb_gained[3];
23810 	unsigned int lb_hot_gained[3];
23811 	unsigned int lb_nobusyg[3];
23812 	unsigned int lb_nobusyq[3];
23813 	unsigned int alb_count;
23814 	unsigned int alb_failed;
23815 	unsigned int alb_pushed;
23816 	unsigned int sbe_count;
23817 	unsigned int sbe_balanced;
23818 	unsigned int sbe_pushed;
23819 	unsigned int sbf_count;
23820 	unsigned int sbf_balanced;
23821 	unsigned int sbf_pushed;
23822 	unsigned int ttwu_wake_remote;
23823 	unsigned int ttwu_move_affine;
23824 	unsigned int ttwu_move_balance;
23825 	char *name;
23826 	union {
23827 		void *private;
23828 		struct callback_head rcu;
23829 	};
23830 	struct sched_domain_shared *shared;
23831 	unsigned int span_weight;
23832 	long unsigned int span[0];
23833 };
23834 
23835 typedef const struct cpumask * (*sched_domain_mask_f)(int);
23836 
23837 typedef int (*sched_domain_flags_f)();
23838 
23839 struct sched_group_capacity;
23840 
23841 struct sd_data {
23842 	struct sched_domain **sd;
23843 	struct sched_domain_shared **sds;
23844 	struct sched_group **sg;
23845 	struct sched_group_capacity **sgc;
23846 };
23847 
23848 struct sched_domain_topology_level {
23849 	sched_domain_mask_f mask;
23850 	sched_domain_flags_f sd_flags;
23851 	int flags;
23852 	int numa_level;
23853 	struct sd_data data;
23854 	char *name;
23855 };
23856 
23857 struct cpuidle_driver___2;
23858 
23859 struct cpuidle_state {
23860 	char name[16];
23861 	char desc[32];
23862 	s64 exit_latency_ns;
23863 	s64 target_residency_ns;
23864 	unsigned int flags;
23865 	unsigned int exit_latency;
23866 	int power_usage;
23867 	unsigned int target_residency;
23868 	int (*enter)(struct cpuidle_device *, struct cpuidle_driver___2 *, int);
23869 	int (*enter_dead)(struct cpuidle_device *, int);
23870 	int (*enter_s2idle)(struct cpuidle_device *, struct cpuidle_driver___2 *, int);
23871 };
23872 
23873 struct cpuidle_driver___2 {
23874 	const char *name;
23875 	struct module *owner;
23876 	unsigned int bctimer: 1;
23877 	struct cpuidle_state states[10];
23878 	int state_count;
23879 	int safe_state_index;
23880 	struct cpumask *cpumask;
23881 	const char *governor;
23882 };
23883 
23884 struct cppc_perf_caps {
23885 	u32 guaranteed_perf;
23886 	u32 highest_perf;
23887 	u32 nominal_perf;
23888 	u32 lowest_perf;
23889 	u32 lowest_nonlinear_perf;
23890 	u32 lowest_freq;
23891 	u32 nominal_freq;
23892 };
23893 
23894 struct tsc_adjust {
23895 	s64 bootval;
23896 	s64 adjusted;
23897 	long unsigned int nextcheck;
23898 	bool warned;
23899 };
23900 
23901 enum {
23902 	DUMP_PREFIX_NONE = 0,
23903 	DUMP_PREFIX_ADDRESS = 1,
23904 	DUMP_PREFIX_OFFSET = 2,
23905 };
23906 
23907 struct mpf_intel {
23908 	char signature[4];
23909 	unsigned int physptr;
23910 	unsigned char length;
23911 	unsigned char specification;
23912 	unsigned char checksum;
23913 	unsigned char feature1;
23914 	unsigned char feature2;
23915 	unsigned char feature3;
23916 	unsigned char feature4;
23917 	unsigned char feature5;
23918 };
23919 
23920 struct mpc_table {
23921 	char signature[4];
23922 	short unsigned int length;
23923 	char spec;
23924 	char checksum;
23925 	char oem[8];
23926 	char productid[12];
23927 	unsigned int oemptr;
23928 	short unsigned int oemsize;
23929 	short unsigned int oemcount;
23930 	unsigned int lapic;
23931 	unsigned int reserved;
23932 };
23933 
23934 struct mpc_cpu {
23935 	unsigned char type;
23936 	unsigned char apicid;
23937 	unsigned char apicver;
23938 	unsigned char cpuflag;
23939 	unsigned int cpufeature;
23940 	unsigned int featureflag;
23941 	unsigned int reserved[2];
23942 };
23943 
23944 struct mpc_bus {
23945 	unsigned char type;
23946 	unsigned char busid;
23947 	unsigned char bustype[6];
23948 };
23949 
23950 struct mpc_ioapic {
23951 	unsigned char type;
23952 	unsigned char apicid;
23953 	unsigned char apicver;
23954 	unsigned char flags;
23955 	unsigned int apicaddr;
23956 };
23957 
23958 struct mpc_lintsrc {
23959 	unsigned char type;
23960 	unsigned char irqtype;
23961 	short unsigned int irqflag;
23962 	unsigned char srcbusid;
23963 	unsigned char srcbusirq;
23964 	unsigned char destapic;
23965 	unsigned char destapiclint;
23966 };
23967 
23968 enum page_cache_mode {
23969 	_PAGE_CACHE_MODE_WB = 0,
23970 	_PAGE_CACHE_MODE_WC = 1,
23971 	_PAGE_CACHE_MODE_UC_MINUS = 2,
23972 	_PAGE_CACHE_MODE_UC = 3,
23973 	_PAGE_CACHE_MODE_WT = 4,
23974 	_PAGE_CACHE_MODE_WP = 5,
23975 	_PAGE_CACHE_MODE_NUM = 8,
23976 };
23977 
23978 struct irq_cfg {
23979 	unsigned int dest_apicid;
23980 	unsigned int vector;
23981 };
23982 
23983 union apic_ir {
23984 	long unsigned int map[4];
23985 	u32 regs[8];
23986 };
23987 
23988 enum {
23989 	IRQ_SET_MASK_OK = 0,
23990 	IRQ_SET_MASK_OK_NOCOPY = 1,
23991 	IRQ_SET_MASK_OK_DONE = 2,
23992 };
23993 
23994 enum {
23995 	IRQD_TRIGGER_MASK = 15,
23996 	IRQD_SETAFFINITY_PENDING = 256,
23997 	IRQD_ACTIVATED = 512,
23998 	IRQD_NO_BALANCING = 1024,
23999 	IRQD_PER_CPU = 2048,
24000 	IRQD_AFFINITY_SET = 4096,
24001 	IRQD_LEVEL = 8192,
24002 	IRQD_WAKEUP_STATE = 16384,
24003 	IRQD_MOVE_PCNTXT = 32768,
24004 	IRQD_IRQ_DISABLED = 65536,
24005 	IRQD_IRQ_MASKED = 131072,
24006 	IRQD_IRQ_INPROGRESS = 262144,
24007 	IRQD_WAKEUP_ARMED = 524288,
24008 	IRQD_FORWARDED_TO_VCPU = 1048576,
24009 	IRQD_AFFINITY_MANAGED = 2097152,
24010 	IRQD_IRQ_STARTED = 4194304,
24011 	IRQD_MANAGED_SHUTDOWN = 8388608,
24012 	IRQD_SINGLE_TARGET = 16777216,
24013 	IRQD_DEFAULT_TRIGGER_SET = 33554432,
24014 	IRQD_CAN_RESERVE = 67108864,
24015 	IRQD_MSI_NOMASK_QUIRK = 134217728,
24016 	IRQD_HANDLE_ENFORCE_IRQCTX = 268435456,
24017 	IRQD_AFFINITY_ON_ACTIVATE = 536870912,
24018 	IRQD_IRQ_ENABLED_ON_SUSPEND = 1073741824,
24019 };
24020 
24021 enum {
24022 	IRQCHIP_FWNODE_REAL = 0,
24023 	IRQCHIP_FWNODE_NAMED = 1,
24024 	IRQCHIP_FWNODE_NAMED_ID = 2,
24025 };
24026 
24027 enum {
24028 	X86_IRQ_ALLOC_CONTIGUOUS_VECTORS = 1,
24029 	X86_IRQ_ALLOC_LEGACY = 2,
24030 };
24031 
24032 struct apic_chip_data {
24033 	struct irq_cfg hw_irq_cfg;
24034 	unsigned int vector;
24035 	unsigned int prev_vector;
24036 	unsigned int cpu;
24037 	unsigned int prev_cpu;
24038 	unsigned int irq;
24039 	struct hlist_node clist;
24040 	unsigned int move_in_progress: 1;
24041 	unsigned int is_managed: 1;
24042 	unsigned int can_reserve: 1;
24043 	unsigned int has_reserved: 1;
24044 };
24045 
24046 struct irq_matrix;
24047 
24048 enum {
24049 	IRQ_TYPE_NONE = 0,
24050 	IRQ_TYPE_EDGE_RISING = 1,
24051 	IRQ_TYPE_EDGE_FALLING = 2,
24052 	IRQ_TYPE_EDGE_BOTH = 3,
24053 	IRQ_TYPE_LEVEL_HIGH = 4,
24054 	IRQ_TYPE_LEVEL_LOW = 8,
24055 	IRQ_TYPE_LEVEL_MASK = 12,
24056 	IRQ_TYPE_SENSE_MASK = 15,
24057 	IRQ_TYPE_DEFAULT = 15,
24058 	IRQ_TYPE_PROBE = 16,
24059 	IRQ_LEVEL = 256,
24060 	IRQ_PER_CPU = 512,
24061 	IRQ_NOPROBE = 1024,
24062 	IRQ_NOREQUEST = 2048,
24063 	IRQ_NOAUTOEN = 4096,
24064 	IRQ_NO_BALANCING = 8192,
24065 	IRQ_MOVE_PCNTXT = 16384,
24066 	IRQ_NESTED_THREAD = 32768,
24067 	IRQ_NOTHREAD = 65536,
24068 	IRQ_PER_CPU_DEVID = 131072,
24069 	IRQ_IS_POLLED = 262144,
24070 	IRQ_DISABLE_UNLAZY = 524288,
24071 	IRQ_HIDDEN = 1048576,
24072 	IRQ_NO_DEBUG = 2097152,
24073 };
24074 
24075 enum {
24076 	IRQCHIP_SET_TYPE_MASKED = 1,
24077 	IRQCHIP_EOI_IF_HANDLED = 2,
24078 	IRQCHIP_MASK_ON_SUSPEND = 4,
24079 	IRQCHIP_ONOFFLINE_ENABLED = 8,
24080 	IRQCHIP_SKIP_SET_WAKE = 16,
24081 	IRQCHIP_ONESHOT_SAFE = 32,
24082 	IRQCHIP_EOI_THREADED = 64,
24083 	IRQCHIP_SUPPORTS_LEVEL_MSI = 128,
24084 	IRQCHIP_SUPPORTS_NMI = 256,
24085 	IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND = 512,
24086 	IRQCHIP_AFFINITY_PRE_STARTUP = 1024,
24087 };
24088 
24089 union IO_APIC_reg_00 {
24090 	u32 raw;
24091 	struct {
24092 		u32 __reserved_2: 14;
24093 		u32 LTS: 1;
24094 		u32 delivery_type: 1;
24095 		u32 __reserved_1: 8;
24096 		u32 ID: 8;
24097 	} bits;
24098 };
24099 
24100 union IO_APIC_reg_01 {
24101 	u32 raw;
24102 	struct {
24103 		u32 version: 8;
24104 		u32 __reserved_2: 7;
24105 		u32 PRQ: 1;
24106 		u32 entries: 8;
24107 		u32 __reserved_1: 8;
24108 	} bits;
24109 };
24110 
24111 union IO_APIC_reg_02 {
24112 	u32 raw;
24113 	struct {
24114 		u32 __reserved_2: 24;
24115 		u32 arbitration: 4;
24116 		u32 __reserved_1: 4;
24117 	} bits;
24118 };
24119 
24120 union IO_APIC_reg_03 {
24121 	u32 raw;
24122 	struct {
24123 		u32 boot_DT: 1;
24124 		u32 __reserved_1: 31;
24125 	} bits;
24126 };
24127 
24128 struct IO_APIC_route_entry {
24129 	union {
24130 		struct {
24131 			u64 vector: 8;
24132 			u64 delivery_mode: 3;
24133 			u64 dest_mode_logical: 1;
24134 			u64 delivery_status: 1;
24135 			u64 active_low: 1;
24136 			u64 irr: 1;
24137 			u64 is_level: 1;
24138 			u64 masked: 1;
24139 			u64 reserved_0: 15;
24140 			u64 reserved_1: 17;
24141 			u64 virt_destid_8_14: 7;
24142 			u64 destid_0_7: 8;
24143 		};
24144 		struct {
24145 			u64 ir_shared_0: 8;
24146 			u64 ir_zero: 3;
24147 			u64 ir_index_15: 1;
24148 			u64 ir_shared_1: 5;
24149 			u64 ir_reserved_0: 31;
24150 			u64 ir_format: 1;
24151 			u64 ir_index_0_14: 15;
24152 		};
24153 		struct {
24154 			u64 w1: 32;
24155 			u64 w2: 32;
24156 		};
24157 	};
24158 };
24159 
24160 struct irq_pin_list {
24161 	struct list_head list;
24162 	int apic;
24163 	int pin;
24164 };
24165 
24166 struct mp_chip_data {
24167 	struct list_head irq_2_pin;
24168 	struct IO_APIC_route_entry entry;
24169 	bool is_level;
24170 	bool active_low;
24171 	bool isa_irq;
24172 	u32 count;
24173 };
24174 
24175 struct mp_ioapic_gsi {
24176 	u32 gsi_base;
24177 	u32 gsi_end;
24178 };
24179 
24180 struct ioapic {
24181 	int nr_registers;
24182 	struct IO_APIC_route_entry *saved_registers;
24183 	struct mpc_ioapic mp_config;
24184 	struct mp_ioapic_gsi gsi_config;
24185 	struct ioapic_domain_cfg irqdomain_cfg;
24186 	struct irq_domain *irqdomain;
24187 	struct resource *iomem_res;
24188 };
24189 
24190 struct io_apic {
24191 	unsigned int index;
24192 	unsigned int unused[3];
24193 	unsigned int data;
24194 	unsigned int unused2[11];
24195 	unsigned int eoi;
24196 };
24197 
24198 enum {
24199 	IRQ_DOMAIN_FLAG_HIERARCHY = 1,
24200 	IRQ_DOMAIN_NAME_ALLOCATED = 2,
24201 	IRQ_DOMAIN_FLAG_IPI_PER_CPU = 4,
24202 	IRQ_DOMAIN_FLAG_IPI_SINGLE = 8,
24203 	IRQ_DOMAIN_FLAG_MSI = 16,
24204 	IRQ_DOMAIN_FLAG_MSI_REMAP = 32,
24205 	IRQ_DOMAIN_MSI_NOMASK_QUIRK = 64,
24206 	IRQ_DOMAIN_FLAG_NO_MAP = 128,
24207 	IRQ_DOMAIN_FLAG_NONCORE = 65536,
24208 };
24209 
24210 typedef struct irq_alloc_info msi_alloc_info_t;
24211 
24212 struct msi_domain_info;
24213 
24214 struct msi_domain_ops {
24215 	irq_hw_number_t (*get_hwirq)(struct msi_domain_info *, msi_alloc_info_t *);
24216 	int (*msi_init)(struct irq_domain *, struct msi_domain_info *, unsigned int, irq_hw_number_t, msi_alloc_info_t *);
24217 	void (*msi_free)(struct irq_domain *, struct msi_domain_info *, unsigned int);
24218 	int (*msi_check)(struct irq_domain *, struct msi_domain_info *, struct device *);
24219 	int (*msi_prepare)(struct irq_domain *, struct device *, int, msi_alloc_info_t *);
24220 	void (*set_desc)(msi_alloc_info_t *, struct msi_desc *);
24221 	int (*domain_alloc_irqs)(struct irq_domain *, struct device *, int);
24222 	void (*domain_free_irqs)(struct irq_domain *, struct device *);
24223 };
24224 
24225 struct msi_domain_info {
24226 	u32 flags;
24227 	struct msi_domain_ops *ops;
24228 	struct irq_chip *chip;
24229 	void *chip_data;
24230 	irq_flow_handler_t handler;
24231 	void *handler_data;
24232 	const char *handler_name;
24233 	void *data;
24234 };
24235 
24236 enum {
24237 	MSI_FLAG_USE_DEF_DOM_OPS = 1,
24238 	MSI_FLAG_USE_DEF_CHIP_OPS = 2,
24239 	MSI_FLAG_MULTI_PCI_MSI = 4,
24240 	MSI_FLAG_PCI_MSIX = 8,
24241 	MSI_FLAG_ACTIVATE_EARLY = 16,
24242 	MSI_FLAG_MUST_REACTIVATE = 32,
24243 	MSI_FLAG_LEVEL_CAPABLE = 64,
24244 	MSI_FLAG_DEV_SYSFS = 128,
24245 	MSI_FLAG_MSIX_CONTIGUOUS = 256,
24246 	MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS = 512,
24247 	MSI_FLAG_FREE_MSI_DESCS = 1024,
24248 };
24249 
24250 enum {
24251 	TRACE_FTRACE_BIT = 0,
24252 	TRACE_FTRACE_NMI_BIT = 1,
24253 	TRACE_FTRACE_IRQ_BIT = 2,
24254 	TRACE_FTRACE_SIRQ_BIT = 3,
24255 	TRACE_FTRACE_TRANSITION_BIT = 4,
24256 	TRACE_INTERNAL_BIT = 5,
24257 	TRACE_INTERNAL_NMI_BIT = 6,
24258 	TRACE_INTERNAL_IRQ_BIT = 7,
24259 	TRACE_INTERNAL_SIRQ_BIT = 8,
24260 	TRACE_INTERNAL_TRANSITION_BIT = 9,
24261 	TRACE_BRANCH_BIT = 10,
24262 	TRACE_IRQ_BIT = 11,
24263 	TRACE_GRAPH_BIT = 12,
24264 	TRACE_GRAPH_DEPTH_START_BIT = 13,
24265 	TRACE_GRAPH_DEPTH_END_BIT = 14,
24266 	TRACE_GRAPH_NOTRACE_BIT = 15,
24267 	TRACE_RECORD_RECURSION_BIT = 16,
24268 };
24269 
24270 enum {
24271 	TRACE_CTX_NMI = 0,
24272 	TRACE_CTX_IRQ = 1,
24273 	TRACE_CTX_SOFTIRQ = 2,
24274 	TRACE_CTX_NORMAL = 3,
24275 	TRACE_CTX_TRANSITION = 4,
24276 };
24277 
24278 struct dyn_arch_ftrace {};
24279 
24280 enum {
24281 	FTRACE_OPS_FL_ENABLED = 1,
24282 	FTRACE_OPS_FL_DYNAMIC = 2,
24283 	FTRACE_OPS_FL_SAVE_REGS = 4,
24284 	FTRACE_OPS_FL_SAVE_REGS_IF_SUPPORTED = 8,
24285 	FTRACE_OPS_FL_RECURSION = 16,
24286 	FTRACE_OPS_FL_STUB = 32,
24287 	FTRACE_OPS_FL_INITIALIZED = 64,
24288 	FTRACE_OPS_FL_DELETED = 128,
24289 	FTRACE_OPS_FL_ADDING = 256,
24290 	FTRACE_OPS_FL_REMOVING = 512,
24291 	FTRACE_OPS_FL_MODIFYING = 1024,
24292 	FTRACE_OPS_FL_ALLOC_TRAMP = 2048,
24293 	FTRACE_OPS_FL_IPMODIFY = 4096,
24294 	FTRACE_OPS_FL_PID = 8192,
24295 	FTRACE_OPS_FL_RCU = 16384,
24296 	FTRACE_OPS_FL_TRACE_ARRAY = 32768,
24297 	FTRACE_OPS_FL_PERMANENT = 65536,
24298 	FTRACE_OPS_FL_DIRECT = 131072,
24299 };
24300 
24301 enum {
24302 	FTRACE_FL_ENABLED = 2147483648,
24303 	FTRACE_FL_REGS = 1073741824,
24304 	FTRACE_FL_REGS_EN = 536870912,
24305 	FTRACE_FL_TRAMP = 268435456,
24306 	FTRACE_FL_TRAMP_EN = 134217728,
24307 	FTRACE_FL_IPMODIFY = 67108864,
24308 	FTRACE_FL_DISABLED = 33554432,
24309 	FTRACE_FL_DIRECT = 16777216,
24310 	FTRACE_FL_DIRECT_EN = 8388608,
24311 };
24312 
24313 struct dyn_ftrace {
24314 	long unsigned int ip;
24315 	long unsigned int flags;
24316 	struct dyn_arch_ftrace arch;
24317 };
24318 
24319 enum {
24320 	FTRACE_UPDATE_IGNORE = 0,
24321 	FTRACE_UPDATE_MAKE_CALL = 1,
24322 	FTRACE_UPDATE_MODIFY_CALL = 2,
24323 	FTRACE_UPDATE_MAKE_NOP = 3,
24324 };
24325 
24326 union ftrace_op_code_union {
24327 	char code[7];
24328 	struct {
24329 		char op[3];
24330 		int offset;
24331 	} __attribute__((packed));
24332 };
24333 
24334 struct ftrace_rec_iter;
24335 
24336 struct x86_mapping_info {
24337 	void * (*alloc_pgt_page)(void *);
24338 	void *context;
24339 	long unsigned int page_flag;
24340 	long unsigned int offset;
24341 	bool direct_gbpages;
24342 	long unsigned int kernpg_flag;
24343 };
24344 
24345 struct kexec_file_ops;
24346 
24347 struct init_pgtable_data {
24348 	struct x86_mapping_info *info;
24349 	pgd_t *level4p;
24350 };
24351 
24352 struct freelist_node {
24353 	atomic_t refs;
24354 	struct freelist_node *next;
24355 };
24356 
24357 struct freelist_head {
24358 	struct freelist_node *head;
24359 };
24360 
24361 struct kretprobe_instance;
24362 
24363 typedef int (*kretprobe_handler_t)(struct kretprobe_instance *, struct pt_regs *);
24364 
24365 struct kretprobe_holder;
24366 
24367 struct kretprobe_instance {
24368 	union {
24369 		struct freelist_node freelist;
24370 		struct callback_head rcu;
24371 	};
24372 	struct llist_node llist;
24373 	struct kretprobe_holder *rph;
24374 	kprobe_opcode_t *ret_addr;
24375 	void *fp;
24376 	char data[0];
24377 };
24378 
24379 struct kretprobe;
24380 
24381 struct kretprobe_holder {
24382 	struct kretprobe *rp;
24383 	refcount_t ref;
24384 };
24385 
24386 struct kretprobe {
24387 	struct kprobe kp;
24388 	kretprobe_handler_t handler;
24389 	kretprobe_handler_t entry_handler;
24390 	int maxactive;
24391 	int nmissed;
24392 	size_t data_size;
24393 	struct freelist_head freelist;
24394 	struct kretprobe_holder *rph;
24395 };
24396 
24397 struct __arch_relative_insn {
24398 	u8 op;
24399 	s32 raddr;
24400 } __attribute__((packed));
24401 
24402 struct arch_optimized_insn {
24403 	kprobe_opcode_t copied_insn[4];
24404 	kprobe_opcode_t *insn;
24405 	size_t size;
24406 };
24407 
24408 struct optimized_kprobe {
24409 	struct kprobe kp;
24410 	struct list_head list;
24411 	struct arch_optimized_insn optinsn;
24412 };
24413 
24414 typedef __u64 Elf64_Off;
24415 
24416 struct elf64_rela {
24417 	Elf64_Addr r_offset;
24418 	Elf64_Xword r_info;
24419 	Elf64_Sxword r_addend;
24420 };
24421 
24422 typedef struct elf64_rela Elf64_Rela;
24423 
24424 struct elf64_hdr {
24425 	unsigned char e_ident[16];
24426 	Elf64_Half e_type;
24427 	Elf64_Half e_machine;
24428 	Elf64_Word e_version;
24429 	Elf64_Addr e_entry;
24430 	Elf64_Off e_phoff;
24431 	Elf64_Off e_shoff;
24432 	Elf64_Word e_flags;
24433 	Elf64_Half e_ehsize;
24434 	Elf64_Half e_phentsize;
24435 	Elf64_Half e_phnum;
24436 	Elf64_Half e_shentsize;
24437 	Elf64_Half e_shnum;
24438 	Elf64_Half e_shstrndx;
24439 };
24440 
24441 typedef struct elf64_hdr Elf64_Ehdr;
24442 
24443 struct elf64_shdr {
24444 	Elf64_Word sh_name;
24445 	Elf64_Word sh_type;
24446 	Elf64_Xword sh_flags;
24447 	Elf64_Addr sh_addr;
24448 	Elf64_Off sh_offset;
24449 	Elf64_Xword sh_size;
24450 	Elf64_Word sh_link;
24451 	Elf64_Word sh_info;
24452 	Elf64_Xword sh_addralign;
24453 	Elf64_Xword sh_entsize;
24454 };
24455 
24456 typedef struct elf64_shdr Elf64_Shdr;
24457 
24458 struct hpet_data {
24459 	long unsigned int hd_phys_address;
24460 	void *hd_address;
24461 	short unsigned int hd_nirqs;
24462 	unsigned int hd_state;
24463 	unsigned int hd_irq[32];
24464 };
24465 
24466 enum hpet_mode {
24467 	HPET_MODE_UNUSED = 0,
24468 	HPET_MODE_LEGACY = 1,
24469 	HPET_MODE_CLOCKEVT = 2,
24470 	HPET_MODE_DEVICE = 3,
24471 };
24472 
24473 struct hpet_channel {
24474 	struct clock_event_device evt;
24475 	unsigned int num;
24476 	unsigned int cpu;
24477 	unsigned int irq;
24478 	unsigned int in_use;
24479 	enum hpet_mode mode;
24480 	unsigned int boot_cfg;
24481 	char name[10];
24482 	long: 48;
24483 	long: 64;
24484 	long: 64;
24485 	long: 64;
24486 };
24487 
24488 struct hpet_base {
24489 	unsigned int nr_channels;
24490 	unsigned int nr_clockevents;
24491 	unsigned int boot_cfg;
24492 	struct hpet_channel *channels;
24493 };
24494 
24495 union hpet_lock {
24496 	struct {
24497 		arch_spinlock_t lock;
24498 		u32 value;
24499 	};
24500 	u64 lockval;
24501 };
24502 
24503 struct amd_northbridge_info {
24504 	u16 num;
24505 	u64 flags;
24506 	struct amd_northbridge *nb;
24507 };
24508 
24509 struct property_entry;
24510 
24511 struct platform_device_info {
24512 	struct device *parent;
24513 	struct fwnode_handle *fwnode;
24514 	bool of_node_reused;
24515 	const char *name;
24516 	int id;
24517 	const struct resource *res;
24518 	unsigned int num_res;
24519 	const void *data;
24520 	size_t size_data;
24521 	u64 dma_mask;
24522 	const struct property_entry *properties;
24523 };
24524 
24525 enum dev_prop_type {
24526 	DEV_PROP_U8 = 0,
24527 	DEV_PROP_U16 = 1,
24528 	DEV_PROP_U32 = 2,
24529 	DEV_PROP_U64 = 3,
24530 	DEV_PROP_STRING = 4,
24531 	DEV_PROP_REF = 5,
24532 };
24533 
24534 struct property_entry {
24535 	const char *name;
24536 	size_t length;
24537 	bool is_inline;
24538 	enum dev_prop_type type;
24539 	union {
24540 		const void *pointer;
24541 		union {
24542 			u8 u8_data[8];
24543 			u16 u16_data[4];
24544 			u32 u32_data[2];
24545 			u64 u64_data[1];
24546 			const char *str[1];
24547 		} value;
24548 	};
24549 };
24550 
24551 struct uprobe_xol_ops;
24552 
24553 struct arch_uprobe {
24554 	union {
24555 		u8 insn[16];
24556 		u8 ixol[16];
24557 	};
24558 	const struct uprobe_xol_ops *ops;
24559 	union {
24560 		struct {
24561 			s32 offs;
24562 			u8 ilen;
24563 			u8 opc1;
24564 		} branch;
24565 		struct {
24566 			u8 fixups;
24567 			u8 ilen;
24568 		} defparam;
24569 		struct {
24570 			u8 reg_offset;
24571 			u8 ilen;
24572 		} push;
24573 	};
24574 };
24575 
24576 struct uprobe_xol_ops {
24577 	bool (*emulate)(struct arch_uprobe *, struct pt_regs *);
24578 	int (*pre_xol)(struct arch_uprobe *, struct pt_regs *);
24579 	int (*post_xol)(struct arch_uprobe *, struct pt_regs *);
24580 	void (*abort)(struct arch_uprobe *, struct pt_regs *);
24581 };
24582 
24583 enum rp_check {
24584 	RP_CHECK_CALL = 0,
24585 	RP_CHECK_CHAIN_CALL = 1,
24586 	RP_CHECK_RET = 2,
24587 };
24588 
24589 enum perf_sample_regs_abi {
24590 	PERF_SAMPLE_REGS_ABI_NONE = 0,
24591 	PERF_SAMPLE_REGS_ABI_32 = 1,
24592 	PERF_SAMPLE_REGS_ABI_64 = 2,
24593 };
24594 
24595 struct va_format {
24596 	const char *fmt;
24597 	va_list *va;
24598 };
24599 
24600 enum auditsc_class_t {
24601 	AUDITSC_NATIVE = 0,
24602 	AUDITSC_COMPAT = 1,
24603 	AUDITSC_OPEN = 2,
24604 	AUDITSC_OPENAT = 3,
24605 	AUDITSC_SOCKETCALL = 4,
24606 	AUDITSC_EXECVE = 5,
24607 	AUDITSC_OPENAT2 = 6,
24608 	AUDITSC_NVALS = 7,
24609 };
24610 
24611 enum chipset_type {
24612 	NOT_SUPPORTED = 0,
24613 	SUPPORTED = 1,
24614 };
24615 
24616 struct agp_version {
24617 	u16 major;
24618 	u16 minor;
24619 };
24620 
24621 struct agp_kern_info {
24622 	struct agp_version version;
24623 	struct pci_dev *device;
24624 	enum chipset_type chipset;
24625 	long unsigned int mode;
24626 	long unsigned int aper_base;
24627 	size_t aper_size;
24628 	int max_memory;
24629 	int current_memory;
24630 	bool cant_use_aperture;
24631 	long unsigned int page_mask;
24632 	const struct vm_operations_struct *vm_ops;
24633 };
24634 
24635 struct agp_bridge_data;
24636 
24637 struct pci_hostbridge_probe {
24638 	u32 bus;
24639 	u32 slot;
24640 	u32 vendor;
24641 	u32 device;
24642 };
24643 
24644 typedef u8 uint8_t;
24645 
24646 enum pg_level {
24647 	PG_LEVEL_NONE = 0,
24648 	PG_LEVEL_4K = 1,
24649 	PG_LEVEL_2M = 2,
24650 	PG_LEVEL_1G = 3,
24651 	PG_LEVEL_512G = 4,
24652 	PG_LEVEL_NUM = 5,
24653 };
24654 
24655 struct trace_print_flags {
24656 	long unsigned int mask;
24657 	const char *name;
24658 };
24659 
24660 enum tlb_flush_reason {
24661 	TLB_FLUSH_ON_TASK_SWITCH = 0,
24662 	TLB_REMOTE_SHOOTDOWN = 1,
24663 	TLB_LOCAL_SHOOTDOWN = 2,
24664 	TLB_LOCAL_MM_SHOOTDOWN = 3,
24665 	TLB_REMOTE_SEND_IPI = 4,
24666 	NR_TLB_FLUSH_REASONS = 5,
24667 };
24668 
24669 enum {
24670 	REGION_INTERSECTS = 0,
24671 	REGION_DISJOINT = 1,
24672 	REGION_MIXED = 2,
24673 };
24674 
24675 struct trace_event_raw_tlb_flush {
24676 	struct trace_entry ent;
24677 	int reason;
24678 	long unsigned int pages;
24679 	char __data[0];
24680 };
24681 
24682 struct trace_event_data_offsets_tlb_flush {};
24683 
24684 typedef void (*btf_trace_tlb_flush)(void *, int, long unsigned int);
24685 
24686 struct map_range {
24687 	long unsigned int start;
24688 	long unsigned int end;
24689 	unsigned int page_size_mask;
24690 };
24691 
24692 enum kcore_type {
24693 	KCORE_TEXT = 0,
24694 	KCORE_VMALLOC = 1,
24695 	KCORE_RAM = 2,
24696 	KCORE_VMEMMAP = 3,
24697 	KCORE_USER = 4,
24698 };
24699 
24700 struct kcore_list {
24701 	struct list_head list;
24702 	long unsigned int addr;
24703 	size_t size;
24704 	int type;
24705 };
24706 
24707 struct trace_event_raw_x86_exceptions {
24708 	struct trace_entry ent;
24709 	long unsigned int address;
24710 	long unsigned int ip;
24711 	long unsigned int error_code;
24712 	char __data[0];
24713 };
24714 
24715 struct trace_event_data_offsets_x86_exceptions {};
24716 
24717 typedef void (*btf_trace_page_fault_user)(void *, long unsigned int, struct pt_regs *, long unsigned int);
24718 
24719 typedef void (*btf_trace_page_fault_kernel)(void *, long unsigned int, struct pt_regs *, long unsigned int);
24720 
24721 enum {
24722 	IORES_MAP_SYSTEM_RAM = 1,
24723 	IORES_MAP_ENCRYPTED = 2,
24724 };
24725 
24726 struct ioremap_desc {
24727 	unsigned int flags;
24728 };
24729 
24730 struct hugepage_subpool {
24731 	spinlock_t lock;
24732 	long int count;
24733 	long int max_hpages;
24734 	long int used_hpages;
24735 	struct hstate *hstate;
24736 	long int min_hpages;
24737 	long int rsv_hpages;
24738 };
24739 
24740 struct hugetlbfs_sb_info {
24741 	long int max_inodes;
24742 	long int free_inodes;
24743 	spinlock_t stat_lock;
24744 	struct hstate *hstate;
24745 	struct hugepage_subpool *spool;
24746 	kuid_t uid;
24747 	kgid_t gid;
24748 	umode_t mode;
24749 };
24750 
24751 struct flush_tlb_info {
24752 	struct mm_struct *mm;
24753 	long unsigned int start;
24754 	long unsigned int end;
24755 	u64 new_tlb_gen;
24756 	unsigned int initiating_cpu;
24757 	u8 stride_shift;
24758 	u8 freed_tables;
24759 };
24760 
24761 struct exception_stacks {
24762 	char DF_stack_guard[0];
24763 	char DF_stack[8192];
24764 	char NMI_stack_guard[0];
24765 	char NMI_stack[8192];
24766 	char DB_stack_guard[0];
24767 	char DB_stack[8192];
24768 	char MCE_stack_guard[0];
24769 	char MCE_stack[8192];
24770 	char VC_stack_guard[0];
24771 	char VC_stack[0];
24772 	char VC2_stack_guard[0];
24773 	char VC2_stack[0];
24774 	char IST_top_guard[0];
24775 };
24776 
24777 struct cpa_data {
24778 	long unsigned int *vaddr;
24779 	pgd_t *pgd;
24780 	pgprot_t mask_set;
24781 	pgprot_t mask_clr;
24782 	long unsigned int numpages;
24783 	long unsigned int curpage;
24784 	long unsigned int pfn;
24785 	unsigned int flags;
24786 	unsigned int force_split: 1;
24787 	unsigned int force_static_prot: 1;
24788 	unsigned int force_flush_all: 1;
24789 	struct page **pages;
24790 };
24791 
24792 enum cpa_warn {
24793 	CPA_CONFLICT = 0,
24794 	CPA_PROTECT = 1,
24795 	CPA_DETECT = 2,
24796 };
24797 
24798 typedef struct {
24799 	u64 val;
24800 } pfn_t;
24801 
24802 struct memtype {
24803 	u64 start;
24804 	u64 end;
24805 	u64 subtree_max_end;
24806 	enum page_cache_mode type;
24807 	struct rb_node rb;
24808 };
24809 
24810 enum {
24811 	PAT_UC = 0,
24812 	PAT_WC = 1,
24813 	PAT_WT = 4,
24814 	PAT_WP = 5,
24815 	PAT_WB = 6,
24816 	PAT_UC_MINUS = 7,
24817 };
24818 
24819 struct pagerange_state {
24820 	long unsigned int cur_pfn;
24821 	int ram;
24822 	int not_ram;
24823 };
24824 
24825 struct rb_augment_callbacks {
24826 	void (*propagate)(struct rb_node *, struct rb_node *);
24827 	void (*copy)(struct rb_node *, struct rb_node *);
24828 	void (*rotate)(struct rb_node *, struct rb_node *);
24829 };
24830 
24831 enum {
24832 	MEMTYPE_EXACT_MATCH = 0,
24833 	MEMTYPE_END_MATCH = 1,
24834 };
24835 
24836 struct numa_memblk {
24837 	u64 start;
24838 	u64 end;
24839 	int nid;
24840 };
24841 
24842 struct numa_meminfo {
24843 	int nr_blks;
24844 	struct numa_memblk blk[128];
24845 };
24846 
24847 struct acpi_srat_cpu_affinity {
24848 	struct acpi_subtable_header header;
24849 	u8 proximity_domain_lo;
24850 	u8 apic_id;
24851 	u32 flags;
24852 	u8 local_sapic_eid;
24853 	u8 proximity_domain_hi[3];
24854 	u32 clock_domain;
24855 };
24856 
24857 struct acpi_srat_x2apic_cpu_affinity {
24858 	struct acpi_subtable_header header;
24859 	u16 reserved;
24860 	u32 proximity_domain;
24861 	u32 apic_id;
24862 	u32 flags;
24863 	u32 clock_domain;
24864 	u32 reserved2;
24865 };
24866 
24867 enum uv_system_type {
24868 	UV_NONE = 0,
24869 	UV_LEGACY_APIC = 1,
24870 	UV_X2APIC = 2,
24871 };
24872 
24873 enum pti_mode {
24874 	PTI_AUTO = 0,
24875 	PTI_FORCE_OFF = 1,
24876 	PTI_FORCE_ON = 2,
24877 };
24878 
24879 enum pti_clone_level {
24880 	PTI_CLONE_PMD = 0,
24881 	PTI_CLONE_PTE = 1,
24882 };
24883 
24884 typedef struct {
24885 	efi_guid_t guid;
24886 	u64 table;
24887 } efi_config_table_64_t;
24888 
24889 struct efi_memory_map_data {
24890 	phys_addr_t phys_map;
24891 	long unsigned int size;
24892 	long unsigned int desc_version;
24893 	long unsigned int desc_size;
24894 	long unsigned int flags;
24895 };
24896 
24897 struct efi_mem_range {
24898 	struct range range;
24899 	u64 attribute;
24900 };
24901 
24902 struct efi_setup_data {
24903 	u64 fw_vendor;
24904 	u64 __unused;
24905 	u64 tables;
24906 	u64 smbios;
24907 	u64 reserved[8];
24908 };
24909 
24910 typedef struct {
24911 	efi_guid_t guid;
24912 	long unsigned int *ptr;
24913 	const char name[16];
24914 } efi_config_table_type_t;
24915 
24916 typedef struct {
24917 	efi_table_hdr_t hdr;
24918 	u64 fw_vendor;
24919 	u32 fw_revision;
24920 	u32 __pad1;
24921 	u64 con_in_handle;
24922 	u64 con_in;
24923 	u64 con_out_handle;
24924 	u64 con_out;
24925 	u64 stderr_handle;
24926 	u64 stderr;
24927 	u64 runtime;
24928 	u64 boottime;
24929 	u32 nr_tables;
24930 	u32 __pad2;
24931 	u64 tables;
24932 } efi_system_table_64_t;
24933 
24934 typedef struct {
24935 	efi_table_hdr_t hdr;
24936 	u32 fw_vendor;
24937 	u32 fw_revision;
24938 	u32 con_in_handle;
24939 	u32 con_in;
24940 	u32 con_out_handle;
24941 	u32 con_out;
24942 	u32 stderr_handle;
24943 	u32 stderr;
24944 	u32 runtime;
24945 	u32 boottime;
24946 	u32 nr_tables;
24947 	u32 tables;
24948 } efi_system_table_32_t;
24949 
24950 typedef struct {
24951 	u32 version;
24952 	u32 length;
24953 	u64 memory_protection_attribute;
24954 } efi_properties_table_t;
24955 
24956 union efi_boot_services;
24957 
24958 typedef union efi_boot_services efi_boot_services_t;
24959 
24960 union efi_simple_text_input_protocol;
24961 
24962 typedef union efi_simple_text_input_protocol efi_simple_text_input_protocol_t;
24963 
24964 union efi_simple_text_output_protocol;
24965 
24966 typedef union efi_simple_text_output_protocol efi_simple_text_output_protocol_t;
24967 
24968 typedef union {
24969 	struct {
24970 		efi_table_hdr_t hdr;
24971 		long unsigned int fw_vendor;
24972 		u32 fw_revision;
24973 		long unsigned int con_in_handle;
24974 		efi_simple_text_input_protocol_t *con_in;
24975 		long unsigned int con_out_handle;
24976 		efi_simple_text_output_protocol_t *con_out;
24977 		long unsigned int stderr_handle;
24978 		long unsigned int stderr;
24979 		efi_runtime_services_t *runtime;
24980 		efi_boot_services_t *boottime;
24981 		long unsigned int nr_tables;
24982 		long unsigned int tables;
24983 	};
24984 	efi_system_table_32_t mixed_mode;
24985 } efi_system_table_t;
24986 
24987 struct bpf_run_ctx {};
24988 
24989 struct bpf_cgroup_storage;
24990 
24991 struct bpf_prog_array_item {
24992 	struct bpf_prog *prog;
24993 	union {
24994 		struct bpf_cgroup_storage *cgroup_storage[2];
24995 		u64 bpf_cookie;
24996 	};
24997 };
24998 
24999 struct bpf_prog_array {
25000 	struct callback_head rcu;
25001 	struct bpf_prog_array_item items[0];
25002 };
25003 
25004 enum bpf_prog_type {
25005 	BPF_PROG_TYPE_UNSPEC = 0,
25006 	BPF_PROG_TYPE_SOCKET_FILTER = 1,
25007 	BPF_PROG_TYPE_KPROBE = 2,
25008 	BPF_PROG_TYPE_SCHED_CLS = 3,
25009 	BPF_PROG_TYPE_SCHED_ACT = 4,
25010 	BPF_PROG_TYPE_TRACEPOINT = 5,
25011 	BPF_PROG_TYPE_XDP = 6,
25012 	BPF_PROG_TYPE_PERF_EVENT = 7,
25013 	BPF_PROG_TYPE_CGROUP_SKB = 8,
25014 	BPF_PROG_TYPE_CGROUP_SOCK = 9,
25015 	BPF_PROG_TYPE_LWT_IN = 10,
25016 	BPF_PROG_TYPE_LWT_OUT = 11,
25017 	BPF_PROG_TYPE_LWT_XMIT = 12,
25018 	BPF_PROG_TYPE_SOCK_OPS = 13,
25019 	BPF_PROG_TYPE_SK_SKB = 14,
25020 	BPF_PROG_TYPE_CGROUP_DEVICE = 15,
25021 	BPF_PROG_TYPE_SK_MSG = 16,
25022 	BPF_PROG_TYPE_RAW_TRACEPOINT = 17,
25023 	BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 18,
25024 	BPF_PROG_TYPE_LWT_SEG6LOCAL = 19,
25025 	BPF_PROG_TYPE_LIRC_MODE2 = 20,
25026 	BPF_PROG_TYPE_SK_REUSEPORT = 21,
25027 	BPF_PROG_TYPE_FLOW_DISSECTOR = 22,
25028 	BPF_PROG_TYPE_CGROUP_SYSCTL = 23,
25029 	BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 24,
25030 	BPF_PROG_TYPE_CGROUP_SOCKOPT = 25,
25031 	BPF_PROG_TYPE_TRACING = 26,
25032 	BPF_PROG_TYPE_STRUCT_OPS = 27,
25033 	BPF_PROG_TYPE_EXT = 28,
25034 	BPF_PROG_TYPE_LSM = 29,
25035 	BPF_PROG_TYPE_SK_LOOKUP = 30,
25036 	BPF_PROG_TYPE_SYSCALL = 31,
25037 };
25038 
25039 enum bpf_attach_type {
25040 	BPF_CGROUP_INET_INGRESS = 0,
25041 	BPF_CGROUP_INET_EGRESS = 1,
25042 	BPF_CGROUP_INET_SOCK_CREATE = 2,
25043 	BPF_CGROUP_SOCK_OPS = 3,
25044 	BPF_SK_SKB_STREAM_PARSER = 4,
25045 	BPF_SK_SKB_STREAM_VERDICT = 5,
25046 	BPF_CGROUP_DEVICE = 6,
25047 	BPF_SK_MSG_VERDICT = 7,
25048 	BPF_CGROUP_INET4_BIND = 8,
25049 	BPF_CGROUP_INET6_BIND = 9,
25050 	BPF_CGROUP_INET4_CONNECT = 10,
25051 	BPF_CGROUP_INET6_CONNECT = 11,
25052 	BPF_CGROUP_INET4_POST_BIND = 12,
25053 	BPF_CGROUP_INET6_POST_BIND = 13,
25054 	BPF_CGROUP_UDP4_SENDMSG = 14,
25055 	BPF_CGROUP_UDP6_SENDMSG = 15,
25056 	BPF_LIRC_MODE2 = 16,
25057 	BPF_FLOW_DISSECTOR = 17,
25058 	BPF_CGROUP_SYSCTL = 18,
25059 	BPF_CGROUP_UDP4_RECVMSG = 19,
25060 	BPF_CGROUP_UDP6_RECVMSG = 20,
25061 	BPF_CGROUP_GETSOCKOPT = 21,
25062 	BPF_CGROUP_SETSOCKOPT = 22,
25063 	BPF_TRACE_RAW_TP = 23,
25064 	BPF_TRACE_FENTRY = 24,
25065 	BPF_TRACE_FEXIT = 25,
25066 	BPF_MODIFY_RETURN = 26,
25067 	BPF_LSM_MAC = 27,
25068 	BPF_TRACE_ITER = 28,
25069 	BPF_CGROUP_INET4_GETPEERNAME = 29,
25070 	BPF_CGROUP_INET6_GETPEERNAME = 30,
25071 	BPF_CGROUP_INET4_GETSOCKNAME = 31,
25072 	BPF_CGROUP_INET6_GETSOCKNAME = 32,
25073 	BPF_XDP_DEVMAP = 33,
25074 	BPF_CGROUP_INET_SOCK_RELEASE = 34,
25075 	BPF_XDP_CPUMAP = 35,
25076 	BPF_SK_LOOKUP = 36,
25077 	BPF_XDP = 37,
25078 	BPF_SK_SKB_VERDICT = 38,
25079 	BPF_SK_REUSEPORT_SELECT = 39,
25080 	BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40,
25081 	BPF_PERF_EVENT = 41,
25082 	__MAX_BPF_ATTACH_TYPE = 42,
25083 };
25084 
25085 struct sock_filter {
25086 	__u16 code;
25087 	__u8 jt;
25088 	__u8 jf;
25089 	__u32 k;
25090 };
25091 
25092 struct bpf_insn {
25093 	__u8 code;
25094 	__u8 dst_reg: 4;
25095 	__u8 src_reg: 4;
25096 	__s16 off;
25097 	__s32 imm;
25098 };
25099 
25100 struct bpf_prog_stats;
25101 
25102 struct bpf_prog_aux;
25103 
25104 struct sock_fprog_kern;
25105 
25106 struct bpf_prog {
25107 	u16 pages;
25108 	u16 jited: 1;
25109 	u16 jit_requested: 1;
25110 	u16 gpl_compatible: 1;
25111 	u16 cb_access: 1;
25112 	u16 dst_needed: 1;
25113 	u16 blinded: 1;
25114 	u16 is_func: 1;
25115 	u16 kprobe_override: 1;
25116 	u16 has_callchain_buf: 1;
25117 	u16 enforce_expected_attach_type: 1;
25118 	u16 call_get_stack: 1;
25119 	u16 call_get_func_ip: 1;
25120 	enum bpf_prog_type type;
25121 	enum bpf_attach_type expected_attach_type;
25122 	u32 len;
25123 	u32 jited_len;
25124 	u8 tag[8];
25125 	struct bpf_prog_stats *stats;
25126 	int *active;
25127 	unsigned int (*bpf_func)(const void *, const struct bpf_insn *);
25128 	struct bpf_prog_aux *aux;
25129 	struct sock_fprog_kern *orig_prog;
25130 	union {
25131 		struct {
25132 			struct {			} __empty_insns;
25133 			struct sock_filter insns[0];
25134 		};
25135 		struct {
25136 			struct {			} __empty_insnsi;
25137 			struct bpf_insn insnsi[0];
25138 		};
25139 	};
25140 };
25141 
25142 struct tc_stats {
25143 	__u64 bytes;
25144 	__u32 packets;
25145 	__u32 drops;
25146 	__u32 overlimits;
25147 	__u32 bps;
25148 	__u32 pps;
25149 	__u32 qlen;
25150 	__u32 backlog;
25151 };
25152 
25153 struct tc_sizespec {
25154 	unsigned char cell_log;
25155 	unsigned char size_log;
25156 	short int cell_align;
25157 	int overhead;
25158 	unsigned int linklayer;
25159 	unsigned int mpu;
25160 	unsigned int mtu;
25161 	unsigned int tsize;
25162 };
25163 
25164 struct net_rate_estimator;
25165 
25166 struct qdisc_skb_head {
25167 	struct sk_buff *head;
25168 	struct sk_buff *tail;
25169 	__u32 qlen;
25170 	spinlock_t lock;
25171 };
25172 
25173 struct gnet_stats_basic_sync {
25174 	u64_stats_t bytes;
25175 	u64_stats_t packets;
25176 	struct u64_stats_sync syncp;
25177 };
25178 
25179 struct gnet_stats_queue {
25180 	__u32 qlen;
25181 	__u32 backlog;
25182 	__u32 drops;
25183 	__u32 requeues;
25184 	__u32 overlimits;
25185 };
25186 
25187 struct Qdisc_ops;
25188 
25189 struct qdisc_size_table;
25190 
25191 struct Qdisc {
25192 	int (*enqueue)(struct sk_buff *, struct Qdisc *, struct sk_buff **);
25193 	struct sk_buff * (*dequeue)(struct Qdisc *);
25194 	unsigned int flags;
25195 	u32 limit;
25196 	const struct Qdisc_ops *ops;
25197 	struct qdisc_size_table *stab;
25198 	struct hlist_node hash;
25199 	u32 handle;
25200 	u32 parent;
25201 	struct netdev_queue *dev_queue;
25202 	struct net_rate_estimator *rate_est;
25203 	struct gnet_stats_basic_sync *cpu_bstats;
25204 	struct gnet_stats_queue *cpu_qstats;
25205 	int pad;
25206 	refcount_t refcnt;
25207 	long: 64;
25208 	long: 64;
25209 	long: 64;
25210 	struct sk_buff_head gso_skb;
25211 	struct qdisc_skb_head q;
25212 	struct gnet_stats_basic_sync bstats;
25213 	struct gnet_stats_queue qstats;
25214 	long unsigned int state;
25215 	long unsigned int state2;
25216 	struct Qdisc *next_sched;
25217 	struct sk_buff_head skb_bad_txq;
25218 	long: 64;
25219 	long: 64;
25220 	long: 64;
25221 	long: 64;
25222 	long: 64;
25223 	long: 64;
25224 	long: 64;
25225 	spinlock_t busylock;
25226 	spinlock_t seqlock;
25227 	struct callback_head rcu;
25228 	netdevice_tracker dev_tracker;
25229 	long: 64;
25230 	long: 64;
25231 	long: 64;
25232 	long: 64;
25233 	long: 64;
25234 	long: 64;
25235 	long int privdata[0];
25236 };
25237 
25238 enum bpf_map_type {
25239 	BPF_MAP_TYPE_UNSPEC = 0,
25240 	BPF_MAP_TYPE_HASH = 1,
25241 	BPF_MAP_TYPE_ARRAY = 2,
25242 	BPF_MAP_TYPE_PROG_ARRAY = 3,
25243 	BPF_MAP_TYPE_PERF_EVENT_ARRAY = 4,
25244 	BPF_MAP_TYPE_PERCPU_HASH = 5,
25245 	BPF_MAP_TYPE_PERCPU_ARRAY = 6,
25246 	BPF_MAP_TYPE_STACK_TRACE = 7,
25247 	BPF_MAP_TYPE_CGROUP_ARRAY = 8,
25248 	BPF_MAP_TYPE_LRU_HASH = 9,
25249 	BPF_MAP_TYPE_LRU_PERCPU_HASH = 10,
25250 	BPF_MAP_TYPE_LPM_TRIE = 11,
25251 	BPF_MAP_TYPE_ARRAY_OF_MAPS = 12,
25252 	BPF_MAP_TYPE_HASH_OF_MAPS = 13,
25253 	BPF_MAP_TYPE_DEVMAP = 14,
25254 	BPF_MAP_TYPE_SOCKMAP = 15,
25255 	BPF_MAP_TYPE_CPUMAP = 16,
25256 	BPF_MAP_TYPE_XSKMAP = 17,
25257 	BPF_MAP_TYPE_SOCKHASH = 18,
25258 	BPF_MAP_TYPE_CGROUP_STORAGE = 19,
25259 	BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20,
25260 	BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 21,
25261 	BPF_MAP_TYPE_QUEUE = 22,
25262 	BPF_MAP_TYPE_STACK = 23,
25263 	BPF_MAP_TYPE_SK_STORAGE = 24,
25264 	BPF_MAP_TYPE_DEVMAP_HASH = 25,
25265 	BPF_MAP_TYPE_STRUCT_OPS = 26,
25266 	BPF_MAP_TYPE_RINGBUF = 27,
25267 	BPF_MAP_TYPE_INODE_STORAGE = 28,
25268 	BPF_MAP_TYPE_TASK_STORAGE = 29,
25269 	BPF_MAP_TYPE_BLOOM_FILTER = 30,
25270 };
25271 
25272 struct bpf_map_ops;
25273 
25274 struct btf;
25275 
25276 struct bpf_map {
25277 	const struct bpf_map_ops *ops;
25278 	struct bpf_map *inner_map_meta;
25279 	void *security;
25280 	enum bpf_map_type map_type;
25281 	u32 key_size;
25282 	u32 value_size;
25283 	u32 max_entries;
25284 	u64 map_extra;
25285 	u32 map_flags;
25286 	int spin_lock_off;
25287 	int timer_off;
25288 	u32 id;
25289 	int numa_node;
25290 	u32 btf_key_type_id;
25291 	u32 btf_value_type_id;
25292 	u32 btf_vmlinux_value_type_id;
25293 	struct btf *btf;
25294 	struct mem_cgroup *memcg;
25295 	char name[16];
25296 	bool bypass_spec_v1;
25297 	bool frozen;
25298 	long: 48;
25299 	long: 64;
25300 	atomic64_t refcnt;
25301 	atomic64_t usercnt;
25302 	struct work_struct work;
25303 	struct mutex freeze_mutex;
25304 	atomic64_t writecnt;
25305 	struct {
25306 		spinlock_t lock;
25307 		enum bpf_prog_type type;
25308 		bool jited;
25309 		bool xdp_has_frags;
25310 	} owner;
25311 	long: 64;
25312 };
25313 
25314 struct bpf_map_dev_ops;
25315 
25316 struct bpf_offloaded_map {
25317 	struct bpf_map map;
25318 	struct net_device *netdev;
25319 	const struct bpf_map_dev_ops *dev_ops;
25320 	void *dev_priv;
25321 	struct list_head offloads;
25322 	long: 64;
25323 	long: 64;
25324 	long: 64;
25325 };
25326 
25327 struct tcf_proto;
25328 
25329 struct tcf_block;
25330 
25331 struct mini_Qdisc {
25332 	struct tcf_proto *filter_list;
25333 	struct tcf_block *block;
25334 	struct gnet_stats_basic_sync *cpu_bstats;
25335 	struct gnet_stats_queue *cpu_qstats;
25336 	long unsigned int rcu_state;
25337 };
25338 
25339 enum {
25340 	BPF_REG_0 = 0,
25341 	BPF_REG_1 = 1,
25342 	BPF_REG_2 = 2,
25343 	BPF_REG_3 = 3,
25344 	BPF_REG_4 = 4,
25345 	BPF_REG_5 = 5,
25346 	BPF_REG_6 = 6,
25347 	BPF_REG_7 = 7,
25348 	BPF_REG_8 = 8,
25349 	BPF_REG_9 = 9,
25350 	BPF_REG_10 = 10,
25351 	__MAX_BPF_REG = 11,
25352 };
25353 
25354 union bpf_attr {
25355 	struct {
25356 		__u32 map_type;
25357 		__u32 key_size;
25358 		__u32 value_size;
25359 		__u32 max_entries;
25360 		__u32 map_flags;
25361 		__u32 inner_map_fd;
25362 		__u32 numa_node;
25363 		char map_name[16];
25364 		__u32 map_ifindex;
25365 		__u32 btf_fd;
25366 		__u32 btf_key_type_id;
25367 		__u32 btf_value_type_id;
25368 		__u32 btf_vmlinux_value_type_id;
25369 		__u64 map_extra;
25370 	};
25371 	struct {
25372 		__u32 map_fd;
25373 		__u64 key;
25374 		union {
25375 			__u64 value;
25376 			__u64 next_key;
25377 		};
25378 		__u64 flags;
25379 	};
25380 	struct {
25381 		__u64 in_batch;
25382 		__u64 out_batch;
25383 		__u64 keys;
25384 		__u64 values;
25385 		__u32 count;
25386 		__u32 map_fd;
25387 		__u64 elem_flags;
25388 		__u64 flags;
25389 	} batch;
25390 	struct {
25391 		__u32 prog_type;
25392 		__u32 insn_cnt;
25393 		__u64 insns;
25394 		__u64 license;
25395 		__u32 log_level;
25396 		__u32 log_size;
25397 		__u64 log_buf;
25398 		__u32 kern_version;
25399 		__u32 prog_flags;
25400 		char prog_name[16];
25401 		__u32 prog_ifindex;
25402 		__u32 expected_attach_type;
25403 		__u32 prog_btf_fd;
25404 		__u32 func_info_rec_size;
25405 		__u64 func_info;
25406 		__u32 func_info_cnt;
25407 		__u32 line_info_rec_size;
25408 		__u64 line_info;
25409 		__u32 line_info_cnt;
25410 		__u32 attach_btf_id;
25411 		union {
25412 			__u32 attach_prog_fd;
25413 			__u32 attach_btf_obj_fd;
25414 		};
25415 		__u32 core_relo_cnt;
25416 		__u64 fd_array;
25417 		__u64 core_relos;
25418 		__u32 core_relo_rec_size;
25419 	};
25420 	struct {
25421 		__u64 pathname;
25422 		__u32 bpf_fd;
25423 		__u32 file_flags;
25424 	};
25425 	struct {
25426 		__u32 target_fd;
25427 		__u32 attach_bpf_fd;
25428 		__u32 attach_type;
25429 		__u32 attach_flags;
25430 		__u32 replace_bpf_fd;
25431 	};
25432 	struct {
25433 		__u32 prog_fd;
25434 		__u32 retval;
25435 		__u32 data_size_in;
25436 		__u32 data_size_out;
25437 		__u64 data_in;
25438 		__u64 data_out;
25439 		__u32 repeat;
25440 		__u32 duration;
25441 		__u32 ctx_size_in;
25442 		__u32 ctx_size_out;
25443 		__u64 ctx_in;
25444 		__u64 ctx_out;
25445 		__u32 flags;
25446 		__u32 cpu;
25447 	} test;
25448 	struct {
25449 		union {
25450 			__u32 start_id;
25451 			__u32 prog_id;
25452 			__u32 map_id;
25453 			__u32 btf_id;
25454 			__u32 link_id;
25455 		};
25456 		__u32 next_id;
25457 		__u32 open_flags;
25458 	};
25459 	struct {
25460 		__u32 bpf_fd;
25461 		__u32 info_len;
25462 		__u64 info;
25463 	} info;
25464 	struct {
25465 		__u32 target_fd;
25466 		__u32 attach_type;
25467 		__u32 query_flags;
25468 		__u32 attach_flags;
25469 		__u64 prog_ids;
25470 		__u32 prog_cnt;
25471 	} query;
25472 	struct {
25473 		__u64 name;
25474 		__u32 prog_fd;
25475 	} raw_tracepoint;
25476 	struct {
25477 		__u64 btf;
25478 		__u64 btf_log_buf;
25479 		__u32 btf_size;
25480 		__u32 btf_log_size;
25481 		__u32 btf_log_level;
25482 	};
25483 	struct {
25484 		__u32 pid;
25485 		__u32 fd;
25486 		__u32 flags;
25487 		__u32 buf_len;
25488 		__u64 buf;
25489 		__u32 prog_id;
25490 		__u32 fd_type;
25491 		__u64 probe_offset;
25492 		__u64 probe_addr;
25493 	} task_fd_query;
25494 	struct {
25495 		__u32 prog_fd;
25496 		union {
25497 			__u32 target_fd;
25498 			__u32 target_ifindex;
25499 		};
25500 		__u32 attach_type;
25501 		__u32 flags;
25502 		union {
25503 			__u32 target_btf_id;
25504 			struct {
25505 				__u64 iter_info;
25506 				__u32 iter_info_len;
25507 			};
25508 			struct {
25509 				__u64 bpf_cookie;
25510 			} perf_event;
25511 		};
25512 	} link_create;
25513 	struct {
25514 		__u32 link_fd;
25515 		__u32 new_prog_fd;
25516 		__u32 flags;
25517 		__u32 old_prog_fd;
25518 	} link_update;
25519 	struct {
25520 		__u32 link_fd;
25521 	} link_detach;
25522 	struct {
25523 		__u32 type;
25524 	} enable_stats;
25525 	struct {
25526 		__u32 link_fd;
25527 		__u32 flags;
25528 	} iter_create;
25529 	struct {
25530 		__u32 prog_fd;
25531 		__u32 map_fd;
25532 		__u32 flags;
25533 	} prog_bind_map;
25534 };
25535 
25536 enum bpf_func_id {
25537 	BPF_FUNC_unspec = 0,
25538 	BPF_FUNC_map_lookup_elem = 1,
25539 	BPF_FUNC_map_update_elem = 2,
25540 	BPF_FUNC_map_delete_elem = 3,
25541 	BPF_FUNC_probe_read = 4,
25542 	BPF_FUNC_ktime_get_ns = 5,
25543 	BPF_FUNC_trace_printk = 6,
25544 	BPF_FUNC_get_prandom_u32 = 7,
25545 	BPF_FUNC_get_smp_processor_id = 8,
25546 	BPF_FUNC_skb_store_bytes = 9,
25547 	BPF_FUNC_l3_csum_replace = 10,
25548 	BPF_FUNC_l4_csum_replace = 11,
25549 	BPF_FUNC_tail_call = 12,
25550 	BPF_FUNC_clone_redirect = 13,
25551 	BPF_FUNC_get_current_pid_tgid = 14,
25552 	BPF_FUNC_get_current_uid_gid = 15,
25553 	BPF_FUNC_get_current_comm = 16,
25554 	BPF_FUNC_get_cgroup_classid = 17,
25555 	BPF_FUNC_skb_vlan_push = 18,
25556 	BPF_FUNC_skb_vlan_pop = 19,
25557 	BPF_FUNC_skb_get_tunnel_key = 20,
25558 	BPF_FUNC_skb_set_tunnel_key = 21,
25559 	BPF_FUNC_perf_event_read = 22,
25560 	BPF_FUNC_redirect = 23,
25561 	BPF_FUNC_get_route_realm = 24,
25562 	BPF_FUNC_perf_event_output = 25,
25563 	BPF_FUNC_skb_load_bytes = 26,
25564 	BPF_FUNC_get_stackid = 27,
25565 	BPF_FUNC_csum_diff = 28,
25566 	BPF_FUNC_skb_get_tunnel_opt = 29,
25567 	BPF_FUNC_skb_set_tunnel_opt = 30,
25568 	BPF_FUNC_skb_change_proto = 31,
25569 	BPF_FUNC_skb_change_type = 32,
25570 	BPF_FUNC_skb_under_cgroup = 33,
25571 	BPF_FUNC_get_hash_recalc = 34,
25572 	BPF_FUNC_get_current_task = 35,
25573 	BPF_FUNC_probe_write_user = 36,
25574 	BPF_FUNC_current_task_under_cgroup = 37,
25575 	BPF_FUNC_skb_change_tail = 38,
25576 	BPF_FUNC_skb_pull_data = 39,
25577 	BPF_FUNC_csum_update = 40,
25578 	BPF_FUNC_set_hash_invalid = 41,
25579 	BPF_FUNC_get_numa_node_id = 42,
25580 	BPF_FUNC_skb_change_head = 43,
25581 	BPF_FUNC_xdp_adjust_head = 44,
25582 	BPF_FUNC_probe_read_str = 45,
25583 	BPF_FUNC_get_socket_cookie = 46,
25584 	BPF_FUNC_get_socket_uid = 47,
25585 	BPF_FUNC_set_hash = 48,
25586 	BPF_FUNC_setsockopt = 49,
25587 	BPF_FUNC_skb_adjust_room = 50,
25588 	BPF_FUNC_redirect_map = 51,
25589 	BPF_FUNC_sk_redirect_map = 52,
25590 	BPF_FUNC_sock_map_update = 53,
25591 	BPF_FUNC_xdp_adjust_meta = 54,
25592 	BPF_FUNC_perf_event_read_value = 55,
25593 	BPF_FUNC_perf_prog_read_value = 56,
25594 	BPF_FUNC_getsockopt = 57,
25595 	BPF_FUNC_override_return = 58,
25596 	BPF_FUNC_sock_ops_cb_flags_set = 59,
25597 	BPF_FUNC_msg_redirect_map = 60,
25598 	BPF_FUNC_msg_apply_bytes = 61,
25599 	BPF_FUNC_msg_cork_bytes = 62,
25600 	BPF_FUNC_msg_pull_data = 63,
25601 	BPF_FUNC_bind = 64,
25602 	BPF_FUNC_xdp_adjust_tail = 65,
25603 	BPF_FUNC_skb_get_xfrm_state = 66,
25604 	BPF_FUNC_get_stack = 67,
25605 	BPF_FUNC_skb_load_bytes_relative = 68,
25606 	BPF_FUNC_fib_lookup = 69,
25607 	BPF_FUNC_sock_hash_update = 70,
25608 	BPF_FUNC_msg_redirect_hash = 71,
25609 	BPF_FUNC_sk_redirect_hash = 72,
25610 	BPF_FUNC_lwt_push_encap = 73,
25611 	BPF_FUNC_lwt_seg6_store_bytes = 74,
25612 	BPF_FUNC_lwt_seg6_adjust_srh = 75,
25613 	BPF_FUNC_lwt_seg6_action = 76,
25614 	BPF_FUNC_rc_repeat = 77,
25615 	BPF_FUNC_rc_keydown = 78,
25616 	BPF_FUNC_skb_cgroup_id = 79,
25617 	BPF_FUNC_get_current_cgroup_id = 80,
25618 	BPF_FUNC_get_local_storage = 81,
25619 	BPF_FUNC_sk_select_reuseport = 82,
25620 	BPF_FUNC_skb_ancestor_cgroup_id = 83,
25621 	BPF_FUNC_sk_lookup_tcp = 84,
25622 	BPF_FUNC_sk_lookup_udp = 85,
25623 	BPF_FUNC_sk_release = 86,
25624 	BPF_FUNC_map_push_elem = 87,
25625 	BPF_FUNC_map_pop_elem = 88,
25626 	BPF_FUNC_map_peek_elem = 89,
25627 	BPF_FUNC_msg_push_data = 90,
25628 	BPF_FUNC_msg_pop_data = 91,
25629 	BPF_FUNC_rc_pointer_rel = 92,
25630 	BPF_FUNC_spin_lock = 93,
25631 	BPF_FUNC_spin_unlock = 94,
25632 	BPF_FUNC_sk_fullsock = 95,
25633 	BPF_FUNC_tcp_sock = 96,
25634 	BPF_FUNC_skb_ecn_set_ce = 97,
25635 	BPF_FUNC_get_listener_sock = 98,
25636 	BPF_FUNC_skc_lookup_tcp = 99,
25637 	BPF_FUNC_tcp_check_syncookie = 100,
25638 	BPF_FUNC_sysctl_get_name = 101,
25639 	BPF_FUNC_sysctl_get_current_value = 102,
25640 	BPF_FUNC_sysctl_get_new_value = 103,
25641 	BPF_FUNC_sysctl_set_new_value = 104,
25642 	BPF_FUNC_strtol = 105,
25643 	BPF_FUNC_strtoul = 106,
25644 	BPF_FUNC_sk_storage_get = 107,
25645 	BPF_FUNC_sk_storage_delete = 108,
25646 	BPF_FUNC_send_signal = 109,
25647 	BPF_FUNC_tcp_gen_syncookie = 110,
25648 	BPF_FUNC_skb_output = 111,
25649 	BPF_FUNC_probe_read_user = 112,
25650 	BPF_FUNC_probe_read_kernel = 113,
25651 	BPF_FUNC_probe_read_user_str = 114,
25652 	BPF_FUNC_probe_read_kernel_str = 115,
25653 	BPF_FUNC_tcp_send_ack = 116,
25654 	BPF_FUNC_send_signal_thread = 117,
25655 	BPF_FUNC_jiffies64 = 118,
25656 	BPF_FUNC_read_branch_records = 119,
25657 	BPF_FUNC_get_ns_current_pid_tgid = 120,
25658 	BPF_FUNC_xdp_output = 121,
25659 	BPF_FUNC_get_netns_cookie = 122,
25660 	BPF_FUNC_get_current_ancestor_cgroup_id = 123,
25661 	BPF_FUNC_sk_assign = 124,
25662 	BPF_FUNC_ktime_get_boot_ns = 125,
25663 	BPF_FUNC_seq_printf = 126,
25664 	BPF_FUNC_seq_write = 127,
25665 	BPF_FUNC_sk_cgroup_id = 128,
25666 	BPF_FUNC_sk_ancestor_cgroup_id = 129,
25667 	BPF_FUNC_ringbuf_output = 130,
25668 	BPF_FUNC_ringbuf_reserve = 131,
25669 	BPF_FUNC_ringbuf_submit = 132,
25670 	BPF_FUNC_ringbuf_discard = 133,
25671 	BPF_FUNC_ringbuf_query = 134,
25672 	BPF_FUNC_csum_level = 135,
25673 	BPF_FUNC_skc_to_tcp6_sock = 136,
25674 	BPF_FUNC_skc_to_tcp_sock = 137,
25675 	BPF_FUNC_skc_to_tcp_timewait_sock = 138,
25676 	BPF_FUNC_skc_to_tcp_request_sock = 139,
25677 	BPF_FUNC_skc_to_udp6_sock = 140,
25678 	BPF_FUNC_get_task_stack = 141,
25679 	BPF_FUNC_load_hdr_opt = 142,
25680 	BPF_FUNC_store_hdr_opt = 143,
25681 	BPF_FUNC_reserve_hdr_opt = 144,
25682 	BPF_FUNC_inode_storage_get = 145,
25683 	BPF_FUNC_inode_storage_delete = 146,
25684 	BPF_FUNC_d_path = 147,
25685 	BPF_FUNC_copy_from_user = 148,
25686 	BPF_FUNC_snprintf_btf = 149,
25687 	BPF_FUNC_seq_printf_btf = 150,
25688 	BPF_FUNC_skb_cgroup_classid = 151,
25689 	BPF_FUNC_redirect_neigh = 152,
25690 	BPF_FUNC_per_cpu_ptr = 153,
25691 	BPF_FUNC_this_cpu_ptr = 154,
25692 	BPF_FUNC_redirect_peer = 155,
25693 	BPF_FUNC_task_storage_get = 156,
25694 	BPF_FUNC_task_storage_delete = 157,
25695 	BPF_FUNC_get_current_task_btf = 158,
25696 	BPF_FUNC_bprm_opts_set = 159,
25697 	BPF_FUNC_ktime_get_coarse_ns = 160,
25698 	BPF_FUNC_ima_inode_hash = 161,
25699 	BPF_FUNC_sock_from_file = 162,
25700 	BPF_FUNC_check_mtu = 163,
25701 	BPF_FUNC_for_each_map_elem = 164,
25702 	BPF_FUNC_snprintf = 165,
25703 	BPF_FUNC_sys_bpf = 166,
25704 	BPF_FUNC_btf_find_by_name_kind = 167,
25705 	BPF_FUNC_sys_close = 168,
25706 	BPF_FUNC_timer_init = 169,
25707 	BPF_FUNC_timer_set_callback = 170,
25708 	BPF_FUNC_timer_start = 171,
25709 	BPF_FUNC_timer_cancel = 172,
25710 	BPF_FUNC_get_func_ip = 173,
25711 	BPF_FUNC_get_attach_cookie = 174,
25712 	BPF_FUNC_task_pt_regs = 175,
25713 	BPF_FUNC_get_branch_snapshot = 176,
25714 	BPF_FUNC_trace_vprintk = 177,
25715 	BPF_FUNC_skc_to_unix_sock = 178,
25716 	BPF_FUNC_kallsyms_lookup_name = 179,
25717 	BPF_FUNC_find_vma = 180,
25718 	BPF_FUNC_loop = 181,
25719 	BPF_FUNC_strncmp = 182,
25720 	BPF_FUNC_get_func_arg = 183,
25721 	BPF_FUNC_get_func_ret = 184,
25722 	BPF_FUNC_get_func_arg_cnt = 185,
25723 	BPF_FUNC_get_retval = 186,
25724 	BPF_FUNC_set_retval = 187,
25725 	BPF_FUNC_xdp_get_buff_len = 188,
25726 	BPF_FUNC_xdp_load_bytes = 189,
25727 	BPF_FUNC_xdp_store_bytes = 190,
25728 	BPF_FUNC_copy_from_user_task = 191,
25729 	__BPF_FUNC_MAX_ID = 192,
25730 };
25731 
25732 struct bpf_func_info {
25733 	__u32 insn_off;
25734 	__u32 type_id;
25735 };
25736 
25737 struct bpf_line_info {
25738 	__u32 insn_off;
25739 	__u32 file_name_off;
25740 	__u32 line_off;
25741 	__u32 line_col;
25742 };
25743 
25744 typedef u64 (*bpf_callback_t)(u64, u64, u64, u64, u64);
25745 
25746 struct bpf_iter_aux_info;
25747 
25748 typedef int (*bpf_iter_init_seq_priv_t)(void *, struct bpf_iter_aux_info *);
25749 
25750 struct bpf_iter_aux_info {
25751 	struct bpf_map *map;
25752 };
25753 
25754 typedef void (*bpf_iter_fini_seq_priv_t)(void *);
25755 
25756 struct bpf_iter_seq_info {
25757 	const struct seq_operations *seq_ops;
25758 	bpf_iter_init_seq_priv_t init_seq_private;
25759 	bpf_iter_fini_seq_priv_t fini_seq_private;
25760 	u32 seq_priv_size;
25761 };
25762 
25763 struct btf_type;
25764 
25765 struct bpf_local_storage_map;
25766 
25767 struct bpf_verifier_env;
25768 
25769 struct bpf_func_state;
25770 
25771 struct bpf_map_ops {
25772 	int (*map_alloc_check)(union bpf_attr *);
25773 	struct bpf_map * (*map_alloc)(union bpf_attr *);
25774 	void (*map_release)(struct bpf_map *, struct file *);
25775 	void (*map_free)(struct bpf_map *);
25776 	int (*map_get_next_key)(struct bpf_map *, void *, void *);
25777 	void (*map_release_uref)(struct bpf_map *);
25778 	void * (*map_lookup_elem_sys_only)(struct bpf_map *, void *);
25779 	int (*map_lookup_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr *);
25780 	int (*map_lookup_and_delete_elem)(struct bpf_map *, void *, void *, u64);
25781 	int (*map_lookup_and_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr *);
25782 	int (*map_update_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr *);
25783 	int (*map_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr *);
25784 	void * (*map_lookup_elem)(struct bpf_map *, void *);
25785 	int (*map_update_elem)(struct bpf_map *, void *, void *, u64);
25786 	int (*map_delete_elem)(struct bpf_map *, void *);
25787 	int (*map_push_elem)(struct bpf_map *, void *, u64);
25788 	int (*map_pop_elem)(struct bpf_map *, void *);
25789 	int (*map_peek_elem)(struct bpf_map *, void *);
25790 	void * (*map_fd_get_ptr)(struct bpf_map *, struct file *, int);
25791 	void (*map_fd_put_ptr)(void *);
25792 	int (*map_gen_lookup)(struct bpf_map *, struct bpf_insn *);
25793 	u32 (*map_fd_sys_lookup_elem)(void *);
25794 	void (*map_seq_show_elem)(struct bpf_map *, void *, struct seq_file *);
25795 	int (*map_check_btf)(const struct bpf_map *, const struct btf *, const struct btf_type *, const struct btf_type *);
25796 	int (*map_poke_track)(struct bpf_map *, struct bpf_prog_aux *);
25797 	void (*map_poke_untrack)(struct bpf_map *, struct bpf_prog_aux *);
25798 	void (*map_poke_run)(struct bpf_map *, u32, struct bpf_prog *, struct bpf_prog *);
25799 	int (*map_direct_value_addr)(const struct bpf_map *, u64 *, u32);
25800 	int (*map_direct_value_meta)(const struct bpf_map *, u64, u32 *);
25801 	int (*map_mmap)(struct bpf_map *, struct vm_area_struct *);
25802 	__poll_t (*map_poll)(struct bpf_map *, struct file *, struct poll_table_struct *);
25803 	int (*map_local_storage_charge)(struct bpf_local_storage_map *, void *, u32);
25804 	void (*map_local_storage_uncharge)(struct bpf_local_storage_map *, void *, u32);
25805 	struct bpf_local_storage ** (*map_owner_storage_ptr)(void *);
25806 	int (*map_redirect)(struct bpf_map *, u32, u64);
25807 	bool (*map_meta_equal)(const struct bpf_map *, const struct bpf_map *);
25808 	int (*map_set_for_each_callback_args)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *);
25809 	int (*map_for_each_callback)(struct bpf_map *, bpf_callback_t, void *, u64);
25810 	const char * const map_btf_name;
25811 	int *map_btf_id;
25812 	const struct bpf_iter_seq_info *iter_seq_info;
25813 };
25814 
25815 struct btf_header {
25816 	__u16 magic;
25817 	__u8 version;
25818 	__u8 flags;
25819 	__u32 hdr_len;
25820 	__u32 type_off;
25821 	__u32 type_len;
25822 	__u32 str_off;
25823 	__u32 str_len;
25824 };
25825 
25826 struct btf_kfunc_set_tab;
25827 
25828 struct btf {
25829 	void *data;
25830 	struct btf_type **types;
25831 	u32 *resolved_ids;
25832 	u32 *resolved_sizes;
25833 	const char *strings;
25834 	void *nohdr_data;
25835 	struct btf_header hdr;
25836 	u32 nr_types;
25837 	u32 types_size;
25838 	u32 data_size;
25839 	refcount_t refcnt;
25840 	u32 id;
25841 	struct callback_head rcu;
25842 	struct btf_kfunc_set_tab *kfunc_set_tab;
25843 	struct btf *base_btf;
25844 	u32 start_id;
25845 	u32 start_str_off;
25846 	char name[56];
25847 	bool kernel_btf;
25848 };
25849 
25850 struct btf_type {
25851 	__u32 name_off;
25852 	__u32 info;
25853 	union {
25854 		__u32 size;
25855 		__u32 type;
25856 	};
25857 };
25858 
25859 struct bpf_ksym {
25860 	long unsigned int start;
25861 	long unsigned int end;
25862 	char name[128];
25863 	struct list_head lnode;
25864 	struct latch_tree_node tnode;
25865 	bool prog;
25866 };
25867 
25868 struct bpf_ctx_arg_aux;
25869 
25870 struct bpf_trampoline;
25871 
25872 struct bpf_jit_poke_descriptor;
25873 
25874 struct bpf_kfunc_desc_tab;
25875 
25876 struct bpf_kfunc_btf_tab;
25877 
25878 struct bpf_prog_ops;
25879 
25880 struct btf_mod_pair;
25881 
25882 struct bpf_prog_offload;
25883 
25884 struct bpf_func_info_aux;
25885 
25886 struct bpf_prog_aux {
25887 	atomic64_t refcnt;
25888 	u32 used_map_cnt;
25889 	u32 used_btf_cnt;
25890 	u32 max_ctx_offset;
25891 	u32 max_pkt_offset;
25892 	u32 max_tp_access;
25893 	u32 stack_depth;
25894 	u32 id;
25895 	u32 func_cnt;
25896 	u32 func_idx;
25897 	u32 attach_btf_id;
25898 	u32 ctx_arg_info_size;
25899 	u32 max_rdonly_access;
25900 	u32 max_rdwr_access;
25901 	struct btf *attach_btf;
25902 	const struct bpf_ctx_arg_aux *ctx_arg_info;
25903 	struct mutex dst_mutex;
25904 	struct bpf_prog *dst_prog;
25905 	struct bpf_trampoline *dst_trampoline;
25906 	enum bpf_prog_type saved_dst_prog_type;
25907 	enum bpf_attach_type saved_dst_attach_type;
25908 	bool verifier_zext;
25909 	bool offload_requested;
25910 	bool attach_btf_trace;
25911 	bool func_proto_unreliable;
25912 	bool sleepable;
25913 	bool tail_call_reachable;
25914 	bool xdp_has_frags;
25915 	struct hlist_node tramp_hlist;
25916 	const struct btf_type *attach_func_proto;
25917 	const char *attach_func_name;
25918 	struct bpf_prog **func;
25919 	void *jit_data;
25920 	struct bpf_jit_poke_descriptor *poke_tab;
25921 	struct bpf_kfunc_desc_tab *kfunc_tab;
25922 	struct bpf_kfunc_btf_tab *kfunc_btf_tab;
25923 	u32 size_poke_tab;
25924 	struct bpf_ksym ksym;
25925 	const struct bpf_prog_ops *ops;
25926 	struct bpf_map **used_maps;
25927 	struct mutex used_maps_mutex;
25928 	struct btf_mod_pair *used_btfs;
25929 	struct bpf_prog *prog;
25930 	struct user_struct *user;
25931 	u64 load_time;
25932 	u32 verified_insns;
25933 	struct bpf_map *cgroup_storage[2];
25934 	char name[16];
25935 	void *security;
25936 	struct bpf_prog_offload *offload;
25937 	struct btf *btf;
25938 	struct bpf_func_info *func_info;
25939 	struct bpf_func_info_aux *func_info_aux;
25940 	struct bpf_line_info *linfo;
25941 	void **jited_linfo;
25942 	u32 func_info_cnt;
25943 	u32 nr_linfo;
25944 	u32 linfo_idx;
25945 	u32 num_exentries;
25946 	struct exception_table_entry *extable;
25947 	union {
25948 		struct work_struct work;
25949 		struct callback_head rcu;
25950 	};
25951 };
25952 
25953 struct bpf_map_dev_ops {
25954 	int (*map_get_next_key)(struct bpf_offloaded_map *, void *, void *);
25955 	int (*map_lookup_elem)(struct bpf_offloaded_map *, void *, void *);
25956 	int (*map_update_elem)(struct bpf_offloaded_map *, void *, void *, u64);
25957 	int (*map_delete_elem)(struct bpf_offloaded_map *, void *);
25958 };
25959 
25960 enum bpf_arg_type {
25961 	ARG_DONTCARE = 0,
25962 	ARG_CONST_MAP_PTR = 1,
25963 	ARG_PTR_TO_MAP_KEY = 2,
25964 	ARG_PTR_TO_MAP_VALUE = 3,
25965 	ARG_PTR_TO_UNINIT_MAP_VALUE = 4,
25966 	ARG_PTR_TO_MEM = 5,
25967 	ARG_PTR_TO_UNINIT_MEM = 6,
25968 	ARG_CONST_SIZE = 7,
25969 	ARG_CONST_SIZE_OR_ZERO = 8,
25970 	ARG_PTR_TO_CTX = 9,
25971 	ARG_ANYTHING = 10,
25972 	ARG_PTR_TO_SPIN_LOCK = 11,
25973 	ARG_PTR_TO_SOCK_COMMON = 12,
25974 	ARG_PTR_TO_INT = 13,
25975 	ARG_PTR_TO_LONG = 14,
25976 	ARG_PTR_TO_SOCKET = 15,
25977 	ARG_PTR_TO_BTF_ID = 16,
25978 	ARG_PTR_TO_ALLOC_MEM = 17,
25979 	ARG_CONST_ALLOC_SIZE_OR_ZERO = 18,
25980 	ARG_PTR_TO_BTF_ID_SOCK_COMMON = 19,
25981 	ARG_PTR_TO_PERCPU_BTF_ID = 20,
25982 	ARG_PTR_TO_FUNC = 21,
25983 	ARG_PTR_TO_STACK = 22,
25984 	ARG_PTR_TO_CONST_STR = 23,
25985 	ARG_PTR_TO_TIMER = 24,
25986 	__BPF_ARG_TYPE_MAX = 25,
25987 	ARG_PTR_TO_MAP_VALUE_OR_NULL = 259,
25988 	ARG_PTR_TO_MEM_OR_NULL = 261,
25989 	ARG_PTR_TO_CTX_OR_NULL = 265,
25990 	ARG_PTR_TO_SOCKET_OR_NULL = 271,
25991 	ARG_PTR_TO_ALLOC_MEM_OR_NULL = 273,
25992 	ARG_PTR_TO_STACK_OR_NULL = 278,
25993 	__BPF_ARG_TYPE_LIMIT = 2047,
25994 };
25995 
25996 enum bpf_return_type {
25997 	RET_INTEGER = 0,
25998 	RET_VOID = 1,
25999 	RET_PTR_TO_MAP_VALUE = 2,
26000 	RET_PTR_TO_SOCKET = 3,
26001 	RET_PTR_TO_TCP_SOCK = 4,
26002 	RET_PTR_TO_SOCK_COMMON = 5,
26003 	RET_PTR_TO_ALLOC_MEM = 6,
26004 	RET_PTR_TO_MEM_OR_BTF_ID = 7,
26005 	RET_PTR_TO_BTF_ID = 8,
26006 	__BPF_RET_TYPE_MAX = 9,
26007 	RET_PTR_TO_MAP_VALUE_OR_NULL = 258,
26008 	RET_PTR_TO_SOCKET_OR_NULL = 259,
26009 	RET_PTR_TO_TCP_SOCK_OR_NULL = 260,
26010 	RET_PTR_TO_SOCK_COMMON_OR_NULL = 261,
26011 	RET_PTR_TO_ALLOC_MEM_OR_NULL = 1286,
26012 	RET_PTR_TO_BTF_ID_OR_NULL = 264,
26013 	__BPF_RET_TYPE_LIMIT = 2047,
26014 };
26015 
26016 struct bpf_func_proto {
26017 	u64 (*func)(u64, u64, u64, u64, u64);
26018 	bool gpl_only;
26019 	bool pkt_access;
26020 	enum bpf_return_type ret_type;
26021 	union {
26022 		struct {
26023 			enum bpf_arg_type arg1_type;
26024 			enum bpf_arg_type arg2_type;
26025 			enum bpf_arg_type arg3_type;
26026 			enum bpf_arg_type arg4_type;
26027 			enum bpf_arg_type arg5_type;
26028 		};
26029 		enum bpf_arg_type arg_type[5];
26030 	};
26031 	union {
26032 		struct {
26033 			u32 *arg1_btf_id;
26034 			u32 *arg2_btf_id;
26035 			u32 *arg3_btf_id;
26036 			u32 *arg4_btf_id;
26037 			u32 *arg5_btf_id;
26038 		};
26039 		u32 *arg_btf_id[5];
26040 	};
26041 	int *ret_btf_id;
26042 	bool (*allowed)(const struct bpf_prog *);
26043 };
26044 
26045 enum bpf_access_type {
26046 	BPF_READ = 1,
26047 	BPF_WRITE = 2,
26048 };
26049 
26050 enum bpf_reg_type {
26051 	NOT_INIT = 0,
26052 	SCALAR_VALUE = 1,
26053 	PTR_TO_CTX = 2,
26054 	CONST_PTR_TO_MAP = 3,
26055 	PTR_TO_MAP_VALUE = 4,
26056 	PTR_TO_MAP_KEY = 5,
26057 	PTR_TO_STACK = 6,
26058 	PTR_TO_PACKET_META = 7,
26059 	PTR_TO_PACKET = 8,
26060 	PTR_TO_PACKET_END = 9,
26061 	PTR_TO_FLOW_KEYS = 10,
26062 	PTR_TO_SOCKET = 11,
26063 	PTR_TO_SOCK_COMMON = 12,
26064 	PTR_TO_TCP_SOCK = 13,
26065 	PTR_TO_TP_BUFFER = 14,
26066 	PTR_TO_XDP_SOCK = 15,
26067 	PTR_TO_BTF_ID = 16,
26068 	PTR_TO_MEM = 17,
26069 	PTR_TO_BUF = 18,
26070 	PTR_TO_PERCPU_BTF_ID = 19,
26071 	PTR_TO_FUNC = 20,
26072 	__BPF_REG_TYPE_MAX = 21,
26073 	PTR_TO_MAP_VALUE_OR_NULL = 260,
26074 	PTR_TO_SOCKET_OR_NULL = 267,
26075 	PTR_TO_SOCK_COMMON_OR_NULL = 268,
26076 	PTR_TO_TCP_SOCK_OR_NULL = 269,
26077 	PTR_TO_BTF_ID_OR_NULL = 272,
26078 	__BPF_REG_TYPE_LIMIT = 2047,
26079 };
26080 
26081 struct bpf_verifier_log;
26082 
26083 struct bpf_insn_access_aux {
26084 	enum bpf_reg_type reg_type;
26085 	union {
26086 		int ctx_field_size;
26087 		struct {
26088 			struct btf *btf;
26089 			u32 btf_id;
26090 		};
26091 	};
26092 	struct bpf_verifier_log *log;
26093 };
26094 
26095 struct bpf_prog_ops {
26096 	int (*test_run)(struct bpf_prog *, const union bpf_attr *, union bpf_attr *);
26097 };
26098 
26099 struct bpf_verifier_ops {
26100 	const struct bpf_func_proto * (*get_func_proto)(enum bpf_func_id, const struct bpf_prog *);
26101 	bool (*is_valid_access)(int, int, enum bpf_access_type, const struct bpf_prog *, struct bpf_insn_access_aux *);
26102 	int (*gen_prologue)(struct bpf_insn *, bool, const struct bpf_prog *);
26103 	int (*gen_ld_abs)(const struct bpf_insn *, struct bpf_insn *);
26104 	u32 (*convert_ctx_access)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *);
26105 	int (*btf_struct_access)(struct bpf_verifier_log *, const struct btf *, const struct btf_type *, int, int, enum bpf_access_type, u32 *);
26106 };
26107 
26108 struct bpf_offload_dev;
26109 
26110 struct bpf_prog_offload {
26111 	struct bpf_prog *prog;
26112 	struct net_device *netdev;
26113 	struct bpf_offload_dev *offdev;
26114 	void *dev_priv;
26115 	struct list_head offloads;
26116 	bool dev_state;
26117 	bool opt_failed;
26118 	void *jited_image;
26119 	u32 jited_len;
26120 };
26121 
26122 struct btf_func_model {
26123 	u8 ret_size;
26124 	u8 nr_args;
26125 	u8 arg_size[12];
26126 };
26127 
26128 struct bpf_tramp_progs {
26129 	struct bpf_prog *progs[38];
26130 	int nr_progs;
26131 };
26132 
26133 enum bpf_tramp_prog_type {
26134 	BPF_TRAMP_FENTRY = 0,
26135 	BPF_TRAMP_FEXIT = 1,
26136 	BPF_TRAMP_MODIFY_RETURN = 2,
26137 	BPF_TRAMP_MAX = 3,
26138 	BPF_TRAMP_REPLACE = 4,
26139 };
26140 
26141 struct bpf_tramp_image {
26142 	void *image;
26143 	struct bpf_ksym ksym;
26144 	struct percpu_ref pcref;
26145 	void *ip_after_call;
26146 	void *ip_epilogue;
26147 	union {
26148 		struct callback_head rcu;
26149 		struct work_struct work;
26150 	};
26151 };
26152 
26153 struct bpf_trampoline {
26154 	struct hlist_node hlist;
26155 	struct mutex mutex;
26156 	refcount_t refcnt;
26157 	u64 key;
26158 	struct {
26159 		struct btf_func_model model;
26160 		void *addr;
26161 		bool ftrace_managed;
26162 	} func;
26163 	struct bpf_prog *extension_prog;
26164 	struct hlist_head progs_hlist[3];
26165 	int progs_cnt[3];
26166 	struct bpf_tramp_image *cur_image;
26167 	u64 selector;
26168 	struct module *mod;
26169 };
26170 
26171 struct bpf_dispatcher_prog {
26172 	struct bpf_prog *prog;
26173 	refcount_t users;
26174 };
26175 
26176 struct bpf_dispatcher {
26177 	struct mutex mutex;
26178 	void *func;
26179 	struct bpf_dispatcher_prog progs[48];
26180 	int num_progs;
26181 	void *image;
26182 	u32 image_off;
26183 	struct bpf_ksym ksym;
26184 };
26185 
26186 struct bpf_func_info_aux {
26187 	u16 linkage;
26188 	bool unreliable;
26189 };
26190 
26191 enum bpf_jit_poke_reason {
26192 	BPF_POKE_REASON_TAIL_CALL = 0,
26193 };
26194 
26195 struct bpf_jit_poke_descriptor {
26196 	void *tailcall_target;
26197 	void *tailcall_bypass;
26198 	void *bypass_addr;
26199 	void *aux;
26200 	union {
26201 		struct {
26202 			struct bpf_map *map;
26203 			u32 key;
26204 		} tail_call;
26205 	};
26206 	bool tailcall_target_stable;
26207 	u8 adj_off;
26208 	u16 reason;
26209 	u32 insn_idx;
26210 };
26211 
26212 struct bpf_ctx_arg_aux {
26213 	u32 offset;
26214 	enum bpf_reg_type reg_type;
26215 	u32 btf_id;
26216 };
26217 
26218 struct btf_mod_pair {
26219 	struct btf *btf;
26220 	struct module *module;
26221 };
26222 
26223 struct bpf_array_aux {
26224 	struct list_head poke_progs;
26225 	struct bpf_map *map;
26226 	struct mutex poke_mutex;
26227 	struct work_struct work;
26228 };
26229 
26230 struct bpf_array {
26231 	struct bpf_map map;
26232 	u32 elem_size;
26233 	u32 index_mask;
26234 	struct bpf_array_aux *aux;
26235 	union {
26236 		char value[0];
26237 		void *ptrs[0];
26238 		void *pptrs[0];
26239 	};
26240 	long: 64;
26241 	long: 64;
26242 	long: 64;
26243 	long: 64;
26244 	long: 64;
26245 	long: 64;
26246 };
26247 
26248 enum bpf_text_poke_type {
26249 	BPF_MOD_CALL = 0,
26250 	BPF_MOD_JUMP = 1,
26251 };
26252 
26253 struct tcmsg {
26254 	unsigned char tcm_family;
26255 	unsigned char tcm__pad1;
26256 	short unsigned int tcm__pad2;
26257 	int tcm_ifindex;
26258 	__u32 tcm_handle;
26259 	__u32 tcm_parent;
26260 	__u32 tcm_info;
26261 };
26262 
26263 struct gnet_dump {
26264 	spinlock_t *lock;
26265 	struct sk_buff *skb;
26266 	struct nlattr *tail;
26267 	int compat_tc_stats;
26268 	int compat_xstats;
26269 	int padattr;
26270 	void *xstats;
26271 	int xstats_len;
26272 	struct tc_stats tc_stats;
26273 };
26274 
26275 enum flow_action_hw_stats_bit {
26276 	FLOW_ACTION_HW_STATS_IMMEDIATE_BIT = 0,
26277 	FLOW_ACTION_HW_STATS_DELAYED_BIT = 1,
26278 	FLOW_ACTION_HW_STATS_DISABLED_BIT = 2,
26279 	FLOW_ACTION_HW_STATS_NUM_BITS = 3,
26280 };
26281 
26282 struct flow_block {
26283 	struct list_head cb_list;
26284 };
26285 
26286 typedef int flow_setup_cb_t(enum tc_setup_type, void *, void *);
26287 
26288 struct qdisc_size_table {
26289 	struct callback_head rcu;
26290 	struct list_head list;
26291 	struct tc_sizespec szopts;
26292 	int refcnt;
26293 	u16 data[0];
26294 };
26295 
26296 struct Qdisc_class_ops;
26297 
26298 struct Qdisc_ops {
26299 	struct Qdisc_ops *next;
26300 	const struct Qdisc_class_ops *cl_ops;
26301 	char id[16];
26302 	int priv_size;
26303 	unsigned int static_flags;
26304 	int (*enqueue)(struct sk_buff *, struct Qdisc *, struct sk_buff **);
26305 	struct sk_buff * (*dequeue)(struct Qdisc *);
26306 	struct sk_buff * (*peek)(struct Qdisc *);
26307 	int (*init)(struct Qdisc *, struct nlattr *, struct netlink_ext_ack *);
26308 	void (*reset)(struct Qdisc *);
26309 	void (*destroy)(struct Qdisc *);
26310 	int (*change)(struct Qdisc *, struct nlattr *, struct netlink_ext_ack *);
26311 	void (*attach)(struct Qdisc *);
26312 	int (*change_tx_queue_len)(struct Qdisc *, unsigned int);
26313 	void (*change_real_num_tx)(struct Qdisc *, unsigned int);
26314 	int (*dump)(struct Qdisc *, struct sk_buff *);
26315 	int (*dump_stats)(struct Qdisc *, struct gnet_dump *);
26316 	void (*ingress_block_set)(struct Qdisc *, u32);
26317 	void (*egress_block_set)(struct Qdisc *, u32);
26318 	u32 (*ingress_block_get)(struct Qdisc *);
26319 	u32 (*egress_block_get)(struct Qdisc *);
26320 	struct module *owner;
26321 };
26322 
26323 struct qdisc_walker;
26324 
26325 struct Qdisc_class_ops {
26326 	unsigned int flags;
26327 	struct netdev_queue * (*select_queue)(struct Qdisc *, struct tcmsg *);
26328 	int (*graft)(struct Qdisc *, long unsigned int, struct Qdisc *, struct Qdisc **, struct netlink_ext_ack *);
26329 	struct Qdisc * (*leaf)(struct Qdisc *, long unsigned int);
26330 	void (*qlen_notify)(struct Qdisc *, long unsigned int);
26331 	long unsigned int (*find)(struct Qdisc *, u32);
26332 	int (*change)(struct Qdisc *, u32, u32, struct nlattr **, long unsigned int *, struct netlink_ext_ack *);
26333 	int (*delete)(struct Qdisc *, long unsigned int, struct netlink_ext_ack *);
26334 	void (*walk)(struct Qdisc *, struct qdisc_walker *);
26335 	struct tcf_block * (*tcf_block)(struct Qdisc *, long unsigned int, struct netlink_ext_ack *);
26336 	long unsigned int (*bind_tcf)(struct Qdisc *, long unsigned int, u32);
26337 	void (*unbind_tcf)(struct Qdisc *, long unsigned int);
26338 	int (*dump)(struct Qdisc *, long unsigned int, struct sk_buff *, struct tcmsg *);
26339 	int (*dump_stats)(struct Qdisc *, long unsigned int, struct gnet_dump *);
26340 };
26341 
26342 struct tcf_chain;
26343 
26344 struct tcf_block {
26345 	struct mutex lock;
26346 	struct list_head chain_list;
26347 	u32 index;
26348 	u32 classid;
26349 	refcount_t refcnt;
26350 	struct net *net;
26351 	struct Qdisc *q;
26352 	struct rw_semaphore cb_lock;
26353 	struct flow_block flow_block;
26354 	struct list_head owner_list;
26355 	bool keep_dst;
26356 	atomic_t offloadcnt;
26357 	unsigned int nooffloaddevcnt;
26358 	unsigned int lockeddevcnt;
26359 	struct {
26360 		struct tcf_chain *chain;
26361 		struct list_head filter_chain_list;
26362 	} chain0;
26363 	struct callback_head rcu;
26364 	struct hlist_head proto_destroy_ht[128];
26365 	struct mutex proto_destroy_lock;
26366 };
26367 
26368 struct tcf_result;
26369 
26370 struct tcf_proto_ops;
26371 
26372 struct tcf_proto {
26373 	struct tcf_proto *next;
26374 	void *root;
26375 	int (*classify)(struct sk_buff *, const struct tcf_proto *, struct tcf_result *);
26376 	__be16 protocol;
26377 	u32 prio;
26378 	void *data;
26379 	const struct tcf_proto_ops *ops;
26380 	struct tcf_chain *chain;
26381 	spinlock_t lock;
26382 	bool deleting;
26383 	refcount_t refcnt;
26384 	struct callback_head rcu;
26385 	struct hlist_node destroy_ht_node;
26386 };
26387 
26388 struct tcf_result {
26389 	union {
26390 		struct {
26391 			long unsigned int class;
26392 			u32 classid;
26393 		};
26394 		const struct tcf_proto *goto_tp;
26395 		struct {
26396 			bool ingress;
26397 			struct gnet_stats_queue *qstats;
26398 		};
26399 	};
26400 };
26401 
26402 struct tcf_walker;
26403 
26404 struct tcf_proto_ops {
26405 	struct list_head head;
26406 	char kind[16];
26407 	int (*classify)(struct sk_buff *, const struct tcf_proto *, struct tcf_result *);
26408 	int (*init)(struct tcf_proto *);
26409 	void (*destroy)(struct tcf_proto *, bool, struct netlink_ext_ack *);
26410 	void * (*get)(struct tcf_proto *, u32);
26411 	void (*put)(struct tcf_proto *, void *);
26412 	int (*change)(struct net *, struct sk_buff *, struct tcf_proto *, long unsigned int, u32, struct nlattr **, void **, u32, struct netlink_ext_ack *);
26413 	int (*delete)(struct tcf_proto *, void *, bool *, bool, struct netlink_ext_ack *);
26414 	bool (*delete_empty)(struct tcf_proto *);
26415 	void (*walk)(struct tcf_proto *, struct tcf_walker *, bool);
26416 	int (*reoffload)(struct tcf_proto *, bool, flow_setup_cb_t *, void *, struct netlink_ext_ack *);
26417 	void (*hw_add)(struct tcf_proto *, void *);
26418 	void (*hw_del)(struct tcf_proto *, void *);
26419 	void (*bind_class)(void *, u32, long unsigned int, void *, long unsigned int);
26420 	void * (*tmplt_create)(struct net *, struct tcf_chain *, struct nlattr **, struct netlink_ext_ack *);
26421 	void (*tmplt_destroy)(void *);
26422 	int (*dump)(struct net *, struct tcf_proto *, void *, struct sk_buff *, struct tcmsg *, bool);
26423 	int (*terse_dump)(struct net *, struct tcf_proto *, void *, struct sk_buff *, struct tcmsg *, bool);
26424 	int (*tmplt_dump)(struct sk_buff *, struct net *, void *);
26425 	struct module *owner;
26426 	int flags;
26427 };
26428 
26429 struct tcf_chain {
26430 	struct mutex filter_chain_lock;
26431 	struct tcf_proto *filter_chain;
26432 	struct list_head list;
26433 	struct tcf_block *block;
26434 	u32 index;
26435 	unsigned int refcnt;
26436 	unsigned int action_refcnt;
26437 	bool explicitly_created;
26438 	bool flushing;
26439 	const struct tcf_proto_ops *tmplt_ops;
26440 	void *tmplt_priv;
26441 	struct callback_head rcu;
26442 };
26443 
26444 struct sock_fprog_kern {
26445 	u16 len;
26446 	struct sock_filter *filter;
26447 };
26448 
26449 struct bpf_binary_header {
26450 	u32 pages;
26451 	int: 32;
26452 	u8 image[0];
26453 };
26454 
26455 struct bpf_prog_stats {
26456 	u64_stats_t cnt;
26457 	u64_stats_t nsecs;
26458 	u64_stats_t misses;
26459 	struct u64_stats_sync syncp;
26460 	long: 64;
26461 };
26462 
26463 struct bpf_nh_params {
26464 	u32 nh_family;
26465 	union {
26466 		u32 ipv4_nh;
26467 		struct in6_addr ipv6_nh;
26468 	};
26469 };
26470 
26471 struct bpf_redirect_info {
26472 	u32 flags;
26473 	u32 tgt_index;
26474 	void *tgt_value;
26475 	struct bpf_map *map;
26476 	u32 map_id;
26477 	enum bpf_map_type map_type;
26478 	u32 kern_flags;
26479 	struct bpf_nh_params nh;
26480 };
26481 
26482 struct jit_context {
26483 	int cleanup_addr;
26484 	int tail_call_direct_label;
26485 	int tail_call_indirect_label;
26486 };
26487 
26488 struct x64_jit_data {
26489 	struct bpf_binary_header *header;
26490 	int *addrs;
26491 	u8 *image;
26492 	int proglen;
26493 	struct jit_context ctx;
26494 };
26495 
26496 enum tk_offsets {
26497 	TK_OFFS_REAL = 0,
26498 	TK_OFFS_BOOT = 1,
26499 	TK_OFFS_TAI = 2,
26500 	TK_OFFS_MAX = 3,
26501 };
26502 
26503 struct clone_args {
26504 	__u64 flags;
26505 	__u64 pidfd;
26506 	__u64 child_tid;
26507 	__u64 parent_tid;
26508 	__u64 exit_signal;
26509 	__u64 stack;
26510 	__u64 stack_size;
26511 	__u64 tls;
26512 	__u64 set_tid;
26513 	__u64 set_tid_size;
26514 	__u64 cgroup;
26515 };
26516 
26517 struct fdtable {
26518 	unsigned int max_fds;
26519 	struct file **fd;
26520 	long unsigned int *close_on_exec;
26521 	long unsigned int *open_fds;
26522 	long unsigned int *full_fds_bits;
26523 	struct callback_head rcu;
26524 };
26525 
26526 struct files_struct {
26527 	atomic_t count;
26528 	bool resize_in_progress;
26529 	wait_queue_head_t resize_wait;
26530 	struct fdtable *fdt;
26531 	struct fdtable fdtab;
26532 	long: 64;
26533 	long: 64;
26534 	long: 64;
26535 	long: 64;
26536 	long: 64;
26537 	spinlock_t file_lock;
26538 	unsigned int next_fd;
26539 	long unsigned int close_on_exec_init[1];
26540 	long unsigned int open_fds_init[1];
26541 	long unsigned int full_fds_bits_init[1];
26542 	struct file *fd_array[64];
26543 	long: 64;
26544 	long: 64;
26545 	long: 64;
26546 	long: 64;
26547 };
26548 
26549 struct robust_list {
26550 	struct robust_list *next;
26551 };
26552 
26553 struct robust_list_head {
26554 	struct robust_list list;
26555 	long int futex_offset;
26556 	struct robust_list *list_op_pending;
26557 };
26558 
26559 struct kernel_clone_args {
26560 	u64 flags;
26561 	int *pidfd;
26562 	int *child_tid;
26563 	int *parent_tid;
26564 	int exit_signal;
26565 	long unsigned int stack;
26566 	long unsigned int stack_size;
26567 	long unsigned int tls;
26568 	pid_t *set_tid;
26569 	size_t set_tid_size;
26570 	int cgroup;
26571 	int io_thread;
26572 	struct cgroup *cgrp;
26573 	struct css_set *cset;
26574 };
26575 
26576 struct multiprocess_signals {
26577 	sigset_t signal;
26578 	struct hlist_node node;
26579 };
26580 
26581 typedef int (*proc_visitor)(struct task_struct *, void *);
26582 
26583 typedef struct poll_table_struct poll_table;
26584 
26585 enum {
26586 	FUTEX_STATE_OK = 0,
26587 	FUTEX_STATE_EXITING = 1,
26588 	FUTEX_STATE_DEAD = 2,
26589 };
26590 
26591 enum proc_hidepid {
26592 	HIDEPID_OFF = 0,
26593 	HIDEPID_NO_ACCESS = 1,
26594 	HIDEPID_INVISIBLE = 2,
26595 	HIDEPID_NOT_PTRACEABLE = 4,
26596 };
26597 
26598 enum proc_pidonly {
26599 	PROC_PIDONLY_OFF = 0,
26600 	PROC_PIDONLY_ON = 1,
26601 };
26602 
26603 struct proc_fs_info {
26604 	struct pid_namespace *pid_ns;
26605 	struct dentry *proc_self;
26606 	struct dentry *proc_thread_self;
26607 	kgid_t pid_gid;
26608 	enum proc_hidepid hide_pid;
26609 	enum proc_pidonly pidonly;
26610 };
26611 
26612 enum bpf_type_flag {
26613 	PTR_MAYBE_NULL = 256,
26614 	MEM_RDONLY = 512,
26615 	MEM_ALLOC = 1024,
26616 	__BPF_TYPE_LAST_FLAG = 1024,
26617 };
26618 
26619 enum bpf_cgroup_storage_type {
26620 	BPF_CGROUP_STORAGE_SHARED = 0,
26621 	BPF_CGROUP_STORAGE_PERCPU = 1,
26622 	__BPF_CGROUP_STORAGE_MAX = 2,
26623 };
26624 
26625 struct trace_event_raw_task_newtask {
26626 	struct trace_entry ent;
26627 	pid_t pid;
26628 	char comm[16];
26629 	long unsigned int clone_flags;
26630 	short int oom_score_adj;
26631 	char __data[0];
26632 };
26633 
26634 struct trace_event_raw_task_rename {
26635 	struct trace_entry ent;
26636 	pid_t pid;
26637 	char oldcomm[16];
26638 	char newcomm[16];
26639 	short int oom_score_adj;
26640 	char __data[0];
26641 };
26642 
26643 struct trace_event_data_offsets_task_newtask {};
26644 
26645 struct trace_event_data_offsets_task_rename {};
26646 
26647 typedef void (*btf_trace_task_newtask)(void *, struct task_struct *, long unsigned int);
26648 
26649 typedef void (*btf_trace_task_rename)(void *, struct task_struct *, const char *);
26650 
26651 enum kmsg_dump_reason {
26652 	KMSG_DUMP_UNDEF = 0,
26653 	KMSG_DUMP_PANIC = 1,
26654 	KMSG_DUMP_OOPS = 2,
26655 	KMSG_DUMP_EMERG = 3,
26656 	KMSG_DUMP_SHUTDOWN = 4,
26657 	KMSG_DUMP_MAX = 5,
26658 };
26659 
26660 struct vc {
26661 	struct vc_data *d;
26662 	struct work_struct SAK_work;
26663 };
26664 
26665 struct vt_spawn_console {
26666 	spinlock_t lock;
26667 	struct pid *pid;
26668 	int sig;
26669 };
26670 
26671 enum con_flush_mode {
26672 	CONSOLE_FLUSH_PENDING = 0,
26673 	CONSOLE_REPLAY_ALL = 1,
26674 };
26675 
26676 enum error_detector {
26677 	ERROR_DETECTOR_KFENCE = 0,
26678 	ERROR_DETECTOR_KASAN = 1,
26679 	ERROR_DETECTOR_WARN = 2,
26680 };
26681 
26682 struct warn_args {
26683 	const char *fmt;
26684 	va_list args;
26685 };
26686 
26687 struct smp_hotplug_thread {
26688 	struct task_struct **store;
26689 	struct list_head list;
26690 	int (*thread_should_run)(unsigned int);
26691 	void (*thread_fn)(unsigned int);
26692 	void (*create)(unsigned int);
26693 	void (*setup)(unsigned int);
26694 	void (*cleanup)(unsigned int, bool);
26695 	void (*park)(unsigned int);
26696 	void (*unpark)(unsigned int);
26697 	bool selfparking;
26698 	const char *thread_comm;
26699 };
26700 
26701 struct trace_event_raw_cpuhp_enter {
26702 	struct trace_entry ent;
26703 	unsigned int cpu;
26704 	int target;
26705 	int idx;
26706 	void *fun;
26707 	char __data[0];
26708 };
26709 
26710 struct trace_event_raw_cpuhp_multi_enter {
26711 	struct trace_entry ent;
26712 	unsigned int cpu;
26713 	int target;
26714 	int idx;
26715 	void *fun;
26716 	char __data[0];
26717 };
26718 
26719 struct trace_event_raw_cpuhp_exit {
26720 	struct trace_entry ent;
26721 	unsigned int cpu;
26722 	int state;
26723 	int idx;
26724 	int ret;
26725 	char __data[0];
26726 };
26727 
26728 struct trace_event_data_offsets_cpuhp_enter {};
26729 
26730 struct trace_event_data_offsets_cpuhp_multi_enter {};
26731 
26732 struct trace_event_data_offsets_cpuhp_exit {};
26733 
26734 typedef void (*btf_trace_cpuhp_enter)(void *, unsigned int, int, int, int (*)(unsigned int));
26735 
26736 typedef void (*btf_trace_cpuhp_multi_enter)(void *, unsigned int, int, int, int (*)(unsigned int, struct hlist_node *), struct hlist_node *);
26737 
26738 typedef void (*btf_trace_cpuhp_exit)(void *, unsigned int, int, int, int);
26739 
26740 struct cpuhp_cpu_state {
26741 	enum cpuhp_state state;
26742 	enum cpuhp_state target;
26743 	enum cpuhp_state fail;
26744 	struct task_struct *thread;
26745 	bool should_run;
26746 	bool rollback;
26747 	bool single;
26748 	bool bringup;
26749 	int cpu;
26750 	struct hlist_node *node;
26751 	struct hlist_node *last;
26752 	enum cpuhp_state cb_state;
26753 	int result;
26754 	struct completion done_up;
26755 	struct completion done_down;
26756 };
26757 
26758 struct cpuhp_step {
26759 	const char *name;
26760 	union {
26761 		int (*single)(unsigned int);
26762 		int (*multi)(unsigned int, struct hlist_node *);
26763 	} startup;
26764 	union {
26765 		int (*single)(unsigned int);
26766 		int (*multi)(unsigned int, struct hlist_node *);
26767 	} teardown;
26768 	struct hlist_head list;
26769 	bool cant_stop;
26770 	bool multi_instance;
26771 };
26772 
26773 enum cpu_mitigations {
26774 	CPU_MITIGATIONS_OFF = 0,
26775 	CPU_MITIGATIONS_AUTO = 1,
26776 	CPU_MITIGATIONS_AUTO_NOSMT = 2,
26777 };
26778 
26779 struct __kernel_old_timeval {
26780 	__kernel_long_t tv_sec;
26781 	__kernel_long_t tv_usec;
26782 };
26783 
26784 struct rusage {
26785 	struct __kernel_old_timeval ru_utime;
26786 	struct __kernel_old_timeval ru_stime;
26787 	__kernel_long_t ru_maxrss;
26788 	__kernel_long_t ru_ixrss;
26789 	__kernel_long_t ru_idrss;
26790 	__kernel_long_t ru_isrss;
26791 	__kernel_long_t ru_minflt;
26792 	__kernel_long_t ru_majflt;
26793 	__kernel_long_t ru_nswap;
26794 	__kernel_long_t ru_inblock;
26795 	__kernel_long_t ru_oublock;
26796 	__kernel_long_t ru_msgsnd;
26797 	__kernel_long_t ru_msgrcv;
26798 	__kernel_long_t ru_nsignals;
26799 	__kernel_long_t ru_nvcsw;
26800 	__kernel_long_t ru_nivcsw;
26801 };
26802 
26803 typedef struct {} mm_segment_t;
26804 
26805 struct waitid_info {
26806 	pid_t pid;
26807 	uid_t uid;
26808 	int status;
26809 	int cause;
26810 };
26811 
26812 struct wait_opts {
26813 	enum pid_type wo_type;
26814 	int wo_flags;
26815 	struct pid *wo_pid;
26816 	struct waitid_info *wo_info;
26817 	int wo_stat;
26818 	struct rusage *wo_rusage;
26819 	wait_queue_entry_t child_wait;
26820 	int notask_error;
26821 };
26822 
26823 struct softirq_action {
26824 	void (*action)(struct softirq_action *);
26825 };
26826 
26827 struct tasklet_struct {
26828 	struct tasklet_struct *next;
26829 	long unsigned int state;
26830 	atomic_t count;
26831 	bool use_callback;
26832 	union {
26833 		void (*func)(long unsigned int);
26834 		void (*callback)(struct tasklet_struct *);
26835 	};
26836 	long unsigned int data;
26837 };
26838 
26839 enum {
26840 	TASKLET_STATE_SCHED = 0,
26841 	TASKLET_STATE_RUN = 1,
26842 };
26843 
26844 struct wait_bit_key {
26845 	void *flags;
26846 	int bit_nr;
26847 	long unsigned int timeout;
26848 };
26849 
26850 struct wait_bit_queue_entry {
26851 	struct wait_bit_key key;
26852 	struct wait_queue_entry wq_entry;
26853 };
26854 
26855 struct trace_event_raw_irq_handler_entry {
26856 	struct trace_entry ent;
26857 	int irq;
26858 	u32 __data_loc_name;
26859 	char __data[0];
26860 };
26861 
26862 struct trace_event_raw_irq_handler_exit {
26863 	struct trace_entry ent;
26864 	int irq;
26865 	int ret;
26866 	char __data[0];
26867 };
26868 
26869 struct trace_event_raw_softirq {
26870 	struct trace_entry ent;
26871 	unsigned int vec;
26872 	char __data[0];
26873 };
26874 
26875 struct trace_event_data_offsets_irq_handler_entry {
26876 	u32 name;
26877 };
26878 
26879 struct trace_event_data_offsets_irq_handler_exit {};
26880 
26881 struct trace_event_data_offsets_softirq {};
26882 
26883 typedef void (*btf_trace_irq_handler_entry)(void *, int, struct irqaction *);
26884 
26885 typedef void (*btf_trace_irq_handler_exit)(void *, int, struct irqaction *, int);
26886 
26887 typedef void (*btf_trace_softirq_entry)(void *, unsigned int);
26888 
26889 typedef void (*btf_trace_softirq_exit)(void *, unsigned int);
26890 
26891 typedef void (*btf_trace_softirq_raise)(void *, unsigned int);
26892 
26893 struct tasklet_head {
26894 	struct tasklet_struct *head;
26895 	struct tasklet_struct **tail;
26896 };
26897 
26898 struct resource_entry {
26899 	struct list_head node;
26900 	struct resource *res;
26901 	resource_size_t offset;
26902 	struct resource __res;
26903 };
26904 
26905 struct resource_constraint {
26906 	resource_size_t min;
26907 	resource_size_t max;
26908 	resource_size_t align;
26909 	resource_size_t (*alignf)(void *, const struct resource *, resource_size_t, resource_size_t);
26910 	void *alignf_data;
26911 };
26912 
26913 enum {
26914 	MAX_IORES_LEVEL = 5,
26915 };
26916 
26917 struct region_devres {
26918 	struct resource *parent;
26919 	resource_size_t start;
26920 	resource_size_t n;
26921 };
26922 
26923 enum {
26924 	IPPROTO_IP = 0,
26925 	IPPROTO_ICMP = 1,
26926 	IPPROTO_IGMP = 2,
26927 	IPPROTO_IPIP = 4,
26928 	IPPROTO_TCP = 6,
26929 	IPPROTO_EGP = 8,
26930 	IPPROTO_PUP = 12,
26931 	IPPROTO_UDP = 17,
26932 	IPPROTO_IDP = 22,
26933 	IPPROTO_TP = 29,
26934 	IPPROTO_DCCP = 33,
26935 	IPPROTO_IPV6 = 41,
26936 	IPPROTO_RSVP = 46,
26937 	IPPROTO_GRE = 47,
26938 	IPPROTO_ESP = 50,
26939 	IPPROTO_AH = 51,
26940 	IPPROTO_MTP = 92,
26941 	IPPROTO_BEETPH = 94,
26942 	IPPROTO_ENCAP = 98,
26943 	IPPROTO_PIM = 103,
26944 	IPPROTO_COMP = 108,
26945 	IPPROTO_SCTP = 132,
26946 	IPPROTO_UDPLITE = 136,
26947 	IPPROTO_MPLS = 137,
26948 	IPPROTO_ETHERNET = 143,
26949 	IPPROTO_RAW = 255,
26950 	IPPROTO_MPTCP = 262,
26951 	IPPROTO_MAX = 263,
26952 };
26953 
26954 struct sk_filter {
26955 	refcount_t refcnt;
26956 	struct callback_head rcu;
26957 	struct bpf_prog *prog;
26958 };
26959 
26960 enum rpc_display_format_t {
26961 	RPC_DISPLAY_ADDR = 0,
26962 	RPC_DISPLAY_PORT = 1,
26963 	RPC_DISPLAY_PROTO = 2,
26964 	RPC_DISPLAY_HEX_ADDR = 3,
26965 	RPC_DISPLAY_HEX_PORT = 4,
26966 	RPC_DISPLAY_NETID = 5,
26967 	RPC_DISPLAY_MAX = 6,
26968 };
26969 
26970 enum sysctl_writes_mode {
26971 	SYSCTL_WRITES_LEGACY = 4294967295,
26972 	SYSCTL_WRITES_WARN = 0,
26973 	SYSCTL_WRITES_STRICT = 1,
26974 };
26975 
26976 struct do_proc_dointvec_minmax_conv_param {
26977 	int *min;
26978 	int *max;
26979 };
26980 
26981 struct do_proc_douintvec_minmax_conv_param {
26982 	unsigned int *min;
26983 	unsigned int *max;
26984 };
26985 
26986 struct __user_cap_header_struct {
26987 	__u32 version;
26988 	int pid;
26989 };
26990 
26991 typedef struct __user_cap_header_struct *cap_user_header_t;
26992 
26993 struct __user_cap_data_struct {
26994 	__u32 effective;
26995 	__u32 permitted;
26996 	__u32 inheritable;
26997 };
26998 
26999 typedef struct __user_cap_data_struct *cap_user_data_t;
27000 
27001 typedef struct siginfo siginfo_t;
27002 
27003 struct sigqueue {
27004 	struct list_head list;
27005 	int flags;
27006 	kernel_siginfo_t info;
27007 	struct ucounts *ucounts;
27008 };
27009 
27010 struct ptrace_peeksiginfo_args {
27011 	__u64 off;
27012 	__u32 flags;
27013 	__s32 nr;
27014 };
27015 
27016 struct ptrace_syscall_info {
27017 	__u8 op;
27018 	__u8 pad[3];
27019 	__u32 arch;
27020 	__u64 instruction_pointer;
27021 	__u64 stack_pointer;
27022 	union {
27023 		struct {
27024 			__u64 nr;
27025 			__u64 args[6];
27026 		} entry;
27027 		struct {
27028 			__s64 rval;
27029 			__u8 is_error;
27030 		} exit;
27031 		struct {
27032 			__u64 nr;
27033 			__u64 args[6];
27034 			__u32 ret_data;
27035 		} seccomp;
27036 	};
27037 };
27038 
27039 struct ptrace_rseq_configuration {
27040 	__u64 rseq_abi_pointer;
27041 	__u32 rseq_abi_size;
27042 	__u32 signature;
27043 	__u32 flags;
27044 	__u32 pad;
27045 };
27046 
27047 typedef long unsigned int old_sigset_t;
27048 
27049 enum siginfo_layout {
27050 	SIL_KILL = 0,
27051 	SIL_TIMER = 1,
27052 	SIL_POLL = 2,
27053 	SIL_FAULT = 3,
27054 	SIL_FAULT_TRAPNO = 4,
27055 	SIL_FAULT_MCEERR = 5,
27056 	SIL_FAULT_BNDERR = 6,
27057 	SIL_FAULT_PKUERR = 7,
27058 	SIL_FAULT_PERF_EVENT = 8,
27059 	SIL_CHLD = 9,
27060 	SIL_RT = 10,
27061 	SIL_SYS = 11,
27062 };
27063 
27064 struct fd {
27065 	struct file *file;
27066 	unsigned int flags;
27067 };
27068 
27069 enum {
27070 	TRACE_SIGNAL_DELIVERED = 0,
27071 	TRACE_SIGNAL_IGNORED = 1,
27072 	TRACE_SIGNAL_ALREADY_PENDING = 2,
27073 	TRACE_SIGNAL_OVERFLOW_FAIL = 3,
27074 	TRACE_SIGNAL_LOSE_INFO = 4,
27075 };
27076 
27077 struct trace_event_raw_signal_generate {
27078 	struct trace_entry ent;
27079 	int sig;
27080 	int errno;
27081 	int code;
27082 	char comm[16];
27083 	pid_t pid;
27084 	int group;
27085 	int result;
27086 	char __data[0];
27087 };
27088 
27089 struct trace_event_raw_signal_deliver {
27090 	struct trace_entry ent;
27091 	int sig;
27092 	int errno;
27093 	int code;
27094 	long unsigned int sa_handler;
27095 	long unsigned int sa_flags;
27096 	char __data[0];
27097 };
27098 
27099 struct trace_event_data_offsets_signal_generate {};
27100 
27101 struct trace_event_data_offsets_signal_deliver {};
27102 
27103 typedef void (*btf_trace_signal_generate)(void *, int, struct kernel_siginfo *, struct task_struct *, int, int);
27104 
27105 typedef void (*btf_trace_signal_deliver)(void *, int, struct kernel_siginfo *, struct k_sigaction *);
27106 
27107 enum sig_handler {
27108 	HANDLER_CURRENT = 0,
27109 	HANDLER_SIG_DFL = 1,
27110 	HANDLER_EXIT = 2,
27111 };
27112 
27113 struct sysinfo {
27114 	__kernel_long_t uptime;
27115 	__kernel_ulong_t loads[3];
27116 	__kernel_ulong_t totalram;
27117 	__kernel_ulong_t freeram;
27118 	__kernel_ulong_t sharedram;
27119 	__kernel_ulong_t bufferram;
27120 	__kernel_ulong_t totalswap;
27121 	__kernel_ulong_t freeswap;
27122 	__u16 procs;
27123 	__u16 pad;
27124 	__kernel_ulong_t totalhigh;
27125 	__kernel_ulong_t freehigh;
27126 	__u32 mem_unit;
27127 	char _f[0];
27128 };
27129 
27130 enum {
27131 	PER_LINUX = 0,
27132 	PER_LINUX_32BIT = 8388608,
27133 	PER_LINUX_FDPIC = 524288,
27134 	PER_SVR4 = 68157441,
27135 	PER_SVR3 = 83886082,
27136 	PER_SCOSVR3 = 117440515,
27137 	PER_OSR5 = 100663299,
27138 	PER_WYSEV386 = 83886084,
27139 	PER_ISCR4 = 67108869,
27140 	PER_BSD = 6,
27141 	PER_SUNOS = 67108870,
27142 	PER_XENIX = 83886087,
27143 	PER_LINUX32 = 8,
27144 	PER_LINUX32_3GB = 134217736,
27145 	PER_IRIX32 = 67108873,
27146 	PER_IRIXN32 = 67108874,
27147 	PER_IRIX64 = 67108875,
27148 	PER_RISCOS = 12,
27149 	PER_SOLARIS = 67108877,
27150 	PER_UW7 = 68157454,
27151 	PER_OSF4 = 15,
27152 	PER_HPUX = 16,
27153 	PER_MASK = 255,
27154 };
27155 
27156 struct rlimit64 {
27157 	__u64 rlim_cur;
27158 	__u64 rlim_max;
27159 };
27160 
27161 struct oldold_utsname {
27162 	char sysname[9];
27163 	char nodename[9];
27164 	char release[9];
27165 	char version[9];
27166 	char machine[9];
27167 };
27168 
27169 struct old_utsname {
27170 	char sysname[65];
27171 	char nodename[65];
27172 	char release[65];
27173 	char version[65];
27174 	char machine[65];
27175 };
27176 
27177 enum uts_proc {
27178 	UTS_PROC_OSTYPE = 0,
27179 	UTS_PROC_OSRELEASE = 1,
27180 	UTS_PROC_VERSION = 2,
27181 	UTS_PROC_HOSTNAME = 3,
27182 	UTS_PROC_DOMAINNAME = 4,
27183 };
27184 
27185 struct prctl_mm_map {
27186 	__u64 start_code;
27187 	__u64 end_code;
27188 	__u64 start_data;
27189 	__u64 end_data;
27190 	__u64 start_brk;
27191 	__u64 brk;
27192 	__u64 start_stack;
27193 	__u64 arg_start;
27194 	__u64 arg_end;
27195 	__u64 env_start;
27196 	__u64 env_end;
27197 	__u64 *auxv;
27198 	__u32 auxv_size;
27199 	__u32 exe_fd;
27200 };
27201 
27202 struct tms {
27203 	__kernel_clock_t tms_utime;
27204 	__kernel_clock_t tms_stime;
27205 	__kernel_clock_t tms_cutime;
27206 	__kernel_clock_t tms_cstime;
27207 };
27208 
27209 struct getcpu_cache {
27210 	long unsigned int blob[16];
27211 };
27212 
27213 struct wq_flusher;
27214 
27215 struct worker;
27216 
27217 struct workqueue_attrs;
27218 
27219 struct pool_workqueue;
27220 
27221 struct wq_device;
27222 
27223 struct workqueue_struct {
27224 	struct list_head pwqs;
27225 	struct list_head list;
27226 	struct mutex mutex;
27227 	int work_color;
27228 	int flush_color;
27229 	atomic_t nr_pwqs_to_flush;
27230 	struct wq_flusher *first_flusher;
27231 	struct list_head flusher_queue;
27232 	struct list_head flusher_overflow;
27233 	struct list_head maydays;
27234 	struct worker *rescuer;
27235 	int nr_drainers;
27236 	int saved_max_active;
27237 	struct workqueue_attrs *unbound_attrs;
27238 	struct pool_workqueue *dfl_pwq;
27239 	struct wq_device *wq_dev;
27240 	char *lock_name;
27241 	struct lock_class_key key;
27242 	struct lockdep_map lockdep_map;
27243 	char name[24];
27244 	struct callback_head rcu;
27245 	long: 64;
27246 	long: 64;
27247 	long: 64;
27248 	long: 64;
27249 	long: 64;
27250 	long: 64;
27251 	long: 64;
27252 	unsigned int flags;
27253 	struct pool_workqueue *cpu_pwqs;
27254 	struct pool_workqueue *numa_pwq_tbl[0];
27255 	long: 64;
27256 	long: 64;
27257 	long: 64;
27258 	long: 64;
27259 	long: 64;
27260 	long: 64;
27261 };
27262 
27263 struct workqueue_attrs {
27264 	int nice;
27265 	cpumask_var_t cpumask;
27266 	bool no_numa;
27267 };
27268 
27269 struct execute_work {
27270 	struct work_struct work;
27271 };
27272 
27273 enum {
27274 	WQ_UNBOUND = 2,
27275 	WQ_FREEZABLE = 4,
27276 	WQ_MEM_RECLAIM = 8,
27277 	WQ_HIGHPRI = 16,
27278 	WQ_CPU_INTENSIVE = 32,
27279 	WQ_SYSFS = 64,
27280 	WQ_POWER_EFFICIENT = 128,
27281 	__WQ_DRAINING = 65536,
27282 	__WQ_ORDERED = 131072,
27283 	__WQ_LEGACY = 262144,
27284 	__WQ_ORDERED_EXPLICIT = 524288,
27285 	WQ_MAX_ACTIVE = 512,
27286 	WQ_MAX_UNBOUND_PER_CPU = 4,
27287 	WQ_DFL_ACTIVE = 256,
27288 };
27289 
27290 typedef unsigned int xa_mark_t;
27291 
27292 enum xa_lock_type {
27293 	XA_LOCK_IRQ = 1,
27294 	XA_LOCK_BH = 2,
27295 };
27296 
27297 struct __una_u32 {
27298 	u32 x;
27299 };
27300 
27301 struct worker_pool;
27302 
27303 struct worker {
27304 	union {
27305 		struct list_head entry;
27306 		struct hlist_node hentry;
27307 	};
27308 	struct work_struct *current_work;
27309 	work_func_t current_func;
27310 	struct pool_workqueue *current_pwq;
27311 	unsigned int current_color;
27312 	struct list_head scheduled;
27313 	struct task_struct *task;
27314 	struct worker_pool *pool;
27315 	struct list_head node;
27316 	long unsigned int last_active;
27317 	unsigned int flags;
27318 	int id;
27319 	int sleeping;
27320 	char desc[24];
27321 	struct workqueue_struct *rescue_wq;
27322 	work_func_t last_func;
27323 };
27324 
27325 struct pool_workqueue {
27326 	struct worker_pool *pool;
27327 	struct workqueue_struct *wq;
27328 	int work_color;
27329 	int flush_color;
27330 	int refcnt;
27331 	int nr_in_flight[16];
27332 	int nr_active;
27333 	int max_active;
27334 	struct list_head inactive_works;
27335 	struct list_head pwqs_node;
27336 	struct list_head mayday_node;
27337 	struct work_struct unbound_release_work;
27338 	struct callback_head rcu;
27339 	long: 64;
27340 	long: 64;
27341 };
27342 
27343 struct worker_pool {
27344 	raw_spinlock_t lock;
27345 	int cpu;
27346 	int node;
27347 	int id;
27348 	unsigned int flags;
27349 	long unsigned int watchdog_ts;
27350 	atomic_t nr_running;
27351 	struct list_head worklist;
27352 	int nr_workers;
27353 	int nr_idle;
27354 	struct list_head idle_list;
27355 	struct timer_list idle_timer;
27356 	struct timer_list mayday_timer;
27357 	struct hlist_head busy_hash[64];
27358 	struct worker *manager;
27359 	struct list_head workers;
27360 	struct completion *detach_completion;
27361 	struct ida worker_ida;
27362 	struct workqueue_attrs *attrs;
27363 	struct hlist_node hash_node;
27364 	int refcnt;
27365 	struct callback_head rcu;
27366 };
27367 
27368 enum {
27369 	POOL_MANAGER_ACTIVE = 1,
27370 	POOL_DISASSOCIATED = 4,
27371 	WORKER_DIE = 2,
27372 	WORKER_IDLE = 4,
27373 	WORKER_PREP = 8,
27374 	WORKER_CPU_INTENSIVE = 64,
27375 	WORKER_UNBOUND = 128,
27376 	WORKER_REBOUND = 256,
27377 	WORKER_NOT_RUNNING = 456,
27378 	NR_STD_WORKER_POOLS = 2,
27379 	UNBOUND_POOL_HASH_ORDER = 6,
27380 	BUSY_WORKER_HASH_ORDER = 6,
27381 	MAX_IDLE_WORKERS_RATIO = 4,
27382 	IDLE_WORKER_TIMEOUT = 300000,
27383 	MAYDAY_INITIAL_TIMEOUT = 10,
27384 	MAYDAY_INTERVAL = 100,
27385 	CREATE_COOLDOWN = 1000,
27386 	RESCUER_NICE_LEVEL = 4294967276,
27387 	HIGHPRI_NICE_LEVEL = 4294967276,
27388 	WQ_NAME_LEN = 24,
27389 };
27390 
27391 struct wq_flusher {
27392 	struct list_head list;
27393 	int flush_color;
27394 	struct completion done;
27395 };
27396 
27397 struct wq_device {
27398 	struct workqueue_struct *wq;
27399 	struct device dev;
27400 };
27401 
27402 struct trace_event_raw_workqueue_queue_work {
27403 	struct trace_entry ent;
27404 	void *work;
27405 	void *function;
27406 	u32 __data_loc_workqueue;
27407 	unsigned int req_cpu;
27408 	unsigned int cpu;
27409 	char __data[0];
27410 };
27411 
27412 struct trace_event_raw_workqueue_activate_work {
27413 	struct trace_entry ent;
27414 	void *work;
27415 	char __data[0];
27416 };
27417 
27418 struct trace_event_raw_workqueue_execute_start {
27419 	struct trace_entry ent;
27420 	void *work;
27421 	void *function;
27422 	char __data[0];
27423 };
27424 
27425 struct trace_event_raw_workqueue_execute_end {
27426 	struct trace_entry ent;
27427 	void *work;
27428 	void *function;
27429 	char __data[0];
27430 };
27431 
27432 struct trace_event_data_offsets_workqueue_queue_work {
27433 	u32 workqueue;
27434 };
27435 
27436 struct trace_event_data_offsets_workqueue_activate_work {};
27437 
27438 struct trace_event_data_offsets_workqueue_execute_start {};
27439 
27440 struct trace_event_data_offsets_workqueue_execute_end {};
27441 
27442 typedef void (*btf_trace_workqueue_queue_work)(void *, unsigned int, struct pool_workqueue *, struct work_struct *);
27443 
27444 typedef void (*btf_trace_workqueue_activate_work)(void *, struct work_struct *);
27445 
27446 typedef void (*btf_trace_workqueue_execute_start)(void *, struct work_struct *);
27447 
27448 typedef void (*btf_trace_workqueue_execute_end)(void *, struct work_struct *, work_func_t);
27449 
27450 struct wq_barrier {
27451 	struct work_struct work;
27452 	struct completion done;
27453 	struct task_struct *task;
27454 };
27455 
27456 struct cwt_wait {
27457 	wait_queue_entry_t wait;
27458 	struct work_struct *work;
27459 };
27460 
27461 struct apply_wqattrs_ctx {
27462 	struct workqueue_struct *wq;
27463 	struct workqueue_attrs *attrs;
27464 	struct list_head list;
27465 	struct pool_workqueue *dfl_pwq;
27466 	struct pool_workqueue *pwq_tbl[0];
27467 };
27468 
27469 struct work_for_cpu {
27470 	struct work_struct work;
27471 	long int (*fn)(void *);
27472 	void *arg;
27473 	long int ret;
27474 };
27475 
27476 typedef void (*task_work_func_t)(struct callback_head *);
27477 
27478 enum {
27479 	KERNEL_PARAM_OPS_FL_NOARG = 1,
27480 };
27481 
27482 enum {
27483 	KERNEL_PARAM_FL_UNSAFE = 1,
27484 	KERNEL_PARAM_FL_HWPARAM = 2,
27485 };
27486 
27487 struct param_attribute {
27488 	struct module_attribute mattr;
27489 	const struct kernel_param *param;
27490 };
27491 
27492 struct module_param_attrs {
27493 	unsigned int num;
27494 	struct attribute_group grp;
27495 	struct param_attribute attrs[0];
27496 };
27497 
27498 struct module_version_attribute {
27499 	struct module_attribute mattr;
27500 	const char *module_name;
27501 	const char *version;
27502 };
27503 
27504 struct kmalloced_param {
27505 	struct list_head list;
27506 	char val[0];
27507 };
27508 
27509 struct sched_param {
27510 	int sched_priority;
27511 };
27512 
27513 enum {
27514 	__PERCPU_REF_ATOMIC = 1,
27515 	__PERCPU_REF_DEAD = 2,
27516 	__PERCPU_REF_ATOMIC_DEAD = 3,
27517 	__PERCPU_REF_FLAG_BITS = 2,
27518 };
27519 
27520 struct kthread_work;
27521 
27522 typedef void (*kthread_work_func_t)(struct kthread_work *);
27523 
27524 struct kthread_worker;
27525 
27526 struct kthread_work {
27527 	struct list_head node;
27528 	kthread_work_func_t func;
27529 	struct kthread_worker *worker;
27530 	int canceling;
27531 };
27532 
27533 enum {
27534 	KTW_FREEZABLE = 1,
27535 };
27536 
27537 struct kthread_worker {
27538 	unsigned int flags;
27539 	raw_spinlock_t lock;
27540 	struct list_head work_list;
27541 	struct list_head delayed_work_list;
27542 	struct task_struct *task;
27543 	struct kthread_work *current_work;
27544 };
27545 
27546 struct kthread_delayed_work {
27547 	struct kthread_work work;
27548 	struct timer_list timer;
27549 };
27550 
27551 enum {
27552 	CSS_NO_REF = 1,
27553 	CSS_ONLINE = 2,
27554 	CSS_RELEASED = 4,
27555 	CSS_VISIBLE = 8,
27556 	CSS_DYING = 16,
27557 };
27558 
27559 struct kthread_create_info {
27560 	int (*threadfn)(void *);
27561 	void *data;
27562 	int node;
27563 	struct task_struct *result;
27564 	struct completion *done;
27565 	struct list_head list;
27566 };
27567 
27568 struct kthread {
27569 	long unsigned int flags;
27570 	unsigned int cpu;
27571 	int result;
27572 	int (*threadfn)(void *);
27573 	void *data;
27574 	mm_segment_t oldfs;
27575 	struct completion parked;
27576 	struct completion exited;
27577 	struct cgroup_subsys_state *blkcg_css;
27578 	char *full_name;
27579 };
27580 
27581 enum KTHREAD_BITS {
27582 	KTHREAD_IS_PER_CPU = 0,
27583 	KTHREAD_SHOULD_STOP = 1,
27584 	KTHREAD_SHOULD_PARK = 2,
27585 };
27586 
27587 struct kthread_flush_work {
27588 	struct kthread_work work;
27589 	struct completion done;
27590 };
27591 
27592 struct ipc_ids {
27593 	int in_use;
27594 	short unsigned int seq;
27595 	struct rw_semaphore rwsem;
27596 	struct idr ipcs_idr;
27597 	int max_idx;
27598 	int last_idx;
27599 	struct rhashtable key_ht;
27600 };
27601 
27602 struct ipc_namespace {
27603 	struct ipc_ids ids[3];
27604 	int sem_ctls[4];
27605 	int used_sems;
27606 	unsigned int msg_ctlmax;
27607 	unsigned int msg_ctlmnb;
27608 	unsigned int msg_ctlmni;
27609 	atomic_t msg_bytes;
27610 	atomic_t msg_hdrs;
27611 	size_t shm_ctlmax;
27612 	size_t shm_ctlall;
27613 	long unsigned int shm_tot;
27614 	int shm_ctlmni;
27615 	int shm_rmid_forced;
27616 	struct notifier_block ipcns_nb;
27617 	struct vfsmount *mq_mnt;
27618 	unsigned int mq_queues_count;
27619 	unsigned int mq_queues_max;
27620 	unsigned int mq_msg_max;
27621 	unsigned int mq_msgsize_max;
27622 	unsigned int mq_msg_default;
27623 	unsigned int mq_msgsize_default;
27624 	struct user_namespace *user_ns;
27625 	struct ucounts *ucounts;
27626 	struct llist_node mnt_llist;
27627 	struct ns_common ns;
27628 };
27629 
27630 struct srcu_notifier_head {
27631 	struct mutex mutex;
27632 	struct srcu_struct srcu;
27633 	struct notifier_block *head;
27634 };
27635 
27636 enum what {
27637 	PROC_EVENT_NONE = 0,
27638 	PROC_EVENT_FORK = 1,
27639 	PROC_EVENT_EXEC = 2,
27640 	PROC_EVENT_UID = 4,
27641 	PROC_EVENT_GID = 64,
27642 	PROC_EVENT_SID = 128,
27643 	PROC_EVENT_PTRACE = 256,
27644 	PROC_EVENT_COMM = 512,
27645 	PROC_EVENT_COREDUMP = 1073741824,
27646 	PROC_EVENT_EXIT = 2147483648,
27647 };
27648 
27649 struct async_entry {
27650 	struct list_head domain_list;
27651 	struct list_head global_list;
27652 	struct work_struct work;
27653 	async_cookie_t cookie;
27654 	async_func_t func;
27655 	void *data;
27656 	struct async_domain *domain;
27657 };
27658 
27659 struct smpboot_thread_data {
27660 	unsigned int cpu;
27661 	unsigned int status;
27662 	struct smp_hotplug_thread *ht;
27663 };
27664 
27665 enum {
27666 	HP_THREAD_NONE = 0,
27667 	HP_THREAD_ACTIVE = 1,
27668 	HP_THREAD_PARKED = 2,
27669 };
27670 
27671 struct umd_info {
27672 	const char *driver_name;
27673 	struct file *pipe_to_umh;
27674 	struct file *pipe_from_umh;
27675 	struct path wd;
27676 	struct pid *tgid;
27677 };
27678 
27679 struct pin_cookie {
27680 	unsigned int val;
27681 };
27682 
27683 enum {
27684 	CSD_FLAG_LOCK = 1,
27685 	IRQ_WORK_PENDING = 1,
27686 	IRQ_WORK_BUSY = 2,
27687 	IRQ_WORK_LAZY = 4,
27688 	IRQ_WORK_HARD_IRQ = 8,
27689 	IRQ_WORK_CLAIMED = 3,
27690 	CSD_TYPE_ASYNC = 0,
27691 	CSD_TYPE_SYNC = 16,
27692 	CSD_TYPE_IRQ_WORK = 32,
27693 	CSD_TYPE_TTWU = 48,
27694 	CSD_FLAG_TYPE_MASK = 240,
27695 };
27696 
27697 typedef int (*task_call_f)(struct task_struct *, void *);
27698 
27699 struct dl_bw {
27700 	raw_spinlock_t lock;
27701 	u64 bw;
27702 	u64 total_bw;
27703 };
27704 
27705 struct cpudl_item;
27706 
27707 struct cpudl {
27708 	raw_spinlock_t lock;
27709 	int size;
27710 	cpumask_var_t free_cpus;
27711 	struct cpudl_item *elements;
27712 };
27713 
27714 struct cpupri_vec {
27715 	atomic_t count;
27716 	cpumask_var_t mask;
27717 };
27718 
27719 struct cpupri {
27720 	struct cpupri_vec pri_to_cpu[101];
27721 	int *cpu_to_pri;
27722 };
27723 
27724 struct perf_domain;
27725 
27726 struct root_domain___2 {
27727 	atomic_t refcount;
27728 	atomic_t rto_count;
27729 	struct callback_head rcu;
27730 	cpumask_var_t span;
27731 	cpumask_var_t online;
27732 	int overload;
27733 	int overutilized;
27734 	cpumask_var_t dlo_mask;
27735 	atomic_t dlo_count;
27736 	struct dl_bw dl_bw;
27737 	struct cpudl cpudl;
27738 	u64 visit_gen;
27739 	struct irq_work rto_push_work;
27740 	raw_spinlock_t rto_lock;
27741 	int rto_loop;
27742 	int rto_cpu;
27743 	atomic_t rto_loop_next;
27744 	atomic_t rto_loop_start;
27745 	cpumask_var_t rto_mask;
27746 	struct cpupri cpupri;
27747 	long unsigned int max_cpu_capacity;
27748 	struct perf_domain *pd;
27749 };
27750 
27751 struct cfs_rq {
27752 	struct load_weight load;
27753 	unsigned int nr_running;
27754 	unsigned int h_nr_running;
27755 	unsigned int idle_nr_running;
27756 	unsigned int idle_h_nr_running;
27757 	u64 exec_clock;
27758 	u64 min_vruntime;
27759 	struct rb_root_cached tasks_timeline;
27760 	struct sched_entity *curr;
27761 	struct sched_entity *next;
27762 	struct sched_entity *last;
27763 	struct sched_entity *skip;
27764 	unsigned int nr_spread_over;
27765 	long: 32;
27766 	long: 64;
27767 	long: 64;
27768 	long: 64;
27769 	struct sched_avg avg;
27770 	struct {
27771 		raw_spinlock_t lock;
27772 		int nr;
27773 		long unsigned int load_avg;
27774 		long unsigned int util_avg;
27775 		long unsigned int runnable_avg;
27776 		long: 64;
27777 		long: 64;
27778 		long: 64;
27779 		long: 64;
27780 	} removed;
27781 	long unsigned int tg_load_avg_contrib;
27782 	long int propagate;
27783 	long int prop_runnable_sum;
27784 	long unsigned int h_load;
27785 	u64 last_h_load_update;
27786 	struct sched_entity *h_load_next;
27787 	struct rq *rq;
27788 	int on_list;
27789 	struct list_head leaf_cfs_rq_list;
27790 	struct task_group *tg;
27791 	int idle;
27792 	int runtime_enabled;
27793 	s64 runtime_remaining;
27794 	u64 throttled_clock;
27795 	u64 throttled_clock_task;
27796 	u64 throttled_clock_task_time;
27797 	int throttled;
27798 	int throttle_count;
27799 	struct list_head throttled_list;
27800 	long: 64;
27801 	long: 64;
27802 	long: 64;
27803 	long: 64;
27804 	long: 64;
27805 };
27806 
27807 struct cfs_bandwidth {
27808 	raw_spinlock_t lock;
27809 	ktime_t period;
27810 	u64 quota;
27811 	u64 runtime;
27812 	u64 burst;
27813 	u64 runtime_snap;
27814 	s64 hierarchical_quota;
27815 	u8 idle;
27816 	u8 period_active;
27817 	u8 slack_started;
27818 	struct hrtimer period_timer;
27819 	struct hrtimer slack_timer;
27820 	struct list_head throttled_cfs_rq;
27821 	int nr_periods;
27822 	int nr_throttled;
27823 	int nr_burst;
27824 	u64 throttled_time;
27825 	u64 burst_time;
27826 };
27827 
27828 struct task_group {
27829 	struct cgroup_subsys_state css;
27830 	struct sched_entity **se;
27831 	struct cfs_rq **cfs_rq;
27832 	long unsigned int shares;
27833 	int idle;
27834 	long: 32;
27835 	long: 64;
27836 	atomic_long_t load_avg;
27837 	struct callback_head rcu;
27838 	struct list_head list;
27839 	struct task_group *parent;
27840 	struct list_head siblings;
27841 	struct list_head children;
27842 	struct cfs_bandwidth cfs_bandwidth;
27843 	long: 64;
27844 };
27845 
27846 struct update_util_data {
27847 	void (*func)(struct update_util_data *, u64, unsigned int);
27848 };
27849 
27850 struct sched_group {
27851 	struct sched_group *next;
27852 	atomic_t ref;
27853 	unsigned int group_weight;
27854 	struct sched_group_capacity *sgc;
27855 	int asym_prefer_cpu;
27856 	int flags;
27857 	long unsigned int cpumask[0];
27858 };
27859 
27860 struct sched_group_capacity {
27861 	atomic_t ref;
27862 	long unsigned int capacity;
27863 	long unsigned int min_capacity;
27864 	long unsigned int max_capacity;
27865 	long unsigned int next_update;
27866 	int imbalance;
27867 	int id;
27868 	long unsigned int cpumask[0];
27869 };
27870 
27871 struct em_perf_state {
27872 	long unsigned int frequency;
27873 	long unsigned int power;
27874 	long unsigned int cost;
27875 	long unsigned int flags;
27876 };
27877 
27878 struct em_perf_domain {
27879 	struct em_perf_state *table;
27880 	int nr_perf_states;
27881 	long unsigned int flags;
27882 	long unsigned int cpus[0];
27883 };
27884 
27885 enum ctx_state {
27886 	CONTEXT_DISABLED = 4294967295,
27887 	CONTEXT_KERNEL = 0,
27888 	CONTEXT_USER = 1,
27889 	CONTEXT_GUEST = 2,
27890 };
27891 
27892 enum {
27893 	CFTYPE_ONLY_ON_ROOT = 1,
27894 	CFTYPE_NOT_ON_ROOT = 2,
27895 	CFTYPE_NS_DELEGATABLE = 4,
27896 	CFTYPE_NO_PREFIX = 8,
27897 	CFTYPE_WORLD_WRITABLE = 16,
27898 	CFTYPE_DEBUG = 32,
27899 	CFTYPE_PRESSURE = 64,
27900 	__CFTYPE_ONLY_ON_DFL = 65536,
27901 	__CFTYPE_NOT_ON_DFL = 131072,
27902 };
27903 
27904 struct trace_event_raw_sched_kthread_stop {
27905 	struct trace_entry ent;
27906 	char comm[16];
27907 	pid_t pid;
27908 	char __data[0];
27909 };
27910 
27911 struct trace_event_raw_sched_kthread_stop_ret {
27912 	struct trace_entry ent;
27913 	int ret;
27914 	char __data[0];
27915 };
27916 
27917 struct trace_event_raw_sched_kthread_work_queue_work {
27918 	struct trace_entry ent;
27919 	void *work;
27920 	void *function;
27921 	void *worker;
27922 	char __data[0];
27923 };
27924 
27925 struct trace_event_raw_sched_kthread_work_execute_start {
27926 	struct trace_entry ent;
27927 	void *work;
27928 	void *function;
27929 	char __data[0];
27930 };
27931 
27932 struct trace_event_raw_sched_kthread_work_execute_end {
27933 	struct trace_entry ent;
27934 	void *work;
27935 	void *function;
27936 	char __data[0];
27937 };
27938 
27939 struct trace_event_raw_sched_wakeup_template {
27940 	struct trace_entry ent;
27941 	char comm[16];
27942 	pid_t pid;
27943 	int prio;
27944 	int target_cpu;
27945 	char __data[0];
27946 };
27947 
27948 struct trace_event_raw_sched_switch {
27949 	struct trace_entry ent;
27950 	char prev_comm[16];
27951 	pid_t prev_pid;
27952 	int prev_prio;
27953 	long int prev_state;
27954 	char next_comm[16];
27955 	pid_t next_pid;
27956 	int next_prio;
27957 	char __data[0];
27958 };
27959 
27960 struct trace_event_raw_sched_migrate_task {
27961 	struct trace_entry ent;
27962 	char comm[16];
27963 	pid_t pid;
27964 	int prio;
27965 	int orig_cpu;
27966 	int dest_cpu;
27967 	char __data[0];
27968 };
27969 
27970 struct trace_event_raw_sched_process_template {
27971 	struct trace_entry ent;
27972 	char comm[16];
27973 	pid_t pid;
27974 	int prio;
27975 	char __data[0];
27976 };
27977 
27978 struct trace_event_raw_sched_process_wait {
27979 	struct trace_entry ent;
27980 	char comm[16];
27981 	pid_t pid;
27982 	int prio;
27983 	char __data[0];
27984 };
27985 
27986 struct trace_event_raw_sched_process_fork {
27987 	struct trace_entry ent;
27988 	char parent_comm[16];
27989 	pid_t parent_pid;
27990 	char child_comm[16];
27991 	pid_t child_pid;
27992 	char __data[0];
27993 };
27994 
27995 struct trace_event_raw_sched_process_exec {
27996 	struct trace_entry ent;
27997 	u32 __data_loc_filename;
27998 	pid_t pid;
27999 	pid_t old_pid;
28000 	char __data[0];
28001 };
28002 
28003 struct trace_event_raw_sched_stat_template {
28004 	struct trace_entry ent;
28005 	char comm[16];
28006 	pid_t pid;
28007 	u64 delay;
28008 	char __data[0];
28009 };
28010 
28011 struct trace_event_raw_sched_stat_runtime {
28012 	struct trace_entry ent;
28013 	char comm[16];
28014 	pid_t pid;
28015 	u64 runtime;
28016 	u64 vruntime;
28017 	char __data[0];
28018 };
28019 
28020 struct trace_event_raw_sched_pi_setprio {
28021 	struct trace_entry ent;
28022 	char comm[16];
28023 	pid_t pid;
28024 	int oldprio;
28025 	int newprio;
28026 	char __data[0];
28027 };
28028 
28029 struct trace_event_raw_sched_process_hang {
28030 	struct trace_entry ent;
28031 	char comm[16];
28032 	pid_t pid;
28033 	char __data[0];
28034 };
28035 
28036 struct trace_event_raw_sched_move_numa {
28037 	struct trace_entry ent;
28038 	pid_t pid;
28039 	pid_t tgid;
28040 	pid_t ngid;
28041 	int src_cpu;
28042 	int src_nid;
28043 	int dst_cpu;
28044 	int dst_nid;
28045 	char __data[0];
28046 };
28047 
28048 struct trace_event_raw_sched_numa_pair_template {
28049 	struct trace_entry ent;
28050 	pid_t src_pid;
28051 	pid_t src_tgid;
28052 	pid_t src_ngid;
28053 	int src_cpu;
28054 	int src_nid;
28055 	pid_t dst_pid;
28056 	pid_t dst_tgid;
28057 	pid_t dst_ngid;
28058 	int dst_cpu;
28059 	int dst_nid;
28060 	char __data[0];
28061 };
28062 
28063 struct trace_event_raw_sched_wake_idle_without_ipi {
28064 	struct trace_entry ent;
28065 	int cpu;
28066 	char __data[0];
28067 };
28068 
28069 struct trace_event_data_offsets_sched_kthread_stop {};
28070 
28071 struct trace_event_data_offsets_sched_kthread_stop_ret {};
28072 
28073 struct trace_event_data_offsets_sched_kthread_work_queue_work {};
28074 
28075 struct trace_event_data_offsets_sched_kthread_work_execute_start {};
28076 
28077 struct trace_event_data_offsets_sched_kthread_work_execute_end {};
28078 
28079 struct trace_event_data_offsets_sched_wakeup_template {};
28080 
28081 struct trace_event_data_offsets_sched_switch {};
28082 
28083 struct trace_event_data_offsets_sched_migrate_task {};
28084 
28085 struct trace_event_data_offsets_sched_process_template {};
28086 
28087 struct trace_event_data_offsets_sched_process_wait {};
28088 
28089 struct trace_event_data_offsets_sched_process_fork {};
28090 
28091 struct trace_event_data_offsets_sched_process_exec {
28092 	u32 filename;
28093 };
28094 
28095 struct trace_event_data_offsets_sched_stat_template {};
28096 
28097 struct trace_event_data_offsets_sched_stat_runtime {};
28098 
28099 struct trace_event_data_offsets_sched_pi_setprio {};
28100 
28101 struct trace_event_data_offsets_sched_process_hang {};
28102 
28103 struct trace_event_data_offsets_sched_move_numa {};
28104 
28105 struct trace_event_data_offsets_sched_numa_pair_template {};
28106 
28107 struct trace_event_data_offsets_sched_wake_idle_without_ipi {};
28108 
28109 typedef void (*btf_trace_sched_kthread_stop)(void *, struct task_struct *);
28110 
28111 typedef void (*btf_trace_sched_kthread_stop_ret)(void *, int);
28112 
28113 typedef void (*btf_trace_sched_kthread_work_queue_work)(void *, struct kthread_worker *, struct kthread_work *);
28114 
28115 typedef void (*btf_trace_sched_kthread_work_execute_start)(void *, struct kthread_work *);
28116 
28117 typedef void (*btf_trace_sched_kthread_work_execute_end)(void *, struct kthread_work *, kthread_work_func_t);
28118 
28119 typedef void (*btf_trace_sched_waking)(void *, struct task_struct *);
28120 
28121 typedef void (*btf_trace_sched_wakeup)(void *, struct task_struct *);
28122 
28123 typedef void (*btf_trace_sched_wakeup_new)(void *, struct task_struct *);
28124 
28125 typedef void (*btf_trace_sched_switch)(void *, bool, struct task_struct *, struct task_struct *);
28126 
28127 typedef void (*btf_trace_sched_migrate_task)(void *, struct task_struct *, int);
28128 
28129 typedef void (*btf_trace_sched_process_free)(void *, struct task_struct *);
28130 
28131 typedef void (*btf_trace_sched_process_exit)(void *, struct task_struct *);
28132 
28133 typedef void (*btf_trace_sched_wait_task)(void *, struct task_struct *);
28134 
28135 typedef void (*btf_trace_sched_process_wait)(void *, struct pid *);
28136 
28137 typedef void (*btf_trace_sched_process_fork)(void *, struct task_struct *, struct task_struct *);
28138 
28139 typedef void (*btf_trace_sched_process_exec)(void *, struct task_struct *, pid_t, struct linux_binprm *);
28140 
28141 typedef void (*btf_trace_sched_stat_wait)(void *, struct task_struct *, u64);
28142 
28143 typedef void (*btf_trace_sched_stat_sleep)(void *, struct task_struct *, u64);
28144 
28145 typedef void (*btf_trace_sched_stat_iowait)(void *, struct task_struct *, u64);
28146 
28147 typedef void (*btf_trace_sched_stat_blocked)(void *, struct task_struct *, u64);
28148 
28149 typedef void (*btf_trace_sched_stat_runtime)(void *, struct task_struct *, u64, u64);
28150 
28151 typedef void (*btf_trace_sched_pi_setprio)(void *, struct task_struct *, struct task_struct *);
28152 
28153 typedef void (*btf_trace_sched_process_hang)(void *, struct task_struct *);
28154 
28155 typedef void (*btf_trace_sched_move_numa)(void *, struct task_struct *, int, int);
28156 
28157 typedef void (*btf_trace_sched_stick_numa)(void *, struct task_struct *, int, struct task_struct *, int);
28158 
28159 typedef void (*btf_trace_sched_swap_numa)(void *, struct task_struct *, int, struct task_struct *, int);
28160 
28161 typedef void (*btf_trace_sched_wake_idle_without_ipi)(void *, int);
28162 
28163 typedef void (*btf_trace_pelt_cfs_tp)(void *, struct cfs_rq *);
28164 
28165 typedef void (*btf_trace_pelt_rt_tp)(void *, struct rq *);
28166 
28167 struct rt_prio_array {
28168 	long unsigned int bitmap[2];
28169 	struct list_head queue[100];
28170 };
28171 
28172 struct rt_rq {
28173 	struct rt_prio_array active;
28174 	unsigned int rt_nr_running;
28175 	unsigned int rr_nr_running;
28176 	struct {
28177 		int curr;
28178 		int next;
28179 	} highest_prio;
28180 	unsigned int rt_nr_migratory;
28181 	unsigned int rt_nr_total;
28182 	int overloaded;
28183 	struct plist_head pushable_tasks;
28184 	int rt_queued;
28185 	int rt_throttled;
28186 	u64 rt_time;
28187 	u64 rt_runtime;
28188 	raw_spinlock_t rt_runtime_lock;
28189 };
28190 
28191 struct dl_rq {
28192 	struct rb_root_cached root;
28193 	unsigned int dl_nr_running;
28194 	struct {
28195 		u64 curr;
28196 		u64 next;
28197 	} earliest_dl;
28198 	unsigned int dl_nr_migratory;
28199 	int overloaded;
28200 	struct rb_root_cached pushable_dl_tasks_root;
28201 	u64 running_bw;
28202 	u64 this_bw;
28203 	u64 extra_bw;
28204 	u64 bw_ratio;
28205 };
28206 
28207 typedef int (*cpu_stop_fn_t)(void *);
28208 
28209 struct cpu_stop_done;
28210 
28211 struct cpu_stop_work {
28212 	struct list_head list;
28213 	cpu_stop_fn_t fn;
28214 	long unsigned int caller;
28215 	void *arg;
28216 	struct cpu_stop_done *done;
28217 };
28218 
28219 struct rq {
28220 	raw_spinlock_t __lock;
28221 	unsigned int nr_running;
28222 	unsigned int nr_numa_running;
28223 	unsigned int nr_preferred_running;
28224 	unsigned int numa_migrate_on;
28225 	long unsigned int last_blocked_load_update_tick;
28226 	unsigned int has_blocked_load;
28227 	call_single_data_t nohz_csd;
28228 	unsigned int nohz_tick_stopped;
28229 	atomic_t nohz_flags;
28230 	unsigned int ttwu_pending;
28231 	u64 nr_switches;
28232 	long: 64;
28233 	long: 64;
28234 	long: 64;
28235 	long: 64;
28236 	long: 64;
28237 	struct cfs_rq cfs;
28238 	struct rt_rq rt;
28239 	struct dl_rq dl;
28240 	struct list_head leaf_cfs_rq_list;
28241 	struct list_head *tmp_alone_branch;
28242 	unsigned int nr_uninterruptible;
28243 	struct task_struct *curr;
28244 	struct task_struct *idle;
28245 	struct task_struct *stop;
28246 	long unsigned int next_balance;
28247 	struct mm_struct *prev_mm;
28248 	unsigned int clock_update_flags;
28249 	u64 clock;
28250 	long: 64;
28251 	long: 64;
28252 	long: 64;
28253 	long: 64;
28254 	long: 64;
28255 	long: 64;
28256 	u64 clock_task;
28257 	u64 clock_pelt;
28258 	long unsigned int lost_idle_time;
28259 	atomic_t nr_iowait;
28260 	u64 last_seen_need_resched_ns;
28261 	int ticks_without_resched;
28262 	int membarrier_state;
28263 	struct root_domain___2 *rd;
28264 	struct sched_domain *sd;
28265 	long unsigned int cpu_capacity;
28266 	long unsigned int cpu_capacity_orig;
28267 	struct callback_head *balance_callback;
28268 	unsigned char nohz_idle_balance;
28269 	unsigned char idle_balance;
28270 	long unsigned int misfit_task_load;
28271 	int active_balance;
28272 	int push_cpu;
28273 	struct cpu_stop_work active_balance_work;
28274 	int cpu;
28275 	int online;
28276 	struct list_head cfs_tasks;
28277 	long: 64;
28278 	struct sched_avg avg_rt;
28279 	struct sched_avg avg_dl;
28280 	u64 idle_stamp;
28281 	u64 avg_idle;
28282 	long unsigned int wake_stamp;
28283 	u64 wake_avg_idle;
28284 	u64 max_idle_balance_cost;
28285 	struct rcuwait hotplug_wait;
28286 	long unsigned int calc_load_update;
28287 	long int calc_load_active;
28288 	call_single_data_t hrtick_csd;
28289 	struct hrtimer hrtick_timer;
28290 	ktime_t hrtick_time;
28291 	struct sched_info rq_sched_info;
28292 	long long unsigned int rq_cpu_time;
28293 	unsigned int yld_count;
28294 	unsigned int sched_count;
28295 	unsigned int sched_goidle;
28296 	unsigned int ttwu_count;
28297 	unsigned int ttwu_local;
28298 	struct cpuidle_state *idle_state;
28299 	unsigned int nr_pinned;
28300 	unsigned int push_busy;
28301 	struct cpu_stop_work push_work;
28302 	long: 64;
28303 	long: 64;
28304 	long: 64;
28305 };
28306 
28307 typedef void (*btf_trace_pelt_dl_tp)(void *, struct rq *);
28308 
28309 typedef void (*btf_trace_pelt_thermal_tp)(void *, struct rq *);
28310 
28311 typedef void (*btf_trace_pelt_irq_tp)(void *, struct rq *);
28312 
28313 typedef void (*btf_trace_pelt_se_tp)(void *, struct sched_entity *);
28314 
28315 typedef void (*btf_trace_sched_cpu_capacity_tp)(void *, struct rq *);
28316 
28317 typedef void (*btf_trace_sched_overutilized_tp)(void *, struct root_domain___2 *, bool);
28318 
28319 typedef void (*btf_trace_sched_util_est_cfs_tp)(void *, struct cfs_rq *);
28320 
28321 typedef void (*btf_trace_sched_util_est_se_tp)(void *, struct sched_entity *);
28322 
28323 typedef void (*btf_trace_sched_update_nr_running_tp)(void *, struct rq *, int);
28324 
28325 enum {
28326 	MEMBARRIER_STATE_PRIVATE_EXPEDITED_READY = 1,
28327 	MEMBARRIER_STATE_PRIVATE_EXPEDITED = 2,
28328 	MEMBARRIER_STATE_GLOBAL_EXPEDITED_READY = 4,
28329 	MEMBARRIER_STATE_GLOBAL_EXPEDITED = 8,
28330 	MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE_READY = 16,
28331 	MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE = 32,
28332 	MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ_READY = 64,
28333 	MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ = 128,
28334 };
28335 
28336 struct wake_q_head {
28337 	struct wake_q_node *first;
28338 	struct wake_q_node **lastp;
28339 };
28340 
28341 struct sched_attr {
28342 	__u32 size;
28343 	__u32 sched_policy;
28344 	__u64 sched_flags;
28345 	__s32 sched_nice;
28346 	__u32 sched_priority;
28347 	__u64 sched_runtime;
28348 	__u64 sched_deadline;
28349 	__u64 sched_period;
28350 	__u32 sched_util_min;
28351 	__u32 sched_util_max;
28352 };
28353 
28354 struct cpudl_item {
28355 	u64 dl;
28356 	int cpu;
28357 	int idx;
28358 };
28359 
28360 struct rt_bandwidth {
28361 	raw_spinlock_t rt_runtime_lock;
28362 	ktime_t rt_period;
28363 	u64 rt_runtime;
28364 	struct hrtimer rt_period_timer;
28365 	unsigned int rt_period_active;
28366 };
28367 
28368 struct dl_bandwidth {
28369 	raw_spinlock_t dl_runtime_lock;
28370 	u64 dl_runtime;
28371 	u64 dl_period;
28372 };
28373 
28374 typedef int (*tg_visitor)(struct task_group *, void *);
28375 
28376 struct perf_domain {
28377 	struct em_perf_domain *em_pd;
28378 	struct perf_domain *next;
28379 	struct callback_head rcu;
28380 };
28381 
28382 struct rq_flags {
28383 	long unsigned int flags;
28384 	struct pin_cookie cookie;
28385 	unsigned int clock_update_flags;
28386 };
28387 
28388 enum numa_topology_type {
28389 	NUMA_DIRECT = 0,
28390 	NUMA_GLUELESS_MESH = 1,
28391 	NUMA_BACKPLANE = 2,
28392 };
28393 
28394 struct sched_entity_stats {
28395 	struct sched_entity se;
28396 	struct sched_statistics stats;
28397 };
28398 
28399 enum {
28400 	__SCHED_FEAT_GENTLE_FAIR_SLEEPERS = 0,
28401 	__SCHED_FEAT_START_DEBIT = 1,
28402 	__SCHED_FEAT_NEXT_BUDDY = 2,
28403 	__SCHED_FEAT_LAST_BUDDY = 3,
28404 	__SCHED_FEAT_CACHE_HOT_BUDDY = 4,
28405 	__SCHED_FEAT_WAKEUP_PREEMPTION = 5,
28406 	__SCHED_FEAT_HRTICK = 6,
28407 	__SCHED_FEAT_HRTICK_DL = 7,
28408 	__SCHED_FEAT_DOUBLE_TICK = 8,
28409 	__SCHED_FEAT_NONTASK_CAPACITY = 9,
28410 	__SCHED_FEAT_TTWU_QUEUE = 10,
28411 	__SCHED_FEAT_SIS_PROP = 11,
28412 	__SCHED_FEAT_WARN_DOUBLE_CLOCK = 12,
28413 	__SCHED_FEAT_RT_PUSH_IPI = 13,
28414 	__SCHED_FEAT_RT_RUNTIME_SHARE = 14,
28415 	__SCHED_FEAT_LB_MIN = 15,
28416 	__SCHED_FEAT_ATTACH_AGE_LOAD = 16,
28417 	__SCHED_FEAT_WA_IDLE = 17,
28418 	__SCHED_FEAT_WA_WEIGHT = 18,
28419 	__SCHED_FEAT_WA_BIAS = 19,
28420 	__SCHED_FEAT_UTIL_EST = 20,
28421 	__SCHED_FEAT_UTIL_EST_FASTUP = 21,
28422 	__SCHED_FEAT_LATENCY_WARN = 22,
28423 	__SCHED_FEAT_ALT_PERIOD = 23,
28424 	__SCHED_FEAT_BASE_SLICE = 24,
28425 	__SCHED_FEAT_NR = 25,
28426 };
28427 
28428 enum cpu_util_type {
28429 	FREQUENCY_UTIL = 0,
28430 	ENERGY_UTIL = 1,
28431 };
28432 
28433 struct set_affinity_pending;
28434 
28435 struct migration_arg {
28436 	struct task_struct *task;
28437 	int dest_cpu;
28438 	struct set_affinity_pending *pending;
28439 };
28440 
28441 struct set_affinity_pending {
28442 	refcount_t refs;
28443 	unsigned int stop_pending;
28444 	struct completion done;
28445 	struct cpu_stop_work stop_work;
28446 	struct migration_arg arg;
28447 };
28448 
28449 struct migration_swap_arg {
28450 	struct task_struct *src_task;
28451 	struct task_struct *dst_task;
28452 	int src_cpu;
28453 	int dst_cpu;
28454 };
28455 
28456 enum {
28457 	preempt_dynamic_undefined = 4294967295,
28458 	preempt_dynamic_none = 0,
28459 	preempt_dynamic_voluntary = 1,
28460 	preempt_dynamic_full = 2,
28461 };
28462 
28463 struct cfs_schedulable_data {
28464 	struct task_group *tg;
28465 	u64 period;
28466 	u64 quota;
28467 };
28468 
28469 enum {
28470 	cpuset = 0,
28471 	possible = 1,
28472 	fail = 2,
28473 };
28474 
28475 enum tick_dep_bits {
28476 	TICK_DEP_BIT_POSIX_TIMER = 0,
28477 	TICK_DEP_BIT_PERF_EVENTS = 1,
28478 	TICK_DEP_BIT_SCHED = 2,
28479 	TICK_DEP_BIT_CLOCK_UNSTABLE = 3,
28480 	TICK_DEP_BIT_RCU = 4,
28481 	TICK_DEP_BIT_RCU_EXP = 5,
28482 };
28483 
28484 struct sched_clock_data {
28485 	u64 tick_raw;
28486 	u64 tick_gtod;
28487 	u64 clock;
28488 };
28489 
28490 struct idle_timer {
28491 	struct hrtimer timer;
28492 	int done;
28493 };
28494 
28495 typedef void (*rcu_callback_t)(struct callback_head *);
28496 
28497 struct numa_group {
28498 	refcount_t refcount;
28499 	spinlock_t lock;
28500 	int nr_tasks;
28501 	pid_t gid;
28502 	int active_nodes;
28503 	struct callback_head rcu;
28504 	long unsigned int total_faults;
28505 	long unsigned int max_faults_cpu;
28506 	long unsigned int faults[0];
28507 };
28508 
28509 enum sched_tunable_scaling {
28510 	SCHED_TUNABLESCALING_NONE = 0,
28511 	SCHED_TUNABLESCALING_LOG = 1,
28512 	SCHED_TUNABLESCALING_LINEAR = 2,
28513 	SCHED_TUNABLESCALING_END = 3,
28514 };
28515 
28516 enum numa_faults_stats {
28517 	NUMA_MEM = 0,
28518 	NUMA_CPU = 1,
28519 	NUMA_MEMBUF = 2,
28520 	NUMA_CPUBUF = 3,
28521 };
28522 
28523 enum numa_type {
28524 	node_has_spare = 0,
28525 	node_fully_busy = 1,
28526 	node_overloaded = 2,
28527 };
28528 
28529 struct numa_stats {
28530 	long unsigned int load;
28531 	long unsigned int runnable;
28532 	long unsigned int util;
28533 	long unsigned int compute_capacity;
28534 	unsigned int nr_running;
28535 	unsigned int weight;
28536 	enum numa_type node_type;
28537 	int idle_cpu;
28538 };
28539 
28540 struct task_numa_env {
28541 	struct task_struct *p;
28542 	int src_cpu;
28543 	int src_nid;
28544 	int dst_cpu;
28545 	int dst_nid;
28546 	struct numa_stats src_stats;
28547 	struct numa_stats dst_stats;
28548 	int imbalance_pct;
28549 	int dist;
28550 	struct task_struct *best_task;
28551 	long int best_imp;
28552 	int best_cpu;
28553 };
28554 
28555 enum fbq_type {
28556 	regular = 0,
28557 	remote = 1,
28558 	all = 2,
28559 };
28560 
28561 enum group_type {
28562 	group_has_spare = 0,
28563 	group_fully_busy = 1,
28564 	group_misfit_task = 2,
28565 	group_asym_packing = 3,
28566 	group_imbalanced = 4,
28567 	group_overloaded = 5,
28568 };
28569 
28570 enum migration_type {
28571 	migrate_load = 0,
28572 	migrate_util = 1,
28573 	migrate_task = 2,
28574 	migrate_misfit = 3,
28575 };
28576 
28577 struct lb_env {
28578 	struct sched_domain *sd;
28579 	struct rq *src_rq;
28580 	int src_cpu;
28581 	int dst_cpu;
28582 	struct rq *dst_rq;
28583 	struct cpumask *dst_grpmask;
28584 	int new_dst_cpu;
28585 	enum cpu_idle_type idle;
28586 	long int imbalance;
28587 	struct cpumask *cpus;
28588 	unsigned int flags;
28589 	unsigned int loop;
28590 	unsigned int loop_break;
28591 	unsigned int loop_max;
28592 	enum fbq_type fbq_type;
28593 	enum migration_type migration_type;
28594 	struct list_head tasks;
28595 };
28596 
28597 struct sg_lb_stats {
28598 	long unsigned int avg_load;
28599 	long unsigned int group_load;
28600 	long unsigned int group_capacity;
28601 	long unsigned int group_util;
28602 	long unsigned int group_runnable;
28603 	unsigned int sum_nr_running;
28604 	unsigned int sum_h_nr_running;
28605 	unsigned int idle_cpus;
28606 	unsigned int group_weight;
28607 	enum group_type group_type;
28608 	unsigned int group_asym_packing;
28609 	long unsigned int group_misfit_task_load;
28610 	unsigned int nr_numa_running;
28611 	unsigned int nr_preferred_running;
28612 };
28613 
28614 struct sd_lb_stats {
28615 	struct sched_group *busiest;
28616 	struct sched_group *local;
28617 	long unsigned int total_load;
28618 	long unsigned int total_capacity;
28619 	long unsigned int avg_load;
28620 	unsigned int prefer_sibling;
28621 	struct sg_lb_stats busiest_stat;
28622 	struct sg_lb_stats local_stat;
28623 };
28624 
28625 typedef struct rt_rq *rt_rq_iter_t;
28626 
28627 typedef int wait_bit_action_f(struct wait_bit_key *, int);
28628 
28629 struct swait_queue {
28630 	struct task_struct *task;
28631 	struct list_head task_list;
28632 };
28633 
28634 struct sched_domain_attr {
28635 	int relax_domain_level;
28636 };
28637 
28638 struct s_data {
28639 	struct sched_domain **sd;
28640 	struct root_domain___2 *rd;
28641 };
28642 
28643 enum s_alloc {
28644 	sa_rootdomain = 0,
28645 	sa_sd = 1,
28646 	sa_sd_storage = 2,
28647 	sa_none = 3,
28648 };
28649 
28650 struct asym_cap_data {
28651 	struct list_head link;
28652 	long unsigned int capacity;
28653 	long unsigned int cpus[0];
28654 };
28655 
28656 enum cpuacct_stat_index {
28657 	CPUACCT_STAT_USER = 0,
28658 	CPUACCT_STAT_SYSTEM = 1,
28659 	CPUACCT_STAT_NSTATS = 2,
28660 };
28661 
28662 struct cpuacct {
28663 	struct cgroup_subsys_state css;
28664 	u64 *cpuusage;
28665 	struct kernel_cpustat *cpustat;
28666 };
28667 
28668 struct gov_attr_set {
28669 	struct kobject kobj;
28670 	struct list_head policy_list;
28671 	struct mutex update_lock;
28672 	int usage_count;
28673 };
28674 
28675 struct governor_attr {
28676 	struct attribute attr;
28677 	ssize_t (*show)(struct gov_attr_set *, char *);
28678 	ssize_t (*store)(struct gov_attr_set *, const char *, size_t);
28679 };
28680 
28681 struct sugov_tunables {
28682 	struct gov_attr_set attr_set;
28683 	unsigned int rate_limit_us;
28684 };
28685 
28686 struct sugov_policy {
28687 	struct cpufreq_policy *policy;
28688 	struct sugov_tunables *tunables;
28689 	struct list_head tunables_hook;
28690 	raw_spinlock_t update_lock;
28691 	u64 last_freq_update_time;
28692 	s64 freq_update_delay_ns;
28693 	unsigned int next_freq;
28694 	unsigned int cached_raw_freq;
28695 	struct irq_work irq_work;
28696 	struct kthread_work work;
28697 	struct mutex work_lock;
28698 	struct kthread_worker worker;
28699 	struct task_struct *thread;
28700 	bool work_in_progress;
28701 	bool limits_changed;
28702 	bool need_freq_update;
28703 };
28704 
28705 struct sugov_cpu {
28706 	struct update_util_data update_util;
28707 	struct sugov_policy *sg_policy;
28708 	unsigned int cpu;
28709 	bool iowait_boost_pending;
28710 	unsigned int iowait_boost;
28711 	u64 last_update;
28712 	long unsigned int util;
28713 	long unsigned int bw_dl;
28714 	long unsigned int max;
28715 	long unsigned int saved_idle_calls;
28716 };
28717 
28718 enum {
28719 	MEMBARRIER_FLAG_SYNC_CORE = 1,
28720 	MEMBARRIER_FLAG_RSEQ = 2,
28721 };
28722 
28723 enum membarrier_cmd {
28724 	MEMBARRIER_CMD_QUERY = 0,
28725 	MEMBARRIER_CMD_GLOBAL = 1,
28726 	MEMBARRIER_CMD_GLOBAL_EXPEDITED = 2,
28727 	MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED = 4,
28728 	MEMBARRIER_CMD_PRIVATE_EXPEDITED = 8,
28729 	MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = 16,
28730 	MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = 32,
28731 	MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = 64,
28732 	MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 128,
28733 	MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = 256,
28734 	MEMBARRIER_CMD_SHARED = 1,
28735 };
28736 
28737 enum membarrier_cmd_flag {
28738 	MEMBARRIER_CMD_FLAG_CPU = 1,
28739 };
28740 
28741 struct ww_class {
28742 	atomic_long_t stamp;
28743 	struct lock_class_key acquire_key;
28744 	struct lock_class_key mutex_key;
28745 	const char *acquire_name;
28746 	const char *mutex_name;
28747 	unsigned int is_wait_die;
28748 };
28749 
28750 struct ww_acquire_ctx;
28751 
28752 struct ww_mutex {
28753 	struct mutex base;
28754 	struct ww_acquire_ctx *ctx;
28755 	struct ww_class *ww_class;
28756 };
28757 
28758 struct ww_acquire_ctx {
28759 	struct task_struct *task;
28760 	long unsigned int stamp;
28761 	unsigned int acquired;
28762 	short unsigned int wounded;
28763 	short unsigned int is_wait_die;
28764 	unsigned int done_acquire;
28765 	struct ww_class *ww_class;
28766 	void *contending_lock;
28767 	struct lockdep_map dep_map;
28768 	unsigned int deadlock_inject_interval;
28769 	unsigned int deadlock_inject_countdown;
28770 };
28771 
28772 struct mutex_waiter {
28773 	struct list_head list;
28774 	struct task_struct *task;
28775 	struct ww_acquire_ctx *ww_ctx;
28776 	void *magic;
28777 };
28778 
28779 struct semaphore {
28780 	raw_spinlock_t lock;
28781 	unsigned int count;
28782 	struct list_head wait_list;
28783 };
28784 
28785 struct semaphore_waiter {
28786 	struct list_head list;
28787 	struct task_struct *task;
28788 	bool up;
28789 };
28790 
28791 enum rwsem_waiter_type {
28792 	RWSEM_WAITING_FOR_WRITE = 0,
28793 	RWSEM_WAITING_FOR_READ = 1,
28794 };
28795 
28796 struct rwsem_waiter {
28797 	struct list_head list;
28798 	struct task_struct *task;
28799 	enum rwsem_waiter_type type;
28800 	long unsigned int timeout;
28801 	bool handoff_set;
28802 };
28803 
28804 enum rwsem_wake_type {
28805 	RWSEM_WAKE_ANY = 0,
28806 	RWSEM_WAKE_READERS = 1,
28807 	RWSEM_WAKE_READ_OWNED = 2,
28808 };
28809 
28810 enum owner_state {
28811 	OWNER_NULL = 1,
28812 	OWNER_WRITER = 2,
28813 	OWNER_READER = 4,
28814 	OWNER_NONSPINNABLE = 8,
28815 };
28816 
28817 struct lock_list {
28818 	struct list_head entry;
28819 	struct lock_class *class;
28820 	struct lock_class *links_to;
28821 	const struct lock_trace *trace;
28822 	u16 distance;
28823 	u8 dep;
28824 	u8 only_xr;
28825 	struct lock_list *parent;
28826 };
28827 
28828 struct lock_chain {
28829 	unsigned int irq_context: 2;
28830 	unsigned int depth: 6;
28831 	unsigned int base: 24;
28832 	struct hlist_node entry;
28833 	u64 chain_key;
28834 };
28835 
28836 enum lock_usage_bit {
28837 	LOCK_USED_IN_HARDIRQ = 0,
28838 	LOCK_USED_IN_HARDIRQ_READ = 1,
28839 	LOCK_ENABLED_HARDIRQ = 2,
28840 	LOCK_ENABLED_HARDIRQ_READ = 3,
28841 	LOCK_USED_IN_SOFTIRQ = 4,
28842 	LOCK_USED_IN_SOFTIRQ_READ = 5,
28843 	LOCK_ENABLED_SOFTIRQ = 6,
28844 	LOCK_ENABLED_SOFTIRQ_READ = 7,
28845 	LOCK_USED = 8,
28846 	LOCK_USED_READ = 9,
28847 	LOCK_USAGE_STATES = 10,
28848 };
28849 
28850 enum {
28851 	LOCKF_USED_IN_HARDIRQ = 1,
28852 	LOCKF_USED_IN_HARDIRQ_READ = 2,
28853 	LOCKF_ENABLED_HARDIRQ = 4,
28854 	LOCKF_ENABLED_HARDIRQ_READ = 8,
28855 	LOCKF_USED_IN_SOFTIRQ = 16,
28856 	LOCKF_USED_IN_SOFTIRQ_READ = 32,
28857 	LOCKF_ENABLED_SOFTIRQ = 64,
28858 	LOCKF_ENABLED_SOFTIRQ_READ = 128,
28859 	LOCKF_USED = 256,
28860 	LOCKF_USED_READ = 512,
28861 };
28862 
28863 struct trace_event_raw_lock_acquire {
28864 	struct trace_entry ent;
28865 	unsigned int flags;
28866 	u32 __data_loc_name;
28867 	void *lockdep_addr;
28868 	char __data[0];
28869 };
28870 
28871 struct trace_event_raw_lock {
28872 	struct trace_entry ent;
28873 	u32 __data_loc_name;
28874 	void *lockdep_addr;
28875 	char __data[0];
28876 };
28877 
28878 struct trace_event_data_offsets_lock_acquire {
28879 	u32 name;
28880 };
28881 
28882 struct trace_event_data_offsets_lock {
28883 	u32 name;
28884 };
28885 
28886 typedef void (*btf_trace_lock_acquire)(void *, struct lockdep_map *, unsigned int, int, int, int, struct lockdep_map *, long unsigned int);
28887 
28888 typedef void (*btf_trace_lock_release)(void *, struct lockdep_map *, long unsigned int);
28889 
28890 struct pending_free {
28891 	struct list_head zapped;
28892 	long unsigned int lock_chains_being_freed[1024];
28893 };
28894 
28895 struct delayed_free {
28896 	struct callback_head callback_head;
28897 	int index;
28898 	int scheduled;
28899 	struct pending_free pf[2];
28900 };
28901 
28902 struct circular_queue {
28903 	struct lock_list *element[4096];
28904 	unsigned int front;
28905 	unsigned int rear;
28906 };
28907 
28908 enum bfs_result {
28909 	BFS_EINVALIDNODE = 4294967294,
28910 	BFS_EQUEUEFULL = 4294967295,
28911 	BFS_RMATCH = 0,
28912 	BFS_RNOMATCH = 1,
28913 };
28914 
28915 struct optimistic_spin_node {
28916 	struct optimistic_spin_node *next;
28917 	struct optimistic_spin_node *prev;
28918 	int locked;
28919 	int cpu;
28920 };
28921 
28922 struct mcs_spinlock {
28923 	struct mcs_spinlock *next;
28924 	int locked;
28925 	int count;
28926 };
28927 
28928 struct qnode {
28929 	struct mcs_spinlock mcs;
28930 };
28931 
28932 struct rt_mutex_base {
28933 	raw_spinlock_t wait_lock;
28934 	struct rb_root_cached waiters;
28935 	struct task_struct *owner;
28936 };
28937 
28938 struct rt_mutex {
28939 	struct rt_mutex_base rtmutex;
28940 	struct lockdep_map dep_map;
28941 };
28942 
28943 struct hrtimer_sleeper {
28944 	struct hrtimer timer;
28945 	struct task_struct *task;
28946 };
28947 
28948 struct rt_mutex_waiter {
28949 	struct rb_node tree_entry;
28950 	struct rb_node pi_tree_entry;
28951 	struct task_struct *task;
28952 	struct rt_mutex_base *lock;
28953 	unsigned int wake_state;
28954 	int prio;
28955 	u64 deadline;
28956 	struct ww_acquire_ctx *ww_ctx;
28957 };
28958 
28959 struct rt_wake_q_head {
28960 	struct wake_q_head head;
28961 	struct task_struct *rtlock_task;
28962 };
28963 
28964 enum rtmutex_chainwalk {
28965 	RT_MUTEX_MIN_CHAINWALK = 0,
28966 	RT_MUTEX_FULL_CHAINWALK = 1,
28967 };
28968 
28969 struct pm_qos_request {
28970 	struct plist_node node;
28971 	struct pm_qos_constraints *qos;
28972 };
28973 
28974 enum pm_qos_req_action {
28975 	PM_QOS_ADD_REQ = 0,
28976 	PM_QOS_UPDATE_REQ = 1,
28977 	PM_QOS_REMOVE_REQ = 2,
28978 };
28979 
28980 struct miscdevice {
28981 	int minor;
28982 	const char *name;
28983 	const struct file_operations *fops;
28984 	struct list_head list;
28985 	struct device *parent;
28986 	struct device *this_device;
28987 	const struct attribute_group **groups;
28988 	const char *nodename;
28989 	umode_t mode;
28990 };
28991 
28992 struct dev_printk_info {
28993 	char subsystem[16];
28994 	char device[48];
28995 };
28996 
28997 struct kmsg_dump_iter {
28998 	u64 cur_seq;
28999 	u64 next_seq;
29000 };
29001 
29002 struct kmsg_dumper {
29003 	struct list_head list;
29004 	void (*dump)(struct kmsg_dumper *, enum kmsg_dump_reason);
29005 	enum kmsg_dump_reason max_reason;
29006 	bool registered;
29007 };
29008 
29009 struct trace_event_raw_console {
29010 	struct trace_entry ent;
29011 	u32 __data_loc_msg;
29012 	char __data[0];
29013 };
29014 
29015 struct trace_event_data_offsets_console {
29016 	u32 msg;
29017 };
29018 
29019 typedef void (*btf_trace_console)(void *, const char *, size_t);
29020 
29021 struct printk_info {
29022 	u64 seq;
29023 	u64 ts_nsec;
29024 	u16 text_len;
29025 	u8 facility;
29026 	u8 flags: 5;
29027 	u8 level: 3;
29028 	u32 caller_id;
29029 	struct dev_printk_info dev_info;
29030 };
29031 
29032 struct printk_record {
29033 	struct printk_info *info;
29034 	char *text_buf;
29035 	unsigned int text_buf_size;
29036 };
29037 
29038 struct prb_data_blk_lpos {
29039 	long unsigned int begin;
29040 	long unsigned int next;
29041 };
29042 
29043 struct prb_desc {
29044 	atomic_long_t state_var;
29045 	struct prb_data_blk_lpos text_blk_lpos;
29046 };
29047 
29048 struct prb_data_ring {
29049 	unsigned int size_bits;
29050 	char *data;
29051 	atomic_long_t head_lpos;
29052 	atomic_long_t tail_lpos;
29053 };
29054 
29055 struct prb_desc_ring {
29056 	unsigned int count_bits;
29057 	struct prb_desc *descs;
29058 	struct printk_info *infos;
29059 	atomic_long_t head_id;
29060 	atomic_long_t tail_id;
29061 };
29062 
29063 struct printk_ringbuffer {
29064 	struct prb_desc_ring desc_ring;
29065 	struct prb_data_ring text_data_ring;
29066 	atomic_long_t fail;
29067 };
29068 
29069 struct prb_reserved_entry {
29070 	struct printk_ringbuffer *rb;
29071 	long unsigned int irqflags;
29072 	long unsigned int id;
29073 	unsigned int text_space;
29074 };
29075 
29076 enum desc_state {
29077 	desc_miss = 4294967295,
29078 	desc_reserved = 0,
29079 	desc_committed = 1,
29080 	desc_finalized = 2,
29081 	desc_reusable = 3,
29082 };
29083 
29084 struct console_cmdline {
29085 	char name[16];
29086 	int index;
29087 	bool user_specified;
29088 	char *options;
29089 };
29090 
29091 enum printk_info_flags {
29092 	LOG_NEWLINE = 2,
29093 	LOG_CONT = 8,
29094 };
29095 
29096 enum devkmsg_log_bits {
29097 	__DEVKMSG_LOG_BIT_ON = 0,
29098 	__DEVKMSG_LOG_BIT_OFF = 1,
29099 	__DEVKMSG_LOG_BIT_LOCK = 2,
29100 };
29101 
29102 enum devkmsg_log_masks {
29103 	DEVKMSG_LOG_MASK_ON = 1,
29104 	DEVKMSG_LOG_MASK_OFF = 2,
29105 	DEVKMSG_LOG_MASK_LOCK = 4,
29106 };
29107 
29108 enum con_msg_format_flags {
29109 	MSG_FORMAT_DEFAULT = 0,
29110 	MSG_FORMAT_SYSLOG = 1,
29111 };
29112 
29113 struct latched_seq {
29114 	seqcount_latch_t latch;
29115 	u64 val[2];
29116 };
29117 
29118 struct devkmsg_user {
29119 	atomic64_t seq;
29120 	struct ratelimit_state rs;
29121 	struct mutex lock;
29122 	char buf[8192];
29123 	struct printk_info info;
29124 	char text_buf[8192];
29125 	struct printk_record record;
29126 };
29127 
29128 struct prb_data_block {
29129 	long unsigned int id;
29130 	char data[0];
29131 };
29132 
29133 enum {
29134 	IRQS_AUTODETECT = 1,
29135 	IRQS_SPURIOUS_DISABLED = 2,
29136 	IRQS_POLL_INPROGRESS = 8,
29137 	IRQS_ONESHOT = 32,
29138 	IRQS_REPLAY = 64,
29139 	IRQS_WAITING = 128,
29140 	IRQS_PENDING = 512,
29141 	IRQS_SUSPENDED = 2048,
29142 	IRQS_TIMINGS = 4096,
29143 	IRQS_NMI = 8192,
29144 };
29145 
29146 enum {
29147 	_IRQ_DEFAULT_INIT_FLAGS = 0,
29148 	_IRQ_PER_CPU = 512,
29149 	_IRQ_LEVEL = 256,
29150 	_IRQ_NOPROBE = 1024,
29151 	_IRQ_NOREQUEST = 2048,
29152 	_IRQ_NOTHREAD = 65536,
29153 	_IRQ_NOAUTOEN = 4096,
29154 	_IRQ_MOVE_PCNTXT = 16384,
29155 	_IRQ_NO_BALANCING = 8192,
29156 	_IRQ_NESTED_THREAD = 32768,
29157 	_IRQ_PER_CPU_DEVID = 131072,
29158 	_IRQ_IS_POLLED = 262144,
29159 	_IRQ_DISABLE_UNLAZY = 524288,
29160 	_IRQ_HIDDEN = 1048576,
29161 	_IRQ_NO_DEBUG = 2097152,
29162 	_IRQF_MODIFY_MASK = 2096911,
29163 };
29164 
29165 enum {
29166 	IRQTF_RUNTHREAD = 0,
29167 	IRQTF_WARNED = 1,
29168 	IRQTF_AFFINITY = 2,
29169 	IRQTF_FORCED_THREAD = 3,
29170 };
29171 
29172 enum {
29173 	IRQC_IS_HARDIRQ = 0,
29174 	IRQC_IS_NESTED = 1,
29175 };
29176 
29177 enum {
29178 	IRQ_STARTUP_NORMAL = 0,
29179 	IRQ_STARTUP_MANAGED = 1,
29180 	IRQ_STARTUP_ABORT = 2,
29181 };
29182 
29183 struct irq_devres {
29184 	unsigned int irq;
29185 	void *dev_id;
29186 };
29187 
29188 struct irq_desc_devres {
29189 	unsigned int from;
29190 	unsigned int cnt;
29191 };
29192 
29193 struct of_phandle_args {
29194 	struct device_node *np;
29195 	int args_count;
29196 	uint32_t args[16];
29197 };
29198 
29199 struct irqchip_fwid {
29200 	struct fwnode_handle fwnode;
29201 	unsigned int type;
29202 	char *name;
29203 	phys_addr_t *pa;
29204 };
29205 
29206 enum {
29207 	AFFINITY = 0,
29208 	AFFINITY_LIST = 1,
29209 	EFFECTIVE = 2,
29210 	EFFECTIVE_LIST = 3,
29211 };
29212 
29213 enum msi_desc_filter {
29214 	MSI_DESC_ALL = 0,
29215 	MSI_DESC_NOTASSOCIATED = 1,
29216 	MSI_DESC_ASSOCIATED = 2,
29217 };
29218 
29219 struct irq_affinity {
29220 	unsigned int pre_vectors;
29221 	unsigned int post_vectors;
29222 	unsigned int nr_sets;
29223 	unsigned int set_size[4];
29224 	void (*calc_sets)(struct irq_affinity *, unsigned int);
29225 	void *priv;
29226 };
29227 
29228 struct node_vectors {
29229 	unsigned int id;
29230 	union {
29231 		unsigned int nvectors;
29232 		unsigned int ncpus;
29233 	};
29234 };
29235 
29236 struct cpumap {
29237 	unsigned int available;
29238 	unsigned int allocated;
29239 	unsigned int managed;
29240 	unsigned int managed_allocated;
29241 	bool initialized;
29242 	bool online;
29243 	long unsigned int alloc_map[4];
29244 	long unsigned int managed_map[4];
29245 };
29246 
29247 struct irq_matrix___2 {
29248 	unsigned int matrix_bits;
29249 	unsigned int alloc_start;
29250 	unsigned int alloc_end;
29251 	unsigned int alloc_size;
29252 	unsigned int global_available;
29253 	unsigned int global_reserved;
29254 	unsigned int systembits_inalloc;
29255 	unsigned int total_allocated;
29256 	unsigned int online_maps;
29257 	struct cpumap *maps;
29258 	long unsigned int scratch_map[4];
29259 	long unsigned int system_map[4];
29260 };
29261 
29262 struct trace_event_raw_irq_matrix_global {
29263 	struct trace_entry ent;
29264 	unsigned int online_maps;
29265 	unsigned int global_available;
29266 	unsigned int global_reserved;
29267 	unsigned int total_allocated;
29268 	char __data[0];
29269 };
29270 
29271 struct trace_event_raw_irq_matrix_global_update {
29272 	struct trace_entry ent;
29273 	int bit;
29274 	unsigned int online_maps;
29275 	unsigned int global_available;
29276 	unsigned int global_reserved;
29277 	unsigned int total_allocated;
29278 	char __data[0];
29279 };
29280 
29281 struct trace_event_raw_irq_matrix_cpu {
29282 	struct trace_entry ent;
29283 	int bit;
29284 	unsigned int cpu;
29285 	bool online;
29286 	unsigned int available;
29287 	unsigned int allocated;
29288 	unsigned int managed;
29289 	unsigned int online_maps;
29290 	unsigned int global_available;
29291 	unsigned int global_reserved;
29292 	unsigned int total_allocated;
29293 	char __data[0];
29294 };
29295 
29296 struct trace_event_data_offsets_irq_matrix_global {};
29297 
29298 struct trace_event_data_offsets_irq_matrix_global_update {};
29299 
29300 struct trace_event_data_offsets_irq_matrix_cpu {};
29301 
29302 typedef void (*btf_trace_irq_matrix_online)(void *, struct irq_matrix___2 *);
29303 
29304 typedef void (*btf_trace_irq_matrix_offline)(void *, struct irq_matrix___2 *);
29305 
29306 typedef void (*btf_trace_irq_matrix_reserve)(void *, struct irq_matrix___2 *);
29307 
29308 typedef void (*btf_trace_irq_matrix_remove_reserved)(void *, struct irq_matrix___2 *);
29309 
29310 typedef void (*btf_trace_irq_matrix_assign_system)(void *, int, struct irq_matrix___2 *);
29311 
29312 typedef void (*btf_trace_irq_matrix_alloc_reserved)(void *, int, unsigned int, struct irq_matrix___2 *, struct cpumap *);
29313 
29314 typedef void (*btf_trace_irq_matrix_reserve_managed)(void *, int, unsigned int, struct irq_matrix___2 *, struct cpumap *);
29315 
29316 typedef void (*btf_trace_irq_matrix_remove_managed)(void *, int, unsigned int, struct irq_matrix___2 *, struct cpumap *);
29317 
29318 typedef void (*btf_trace_irq_matrix_alloc_managed)(void *, int, unsigned int, struct irq_matrix___2 *, struct cpumap *);
29319 
29320 typedef void (*btf_trace_irq_matrix_assign)(void *, int, unsigned int, struct irq_matrix___2 *, struct cpumap *);
29321 
29322 typedef void (*btf_trace_irq_matrix_alloc)(void *, int, unsigned int, struct irq_matrix___2 *, struct cpumap *);
29323 
29324 typedef void (*btf_trace_irq_matrix_free)(void *, int, unsigned int, struct irq_matrix___2 *, struct cpumap *);
29325 
29326 typedef void (*call_rcu_func_t)(struct callback_head *, rcu_callback_t);
29327 
29328 struct rcu_cblist {
29329 	struct callback_head *head;
29330 	struct callback_head **tail;
29331 	long int len;
29332 };
29333 
29334 struct rcu_synchronize {
29335 	struct callback_head head;
29336 	struct completion completion;
29337 };
29338 
29339 struct trace_event_raw_rcu_utilization {
29340 	struct trace_entry ent;
29341 	const char *s;
29342 	char __data[0];
29343 };
29344 
29345 struct trace_event_raw_rcu_stall_warning {
29346 	struct trace_entry ent;
29347 	const char *rcuname;
29348 	const char *msg;
29349 	char __data[0];
29350 };
29351 
29352 struct trace_event_data_offsets_rcu_utilization {};
29353 
29354 struct trace_event_data_offsets_rcu_stall_warning {};
29355 
29356 typedef void (*btf_trace_rcu_utilization)(void *, const char *);
29357 
29358 typedef void (*btf_trace_rcu_stall_warning)(void *, const char *, const char *);
29359 
29360 struct early_boot_kfree_rcu {
29361 	struct callback_head rh;
29362 };
29363 
29364 struct rcu_tasks;
29365 
29366 typedef void (*rcu_tasks_gp_func_t)(struct rcu_tasks *);
29367 
29368 typedef void (*pregp_func_t)();
29369 
29370 typedef void (*pertask_func_t)(struct task_struct *, struct list_head *);
29371 
29372 typedef void (*postscan_func_t)(struct list_head *);
29373 
29374 typedef void (*holdouts_func_t)(struct list_head *, bool, bool *);
29375 
29376 typedef void (*postgp_func_t)(struct rcu_tasks *);
29377 
29378 struct rcu_tasks_percpu;
29379 
29380 struct rcu_tasks {
29381 	struct wait_queue_head cbs_wq;
29382 	raw_spinlock_t cbs_gbl_lock;
29383 	int gp_state;
29384 	int gp_sleep;
29385 	int init_fract;
29386 	long unsigned int gp_jiffies;
29387 	long unsigned int gp_start;
29388 	long unsigned int tasks_gp_seq;
29389 	long unsigned int n_ipis;
29390 	long unsigned int n_ipis_fails;
29391 	struct task_struct *kthread_ptr;
29392 	rcu_tasks_gp_func_t gp_func;
29393 	pregp_func_t pregp_func;
29394 	pertask_func_t pertask_func;
29395 	postscan_func_t postscan_func;
29396 	holdouts_func_t holdouts_func;
29397 	postgp_func_t postgp_func;
29398 	call_rcu_func_t call_func;
29399 	struct rcu_tasks_percpu *rtpcpu;
29400 	int percpu_enqueue_shift;
29401 	int percpu_enqueue_lim;
29402 	int percpu_dequeue_lim;
29403 	long unsigned int percpu_dequeue_gpseq;
29404 	struct mutex barrier_q_mutex;
29405 	atomic_t barrier_q_count;
29406 	struct completion barrier_q_completion;
29407 	long unsigned int barrier_q_seq;
29408 	char *name;
29409 	char *kname;
29410 };
29411 
29412 struct rcu_tasks_percpu {
29413 	struct rcu_segcblist cblist;
29414 	raw_spinlock_t lock;
29415 	long unsigned int rtp_jiffies;
29416 	long unsigned int rtp_n_lock_retries;
29417 	struct work_struct rtp_work;
29418 	struct irq_work rtp_irq_work;
29419 	struct callback_head barrier_q_head;
29420 	int cpu;
29421 	struct rcu_tasks *rtpp;
29422 };
29423 
29424 struct trc_stall_chk_rdr {
29425 	int nesting;
29426 	int ipi_to_cpu;
29427 	u8 needqs;
29428 };
29429 
29430 struct rcu_tasks_test_desc {
29431 	struct callback_head rh;
29432 	const char *name;
29433 	bool notrun;
29434 };
29435 
29436 enum {
29437 	GP_IDLE = 0,
29438 	GP_ENTER = 1,
29439 	GP_PASSED = 2,
29440 	GP_EXIT = 3,
29441 	GP_REPLAY = 4,
29442 };
29443 
29444 enum rcutorture_type {
29445 	RCU_FLAVOR = 0,
29446 	RCU_TASKS_FLAVOR = 1,
29447 	RCU_TASKS_RUDE_FLAVOR = 2,
29448 	RCU_TASKS_TRACING_FLAVOR = 3,
29449 	RCU_TRIVIAL_FLAVOR = 4,
29450 	SRCU_FLAVOR = 5,
29451 	INVALID_RCU_FLAVOR = 6,
29452 };
29453 
29454 enum tick_device_mode {
29455 	TICKDEV_MODE_PERIODIC = 0,
29456 	TICKDEV_MODE_ONESHOT = 1,
29457 };
29458 
29459 struct tick_device___2 {
29460 	struct clock_event_device *evtdev;
29461 	enum tick_device_mode mode;
29462 };
29463 
29464 struct rcu_exp_work {
29465 	long unsigned int rew_s;
29466 	struct work_struct rew_work;
29467 };
29468 
29469 struct rcu_node {
29470 	raw_spinlock_t lock;
29471 	long unsigned int gp_seq;
29472 	long unsigned int gp_seq_needed;
29473 	long unsigned int completedqs;
29474 	long unsigned int qsmask;
29475 	long unsigned int rcu_gp_init_mask;
29476 	long unsigned int qsmaskinit;
29477 	long unsigned int qsmaskinitnext;
29478 	long unsigned int ofl_seq;
29479 	long unsigned int expmask;
29480 	long unsigned int expmaskinit;
29481 	long unsigned int expmaskinitnext;
29482 	long unsigned int cbovldmask;
29483 	long unsigned int ffmask;
29484 	long unsigned int grpmask;
29485 	int grplo;
29486 	int grphi;
29487 	u8 grpnum;
29488 	u8 level;
29489 	bool wait_blkd_tasks;
29490 	struct rcu_node *parent;
29491 	struct list_head blkd_tasks;
29492 	struct list_head *gp_tasks;
29493 	struct list_head *exp_tasks;
29494 	struct list_head *boost_tasks;
29495 	struct rt_mutex boost_mtx;
29496 	long unsigned int boost_time;
29497 	struct task_struct *boost_kthread_task;
29498 	unsigned int boost_kthread_status;
29499 	long unsigned int n_boosts;
29500 	long: 64;
29501 	long: 64;
29502 	long: 64;
29503 	long: 64;
29504 	long: 64;
29505 	long: 64;
29506 	raw_spinlock_t fqslock;
29507 	spinlock_t exp_lock;
29508 	long unsigned int exp_seq_rq;
29509 	wait_queue_head_t exp_wq[4];
29510 	struct rcu_exp_work rew;
29511 	bool exp_need_flush;
29512 	long: 56;
29513 	long: 64;
29514 	long: 64;
29515 	long: 64;
29516 	long: 64;
29517 };
29518 
29519 union rcu_noqs {
29520 	struct {
29521 		u8 norm;
29522 		u8 exp;
29523 	} b;
29524 	u16 s;
29525 };
29526 
29527 struct rcu_data {
29528 	long unsigned int gp_seq;
29529 	long unsigned int gp_seq_needed;
29530 	union rcu_noqs cpu_no_qs;
29531 	bool core_needs_qs;
29532 	bool beenonline;
29533 	bool gpwrap;
29534 	bool cpu_started;
29535 	struct rcu_node *mynode;
29536 	long unsigned int grpmask;
29537 	long unsigned int ticks_this_gp;
29538 	struct irq_work defer_qs_iw;
29539 	bool defer_qs_iw_pending;
29540 	struct work_struct strict_work;
29541 	struct rcu_segcblist cblist;
29542 	long int qlen_last_fqs_check;
29543 	long unsigned int n_cbs_invoked;
29544 	long unsigned int n_force_qs_snap;
29545 	long int blimit;
29546 	int dynticks_snap;
29547 	long int dynticks_nesting;
29548 	long int dynticks_nmi_nesting;
29549 	atomic_t dynticks;
29550 	bool rcu_need_heavy_qs;
29551 	bool rcu_urgent_qs;
29552 	bool rcu_forced_tick;
29553 	bool rcu_forced_tick_exp;
29554 	struct callback_head barrier_head;
29555 	int exp_dynticks_snap;
29556 	struct task_struct *rcu_cpu_kthread_task;
29557 	unsigned int rcu_cpu_kthread_status;
29558 	char rcu_cpu_has_work;
29559 	unsigned int softirq_snap;
29560 	struct irq_work rcu_iw;
29561 	bool rcu_iw_pending;
29562 	long unsigned int rcu_iw_gp_seq;
29563 	long unsigned int rcu_ofl_gp_seq;
29564 	short int rcu_ofl_gp_flags;
29565 	long unsigned int rcu_onl_gp_seq;
29566 	short int rcu_onl_gp_flags;
29567 	long unsigned int last_fqs_resched;
29568 	int cpu;
29569 };
29570 
29571 struct rcu_state {
29572 	struct rcu_node node[9];
29573 	struct rcu_node *level[3];
29574 	int ncpus;
29575 	int n_online_cpus;
29576 	long: 64;
29577 	long: 64;
29578 	long: 64;
29579 	long: 64;
29580 	u8 boost;
29581 	long unsigned int gp_seq;
29582 	long unsigned int gp_max;
29583 	struct task_struct *gp_kthread;
29584 	struct swait_queue_head gp_wq;
29585 	short int gp_flags;
29586 	short int gp_state;
29587 	long unsigned int gp_wake_time;
29588 	long unsigned int gp_wake_seq;
29589 	struct mutex barrier_mutex;
29590 	atomic_t barrier_cpu_count;
29591 	struct completion barrier_completion;
29592 	long unsigned int barrier_sequence;
29593 	struct mutex exp_mutex;
29594 	struct mutex exp_wake_mutex;
29595 	long unsigned int expedited_sequence;
29596 	atomic_t expedited_need_qs;
29597 	struct swait_queue_head expedited_wq;
29598 	int ncpus_snap;
29599 	u8 cbovld;
29600 	u8 cbovldnext;
29601 	long unsigned int jiffies_force_qs;
29602 	long unsigned int jiffies_kick_kthreads;
29603 	long unsigned int n_force_qs;
29604 	long unsigned int gp_start;
29605 	long unsigned int gp_end;
29606 	long unsigned int gp_activity;
29607 	long unsigned int gp_req_activity;
29608 	long unsigned int jiffies_stall;
29609 	long unsigned int jiffies_resched;
29610 	long unsigned int n_force_qs_gpstart;
29611 	const char *name;
29612 	char abbr;
29613 	long: 56;
29614 	long: 64;
29615 	long: 64;
29616 	long: 64;
29617 	raw_spinlock_t ofl_lock;
29618 };
29619 
29620 struct kvfree_rcu_bulk_data {
29621 	long unsigned int nr_records;
29622 	struct kvfree_rcu_bulk_data *next;
29623 	void *records[0];
29624 };
29625 
29626 struct kfree_rcu_cpu;
29627 
29628 struct kfree_rcu_cpu_work {
29629 	struct rcu_work rcu_work;
29630 	struct callback_head *head_free;
29631 	struct kvfree_rcu_bulk_data *bkvhead_free[2];
29632 	struct kfree_rcu_cpu *krcp;
29633 };
29634 
29635 struct kfree_rcu_cpu {
29636 	struct callback_head *head;
29637 	struct kvfree_rcu_bulk_data *bkvhead[2];
29638 	struct kfree_rcu_cpu_work krw_arr[2];
29639 	raw_spinlock_t lock;
29640 	struct delayed_work monitor_work;
29641 	bool monitor_todo;
29642 	bool initialized;
29643 	int count;
29644 	struct delayed_work page_cache_work;
29645 	atomic_t backoff_page_cache_fill;
29646 	atomic_t work_in_progress;
29647 	struct hrtimer hrtimer;
29648 	struct llist_head bkvcache;
29649 	int nr_bkv_objs;
29650 };
29651 
29652 struct rcu_stall_chk_rdr {
29653 	int nesting;
29654 	union rcu_special rs;
29655 	bool on_blkd_list;
29656 };
29657 
29658 struct dma_sgt_handle {
29659 	struct sg_table sgt;
29660 	struct page **pages;
29661 };
29662 
29663 struct dma_devres {
29664 	size_t size;
29665 	void *vaddr;
29666 	dma_addr_t dma_handle;
29667 	long unsigned int attrs;
29668 };
29669 
29670 struct trace_event_raw_swiotlb_bounced {
29671 	struct trace_entry ent;
29672 	u32 __data_loc_dev_name;
29673 	u64 dma_mask;
29674 	dma_addr_t dev_addr;
29675 	size_t size;
29676 	enum swiotlb_force swiotlb_force;
29677 	char __data[0];
29678 };
29679 
29680 struct trace_event_data_offsets_swiotlb_bounced {
29681 	u32 dev_name;
29682 };
29683 
29684 typedef void (*btf_trace_swiotlb_bounced)(void *, struct device *, dma_addr_t, size_t, enum swiotlb_force);
29685 
29686 struct trace_event_raw_sys_enter {
29687 	struct trace_entry ent;
29688 	long int id;
29689 	long unsigned int args[6];
29690 	char __data[0];
29691 };
29692 
29693 struct trace_event_raw_sys_exit {
29694 	struct trace_entry ent;
29695 	long int id;
29696 	long int ret;
29697 	char __data[0];
29698 };
29699 
29700 struct trace_event_data_offsets_sys_enter {};
29701 
29702 struct trace_event_data_offsets_sys_exit {};
29703 
29704 typedef void (*btf_trace_sys_enter)(void *, struct pt_regs *, long int);
29705 
29706 typedef void (*btf_trace_sys_exit)(void *, struct pt_regs *, long int);
29707 
29708 struct profile_hit {
29709 	u32 pc;
29710 	u32 hits;
29711 };
29712 
29713 struct stacktrace_cookie {
29714 	long unsigned int *store;
29715 	unsigned int size;
29716 	unsigned int skip;
29717 	unsigned int len;
29718 };
29719 
29720 typedef __kernel_long_t __kernel_suseconds_t;
29721 
29722 typedef __kernel_long_t __kernel_old_time_t;
29723 
29724 typedef __kernel_suseconds_t suseconds_t;
29725 
29726 typedef __kernel_clock_t clock_t;
29727 
29728 typedef __u64 timeu64_t;
29729 
29730 struct __kernel_itimerspec {
29731 	struct __kernel_timespec it_interval;
29732 	struct __kernel_timespec it_value;
29733 };
29734 
29735 struct itimerspec64 {
29736 	struct timespec64 it_interval;
29737 	struct timespec64 it_value;
29738 };
29739 
29740 struct old_timeval32 {
29741 	old_time32_t tv_sec;
29742 	s32 tv_usec;
29743 };
29744 
29745 struct old_itimerspec32 {
29746 	struct old_timespec32 it_interval;
29747 	struct old_timespec32 it_value;
29748 };
29749 
29750 struct old_timex32 {
29751 	u32 modes;
29752 	s32 offset;
29753 	s32 freq;
29754 	s32 maxerror;
29755 	s32 esterror;
29756 	s32 status;
29757 	s32 constant;
29758 	s32 precision;
29759 	s32 tolerance;
29760 	struct old_timeval32 time;
29761 	s32 tick;
29762 	s32 ppsfreq;
29763 	s32 jitter;
29764 	s32 shift;
29765 	s32 stabil;
29766 	s32 jitcnt;
29767 	s32 calcnt;
29768 	s32 errcnt;
29769 	s32 stbcnt;
29770 	s32 tai;
29771 	long: 32;
29772 	long: 64;
29773 	long: 64;
29774 	long: 64;
29775 	long: 64;
29776 	long: 64;
29777 };
29778 
29779 struct __kernel_timex_timeval {
29780 	__kernel_time64_t tv_sec;
29781 	long long int tv_usec;
29782 };
29783 
29784 struct __kernel_timex {
29785 	unsigned int modes;
29786 	long long int offset;
29787 	long long int freq;
29788 	long long int maxerror;
29789 	long long int esterror;
29790 	int status;
29791 	long long int constant;
29792 	long long int precision;
29793 	long long int tolerance;
29794 	struct __kernel_timex_timeval time;
29795 	long long int tick;
29796 	long long int ppsfreq;
29797 	long long int jitter;
29798 	int shift;
29799 	long long int stabil;
29800 	long long int jitcnt;
29801 	long long int calcnt;
29802 	long long int errcnt;
29803 	long long int stbcnt;
29804 	int tai;
29805 	long: 32;
29806 	long: 64;
29807 	long: 64;
29808 	long: 64;
29809 	long: 64;
29810 	long: 64;
29811 };
29812 
29813 struct trace_event_raw_timer_class {
29814 	struct trace_entry ent;
29815 	void *timer;
29816 	char __data[0];
29817 };
29818 
29819 struct trace_event_raw_timer_start {
29820 	struct trace_entry ent;
29821 	void *timer;
29822 	void *function;
29823 	long unsigned int expires;
29824 	long unsigned int now;
29825 	unsigned int flags;
29826 	char __data[0];
29827 };
29828 
29829 struct trace_event_raw_timer_expire_entry {
29830 	struct trace_entry ent;
29831 	void *timer;
29832 	long unsigned int now;
29833 	void *function;
29834 	long unsigned int baseclk;
29835 	char __data[0];
29836 };
29837 
29838 struct trace_event_raw_hrtimer_init {
29839 	struct trace_entry ent;
29840 	void *hrtimer;
29841 	clockid_t clockid;
29842 	enum hrtimer_mode mode;
29843 	char __data[0];
29844 };
29845 
29846 struct trace_event_raw_hrtimer_start {
29847 	struct trace_entry ent;
29848 	void *hrtimer;
29849 	void *function;
29850 	s64 expires;
29851 	s64 softexpires;
29852 	enum hrtimer_mode mode;
29853 	char __data[0];
29854 };
29855 
29856 struct trace_event_raw_hrtimer_expire_entry {
29857 	struct trace_entry ent;
29858 	void *hrtimer;
29859 	s64 now;
29860 	void *function;
29861 	char __data[0];
29862 };
29863 
29864 struct trace_event_raw_hrtimer_class {
29865 	struct trace_entry ent;
29866 	void *hrtimer;
29867 	char __data[0];
29868 };
29869 
29870 struct trace_event_raw_itimer_state {
29871 	struct trace_entry ent;
29872 	int which;
29873 	long long unsigned int expires;
29874 	long int value_sec;
29875 	long int value_nsec;
29876 	long int interval_sec;
29877 	long int interval_nsec;
29878 	char __data[0];
29879 };
29880 
29881 struct trace_event_raw_itimer_expire {
29882 	struct trace_entry ent;
29883 	int which;
29884 	pid_t pid;
29885 	long long unsigned int now;
29886 	char __data[0];
29887 };
29888 
29889 struct trace_event_raw_tick_stop {
29890 	struct trace_entry ent;
29891 	int success;
29892 	int dependency;
29893 	char __data[0];
29894 };
29895 
29896 struct trace_event_data_offsets_timer_class {};
29897 
29898 struct trace_event_data_offsets_timer_start {};
29899 
29900 struct trace_event_data_offsets_timer_expire_entry {};
29901 
29902 struct trace_event_data_offsets_hrtimer_init {};
29903 
29904 struct trace_event_data_offsets_hrtimer_start {};
29905 
29906 struct trace_event_data_offsets_hrtimer_expire_entry {};
29907 
29908 struct trace_event_data_offsets_hrtimer_class {};
29909 
29910 struct trace_event_data_offsets_itimer_state {};
29911 
29912 struct trace_event_data_offsets_itimer_expire {};
29913 
29914 struct trace_event_data_offsets_tick_stop {};
29915 
29916 typedef void (*btf_trace_timer_init)(void *, struct timer_list *);
29917 
29918 typedef void (*btf_trace_timer_start)(void *, struct timer_list *, long unsigned int, unsigned int);
29919 
29920 typedef void (*btf_trace_timer_expire_entry)(void *, struct timer_list *, long unsigned int);
29921 
29922 typedef void (*btf_trace_timer_expire_exit)(void *, struct timer_list *);
29923 
29924 typedef void (*btf_trace_timer_cancel)(void *, struct timer_list *);
29925 
29926 typedef void (*btf_trace_hrtimer_init)(void *, struct hrtimer *, clockid_t, enum hrtimer_mode);
29927 
29928 typedef void (*btf_trace_hrtimer_start)(void *, struct hrtimer *, enum hrtimer_mode);
29929 
29930 typedef void (*btf_trace_hrtimer_expire_entry)(void *, struct hrtimer *, ktime_t *);
29931 
29932 typedef void (*btf_trace_hrtimer_expire_exit)(void *, struct hrtimer *);
29933 
29934 typedef void (*btf_trace_hrtimer_cancel)(void *, struct hrtimer *);
29935 
29936 typedef void (*btf_trace_itimer_state)(void *, int, const struct itimerspec64 * const, long long unsigned int);
29937 
29938 typedef void (*btf_trace_itimer_expire)(void *, int, struct pid *, long long unsigned int);
29939 
29940 typedef void (*btf_trace_tick_stop)(void *, int, int);
29941 
29942 struct timer_base {
29943 	raw_spinlock_t lock;
29944 	struct timer_list *running_timer;
29945 	long unsigned int clk;
29946 	long unsigned int next_expiry;
29947 	unsigned int cpu;
29948 	bool next_expiry_recalc;
29949 	bool is_idle;
29950 	bool timers_pending;
29951 	long unsigned int pending_map[9];
29952 	struct hlist_head vectors[576];
29953 	long: 64;
29954 	long: 64;
29955 	long: 64;
29956 };
29957 
29958 struct process_timer {
29959 	struct timer_list timer;
29960 	struct task_struct *task;
29961 };
29962 
29963 struct ktime_timestamps {
29964 	u64 mono;
29965 	u64 boot;
29966 	u64 real;
29967 };
29968 
29969 struct system_time_snapshot {
29970 	u64 cycles;
29971 	ktime_t real;
29972 	ktime_t raw;
29973 	enum clocksource_ids cs_id;
29974 	unsigned int clock_was_set_seq;
29975 	u8 cs_was_changed_seq;
29976 };
29977 
29978 struct system_device_crosststamp {
29979 	ktime_t device;
29980 	ktime_t sys_realtime;
29981 	ktime_t sys_monoraw;
29982 };
29983 
29984 struct tk_read_base {
29985 	struct clocksource *clock;
29986 	u64 mask;
29987 	u64 cycle_last;
29988 	u32 mult;
29989 	u32 shift;
29990 	u64 xtime_nsec;
29991 	ktime_t base;
29992 	u64 base_real;
29993 };
29994 
29995 struct timekeeper {
29996 	struct tk_read_base tkr_mono;
29997 	struct tk_read_base tkr_raw;
29998 	u64 xtime_sec;
29999 	long unsigned int ktime_sec;
30000 	struct timespec64 wall_to_monotonic;
30001 	ktime_t offs_real;
30002 	ktime_t offs_boot;
30003 	ktime_t offs_tai;
30004 	s32 tai_offset;
30005 	unsigned int clock_was_set_seq;
30006 	u8 cs_was_changed_seq;
30007 	ktime_t next_leap_ktime;
30008 	u64 raw_sec;
30009 	struct timespec64 monotonic_to_boot;
30010 	u64 cycle_interval;
30011 	u64 xtime_interval;
30012 	s64 xtime_remainder;
30013 	u64 raw_interval;
30014 	u64 ntp_tick;
30015 	s64 ntp_error;
30016 	u32 ntp_error_shift;
30017 	u32 ntp_err_mult;
30018 	u32 skip_second_overflow;
30019 };
30020 
30021 struct audit_ntp_val {
30022 	long long int oldval;
30023 	long long int newval;
30024 };
30025 
30026 struct audit_ntp_data {
30027 	struct audit_ntp_val vals[6];
30028 };
30029 
30030 enum timekeeping_adv_mode {
30031 	TK_ADV_TICK = 0,
30032 	TK_ADV_FREQ = 1,
30033 };
30034 
30035 struct tk_fast {
30036 	seqcount_latch_t seq;
30037 	struct tk_read_base base[2];
30038 };
30039 
30040 typedef s64 int64_t;
30041 
30042 enum wd_read_status {
30043 	WD_READ_SUCCESS = 0,
30044 	WD_READ_UNSTABLE = 1,
30045 	WD_READ_SKIP = 2,
30046 };
30047 
30048 enum tick_nohz_mode {
30049 	NOHZ_MODE_INACTIVE = 0,
30050 	NOHZ_MODE_LOWRES = 1,
30051 	NOHZ_MODE_HIGHRES = 2,
30052 };
30053 
30054 struct tick_sched {
30055 	struct hrtimer sched_timer;
30056 	long unsigned int check_clocks;
30057 	enum tick_nohz_mode nohz_mode;
30058 	unsigned int inidle: 1;
30059 	unsigned int tick_stopped: 1;
30060 	unsigned int idle_active: 1;
30061 	unsigned int do_timer_last: 1;
30062 	unsigned int got_idle_tick: 1;
30063 	ktime_t last_tick;
30064 	ktime_t next_tick;
30065 	long unsigned int idle_jiffies;
30066 	long unsigned int idle_calls;
30067 	long unsigned int idle_sleeps;
30068 	ktime_t idle_entrytime;
30069 	ktime_t idle_waketime;
30070 	ktime_t idle_exittime;
30071 	ktime_t idle_sleeptime;
30072 	ktime_t iowait_sleeptime;
30073 	long unsigned int last_jiffies;
30074 	u64 timer_expires;
30075 	u64 timer_expires_base;
30076 	u64 next_timer;
30077 	ktime_t idle_expires;
30078 	atomic_t tick_dep_mask;
30079 };
30080 
30081 struct timer_list_iter {
30082 	int cpu;
30083 	bool second_pass;
30084 	u64 now;
30085 };
30086 
30087 struct tm {
30088 	int tm_sec;
30089 	int tm_min;
30090 	int tm_hour;
30091 	int tm_mday;
30092 	int tm_mon;
30093 	long int tm_year;
30094 	int tm_wday;
30095 	int tm_yday;
30096 };
30097 
30098 struct cyclecounter {
30099 	u64 (*read)(const struct cyclecounter *);
30100 	u64 mask;
30101 	u32 mult;
30102 	u32 shift;
30103 };
30104 
30105 struct timecounter {
30106 	const struct cyclecounter *cc;
30107 	u64 cycle_last;
30108 	u64 nsec;
30109 	u64 mask;
30110 	u64 frac;
30111 };
30112 
30113 typedef __kernel_timer_t timer_t;
30114 
30115 enum alarmtimer_type {
30116 	ALARM_REALTIME = 0,
30117 	ALARM_BOOTTIME = 1,
30118 	ALARM_NUMTYPE = 2,
30119 	ALARM_REALTIME_FREEZER = 3,
30120 	ALARM_BOOTTIME_FREEZER = 4,
30121 };
30122 
30123 enum alarmtimer_restart {
30124 	ALARMTIMER_NORESTART = 0,
30125 	ALARMTIMER_RESTART = 1,
30126 };
30127 
30128 struct alarm {
30129 	struct timerqueue_node node;
30130 	struct hrtimer timer;
30131 	enum alarmtimer_restart (*function)(struct alarm *, ktime_t);
30132 	enum alarmtimer_type type;
30133 	int state;
30134 	void *data;
30135 };
30136 
30137 struct cpu_timer {
30138 	struct timerqueue_node node;
30139 	struct timerqueue_head *head;
30140 	struct pid *pid;
30141 	struct list_head elist;
30142 	int firing;
30143 };
30144 
30145 struct k_clock;
30146 
30147 struct k_itimer {
30148 	struct list_head list;
30149 	struct hlist_node t_hash;
30150 	spinlock_t it_lock;
30151 	const struct k_clock *kclock;
30152 	clockid_t it_clock;
30153 	timer_t it_id;
30154 	int it_active;
30155 	s64 it_overrun;
30156 	s64 it_overrun_last;
30157 	int it_requeue_pending;
30158 	int it_sigev_notify;
30159 	ktime_t it_interval;
30160 	struct signal_struct *it_signal;
30161 	union {
30162 		struct pid *it_pid;
30163 		struct task_struct *it_process;
30164 	};
30165 	struct sigqueue *sigq;
30166 	union {
30167 		struct {
30168 			struct hrtimer timer;
30169 		} real;
30170 		struct cpu_timer cpu;
30171 		struct {
30172 			struct alarm alarmtimer;
30173 		} alarm;
30174 	} it;
30175 	struct callback_head rcu;
30176 };
30177 
30178 struct k_clock {
30179 	int (*clock_getres)(const clockid_t, struct timespec64 *);
30180 	int (*clock_set)(const clockid_t, const struct timespec64 *);
30181 	int (*clock_get_timespec)(const clockid_t, struct timespec64 *);
30182 	ktime_t (*clock_get_ktime)(const clockid_t);
30183 	int (*clock_adj)(const clockid_t, struct __kernel_timex *);
30184 	int (*timer_create)(struct k_itimer *);
30185 	int (*nsleep)(const clockid_t, int, const struct timespec64 *);
30186 	int (*timer_set)(struct k_itimer *, int, struct itimerspec64 *, struct itimerspec64 *);
30187 	int (*timer_del)(struct k_itimer *);
30188 	void (*timer_get)(struct k_itimer *, struct itimerspec64 *);
30189 	void (*timer_rearm)(struct k_itimer *);
30190 	s64 (*timer_forward)(struct k_itimer *, ktime_t);
30191 	ktime_t (*timer_remaining)(struct k_itimer *, ktime_t);
30192 	int (*timer_try_to_cancel)(struct k_itimer *);
30193 	void (*timer_arm)(struct k_itimer *, ktime_t, bool, bool);
30194 	void (*timer_wait_running)(struct k_itimer *);
30195 };
30196 
30197 struct rtc_wkalrm {
30198 	unsigned char enabled;
30199 	unsigned char pending;
30200 	struct rtc_time time;
30201 };
30202 
30203 struct rtc_param {
30204 	__u64 param;
30205 	union {
30206 		__u64 uvalue;
30207 		__s64 svalue;
30208 		__u64 ptr;
30209 	};
30210 	__u32 index;
30211 	__u32 __pad;
30212 };
30213 
30214 struct rtc_class_ops {
30215 	int (*ioctl)(struct device *, unsigned int, long unsigned int);
30216 	int (*read_time)(struct device *, struct rtc_time *);
30217 	int (*set_time)(struct device *, struct rtc_time *);
30218 	int (*read_alarm)(struct device *, struct rtc_wkalrm *);
30219 	int (*set_alarm)(struct device *, struct rtc_wkalrm *);
30220 	int (*proc)(struct device *, struct seq_file *);
30221 	int (*alarm_irq_enable)(struct device *, unsigned int);
30222 	int (*read_offset)(struct device *, long int *);
30223 	int (*set_offset)(struct device *, long int);
30224 	int (*param_get)(struct device *, struct rtc_param *);
30225 	int (*param_set)(struct device *, struct rtc_param *);
30226 };
30227 
30228 struct rtc_device;
30229 
30230 struct rtc_timer {
30231 	struct timerqueue_node node;
30232 	ktime_t period;
30233 	void (*func)(struct rtc_device *);
30234 	struct rtc_device *rtc;
30235 	int enabled;
30236 };
30237 
30238 struct rtc_device {
30239 	struct device dev;
30240 	struct module *owner;
30241 	int id;
30242 	const struct rtc_class_ops *ops;
30243 	struct mutex ops_lock;
30244 	struct cdev char_dev;
30245 	long unsigned int flags;
30246 	long unsigned int irq_data;
30247 	spinlock_t irq_lock;
30248 	wait_queue_head_t irq_queue;
30249 	struct fasync_struct *async_queue;
30250 	int irq_freq;
30251 	int max_user_freq;
30252 	struct timerqueue_head timerqueue;
30253 	struct rtc_timer aie_timer;
30254 	struct rtc_timer uie_rtctimer;
30255 	struct hrtimer pie_timer;
30256 	int pie_enabled;
30257 	struct work_struct irqwork;
30258 	int uie_unsupported;
30259 	long unsigned int set_offset_nsec;
30260 	long unsigned int features[1];
30261 	time64_t range_min;
30262 	timeu64_t range_max;
30263 	time64_t start_secs;
30264 	time64_t offset_secs;
30265 	bool set_start_time;
30266 };
30267 
30268 struct platform_driver {
30269 	int (*probe)(struct platform_device *);
30270 	int (*remove)(struct platform_device *);
30271 	void (*shutdown)(struct platform_device *);
30272 	int (*suspend)(struct platform_device *, pm_message_t);
30273 	int (*resume)(struct platform_device *);
30274 	struct device_driver driver;
30275 	const struct platform_device_id *id_table;
30276 	bool prevent_deferred_probe;
30277 };
30278 
30279 struct trace_event_raw_alarmtimer_suspend {
30280 	struct trace_entry ent;
30281 	s64 expires;
30282 	unsigned char alarm_type;
30283 	char __data[0];
30284 };
30285 
30286 struct trace_event_raw_alarm_class {
30287 	struct trace_entry ent;
30288 	void *alarm;
30289 	unsigned char alarm_type;
30290 	s64 expires;
30291 	s64 now;
30292 	char __data[0];
30293 };
30294 
30295 struct trace_event_data_offsets_alarmtimer_suspend {};
30296 
30297 struct trace_event_data_offsets_alarm_class {};
30298 
30299 typedef void (*btf_trace_alarmtimer_suspend)(void *, ktime_t, int);
30300 
30301 typedef void (*btf_trace_alarmtimer_fired)(void *, struct alarm *, ktime_t);
30302 
30303 typedef void (*btf_trace_alarmtimer_start)(void *, struct alarm *, ktime_t);
30304 
30305 typedef void (*btf_trace_alarmtimer_cancel)(void *, struct alarm *, ktime_t);
30306 
30307 struct alarm_base {
30308 	spinlock_t lock;
30309 	struct timerqueue_head timerqueue;
30310 	ktime_t (*get_ktime)();
30311 	void (*get_timespec)(struct timespec64 *);
30312 	clockid_t base_clockid;
30313 };
30314 
30315 struct sigevent {
30316 	sigval_t sigev_value;
30317 	int sigev_signo;
30318 	int sigev_notify;
30319 	union {
30320 		int _pad[12];
30321 		int _tid;
30322 		struct {
30323 			void (*_function)(sigval_t);
30324 			void *_attribute;
30325 		} _sigev_thread;
30326 	} _sigev_un;
30327 };
30328 
30329 typedef struct sigevent sigevent_t;
30330 
30331 struct posix_clock;
30332 
30333 struct posix_clock_operations {
30334 	struct module *owner;
30335 	int (*clock_adjtime)(struct posix_clock *, struct __kernel_timex *);
30336 	int (*clock_gettime)(struct posix_clock *, struct timespec64 *);
30337 	int (*clock_getres)(struct posix_clock *, struct timespec64 *);
30338 	int (*clock_settime)(struct posix_clock *, const struct timespec64 *);
30339 	long int (*ioctl)(struct posix_clock *, unsigned int, long unsigned int);
30340 	int (*open)(struct posix_clock *, fmode_t);
30341 	__poll_t (*poll)(struct posix_clock *, struct file *, poll_table *);
30342 	int (*release)(struct posix_clock *);
30343 	ssize_t (*read)(struct posix_clock *, uint, char *, size_t);
30344 };
30345 
30346 struct posix_clock {
30347 	struct posix_clock_operations ops;
30348 	struct cdev cdev;
30349 	struct device *dev;
30350 	struct rw_semaphore rwsem;
30351 	bool zombie;
30352 };
30353 
30354 struct posix_clock_desc {
30355 	struct file *fp;
30356 	struct posix_clock *clk;
30357 };
30358 
30359 struct __kernel_old_itimerval {
30360 	struct __kernel_old_timeval it_interval;
30361 	struct __kernel_old_timeval it_value;
30362 };
30363 
30364 struct ce_unbind {
30365 	struct clock_event_device *ce;
30366 	int res;
30367 };
30368 
30369 struct proc_timens_offset {
30370 	int clockid;
30371 	struct timespec64 val;
30372 };
30373 
30374 union futex_key {
30375 	struct {
30376 		u64 i_seq;
30377 		long unsigned int pgoff;
30378 		unsigned int offset;
30379 	} shared;
30380 	struct {
30381 		union {
30382 			struct mm_struct *mm;
30383 			u64 __tmp;
30384 		};
30385 		long unsigned int address;
30386 		unsigned int offset;
30387 	} private;
30388 	struct {
30389 		u64 ptr;
30390 		long unsigned int word;
30391 		unsigned int offset;
30392 	} both;
30393 };
30394 
30395 struct futex_pi_state {
30396 	struct list_head list;
30397 	struct rt_mutex_base pi_mutex;
30398 	struct task_struct *owner;
30399 	refcount_t refcount;
30400 	union futex_key key;
30401 };
30402 
30403 struct futex_hash_bucket {
30404 	atomic_t waiters;
30405 	spinlock_t lock;
30406 	struct plist_head chain;
30407 	long: 64;
30408 	long: 64;
30409 	long: 64;
30410 	long: 64;
30411 	long: 64;
30412 };
30413 
30414 struct futex_q {
30415 	struct plist_node list;
30416 	struct task_struct *task;
30417 	spinlock_t *lock_ptr;
30418 	union futex_key key;
30419 	struct futex_pi_state *pi_state;
30420 	struct rt_mutex_waiter *rt_waiter;
30421 	union futex_key *requeue_pi_key;
30422 	u32 bitset;
30423 	atomic_t requeue_state;
30424 };
30425 
30426 enum futex_access {
30427 	FUTEX_READ = 0,
30428 	FUTEX_WRITE = 1,
30429 };
30430 
30431 struct futex_waitv {
30432 	__u64 val;
30433 	__u64 uaddr;
30434 	__u32 flags;
30435 	__u32 __reserved;
30436 };
30437 
30438 struct futex_vector {
30439 	struct futex_waitv w;
30440 	struct futex_q q;
30441 };
30442 
30443 enum {
30444 	Q_REQUEUE_PI_NONE = 0,
30445 	Q_REQUEUE_PI_IGNORE = 1,
30446 	Q_REQUEUE_PI_IN_PROGRESS = 2,
30447 	Q_REQUEUE_PI_WAIT = 3,
30448 	Q_REQUEUE_PI_DONE = 4,
30449 	Q_REQUEUE_PI_LOCKED = 5,
30450 };
30451 
30452 struct dma_chan {
30453 	int lock;
30454 	const char *device_id;
30455 };
30456 
30457 typedef bool (*smp_cond_func_t)(int, void *);
30458 
30459 struct cfd_percpu {
30460 	call_single_data_t csd;
30461 };
30462 
30463 struct call_function_data {
30464 	struct cfd_percpu *pcpu;
30465 	cpumask_var_t cpumask;
30466 	cpumask_var_t cpumask_ipi;
30467 };
30468 
30469 struct smp_call_on_cpu_struct {
30470 	struct work_struct work;
30471 	struct completion done;
30472 	int (*func)(void *);
30473 	void *data;
30474 	int ret;
30475 	int cpu;
30476 };
30477 
30478 struct latch_tree_root {
30479 	seqcount_latch_t seq;
30480 	struct rb_root tree[2];
30481 };
30482 
30483 struct latch_tree_ops {
30484 	bool (*less)(struct latch_tree_node *, struct latch_tree_node *);
30485 	int (*comp)(void *, struct latch_tree_node *);
30486 };
30487 
30488 struct modversion_info {
30489 	long unsigned int crc;
30490 	char name[56];
30491 };
30492 
30493 struct module_use {
30494 	struct list_head source_list;
30495 	struct list_head target_list;
30496 	struct module *source;
30497 	struct module *target;
30498 };
30499 
30500 struct module_sect_attr {
30501 	struct bin_attribute battr;
30502 	long unsigned int address;
30503 };
30504 
30505 struct module_sect_attrs {
30506 	struct attribute_group grp;
30507 	unsigned int nsections;
30508 	struct module_sect_attr attrs[0];
30509 };
30510 
30511 struct module_notes_attrs {
30512 	struct kobject *dir;
30513 	unsigned int notes;
30514 	struct bin_attribute attrs[0];
30515 };
30516 
30517 enum kernel_read_file_id {
30518 	READING_UNKNOWN = 0,
30519 	READING_FIRMWARE = 1,
30520 	READING_MODULE = 2,
30521 	READING_KEXEC_IMAGE = 3,
30522 	READING_KEXEC_INITRAMFS = 4,
30523 	READING_POLICY = 5,
30524 	READING_X509_CERTIFICATE = 6,
30525 	READING_MAX_ID = 7,
30526 };
30527 
30528 enum kernel_load_data_id {
30529 	LOADING_UNKNOWN = 0,
30530 	LOADING_FIRMWARE = 1,
30531 	LOADING_MODULE = 2,
30532 	LOADING_KEXEC_IMAGE = 3,
30533 	LOADING_KEXEC_INITRAMFS = 4,
30534 	LOADING_POLICY = 5,
30535 	LOADING_X509_CERTIFICATE = 6,
30536 	LOADING_MAX_ID = 7,
30537 };
30538 
30539 enum {
30540 	PROC_ENTRY_PERMANENT = 1,
30541 };
30542 
30543 struct _ddebug {
30544 	const char *modname;
30545 	const char *function;
30546 	const char *filename;
30547 	const char *format;
30548 	unsigned int lineno: 18;
30549 	unsigned int flags: 8;
30550 	union {
30551 		struct static_key_true dd_key_true;
30552 		struct static_key_false dd_key_false;
30553 	} key;
30554 };
30555 
30556 struct load_info {
30557 	const char *name;
30558 	struct module *mod;
30559 	Elf64_Ehdr *hdr;
30560 	long unsigned int len;
30561 	Elf64_Shdr *sechdrs;
30562 	char *secstrings;
30563 	char *strtab;
30564 	long unsigned int symoffs;
30565 	long unsigned int stroffs;
30566 	long unsigned int init_typeoffs;
30567 	long unsigned int core_typeoffs;
30568 	struct _ddebug *debug;
30569 	unsigned int num_debug;
30570 	bool sig_ok;
30571 	long unsigned int mod_kallsyms_init_off;
30572 	struct {
30573 		unsigned int sym;
30574 		unsigned int str;
30575 		unsigned int mod;
30576 		unsigned int vers;
30577 		unsigned int info;
30578 		unsigned int pcpu;
30579 	} index;
30580 };
30581 
30582 struct trace_event_raw_module_load {
30583 	struct trace_entry ent;
30584 	unsigned int taints;
30585 	u32 __data_loc_name;
30586 	char __data[0];
30587 };
30588 
30589 struct trace_event_raw_module_free {
30590 	struct trace_entry ent;
30591 	u32 __data_loc_name;
30592 	char __data[0];
30593 };
30594 
30595 struct trace_event_raw_module_refcnt {
30596 	struct trace_entry ent;
30597 	long unsigned int ip;
30598 	int refcnt;
30599 	u32 __data_loc_name;
30600 	char __data[0];
30601 };
30602 
30603 struct trace_event_raw_module_request {
30604 	struct trace_entry ent;
30605 	long unsigned int ip;
30606 	bool wait;
30607 	u32 __data_loc_name;
30608 	char __data[0];
30609 };
30610 
30611 struct trace_event_data_offsets_module_load {
30612 	u32 name;
30613 };
30614 
30615 struct trace_event_data_offsets_module_free {
30616 	u32 name;
30617 };
30618 
30619 struct trace_event_data_offsets_module_refcnt {
30620 	u32 name;
30621 };
30622 
30623 struct trace_event_data_offsets_module_request {
30624 	u32 name;
30625 };
30626 
30627 typedef void (*btf_trace_module_load)(void *, struct module *);
30628 
30629 typedef void (*btf_trace_module_free)(void *, struct module *);
30630 
30631 typedef void (*btf_trace_module_get)(void *, struct module *, long unsigned int);
30632 
30633 typedef void (*btf_trace_module_put)(void *, struct module *, long unsigned int);
30634 
30635 typedef void (*btf_trace_module_request)(void *, char *, bool, long unsigned int);
30636 
30637 struct mod_tree_root {
30638 	struct latch_tree_root root;
30639 	long unsigned int addr_min;
30640 	long unsigned int addr_max;
30641 };
30642 
30643 enum mod_license {
30644 	NOT_GPL_ONLY = 0,
30645 	GPL_ONLY = 1,
30646 };
30647 
30648 struct symsearch {
30649 	const struct kernel_symbol *start;
30650 	const struct kernel_symbol *stop;
30651 	const s32 *crcs;
30652 	enum mod_license license;
30653 };
30654 
30655 struct find_symbol_arg {
30656 	const char *name;
30657 	bool gplok;
30658 	bool warn;
30659 	struct module *owner;
30660 	const s32 *crc;
30661 	const struct kernel_symbol *sym;
30662 	enum mod_license license;
30663 };
30664 
30665 struct mod_initfree {
30666 	struct llist_node node;
30667 	void *module_init;
30668 };
30669 
30670 struct kallsym_iter {
30671 	loff_t pos;
30672 	loff_t pos_arch_end;
30673 	loff_t pos_mod_end;
30674 	loff_t pos_ftrace_mod_end;
30675 	loff_t pos_bpf_end;
30676 	long unsigned int value;
30677 	unsigned int nameoff;
30678 	char type;
30679 	char name[128];
30680 	char module_name[56];
30681 	int exported;
30682 	int show_value;
30683 };
30684 
30685 typedef struct {
30686 	int val[2];
30687 } __kernel_fsid_t;
30688 
30689 struct kstatfs {
30690 	long int f_type;
30691 	long int f_bsize;
30692 	u64 f_blocks;
30693 	u64 f_bfree;
30694 	u64 f_bavail;
30695 	u64 f_files;
30696 	u64 f_ffree;
30697 	__kernel_fsid_t f_fsid;
30698 	long int f_namelen;
30699 	long int f_frsize;
30700 	long int f_flags;
30701 	long int f_spare[4];
30702 };
30703 
30704 typedef __u16 comp_t;
30705 
30706 typedef __u32 comp2_t;
30707 
30708 struct acct {
30709 	char ac_flag;
30710 	char ac_version;
30711 	__u16 ac_uid16;
30712 	__u16 ac_gid16;
30713 	__u16 ac_tty;
30714 	__u32 ac_btime;
30715 	comp_t ac_utime;
30716 	comp_t ac_stime;
30717 	comp_t ac_etime;
30718 	comp_t ac_mem;
30719 	comp_t ac_io;
30720 	comp_t ac_rw;
30721 	comp_t ac_minflt;
30722 	comp_t ac_majflt;
30723 	comp_t ac_swaps;
30724 	__u16 ac_ahz;
30725 	__u32 ac_exitcode;
30726 	char ac_comm[17];
30727 	__u8 ac_etime_hi;
30728 	__u16 ac_etime_lo;
30729 	__u32 ac_uid;
30730 	__u32 ac_gid;
30731 };
30732 
30733 typedef struct acct acct_t;
30734 
30735 struct fs_pin {
30736 	wait_queue_head_t wait;
30737 	int done;
30738 	struct hlist_node s_list;
30739 	struct hlist_node m_list;
30740 	void (*kill)(struct fs_pin *);
30741 };
30742 
30743 struct bsd_acct_struct {
30744 	struct fs_pin pin;
30745 	atomic_long_t count;
30746 	struct callback_head rcu;
30747 	struct mutex lock;
30748 	int active;
30749 	long unsigned int needcheck;
30750 	struct file *file;
30751 	struct pid_namespace *ns;
30752 	struct work_struct work;
30753 	struct completion done;
30754 };
30755 
30756 struct elf64_note {
30757 	Elf64_Word n_namesz;
30758 	Elf64_Word n_descsz;
30759 	Elf64_Word n_type;
30760 };
30761 
30762 typedef long unsigned int elf_greg_t;
30763 
30764 typedef elf_greg_t elf_gregset_t[27];
30765 
30766 struct elf_siginfo {
30767 	int si_signo;
30768 	int si_code;
30769 	int si_errno;
30770 };
30771 
30772 struct elf_prstatus_common {
30773 	struct elf_siginfo pr_info;
30774 	short int pr_cursig;
30775 	long unsigned int pr_sigpend;
30776 	long unsigned int pr_sighold;
30777 	pid_t pr_pid;
30778 	pid_t pr_ppid;
30779 	pid_t pr_pgrp;
30780 	pid_t pr_sid;
30781 	struct __kernel_old_timeval pr_utime;
30782 	struct __kernel_old_timeval pr_stime;
30783 	struct __kernel_old_timeval pr_cutime;
30784 	struct __kernel_old_timeval pr_cstime;
30785 };
30786 
30787 struct elf_prstatus {
30788 	struct elf_prstatus_common common;
30789 	elf_gregset_t pr_reg;
30790 	int pr_fpvalid;
30791 };
30792 
30793 typedef __kernel_ulong_t ino_t;
30794 
30795 enum kernfs_node_type {
30796 	KERNFS_DIR = 1,
30797 	KERNFS_FILE = 2,
30798 	KERNFS_LINK = 4,
30799 };
30800 
30801 enum kernfs_root_flag {
30802 	KERNFS_ROOT_CREATE_DEACTIVATED = 1,
30803 	KERNFS_ROOT_EXTRA_OPEN_PERM_CHECK = 2,
30804 	KERNFS_ROOT_SUPPORT_EXPORTOP = 4,
30805 	KERNFS_ROOT_SUPPORT_USER_XATTR = 8,
30806 };
30807 
30808 struct kernfs_fs_context {
30809 	struct kernfs_root *root;
30810 	void *ns_tag;
30811 	long unsigned int magic;
30812 	bool new_sb_created;
30813 };
30814 
30815 enum {
30816 	CGRP_NOTIFY_ON_RELEASE = 0,
30817 	CGRP_CPUSET_CLONE_CHILDREN = 1,
30818 	CGRP_FREEZE = 2,
30819 	CGRP_FROZEN = 3,
30820 	CGRP_KILL = 4,
30821 };
30822 
30823 enum {
30824 	CGRP_ROOT_NOPREFIX = 2,
30825 	CGRP_ROOT_XATTR = 4,
30826 	CGRP_ROOT_NS_DELEGATE = 8,
30827 	CGRP_ROOT_CPUSET_V2_MODE = 16,
30828 	CGRP_ROOT_MEMORY_LOCAL_EVENTS = 32,
30829 	CGRP_ROOT_MEMORY_RECURSIVE_PROT = 64,
30830 };
30831 
30832 struct cgroup_taskset {
30833 	struct list_head src_csets;
30834 	struct list_head dst_csets;
30835 	int nr_tasks;
30836 	int ssid;
30837 	struct list_head *csets;
30838 	struct css_set *cur_cset;
30839 	struct task_struct *cur_task;
30840 };
30841 
30842 struct css_task_iter {
30843 	struct cgroup_subsys *ss;
30844 	unsigned int flags;
30845 	struct list_head *cset_pos;
30846 	struct list_head *cset_head;
30847 	struct list_head *tcset_pos;
30848 	struct list_head *tcset_head;
30849 	struct list_head *task_pos;
30850 	struct list_head *cur_tasks_head;
30851 	struct css_set *cur_cset;
30852 	struct css_set *cur_dcset;
30853 	struct task_struct *cur_task;
30854 	struct list_head iters_node;
30855 };
30856 
30857 struct cgroup_fs_context {
30858 	struct kernfs_fs_context kfc;
30859 	struct cgroup_root *root;
30860 	struct cgroup_namespace *ns;
30861 	unsigned int flags;
30862 	bool cpuset_clone_children;
30863 	bool none;
30864 	bool all_ss;
30865 	u16 subsys_mask;
30866 	char *name;
30867 	char *release_agent;
30868 };
30869 
30870 struct cgroup_pidlist;
30871 
30872 struct cgroup_file_ctx {
30873 	struct cgroup_namespace *ns;
30874 	struct {
30875 		void *trigger;
30876 	} psi;
30877 	struct {
30878 		bool started;
30879 		struct css_task_iter iter;
30880 	} procs;
30881 	struct {
30882 		struct cgroup_pidlist *pidlist;
30883 	} procs1;
30884 };
30885 
30886 struct cgrp_cset_link {
30887 	struct cgroup *cgrp;
30888 	struct css_set *cset;
30889 	struct list_head cset_link;
30890 	struct list_head cgrp_link;
30891 };
30892 
30893 struct cgroup_mgctx {
30894 	struct list_head preloaded_src_csets;
30895 	struct list_head preloaded_dst_csets;
30896 	struct cgroup_taskset tset;
30897 	u16 ss_mask;
30898 };
30899 
30900 struct bpf_cgroup_storage_key {
30901 	__u64 cgroup_inode_id;
30902 	__u32 attach_type;
30903 };
30904 
30905 struct bpf_storage_buffer;
30906 
30907 struct bpf_cgroup_storage_map;
30908 
30909 struct bpf_cgroup_storage {
30910 	union {
30911 		struct bpf_storage_buffer *buf;
30912 		void *percpu_buf;
30913 	};
30914 	struct bpf_cgroup_storage_map *map;
30915 	struct bpf_cgroup_storage_key key;
30916 	struct list_head list_map;
30917 	struct list_head list_cg;
30918 	struct rb_node node;
30919 	struct callback_head rcu;
30920 };
30921 
30922 struct bpf_storage_buffer {
30923 	struct callback_head rcu;
30924 	char data[0];
30925 };
30926 
30927 struct trace_event_raw_cgroup_root {
30928 	struct trace_entry ent;
30929 	int root;
30930 	u16 ss_mask;
30931 	u32 __data_loc_name;
30932 	char __data[0];
30933 };
30934 
30935 struct trace_event_raw_cgroup {
30936 	struct trace_entry ent;
30937 	int root;
30938 	int level;
30939 	u64 id;
30940 	u32 __data_loc_path;
30941 	char __data[0];
30942 };
30943 
30944 struct trace_event_raw_cgroup_migrate {
30945 	struct trace_entry ent;
30946 	int dst_root;
30947 	int dst_level;
30948 	u64 dst_id;
30949 	int pid;
30950 	u32 __data_loc_dst_path;
30951 	u32 __data_loc_comm;
30952 	char __data[0];
30953 };
30954 
30955 struct trace_event_raw_cgroup_event {
30956 	struct trace_entry ent;
30957 	int root;
30958 	int level;
30959 	u64 id;
30960 	u32 __data_loc_path;
30961 	int val;
30962 	char __data[0];
30963 };
30964 
30965 struct trace_event_data_offsets_cgroup_root {
30966 	u32 name;
30967 };
30968 
30969 struct trace_event_data_offsets_cgroup {
30970 	u32 path;
30971 };
30972 
30973 struct trace_event_data_offsets_cgroup_migrate {
30974 	u32 dst_path;
30975 	u32 comm;
30976 };
30977 
30978 struct trace_event_data_offsets_cgroup_event {
30979 	u32 path;
30980 };
30981 
30982 typedef void (*btf_trace_cgroup_setup_root)(void *, struct cgroup_root *);
30983 
30984 typedef void (*btf_trace_cgroup_destroy_root)(void *, struct cgroup_root *);
30985 
30986 typedef void (*btf_trace_cgroup_remount)(void *, struct cgroup_root *);
30987 
30988 typedef void (*btf_trace_cgroup_mkdir)(void *, struct cgroup *, const char *);
30989 
30990 typedef void (*btf_trace_cgroup_rmdir)(void *, struct cgroup *, const char *);
30991 
30992 typedef void (*btf_trace_cgroup_release)(void *, struct cgroup *, const char *);
30993 
30994 typedef void (*btf_trace_cgroup_rename)(void *, struct cgroup *, const char *);
30995 
30996 typedef void (*btf_trace_cgroup_freeze)(void *, struct cgroup *, const char *);
30997 
30998 typedef void (*btf_trace_cgroup_unfreeze)(void *, struct cgroup *, const char *);
30999 
31000 typedef void (*btf_trace_cgroup_attach_task)(void *, struct cgroup *, const char *, struct task_struct *, bool);
31001 
31002 typedef void (*btf_trace_cgroup_transfer_tasks)(void *, struct cgroup *, const char *, struct task_struct *, bool);
31003 
31004 typedef void (*btf_trace_cgroup_notify_populated)(void *, struct cgroup *, const char *, int);
31005 
31006 typedef void (*btf_trace_cgroup_notify_frozen)(void *, struct cgroup *, const char *, int);
31007 
31008 enum cgroup_opt_features {
31009 	OPT_FEATURE_COUNT = 0,
31010 };
31011 
31012 enum cgroup2_param {
31013 	Opt_nsdelegate = 0,
31014 	Opt_memory_localevents = 1,
31015 	Opt_memory_recursiveprot = 2,
31016 	nr__cgroup2_params = 3,
31017 };
31018 
31019 struct cgroupstats {
31020 	__u64 nr_sleeping;
31021 	__u64 nr_running;
31022 	__u64 nr_stopped;
31023 	__u64 nr_uninterruptible;
31024 	__u64 nr_io_wait;
31025 };
31026 
31027 enum cgroup_filetype {
31028 	CGROUP_FILE_PROCS = 0,
31029 	CGROUP_FILE_TASKS = 1,
31030 };
31031 
31032 struct cgroup_pidlist {
31033 	struct {
31034 		enum cgroup_filetype type;
31035 		struct pid_namespace *ns;
31036 	} key;
31037 	pid_t *list;
31038 	int length;
31039 	struct list_head links;
31040 	struct cgroup *owner;
31041 	struct delayed_work destroy_dwork;
31042 };
31043 
31044 enum cgroup1_param {
31045 	Opt_all = 0,
31046 	Opt_clone_children = 1,
31047 	Opt_cpuset_v2_mode = 2,
31048 	Opt_name = 3,
31049 	Opt_none = 4,
31050 	Opt_noprefix = 5,
31051 	Opt_release_agent = 6,
31052 	Opt_xattr = 7,
31053 };
31054 
31055 enum freezer_state_flags {
31056 	CGROUP_FREEZER_ONLINE = 1,
31057 	CGROUP_FREEZING_SELF = 2,
31058 	CGROUP_FREEZING_PARENT = 4,
31059 	CGROUP_FROZEN = 8,
31060 	CGROUP_FREEZING = 6,
31061 };
31062 
31063 struct freezer {
31064 	struct cgroup_subsys_state css;
31065 	unsigned int state;
31066 };
31067 
31068 struct fmeter {
31069 	int cnt;
31070 	int val;
31071 	time64_t time;
31072 	spinlock_t lock;
31073 };
31074 
31075 struct cpuset {
31076 	struct cgroup_subsys_state css;
31077 	long unsigned int flags;
31078 	cpumask_var_t cpus_allowed;
31079 	nodemask_t mems_allowed;
31080 	cpumask_var_t effective_cpus;
31081 	nodemask_t effective_mems;
31082 	cpumask_var_t subparts_cpus;
31083 	nodemask_t old_mems_allowed;
31084 	struct fmeter fmeter;
31085 	int attach_in_progress;
31086 	int pn;
31087 	int relax_domain_level;
31088 	int nr_subparts_cpus;
31089 	int partition_root_state;
31090 	int use_parent_ecpus;
31091 	int child_ecpus_count;
31092 	struct cgroup_file partition_file;
31093 };
31094 
31095 struct tmpmasks {
31096 	cpumask_var_t addmask;
31097 	cpumask_var_t delmask;
31098 	cpumask_var_t new_cpus;
31099 };
31100 
31101 typedef enum {
31102 	CS_ONLINE = 0,
31103 	CS_CPU_EXCLUSIVE = 1,
31104 	CS_MEM_EXCLUSIVE = 2,
31105 	CS_MEM_HARDWALL = 3,
31106 	CS_MEMORY_MIGRATE = 4,
31107 	CS_SCHED_LOAD_BALANCE = 5,
31108 	CS_SPREAD_PAGE = 6,
31109 	CS_SPREAD_SLAB = 7,
31110 } cpuset_flagbits_t;
31111 
31112 enum subparts_cmd {
31113 	partcmd_enable = 0,
31114 	partcmd_disable = 1,
31115 	partcmd_update = 2,
31116 };
31117 
31118 struct cpuset_migrate_mm_work {
31119 	struct work_struct work;
31120 	struct mm_struct *mm;
31121 	nodemask_t from;
31122 	nodemask_t to;
31123 };
31124 
31125 typedef enum {
31126 	FILE_MEMORY_MIGRATE = 0,
31127 	FILE_CPULIST = 1,
31128 	FILE_MEMLIST = 2,
31129 	FILE_EFFECTIVE_CPULIST = 3,
31130 	FILE_EFFECTIVE_MEMLIST = 4,
31131 	FILE_SUBPARTS_CPULIST = 5,
31132 	FILE_CPU_EXCLUSIVE = 6,
31133 	FILE_MEM_EXCLUSIVE = 7,
31134 	FILE_MEM_HARDWALL = 8,
31135 	FILE_SCHED_LOAD_BALANCE = 9,
31136 	FILE_PARTITION_ROOT = 10,
31137 	FILE_SCHED_RELAX_DOMAIN_LEVEL = 11,
31138 	FILE_MEMORY_PRESSURE_ENABLED = 12,
31139 	FILE_MEMORY_PRESSURE = 13,
31140 	FILE_SPREAD_PAGE = 14,
31141 	FILE_SPREAD_SLAB = 15,
31142 } cpuset_filetype_t;
31143 
31144 struct kernel_pkey_query {
31145 	__u32 supported_ops;
31146 	__u32 key_size;
31147 	__u16 max_data_size;
31148 	__u16 max_sig_size;
31149 	__u16 max_enc_size;
31150 	__u16 max_dec_size;
31151 };
31152 
31153 enum kernel_pkey_operation {
31154 	kernel_pkey_encrypt = 0,
31155 	kernel_pkey_decrypt = 1,
31156 	kernel_pkey_sign = 2,
31157 	kernel_pkey_verify = 3,
31158 };
31159 
31160 struct kernel_pkey_params {
31161 	struct key *key;
31162 	const char *encoding;
31163 	const char *hash_algo;
31164 	char *info;
31165 	__u32 in_len;
31166 	union {
31167 		__u32 out_len;
31168 		__u32 in2_len;
31169 	};
31170 	enum kernel_pkey_operation op: 8;
31171 };
31172 
31173 struct key_preparsed_payload {
31174 	const char *orig_description;
31175 	char *description;
31176 	union key_payload payload;
31177 	const void *data;
31178 	size_t datalen;
31179 	size_t quotalen;
31180 	time64_t expiry;
31181 };
31182 
31183 struct key_match_data {
31184 	bool (*cmp)(const struct key *, const struct key_match_data *);
31185 	const void *raw_data;
31186 	void *preparsed;
31187 	unsigned int lookup_type;
31188 };
31189 
31190 struct idmap_key {
31191 	bool map_up;
31192 	u32 id;
31193 	u32 count;
31194 };
31195 
31196 struct cpu_stop_done {
31197 	atomic_t nr_todo;
31198 	int ret;
31199 	struct completion completion;
31200 };
31201 
31202 struct cpu_stopper {
31203 	struct task_struct *thread;
31204 	raw_spinlock_t lock;
31205 	bool enabled;
31206 	struct list_head works;
31207 	struct cpu_stop_work stop_work;
31208 	long unsigned int caller;
31209 	cpu_stop_fn_t fn;
31210 };
31211 
31212 enum multi_stop_state {
31213 	MULTI_STOP_NONE = 0,
31214 	MULTI_STOP_PREPARE = 1,
31215 	MULTI_STOP_DISABLE_IRQ = 2,
31216 	MULTI_STOP_RUN = 3,
31217 	MULTI_STOP_EXIT = 4,
31218 };
31219 
31220 struct multi_stop_data {
31221 	cpu_stop_fn_t fn;
31222 	void *data;
31223 	unsigned int num_threads;
31224 	const struct cpumask *active_cpus;
31225 	enum multi_stop_state state;
31226 	atomic_t thread_ack;
31227 };
31228 
31229 typedef int __kernel_mqd_t;
31230 
31231 typedef __kernel_mqd_t mqd_t;
31232 
31233 enum audit_state {
31234 	AUDIT_STATE_DISABLED = 0,
31235 	AUDIT_STATE_BUILD = 1,
31236 	AUDIT_STATE_RECORD = 2,
31237 };
31238 
31239 struct audit_cap_data {
31240 	kernel_cap_t permitted;
31241 	kernel_cap_t inheritable;
31242 	union {
31243 		unsigned int fE;
31244 		kernel_cap_t effective;
31245 	};
31246 	kernel_cap_t ambient;
31247 	kuid_t rootid;
31248 };
31249 
31250 struct audit_names {
31251 	struct list_head list;
31252 	struct filename *name;
31253 	int name_len;
31254 	bool hidden;
31255 	long unsigned int ino;
31256 	dev_t dev;
31257 	umode_t mode;
31258 	kuid_t uid;
31259 	kgid_t gid;
31260 	dev_t rdev;
31261 	u32 osid;
31262 	struct audit_cap_data fcap;
31263 	unsigned int fcap_ver;
31264 	unsigned char type;
31265 	bool should_free;
31266 };
31267 
31268 struct mq_attr {
31269 	__kernel_long_t mq_flags;
31270 	__kernel_long_t mq_maxmsg;
31271 	__kernel_long_t mq_msgsize;
31272 	__kernel_long_t mq_curmsgs;
31273 	__kernel_long_t __reserved[4];
31274 };
31275 
31276 struct open_how {
31277 	__u64 flags;
31278 	__u64 mode;
31279 	__u64 resolve;
31280 };
31281 
31282 struct audit_proctitle {
31283 	int len;
31284 	char *value;
31285 };
31286 
31287 struct audit_aux_data;
31288 
31289 struct audit_tree_refs;
31290 
31291 struct audit_context {
31292 	int dummy;
31293 	enum {
31294 		AUDIT_CTX_UNUSED = 0,
31295 		AUDIT_CTX_SYSCALL = 1,
31296 		AUDIT_CTX_URING = 2,
31297 	} context;
31298 	enum audit_state state;
31299 	enum audit_state current_state;
31300 	unsigned int serial;
31301 	int major;
31302 	int uring_op;
31303 	struct timespec64 ctime;
31304 	long unsigned int argv[4];
31305 	long int return_code;
31306 	u64 prio;
31307 	int return_valid;
31308 	struct audit_names preallocated_names[5];
31309 	int name_count;
31310 	struct list_head names_list;
31311 	char *filterkey;
31312 	struct path pwd;
31313 	struct audit_aux_data *aux;
31314 	struct audit_aux_data *aux_pids;
31315 	struct __kernel_sockaddr_storage *sockaddr;
31316 	size_t sockaddr_len;
31317 	pid_t pid;
31318 	pid_t ppid;
31319 	kuid_t uid;
31320 	kuid_t euid;
31321 	kuid_t suid;
31322 	kuid_t fsuid;
31323 	kgid_t gid;
31324 	kgid_t egid;
31325 	kgid_t sgid;
31326 	kgid_t fsgid;
31327 	long unsigned int personality;
31328 	int arch;
31329 	pid_t target_pid;
31330 	kuid_t target_auid;
31331 	kuid_t target_uid;
31332 	unsigned int target_sessionid;
31333 	u32 target_sid;
31334 	char target_comm[16];
31335 	struct audit_tree_refs *trees;
31336 	struct audit_tree_refs *first_trees;
31337 	struct list_head killed_trees;
31338 	int tree_count;
31339 	int type;
31340 	union {
31341 		struct {
31342 			int nargs;
31343 			long int args[6];
31344 		} socketcall;
31345 		struct {
31346 			kuid_t uid;
31347 			kgid_t gid;
31348 			umode_t mode;
31349 			u32 osid;
31350 			int has_perm;
31351 			uid_t perm_uid;
31352 			gid_t perm_gid;
31353 			umode_t perm_mode;
31354 			long unsigned int qbytes;
31355 		} ipc;
31356 		struct {
31357 			mqd_t mqdes;
31358 			struct mq_attr mqstat;
31359 		} mq_getsetattr;
31360 		struct {
31361 			mqd_t mqdes;
31362 			int sigev_signo;
31363 		} mq_notify;
31364 		struct {
31365 			mqd_t mqdes;
31366 			size_t msg_len;
31367 			unsigned int msg_prio;
31368 			struct timespec64 abs_timeout;
31369 		} mq_sendrecv;
31370 		struct {
31371 			int oflag;
31372 			umode_t mode;
31373 			struct mq_attr attr;
31374 		} mq_open;
31375 		struct {
31376 			pid_t pid;
31377 			struct audit_cap_data cap;
31378 		} capset;
31379 		struct {
31380 			int fd;
31381 			int flags;
31382 		} mmap;
31383 		struct open_how openat2;
31384 		struct {
31385 			int argc;
31386 		} execve;
31387 		struct {
31388 			char *name;
31389 		} module;
31390 	};
31391 	int fds[2];
31392 	struct audit_proctitle proctitle;
31393 };
31394 
31395 enum audit_nlgrps {
31396 	AUDIT_NLGRP_NONE = 0,
31397 	AUDIT_NLGRP_READLOG = 1,
31398 	__AUDIT_NLGRP_MAX = 2,
31399 };
31400 
31401 struct audit_status {
31402 	__u32 mask;
31403 	__u32 enabled;
31404 	__u32 failure;
31405 	__u32 pid;
31406 	__u32 rate_limit;
31407 	__u32 backlog_limit;
31408 	__u32 lost;
31409 	__u32 backlog;
31410 	union {
31411 		__u32 version;
31412 		__u32 feature_bitmap;
31413 	};
31414 	__u32 backlog_wait_time;
31415 	__u32 backlog_wait_time_actual;
31416 };
31417 
31418 struct audit_features {
31419 	__u32 vers;
31420 	__u32 mask;
31421 	__u32 features;
31422 	__u32 lock;
31423 };
31424 
31425 struct audit_tty_status {
31426 	__u32 enabled;
31427 	__u32 log_passwd;
31428 };
31429 
31430 struct audit_sig_info {
31431 	uid_t uid;
31432 	pid_t pid;
31433 	char ctx[0];
31434 };
31435 
31436 enum skb_drop_reason {
31437 	SKB_DROP_REASON_NOT_SPECIFIED = 0,
31438 	SKB_DROP_REASON_NO_SOCKET = 1,
31439 	SKB_DROP_REASON_PKT_TOO_SMALL = 2,
31440 	SKB_DROP_REASON_TCP_CSUM = 3,
31441 	SKB_DROP_REASON_TCP_FILTER = 4,
31442 	SKB_DROP_REASON_UDP_CSUM = 5,
31443 	SKB_DROP_REASON_MAX = 6,
31444 };
31445 
31446 struct net_generic {
31447 	union {
31448 		struct {
31449 			unsigned int len;
31450 			struct callback_head rcu;
31451 		} s;
31452 		void *ptr[0];
31453 	};
31454 };
31455 
31456 struct scm_creds {
31457 	u32 pid;
31458 	kuid_t uid;
31459 	kgid_t gid;
31460 };
31461 
31462 struct netlink_skb_parms {
31463 	struct scm_creds creds;
31464 	__u32 portid;
31465 	__u32 dst_group;
31466 	__u32 flags;
31467 	struct sock *sk;
31468 	bool nsid_is_set;
31469 	int nsid;
31470 };
31471 
31472 struct netlink_kernel_cfg {
31473 	unsigned int groups;
31474 	unsigned int flags;
31475 	void (*input)(struct sk_buff *);
31476 	struct mutex *cb_mutex;
31477 	int (*bind)(struct net *, int);
31478 	void (*unbind)(struct net *, int);
31479 	bool (*compare)(struct net *, struct sock *);
31480 };
31481 
31482 struct audit_netlink_list {
31483 	__u32 portid;
31484 	struct net *net;
31485 	struct sk_buff_head q;
31486 };
31487 
31488 struct audit_net {
31489 	struct sock *sk;
31490 };
31491 
31492 struct auditd_connection {
31493 	struct pid *pid;
31494 	u32 portid;
31495 	struct net *net;
31496 	struct callback_head rcu;
31497 };
31498 
31499 struct audit_ctl_mutex {
31500 	struct mutex lock;
31501 	void *owner;
31502 };
31503 
31504 struct audit_buffer {
31505 	struct sk_buff *skb;
31506 	struct audit_context *ctx;
31507 	gfp_t gfp_mask;
31508 };
31509 
31510 struct audit_reply {
31511 	__u32 portid;
31512 	struct net *net;
31513 	struct sk_buff *skb;
31514 };
31515 
31516 enum {
31517 	Audit_equal = 0,
31518 	Audit_not_equal = 1,
31519 	Audit_bitmask = 2,
31520 	Audit_bittest = 3,
31521 	Audit_lt = 4,
31522 	Audit_gt = 5,
31523 	Audit_le = 6,
31524 	Audit_ge = 7,
31525 	Audit_bad = 8,
31526 };
31527 
31528 struct audit_rule_data {
31529 	__u32 flags;
31530 	__u32 action;
31531 	__u32 field_count;
31532 	__u32 mask[64];
31533 	__u32 fields[64];
31534 	__u32 values[64];
31535 	__u32 fieldflags[64];
31536 	__u32 buflen;
31537 	char buf[0];
31538 };
31539 
31540 struct audit_field;
31541 
31542 struct audit_watch;
31543 
31544 struct audit_tree;
31545 
31546 struct audit_fsnotify_mark;
31547 
31548 struct audit_krule {
31549 	u32 pflags;
31550 	u32 flags;
31551 	u32 listnr;
31552 	u32 action;
31553 	u32 mask[64];
31554 	u32 buflen;
31555 	u32 field_count;
31556 	char *filterkey;
31557 	struct audit_field *fields;
31558 	struct audit_field *arch_f;
31559 	struct audit_field *inode_f;
31560 	struct audit_watch *watch;
31561 	struct audit_tree *tree;
31562 	struct audit_fsnotify_mark *exe;
31563 	struct list_head rlist;
31564 	struct list_head list;
31565 	u64 prio;
31566 };
31567 
31568 struct audit_field {
31569 	u32 type;
31570 	union {
31571 		u32 val;
31572 		kuid_t uid;
31573 		kgid_t gid;
31574 		struct {
31575 			char *lsm_str;
31576 			void *lsm_rule;
31577 		};
31578 	};
31579 	u32 op;
31580 };
31581 
31582 struct audit_entry {
31583 	struct list_head list;
31584 	struct callback_head rcu;
31585 	struct audit_krule rule;
31586 };
31587 
31588 struct audit_buffer___2;
31589 
31590 typedef int __kernel_key_t;
31591 
31592 typedef __kernel_key_t key_t;
31593 
31594 struct cpu_vfs_cap_data {
31595 	__u32 magic_etc;
31596 	kernel_cap_t permitted;
31597 	kernel_cap_t inheritable;
31598 	kuid_t rootid;
31599 };
31600 
31601 struct kern_ipc_perm {
31602 	spinlock_t lock;
31603 	bool deleted;
31604 	int id;
31605 	key_t key;
31606 	kuid_t uid;
31607 	kgid_t gid;
31608 	kuid_t cuid;
31609 	kgid_t cgid;
31610 	umode_t mode;
31611 	long unsigned int seq;
31612 	void *security;
31613 	struct rhash_head khtnode;
31614 	struct callback_head rcu;
31615 	refcount_t refcount;
31616 	long: 32;
31617 	long: 64;
31618 	long: 64;
31619 	long: 64;
31620 	long: 64;
31621 	long: 64;
31622 	long: 64;
31623 };
31624 
31625 typedef struct fsnotify_mark_connector *fsnotify_connp_t;
31626 
31627 struct fsnotify_mark_connector {
31628 	spinlock_t lock;
31629 	short unsigned int type;
31630 	short unsigned int flags;
31631 	__kernel_fsid_t fsid;
31632 	union {
31633 		fsnotify_connp_t *obj;
31634 		struct fsnotify_mark_connector *destroy_next;
31635 	};
31636 	struct hlist_head list;
31637 };
31638 
31639 enum audit_nfcfgop {
31640 	AUDIT_XT_OP_REGISTER = 0,
31641 	AUDIT_XT_OP_REPLACE = 1,
31642 	AUDIT_XT_OP_UNREGISTER = 2,
31643 	AUDIT_NFT_OP_TABLE_REGISTER = 3,
31644 	AUDIT_NFT_OP_TABLE_UNREGISTER = 4,
31645 	AUDIT_NFT_OP_CHAIN_REGISTER = 5,
31646 	AUDIT_NFT_OP_CHAIN_UNREGISTER = 6,
31647 	AUDIT_NFT_OP_RULE_REGISTER = 7,
31648 	AUDIT_NFT_OP_RULE_UNREGISTER = 8,
31649 	AUDIT_NFT_OP_SET_REGISTER = 9,
31650 	AUDIT_NFT_OP_SET_UNREGISTER = 10,
31651 	AUDIT_NFT_OP_SETELEM_REGISTER = 11,
31652 	AUDIT_NFT_OP_SETELEM_UNREGISTER = 12,
31653 	AUDIT_NFT_OP_GEN_REGISTER = 13,
31654 	AUDIT_NFT_OP_OBJ_REGISTER = 14,
31655 	AUDIT_NFT_OP_OBJ_UNREGISTER = 15,
31656 	AUDIT_NFT_OP_OBJ_RESET = 16,
31657 	AUDIT_NFT_OP_FLOWTABLE_REGISTER = 17,
31658 	AUDIT_NFT_OP_FLOWTABLE_UNREGISTER = 18,
31659 	AUDIT_NFT_OP_INVALID = 19,
31660 };
31661 
31662 enum fsnotify_iter_type {
31663 	FSNOTIFY_ITER_TYPE_INODE = 0,
31664 	FSNOTIFY_ITER_TYPE_VFSMOUNT = 1,
31665 	FSNOTIFY_ITER_TYPE_SB = 2,
31666 	FSNOTIFY_ITER_TYPE_PARENT = 3,
31667 	FSNOTIFY_ITER_TYPE_INODE2 = 4,
31668 	FSNOTIFY_ITER_TYPE_COUNT = 5,
31669 };
31670 
31671 struct audit_aux_data {
31672 	struct audit_aux_data *next;
31673 	int type;
31674 };
31675 
31676 struct audit_chunk;
31677 
31678 struct audit_tree_refs {
31679 	struct audit_tree_refs *next;
31680 	struct audit_chunk *c[31];
31681 };
31682 
31683 struct audit_aux_data_pids {
31684 	struct audit_aux_data d;
31685 	pid_t target_pid[16];
31686 	kuid_t target_auid[16];
31687 	kuid_t target_uid[16];
31688 	unsigned int target_sessionid[16];
31689 	u32 target_sid[16];
31690 	char target_comm[256];
31691 	int pid_count;
31692 };
31693 
31694 struct audit_aux_data_bprm_fcaps {
31695 	struct audit_aux_data d;
31696 	struct audit_cap_data fcap;
31697 	unsigned int fcap_ver;
31698 	struct audit_cap_data old_pcap;
31699 	struct audit_cap_data new_pcap;
31700 };
31701 
31702 struct audit_nfcfgop_tab {
31703 	enum audit_nfcfgop op;
31704 	const char *s;
31705 };
31706 
31707 struct audit_parent;
31708 
31709 struct audit_watch {
31710 	refcount_t count;
31711 	dev_t dev;
31712 	char *path;
31713 	long unsigned int ino;
31714 	struct audit_parent *parent;
31715 	struct list_head wlist;
31716 	struct list_head rules;
31717 };
31718 
31719 struct fsnotify_group;
31720 
31721 struct fsnotify_iter_info;
31722 
31723 struct fsnotify_mark;
31724 
31725 struct fsnotify_event;
31726 
31727 struct fsnotify_ops {
31728 	int (*handle_event)(struct fsnotify_group *, u32, const void *, int, struct inode *, const struct qstr *, u32, struct fsnotify_iter_info *);
31729 	int (*handle_inode_event)(struct fsnotify_mark *, u32, struct inode *, struct inode *, const struct qstr *, u32);
31730 	void (*free_group_priv)(struct fsnotify_group *);
31731 	void (*freeing_mark)(struct fsnotify_mark *, struct fsnotify_group *);
31732 	void (*free_event)(struct fsnotify_group *, struct fsnotify_event *);
31733 	void (*free_mark)(struct fsnotify_mark *);
31734 };
31735 
31736 struct inotify_group_private_data {
31737 	spinlock_t idr_lock;
31738 	struct idr idr;
31739 	struct ucounts *ucounts;
31740 };
31741 
31742 struct fsnotify_group {
31743 	const struct fsnotify_ops *ops;
31744 	refcount_t refcnt;
31745 	spinlock_t notification_lock;
31746 	struct list_head notification_list;
31747 	wait_queue_head_t notification_waitq;
31748 	unsigned int q_len;
31749 	unsigned int max_events;
31750 	unsigned int priority;
31751 	bool shutdown;
31752 	struct mutex mark_mutex;
31753 	atomic_t user_waits;
31754 	struct list_head marks_list;
31755 	struct fasync_struct *fsn_fa;
31756 	struct fsnotify_event *overflow_event;
31757 	struct mem_cgroup *memcg;
31758 	union {
31759 		void *private;
31760 		struct inotify_group_private_data inotify_data;
31761 	};
31762 };
31763 
31764 struct fsnotify_iter_info {
31765 	struct fsnotify_mark *marks[5];
31766 	unsigned int report_mask;
31767 	int srcu_idx;
31768 };
31769 
31770 struct fsnotify_mark {
31771 	__u32 mask;
31772 	refcount_t refcnt;
31773 	struct fsnotify_group *group;
31774 	struct list_head g_list;
31775 	spinlock_t lock;
31776 	struct hlist_node obj_list;
31777 	struct fsnotify_mark_connector *connector;
31778 	__u32 ignored_mask;
31779 	unsigned int flags;
31780 };
31781 
31782 struct fsnotify_event {
31783 	struct list_head list;
31784 };
31785 
31786 enum fsnotify_obj_type {
31787 	FSNOTIFY_OBJ_TYPE_ANY = 4294967295,
31788 	FSNOTIFY_OBJ_TYPE_INODE = 0,
31789 	FSNOTIFY_OBJ_TYPE_VFSMOUNT = 1,
31790 	FSNOTIFY_OBJ_TYPE_SB = 2,
31791 	FSNOTIFY_OBJ_TYPE_COUNT = 3,
31792 	FSNOTIFY_OBJ_TYPE_DETACHED = 3,
31793 };
31794 
31795 struct audit_parent {
31796 	struct list_head watches;
31797 	struct fsnotify_mark mark;
31798 };
31799 
31800 struct audit_fsnotify_mark {
31801 	dev_t dev;
31802 	long unsigned int ino;
31803 	char *path;
31804 	struct fsnotify_mark mark;
31805 	struct audit_krule *rule;
31806 };
31807 
31808 struct audit_chunk___2;
31809 
31810 struct audit_tree {
31811 	refcount_t count;
31812 	int goner;
31813 	struct audit_chunk___2 *root;
31814 	struct list_head chunks;
31815 	struct list_head rules;
31816 	struct list_head list;
31817 	struct list_head same_root;
31818 	struct callback_head head;
31819 	char pathname[0];
31820 };
31821 
31822 struct audit_node {
31823 	struct list_head list;
31824 	struct audit_tree *owner;
31825 	unsigned int index;
31826 };
31827 
31828 struct audit_chunk___2 {
31829 	struct list_head hash;
31830 	long unsigned int key;
31831 	struct fsnotify_mark *mark;
31832 	struct list_head trees;
31833 	int count;
31834 	atomic_long_t refs;
31835 	struct callback_head head;
31836 	struct audit_node owners[0];
31837 };
31838 
31839 struct audit_tree_mark {
31840 	struct fsnotify_mark mark;
31841 	struct audit_chunk___2 *chunk;
31842 };
31843 
31844 enum {
31845 	HASH_SIZE = 128,
31846 };
31847 
31848 struct kprobe_blacklist_entry {
31849 	struct list_head list;
31850 	long unsigned int start_addr;
31851 	long unsigned int end_addr;
31852 };
31853 
31854 enum perf_record_ksymbol_type {
31855 	PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0,
31856 	PERF_RECORD_KSYMBOL_TYPE_BPF = 1,
31857 	PERF_RECORD_KSYMBOL_TYPE_OOL = 2,
31858 	PERF_RECORD_KSYMBOL_TYPE_MAX = 3,
31859 };
31860 
31861 struct kprobe_insn_page {
31862 	struct list_head list;
31863 	kprobe_opcode_t *insns;
31864 	struct kprobe_insn_cache *cache;
31865 	int nused;
31866 	int ngarbage;
31867 	char slot_used[0];
31868 };
31869 
31870 enum kprobe_slot_state {
31871 	SLOT_CLEAN = 0,
31872 	SLOT_DIRTY = 1,
31873 	SLOT_USED = 2,
31874 };
31875 
31876 struct fault_attr {
31877 	long unsigned int probability;
31878 	long unsigned int interval;
31879 	atomic_t times;
31880 	atomic_t space;
31881 	long unsigned int verbose;
31882 	bool task_filter;
31883 	long unsigned int stacktrace_depth;
31884 	long unsigned int require_start;
31885 	long unsigned int require_end;
31886 	long unsigned int reject_start;
31887 	long unsigned int reject_end;
31888 	long unsigned int count;
31889 	struct ratelimit_state ratelimit_state;
31890 	struct dentry *dname;
31891 };
31892 
31893 struct fei_attr {
31894 	struct list_head list;
31895 	struct kprobe kp;
31896 	long unsigned int retval;
31897 };
31898 
31899 struct seccomp_data {
31900 	int nr;
31901 	__u32 arch;
31902 	__u64 instruction_pointer;
31903 	__u64 args[6];
31904 };
31905 
31906 struct seccomp_notif_sizes {
31907 	__u16 seccomp_notif;
31908 	__u16 seccomp_notif_resp;
31909 	__u16 seccomp_data;
31910 };
31911 
31912 struct seccomp_notif {
31913 	__u64 id;
31914 	__u32 pid;
31915 	__u32 flags;
31916 	struct seccomp_data data;
31917 };
31918 
31919 struct seccomp_notif_resp {
31920 	__u64 id;
31921 	__s64 val;
31922 	__s32 error;
31923 	__u32 flags;
31924 };
31925 
31926 struct seccomp_notif_addfd {
31927 	__u64 id;
31928 	__u32 flags;
31929 	__u32 srcfd;
31930 	__u32 newfd;
31931 	__u32 newfd_flags;
31932 };
31933 
31934 struct action_cache {
31935 	long unsigned int allow_native[8];
31936 };
31937 
31938 struct notification;
31939 
31940 struct seccomp_filter {
31941 	refcount_t refs;
31942 	refcount_t users;
31943 	bool log;
31944 	struct action_cache cache;
31945 	struct seccomp_filter *prev;
31946 	struct bpf_prog *prog;
31947 	struct notification *notif;
31948 	struct mutex notify_lock;
31949 	wait_queue_head_t wqh;
31950 };
31951 
31952 struct ctl_path {
31953 	const char *procname;
31954 };
31955 
31956 struct sock_fprog {
31957 	short unsigned int len;
31958 	struct sock_filter *filter;
31959 };
31960 
31961 typedef unsigned int (*bpf_dispatcher_fn)(const void *, const struct bpf_insn *, unsigned int (*)(const void *, const struct bpf_insn *));
31962 
31963 enum notify_state {
31964 	SECCOMP_NOTIFY_INIT = 0,
31965 	SECCOMP_NOTIFY_SENT = 1,
31966 	SECCOMP_NOTIFY_REPLIED = 2,
31967 };
31968 
31969 struct seccomp_knotif {
31970 	struct task_struct *task;
31971 	u64 id;
31972 	const struct seccomp_data *data;
31973 	enum notify_state state;
31974 	int error;
31975 	long int val;
31976 	u32 flags;
31977 	struct completion ready;
31978 	struct list_head list;
31979 	struct list_head addfd;
31980 };
31981 
31982 struct seccomp_kaddfd {
31983 	struct file *file;
31984 	int fd;
31985 	unsigned int flags;
31986 	__u32 ioctl_flags;
31987 	union {
31988 		bool setfd;
31989 		int ret;
31990 	};
31991 	struct completion completion;
31992 	struct list_head list;
31993 };
31994 
31995 struct notification {
31996 	struct semaphore request;
31997 	u64 next_id;
31998 	struct list_head notifications;
31999 };
32000 
32001 struct seccomp_log_name {
32002 	u32 log;
32003 	const char *name;
32004 };
32005 
32006 struct rchan;
32007 
32008 struct rchan_buf {
32009 	void *start;
32010 	void *data;
32011 	size_t offset;
32012 	size_t subbufs_produced;
32013 	size_t subbufs_consumed;
32014 	struct rchan *chan;
32015 	wait_queue_head_t read_wait;
32016 	struct irq_work wakeup_work;
32017 	struct dentry *dentry;
32018 	struct kref kref;
32019 	struct page **page_array;
32020 	unsigned int page_count;
32021 	unsigned int finalized;
32022 	size_t *padding;
32023 	size_t prev_padding;
32024 	size_t bytes_consumed;
32025 	size_t early_bytes;
32026 	unsigned int cpu;
32027 	long: 32;
32028 	long: 64;
32029 	long: 64;
32030 	long: 64;
32031 };
32032 
32033 struct rchan_callbacks;
32034 
32035 struct rchan {
32036 	u32 version;
32037 	size_t subbuf_size;
32038 	size_t n_subbufs;
32039 	size_t alloc_size;
32040 	const struct rchan_callbacks *cb;
32041 	struct kref kref;
32042 	void *private_data;
32043 	size_t last_toobig;
32044 	struct rchan_buf **buf;
32045 	int is_global;
32046 	struct list_head list;
32047 	struct dentry *parent;
32048 	int has_base_filename;
32049 	char base_filename[255];
32050 };
32051 
32052 struct rchan_callbacks {
32053 	int (*subbuf_start)(struct rchan_buf *, void *, void *, size_t);
32054 	struct dentry * (*create_buf_file)(const char *, struct dentry *, umode_t, struct rchan_buf *, int *);
32055 	int (*remove_buf_file)(struct dentry *);
32056 };
32057 
32058 struct partial_page {
32059 	unsigned int offset;
32060 	unsigned int len;
32061 	long unsigned int private;
32062 };
32063 
32064 struct splice_pipe_desc {
32065 	struct page **pages;
32066 	struct partial_page *partial;
32067 	int nr_pages;
32068 	unsigned int nr_pages_max;
32069 	const struct pipe_buf_operations *ops;
32070 	void (*spd_release)(struct splice_pipe_desc *, unsigned int);
32071 };
32072 
32073 struct rchan_percpu_buf_dispatcher {
32074 	struct rchan_buf *buf;
32075 	struct dentry *dentry;
32076 };
32077 
32078 enum {
32079 	TASKSTATS_TYPE_UNSPEC = 0,
32080 	TASKSTATS_TYPE_PID = 1,
32081 	TASKSTATS_TYPE_TGID = 2,
32082 	TASKSTATS_TYPE_STATS = 3,
32083 	TASKSTATS_TYPE_AGGR_PID = 4,
32084 	TASKSTATS_TYPE_AGGR_TGID = 5,
32085 	TASKSTATS_TYPE_NULL = 6,
32086 	__TASKSTATS_TYPE_MAX = 7,
32087 };
32088 
32089 enum {
32090 	TASKSTATS_CMD_ATTR_UNSPEC = 0,
32091 	TASKSTATS_CMD_ATTR_PID = 1,
32092 	TASKSTATS_CMD_ATTR_TGID = 2,
32093 	TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 3,
32094 	TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 4,
32095 	__TASKSTATS_CMD_ATTR_MAX = 5,
32096 };
32097 
32098 enum {
32099 	CGROUPSTATS_CMD_UNSPEC = 3,
32100 	CGROUPSTATS_CMD_GET = 4,
32101 	CGROUPSTATS_CMD_NEW = 5,
32102 	__CGROUPSTATS_CMD_MAX = 6,
32103 };
32104 
32105 enum {
32106 	CGROUPSTATS_TYPE_UNSPEC = 0,
32107 	CGROUPSTATS_TYPE_CGROUP_STATS = 1,
32108 	__CGROUPSTATS_TYPE_MAX = 2,
32109 };
32110 
32111 enum {
32112 	CGROUPSTATS_CMD_ATTR_UNSPEC = 0,
32113 	CGROUPSTATS_CMD_ATTR_FD = 1,
32114 	__CGROUPSTATS_CMD_ATTR_MAX = 2,
32115 };
32116 
32117 struct genlmsghdr {
32118 	__u8 cmd;
32119 	__u8 version;
32120 	__u16 reserved;
32121 };
32122 
32123 enum {
32124 	NLA_UNSPEC = 0,
32125 	NLA_U8 = 1,
32126 	NLA_U16 = 2,
32127 	NLA_U32 = 3,
32128 	NLA_U64 = 4,
32129 	NLA_STRING = 5,
32130 	NLA_FLAG = 6,
32131 	NLA_MSECS = 7,
32132 	NLA_NESTED = 8,
32133 	NLA_NESTED_ARRAY = 9,
32134 	NLA_NUL_STRING = 10,
32135 	NLA_BINARY = 11,
32136 	NLA_S8 = 12,
32137 	NLA_S16 = 13,
32138 	NLA_S32 = 14,
32139 	NLA_S64 = 15,
32140 	NLA_BITFIELD32 = 16,
32141 	NLA_REJECT = 17,
32142 	__NLA_TYPE_MAX = 18,
32143 };
32144 
32145 struct genl_multicast_group {
32146 	char name[16];
32147 	u8 flags;
32148 };
32149 
32150 struct genl_ops;
32151 
32152 struct genl_info;
32153 
32154 struct genl_small_ops;
32155 
32156 struct genl_family {
32157 	int id;
32158 	unsigned int hdrsize;
32159 	char name[16];
32160 	unsigned int version;
32161 	unsigned int maxattr;
32162 	unsigned int mcgrp_offset;
32163 	u8 netnsok: 1;
32164 	u8 parallel_ops: 1;
32165 	u8 n_ops;
32166 	u8 n_small_ops;
32167 	u8 n_mcgrps;
32168 	const struct nla_policy *policy;
32169 	int (*pre_doit)(const struct genl_ops *, struct sk_buff *, struct genl_info *);
32170 	void (*post_doit)(const struct genl_ops *, struct sk_buff *, struct genl_info *);
32171 	const struct genl_ops *ops;
32172 	const struct genl_small_ops *small_ops;
32173 	const struct genl_multicast_group *mcgrps;
32174 	struct module *module;
32175 };
32176 
32177 struct genl_ops {
32178 	int (*doit)(struct sk_buff *, struct genl_info *);
32179 	int (*start)(struct netlink_callback *);
32180 	int (*dumpit)(struct sk_buff *, struct netlink_callback *);
32181 	int (*done)(struct netlink_callback *);
32182 	const struct nla_policy *policy;
32183 	unsigned int maxattr;
32184 	u8 cmd;
32185 	u8 internal_flags;
32186 	u8 flags;
32187 	u8 validate;
32188 };
32189 
32190 struct genl_info {
32191 	u32 snd_seq;
32192 	u32 snd_portid;
32193 	struct nlmsghdr *nlhdr;
32194 	struct genlmsghdr *genlhdr;
32195 	void *userhdr;
32196 	struct nlattr **attrs;
32197 	possible_net_t _net;
32198 	void *user_ptr[2];
32199 	struct netlink_ext_ack *extack;
32200 };
32201 
32202 struct genl_small_ops {
32203 	int (*doit)(struct sk_buff *, struct genl_info *);
32204 	int (*dumpit)(struct sk_buff *, struct netlink_callback *);
32205 	u8 cmd;
32206 	u8 internal_flags;
32207 	u8 flags;
32208 	u8 validate;
32209 };
32210 
32211 enum genl_validate_flags {
32212 	GENL_DONT_VALIDATE_STRICT = 1,
32213 	GENL_DONT_VALIDATE_DUMP = 2,
32214 	GENL_DONT_VALIDATE_DUMP_STRICT = 4,
32215 };
32216 
32217 struct listener {
32218 	struct list_head list;
32219 	pid_t pid;
32220 	char valid;
32221 };
32222 
32223 struct listener_list {
32224 	struct rw_semaphore sem;
32225 	struct list_head list;
32226 };
32227 
32228 enum actions {
32229 	REGISTER = 0,
32230 	DEREGISTER = 1,
32231 	CPU_DONT_CARE = 2,
32232 };
32233 
32234 struct tp_module {
32235 	struct list_head list;
32236 	struct module *mod;
32237 };
32238 
32239 enum tp_func_state {
32240 	TP_FUNC_0 = 0,
32241 	TP_FUNC_1 = 1,
32242 	TP_FUNC_2 = 2,
32243 	TP_FUNC_N = 3,
32244 };
32245 
32246 enum tp_transition_sync {
32247 	TP_TRANSITION_SYNC_1_0_1 = 0,
32248 	TP_TRANSITION_SYNC_N_2_1 = 1,
32249 	_NR_TP_TRANSITION_SYNC = 2,
32250 };
32251 
32252 struct tp_transition_snapshot {
32253 	long unsigned int rcu;
32254 	long unsigned int srcu;
32255 	bool ongoing;
32256 };
32257 
32258 struct tp_probes {
32259 	struct callback_head rcu;
32260 	struct tracepoint_func probes[0];
32261 };
32262 
32263 struct ftrace_hash {
32264 	long unsigned int size_bits;
32265 	struct hlist_head *buckets;
32266 	long unsigned int count;
32267 	long unsigned int flags;
32268 	struct callback_head rcu;
32269 };
32270 
32271 struct ftrace_func_entry {
32272 	struct hlist_node hlist;
32273 	long unsigned int ip;
32274 	long unsigned int direct;
32275 };
32276 
32277 enum {
32278 	FTRACE_UPDATE_CALLS = 1,
32279 	FTRACE_DISABLE_CALLS = 2,
32280 	FTRACE_UPDATE_TRACE_FUNC = 4,
32281 	FTRACE_START_FUNC_RET = 8,
32282 	FTRACE_STOP_FUNC_RET = 16,
32283 	FTRACE_MAY_SLEEP = 32,
32284 };
32285 
32286 enum {
32287 	FTRACE_ITER_FILTER = 1,
32288 	FTRACE_ITER_NOTRACE = 2,
32289 	FTRACE_ITER_PRINTALL = 4,
32290 	FTRACE_ITER_DO_PROBES = 8,
32291 	FTRACE_ITER_PROBE = 16,
32292 	FTRACE_ITER_MOD = 32,
32293 	FTRACE_ITER_ENABLED = 64,
32294 };
32295 
32296 struct prog_entry;
32297 
32298 struct event_filter {
32299 	struct prog_entry *prog;
32300 	char *filter_string;
32301 };
32302 
32303 struct trace_array_cpu;
32304 
32305 struct array_buffer {
32306 	struct trace_array *tr;
32307 	struct trace_buffer *buffer;
32308 	struct trace_array_cpu *data;
32309 	u64 time_start;
32310 	int cpu;
32311 };
32312 
32313 struct trace_pid_list;
32314 
32315 struct trace_options;
32316 
32317 struct trace_func_repeats;
32318 
32319 struct trace_array {
32320 	struct list_head list;
32321 	char *name;
32322 	struct array_buffer array_buffer;
32323 	struct trace_pid_list *filtered_pids;
32324 	struct trace_pid_list *filtered_no_pids;
32325 	arch_spinlock_t max_lock;
32326 	int buffer_disabled;
32327 	int sys_refcount_enter;
32328 	int sys_refcount_exit;
32329 	struct trace_event_file *enter_syscall_files[451];
32330 	struct trace_event_file *exit_syscall_files[451];
32331 	int stop_count;
32332 	int clock_id;
32333 	int nr_topts;
32334 	bool clear_trace;
32335 	int buffer_percent;
32336 	unsigned int n_err_log_entries;
32337 	struct tracer *current_trace;
32338 	unsigned int trace_flags;
32339 	unsigned char trace_flags_index[32];
32340 	unsigned int flags;
32341 	raw_spinlock_t start_lock;
32342 	struct list_head err_log;
32343 	struct dentry *dir;
32344 	struct dentry *options;
32345 	struct dentry *percpu_dir;
32346 	struct dentry *event_dir;
32347 	struct trace_options *topts;
32348 	struct list_head systems;
32349 	struct list_head events;
32350 	struct trace_event_file *trace_marker_file;
32351 	cpumask_var_t tracing_cpumask;
32352 	int ref;
32353 	int trace_ref;
32354 	struct ftrace_ops *ops;
32355 	struct trace_pid_list *function_pids;
32356 	struct trace_pid_list *function_no_pids;
32357 	struct list_head func_probes;
32358 	struct list_head mod_trace;
32359 	struct list_head mod_notrace;
32360 	int function_enabled;
32361 	int no_filter_buffering_ref;
32362 	struct list_head hist_vars;
32363 	struct trace_func_repeats *last_func_repeats;
32364 };
32365 
32366 struct tracer_flags;
32367 
32368 struct tracer {
32369 	const char *name;
32370 	int (*init)(struct trace_array *);
32371 	void (*reset)(struct trace_array *);
32372 	void (*start)(struct trace_array *);
32373 	void (*stop)(struct trace_array *);
32374 	int (*update_thresh)(struct trace_array *);
32375 	void (*open)(struct trace_iterator *);
32376 	void (*pipe_open)(struct trace_iterator *);
32377 	void (*close)(struct trace_iterator *);
32378 	void (*pipe_close)(struct trace_iterator *);
32379 	ssize_t (*read)(struct trace_iterator *, struct file *, char *, size_t, loff_t *);
32380 	ssize_t (*splice_read)(struct trace_iterator *, struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
32381 	void (*print_header)(struct seq_file *);
32382 	enum print_line_t (*print_line)(struct trace_iterator *);
32383 	int (*set_flag)(struct trace_array *, u32, u32, int);
32384 	int (*flag_changed)(struct trace_array *, u32, int);
32385 	struct tracer *next;
32386 	struct tracer_flags *flags;
32387 	int enabled;
32388 	bool print_max;
32389 	bool allow_instances;
32390 	bool noboot;
32391 };
32392 
32393 struct event_subsystem;
32394 
32395 struct trace_subsystem_dir {
32396 	struct list_head list;
32397 	struct event_subsystem *subsystem;
32398 	struct trace_array *tr;
32399 	struct dentry *entry;
32400 	int ref_count;
32401 	int nr_events;
32402 };
32403 
32404 union lower_chunk {
32405 	union lower_chunk *next;
32406 	long unsigned int data[256];
32407 };
32408 
32409 union upper_chunk {
32410 	union upper_chunk *next;
32411 	union lower_chunk *data[256];
32412 };
32413 
32414 struct trace_pid_list {
32415 	raw_spinlock_t lock;
32416 	struct irq_work refill_irqwork;
32417 	union upper_chunk *upper[256];
32418 	union upper_chunk *upper_list;
32419 	union lower_chunk *lower_list;
32420 	int free_upper_chunks;
32421 	int free_lower_chunks;
32422 };
32423 
32424 struct trace_array_cpu {
32425 	atomic_t disabled;
32426 	void *buffer_page;
32427 	long unsigned int entries;
32428 	long unsigned int saved_latency;
32429 	long unsigned int critical_start;
32430 	long unsigned int critical_end;
32431 	long unsigned int critical_sequence;
32432 	long unsigned int nice;
32433 	long unsigned int policy;
32434 	long unsigned int rt_priority;
32435 	long unsigned int skipped_entries;
32436 	u64 preempt_timestamp;
32437 	pid_t pid;
32438 	kuid_t uid;
32439 	char comm[16];
32440 	int ftrace_ignore_pid;
32441 	bool ignore_pid;
32442 };
32443 
32444 struct trace_option_dentry;
32445 
32446 struct trace_options {
32447 	struct tracer *tracer;
32448 	struct trace_option_dentry *topts;
32449 };
32450 
32451 struct tracer_opt;
32452 
32453 struct trace_option_dentry {
32454 	struct tracer_opt *opt;
32455 	struct tracer_flags *flags;
32456 	struct trace_array *tr;
32457 	struct dentry *entry;
32458 };
32459 
32460 enum {
32461 	TRACE_PIDS = 1,
32462 	TRACE_NO_PIDS = 2,
32463 };
32464 
32465 struct trace_func_repeats {
32466 	long unsigned int ip;
32467 	long unsigned int parent_ip;
32468 	long unsigned int count;
32469 	u64 ts_last_call;
32470 };
32471 
32472 enum {
32473 	TRACE_ARRAY_FL_GLOBAL = 1,
32474 };
32475 
32476 struct tracer_opt {
32477 	const char *name;
32478 	u32 bit;
32479 };
32480 
32481 struct tracer_flags {
32482 	u32 val;
32483 	struct tracer_opt *opts;
32484 	struct tracer *trace;
32485 };
32486 
32487 struct ftrace_mod_load {
32488 	struct list_head list;
32489 	char *func;
32490 	char *module;
32491 	int enable;
32492 };
32493 
32494 enum {
32495 	FTRACE_HASH_FL_MOD = 1,
32496 };
32497 
32498 struct ftrace_func_command {
32499 	struct list_head list;
32500 	char *name;
32501 	int (*func)(struct trace_array *, struct ftrace_hash *, char *, char *, char *, int);
32502 };
32503 
32504 struct ftrace_probe_ops {
32505 	void (*func)(long unsigned int, long unsigned int, struct trace_array *, struct ftrace_probe_ops *, void *);
32506 	int (*init)(struct ftrace_probe_ops *, struct trace_array *, long unsigned int, void *, void **);
32507 	void (*free)(struct ftrace_probe_ops *, struct trace_array *, long unsigned int, void *);
32508 	int (*print)(struct seq_file *, long unsigned int, struct ftrace_probe_ops *, void *);
32509 };
32510 
32511 typedef int (*ftrace_mapper_func)(void *);
32512 
32513 struct trace_parser {
32514 	bool cont;
32515 	char *buffer;
32516 	unsigned int idx;
32517 	unsigned int size;
32518 };
32519 
32520 enum trace_iterator_bits {
32521 	TRACE_ITER_PRINT_PARENT_BIT = 0,
32522 	TRACE_ITER_SYM_OFFSET_BIT = 1,
32523 	TRACE_ITER_SYM_ADDR_BIT = 2,
32524 	TRACE_ITER_VERBOSE_BIT = 3,
32525 	TRACE_ITER_RAW_BIT = 4,
32526 	TRACE_ITER_HEX_BIT = 5,
32527 	TRACE_ITER_BIN_BIT = 6,
32528 	TRACE_ITER_BLOCK_BIT = 7,
32529 	TRACE_ITER_PRINTK_BIT = 8,
32530 	TRACE_ITER_ANNOTATE_BIT = 9,
32531 	TRACE_ITER_USERSTACKTRACE_BIT = 10,
32532 	TRACE_ITER_SYM_USEROBJ_BIT = 11,
32533 	TRACE_ITER_PRINTK_MSGONLY_BIT = 12,
32534 	TRACE_ITER_CONTEXT_INFO_BIT = 13,
32535 	TRACE_ITER_LATENCY_FMT_BIT = 14,
32536 	TRACE_ITER_RECORD_CMD_BIT = 15,
32537 	TRACE_ITER_RECORD_TGID_BIT = 16,
32538 	TRACE_ITER_OVERWRITE_BIT = 17,
32539 	TRACE_ITER_STOP_ON_FREE_BIT = 18,
32540 	TRACE_ITER_IRQ_INFO_BIT = 19,
32541 	TRACE_ITER_MARKERS_BIT = 20,
32542 	TRACE_ITER_EVENT_FORK_BIT = 21,
32543 	TRACE_ITER_PAUSE_ON_TRACE_BIT = 22,
32544 	TRACE_ITER_HASH_PTR_BIT = 23,
32545 	TRACE_ITER_FUNCTION_BIT = 24,
32546 	TRACE_ITER_FUNC_FORK_BIT = 25,
32547 	TRACE_ITER_DISPLAY_GRAPH_BIT = 26,
32548 	TRACE_ITER_STACKTRACE_BIT = 27,
32549 	TRACE_ITER_LAST_BIT = 28,
32550 };
32551 
32552 struct event_subsystem {
32553 	struct list_head list;
32554 	const char *name;
32555 	struct event_filter *filter;
32556 	int ref_count;
32557 };
32558 
32559 enum regex_type {
32560 	MATCH_FULL = 0,
32561 	MATCH_FRONT_ONLY = 1,
32562 	MATCH_MIDDLE_ONLY = 2,
32563 	MATCH_END_ONLY = 3,
32564 	MATCH_GLOB = 4,
32565 	MATCH_INDEX = 5,
32566 };
32567 
32568 enum {
32569 	FTRACE_MODIFY_ENABLE_FL = 1,
32570 	FTRACE_MODIFY_MAY_SLEEP_FL = 2,
32571 };
32572 
32573 struct ftrace_func_probe {
32574 	struct ftrace_probe_ops *probe_ops;
32575 	struct ftrace_ops ops;
32576 	struct trace_array *tr;
32577 	struct list_head list;
32578 	void *data;
32579 	int ref;
32580 };
32581 
32582 struct ftrace_page {
32583 	struct ftrace_page *next;
32584 	struct dyn_ftrace *records;
32585 	int index;
32586 	int order;
32587 };
32588 
32589 struct ftrace_rec_iter___2 {
32590 	struct ftrace_page *pg;
32591 	int index;
32592 };
32593 
32594 struct ftrace_iterator {
32595 	loff_t pos;
32596 	loff_t func_pos;
32597 	loff_t mod_pos;
32598 	struct ftrace_page *pg;
32599 	struct dyn_ftrace *func;
32600 	struct ftrace_func_probe *probe;
32601 	struct ftrace_func_entry *probe_entry;
32602 	struct trace_parser parser;
32603 	struct ftrace_hash *hash;
32604 	struct ftrace_ops *ops;
32605 	struct trace_array *tr;
32606 	struct list_head *mod_list;
32607 	int pidx;
32608 	int idx;
32609 	unsigned int flags;
32610 };
32611 
32612 struct ftrace_glob {
32613 	char *search;
32614 	unsigned int len;
32615 	int type;
32616 };
32617 
32618 struct ftrace_func_map {
32619 	struct ftrace_func_entry entry;
32620 	void *data;
32621 };
32622 
32623 struct ftrace_func_mapper {
32624 	struct ftrace_hash hash;
32625 };
32626 
32627 struct ftrace_direct_func {
32628 	struct list_head next;
32629 	long unsigned int addr;
32630 	int count;
32631 };
32632 
32633 enum graph_filter_type {
32634 	GRAPH_FILTER_NOTRACE = 0,
32635 	GRAPH_FILTER_FUNCTION = 1,
32636 };
32637 
32638 struct ftrace_graph_data {
32639 	struct ftrace_hash *hash;
32640 	struct ftrace_func_entry *entry;
32641 	int idx;
32642 	enum graph_filter_type type;
32643 	struct ftrace_hash *new_hash;
32644 	const struct seq_operations *seq_ops;
32645 	struct trace_parser parser;
32646 };
32647 
32648 struct ftrace_mod_func {
32649 	struct list_head list;
32650 	char *name;
32651 	long unsigned int ip;
32652 	unsigned int size;
32653 };
32654 
32655 struct ftrace_mod_map {
32656 	struct callback_head rcu;
32657 	struct list_head list;
32658 	struct module *mod;
32659 	long unsigned int start_addr;
32660 	long unsigned int end_addr;
32661 	struct list_head funcs;
32662 	unsigned int num_funcs;
32663 };
32664 
32665 struct ftrace_init_func {
32666 	struct list_head list;
32667 	long unsigned int ip;
32668 };
32669 
32670 enum ring_buffer_type {
32671 	RINGBUF_TYPE_DATA_TYPE_LEN_MAX = 28,
32672 	RINGBUF_TYPE_PADDING = 29,
32673 	RINGBUF_TYPE_TIME_EXTEND = 30,
32674 	RINGBUF_TYPE_TIME_STAMP = 31,
32675 };
32676 
32677 enum ring_buffer_flags {
32678 	RB_FL_OVERWRITE = 1,
32679 };
32680 
32681 struct ring_buffer_per_cpu;
32682 
32683 struct buffer_page;
32684 
32685 struct ring_buffer_iter {
32686 	struct ring_buffer_per_cpu *cpu_buffer;
32687 	long unsigned int head;
32688 	long unsigned int next_event;
32689 	struct buffer_page *head_page;
32690 	struct buffer_page *cache_reader_page;
32691 	long unsigned int cache_read;
32692 	u64 read_stamp;
32693 	u64 page_stamp;
32694 	struct ring_buffer_event *event;
32695 	int missed_events;
32696 };
32697 
32698 struct rb_irq_work {
32699 	struct irq_work work;
32700 	wait_queue_head_t waiters;
32701 	wait_queue_head_t full_waiters;
32702 	bool waiters_pending;
32703 	bool full_waiters_pending;
32704 	bool wakeup_full;
32705 };
32706 
32707 struct trace_buffer___2 {
32708 	unsigned int flags;
32709 	int cpus;
32710 	atomic_t record_disabled;
32711 	cpumask_var_t cpumask;
32712 	struct lock_class_key *reader_lock_key;
32713 	struct mutex mutex;
32714 	struct ring_buffer_per_cpu **buffers;
32715 	struct hlist_node node;
32716 	u64 (*clock)();
32717 	struct rb_irq_work irq_work;
32718 	bool time_stamp_abs;
32719 };
32720 
32721 enum {
32722 	RB_LEN_TIME_EXTEND = 8,
32723 	RB_LEN_TIME_STAMP = 8,
32724 };
32725 
32726 struct buffer_data_page {
32727 	u64 time_stamp;
32728 	local_t commit;
32729 	unsigned char data[0];
32730 };
32731 
32732 struct buffer_page {
32733 	struct list_head list;
32734 	local_t write;
32735 	unsigned int read;
32736 	local_t entries;
32737 	long unsigned int real_end;
32738 	struct buffer_data_page *page;
32739 };
32740 
32741 struct rb_event_info {
32742 	u64 ts;
32743 	u64 delta;
32744 	u64 before;
32745 	u64 after;
32746 	long unsigned int length;
32747 	struct buffer_page *tail_page;
32748 	int add_timestamp;
32749 };
32750 
32751 enum {
32752 	RB_ADD_STAMP_NONE = 0,
32753 	RB_ADD_STAMP_EXTEND = 2,
32754 	RB_ADD_STAMP_ABSOLUTE = 4,
32755 	RB_ADD_STAMP_FORCE = 8,
32756 };
32757 
32758 enum {
32759 	RB_CTX_TRANSITION = 0,
32760 	RB_CTX_NMI = 1,
32761 	RB_CTX_IRQ = 2,
32762 	RB_CTX_SOFTIRQ = 3,
32763 	RB_CTX_NORMAL = 4,
32764 	RB_CTX_MAX = 5,
32765 };
32766 
32767 struct rb_time_struct {
32768 	local64_t time;
32769 };
32770 
32771 typedef struct rb_time_struct rb_time_t;
32772 
32773 struct ring_buffer_per_cpu {
32774 	int cpu;
32775 	atomic_t record_disabled;
32776 	atomic_t resize_disabled;
32777 	struct trace_buffer___2 *buffer;
32778 	raw_spinlock_t reader_lock;
32779 	arch_spinlock_t lock;
32780 	struct lock_class_key lock_key;
32781 	struct buffer_data_page *free_page;
32782 	long unsigned int nr_pages;
32783 	unsigned int current_context;
32784 	struct list_head *pages;
32785 	struct buffer_page *head_page;
32786 	struct buffer_page *tail_page;
32787 	struct buffer_page *commit_page;
32788 	struct buffer_page *reader_page;
32789 	long unsigned int lost_events;
32790 	long unsigned int last_overrun;
32791 	long unsigned int nest;
32792 	local_t entries_bytes;
32793 	local_t entries;
32794 	local_t overrun;
32795 	local_t commit_overrun;
32796 	local_t dropped_events;
32797 	local_t committing;
32798 	local_t commits;
32799 	local_t pages_touched;
32800 	local_t pages_read;
32801 	long int last_pages_touch;
32802 	size_t shortest_full;
32803 	long unsigned int read;
32804 	long unsigned int read_bytes;
32805 	rb_time_t write_stamp;
32806 	rb_time_t before_stamp;
32807 	u64 event_stamp[5];
32808 	u64 read_stamp;
32809 	long int nr_pages_to_update;
32810 	struct list_head new_pages;
32811 	struct work_struct update_pages_work;
32812 	struct completion update_done;
32813 	struct rb_irq_work irq_work;
32814 };
32815 
32816 struct trace_export {
32817 	struct trace_export *next;
32818 	void (*write)(struct trace_export *, const void *, unsigned int);
32819 	int flags;
32820 };
32821 
32822 enum trace_iter_flags {
32823 	TRACE_FILE_LAT_FMT = 1,
32824 	TRACE_FILE_ANNOTATE = 2,
32825 	TRACE_FILE_TIME_IN_NS = 4,
32826 };
32827 
32828 enum trace_flag_type {
32829 	TRACE_FLAG_IRQS_OFF = 1,
32830 	TRACE_FLAG_IRQS_NOSUPPORT = 2,
32831 	TRACE_FLAG_NEED_RESCHED = 4,
32832 	TRACE_FLAG_HARDIRQ = 8,
32833 	TRACE_FLAG_SOFTIRQ = 16,
32834 	TRACE_FLAG_PREEMPT_RESCHED = 32,
32835 	TRACE_FLAG_NMI = 64,
32836 	TRACE_FLAG_BH_OFF = 128,
32837 };
32838 
32839 enum event_trigger_type {
32840 	ETT_NONE = 0,
32841 	ETT_TRACE_ONOFF = 1,
32842 	ETT_SNAPSHOT = 2,
32843 	ETT_STACKTRACE = 4,
32844 	ETT_EVENT_ENABLE = 8,
32845 	ETT_EVENT_HIST = 16,
32846 	ETT_HIST_ENABLE = 32,
32847 	ETT_EVENT_EPROBE = 64,
32848 };
32849 
32850 enum trace_type {
32851 	__TRACE_FIRST_TYPE = 0,
32852 	TRACE_FN = 1,
32853 	TRACE_CTX = 2,
32854 	TRACE_WAKE = 3,
32855 	TRACE_STACK = 4,
32856 	TRACE_PRINT = 5,
32857 	TRACE_BPRINT = 6,
32858 	TRACE_MMIO_RW = 7,
32859 	TRACE_MMIO_MAP = 8,
32860 	TRACE_BRANCH = 9,
32861 	TRACE_GRAPH_RET = 10,
32862 	TRACE_GRAPH_ENT = 11,
32863 	TRACE_USER_STACK = 12,
32864 	TRACE_BLK = 13,
32865 	TRACE_BPUTS = 14,
32866 	TRACE_HWLAT = 15,
32867 	TRACE_OSNOISE = 16,
32868 	TRACE_TIMERLAT = 17,
32869 	TRACE_RAW_DATA = 18,
32870 	TRACE_FUNC_REPEATS = 19,
32871 	__TRACE_LAST_TYPE = 20,
32872 };
32873 
32874 struct ftrace_entry {
32875 	struct trace_entry ent;
32876 	long unsigned int ip;
32877 	long unsigned int parent_ip;
32878 };
32879 
32880 struct stack_entry {
32881 	struct trace_entry ent;
32882 	int size;
32883 	long unsigned int caller[8];
32884 };
32885 
32886 struct userstack_entry {
32887 	struct trace_entry ent;
32888 	unsigned int tgid;
32889 	long unsigned int caller[8];
32890 };
32891 
32892 struct bprint_entry {
32893 	struct trace_entry ent;
32894 	long unsigned int ip;
32895 	const char *fmt;
32896 	u32 buf[0];
32897 };
32898 
32899 struct print_entry {
32900 	struct trace_entry ent;
32901 	long unsigned int ip;
32902 	char buf[0];
32903 };
32904 
32905 struct raw_data_entry {
32906 	struct trace_entry ent;
32907 	unsigned int id;
32908 	char buf[0];
32909 };
32910 
32911 struct bputs_entry {
32912 	struct trace_entry ent;
32913 	long unsigned int ip;
32914 	const char *str;
32915 };
32916 
32917 struct func_repeats_entry {
32918 	struct trace_entry ent;
32919 	long unsigned int ip;
32920 	long unsigned int parent_ip;
32921 	u16 count;
32922 	u16 top_delta_ts;
32923 	u32 bottom_delta_ts;
32924 };
32925 
32926 typedef bool (*cond_update_fn_t)(struct trace_array *, void *);
32927 
32928 enum trace_iterator_flags {
32929 	TRACE_ITER_PRINT_PARENT = 1,
32930 	TRACE_ITER_SYM_OFFSET = 2,
32931 	TRACE_ITER_SYM_ADDR = 4,
32932 	TRACE_ITER_VERBOSE = 8,
32933 	TRACE_ITER_RAW = 16,
32934 	TRACE_ITER_HEX = 32,
32935 	TRACE_ITER_BIN = 64,
32936 	TRACE_ITER_BLOCK = 128,
32937 	TRACE_ITER_PRINTK = 256,
32938 	TRACE_ITER_ANNOTATE = 512,
32939 	TRACE_ITER_USERSTACKTRACE = 1024,
32940 	TRACE_ITER_SYM_USEROBJ = 2048,
32941 	TRACE_ITER_PRINTK_MSGONLY = 4096,
32942 	TRACE_ITER_CONTEXT_INFO = 8192,
32943 	TRACE_ITER_LATENCY_FMT = 16384,
32944 	TRACE_ITER_RECORD_CMD = 32768,
32945 	TRACE_ITER_RECORD_TGID = 65536,
32946 	TRACE_ITER_OVERWRITE = 131072,
32947 	TRACE_ITER_STOP_ON_FREE = 262144,
32948 	TRACE_ITER_IRQ_INFO = 524288,
32949 	TRACE_ITER_MARKERS = 1048576,
32950 	TRACE_ITER_EVENT_FORK = 2097152,
32951 	TRACE_ITER_PAUSE_ON_TRACE = 4194304,
32952 	TRACE_ITER_HASH_PTR = 8388608,
32953 	TRACE_ITER_FUNCTION = 16777216,
32954 	TRACE_ITER_FUNC_FORK = 33554432,
32955 	TRACE_ITER_DISPLAY_GRAPH = 67108864,
32956 	TRACE_ITER_STACKTRACE = 134217728,
32957 };
32958 
32959 struct trace_min_max_param {
32960 	struct mutex *lock;
32961 	u64 *val;
32962 	u64 *min;
32963 	u64 *max;
32964 };
32965 
32966 struct saved_cmdlines_buffer {
32967 	unsigned int map_pid_to_cmdline[32769];
32968 	unsigned int *map_cmdline_to_pid;
32969 	unsigned int cmdline_num;
32970 	int cmdline_idx;
32971 	char *saved_cmdlines;
32972 };
32973 
32974 struct ftrace_stack {
32975 	long unsigned int calls[1024];
32976 };
32977 
32978 struct ftrace_stacks {
32979 	struct ftrace_stack stacks[4];
32980 };
32981 
32982 struct trace_buffer_struct {
32983 	int nesting;
32984 	char buffer[4096];
32985 };
32986 
32987 struct ftrace_buffer_info {
32988 	struct trace_iterator iter;
32989 	void *spare;
32990 	unsigned int spare_cpu;
32991 	unsigned int read;
32992 };
32993 
32994 struct err_info {
32995 	const char **errs;
32996 	u8 type;
32997 	u8 pos;
32998 	u64 ts;
32999 };
33000 
33001 struct tracing_log_err {
33002 	struct list_head list;
33003 	struct err_info info;
33004 	char loc[128];
33005 	char cmd[256];
33006 };
33007 
33008 struct buffer_ref {
33009 	struct trace_buffer *buffer;
33010 	void *page;
33011 	int cpu;
33012 	refcount_t refcount;
33013 };
33014 
33015 struct ctx_switch_entry {
33016 	struct trace_entry ent;
33017 	unsigned int prev_pid;
33018 	unsigned int next_pid;
33019 	unsigned int next_cpu;
33020 	unsigned char prev_prio;
33021 	unsigned char prev_state;
33022 	unsigned char next_prio;
33023 	unsigned char next_state;
33024 };
33025 
33026 struct hwlat_entry {
33027 	struct trace_entry ent;
33028 	u64 duration;
33029 	u64 outer_duration;
33030 	u64 nmi_total_ts;
33031 	struct timespec64 timestamp;
33032 	unsigned int nmi_count;
33033 	unsigned int seqnum;
33034 	unsigned int count;
33035 };
33036 
33037 struct osnoise_entry {
33038 	struct trace_entry ent;
33039 	u64 noise;
33040 	u64 runtime;
33041 	u64 max_sample;
33042 	unsigned int hw_count;
33043 	unsigned int nmi_count;
33044 	unsigned int irq_count;
33045 	unsigned int softirq_count;
33046 	unsigned int thread_count;
33047 };
33048 
33049 struct timerlat_entry {
33050 	struct trace_entry ent;
33051 	unsigned int seqnum;
33052 	int context;
33053 	u64 timer_latency;
33054 };
33055 
33056 struct trace_mark {
33057 	long long unsigned int val;
33058 	char sym;
33059 };
33060 
33061 struct tracer_stat {
33062 	const char *name;
33063 	void * (*stat_start)(struct tracer_stat *);
33064 	void * (*stat_next)(void *, int);
33065 	cmp_func_t stat_cmp;
33066 	int (*stat_show)(struct seq_file *, void *);
33067 	void (*stat_release)(void *);
33068 	int (*stat_headers)(struct seq_file *);
33069 };
33070 
33071 struct stat_node {
33072 	struct rb_node node;
33073 	void *stat;
33074 };
33075 
33076 struct stat_session {
33077 	struct list_head session_list;
33078 	struct tracer_stat *ts;
33079 	struct rb_root stat_root;
33080 	struct mutex stat_mutex;
33081 	struct dentry *file;
33082 };
33083 
33084 struct trace_bprintk_fmt {
33085 	struct list_head list;
33086 	const char *fmt;
33087 };
33088 
33089 enum {
33090 	TRACE_FUNC_NO_OPTS = 0,
33091 	TRACE_FUNC_OPT_STACK = 1,
33092 	TRACE_FUNC_OPT_NO_REPEATS = 2,
33093 	TRACE_FUNC_OPT_HIGHEST_BIT = 4,
33094 };
33095 
33096 struct ftrace_func_mapper___2;
33097 
33098 struct trace_event_raw_preemptirq_template {
33099 	struct trace_entry ent;
33100 	s32 caller_offs;
33101 	s32 parent_offs;
33102 	char __data[0];
33103 };
33104 
33105 struct trace_event_data_offsets_preemptirq_template {};
33106 
33107 typedef void (*btf_trace_irq_disable)(void *, long unsigned int, long unsigned int);
33108 
33109 typedef void (*btf_trace_irq_enable)(void *, long unsigned int, long unsigned int);
33110 
33111 enum {
33112 	TRACE_NOP_OPT_ACCEPT = 1,
33113 	TRACE_NOP_OPT_REFUSE = 2,
33114 };
33115 
33116 struct fgraph_ops {
33117 	trace_func_graph_ent_t entryfunc;
33118 	trace_func_graph_ret_t retfunc;
33119 };
33120 
33121 struct ftrace_graph_ent_entry {
33122 	struct trace_entry ent;
33123 	struct ftrace_graph_ent graph_ent;
33124 } __attribute__((packed));
33125 
33126 struct ftrace_graph_ret_entry {
33127 	struct trace_entry ent;
33128 	struct ftrace_graph_ret ret;
33129 };
33130 
33131 struct fgraph_cpu_data {
33132 	pid_t last_pid;
33133 	int depth;
33134 	int depth_irq;
33135 	int ignore;
33136 	long unsigned int enter_funcs[50];
33137 };
33138 
33139 struct fgraph_data {
33140 	struct fgraph_cpu_data *cpu_data;
33141 	struct ftrace_graph_ent_entry ent;
33142 	struct ftrace_graph_ret_entry ret;
33143 	int failed;
33144 	int cpu;
33145 	int: 32;
33146 } __attribute__((packed));
33147 
33148 enum {
33149 	FLAGS_FILL_FULL = 268435456,
33150 	FLAGS_FILL_START = 536870912,
33151 	FLAGS_FILL_END = 805306368,
33152 };
33153 
33154 struct io_cq {
33155 	struct request_queue *q;
33156 	struct io_context *ioc;
33157 	union {
33158 		struct list_head q_node;
33159 		struct kmem_cache *__rcu_icq_cache;
33160 	};
33161 	union {
33162 		struct hlist_node ioc_node;
33163 		struct callback_head __rcu_head;
33164 	};
33165 	unsigned int flags;
33166 };
33167 
33168 enum req_opf {
33169 	REQ_OP_READ = 0,
33170 	REQ_OP_WRITE = 1,
33171 	REQ_OP_FLUSH = 2,
33172 	REQ_OP_DISCARD = 3,
33173 	REQ_OP_SECURE_ERASE = 5,
33174 	REQ_OP_WRITE_SAME = 7,
33175 	REQ_OP_WRITE_ZEROES = 9,
33176 	REQ_OP_ZONE_OPEN = 10,
33177 	REQ_OP_ZONE_CLOSE = 11,
33178 	REQ_OP_ZONE_FINISH = 12,
33179 	REQ_OP_ZONE_APPEND = 13,
33180 	REQ_OP_ZONE_RESET = 15,
33181 	REQ_OP_ZONE_RESET_ALL = 17,
33182 	REQ_OP_DRV_IN = 34,
33183 	REQ_OP_DRV_OUT = 35,
33184 	REQ_OP_LAST = 36,
33185 };
33186 
33187 enum req_flag_bits {
33188 	__REQ_FAILFAST_DEV = 8,
33189 	__REQ_FAILFAST_TRANSPORT = 9,
33190 	__REQ_FAILFAST_DRIVER = 10,
33191 	__REQ_SYNC = 11,
33192 	__REQ_META = 12,
33193 	__REQ_PRIO = 13,
33194 	__REQ_NOMERGE = 14,
33195 	__REQ_IDLE = 15,
33196 	__REQ_INTEGRITY = 16,
33197 	__REQ_FUA = 17,
33198 	__REQ_PREFLUSH = 18,
33199 	__REQ_RAHEAD = 19,
33200 	__REQ_BACKGROUND = 20,
33201 	__REQ_NOWAIT = 21,
33202 	__REQ_CGROUP_PUNT = 22,
33203 	__REQ_NOUNMAP = 23,
33204 	__REQ_POLLED = 24,
33205 	__REQ_DRV = 25,
33206 	__REQ_SWAP = 26,
33207 	__REQ_NR_BITS = 27,
33208 };
33209 
33210 struct sbitmap_word {
33211 	long unsigned int depth;
33212 	long: 64;
33213 	long: 64;
33214 	long: 64;
33215 	long: 64;
33216 	long: 64;
33217 	long: 64;
33218 	long: 64;
33219 	long unsigned int word;
33220 	long: 64;
33221 	long: 64;
33222 	long: 64;
33223 	long: 64;
33224 	long: 64;
33225 	long: 64;
33226 	long: 64;
33227 	long unsigned int cleared;
33228 	long: 64;
33229 	long: 64;
33230 	long: 64;
33231 	long: 64;
33232 	long: 64;
33233 	long: 64;
33234 	long: 64;
33235 };
33236 
33237 struct sbitmap {
33238 	unsigned int depth;
33239 	unsigned int shift;
33240 	unsigned int map_nr;
33241 	bool round_robin;
33242 	struct sbitmap_word *map;
33243 	unsigned int *alloc_hint;
33244 };
33245 
33246 struct sbq_wait_state {
33247 	atomic_t wait_cnt;
33248 	wait_queue_head_t wait;
33249 	long: 64;
33250 	long: 64;
33251 	long: 64;
33252 	long: 64;
33253 	long: 64;
33254 };
33255 
33256 struct sbitmap_queue {
33257 	struct sbitmap sb;
33258 	unsigned int wake_batch;
33259 	atomic_t wake_index;
33260 	struct sbq_wait_state *ws;
33261 	atomic_t ws_active;
33262 	unsigned int min_shallow_depth;
33263 };
33264 
33265 typedef __u32 req_flags_t;
33266 
33267 enum mq_rq_state {
33268 	MQ_RQ_IDLE = 0,
33269 	MQ_RQ_IN_FLIGHT = 1,
33270 	MQ_RQ_COMPLETE = 2,
33271 };
33272 
33273 typedef void rq_end_io_fn(struct request *, blk_status_t);
33274 
33275 struct request {
33276 	struct request_queue *q;
33277 	struct blk_mq_ctx *mq_ctx;
33278 	struct blk_mq_hw_ctx *mq_hctx;
33279 	unsigned int cmd_flags;
33280 	req_flags_t rq_flags;
33281 	int tag;
33282 	int internal_tag;
33283 	unsigned int timeout;
33284 	unsigned int __data_len;
33285 	sector_t __sector;
33286 	struct bio *bio;
33287 	struct bio *biotail;
33288 	union {
33289 		struct list_head queuelist;
33290 		struct request *rq_next;
33291 	};
33292 	struct block_device *part;
33293 	u64 start_time_ns;
33294 	u64 io_start_time_ns;
33295 	short unsigned int stats_sectors;
33296 	short unsigned int nr_phys_segments;
33297 	short unsigned int write_hint;
33298 	short unsigned int ioprio;
33299 	enum mq_rq_state state;
33300 	atomic_t ref;
33301 	long unsigned int deadline;
33302 	union {
33303 		struct hlist_node hash;
33304 		struct llist_node ipi_list;
33305 	};
33306 	union {
33307 		struct rb_node rb_node;
33308 		struct bio_vec special_vec;
33309 		void *completion_data;
33310 		int error_count;
33311 	};
33312 	union {
33313 		struct {
33314 			struct io_cq *icq;
33315 			void *priv[2];
33316 		} elv;
33317 		struct {
33318 			unsigned int seq;
33319 			struct list_head list;
33320 			rq_end_io_fn *saved_end_io;
33321 		} flush;
33322 	};
33323 	union {
33324 		struct __call_single_data csd;
33325 		u64 fifo_time;
33326 	};
33327 	rq_end_io_fn *end_io;
33328 	void *end_io_data;
33329 };
33330 
33331 struct blk_mq_hw_ctx {
33332 	struct {
33333 		spinlock_t lock;
33334 		struct list_head dispatch;
33335 		long unsigned int state;
33336 		long: 64;
33337 		long: 64;
33338 		long: 64;
33339 		long: 64;
33340 		long: 64;
33341 	};
33342 	struct delayed_work run_work;
33343 	cpumask_var_t cpumask;
33344 	int next_cpu;
33345 	int next_cpu_batch;
33346 	long unsigned int flags;
33347 	void *sched_data;
33348 	struct request_queue *queue;
33349 	struct blk_flush_queue *fq;
33350 	void *driver_data;
33351 	struct sbitmap ctx_map;
33352 	struct blk_mq_ctx *dispatch_from;
33353 	unsigned int dispatch_busy;
33354 	short unsigned int type;
33355 	short unsigned int nr_ctx;
33356 	struct blk_mq_ctx **ctxs;
33357 	spinlock_t dispatch_wait_lock;
33358 	wait_queue_entry_t dispatch_wait;
33359 	atomic_t wait_index;
33360 	struct blk_mq_tags *tags;
33361 	struct blk_mq_tags *sched_tags;
33362 	long unsigned int queued;
33363 	long unsigned int run;
33364 	unsigned int numa_node;
33365 	unsigned int queue_num;
33366 	atomic_t nr_active;
33367 	struct hlist_node cpuhp_online;
33368 	struct hlist_node cpuhp_dead;
33369 	struct kobject kobj;
33370 	struct dentry *debugfs_dir;
33371 	struct dentry *sched_debugfs_dir;
33372 	struct list_head hctx_list;
33373 };
33374 
33375 struct blk_mq_tags {
33376 	unsigned int nr_tags;
33377 	unsigned int nr_reserved_tags;
33378 	atomic_t active_queues;
33379 	struct sbitmap_queue bitmap_tags;
33380 	struct sbitmap_queue breserved_tags;
33381 	struct request **rqs;
33382 	struct request **static_rqs;
33383 	struct list_head page_list;
33384 	spinlock_t lock;
33385 };
33386 
33387 struct blk_trace {
33388 	int trace_state;
33389 	struct rchan *rchan;
33390 	long unsigned int *sequence;
33391 	unsigned char *msg_data;
33392 	u16 act_mask;
33393 	u64 start_lba;
33394 	u64 end_lba;
33395 	u32 pid;
33396 	u32 dev;
33397 	struct dentry *dir;
33398 	struct list_head running_list;
33399 	atomic_t dropped;
33400 };
33401 
33402 struct blk_flush_queue {
33403 	unsigned int flush_pending_idx: 1;
33404 	unsigned int flush_running_idx: 1;
33405 	blk_status_t rq_status;
33406 	long unsigned int flush_pending_since;
33407 	struct list_head flush_queue[2];
33408 	struct list_head flush_data_in_flight;
33409 	struct request *flush_rq;
33410 	spinlock_t mq_flush_lock;
33411 };
33412 
33413 struct blk_mq_queue_map {
33414 	unsigned int *mq_map;
33415 	unsigned int nr_queues;
33416 	unsigned int queue_offset;
33417 };
33418 
33419 struct blk_mq_tag_set {
33420 	struct blk_mq_queue_map map[3];
33421 	unsigned int nr_maps;
33422 	const struct blk_mq_ops *ops;
33423 	unsigned int nr_hw_queues;
33424 	unsigned int queue_depth;
33425 	unsigned int reserved_tags;
33426 	unsigned int cmd_size;
33427 	int numa_node;
33428 	unsigned int timeout;
33429 	unsigned int flags;
33430 	void *driver_data;
33431 	struct blk_mq_tags **tags;
33432 	struct blk_mq_tags *shared_tags;
33433 	struct mutex tag_list_lock;
33434 	struct list_head tag_list;
33435 };
33436 
33437 struct blk_mq_queue_data {
33438 	struct request *rq;
33439 	bool last;
33440 };
33441 
33442 enum blktrace_cat {
33443 	BLK_TC_READ = 1,
33444 	BLK_TC_WRITE = 2,
33445 	BLK_TC_FLUSH = 4,
33446 	BLK_TC_SYNC = 8,
33447 	BLK_TC_SYNCIO = 8,
33448 	BLK_TC_QUEUE = 16,
33449 	BLK_TC_REQUEUE = 32,
33450 	BLK_TC_ISSUE = 64,
33451 	BLK_TC_COMPLETE = 128,
33452 	BLK_TC_FS = 256,
33453 	BLK_TC_PC = 512,
33454 	BLK_TC_NOTIFY = 1024,
33455 	BLK_TC_AHEAD = 2048,
33456 	BLK_TC_META = 4096,
33457 	BLK_TC_DISCARD = 8192,
33458 	BLK_TC_DRV_DATA = 16384,
33459 	BLK_TC_FUA = 32768,
33460 	BLK_TC_END = 32768,
33461 };
33462 
33463 enum blktrace_act {
33464 	__BLK_TA_QUEUE = 1,
33465 	__BLK_TA_BACKMERGE = 2,
33466 	__BLK_TA_FRONTMERGE = 3,
33467 	__BLK_TA_GETRQ = 4,
33468 	__BLK_TA_SLEEPRQ = 5,
33469 	__BLK_TA_REQUEUE = 6,
33470 	__BLK_TA_ISSUE = 7,
33471 	__BLK_TA_COMPLETE = 8,
33472 	__BLK_TA_PLUG = 9,
33473 	__BLK_TA_UNPLUG_IO = 10,
33474 	__BLK_TA_UNPLUG_TIMER = 11,
33475 	__BLK_TA_INSERT = 12,
33476 	__BLK_TA_SPLIT = 13,
33477 	__BLK_TA_BOUNCE = 14,
33478 	__BLK_TA_REMAP = 15,
33479 	__BLK_TA_ABORT = 16,
33480 	__BLK_TA_DRV_DATA = 17,
33481 	__BLK_TA_CGROUP = 256,
33482 };
33483 
33484 enum blktrace_notify {
33485 	__BLK_TN_PROCESS = 0,
33486 	__BLK_TN_TIMESTAMP = 1,
33487 	__BLK_TN_MESSAGE = 2,
33488 	__BLK_TN_CGROUP = 256,
33489 };
33490 
33491 struct blk_io_trace {
33492 	__u32 magic;
33493 	__u32 sequence;
33494 	__u64 time;
33495 	__u64 sector;
33496 	__u32 bytes;
33497 	__u32 action;
33498 	__u32 pid;
33499 	__u32 device;
33500 	__u32 cpu;
33501 	__u16 error;
33502 	__u16 pdu_len;
33503 };
33504 
33505 struct blk_io_trace_remap {
33506 	__be32 device_from;
33507 	__be32 device_to;
33508 	__be64 sector_from;
33509 };
33510 
33511 enum {
33512 	Blktrace_setup = 1,
33513 	Blktrace_running = 2,
33514 	Blktrace_stopped = 3,
33515 };
33516 
33517 struct blk_user_trace_setup {
33518 	char name[32];
33519 	__u16 act_mask;
33520 	__u32 buf_size;
33521 	__u32 buf_nr;
33522 	__u64 start_lba;
33523 	__u64 end_lba;
33524 	__u32 pid;
33525 };
33526 
33527 struct blk_crypto_mode {
33528 	const char *cipher_str;
33529 	unsigned int keysize;
33530 	unsigned int ivsize;
33531 };
33532 
33533 typedef void blk_log_action_t(struct trace_iterator *, const char *, bool);
33534 
33535 struct ftrace_event_field {
33536 	struct list_head link;
33537 	const char *name;
33538 	const char *type;
33539 	int filter_type;
33540 	int offset;
33541 	int size;
33542 	int is_signed;
33543 };
33544 
33545 enum {
33546 	FORMAT_HEADER = 1,
33547 	FORMAT_FIELD_SEPERATOR = 2,
33548 	FORMAT_PRINTFMT = 3,
33549 };
33550 
33551 struct event_probe_data {
33552 	struct trace_event_file *file;
33553 	long unsigned int count;
33554 	int ref;
33555 	bool enable;
33556 };
33557 
33558 struct syscall_trace_enter {
33559 	struct trace_entry ent;
33560 	int nr;
33561 	long unsigned int args[0];
33562 };
33563 
33564 struct syscall_trace_exit {
33565 	struct trace_entry ent;
33566 	int nr;
33567 	long int ret;
33568 };
33569 
33570 struct syscall_tp_t {
33571 	long long unsigned int regs;
33572 	long unsigned int syscall_nr;
33573 	long unsigned int ret;
33574 };
33575 
33576 struct syscall_tp_t___2 {
33577 	long long unsigned int regs;
33578 	long unsigned int syscall_nr;
33579 	long unsigned int args[6];
33580 };
33581 
33582 typedef long unsigned int perf_trace_t[1024];
33583 
33584 struct filter_pred;
33585 
33586 struct prog_entry {
33587 	int target;
33588 	int when_to_branch;
33589 	struct filter_pred *pred;
33590 };
33591 
33592 typedef int (*filter_pred_fn_t)(struct filter_pred *, void *);
33593 
33594 struct regex;
33595 
33596 typedef int (*regex_match_func)(char *, struct regex *, int);
33597 
33598 struct regex {
33599 	char pattern[256];
33600 	int len;
33601 	int field_len;
33602 	regex_match_func match;
33603 };
33604 
33605 struct filter_pred {
33606 	filter_pred_fn_t fn;
33607 	u64 val;
33608 	struct regex regex;
33609 	short unsigned int *ops;
33610 	struct ftrace_event_field *field;
33611 	int offset;
33612 	int not;
33613 	int op;
33614 };
33615 
33616 enum filter_op_ids {
33617 	OP_GLOB = 0,
33618 	OP_NE = 1,
33619 	OP_EQ = 2,
33620 	OP_LE = 3,
33621 	OP_LT = 4,
33622 	OP_GE = 5,
33623 	OP_GT = 6,
33624 	OP_BAND = 7,
33625 	OP_MAX = 8,
33626 };
33627 
33628 enum {
33629 	FILT_ERR_NONE = 0,
33630 	FILT_ERR_INVALID_OP = 1,
33631 	FILT_ERR_TOO_MANY_OPEN = 2,
33632 	FILT_ERR_TOO_MANY_CLOSE = 3,
33633 	FILT_ERR_MISSING_QUOTE = 4,
33634 	FILT_ERR_OPERAND_TOO_LONG = 5,
33635 	FILT_ERR_EXPECT_STRING = 6,
33636 	FILT_ERR_EXPECT_DIGIT = 7,
33637 	FILT_ERR_ILLEGAL_FIELD_OP = 8,
33638 	FILT_ERR_FIELD_NOT_FOUND = 9,
33639 	FILT_ERR_ILLEGAL_INTVAL = 10,
33640 	FILT_ERR_BAD_SUBSYS_FILTER = 11,
33641 	FILT_ERR_TOO_MANY_PREDS = 12,
33642 	FILT_ERR_INVALID_FILTER = 13,
33643 	FILT_ERR_IP_FIELD_ONLY = 14,
33644 	FILT_ERR_INVALID_VALUE = 15,
33645 	FILT_ERR_ERRNO = 16,
33646 	FILT_ERR_NO_FILTER = 17,
33647 };
33648 
33649 struct filter_parse_error {
33650 	int lasterr;
33651 	int lasterr_pos;
33652 };
33653 
33654 typedef int (*parse_pred_fn)(const char *, void *, int, struct filter_parse_error *, struct filter_pred **);
33655 
33656 enum {
33657 	INVERT = 1,
33658 	PROCESS_AND = 2,
33659 	PROCESS_OR = 4,
33660 };
33661 
33662 struct ustring_buffer {
33663 	char buffer[1024];
33664 };
33665 
33666 enum {
33667 	TOO_MANY_CLOSE = 4294967295,
33668 	TOO_MANY_OPEN = 4294967294,
33669 	MISSING_QUOTE = 4294967293,
33670 };
33671 
33672 struct filter_list {
33673 	struct list_head list;
33674 	struct event_filter *filter;
33675 };
33676 
33677 struct function_filter_data {
33678 	struct ftrace_ops *ops;
33679 	int first_filter;
33680 	int first_notrace;
33681 };
33682 
33683 enum {
33684 	EVENT_TRIGGER_FL_PROBE = 1,
33685 };
33686 
33687 struct event_trigger_ops;
33688 
33689 struct event_command;
33690 
33691 struct event_trigger_data {
33692 	long unsigned int count;
33693 	int ref;
33694 	int flags;
33695 	struct event_trigger_ops *ops;
33696 	struct event_command *cmd_ops;
33697 	struct event_filter *filter;
33698 	char *filter_str;
33699 	void *private_data;
33700 	bool paused;
33701 	bool paused_tmp;
33702 	struct list_head list;
33703 	char *name;
33704 	struct list_head named_list;
33705 	struct event_trigger_data *named_data;
33706 };
33707 
33708 struct event_trigger_ops {
33709 	void (*trigger)(struct event_trigger_data *, struct trace_buffer *, void *, struct ring_buffer_event *);
33710 	int (*init)(struct event_trigger_ops *, struct event_trigger_data *);
33711 	void (*free)(struct event_trigger_ops *, struct event_trigger_data *);
33712 	int (*print)(struct seq_file *, struct event_trigger_ops *, struct event_trigger_data *);
33713 };
33714 
33715 struct event_command {
33716 	struct list_head list;
33717 	char *name;
33718 	enum event_trigger_type trigger_type;
33719 	int flags;
33720 	int (*parse)(struct event_command *, struct trace_event_file *, char *, char *, char *);
33721 	int (*reg)(char *, struct event_trigger_data *, struct trace_event_file *);
33722 	void (*unreg)(char *, struct event_trigger_data *, struct trace_event_file *);
33723 	void (*unreg_all)(struct trace_event_file *);
33724 	int (*set_filter)(char *, struct event_trigger_data *, struct trace_event_file *);
33725 	struct event_trigger_ops * (*get_trigger_ops)(char *, char *);
33726 };
33727 
33728 struct enable_trigger_data {
33729 	struct trace_event_file *file;
33730 	bool enable;
33731 	bool hist;
33732 };
33733 
33734 enum event_command_flags {
33735 	EVENT_CMD_FL_POST_TRIGGER = 1,
33736 	EVENT_CMD_FL_NEEDS_REC = 2,
33737 };
33738 
33739 struct eprobe_trace_entry_head {
33740 	struct trace_entry ent;
33741 	unsigned int type;
33742 };
33743 
33744 struct dyn_event;
33745 
33746 struct dyn_event_operations {
33747 	struct list_head list;
33748 	int (*create)(const char *);
33749 	int (*show)(struct seq_file *, struct dyn_event *);
33750 	bool (*is_busy)(struct dyn_event *);
33751 	int (*free)(struct dyn_event *);
33752 	bool (*match)(const char *, const char *, int, const char **, struct dyn_event *);
33753 };
33754 
33755 struct dyn_event {
33756 	struct list_head list;
33757 	struct dyn_event_operations *ops;
33758 };
33759 
33760 typedef int (*print_type_func_t)(struct trace_seq *, void *, void *);
33761 
33762 enum fetch_op {
33763 	FETCH_OP_NOP = 0,
33764 	FETCH_OP_REG = 1,
33765 	FETCH_OP_STACK = 2,
33766 	FETCH_OP_STACKP = 3,
33767 	FETCH_OP_RETVAL = 4,
33768 	FETCH_OP_IMM = 5,
33769 	FETCH_OP_COMM = 6,
33770 	FETCH_OP_ARG = 7,
33771 	FETCH_OP_FOFFS = 8,
33772 	FETCH_OP_DATA = 9,
33773 	FETCH_OP_DEREF = 10,
33774 	FETCH_OP_UDEREF = 11,
33775 	FETCH_OP_ST_RAW = 12,
33776 	FETCH_OP_ST_MEM = 13,
33777 	FETCH_OP_ST_UMEM = 14,
33778 	FETCH_OP_ST_STRING = 15,
33779 	FETCH_OP_ST_USTRING = 16,
33780 	FETCH_OP_MOD_BF = 17,
33781 	FETCH_OP_LP_ARRAY = 18,
33782 	FETCH_OP_TP_ARG = 19,
33783 	FETCH_OP_END = 20,
33784 	FETCH_NOP_SYMBOL = 21,
33785 };
33786 
33787 struct fetch_insn {
33788 	enum fetch_op op;
33789 	union {
33790 		unsigned int param;
33791 		struct {
33792 			unsigned int size;
33793 			int offset;
33794 		};
33795 		struct {
33796 			unsigned char basesize;
33797 			unsigned char lshift;
33798 			unsigned char rshift;
33799 		};
33800 		long unsigned int immediate;
33801 		void *data;
33802 	};
33803 };
33804 
33805 struct fetch_type {
33806 	const char *name;
33807 	size_t size;
33808 	int is_signed;
33809 	print_type_func_t print;
33810 	const char *fmt;
33811 	const char *fmttype;
33812 };
33813 
33814 struct probe_arg {
33815 	struct fetch_insn *code;
33816 	bool dynamic;
33817 	unsigned int offset;
33818 	unsigned int count;
33819 	const char *name;
33820 	const char *comm;
33821 	char *fmt;
33822 	const struct fetch_type *type;
33823 };
33824 
33825 struct trace_uprobe_filter {
33826 	rwlock_t rwlock;
33827 	int nr_systemwide;
33828 	struct list_head perf_events;
33829 };
33830 
33831 struct trace_probe_event {
33832 	unsigned int flags;
33833 	struct trace_event_class class;
33834 	struct trace_event_call call;
33835 	struct list_head files;
33836 	struct list_head probes;
33837 	struct trace_uprobe_filter filter[0];
33838 };
33839 
33840 struct trace_probe {
33841 	struct list_head list;
33842 	struct trace_probe_event *event;
33843 	ssize_t size;
33844 	unsigned int nr_args;
33845 	struct probe_arg args[0];
33846 };
33847 
33848 enum probe_print_type {
33849 	PROBE_PRINT_NORMAL = 0,
33850 	PROBE_PRINT_RETURN = 1,
33851 	PROBE_PRINT_EVENT = 2,
33852 };
33853 
33854 enum {
33855 	TP_ERR_FILE_NOT_FOUND = 0,
33856 	TP_ERR_NO_REGULAR_FILE = 1,
33857 	TP_ERR_BAD_REFCNT = 2,
33858 	TP_ERR_REFCNT_OPEN_BRACE = 3,
33859 	TP_ERR_BAD_REFCNT_SUFFIX = 4,
33860 	TP_ERR_BAD_UPROBE_OFFS = 5,
33861 	TP_ERR_MAXACT_NO_KPROBE = 6,
33862 	TP_ERR_BAD_MAXACT = 7,
33863 	TP_ERR_MAXACT_TOO_BIG = 8,
33864 	TP_ERR_BAD_PROBE_ADDR = 9,
33865 	TP_ERR_BAD_RETPROBE = 10,
33866 	TP_ERR_BAD_ADDR_SUFFIX = 11,
33867 	TP_ERR_NO_GROUP_NAME = 12,
33868 	TP_ERR_GROUP_TOO_LONG = 13,
33869 	TP_ERR_BAD_GROUP_NAME = 14,
33870 	TP_ERR_NO_EVENT_NAME = 15,
33871 	TP_ERR_EVENT_TOO_LONG = 16,
33872 	TP_ERR_BAD_EVENT_NAME = 17,
33873 	TP_ERR_EVENT_EXIST = 18,
33874 	TP_ERR_RETVAL_ON_PROBE = 19,
33875 	TP_ERR_BAD_STACK_NUM = 20,
33876 	TP_ERR_BAD_ARG_NUM = 21,
33877 	TP_ERR_BAD_VAR = 22,
33878 	TP_ERR_BAD_REG_NAME = 23,
33879 	TP_ERR_BAD_MEM_ADDR = 24,
33880 	TP_ERR_BAD_IMM = 25,
33881 	TP_ERR_IMMSTR_NO_CLOSE = 26,
33882 	TP_ERR_FILE_ON_KPROBE = 27,
33883 	TP_ERR_BAD_FILE_OFFS = 28,
33884 	TP_ERR_SYM_ON_UPROBE = 29,
33885 	TP_ERR_TOO_MANY_OPS = 30,
33886 	TP_ERR_DEREF_NEED_BRACE = 31,
33887 	TP_ERR_BAD_DEREF_OFFS = 32,
33888 	TP_ERR_DEREF_OPEN_BRACE = 33,
33889 	TP_ERR_COMM_CANT_DEREF = 34,
33890 	TP_ERR_BAD_FETCH_ARG = 35,
33891 	TP_ERR_ARRAY_NO_CLOSE = 36,
33892 	TP_ERR_BAD_ARRAY_SUFFIX = 37,
33893 	TP_ERR_BAD_ARRAY_NUM = 38,
33894 	TP_ERR_ARRAY_TOO_BIG = 39,
33895 	TP_ERR_BAD_TYPE = 40,
33896 	TP_ERR_BAD_STRING = 41,
33897 	TP_ERR_BAD_BITFIELD = 42,
33898 	TP_ERR_ARG_NAME_TOO_LONG = 43,
33899 	TP_ERR_NO_ARG_NAME = 44,
33900 	TP_ERR_BAD_ARG_NAME = 45,
33901 	TP_ERR_USED_ARG_NAME = 46,
33902 	TP_ERR_ARG_TOO_LONG = 47,
33903 	TP_ERR_NO_ARG_BODY = 48,
33904 	TP_ERR_BAD_INSN_BNDRY = 49,
33905 	TP_ERR_FAIL_REG_PROBE = 50,
33906 	TP_ERR_DIFF_PROBE_TYPE = 51,
33907 	TP_ERR_DIFF_ARG_TYPE = 52,
33908 	TP_ERR_SAME_PROBE = 53,
33909 };
33910 
33911 struct trace_eprobe {
33912 	const char *event_system;
33913 	const char *event_name;
33914 	struct trace_event_call *event;
33915 	struct dyn_event devent;
33916 	struct trace_probe tp;
33917 };
33918 
33919 struct eprobe_data {
33920 	struct trace_event_file *file;
33921 	struct trace_eprobe *ep;
33922 };
33923 
33924 enum {
33925 	BPF_F_INDEX_MASK = 4294967295,
33926 	BPF_F_CURRENT_CPU = 4294967295,
33927 	BPF_F_CTXLEN_MASK = 0,
33928 };
33929 
33930 enum {
33931 	BPF_F_GET_BRANCH_RECORDS_SIZE = 1,
33932 };
33933 
33934 struct bpf_perf_event_value {
33935 	__u64 counter;
33936 	__u64 enabled;
33937 	__u64 running;
33938 };
33939 
33940 struct bpf_raw_tracepoint_args {
33941 	__u64 args[0];
33942 };
33943 
33944 enum bpf_task_fd_type {
33945 	BPF_FD_TYPE_RAW_TRACEPOINT = 0,
33946 	BPF_FD_TYPE_TRACEPOINT = 1,
33947 	BPF_FD_TYPE_KPROBE = 2,
33948 	BPF_FD_TYPE_KRETPROBE = 3,
33949 	BPF_FD_TYPE_UPROBE = 4,
33950 	BPF_FD_TYPE_URETPROBE = 5,
33951 };
33952 
33953 struct btf_ptr {
33954 	void *ptr;
33955 	__u32 type_id;
33956 	__u32 flags;
33957 };
33958 
33959 enum {
33960 	BTF_F_COMPACT = 1,
33961 	BTF_F_NONAME = 2,
33962 	BTF_F_PTR_RAW = 4,
33963 	BTF_F_ZERO = 8,
33964 };
33965 
33966 struct bpf_local_storage_data;
33967 
33968 struct bpf_local_storage {
33969 	struct bpf_local_storage_data *cache[16];
33970 	struct hlist_head list;
33971 	void *owner;
33972 	struct callback_head rcu;
33973 	raw_spinlock_t lock;
33974 };
33975 
33976 struct bpf_local_storage_map_bucket;
33977 
33978 struct bpf_local_storage_map {
33979 	struct bpf_map map;
33980 	struct bpf_local_storage_map_bucket *buckets;
33981 	u32 bucket_log;
33982 	u16 elem_size;
33983 	u16 cache_idx;
33984 	long: 64;
33985 	long: 64;
33986 	long: 64;
33987 	long: 64;
33988 	long: 64;
33989 	long: 64;
33990 };
33991 
33992 struct bpf_event_entry {
33993 	struct perf_event *event;
33994 	struct file *perf_file;
33995 	struct file *map_file;
33996 	struct callback_head rcu;
33997 };
33998 
33999 typedef long unsigned int (*bpf_ctx_copy_t)(void *, const void *, long unsigned int, long unsigned int);
34000 
34001 struct bpf_trace_run_ctx {
34002 	struct bpf_run_ctx run_ctx;
34003 	u64 bpf_cookie;
34004 };
34005 
34006 typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *, const void *);
34007 
34008 typedef struct pt_regs bpf_user_pt_regs_t;
34009 
34010 struct bpf_perf_event_data {
34011 	bpf_user_pt_regs_t regs;
34012 	__u64 sample_period;
34013 	__u64 addr;
34014 };
34015 
34016 struct btf_id_set {
34017 	u32 cnt;
34018 	u32 ids[0];
34019 };
34020 
34021 struct perf_event_query_bpf {
34022 	__u32 ids_len;
34023 	__u32 prog_cnt;
34024 	__u32 ids[0];
34025 };
34026 
34027 struct bpf_perf_event_data_kern {
34028 	bpf_user_pt_regs_t *regs;
34029 	struct perf_sample_data *data;
34030 	struct perf_event *event;
34031 };
34032 
34033 enum {
34034 	BTF_TRACING_TYPE_TASK = 0,
34035 	BTF_TRACING_TYPE_FILE = 1,
34036 	BTF_TRACING_TYPE_VMA = 2,
34037 	MAX_BTF_TRACING_TYPE = 3,
34038 };
34039 
34040 struct security_hook_heads {
34041 	struct hlist_head binder_set_context_mgr;
34042 	struct hlist_head binder_transaction;
34043 	struct hlist_head binder_transfer_binder;
34044 	struct hlist_head binder_transfer_file;
34045 	struct hlist_head ptrace_access_check;
34046 	struct hlist_head ptrace_traceme;
34047 	struct hlist_head capget;
34048 	struct hlist_head capset;
34049 	struct hlist_head capable;
34050 	struct hlist_head quotactl;
34051 	struct hlist_head quota_on;
34052 	struct hlist_head syslog;
34053 	struct hlist_head settime;
34054 	struct hlist_head vm_enough_memory;
34055 	struct hlist_head bprm_creds_for_exec;
34056 	struct hlist_head bprm_creds_from_file;
34057 	struct hlist_head bprm_check_security;
34058 	struct hlist_head bprm_committing_creds;
34059 	struct hlist_head bprm_committed_creds;
34060 	struct hlist_head fs_context_dup;
34061 	struct hlist_head fs_context_parse_param;
34062 	struct hlist_head sb_alloc_security;
34063 	struct hlist_head sb_delete;
34064 	struct hlist_head sb_free_security;
34065 	struct hlist_head sb_free_mnt_opts;
34066 	struct hlist_head sb_eat_lsm_opts;
34067 	struct hlist_head sb_mnt_opts_compat;
34068 	struct hlist_head sb_remount;
34069 	struct hlist_head sb_kern_mount;
34070 	struct hlist_head sb_show_options;
34071 	struct hlist_head sb_statfs;
34072 	struct hlist_head sb_mount;
34073 	struct hlist_head sb_umount;
34074 	struct hlist_head sb_pivotroot;
34075 	struct hlist_head sb_set_mnt_opts;
34076 	struct hlist_head sb_clone_mnt_opts;
34077 	struct hlist_head move_mount;
34078 	struct hlist_head dentry_init_security;
34079 	struct hlist_head dentry_create_files_as;
34080 	struct hlist_head path_notify;
34081 	struct hlist_head inode_alloc_security;
34082 	struct hlist_head inode_free_security;
34083 	struct hlist_head inode_init_security;
34084 	struct hlist_head inode_init_security_anon;
34085 	struct hlist_head inode_create;
34086 	struct hlist_head inode_link;
34087 	struct hlist_head inode_unlink;
34088 	struct hlist_head inode_symlink;
34089 	struct hlist_head inode_mkdir;
34090 	struct hlist_head inode_rmdir;
34091 	struct hlist_head inode_mknod;
34092 	struct hlist_head inode_rename;
34093 	struct hlist_head inode_readlink;
34094 	struct hlist_head inode_follow_link;
34095 	struct hlist_head inode_permission;
34096 	struct hlist_head inode_setattr;
34097 	struct hlist_head inode_getattr;
34098 	struct hlist_head inode_setxattr;
34099 	struct hlist_head inode_post_setxattr;
34100 	struct hlist_head inode_getxattr;
34101 	struct hlist_head inode_listxattr;
34102 	struct hlist_head inode_removexattr;
34103 	struct hlist_head inode_need_killpriv;
34104 	struct hlist_head inode_killpriv;
34105 	struct hlist_head inode_getsecurity;
34106 	struct hlist_head inode_setsecurity;
34107 	struct hlist_head inode_listsecurity;
34108 	struct hlist_head inode_getsecid;
34109 	struct hlist_head inode_copy_up;
34110 	struct hlist_head inode_copy_up_xattr;
34111 	struct hlist_head kernfs_init_security;
34112 	struct hlist_head file_permission;
34113 	struct hlist_head file_alloc_security;
34114 	struct hlist_head file_free_security;
34115 	struct hlist_head file_ioctl;
34116 	struct hlist_head mmap_addr;
34117 	struct hlist_head mmap_file;
34118 	struct hlist_head file_mprotect;
34119 	struct hlist_head file_lock;
34120 	struct hlist_head file_fcntl;
34121 	struct hlist_head file_set_fowner;
34122 	struct hlist_head file_send_sigiotask;
34123 	struct hlist_head file_receive;
34124 	struct hlist_head file_open;
34125 	struct hlist_head task_alloc;
34126 	struct hlist_head task_free;
34127 	struct hlist_head cred_alloc_blank;
34128 	struct hlist_head cred_free;
34129 	struct hlist_head cred_prepare;
34130 	struct hlist_head cred_transfer;
34131 	struct hlist_head cred_getsecid;
34132 	struct hlist_head kernel_act_as;
34133 	struct hlist_head kernel_create_files_as;
34134 	struct hlist_head kernel_module_request;
34135 	struct hlist_head kernel_load_data;
34136 	struct hlist_head kernel_post_load_data;
34137 	struct hlist_head kernel_read_file;
34138 	struct hlist_head kernel_post_read_file;
34139 	struct hlist_head task_fix_setuid;
34140 	struct hlist_head task_fix_setgid;
34141 	struct hlist_head task_setpgid;
34142 	struct hlist_head task_getpgid;
34143 	struct hlist_head task_getsid;
34144 	struct hlist_head current_getsecid_subj;
34145 	struct hlist_head task_getsecid_obj;
34146 	struct hlist_head task_setnice;
34147 	struct hlist_head task_setioprio;
34148 	struct hlist_head task_getioprio;
34149 	struct hlist_head task_prlimit;
34150 	struct hlist_head task_setrlimit;
34151 	struct hlist_head task_setscheduler;
34152 	struct hlist_head task_getscheduler;
34153 	struct hlist_head task_movememory;
34154 	struct hlist_head task_kill;
34155 	struct hlist_head task_prctl;
34156 	struct hlist_head task_to_inode;
34157 	struct hlist_head ipc_permission;
34158 	struct hlist_head ipc_getsecid;
34159 	struct hlist_head msg_msg_alloc_security;
34160 	struct hlist_head msg_msg_free_security;
34161 	struct hlist_head msg_queue_alloc_security;
34162 	struct hlist_head msg_queue_free_security;
34163 	struct hlist_head msg_queue_associate;
34164 	struct hlist_head msg_queue_msgctl;
34165 	struct hlist_head msg_queue_msgsnd;
34166 	struct hlist_head msg_queue_msgrcv;
34167 	struct hlist_head shm_alloc_security;
34168 	struct hlist_head shm_free_security;
34169 	struct hlist_head shm_associate;
34170 	struct hlist_head shm_shmctl;
34171 	struct hlist_head shm_shmat;
34172 	struct hlist_head sem_alloc_security;
34173 	struct hlist_head sem_free_security;
34174 	struct hlist_head sem_associate;
34175 	struct hlist_head sem_semctl;
34176 	struct hlist_head sem_semop;
34177 	struct hlist_head netlink_send;
34178 	struct hlist_head d_instantiate;
34179 	struct hlist_head getprocattr;
34180 	struct hlist_head setprocattr;
34181 	struct hlist_head ismaclabel;
34182 	struct hlist_head secid_to_secctx;
34183 	struct hlist_head secctx_to_secid;
34184 	struct hlist_head release_secctx;
34185 	struct hlist_head inode_invalidate_secctx;
34186 	struct hlist_head inode_notifysecctx;
34187 	struct hlist_head inode_setsecctx;
34188 	struct hlist_head inode_getsecctx;
34189 	struct hlist_head unix_stream_connect;
34190 	struct hlist_head unix_may_send;
34191 	struct hlist_head socket_create;
34192 	struct hlist_head socket_post_create;
34193 	struct hlist_head socket_socketpair;
34194 	struct hlist_head socket_bind;
34195 	struct hlist_head socket_connect;
34196 	struct hlist_head socket_listen;
34197 	struct hlist_head socket_accept;
34198 	struct hlist_head socket_sendmsg;
34199 	struct hlist_head socket_recvmsg;
34200 	struct hlist_head socket_getsockname;
34201 	struct hlist_head socket_getpeername;
34202 	struct hlist_head socket_getsockopt;
34203 	struct hlist_head socket_setsockopt;
34204 	struct hlist_head socket_shutdown;
34205 	struct hlist_head socket_sock_rcv_skb;
34206 	struct hlist_head socket_getpeersec_stream;
34207 	struct hlist_head socket_getpeersec_dgram;
34208 	struct hlist_head sk_alloc_security;
34209 	struct hlist_head sk_free_security;
34210 	struct hlist_head sk_clone_security;
34211 	struct hlist_head sk_getsecid;
34212 	struct hlist_head sock_graft;
34213 	struct hlist_head inet_conn_request;
34214 	struct hlist_head inet_csk_clone;
34215 	struct hlist_head inet_conn_established;
34216 	struct hlist_head secmark_relabel_packet;
34217 	struct hlist_head secmark_refcount_inc;
34218 	struct hlist_head secmark_refcount_dec;
34219 	struct hlist_head req_classify_flow;
34220 	struct hlist_head tun_dev_alloc_security;
34221 	struct hlist_head tun_dev_free_security;
34222 	struct hlist_head tun_dev_create;
34223 	struct hlist_head tun_dev_attach_queue;
34224 	struct hlist_head tun_dev_attach;
34225 	struct hlist_head tun_dev_open;
34226 	struct hlist_head sctp_assoc_request;
34227 	struct hlist_head sctp_bind_connect;
34228 	struct hlist_head sctp_sk_clone;
34229 	struct hlist_head key_alloc;
34230 	struct hlist_head key_free;
34231 	struct hlist_head key_permission;
34232 	struct hlist_head key_getsecurity;
34233 	struct hlist_head audit_rule_init;
34234 	struct hlist_head audit_rule_known;
34235 	struct hlist_head audit_rule_match;
34236 	struct hlist_head audit_rule_free;
34237 	struct hlist_head bpf;
34238 	struct hlist_head bpf_map;
34239 	struct hlist_head bpf_prog;
34240 	struct hlist_head bpf_map_alloc_security;
34241 	struct hlist_head bpf_map_free_security;
34242 	struct hlist_head bpf_prog_alloc_security;
34243 	struct hlist_head bpf_prog_free_security;
34244 	struct hlist_head locked_down;
34245 	struct hlist_head perf_event_open;
34246 	struct hlist_head perf_event_alloc;
34247 	struct hlist_head perf_event_free;
34248 	struct hlist_head perf_event_read;
34249 	struct hlist_head perf_event_write;
34250 	struct hlist_head uring_override_creds;
34251 	struct hlist_head uring_sqpoll;
34252 };
34253 
34254 struct lsm_blob_sizes {
34255 	int lbs_cred;
34256 	int lbs_file;
34257 	int lbs_inode;
34258 	int lbs_superblock;
34259 	int lbs_ipc;
34260 	int lbs_msg_msg;
34261 	int lbs_task;
34262 };
34263 
34264 enum lsm_order {
34265 	LSM_ORDER_FIRST = 4294967295,
34266 	LSM_ORDER_MUTABLE = 0,
34267 };
34268 
34269 struct lsm_info {
34270 	const char *name;
34271 	enum lsm_order order;
34272 	long unsigned int flags;
34273 	int *enabled;
34274 	int (*init)();
34275 	struct lsm_blob_sizes *blobs;
34276 };
34277 
34278 struct bpf_local_storage_map_bucket {
34279 	struct hlist_head list;
34280 	raw_spinlock_t lock;
34281 };
34282 
34283 struct bpf_local_storage_data {
34284 	struct bpf_local_storage_map *smap;
34285 	u8 data[0];
34286 };
34287 
34288 struct trace_event_raw_bpf_trace_printk {
34289 	struct trace_entry ent;
34290 	u32 __data_loc_bpf_string;
34291 	char __data[0];
34292 };
34293 
34294 struct trace_event_data_offsets_bpf_trace_printk {
34295 	u32 bpf_string;
34296 };
34297 
34298 typedef void (*btf_trace_bpf_trace_printk)(void *, const char *);
34299 
34300 struct bpf_trace_module {
34301 	struct module *module;
34302 	struct list_head list;
34303 };
34304 
34305 typedef u64 (*btf_bpf_override_return)(struct pt_regs *, long unsigned int);
34306 
34307 typedef u64 (*btf_bpf_probe_read_user)(void *, u32, const void *);
34308 
34309 typedef u64 (*btf_bpf_probe_read_user_str)(void *, u32, const void *);
34310 
34311 typedef u64 (*btf_bpf_probe_read_kernel)(void *, u32, const void *);
34312 
34313 typedef u64 (*btf_bpf_probe_read_kernel_str)(void *, u32, const void *);
34314 
34315 typedef u64 (*btf_bpf_probe_read_compat)(void *, u32, const void *);
34316 
34317 typedef u64 (*btf_bpf_probe_read_compat_str)(void *, u32, const void *);
34318 
34319 typedef u64 (*btf_bpf_probe_write_user)(void *, const void *, u32);
34320 
34321 typedef u64 (*btf_bpf_trace_printk)(char *, u32, u64, u64, u64);
34322 
34323 typedef u64 (*btf_bpf_trace_vprintk)(char *, u32, const void *, u32);
34324 
34325 typedef u64 (*btf_bpf_seq_printf)(struct seq_file *, char *, u32, const void *, u32);
34326 
34327 typedef u64 (*btf_bpf_seq_write)(struct seq_file *, const void *, u32);
34328 
34329 typedef u64 (*btf_bpf_seq_printf_btf)(struct seq_file *, struct btf_ptr *, u32, u64);
34330 
34331 typedef u64 (*btf_bpf_perf_event_read)(struct bpf_map *, u64);
34332 
34333 typedef u64 (*btf_bpf_perf_event_read_value)(struct bpf_map *, u64, struct bpf_perf_event_value *, u32);
34334 
34335 struct bpf_trace_sample_data {
34336 	struct perf_sample_data sds[3];
34337 };
34338 
34339 typedef u64 (*btf_bpf_perf_event_output)(struct pt_regs *, struct bpf_map *, u64, void *, u64);
34340 
34341 struct bpf_nested_pt_regs {
34342 	struct pt_regs regs[3];
34343 };
34344 
34345 typedef u64 (*btf_bpf_get_current_task)();
34346 
34347 typedef u64 (*btf_bpf_get_current_task_btf)();
34348 
34349 typedef u64 (*btf_bpf_task_pt_regs)(struct task_struct *);
34350 
34351 typedef u64 (*btf_bpf_current_task_under_cgroup)(struct bpf_map *, u32);
34352 
34353 struct send_signal_irq_work {
34354 	struct irq_work irq_work;
34355 	struct task_struct *task;
34356 	u32 sig;
34357 	enum pid_type type;
34358 };
34359 
34360 typedef u64 (*btf_bpf_send_signal)(u32);
34361 
34362 typedef u64 (*btf_bpf_send_signal_thread)(u32);
34363 
34364 typedef u64 (*btf_bpf_d_path)(struct path *, char *, u32);
34365 
34366 typedef u64 (*btf_bpf_snprintf_btf)(char *, u32, struct btf_ptr *, u32, u64);
34367 
34368 typedef u64 (*btf_bpf_get_func_ip_tracing)(void *);
34369 
34370 typedef u64 (*btf_bpf_get_func_ip_kprobe)(struct pt_regs *);
34371 
34372 typedef u64 (*btf_bpf_get_attach_cookie_trace)(void *);
34373 
34374 typedef u64 (*btf_bpf_get_attach_cookie_pe)(struct bpf_perf_event_data_kern *);
34375 
34376 typedef u64 (*btf_bpf_get_branch_snapshot)(void *, u32, u64);
34377 
34378 typedef u64 (*btf_get_func_arg)(void *, u32, u64 *);
34379 
34380 typedef u64 (*btf_get_func_ret)(void *, u64 *);
34381 
34382 typedef u64 (*btf_get_func_arg_cnt)(void *);
34383 
34384 typedef u64 (*btf_bpf_perf_event_output_tp)(void *, struct bpf_map *, u64, void *, u64);
34385 
34386 typedef u64 (*btf_bpf_get_stackid_tp)(void *, struct bpf_map *, u64);
34387 
34388 typedef u64 (*btf_bpf_get_stack_tp)(void *, void *, u32, u64);
34389 
34390 typedef u64 (*btf_bpf_perf_prog_read_value)(struct bpf_perf_event_data_kern *, struct bpf_perf_event_value *, u32);
34391 
34392 typedef u64 (*btf_bpf_read_branch_records)(struct bpf_perf_event_data_kern *, void *, u32, u64);
34393 
34394 struct bpf_raw_tp_regs {
34395 	struct pt_regs regs[3];
34396 };
34397 
34398 typedef u64 (*btf_bpf_perf_event_output_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64, void *, u64);
34399 
34400 typedef u64 (*btf_bpf_get_stackid_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64);
34401 
34402 typedef u64 (*btf_bpf_get_stack_raw_tp)(struct bpf_raw_tracepoint_args *, void *, u32, u64);
34403 
34404 enum dynevent_type {
34405 	DYNEVENT_TYPE_SYNTH = 1,
34406 	DYNEVENT_TYPE_KPROBE = 2,
34407 	DYNEVENT_TYPE_NONE = 3,
34408 };
34409 
34410 struct dynevent_cmd;
34411 
34412 typedef int (*dynevent_create_fn_t)(struct dynevent_cmd *);
34413 
34414 struct dynevent_cmd {
34415 	struct seq_buf seq;
34416 	const char *event_name;
34417 	unsigned int n_fields;
34418 	enum dynevent_type type;
34419 	dynevent_create_fn_t run_command;
34420 	void *private_data;
34421 };
34422 
34423 struct kprobe_trace_entry_head {
34424 	struct trace_entry ent;
34425 	long unsigned int ip;
34426 };
34427 
34428 struct kretprobe_trace_entry_head {
34429 	struct trace_entry ent;
34430 	long unsigned int func;
34431 	long unsigned int ret_ip;
34432 };
34433 
34434 struct dynevent_arg {
34435 	const char *str;
34436 	char separator;
34437 };
34438 
34439 struct event_file_link {
34440 	struct trace_event_file *file;
34441 	struct list_head list;
34442 };
34443 
34444 struct trace_kprobe {
34445 	struct dyn_event devent;
34446 	struct kretprobe rp;
34447 	long unsigned int *nhit;
34448 	const char *symbol;
34449 	struct trace_probe tp;
34450 };
34451 
34452 struct trace_event_raw_error_report_template {
34453 	struct trace_entry ent;
34454 	enum error_detector error_detector;
34455 	long unsigned int id;
34456 	char __data[0];
34457 };
34458 
34459 struct trace_event_data_offsets_error_report_template {};
34460 
34461 typedef void (*btf_trace_error_report_end)(void *, enum error_detector, long unsigned int);
34462 
34463 struct trace_event_raw_cpu {
34464 	struct trace_entry ent;
34465 	u32 state;
34466 	u32 cpu_id;
34467 	char __data[0];
34468 };
34469 
34470 struct trace_event_raw_powernv_throttle {
34471 	struct trace_entry ent;
34472 	int chip_id;
34473 	u32 __data_loc_reason;
34474 	int pmax;
34475 	char __data[0];
34476 };
34477 
34478 struct trace_event_raw_pstate_sample {
34479 	struct trace_entry ent;
34480 	u32 core_busy;
34481 	u32 scaled_busy;
34482 	u32 from;
34483 	u32 to;
34484 	u64 mperf;
34485 	u64 aperf;
34486 	u64 tsc;
34487 	u32 freq;
34488 	u32 io_boost;
34489 	char __data[0];
34490 };
34491 
34492 struct trace_event_raw_cpu_frequency_limits {
34493 	struct trace_entry ent;
34494 	u32 min_freq;
34495 	u32 max_freq;
34496 	u32 cpu_id;
34497 	char __data[0];
34498 };
34499 
34500 struct trace_event_raw_device_pm_callback_start {
34501 	struct trace_entry ent;
34502 	u32 __data_loc_device;
34503 	u32 __data_loc_driver;
34504 	u32 __data_loc_parent;
34505 	u32 __data_loc_pm_ops;
34506 	int event;
34507 	char __data[0];
34508 };
34509 
34510 struct trace_event_raw_device_pm_callback_end {
34511 	struct trace_entry ent;
34512 	u32 __data_loc_device;
34513 	u32 __data_loc_driver;
34514 	int error;
34515 	char __data[0];
34516 };
34517 
34518 struct trace_event_raw_suspend_resume {
34519 	struct trace_entry ent;
34520 	const char *action;
34521 	int val;
34522 	bool start;
34523 	char __data[0];
34524 };
34525 
34526 struct trace_event_raw_wakeup_source {
34527 	struct trace_entry ent;
34528 	u32 __data_loc_name;
34529 	u64 state;
34530 	char __data[0];
34531 };
34532 
34533 struct trace_event_raw_clock {
34534 	struct trace_entry ent;
34535 	u32 __data_loc_name;
34536 	u64 state;
34537 	u64 cpu_id;
34538 	char __data[0];
34539 };
34540 
34541 struct trace_event_raw_power_domain {
34542 	struct trace_entry ent;
34543 	u32 __data_loc_name;
34544 	u64 state;
34545 	u64 cpu_id;
34546 	char __data[0];
34547 };
34548 
34549 struct trace_event_raw_cpu_latency_qos_request {
34550 	struct trace_entry ent;
34551 	s32 value;
34552 	char __data[0];
34553 };
34554 
34555 struct trace_event_raw_pm_qos_update {
34556 	struct trace_entry ent;
34557 	enum pm_qos_req_action action;
34558 	int prev_value;
34559 	int curr_value;
34560 	char __data[0];
34561 };
34562 
34563 struct trace_event_raw_dev_pm_qos_request {
34564 	struct trace_entry ent;
34565 	u32 __data_loc_name;
34566 	enum dev_pm_qos_req_type type;
34567 	s32 new_value;
34568 	char __data[0];
34569 };
34570 
34571 struct trace_event_data_offsets_cpu {};
34572 
34573 struct trace_event_data_offsets_powernv_throttle {
34574 	u32 reason;
34575 };
34576 
34577 struct trace_event_data_offsets_pstate_sample {};
34578 
34579 struct trace_event_data_offsets_cpu_frequency_limits {};
34580 
34581 struct trace_event_data_offsets_device_pm_callback_start {
34582 	u32 device;
34583 	u32 driver;
34584 	u32 parent;
34585 	u32 pm_ops;
34586 };
34587 
34588 struct trace_event_data_offsets_device_pm_callback_end {
34589 	u32 device;
34590 	u32 driver;
34591 };
34592 
34593 struct trace_event_data_offsets_suspend_resume {};
34594 
34595 struct trace_event_data_offsets_wakeup_source {
34596 	u32 name;
34597 };
34598 
34599 struct trace_event_data_offsets_clock {
34600 	u32 name;
34601 };
34602 
34603 struct trace_event_data_offsets_power_domain {
34604 	u32 name;
34605 };
34606 
34607 struct trace_event_data_offsets_cpu_latency_qos_request {};
34608 
34609 struct trace_event_data_offsets_pm_qos_update {};
34610 
34611 struct trace_event_data_offsets_dev_pm_qos_request {
34612 	u32 name;
34613 };
34614 
34615 typedef void (*btf_trace_cpu_idle)(void *, unsigned int, unsigned int);
34616 
34617 typedef void (*btf_trace_powernv_throttle)(void *, int, const char *, int);
34618 
34619 typedef void (*btf_trace_pstate_sample)(void *, u32, u32, u32, u32, u64, u64, u64, u32, u32);
34620 
34621 typedef void (*btf_trace_cpu_frequency)(void *, unsigned int, unsigned int);
34622 
34623 typedef void (*btf_trace_cpu_frequency_limits)(void *, struct cpufreq_policy *);
34624 
34625 typedef void (*btf_trace_device_pm_callback_start)(void *, struct device *, const char *, int);
34626 
34627 typedef void (*btf_trace_device_pm_callback_end)(void *, struct device *, int);
34628 
34629 typedef void (*btf_trace_suspend_resume)(void *, const char *, int, bool);
34630 
34631 typedef void (*btf_trace_wakeup_source_activate)(void *, const char *, unsigned int);
34632 
34633 typedef void (*btf_trace_wakeup_source_deactivate)(void *, const char *, unsigned int);
34634 
34635 typedef void (*btf_trace_clock_enable)(void *, const char *, unsigned int, unsigned int);
34636 
34637 typedef void (*btf_trace_clock_disable)(void *, const char *, unsigned int, unsigned int);
34638 
34639 typedef void (*btf_trace_clock_set_rate)(void *, const char *, unsigned int, unsigned int);
34640 
34641 typedef void (*btf_trace_power_domain_target)(void *, const char *, unsigned int, unsigned int);
34642 
34643 typedef void (*btf_trace_pm_qos_add_request)(void *, s32);
34644 
34645 typedef void (*btf_trace_pm_qos_update_request)(void *, s32);
34646 
34647 typedef void (*btf_trace_pm_qos_remove_request)(void *, s32);
34648 
34649 typedef void (*btf_trace_pm_qos_update_target)(void *, enum pm_qos_req_action, int, int);
34650 
34651 typedef void (*btf_trace_pm_qos_update_flags)(void *, enum pm_qos_req_action, int, int);
34652 
34653 typedef void (*btf_trace_dev_pm_qos_add_request)(void *, const char *, enum dev_pm_qos_req_type, s32);
34654 
34655 typedef void (*btf_trace_dev_pm_qos_update_request)(void *, const char *, enum dev_pm_qos_req_type, s32);
34656 
34657 typedef void (*btf_trace_dev_pm_qos_remove_request)(void *, const char *, enum dev_pm_qos_req_type, s32);
34658 
34659 typedef int (*dynevent_check_arg_fn_t)(void *);
34660 
34661 struct dynevent_arg_pair {
34662 	const char *lhs;
34663 	const char *rhs;
34664 	char operator;
34665 	char separator;
34666 };
34667 
34668 struct trace_probe_log {
34669 	const char *subsystem;
34670 	const char **argv;
34671 	int argc;
34672 	int index;
34673 };
34674 
34675 enum uprobe_filter_ctx {
34676 	UPROBE_FILTER_REGISTER = 0,
34677 	UPROBE_FILTER_UNREGISTER = 1,
34678 	UPROBE_FILTER_MMAP = 2,
34679 };
34680 
34681 struct uprobe_consumer {
34682 	int (*handler)(struct uprobe_consumer *, struct pt_regs *);
34683 	int (*ret_handler)(struct uprobe_consumer *, long unsigned int, struct pt_regs *);
34684 	bool (*filter)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *);
34685 	struct uprobe_consumer *next;
34686 };
34687 
34688 struct uprobe_trace_entry_head {
34689 	struct trace_entry ent;
34690 	long unsigned int vaddr[0];
34691 };
34692 
34693 struct trace_uprobe {
34694 	struct dyn_event devent;
34695 	struct uprobe_consumer consumer;
34696 	struct path path;
34697 	struct inode *inode;
34698 	char *filename;
34699 	long unsigned int offset;
34700 	long unsigned int ref_ctr_offset;
34701 	long unsigned int nhit;
34702 	struct trace_probe tp;
34703 };
34704 
34705 struct uprobe_dispatch_data {
34706 	struct trace_uprobe *tu;
34707 	long unsigned int bp_addr;
34708 };
34709 
34710 struct uprobe_cpu_buffer {
34711 	struct mutex mutex;
34712 	void *buf;
34713 };
34714 
34715 typedef bool (*filter_func_t)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *);
34716 
34717 enum xdp_action {
34718 	XDP_ABORTED = 0,
34719 	XDP_DROP = 1,
34720 	XDP_PASS = 2,
34721 	XDP_TX = 3,
34722 	XDP_REDIRECT = 4,
34723 };
34724 
34725 struct rhash_lock_head;
34726 
34727 struct bucket_table {
34728 	unsigned int size;
34729 	unsigned int nest;
34730 	u32 hash_rnd;
34731 	struct list_head walkers;
34732 	struct callback_head rcu;
34733 	struct bucket_table *future_tbl;
34734 	struct lockdep_map dep_map;
34735 	long: 64;
34736 	long: 64;
34737 	long: 64;
34738 	long: 64;
34739 	struct rhash_lock_head *buckets[0];
34740 };
34741 
34742 typedef sockptr_t bpfptr_t;
34743 
34744 struct bpf_verifier_log {
34745 	u32 level;
34746 	char kbuf[1024];
34747 	char *ubuf;
34748 	u32 len_used;
34749 	u32 len_total;
34750 };
34751 
34752 struct bpf_subprog_info {
34753 	u32 start;
34754 	u32 linfo_idx;
34755 	u16 stack_depth;
34756 	bool has_tail_call;
34757 	bool tail_call_reachable;
34758 	bool has_ld_abs;
34759 	bool is_async_cb;
34760 };
34761 
34762 struct bpf_id_pair {
34763 	u32 old;
34764 	u32 cur;
34765 };
34766 
34767 struct bpf_verifier_stack_elem;
34768 
34769 struct bpf_verifier_state;
34770 
34771 struct bpf_verifier_state_list;
34772 
34773 struct bpf_insn_aux_data;
34774 
34775 struct bpf_verifier_env {
34776 	u32 insn_idx;
34777 	u32 prev_insn_idx;
34778 	struct bpf_prog *prog;
34779 	const struct bpf_verifier_ops *ops;
34780 	struct bpf_verifier_stack_elem *head;
34781 	int stack_size;
34782 	bool strict_alignment;
34783 	bool test_state_freq;
34784 	struct bpf_verifier_state *cur_state;
34785 	struct bpf_verifier_state_list **explored_states;
34786 	struct bpf_verifier_state_list *free_list;
34787 	struct bpf_map *used_maps[64];
34788 	struct btf_mod_pair used_btfs[64];
34789 	u32 used_map_cnt;
34790 	u32 used_btf_cnt;
34791 	u32 id_gen;
34792 	bool explore_alu_limits;
34793 	bool allow_ptr_leaks;
34794 	bool allow_uninit_stack;
34795 	bool allow_ptr_to_map_access;
34796 	bool bpf_capable;
34797 	bool bypass_spec_v1;
34798 	bool bypass_spec_v4;
34799 	bool seen_direct_write;
34800 	struct bpf_insn_aux_data *insn_aux_data;
34801 	const struct bpf_line_info *prev_linfo;
34802 	struct bpf_verifier_log log;
34803 	struct bpf_subprog_info subprog_info[257];
34804 	struct bpf_id_pair idmap_scratch[75];
34805 	struct {
34806 		int *insn_state;
34807 		int *insn_stack;
34808 		int cur_stack;
34809 	} cfg;
34810 	u32 pass_cnt;
34811 	u32 subprog_cnt;
34812 	u32 prev_insn_processed;
34813 	u32 insn_processed;
34814 	u32 prev_jmps_processed;
34815 	u32 jmps_processed;
34816 	u64 verification_time;
34817 	u32 max_states_per_insn;
34818 	u32 total_states;
34819 	u32 peak_states;
34820 	u32 longest_mark_read_walk;
34821 	bpfptr_t fd_array;
34822 	u32 scratched_regs;
34823 	u64 scratched_stack_slots;
34824 	u32 prev_log_len;
34825 	u32 prev_insn_print_len;
34826 	char type_str_buf[64];
34827 };
34828 
34829 struct tnum {
34830 	u64 value;
34831 	u64 mask;
34832 };
34833 
34834 enum bpf_reg_liveness {
34835 	REG_LIVE_NONE = 0,
34836 	REG_LIVE_READ32 = 1,
34837 	REG_LIVE_READ64 = 2,
34838 	REG_LIVE_READ = 3,
34839 	REG_LIVE_WRITTEN = 4,
34840 	REG_LIVE_DONE = 8,
34841 };
34842 
34843 struct bpf_reg_state {
34844 	enum bpf_reg_type type;
34845 	s32 off;
34846 	union {
34847 		int range;
34848 		struct {
34849 			struct bpf_map *map_ptr;
34850 			u32 map_uid;
34851 		};
34852 		struct {
34853 			struct btf *btf;
34854 			u32 btf_id;
34855 		};
34856 		u32 mem_size;
34857 		struct {
34858 			long unsigned int raw1;
34859 			long unsigned int raw2;
34860 		} raw;
34861 		u32 subprogno;
34862 	};
34863 	u32 id;
34864 	u32 ref_obj_id;
34865 	struct tnum var_off;
34866 	s64 smin_value;
34867 	s64 smax_value;
34868 	u64 umin_value;
34869 	u64 umax_value;
34870 	s32 s32_min_value;
34871 	s32 s32_max_value;
34872 	u32 u32_min_value;
34873 	u32 u32_max_value;
34874 	struct bpf_reg_state *parent;
34875 	u32 frameno;
34876 	s32 subreg_def;
34877 	enum bpf_reg_liveness live;
34878 	bool precise;
34879 };
34880 
34881 struct bpf_reference_state;
34882 
34883 struct bpf_stack_state;
34884 
34885 struct bpf_func_state {
34886 	struct bpf_reg_state regs[11];
34887 	int callsite;
34888 	u32 frameno;
34889 	u32 subprogno;
34890 	u32 async_entry_cnt;
34891 	bool in_callback_fn;
34892 	bool in_async_callback_fn;
34893 	int acquired_refs;
34894 	struct bpf_reference_state *refs;
34895 	int allocated_stack;
34896 	struct bpf_stack_state *stack;
34897 };
34898 
34899 struct rnd_state {
34900 	__u32 s1;
34901 	__u32 s2;
34902 	__u32 s3;
34903 	__u32 s4;
34904 };
34905 
34906 enum xdp_mem_type {
34907 	MEM_TYPE_PAGE_SHARED = 0,
34908 	MEM_TYPE_PAGE_ORDER0 = 1,
34909 	MEM_TYPE_PAGE_POOL = 2,
34910 	MEM_TYPE_XSK_BUFF_POOL = 3,
34911 	MEM_TYPE_MAX = 4,
34912 };
34913 
34914 struct xdp_cpumap_stats {
34915 	unsigned int redirect;
34916 	unsigned int pass;
34917 	unsigned int drop;
34918 };
34919 
34920 typedef void (*bpf_jit_fill_hole_t)(void *, unsigned int);
34921 
34922 enum btf_kfunc_type {
34923 	BTF_KFUNC_TYPE_CHECK = 0,
34924 	BTF_KFUNC_TYPE_ACQUIRE = 1,
34925 	BTF_KFUNC_TYPE_RELEASE = 2,
34926 	BTF_KFUNC_TYPE_RET_NULL = 3,
34927 	BTF_KFUNC_TYPE_MAX = 4,
34928 };
34929 
34930 struct bpf_stack_state {
34931 	struct bpf_reg_state spilled_ptr;
34932 	u8 slot_type[8];
34933 };
34934 
34935 struct bpf_reference_state {
34936 	int id;
34937 	int insn_idx;
34938 };
34939 
34940 struct bpf_idx_pair {
34941 	u32 prev_idx;
34942 	u32 idx;
34943 };
34944 
34945 struct bpf_verifier_state {
34946 	struct bpf_func_state *frame[8];
34947 	struct bpf_verifier_state *parent;
34948 	u32 branches;
34949 	u32 insn_idx;
34950 	u32 curframe;
34951 	u32 active_spin_lock;
34952 	bool speculative;
34953 	u32 first_insn_idx;
34954 	u32 last_insn_idx;
34955 	struct bpf_idx_pair *jmp_history;
34956 	u32 jmp_history_cnt;
34957 };
34958 
34959 struct bpf_verifier_state_list {
34960 	struct bpf_verifier_state state;
34961 	struct bpf_verifier_state_list *next;
34962 	int miss_cnt;
34963 	int hit_cnt;
34964 };
34965 
34966 struct bpf_insn_aux_data {
34967 	union {
34968 		enum bpf_reg_type ptr_type;
34969 		long unsigned int map_ptr_state;
34970 		s32 call_imm;
34971 		u32 alu_limit;
34972 		struct {
34973 			u32 map_index;
34974 			u32 map_off;
34975 		};
34976 		struct {
34977 			enum bpf_reg_type reg_type;
34978 			union {
34979 				struct {
34980 					struct btf *btf;
34981 					u32 btf_id;
34982 				};
34983 				u32 mem_size;
34984 			};
34985 		} btf_var;
34986 	};
34987 	u64 map_key_state;
34988 	int ctx_field_size;
34989 	u32 seen;
34990 	bool sanitize_stack_spill;
34991 	bool zext_dst;
34992 	u8 alu_state;
34993 	unsigned int orig_idx;
34994 	bool prune_point;
34995 };
34996 
34997 struct bpf_prog_dummy {
34998 	struct bpf_prog prog;
34999 };
35000 
35001 typedef u64 (*btf_bpf_user_rnd_u32)();
35002 
35003 typedef u64 (*btf_bpf_get_raw_cpu_id)();
35004 
35005 struct _bpf_dtab_netdev {
35006 	struct net_device *dev;
35007 };
35008 
35009 struct rhash_lock_head {};
35010 
35011 struct xdp_mem_allocator {
35012 	struct xdp_mem_info mem;
35013 	union {
35014 		void *allocator;
35015 		struct page_pool *page_pool;
35016 	};
35017 	struct rhash_head node;
35018 	struct callback_head rcu;
35019 };
35020 
35021 struct trace_event_raw_xdp_exception {
35022 	struct trace_entry ent;
35023 	int prog_id;
35024 	u32 act;
35025 	int ifindex;
35026 	char __data[0];
35027 };
35028 
35029 struct trace_event_raw_xdp_bulk_tx {
35030 	struct trace_entry ent;
35031 	int ifindex;
35032 	u32 act;
35033 	int drops;
35034 	int sent;
35035 	int err;
35036 	char __data[0];
35037 };
35038 
35039 struct trace_event_raw_xdp_redirect_template {
35040 	struct trace_entry ent;
35041 	int prog_id;
35042 	u32 act;
35043 	int ifindex;
35044 	int err;
35045 	int to_ifindex;
35046 	u32 map_id;
35047 	int map_index;
35048 	char __data[0];
35049 };
35050 
35051 struct trace_event_raw_xdp_cpumap_kthread {
35052 	struct trace_entry ent;
35053 	int map_id;
35054 	u32 act;
35055 	int cpu;
35056 	unsigned int drops;
35057 	unsigned int processed;
35058 	int sched;
35059 	unsigned int xdp_pass;
35060 	unsigned int xdp_drop;
35061 	unsigned int xdp_redirect;
35062 	char __data[0];
35063 };
35064 
35065 struct trace_event_raw_xdp_cpumap_enqueue {
35066 	struct trace_entry ent;
35067 	int map_id;
35068 	u32 act;
35069 	int cpu;
35070 	unsigned int drops;
35071 	unsigned int processed;
35072 	int to_cpu;
35073 	char __data[0];
35074 };
35075 
35076 struct trace_event_raw_xdp_devmap_xmit {
35077 	struct trace_entry ent;
35078 	int from_ifindex;
35079 	u32 act;
35080 	int to_ifindex;
35081 	int drops;
35082 	int sent;
35083 	int err;
35084 	char __data[0];
35085 };
35086 
35087 struct trace_event_raw_mem_disconnect {
35088 	struct trace_entry ent;
35089 	const struct xdp_mem_allocator *xa;
35090 	u32 mem_id;
35091 	u32 mem_type;
35092 	const void *allocator;
35093 	char __data[0];
35094 };
35095 
35096 struct trace_event_raw_mem_connect {
35097 	struct trace_entry ent;
35098 	const struct xdp_mem_allocator *xa;
35099 	u32 mem_id;
35100 	u32 mem_type;
35101 	const void *allocator;
35102 	const struct xdp_rxq_info *rxq;
35103 	int ifindex;
35104 	char __data[0];
35105 };
35106 
35107 struct trace_event_raw_mem_return_failed {
35108 	struct trace_entry ent;
35109 	const struct page *page;
35110 	u32 mem_id;
35111 	u32 mem_type;
35112 	char __data[0];
35113 };
35114 
35115 struct trace_event_data_offsets_xdp_exception {};
35116 
35117 struct trace_event_data_offsets_xdp_bulk_tx {};
35118 
35119 struct trace_event_data_offsets_xdp_redirect_template {};
35120 
35121 struct trace_event_data_offsets_xdp_cpumap_kthread {};
35122 
35123 struct trace_event_data_offsets_xdp_cpumap_enqueue {};
35124 
35125 struct trace_event_data_offsets_xdp_devmap_xmit {};
35126 
35127 struct trace_event_data_offsets_mem_disconnect {};
35128 
35129 struct trace_event_data_offsets_mem_connect {};
35130 
35131 struct trace_event_data_offsets_mem_return_failed {};
35132 
35133 typedef void (*btf_trace_xdp_exception)(void *, const struct net_device *, const struct bpf_prog *, u32);
35134 
35135 typedef void (*btf_trace_xdp_bulk_tx)(void *, const struct net_device *, int, int, int);
35136 
35137 typedef void (*btf_trace_xdp_redirect)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32);
35138 
35139 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);
35140 
35141 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);
35142 
35143 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);
35144 
35145 typedef void (*btf_trace_xdp_cpumap_kthread)(void *, int, unsigned int, unsigned int, int, struct xdp_cpumap_stats *);
35146 
35147 typedef void (*btf_trace_xdp_cpumap_enqueue)(void *, int, unsigned int, unsigned int, int);
35148 
35149 typedef void (*btf_trace_xdp_devmap_xmit)(void *, const struct net_device *, const struct net_device *, int, int, int);
35150 
35151 typedef void (*btf_trace_mem_disconnect)(void *, const struct xdp_mem_allocator *);
35152 
35153 typedef void (*btf_trace_mem_connect)(void *, const struct xdp_mem_allocator *, const struct xdp_rxq_info *);
35154 
35155 typedef void (*btf_trace_mem_return_failed)(void *, const struct xdp_mem_info *, const struct page *);
35156 
35157 enum bpf_cmd {
35158 	BPF_MAP_CREATE = 0,
35159 	BPF_MAP_LOOKUP_ELEM = 1,
35160 	BPF_MAP_UPDATE_ELEM = 2,
35161 	BPF_MAP_DELETE_ELEM = 3,
35162 	BPF_MAP_GET_NEXT_KEY = 4,
35163 	BPF_PROG_LOAD = 5,
35164 	BPF_OBJ_PIN = 6,
35165 	BPF_OBJ_GET = 7,
35166 	BPF_PROG_ATTACH = 8,
35167 	BPF_PROG_DETACH = 9,
35168 	BPF_PROG_TEST_RUN = 10,
35169 	BPF_PROG_RUN = 10,
35170 	BPF_PROG_GET_NEXT_ID = 11,
35171 	BPF_MAP_GET_NEXT_ID = 12,
35172 	BPF_PROG_GET_FD_BY_ID = 13,
35173 	BPF_MAP_GET_FD_BY_ID = 14,
35174 	BPF_OBJ_GET_INFO_BY_FD = 15,
35175 	BPF_PROG_QUERY = 16,
35176 	BPF_RAW_TRACEPOINT_OPEN = 17,
35177 	BPF_BTF_LOAD = 18,
35178 	BPF_BTF_GET_FD_BY_ID = 19,
35179 	BPF_TASK_FD_QUERY = 20,
35180 	BPF_MAP_LOOKUP_AND_DELETE_ELEM = 21,
35181 	BPF_MAP_FREEZE = 22,
35182 	BPF_BTF_GET_NEXT_ID = 23,
35183 	BPF_MAP_LOOKUP_BATCH = 24,
35184 	BPF_MAP_LOOKUP_AND_DELETE_BATCH = 25,
35185 	BPF_MAP_UPDATE_BATCH = 26,
35186 	BPF_MAP_DELETE_BATCH = 27,
35187 	BPF_LINK_CREATE = 28,
35188 	BPF_LINK_UPDATE = 29,
35189 	BPF_LINK_GET_FD_BY_ID = 30,
35190 	BPF_LINK_GET_NEXT_ID = 31,
35191 	BPF_ENABLE_STATS = 32,
35192 	BPF_ITER_CREATE = 33,
35193 	BPF_LINK_DETACH = 34,
35194 	BPF_PROG_BIND_MAP = 35,
35195 };
35196 
35197 enum bpf_link_type {
35198 	BPF_LINK_TYPE_UNSPEC = 0,
35199 	BPF_LINK_TYPE_RAW_TRACEPOINT = 1,
35200 	BPF_LINK_TYPE_TRACING = 2,
35201 	BPF_LINK_TYPE_CGROUP = 3,
35202 	BPF_LINK_TYPE_ITER = 4,
35203 	BPF_LINK_TYPE_NETNS = 5,
35204 	BPF_LINK_TYPE_XDP = 6,
35205 	BPF_LINK_TYPE_PERF_EVENT = 7,
35206 	MAX_BPF_LINK_TYPE = 8,
35207 };
35208 
35209 enum {
35210 	BPF_ANY = 0,
35211 	BPF_NOEXIST = 1,
35212 	BPF_EXIST = 2,
35213 	BPF_F_LOCK = 4,
35214 };
35215 
35216 enum {
35217 	BPF_F_NO_PREALLOC = 1,
35218 	BPF_F_NO_COMMON_LRU = 2,
35219 	BPF_F_NUMA_NODE = 4,
35220 	BPF_F_RDONLY = 8,
35221 	BPF_F_WRONLY = 16,
35222 	BPF_F_STACK_BUILD_ID = 32,
35223 	BPF_F_ZERO_SEED = 64,
35224 	BPF_F_RDONLY_PROG = 128,
35225 	BPF_F_WRONLY_PROG = 256,
35226 	BPF_F_CLONE = 512,
35227 	BPF_F_MMAPABLE = 1024,
35228 	BPF_F_PRESERVE_ELEMS = 2048,
35229 	BPF_F_INNER_MAP = 4096,
35230 };
35231 
35232 enum bpf_stats_type {
35233 	BPF_STATS_RUN_TIME = 0,
35234 };
35235 
35236 struct bpf_prog_info {
35237 	__u32 type;
35238 	__u32 id;
35239 	__u8 tag[8];
35240 	__u32 jited_prog_len;
35241 	__u32 xlated_prog_len;
35242 	__u64 jited_prog_insns;
35243 	__u64 xlated_prog_insns;
35244 	__u64 load_time;
35245 	__u32 created_by_uid;
35246 	__u32 nr_map_ids;
35247 	__u64 map_ids;
35248 	char name[16];
35249 	__u32 ifindex;
35250 	__u32 gpl_compatible: 1;
35251 	__u64 netns_dev;
35252 	__u64 netns_ino;
35253 	__u32 nr_jited_ksyms;
35254 	__u32 nr_jited_func_lens;
35255 	__u64 jited_ksyms;
35256 	__u64 jited_func_lens;
35257 	__u32 btf_id;
35258 	__u32 func_info_rec_size;
35259 	__u64 func_info;
35260 	__u32 nr_func_info;
35261 	__u32 nr_line_info;
35262 	__u64 line_info;
35263 	__u64 jited_line_info;
35264 	__u32 nr_jited_line_info;
35265 	__u32 line_info_rec_size;
35266 	__u32 jited_line_info_rec_size;
35267 	__u32 nr_prog_tags;
35268 	__u64 prog_tags;
35269 	__u64 run_time_ns;
35270 	__u64 run_cnt;
35271 	__u64 recursion_misses;
35272 	__u32 verified_insns;
35273 };
35274 
35275 struct bpf_map_info {
35276 	__u32 type;
35277 	__u32 id;
35278 	__u32 key_size;
35279 	__u32 value_size;
35280 	__u32 max_entries;
35281 	__u32 map_flags;
35282 	char name[16];
35283 	__u32 ifindex;
35284 	__u32 btf_vmlinux_value_type_id;
35285 	__u64 netns_dev;
35286 	__u64 netns_ino;
35287 	__u32 btf_id;
35288 	__u32 btf_key_type_id;
35289 	__u32 btf_value_type_id;
35290 	__u64 map_extra;
35291 };
35292 
35293 struct bpf_btf_info {
35294 	__u64 btf;
35295 	__u32 btf_size;
35296 	__u32 id;
35297 	__u64 name;
35298 	__u32 name_len;
35299 	__u32 kernel_btf;
35300 };
35301 
35302 struct bpf_link_info {
35303 	__u32 type;
35304 	__u32 id;
35305 	__u32 prog_id;
35306 	union {
35307 		struct {
35308 			__u64 tp_name;
35309 			__u32 tp_name_len;
35310 		} raw_tracepoint;
35311 		struct {
35312 			__u32 attach_type;
35313 			__u32 target_obj_id;
35314 			__u32 target_btf_id;
35315 		} tracing;
35316 		struct {
35317 			__u64 cgroup_id;
35318 			__u32 attach_type;
35319 		} cgroup;
35320 		struct {
35321 			__u64 target_name;
35322 			__u32 target_name_len;
35323 			union {
35324 				struct {
35325 					__u32 map_id;
35326 				} map;
35327 			};
35328 		} iter;
35329 		struct {
35330 			__u32 netns_ino;
35331 			__u32 attach_type;
35332 		} netns;
35333 		struct {
35334 			__u32 ifindex;
35335 		} xdp;
35336 	};
35337 };
35338 
35339 struct bpf_spin_lock {
35340 	__u32 val;
35341 };
35342 
35343 struct bpf_timer {
35344 	long: 64;
35345 	long: 64;};
35346 
35347 struct bpf_attach_target_info {
35348 	struct btf_func_model fmodel;
35349 	long int tgt_addr;
35350 	const char *tgt_name;
35351 	const struct btf_type *tgt_type;
35352 };
35353 
35354 struct bpf_link_ops;
35355 
35356 struct bpf_link {
35357 	atomic64_t refcnt;
35358 	u32 id;
35359 	enum bpf_link_type type;
35360 	const struct bpf_link_ops *ops;
35361 	struct bpf_prog *prog;
35362 	struct work_struct work;
35363 };
35364 
35365 struct bpf_link_ops {
35366 	void (*release)(struct bpf_link *);
35367 	void (*dealloc)(struct bpf_link *);
35368 	int (*detach)(struct bpf_link *);
35369 	int (*update_prog)(struct bpf_link *, struct bpf_prog *, struct bpf_prog *);
35370 	void (*show_fdinfo)(const struct bpf_link *, struct seq_file *);
35371 	int (*fill_link_info)(const struct bpf_link *, struct bpf_link_info *);
35372 };
35373 
35374 struct bpf_link_primer {
35375 	struct bpf_link *link;
35376 	struct file *file;
35377 	int fd;
35378 	u32 id;
35379 };
35380 
35381 enum perf_bpf_event_type {
35382 	PERF_BPF_EVENT_UNKNOWN = 0,
35383 	PERF_BPF_EVENT_PROG_LOAD = 1,
35384 	PERF_BPF_EVENT_PROG_UNLOAD = 2,
35385 	PERF_BPF_EVENT_MAX = 3,
35386 };
35387 
35388 enum bpf_audit {
35389 	BPF_AUDIT_LOAD = 0,
35390 	BPF_AUDIT_UNLOAD = 1,
35391 	BPF_AUDIT_MAX = 2,
35392 };
35393 
35394 struct bpf_prog_kstats {
35395 	u64 nsecs;
35396 	u64 cnt;
35397 	u64 misses;
35398 };
35399 
35400 struct bpf_tracing_link {
35401 	struct bpf_link link;
35402 	enum bpf_attach_type attach_type;
35403 	struct bpf_trampoline *trampoline;
35404 	struct bpf_prog *tgt_prog;
35405 };
35406 
35407 struct bpf_raw_tp_link {
35408 	struct bpf_link link;
35409 	struct bpf_raw_event_map *btp;
35410 };
35411 
35412 struct bpf_perf_link {
35413 	struct bpf_link link;
35414 	struct file *perf_file;
35415 };
35416 
35417 typedef u64 (*btf_bpf_sys_bpf)(int, void *, u32);
35418 
35419 typedef u64 (*btf_bpf_sys_close)(u32);
35420 
35421 typedef u64 (*btf_bpf_kallsyms_lookup_name)(const char *, int, int, u64 *);
35422 
35423 enum {
35424 	BTF_KIND_UNKN = 0,
35425 	BTF_KIND_INT = 1,
35426 	BTF_KIND_PTR = 2,
35427 	BTF_KIND_ARRAY = 3,
35428 	BTF_KIND_STRUCT = 4,
35429 	BTF_KIND_UNION = 5,
35430 	BTF_KIND_ENUM = 6,
35431 	BTF_KIND_FWD = 7,
35432 	BTF_KIND_TYPEDEF = 8,
35433 	BTF_KIND_VOLATILE = 9,
35434 	BTF_KIND_CONST = 10,
35435 	BTF_KIND_RESTRICT = 11,
35436 	BTF_KIND_FUNC = 12,
35437 	BTF_KIND_FUNC_PROTO = 13,
35438 	BTF_KIND_VAR = 14,
35439 	BTF_KIND_DATASEC = 15,
35440 	BTF_KIND_FLOAT = 16,
35441 	BTF_KIND_DECL_TAG = 17,
35442 	BTF_KIND_TYPE_TAG = 18,
35443 	NR_BTF_KINDS = 19,
35444 	BTF_KIND_MAX = 18,
35445 };
35446 
35447 struct btf_member {
35448 	__u32 name_off;
35449 	__u32 type;
35450 	__u32 offset;
35451 };
35452 
35453 struct btf_param {
35454 	__u32 name_off;
35455 	__u32 type;
35456 };
35457 
35458 enum btf_func_linkage {
35459 	BTF_FUNC_STATIC = 0,
35460 	BTF_FUNC_GLOBAL = 1,
35461 	BTF_FUNC_EXTERN = 2,
35462 };
35463 
35464 struct btf_var_secinfo {
35465 	__u32 type;
35466 	__u32 offset;
35467 	__u32 size;
35468 };
35469 
35470 enum sk_action {
35471 	SK_DROP = 0,
35472 	SK_PASS = 1,
35473 };
35474 
35475 enum bpf_core_relo_kind {
35476 	BPF_CORE_FIELD_BYTE_OFFSET = 0,
35477 	BPF_CORE_FIELD_BYTE_SIZE = 1,
35478 	BPF_CORE_FIELD_EXISTS = 2,
35479 	BPF_CORE_FIELD_SIGNED = 3,
35480 	BPF_CORE_FIELD_LSHIFT_U64 = 4,
35481 	BPF_CORE_FIELD_RSHIFT_U64 = 5,
35482 	BPF_CORE_TYPE_ID_LOCAL = 6,
35483 	BPF_CORE_TYPE_ID_TARGET = 7,
35484 	BPF_CORE_TYPE_EXISTS = 8,
35485 	BPF_CORE_TYPE_SIZE = 9,
35486 	BPF_CORE_ENUMVAL_EXISTS = 10,
35487 	BPF_CORE_ENUMVAL_VALUE = 11,
35488 };
35489 
35490 struct bpf_core_relo {
35491 	__u32 insn_off;
35492 	__u32 type_id;
35493 	__u32 access_str_off;
35494 	enum bpf_core_relo_kind kind;
35495 };
35496 
35497 struct bpf_kfunc_desc {
35498 	struct btf_func_model func_model;
35499 	u32 func_id;
35500 	s32 imm;
35501 	u16 offset;
35502 };
35503 
35504 struct bpf_kfunc_desc_tab {
35505 	struct bpf_kfunc_desc descs[256];
35506 	u32 nr_descs;
35507 };
35508 
35509 struct bpf_kfunc_btf {
35510 	struct btf *btf;
35511 	struct module *module;
35512 	u16 offset;
35513 };
35514 
35515 struct bpf_kfunc_btf_tab {
35516 	struct bpf_kfunc_btf descs[256];
35517 	u32 nr_descs;
35518 };
35519 
35520 struct bpf_struct_ops {
35521 	const struct bpf_verifier_ops *verifier_ops;
35522 	int (*init)(struct btf *);
35523 	int (*check_member)(const struct btf_type *, const struct btf_member *);
35524 	int (*init_member)(const struct btf_type *, const struct btf_member *, void *, const void *);
35525 	int (*reg)(void *);
35526 	void (*unreg)(void *);
35527 	const struct btf_type *type;
35528 	const struct btf_type *value_type;
35529 	const char *name;
35530 	struct btf_func_model func_models[64];
35531 	u32 type_id;
35532 	u32 value_id;
35533 };
35534 
35535 typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *);
35536 
35537 struct bpf_core_ctx {
35538 	struct bpf_verifier_log *log;
35539 	const struct btf *btf;
35540 };
35541 
35542 enum bpf_stack_slot_type {
35543 	STACK_INVALID = 0,
35544 	STACK_SPILL = 1,
35545 	STACK_MISC = 2,
35546 	STACK_ZERO = 3,
35547 };
35548 
35549 struct bpf_verifier_stack_elem {
35550 	struct bpf_verifier_state st;
35551 	int insn_idx;
35552 	int prev_insn_idx;
35553 	struct bpf_verifier_stack_elem *next;
35554 	u32 log_pos;
35555 };
35556 
35557 enum {
35558 	BTF_SOCK_TYPE_INET = 0,
35559 	BTF_SOCK_TYPE_INET_CONN = 1,
35560 	BTF_SOCK_TYPE_INET_REQ = 2,
35561 	BTF_SOCK_TYPE_INET_TW = 3,
35562 	BTF_SOCK_TYPE_REQ = 4,
35563 	BTF_SOCK_TYPE_SOCK = 5,
35564 	BTF_SOCK_TYPE_SOCK_COMMON = 6,
35565 	BTF_SOCK_TYPE_TCP = 7,
35566 	BTF_SOCK_TYPE_TCP_REQ = 8,
35567 	BTF_SOCK_TYPE_TCP_TW = 9,
35568 	BTF_SOCK_TYPE_TCP6 = 10,
35569 	BTF_SOCK_TYPE_UDP = 11,
35570 	BTF_SOCK_TYPE_UDP6 = 12,
35571 	BTF_SOCK_TYPE_UNIX = 13,
35572 	MAX_BTF_SOCK_TYPE = 14,
35573 };
35574 
35575 typedef void (*bpf_insn_print_t)(void *, const char *, ...);
35576 
35577 typedef const char * (*bpf_insn_revmap_call_t)(void *, const struct bpf_insn *);
35578 
35579 typedef const char * (*bpf_insn_print_imm_t)(void *, const struct bpf_insn *, __u64);
35580 
35581 struct bpf_insn_cbs {
35582 	bpf_insn_print_t cb_print;
35583 	bpf_insn_revmap_call_t cb_call;
35584 	bpf_insn_print_imm_t cb_imm;
35585 	void *private_data;
35586 };
35587 
35588 struct bpf_call_arg_meta {
35589 	struct bpf_map *map_ptr;
35590 	bool raw_mode;
35591 	bool pkt_access;
35592 	int regno;
35593 	int access_size;
35594 	int mem_size;
35595 	u64 msize_max_value;
35596 	int ref_obj_id;
35597 	int map_uid;
35598 	int func_id;
35599 	struct btf *btf;
35600 	u32 btf_id;
35601 	struct btf *ret_btf;
35602 	u32 ret_btf_id;
35603 	u32 subprogno;
35604 };
35605 
35606 enum reg_arg_type {
35607 	SRC_OP = 0,
35608 	DST_OP = 1,
35609 	DST_OP_NO_MARK = 2,
35610 };
35611 
35612 enum stack_access_src {
35613 	ACCESS_DIRECT = 1,
35614 	ACCESS_HELPER = 2,
35615 };
35616 
35617 struct bpf_reg_types {
35618 	const enum bpf_reg_type types[10];
35619 	u32 *btf_id;
35620 };
35621 
35622 enum {
35623 	AT_PKT_END = 4294967295,
35624 	BEYOND_PKT_END = 4294967294,
35625 };
35626 
35627 typedef int (*set_callee_state_fn)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *, int);
35628 
35629 enum {
35630 	REASON_BOUNDS = 4294967295,
35631 	REASON_TYPE = 4294967294,
35632 	REASON_PATHS = 4294967293,
35633 	REASON_LIMIT = 4294967292,
35634 	REASON_STACK = 4294967291,
35635 };
35636 
35637 struct bpf_sanitize_info {
35638 	struct bpf_insn_aux_data aux;
35639 	bool mask_to_left;
35640 };
35641 
35642 enum {
35643 	DISCOVERED = 16,
35644 	EXPLORED = 32,
35645 	FALLTHROUGH = 1,
35646 	BRANCH = 2,
35647 };
35648 
35649 enum {
35650 	DONE_EXPLORING = 0,
35651 	KEEP_EXPLORING = 1,
35652 };
35653 
35654 struct tree_descr {
35655 	const char *name;
35656 	const struct file_operations *ops;
35657 	int mode;
35658 };
35659 
35660 struct bpf_preload_info {
35661 	char link_name[16];
35662 	int link_id;
35663 };
35664 
35665 struct bpf_preload_ops {
35666 	struct umd_info info;
35667 	int (*preload)(struct bpf_preload_info *);
35668 	int (*finish)();
35669 	struct module *owner;
35670 };
35671 
35672 enum bpf_type {
35673 	BPF_TYPE_UNSPEC = 0,
35674 	BPF_TYPE_PROG = 1,
35675 	BPF_TYPE_MAP = 2,
35676 	BPF_TYPE_LINK = 3,
35677 };
35678 
35679 struct map_iter {
35680 	void *key;
35681 	bool done;
35682 };
35683 
35684 enum {
35685 	OPT_MODE = 0,
35686 };
35687 
35688 struct bpf_mount_opts {
35689 	umode_t mode;
35690 };
35691 
35692 struct bpf_pidns_info {
35693 	__u32 pid;
35694 	__u32 tgid;
35695 };
35696 
35697 struct bpf_cg_run_ctx {
35698 	struct bpf_run_ctx run_ctx;
35699 	const struct bpf_prog_array_item *prog_item;
35700 	int retval;
35701 };
35702 
35703 typedef u64 (*btf_bpf_map_lookup_elem)(struct bpf_map *, void *);
35704 
35705 typedef u64 (*btf_bpf_map_update_elem)(struct bpf_map *, void *, void *, u64);
35706 
35707 typedef u64 (*btf_bpf_map_delete_elem)(struct bpf_map *, void *);
35708 
35709 typedef u64 (*btf_bpf_map_push_elem)(struct bpf_map *, void *, u64);
35710 
35711 typedef u64 (*btf_bpf_map_pop_elem)(struct bpf_map *, void *);
35712 
35713 typedef u64 (*btf_bpf_map_peek_elem)(struct bpf_map *, void *);
35714 
35715 typedef u64 (*btf_bpf_get_smp_processor_id)();
35716 
35717 typedef u64 (*btf_bpf_get_numa_node_id)();
35718 
35719 typedef u64 (*btf_bpf_ktime_get_ns)();
35720 
35721 typedef u64 (*btf_bpf_ktime_get_boot_ns)();
35722 
35723 typedef u64 (*btf_bpf_ktime_get_coarse_ns)();
35724 
35725 typedef u64 (*btf_bpf_get_current_pid_tgid)();
35726 
35727 typedef u64 (*btf_bpf_get_current_uid_gid)();
35728 
35729 typedef u64 (*btf_bpf_get_current_comm)(char *, u32);
35730 
35731 typedef u64 (*btf_bpf_spin_lock)(struct bpf_spin_lock *);
35732 
35733 typedef u64 (*btf_bpf_spin_unlock)(struct bpf_spin_lock *);
35734 
35735 typedef u64 (*btf_bpf_jiffies64)();
35736 
35737 typedef u64 (*btf_bpf_get_current_cgroup_id)();
35738 
35739 typedef u64 (*btf_bpf_get_current_ancestor_cgroup_id)(int);
35740 
35741 typedef u64 (*btf_bpf_get_local_storage)(struct bpf_map *, u64);
35742 
35743 typedef u64 (*btf_bpf_strtol)(const char *, size_t, u64, long int *);
35744 
35745 typedef u64 (*btf_bpf_strtoul)(const char *, size_t, u64, long unsigned int *);
35746 
35747 typedef u64 (*btf_bpf_strncmp)(const char *, u32, const char *);
35748 
35749 typedef u64 (*btf_bpf_get_ns_current_pid_tgid)(u64, u64, struct bpf_pidns_info *, u32);
35750 
35751 typedef u64 (*btf_bpf_event_output_data)(void *, struct bpf_map *, u64, void *, u64);
35752 
35753 typedef u64 (*btf_bpf_copy_from_user)(void *, u32, const void *);
35754 
35755 typedef u64 (*btf_bpf_copy_from_user_task)(void *, u32, const void *, struct task_struct *, u64);
35756 
35757 typedef u64 (*btf_bpf_per_cpu_ptr)(const void *, u32);
35758 
35759 typedef u64 (*btf_bpf_this_cpu_ptr)(const void *);
35760 
35761 struct bpf_bprintf_buffers {
35762 	char tmp_bufs[1536];
35763 };
35764 
35765 typedef u64 (*btf_bpf_snprintf)(char *, u32, char *, const void *, u32);
35766 
35767 struct bpf_hrtimer {
35768 	struct hrtimer timer;
35769 	struct bpf_map *map;
35770 	struct bpf_prog *prog;
35771 	void *callback_fn;
35772 	void *value;
35773 };
35774 
35775 struct bpf_timer_kern {
35776 	struct bpf_hrtimer *timer;
35777 	struct bpf_spin_lock lock;
35778 };
35779 
35780 typedef u64 (*btf_bpf_timer_init)(struct bpf_timer_kern *, struct bpf_map *, u64);
35781 
35782 typedef u64 (*btf_bpf_timer_set_callback)(struct bpf_timer_kern *, void *, struct bpf_prog_aux *);
35783 
35784 typedef u64 (*btf_bpf_timer_start)(struct bpf_timer_kern *, u64, u64);
35785 
35786 typedef u64 (*btf_bpf_timer_cancel)(struct bpf_timer_kern *);
35787 
35788 union bpf_iter_link_info {
35789 	struct {
35790 		__u32 map_fd;
35791 	} map;
35792 };
35793 
35794 typedef int (*bpf_iter_attach_target_t)(struct bpf_prog *, union bpf_iter_link_info *, struct bpf_iter_aux_info *);
35795 
35796 typedef void (*bpf_iter_detach_target_t)(struct bpf_iter_aux_info *);
35797 
35798 typedef void (*bpf_iter_show_fdinfo_t)(const struct bpf_iter_aux_info *, struct seq_file *);
35799 
35800 typedef int (*bpf_iter_fill_link_info_t)(const struct bpf_iter_aux_info *, struct bpf_link_info *);
35801 
35802 typedef const struct bpf_func_proto * (*bpf_iter_get_func_proto_t)(enum bpf_func_id, const struct bpf_prog *);
35803 
35804 enum bpf_iter_feature {
35805 	BPF_ITER_RESCHED = 1,
35806 };
35807 
35808 struct bpf_iter_reg {
35809 	const char *target;
35810 	bpf_iter_attach_target_t attach_target;
35811 	bpf_iter_detach_target_t detach_target;
35812 	bpf_iter_show_fdinfo_t show_fdinfo;
35813 	bpf_iter_fill_link_info_t fill_link_info;
35814 	bpf_iter_get_func_proto_t get_func_proto;
35815 	u32 ctx_arg_info_size;
35816 	u32 feature;
35817 	struct bpf_ctx_arg_aux ctx_arg_info[2];
35818 	const struct bpf_iter_seq_info *seq_info;
35819 };
35820 
35821 struct bpf_iter_meta {
35822 	union {
35823 		struct seq_file *seq;
35824 	};
35825 	u64 session_id;
35826 	u64 seq_num;
35827 };
35828 
35829 struct bpf_iter_target_info {
35830 	struct list_head list;
35831 	const struct bpf_iter_reg *reg_info;
35832 	u32 btf_id;
35833 };
35834 
35835 struct bpf_iter_link {
35836 	struct bpf_link link;
35837 	struct bpf_iter_aux_info aux;
35838 	struct bpf_iter_target_info *tinfo;
35839 };
35840 
35841 struct bpf_iter_priv_data {
35842 	struct bpf_iter_target_info *tinfo;
35843 	const struct bpf_iter_seq_info *seq_info;
35844 	struct bpf_prog *prog;
35845 	u64 session_id;
35846 	u64 seq_num;
35847 	bool done_stop;
35848 	long: 56;
35849 	u8 target_private[0];
35850 };
35851 
35852 typedef u64 (*btf_bpf_for_each_map_elem)(struct bpf_map *, void *, void *, u64);
35853 
35854 typedef u64 (*btf_bpf_loop)(u32, void *, void *, u64);
35855 
35856 struct bpf_iter_seq_map_info {
35857 	u32 map_id;
35858 };
35859 
35860 struct bpf_iter__bpf_map {
35861 	union {
35862 		struct bpf_iter_meta *meta;
35863 	};
35864 	union {
35865 		struct bpf_map *map;
35866 	};
35867 };
35868 
35869 struct mmap_unlock_irq_work {
35870 	struct irq_work irq_work;
35871 	struct mm_struct *mm;
35872 };
35873 
35874 struct bpf_iter_seq_task_common {
35875 	struct pid_namespace *ns;
35876 };
35877 
35878 struct bpf_iter_seq_task_info {
35879 	struct bpf_iter_seq_task_common common;
35880 	u32 tid;
35881 };
35882 
35883 struct bpf_iter__task {
35884 	union {
35885 		struct bpf_iter_meta *meta;
35886 	};
35887 	union {
35888 		struct task_struct *task;
35889 	};
35890 };
35891 
35892 struct bpf_iter_seq_task_file_info {
35893 	struct bpf_iter_seq_task_common common;
35894 	struct task_struct *task;
35895 	u32 tid;
35896 	u32 fd;
35897 };
35898 
35899 struct bpf_iter__task_file {
35900 	union {
35901 		struct bpf_iter_meta *meta;
35902 	};
35903 	union {
35904 		struct task_struct *task;
35905 	};
35906 	u32 fd;
35907 	union {
35908 		struct file *file;
35909 	};
35910 };
35911 
35912 struct bpf_iter_seq_task_vma_info {
35913 	struct bpf_iter_seq_task_common common;
35914 	struct task_struct *task;
35915 	struct vm_area_struct *vma;
35916 	u32 tid;
35917 	long unsigned int prev_vm_start;
35918 	long unsigned int prev_vm_end;
35919 };
35920 
35921 enum bpf_task_vma_iter_find_op {
35922 	task_vma_iter_first_vma = 0,
35923 	task_vma_iter_next_vma = 1,
35924 	task_vma_iter_find_vma = 2,
35925 };
35926 
35927 struct bpf_iter__task_vma {
35928 	union {
35929 		struct bpf_iter_meta *meta;
35930 	};
35931 	union {
35932 		struct task_struct *task;
35933 	};
35934 	union {
35935 		struct vm_area_struct *vma;
35936 	};
35937 };
35938 
35939 typedef u64 (*btf_bpf_find_vma)(struct task_struct *, u64, bpf_callback_t, void *, u64);
35940 
35941 struct bpf_iter_seq_prog_info {
35942 	u32 prog_id;
35943 };
35944 
35945 struct bpf_iter__bpf_prog {
35946 	union {
35947 		struct bpf_iter_meta *meta;
35948 	};
35949 	union {
35950 		struct bpf_prog *prog;
35951 	};
35952 };
35953 
35954 struct bpf_iter__bpf_map_elem {
35955 	union {
35956 		struct bpf_iter_meta *meta;
35957 	};
35958 	union {
35959 		struct bpf_map *map;
35960 	};
35961 	union {
35962 		void *key;
35963 	};
35964 	union {
35965 		void *value;
35966 	};
35967 };
35968 
35969 struct pcpu_freelist_node;
35970 
35971 struct pcpu_freelist_head {
35972 	struct pcpu_freelist_node *first;
35973 	raw_spinlock_t lock;
35974 };
35975 
35976 struct pcpu_freelist_node {
35977 	struct pcpu_freelist_node *next;
35978 };
35979 
35980 struct pcpu_freelist {
35981 	struct pcpu_freelist_head *freelist;
35982 	struct pcpu_freelist_head extralist;
35983 };
35984 
35985 struct bpf_lru_node {
35986 	struct list_head list;
35987 	u16 cpu;
35988 	u8 type;
35989 	u8 ref;
35990 };
35991 
35992 struct bpf_lru_list {
35993 	struct list_head lists[3];
35994 	unsigned int counts[2];
35995 	struct list_head *next_inactive_rotation;
35996 	raw_spinlock_t lock;
35997 };
35998 
35999 struct bpf_lru_locallist {
36000 	struct list_head lists[2];
36001 	u16 next_steal;
36002 	raw_spinlock_t lock;
36003 };
36004 
36005 struct bpf_common_lru {
36006 	struct bpf_lru_list lru_list;
36007 	struct bpf_lru_locallist *local_list;
36008 	long: 64;
36009 	long: 64;
36010 	long: 64;
36011 	long: 64;
36012 	long: 64;
36013 	long: 64;
36014 	long: 64;
36015 };
36016 
36017 typedef bool (*del_from_htab_func)(void *, struct bpf_lru_node *);
36018 
36019 struct bpf_lru {
36020 	union {
36021 		struct bpf_common_lru common_lru;
36022 		struct bpf_lru_list *percpu_lru;
36023 	};
36024 	del_from_htab_func del_from_htab;
36025 	void *del_arg;
36026 	unsigned int hash_offset;
36027 	unsigned int nr_scans;
36028 	bool percpu;
36029 	long: 56;
36030 	long: 64;
36031 	long: 64;
36032 	long: 64;
36033 	long: 64;
36034 };
36035 
36036 struct bucket {
36037 	struct hlist_nulls_head head;
36038 	union {
36039 		raw_spinlock_t raw_lock;
36040 		spinlock_t lock;
36041 	};
36042 };
36043 
36044 struct htab_elem;
36045 
36046 struct bpf_htab {
36047 	struct bpf_map map;
36048 	struct bucket *buckets;
36049 	void *elems;
36050 	long: 64;
36051 	long: 64;
36052 	long: 64;
36053 	long: 64;
36054 	long: 64;
36055 	long: 64;
36056 	union {
36057 		struct pcpu_freelist freelist;
36058 		struct bpf_lru lru;
36059 	};
36060 	struct htab_elem **extra_elems;
36061 	atomic_t count;
36062 	u32 n_buckets;
36063 	u32 elem_size;
36064 	u32 hashrnd;
36065 	struct lock_class_key lockdep_key;
36066 	int *map_locked[8];
36067 	long: 64;
36068 	long: 64;
36069 	long: 64;
36070 };
36071 
36072 struct htab_elem {
36073 	union {
36074 		struct hlist_nulls_node hash_node;
36075 		struct {
36076 			void *padding;
36077 			union {
36078 				struct bpf_htab *htab;
36079 				struct pcpu_freelist_node fnode;
36080 				struct htab_elem *batch_flink;
36081 			};
36082 		};
36083 	};
36084 	union {
36085 		struct callback_head rcu;
36086 		struct bpf_lru_node lru_node;
36087 	};
36088 	u32 hash;
36089 	int: 32;
36090 	char key[0];
36091 };
36092 
36093 struct bpf_iter_seq_hash_map_info {
36094 	struct bpf_map *map;
36095 	struct bpf_htab *htab;
36096 	void *percpu_value_buf;
36097 	u32 bucket_id;
36098 	u32 skip_elems;
36099 };
36100 
36101 struct bpf_iter_seq_array_map_info {
36102 	struct bpf_map *map;
36103 	void *percpu_value_buf;
36104 	u32 index;
36105 };
36106 
36107 struct prog_poke_elem {
36108 	struct list_head list;
36109 	struct bpf_prog_aux *aux;
36110 };
36111 
36112 enum bpf_lru_list_type {
36113 	BPF_LRU_LIST_T_ACTIVE = 0,
36114 	BPF_LRU_LIST_T_INACTIVE = 1,
36115 	BPF_LRU_LIST_T_FREE = 2,
36116 	BPF_LRU_LOCAL_LIST_T_FREE = 3,
36117 	BPF_LRU_LOCAL_LIST_T_PENDING = 4,
36118 };
36119 
36120 struct bpf_lpm_trie_key {
36121 	__u32 prefixlen;
36122 	__u8 data[0];
36123 };
36124 
36125 struct lpm_trie_node {
36126 	struct callback_head rcu;
36127 	struct lpm_trie_node *child[2];
36128 	u32 prefixlen;
36129 	u32 flags;
36130 	u8 data[0];
36131 };
36132 
36133 struct lpm_trie {
36134 	struct bpf_map map;
36135 	struct lpm_trie_node *root;
36136 	size_t n_entries;
36137 	size_t max_prefixlen;
36138 	size_t data_size;
36139 	spinlock_t lock;
36140 	long: 64;
36141 	long: 64;
36142 	long: 64;
36143 	long: 64;
36144 };
36145 
36146 struct bpf_bloom_filter {
36147 	struct bpf_map map;
36148 	u32 bitset_mask;
36149 	u32 hash_seed;
36150 	u32 aligned_u32_count;
36151 	u32 nr_hash_funcs;
36152 	long unsigned int bitset[0];
36153 	long: 64;
36154 	long: 64;
36155 	long: 64;
36156 	long: 64;
36157 	long: 64;
36158 	long: 64;
36159 };
36160 
36161 struct bpf_cgroup_storage_map {
36162 	struct bpf_map map;
36163 	spinlock_t lock;
36164 	struct rb_root root;
36165 	struct list_head list;
36166 	long: 64;
36167 	long: 64;
36168 	long: 64;
36169 	long: 64;
36170 	long: 64;
36171 };
36172 
36173 struct bpf_queue_stack {
36174 	struct bpf_map map;
36175 	raw_spinlock_t lock;
36176 	u32 head;
36177 	u32 tail;
36178 	u32 size;
36179 	int: 32;
36180 	char elements[0];
36181 	long: 64;
36182 	long: 64;
36183 	long: 64;
36184 	long: 64;
36185 	long: 64;
36186 	long: 64;
36187 };
36188 
36189 enum {
36190 	BPF_RB_NO_WAKEUP = 1,
36191 	BPF_RB_FORCE_WAKEUP = 2,
36192 };
36193 
36194 enum {
36195 	BPF_RB_AVAIL_DATA = 0,
36196 	BPF_RB_RING_SIZE = 1,
36197 	BPF_RB_CONS_POS = 2,
36198 	BPF_RB_PROD_POS = 3,
36199 };
36200 
36201 enum {
36202 	BPF_RINGBUF_BUSY_BIT = 2147483648,
36203 	BPF_RINGBUF_DISCARD_BIT = 1073741824,
36204 	BPF_RINGBUF_HDR_SZ = 8,
36205 };
36206 
36207 struct bpf_ringbuf {
36208 	wait_queue_head_t waitq;
36209 	struct irq_work work;
36210 	u64 mask;
36211 	struct page **pages;
36212 	int nr_pages;
36213 	long: 32;
36214 	long: 64;
36215 	long: 64;
36216 	long: 64;
36217 	long: 64;
36218 	long: 64;
36219 	long: 64;
36220 	long: 64;
36221 	spinlock_t spinlock;
36222 	long: 64;
36223 	long: 64;
36224 	long: 64;
36225 	long: 64;
36226 	long: 64;
36227 	long: 64;
36228 	long: 64;
36229 	long: 64;
36230 	long: 64;
36231 	long: 64;
36232 	long: 64;
36233 	long: 64;
36234 	long: 64;
36235 	long: 64;
36236 	long: 64;
36237 	long: 64;
36238 	long: 64;
36239 	long: 64;
36240 	long: 64;
36241 	long: 64;
36242 	long: 64;
36243 	long: 64;
36244 	long: 64;
36245 	long: 64;
36246 	long: 64;
36247 	long: 64;
36248 	long: 64;
36249 	long: 64;
36250 	long: 64;
36251 	long: 64;
36252 	long: 64;
36253 	long: 64;
36254 	long: 64;
36255 	long: 64;
36256 	long: 64;
36257 	long: 64;
36258 	long: 64;
36259 	long: 64;
36260 	long: 64;
36261 	long: 64;
36262 	long: 64;
36263 	long: 64;
36264 	long: 64;
36265 	long: 64;
36266 	long: 64;
36267 	long: 64;
36268 	long: 64;
36269 	long: 64;
36270 	long: 64;
36271 	long: 64;
36272 	long: 64;
36273 	long: 64;
36274 	long: 64;
36275 	long: 64;
36276 	long: 64;
36277 	long: 64;
36278 	long: 64;
36279 	long: 64;
36280 	long: 64;
36281 	long: 64;
36282 	long: 64;
36283 	long: 64;
36284 	long: 64;
36285 	long: 64;
36286 	long: 64;
36287 	long: 64;
36288 	long: 64;
36289 	long: 64;
36290 	long: 64;
36291 	long: 64;
36292 	long: 64;
36293 	long: 64;
36294 	long: 64;
36295 	long: 64;
36296 	long: 64;
36297 	long: 64;
36298 	long: 64;
36299 	long: 64;
36300 	long: 64;
36301 	long: 64;
36302 	long: 64;
36303 	long: 64;
36304 	long: 64;
36305 	long: 64;
36306 	long: 64;
36307 	long: 64;
36308 	long: 64;
36309 	long: 64;
36310 	long: 64;
36311 	long: 64;
36312 	long: 64;
36313 	long: 64;
36314 	long: 64;
36315 	long: 64;
36316 	long: 64;
36317 	long: 64;
36318 	long: 64;
36319 	long: 64;
36320 	long: 64;
36321 	long: 64;
36322 	long: 64;
36323 	long: 64;
36324 	long: 64;
36325 	long: 64;
36326 	long: 64;
36327 	long: 64;
36328 	long: 64;
36329 	long: 64;
36330 	long: 64;
36331 	long: 64;
36332 	long: 64;
36333 	long: 64;
36334 	long: 64;
36335 	long: 64;
36336 	long: 64;
36337 	long: 64;
36338 	long: 64;
36339 	long: 64;
36340 	long: 64;
36341 	long: 64;
36342 	long: 64;
36343 	long: 64;
36344 	long: 64;
36345 	long: 64;
36346 	long: 64;
36347 	long: 64;
36348 	long: 64;
36349 	long: 64;
36350 	long: 64;
36351 	long: 64;
36352 	long: 64;
36353 	long: 64;
36354 	long: 64;
36355 	long: 64;
36356 	long: 64;
36357 	long: 64;
36358 	long: 64;
36359 	long: 64;
36360 	long: 64;
36361 	long: 64;
36362 	long: 64;
36363 	long: 64;
36364 	long: 64;
36365 	long: 64;
36366 	long: 64;
36367 	long: 64;
36368 	long: 64;
36369 	long: 64;
36370 	long: 64;
36371 	long: 64;
36372 	long: 64;
36373 	long: 64;
36374 	long: 64;
36375 	long: 64;
36376 	long: 64;
36377 	long: 64;
36378 	long: 64;
36379 	long: 64;
36380 	long: 64;
36381 	long: 64;
36382 	long: 64;
36383 	long: 64;
36384 	long: 64;
36385 	long: 64;
36386 	long: 64;
36387 	long: 64;
36388 	long: 64;
36389 	long: 64;
36390 	long: 64;
36391 	long: 64;
36392 	long: 64;
36393 	long: 64;
36394 	long: 64;
36395 	long: 64;
36396 	long: 64;
36397 	long: 64;
36398 	long: 64;
36399 	long: 64;
36400 	long: 64;
36401 	long: 64;
36402 	long: 64;
36403 	long: 64;
36404 	long: 64;
36405 	long: 64;
36406 	long: 64;
36407 	long: 64;
36408 	long: 64;
36409 	long: 64;
36410 	long: 64;
36411 	long: 64;
36412 	long: 64;
36413 	long: 64;
36414 	long: 64;
36415 	long: 64;
36416 	long: 64;
36417 	long: 64;
36418 	long: 64;
36419 	long: 64;
36420 	long: 64;
36421 	long: 64;
36422 	long: 64;
36423 	long: 64;
36424 	long: 64;
36425 	long: 64;
36426 	long: 64;
36427 	long: 64;
36428 	long: 64;
36429 	long: 64;
36430 	long: 64;
36431 	long: 64;
36432 	long: 64;
36433 	long: 64;
36434 	long: 64;
36435 	long: 64;
36436 	long: 64;
36437 	long: 64;
36438 	long: 64;
36439 	long: 64;
36440 	long: 64;
36441 	long: 64;
36442 	long: 64;
36443 	long: 64;
36444 	long: 64;
36445 	long: 64;
36446 	long: 64;
36447 	long: 64;
36448 	long: 64;
36449 	long: 64;
36450 	long: 64;
36451 	long: 64;
36452 	long: 64;
36453 	long: 64;
36454 	long: 64;
36455 	long: 64;
36456 	long: 64;
36457 	long: 64;
36458 	long: 64;
36459 	long: 64;
36460 	long: 64;
36461 	long: 64;
36462 	long: 64;
36463 	long: 64;
36464 	long: 64;
36465 	long: 64;
36466 	long: 64;
36467 	long: 64;
36468 	long: 64;
36469 	long: 64;
36470 	long: 64;
36471 	long: 64;
36472 	long: 64;
36473 	long: 64;
36474 	long: 64;
36475 	long: 64;
36476 	long: 64;
36477 	long: 64;
36478 	long: 64;
36479 	long: 64;
36480 	long: 64;
36481 	long: 64;
36482 	long: 64;
36483 	long: 64;
36484 	long: 64;
36485 	long: 64;
36486 	long: 64;
36487 	long: 64;
36488 	long: 64;
36489 	long: 64;
36490 	long: 64;
36491 	long: 64;
36492 	long: 64;
36493 	long: 64;
36494 	long: 64;
36495 	long: 64;
36496 	long: 64;
36497 	long: 64;
36498 	long: 64;
36499 	long: 64;
36500 	long: 64;
36501 	long: 64;
36502 	long: 64;
36503 	long: 64;
36504 	long: 64;
36505 	long: 64;
36506 	long: 64;
36507 	long: 64;
36508 	long: 64;
36509 	long: 64;
36510 	long: 64;
36511 	long: 64;
36512 	long: 64;
36513 	long: 64;
36514 	long: 64;
36515 	long: 64;
36516 	long: 64;
36517 	long: 64;
36518 	long: 64;
36519 	long: 64;
36520 	long: 64;
36521 	long: 64;
36522 	long: 64;
36523 	long: 64;
36524 	long: 64;
36525 	long: 64;
36526 	long: 64;
36527 	long: 64;
36528 	long: 64;
36529 	long: 64;
36530 	long: 64;
36531 	long: 64;
36532 	long: 64;
36533 	long: 64;
36534 	long: 64;
36535 	long: 64;
36536 	long: 64;
36537 	long: 64;
36538 	long: 64;
36539 	long: 64;
36540 	long: 64;
36541 	long: 64;
36542 	long: 64;
36543 	long: 64;
36544 	long: 64;
36545 	long: 64;
36546 	long: 64;
36547 	long: 64;
36548 	long: 64;
36549 	long: 64;
36550 	long: 64;
36551 	long: 64;
36552 	long: 64;
36553 	long: 64;
36554 	long: 64;
36555 	long: 64;
36556 	long: 64;
36557 	long: 64;
36558 	long: 64;
36559 	long: 64;
36560 	long: 64;
36561 	long: 64;
36562 	long: 64;
36563 	long: 64;
36564 	long: 64;
36565 	long: 64;
36566 	long: 64;
36567 	long: 64;
36568 	long: 64;
36569 	long: 64;
36570 	long: 64;
36571 	long: 64;
36572 	long: 64;
36573 	long: 64;
36574 	long: 64;
36575 	long: 64;
36576 	long: 64;
36577 	long: 64;
36578 	long: 64;
36579 	long: 64;
36580 	long: 64;
36581 	long: 64;
36582 	long: 64;
36583 	long: 64;
36584 	long: 64;
36585 	long: 64;
36586 	long: 64;
36587 	long: 64;
36588 	long: 64;
36589 	long: 64;
36590 	long: 64;
36591 	long: 64;
36592 	long: 64;
36593 	long: 64;
36594 	long: 64;
36595 	long: 64;
36596 	long: 64;
36597 	long: 64;
36598 	long: 64;
36599 	long: 64;
36600 	long: 64;
36601 	long: 64;
36602 	long: 64;
36603 	long: 64;
36604 	long: 64;
36605 	long: 64;
36606 	long: 64;
36607 	long: 64;
36608 	long: 64;
36609 	long: 64;
36610 	long: 64;
36611 	long: 64;
36612 	long: 64;
36613 	long: 64;
36614 	long: 64;
36615 	long: 64;
36616 	long: 64;
36617 	long: 64;
36618 	long: 64;
36619 	long: 64;
36620 	long: 64;
36621 	long: 64;
36622 	long: 64;
36623 	long: 64;
36624 	long: 64;
36625 	long: 64;
36626 	long: 64;
36627 	long: 64;
36628 	long: 64;
36629 	long: 64;
36630 	long: 64;
36631 	long: 64;
36632 	long: 64;
36633 	long: 64;
36634 	long: 64;
36635 	long: 64;
36636 	long: 64;
36637 	long: 64;
36638 	long: 64;
36639 	long: 64;
36640 	long: 64;
36641 	long: 64;
36642 	long: 64;
36643 	long: 64;
36644 	long: 64;
36645 	long: 64;
36646 	long: 64;
36647 	long: 64;
36648 	long: 64;
36649 	long: 64;
36650 	long: 64;
36651 	long: 64;
36652 	long: 64;
36653 	long: 64;
36654 	long: 64;
36655 	long: 64;
36656 	long: 64;
36657 	long: 64;
36658 	long: 64;
36659 	long: 64;
36660 	long: 64;
36661 	long: 64;
36662 	long: 64;
36663 	long: 64;
36664 	long: 64;
36665 	long: 64;
36666 	long: 64;
36667 	long: 64;
36668 	long: 64;
36669 	long: 64;
36670 	long: 64;
36671 	long: 64;
36672 	long: 64;
36673 	long: 64;
36674 	long: 64;
36675 	long: 64;
36676 	long: 64;
36677 	long: 64;
36678 	long: 64;
36679 	long: 64;
36680 	long: 64;
36681 	long: 64;
36682 	long: 64;
36683 	long: 64;
36684 	long: 64;
36685 	long: 64;
36686 	long: 64;
36687 	long: 64;
36688 	long: 64;
36689 	long: 64;
36690 	long: 64;
36691 	long: 64;
36692 	long: 64;
36693 	long: 64;
36694 	long: 64;
36695 	long: 64;
36696 	long: 64;
36697 	long: 64;
36698 	long: 64;
36699 	long: 64;
36700 	long: 64;
36701 	long: 64;
36702 	long unsigned int consumer_pos;
36703 	long: 64;
36704 	long: 64;
36705 	long: 64;
36706 	long: 64;
36707 	long: 64;
36708 	long: 64;
36709 	long: 64;
36710 	long: 64;
36711 	long: 64;
36712 	long: 64;
36713 	long: 64;
36714 	long: 64;
36715 	long: 64;
36716 	long: 64;
36717 	long: 64;
36718 	long: 64;
36719 	long: 64;
36720 	long: 64;
36721 	long: 64;
36722 	long: 64;
36723 	long: 64;
36724 	long: 64;
36725 	long: 64;
36726 	long: 64;
36727 	long: 64;
36728 	long: 64;
36729 	long: 64;
36730 	long: 64;
36731 	long: 64;
36732 	long: 64;
36733 	long: 64;
36734 	long: 64;
36735 	long: 64;
36736 	long: 64;
36737 	long: 64;
36738 	long: 64;
36739 	long: 64;
36740 	long: 64;
36741 	long: 64;
36742 	long: 64;
36743 	long: 64;
36744 	long: 64;
36745 	long: 64;
36746 	long: 64;
36747 	long: 64;
36748 	long: 64;
36749 	long: 64;
36750 	long: 64;
36751 	long: 64;
36752 	long: 64;
36753 	long: 64;
36754 	long: 64;
36755 	long: 64;
36756 	long: 64;
36757 	long: 64;
36758 	long: 64;
36759 	long: 64;
36760 	long: 64;
36761 	long: 64;
36762 	long: 64;
36763 	long: 64;
36764 	long: 64;
36765 	long: 64;
36766 	long: 64;
36767 	long: 64;
36768 	long: 64;
36769 	long: 64;
36770 	long: 64;
36771 	long: 64;
36772 	long: 64;
36773 	long: 64;
36774 	long: 64;
36775 	long: 64;
36776 	long: 64;
36777 	long: 64;
36778 	long: 64;
36779 	long: 64;
36780 	long: 64;
36781 	long: 64;
36782 	long: 64;
36783 	long: 64;
36784 	long: 64;
36785 	long: 64;
36786 	long: 64;
36787 	long: 64;
36788 	long: 64;
36789 	long: 64;
36790 	long: 64;
36791 	long: 64;
36792 	long: 64;
36793 	long: 64;
36794 	long: 64;
36795 	long: 64;
36796 	long: 64;
36797 	long: 64;
36798 	long: 64;
36799 	long: 64;
36800 	long: 64;
36801 	long: 64;
36802 	long: 64;
36803 	long: 64;
36804 	long: 64;
36805 	long: 64;
36806 	long: 64;
36807 	long: 64;
36808 	long: 64;
36809 	long: 64;
36810 	long: 64;
36811 	long: 64;
36812 	long: 64;
36813 	long: 64;
36814 	long: 64;
36815 	long: 64;
36816 	long: 64;
36817 	long: 64;
36818 	long: 64;
36819 	long: 64;
36820 	long: 64;
36821 	long: 64;
36822 	long: 64;
36823 	long: 64;
36824 	long: 64;
36825 	long: 64;
36826 	long: 64;
36827 	long: 64;
36828 	long: 64;
36829 	long: 64;
36830 	long: 64;
36831 	long: 64;
36832 	long: 64;
36833 	long: 64;
36834 	long: 64;
36835 	long: 64;
36836 	long: 64;
36837 	long: 64;
36838 	long: 64;
36839 	long: 64;
36840 	long: 64;
36841 	long: 64;
36842 	long: 64;
36843 	long: 64;
36844 	long: 64;
36845 	long: 64;
36846 	long: 64;
36847 	long: 64;
36848 	long: 64;
36849 	long: 64;
36850 	long: 64;
36851 	long: 64;
36852 	long: 64;
36853 	long: 64;
36854 	long: 64;
36855 	long: 64;
36856 	long: 64;
36857 	long: 64;
36858 	long: 64;
36859 	long: 64;
36860 	long: 64;
36861 	long: 64;
36862 	long: 64;
36863 	long: 64;
36864 	long: 64;
36865 	long: 64;
36866 	long: 64;
36867 	long: 64;
36868 	long: 64;
36869 	long: 64;
36870 	long: 64;
36871 	long: 64;
36872 	long: 64;
36873 	long: 64;
36874 	long: 64;
36875 	long: 64;
36876 	long: 64;
36877 	long: 64;
36878 	long: 64;
36879 	long: 64;
36880 	long: 64;
36881 	long: 64;
36882 	long: 64;
36883 	long: 64;
36884 	long: 64;
36885 	long: 64;
36886 	long: 64;
36887 	long: 64;
36888 	long: 64;
36889 	long: 64;
36890 	long: 64;
36891 	long: 64;
36892 	long: 64;
36893 	long: 64;
36894 	long: 64;
36895 	long: 64;
36896 	long: 64;
36897 	long: 64;
36898 	long: 64;
36899 	long: 64;
36900 	long: 64;
36901 	long: 64;
36902 	long: 64;
36903 	long: 64;
36904 	long: 64;
36905 	long: 64;
36906 	long: 64;
36907 	long: 64;
36908 	long: 64;
36909 	long: 64;
36910 	long: 64;
36911 	long: 64;
36912 	long: 64;
36913 	long: 64;
36914 	long: 64;
36915 	long: 64;
36916 	long: 64;
36917 	long: 64;
36918 	long: 64;
36919 	long: 64;
36920 	long: 64;
36921 	long: 64;
36922 	long: 64;
36923 	long: 64;
36924 	long: 64;
36925 	long: 64;
36926 	long: 64;
36927 	long: 64;
36928 	long: 64;
36929 	long: 64;
36930 	long: 64;
36931 	long: 64;
36932 	long: 64;
36933 	long: 64;
36934 	long: 64;
36935 	long: 64;
36936 	long: 64;
36937 	long: 64;
36938 	long: 64;
36939 	long: 64;
36940 	long: 64;
36941 	long: 64;
36942 	long: 64;
36943 	long: 64;
36944 	long: 64;
36945 	long: 64;
36946 	long: 64;
36947 	long: 64;
36948 	long: 64;
36949 	long: 64;
36950 	long: 64;
36951 	long: 64;
36952 	long: 64;
36953 	long: 64;
36954 	long: 64;
36955 	long: 64;
36956 	long: 64;
36957 	long: 64;
36958 	long: 64;
36959 	long: 64;
36960 	long: 64;
36961 	long: 64;
36962 	long: 64;
36963 	long: 64;
36964 	long: 64;
36965 	long: 64;
36966 	long: 64;
36967 	long: 64;
36968 	long: 64;
36969 	long: 64;
36970 	long: 64;
36971 	long: 64;
36972 	long: 64;
36973 	long: 64;
36974 	long: 64;
36975 	long: 64;
36976 	long: 64;
36977 	long: 64;
36978 	long: 64;
36979 	long: 64;
36980 	long: 64;
36981 	long: 64;
36982 	long: 64;
36983 	long: 64;
36984 	long: 64;
36985 	long: 64;
36986 	long: 64;
36987 	long: 64;
36988 	long: 64;
36989 	long: 64;
36990 	long: 64;
36991 	long: 64;
36992 	long: 64;
36993 	long: 64;
36994 	long: 64;
36995 	long: 64;
36996 	long: 64;
36997 	long: 64;
36998 	long: 64;
36999 	long: 64;
37000 	long: 64;
37001 	long: 64;
37002 	long: 64;
37003 	long: 64;
37004 	long: 64;
37005 	long: 64;
37006 	long: 64;
37007 	long: 64;
37008 	long: 64;
37009 	long: 64;
37010 	long: 64;
37011 	long: 64;
37012 	long: 64;
37013 	long: 64;
37014 	long: 64;
37015 	long: 64;
37016 	long: 64;
37017 	long: 64;
37018 	long: 64;
37019 	long: 64;
37020 	long: 64;
37021 	long: 64;
37022 	long: 64;
37023 	long: 64;
37024 	long: 64;
37025 	long: 64;
37026 	long: 64;
37027 	long: 64;
37028 	long: 64;
37029 	long: 64;
37030 	long: 64;
37031 	long: 64;
37032 	long: 64;
37033 	long: 64;
37034 	long: 64;
37035 	long: 64;
37036 	long: 64;
37037 	long: 64;
37038 	long: 64;
37039 	long: 64;
37040 	long: 64;
37041 	long: 64;
37042 	long: 64;
37043 	long: 64;
37044 	long: 64;
37045 	long: 64;
37046 	long: 64;
37047 	long: 64;
37048 	long: 64;
37049 	long: 64;
37050 	long: 64;
37051 	long: 64;
37052 	long: 64;
37053 	long: 64;
37054 	long: 64;
37055 	long: 64;
37056 	long: 64;
37057 	long: 64;
37058 	long: 64;
37059 	long: 64;
37060 	long: 64;
37061 	long: 64;
37062 	long: 64;
37063 	long: 64;
37064 	long: 64;
37065 	long: 64;
37066 	long: 64;
37067 	long: 64;
37068 	long: 64;
37069 	long: 64;
37070 	long: 64;
37071 	long: 64;
37072 	long: 64;
37073 	long: 64;
37074 	long: 64;
37075 	long: 64;
37076 	long: 64;
37077 	long: 64;
37078 	long: 64;
37079 	long: 64;
37080 	long: 64;
37081 	long: 64;
37082 	long: 64;
37083 	long: 64;
37084 	long: 64;
37085 	long: 64;
37086 	long: 64;
37087 	long: 64;
37088 	long: 64;
37089 	long: 64;
37090 	long: 64;
37091 	long: 64;
37092 	long: 64;
37093 	long: 64;
37094 	long: 64;
37095 	long: 64;
37096 	long: 64;
37097 	long: 64;
37098 	long: 64;
37099 	long: 64;
37100 	long: 64;
37101 	long: 64;
37102 	long: 64;
37103 	long: 64;
37104 	long: 64;
37105 	long: 64;
37106 	long: 64;
37107 	long: 64;
37108 	long: 64;
37109 	long: 64;
37110 	long: 64;
37111 	long: 64;
37112 	long: 64;
37113 	long: 64;
37114 	long: 64;
37115 	long: 64;
37116 	long: 64;
37117 	long: 64;
37118 	long: 64;
37119 	long: 64;
37120 	long: 64;
37121 	long: 64;
37122 	long: 64;
37123 	long: 64;
37124 	long: 64;
37125 	long: 64;
37126 	long: 64;
37127 	long: 64;
37128 	long: 64;
37129 	long: 64;
37130 	long: 64;
37131 	long: 64;
37132 	long: 64;
37133 	long: 64;
37134 	long: 64;
37135 	long: 64;
37136 	long: 64;
37137 	long: 64;
37138 	long: 64;
37139 	long: 64;
37140 	long: 64;
37141 	long: 64;
37142 	long: 64;
37143 	long: 64;
37144 	long: 64;
37145 	long: 64;
37146 	long: 64;
37147 	long: 64;
37148 	long: 64;
37149 	long: 64;
37150 	long: 64;
37151 	long: 64;
37152 	long: 64;
37153 	long: 64;
37154 	long: 64;
37155 	long: 64;
37156 	long: 64;
37157 	long: 64;
37158 	long: 64;
37159 	long: 64;
37160 	long: 64;
37161 	long: 64;
37162 	long: 64;
37163 	long: 64;
37164 	long: 64;
37165 	long: 64;
37166 	long: 64;
37167 	long: 64;
37168 	long: 64;
37169 	long: 64;
37170 	long: 64;
37171 	long: 64;
37172 	long: 64;
37173 	long: 64;
37174 	long: 64;
37175 	long: 64;
37176 	long: 64;
37177 	long: 64;
37178 	long: 64;
37179 	long: 64;
37180 	long: 64;
37181 	long: 64;
37182 	long: 64;
37183 	long: 64;
37184 	long: 64;
37185 	long: 64;
37186 	long: 64;
37187 	long: 64;
37188 	long: 64;
37189 	long: 64;
37190 	long: 64;
37191 	long: 64;
37192 	long: 64;
37193 	long: 64;
37194 	long: 64;
37195 	long: 64;
37196 	long: 64;
37197 	long: 64;
37198 	long: 64;
37199 	long: 64;
37200 	long: 64;
37201 	long: 64;
37202 	long: 64;
37203 	long: 64;
37204 	long: 64;
37205 	long: 64;
37206 	long: 64;
37207 	long: 64;
37208 	long: 64;
37209 	long: 64;
37210 	long: 64;
37211 	long: 64;
37212 	long: 64;
37213 	long: 64;
37214 	long unsigned int producer_pos;
37215 	long: 64;
37216 	long: 64;
37217 	long: 64;
37218 	long: 64;
37219 	long: 64;
37220 	long: 64;
37221 	long: 64;
37222 	long: 64;
37223 	long: 64;
37224 	long: 64;
37225 	long: 64;
37226 	long: 64;
37227 	long: 64;
37228 	long: 64;
37229 	long: 64;
37230 	long: 64;
37231 	long: 64;
37232 	long: 64;
37233 	long: 64;
37234 	long: 64;
37235 	long: 64;
37236 	long: 64;
37237 	long: 64;
37238 	long: 64;
37239 	long: 64;
37240 	long: 64;
37241 	long: 64;
37242 	long: 64;
37243 	long: 64;
37244 	long: 64;
37245 	long: 64;
37246 	long: 64;
37247 	long: 64;
37248 	long: 64;
37249 	long: 64;
37250 	long: 64;
37251 	long: 64;
37252 	long: 64;
37253 	long: 64;
37254 	long: 64;
37255 	long: 64;
37256 	long: 64;
37257 	long: 64;
37258 	long: 64;
37259 	long: 64;
37260 	long: 64;
37261 	long: 64;
37262 	long: 64;
37263 	long: 64;
37264 	long: 64;
37265 	long: 64;
37266 	long: 64;
37267 	long: 64;
37268 	long: 64;
37269 	long: 64;
37270 	long: 64;
37271 	long: 64;
37272 	long: 64;
37273 	long: 64;
37274 	long: 64;
37275 	long: 64;
37276 	long: 64;
37277 	long: 64;
37278 	long: 64;
37279 	long: 64;
37280 	long: 64;
37281 	long: 64;
37282 	long: 64;
37283 	long: 64;
37284 	long: 64;
37285 	long: 64;
37286 	long: 64;
37287 	long: 64;
37288 	long: 64;
37289 	long: 64;
37290 	long: 64;
37291 	long: 64;
37292 	long: 64;
37293 	long: 64;
37294 	long: 64;
37295 	long: 64;
37296 	long: 64;
37297 	long: 64;
37298 	long: 64;
37299 	long: 64;
37300 	long: 64;
37301 	long: 64;
37302 	long: 64;
37303 	long: 64;
37304 	long: 64;
37305 	long: 64;
37306 	long: 64;
37307 	long: 64;
37308 	long: 64;
37309 	long: 64;
37310 	long: 64;
37311 	long: 64;
37312 	long: 64;
37313 	long: 64;
37314 	long: 64;
37315 	long: 64;
37316 	long: 64;
37317 	long: 64;
37318 	long: 64;
37319 	long: 64;
37320 	long: 64;
37321 	long: 64;
37322 	long: 64;
37323 	long: 64;
37324 	long: 64;
37325 	long: 64;
37326 	long: 64;
37327 	long: 64;
37328 	long: 64;
37329 	long: 64;
37330 	long: 64;
37331 	long: 64;
37332 	long: 64;
37333 	long: 64;
37334 	long: 64;
37335 	long: 64;
37336 	long: 64;
37337 	long: 64;
37338 	long: 64;
37339 	long: 64;
37340 	long: 64;
37341 	long: 64;
37342 	long: 64;
37343 	long: 64;
37344 	long: 64;
37345 	long: 64;
37346 	long: 64;
37347 	long: 64;
37348 	long: 64;
37349 	long: 64;
37350 	long: 64;
37351 	long: 64;
37352 	long: 64;
37353 	long: 64;
37354 	long: 64;
37355 	long: 64;
37356 	long: 64;
37357 	long: 64;
37358 	long: 64;
37359 	long: 64;
37360 	long: 64;
37361 	long: 64;
37362 	long: 64;
37363 	long: 64;
37364 	long: 64;
37365 	long: 64;
37366 	long: 64;
37367 	long: 64;
37368 	long: 64;
37369 	long: 64;
37370 	long: 64;
37371 	long: 64;
37372 	long: 64;
37373 	long: 64;
37374 	long: 64;
37375 	long: 64;
37376 	long: 64;
37377 	long: 64;
37378 	long: 64;
37379 	long: 64;
37380 	long: 64;
37381 	long: 64;
37382 	long: 64;
37383 	long: 64;
37384 	long: 64;
37385 	long: 64;
37386 	long: 64;
37387 	long: 64;
37388 	long: 64;
37389 	long: 64;
37390 	long: 64;
37391 	long: 64;
37392 	long: 64;
37393 	long: 64;
37394 	long: 64;
37395 	long: 64;
37396 	long: 64;
37397 	long: 64;
37398 	long: 64;
37399 	long: 64;
37400 	long: 64;
37401 	long: 64;
37402 	long: 64;
37403 	long: 64;
37404 	long: 64;
37405 	long: 64;
37406 	long: 64;
37407 	long: 64;
37408 	long: 64;
37409 	long: 64;
37410 	long: 64;
37411 	long: 64;
37412 	long: 64;
37413 	long: 64;
37414 	long: 64;
37415 	long: 64;
37416 	long: 64;
37417 	long: 64;
37418 	long: 64;
37419 	long: 64;
37420 	long: 64;
37421 	long: 64;
37422 	long: 64;
37423 	long: 64;
37424 	long: 64;
37425 	long: 64;
37426 	long: 64;
37427 	long: 64;
37428 	long: 64;
37429 	long: 64;
37430 	long: 64;
37431 	long: 64;
37432 	long: 64;
37433 	long: 64;
37434 	long: 64;
37435 	long: 64;
37436 	long: 64;
37437 	long: 64;
37438 	long: 64;
37439 	long: 64;
37440 	long: 64;
37441 	long: 64;
37442 	long: 64;
37443 	long: 64;
37444 	long: 64;
37445 	long: 64;
37446 	long: 64;
37447 	long: 64;
37448 	long: 64;
37449 	long: 64;
37450 	long: 64;
37451 	long: 64;
37452 	long: 64;
37453 	long: 64;
37454 	long: 64;
37455 	long: 64;
37456 	long: 64;
37457 	long: 64;
37458 	long: 64;
37459 	long: 64;
37460 	long: 64;
37461 	long: 64;
37462 	long: 64;
37463 	long: 64;
37464 	long: 64;
37465 	long: 64;
37466 	long: 64;
37467 	long: 64;
37468 	long: 64;
37469 	long: 64;
37470 	long: 64;
37471 	long: 64;
37472 	long: 64;
37473 	long: 64;
37474 	long: 64;
37475 	long: 64;
37476 	long: 64;
37477 	long: 64;
37478 	long: 64;
37479 	long: 64;
37480 	long: 64;
37481 	long: 64;
37482 	long: 64;
37483 	long: 64;
37484 	long: 64;
37485 	long: 64;
37486 	long: 64;
37487 	long: 64;
37488 	long: 64;
37489 	long: 64;
37490 	long: 64;
37491 	long: 64;
37492 	long: 64;
37493 	long: 64;
37494 	long: 64;
37495 	long: 64;
37496 	long: 64;
37497 	long: 64;
37498 	long: 64;
37499 	long: 64;
37500 	long: 64;
37501 	long: 64;
37502 	long: 64;
37503 	long: 64;
37504 	long: 64;
37505 	long: 64;
37506 	long: 64;
37507 	long: 64;
37508 	long: 64;
37509 	long: 64;
37510 	long: 64;
37511 	long: 64;
37512 	long: 64;
37513 	long: 64;
37514 	long: 64;
37515 	long: 64;
37516 	long: 64;
37517 	long: 64;
37518 	long: 64;
37519 	long: 64;
37520 	long: 64;
37521 	long: 64;
37522 	long: 64;
37523 	long: 64;
37524 	long: 64;
37525 	long: 64;
37526 	long: 64;
37527 	long: 64;
37528 	long: 64;
37529 	long: 64;
37530 	long: 64;
37531 	long: 64;
37532 	long: 64;
37533 	long: 64;
37534 	long: 64;
37535 	long: 64;
37536 	long: 64;
37537 	long: 64;
37538 	long: 64;
37539 	long: 64;
37540 	long: 64;
37541 	long: 64;
37542 	long: 64;
37543 	long: 64;
37544 	long: 64;
37545 	long: 64;
37546 	long: 64;
37547 	long: 64;
37548 	long: 64;
37549 	long: 64;
37550 	long: 64;
37551 	long: 64;
37552 	long: 64;
37553 	long: 64;
37554 	long: 64;
37555 	long: 64;
37556 	long: 64;
37557 	long: 64;
37558 	long: 64;
37559 	long: 64;
37560 	long: 64;
37561 	long: 64;
37562 	long: 64;
37563 	long: 64;
37564 	long: 64;
37565 	long: 64;
37566 	long: 64;
37567 	long: 64;
37568 	long: 64;
37569 	long: 64;
37570 	long: 64;
37571 	long: 64;
37572 	long: 64;
37573 	long: 64;
37574 	long: 64;
37575 	long: 64;
37576 	long: 64;
37577 	long: 64;
37578 	long: 64;
37579 	long: 64;
37580 	long: 64;
37581 	long: 64;
37582 	long: 64;
37583 	long: 64;
37584 	long: 64;
37585 	long: 64;
37586 	long: 64;
37587 	long: 64;
37588 	long: 64;
37589 	long: 64;
37590 	long: 64;
37591 	long: 64;
37592 	long: 64;
37593 	long: 64;
37594 	long: 64;
37595 	long: 64;
37596 	long: 64;
37597 	long: 64;
37598 	long: 64;
37599 	long: 64;
37600 	long: 64;
37601 	long: 64;
37602 	long: 64;
37603 	long: 64;
37604 	long: 64;
37605 	long: 64;
37606 	long: 64;
37607 	long: 64;
37608 	long: 64;
37609 	long: 64;
37610 	long: 64;
37611 	long: 64;
37612 	long: 64;
37613 	long: 64;
37614 	long: 64;
37615 	long: 64;
37616 	long: 64;
37617 	long: 64;
37618 	long: 64;
37619 	long: 64;
37620 	long: 64;
37621 	long: 64;
37622 	long: 64;
37623 	long: 64;
37624 	long: 64;
37625 	long: 64;
37626 	long: 64;
37627 	long: 64;
37628 	long: 64;
37629 	long: 64;
37630 	long: 64;
37631 	long: 64;
37632 	long: 64;
37633 	long: 64;
37634 	long: 64;
37635 	long: 64;
37636 	long: 64;
37637 	long: 64;
37638 	long: 64;
37639 	long: 64;
37640 	long: 64;
37641 	long: 64;
37642 	long: 64;
37643 	long: 64;
37644 	long: 64;
37645 	long: 64;
37646 	long: 64;
37647 	long: 64;
37648 	long: 64;
37649 	long: 64;
37650 	long: 64;
37651 	long: 64;
37652 	long: 64;
37653 	long: 64;
37654 	long: 64;
37655 	long: 64;
37656 	long: 64;
37657 	long: 64;
37658 	long: 64;
37659 	long: 64;
37660 	long: 64;
37661 	long: 64;
37662 	long: 64;
37663 	long: 64;
37664 	long: 64;
37665 	long: 64;
37666 	long: 64;
37667 	long: 64;
37668 	long: 64;
37669 	long: 64;
37670 	long: 64;
37671 	long: 64;
37672 	long: 64;
37673 	long: 64;
37674 	long: 64;
37675 	long: 64;
37676 	long: 64;
37677 	long: 64;
37678 	long: 64;
37679 	long: 64;
37680 	long: 64;
37681 	long: 64;
37682 	long: 64;
37683 	long: 64;
37684 	long: 64;
37685 	long: 64;
37686 	long: 64;
37687 	long: 64;
37688 	long: 64;
37689 	long: 64;
37690 	long: 64;
37691 	long: 64;
37692 	long: 64;
37693 	long: 64;
37694 	long: 64;
37695 	long: 64;
37696 	long: 64;
37697 	long: 64;
37698 	long: 64;
37699 	long: 64;
37700 	long: 64;
37701 	long: 64;
37702 	long: 64;
37703 	long: 64;
37704 	long: 64;
37705 	long: 64;
37706 	long: 64;
37707 	long: 64;
37708 	long: 64;
37709 	long: 64;
37710 	long: 64;
37711 	long: 64;
37712 	long: 64;
37713 	long: 64;
37714 	long: 64;
37715 	long: 64;
37716 	long: 64;
37717 	long: 64;
37718 	long: 64;
37719 	long: 64;
37720 	long: 64;
37721 	long: 64;
37722 	long: 64;
37723 	long: 64;
37724 	long: 64;
37725 	long: 64;
37726 	char data[0];
37727 };
37728 
37729 struct bpf_ringbuf_map {
37730 	struct bpf_map map;
37731 	struct bpf_ringbuf *rb;
37732 	long: 64;
37733 	long: 64;
37734 	long: 64;
37735 	long: 64;
37736 	long: 64;
37737 	long: 64;
37738 	long: 64;
37739 };
37740 
37741 struct bpf_ringbuf_hdr {
37742 	u32 len;
37743 	u32 pg_off;
37744 };
37745 
37746 typedef u64 (*btf_bpf_ringbuf_reserve)(struct bpf_map *, u64, u64);
37747 
37748 typedef u64 (*btf_bpf_ringbuf_submit)(void *, u64);
37749 
37750 typedef u64 (*btf_bpf_ringbuf_discard)(void *, u64);
37751 
37752 typedef u64 (*btf_bpf_ringbuf_output)(struct bpf_map *, void *, u64, u64);
37753 
37754 typedef u64 (*btf_bpf_ringbuf_query)(struct bpf_map *, u64);
37755 
37756 struct bpf_local_storage_elem {
37757 	struct hlist_node map_node;
37758 	struct hlist_node snode;
37759 	struct bpf_local_storage *local_storage;
37760 	struct callback_head rcu;
37761 	long: 64;
37762 	struct bpf_local_storage_data sdata;
37763 	long: 64;
37764 	long: 64;
37765 	long: 64;
37766 	long: 64;
37767 	long: 64;
37768 	long: 64;
37769 	long: 64;
37770 };
37771 
37772 struct bpf_local_storage_cache {
37773 	spinlock_t idx_lock;
37774 	u64 idx_usage_counts[16];
37775 };
37776 
37777 enum {
37778 	BPF_LOCAL_STORAGE_GET_F_CREATE = 1,
37779 	BPF_SK_STORAGE_GET_F_CREATE = 1,
37780 };
37781 
37782 typedef u64 (*btf_bpf_task_storage_get)(struct bpf_map *, struct task_struct *, void *, u64);
37783 
37784 typedef u64 (*btf_bpf_task_storage_delete)(struct bpf_map *, struct task_struct *);
37785 
37786 struct bpf_storage_blob {
37787 	struct bpf_local_storage *storage;
37788 };
37789 
37790 typedef u64 (*btf_bpf_inode_storage_get)(struct bpf_map *, struct inode *, void *, u64);
37791 
37792 typedef u64 (*btf_bpf_inode_storage_delete)(struct bpf_map *, struct inode *);
37793 
37794 struct btf_enum {
37795 	__u32 name_off;
37796 	__s32 val;
37797 };
37798 
37799 struct btf_array {
37800 	__u32 type;
37801 	__u32 index_type;
37802 	__u32 nelems;
37803 };
37804 
37805 enum {
37806 	BTF_VAR_STATIC = 0,
37807 	BTF_VAR_GLOBAL_ALLOCATED = 1,
37808 	BTF_VAR_GLOBAL_EXTERN = 2,
37809 };
37810 
37811 struct btf_var {
37812 	__u32 linkage;
37813 };
37814 
37815 struct btf_decl_tag {
37816 	__s32 component_idx;
37817 };
37818 
37819 struct bpf_flow_keys {
37820 	__u16 nhoff;
37821 	__u16 thoff;
37822 	__u16 addr_proto;
37823 	__u8 is_frag;
37824 	__u8 is_first_frag;
37825 	__u8 is_encap;
37826 	__u8 ip_proto;
37827 	__be16 n_proto;
37828 	__be16 sport;
37829 	__be16 dport;
37830 	union {
37831 		struct {
37832 			__be32 ipv4_src;
37833 			__be32 ipv4_dst;
37834 		};
37835 		struct {
37836 			__u32 ipv6_src[4];
37837 			__u32 ipv6_dst[4];
37838 		};
37839 	};
37840 	__u32 flags;
37841 	__be32 flow_label;
37842 };
37843 
37844 struct bpf_sock {
37845 	__u32 bound_dev_if;
37846 	__u32 family;
37847 	__u32 type;
37848 	__u32 protocol;
37849 	__u32 mark;
37850 	__u32 priority;
37851 	__u32 src_ip4;
37852 	__u32 src_ip6[4];
37853 	__u32 src_port;
37854 	__u32 dst_port;
37855 	__u32 dst_ip4;
37856 	__u32 dst_ip6[4];
37857 	__u32 state;
37858 	__s32 rx_queue_mapping;
37859 };
37860 
37861 struct __sk_buff {
37862 	__u32 len;
37863 	__u32 pkt_type;
37864 	__u32 mark;
37865 	__u32 queue_mapping;
37866 	__u32 protocol;
37867 	__u32 vlan_present;
37868 	__u32 vlan_tci;
37869 	__u32 vlan_proto;
37870 	__u32 priority;
37871 	__u32 ingress_ifindex;
37872 	__u32 ifindex;
37873 	__u32 tc_index;
37874 	__u32 cb[5];
37875 	__u32 hash;
37876 	__u32 tc_classid;
37877 	__u32 data;
37878 	__u32 data_end;
37879 	__u32 napi_id;
37880 	__u32 family;
37881 	__u32 remote_ip4;
37882 	__u32 local_ip4;
37883 	__u32 remote_ip6[4];
37884 	__u32 local_ip6[4];
37885 	__u32 remote_port;
37886 	__u32 local_port;
37887 	__u32 data_meta;
37888 	union {
37889 		struct bpf_flow_keys *flow_keys;
37890 	};
37891 	__u64 tstamp;
37892 	__u32 wire_len;
37893 	__u32 gso_segs;
37894 	union {
37895 		struct bpf_sock *sk;
37896 	};
37897 	__u32 gso_size;
37898 	__u64 hwtstamp;
37899 };
37900 
37901 struct xdp_md {
37902 	__u32 data;
37903 	__u32 data_end;
37904 	__u32 data_meta;
37905 	__u32 ingress_ifindex;
37906 	__u32 rx_queue_index;
37907 	__u32 egress_ifindex;
37908 };
37909 
37910 struct sk_msg_md {
37911 	union {
37912 		void *data;
37913 	};
37914 	union {
37915 		void *data_end;
37916 	};
37917 	__u32 family;
37918 	__u32 remote_ip4;
37919 	__u32 local_ip4;
37920 	__u32 remote_ip6[4];
37921 	__u32 local_ip6[4];
37922 	__u32 remote_port;
37923 	__u32 local_port;
37924 	__u32 size;
37925 	union {
37926 		struct bpf_sock *sk;
37927 	};
37928 };
37929 
37930 struct sk_reuseport_md {
37931 	union {
37932 		void *data;
37933 	};
37934 	union {
37935 		void *data_end;
37936 	};
37937 	__u32 len;
37938 	__u32 eth_protocol;
37939 	__u32 ip_protocol;
37940 	__u32 bind_inany;
37941 	__u32 hash;
37942 	union {
37943 		struct bpf_sock *sk;
37944 	};
37945 	union {
37946 		struct bpf_sock *migrating_sk;
37947 	};
37948 };
37949 
37950 struct bpf_sock_addr {
37951 	__u32 user_family;
37952 	__u32 user_ip4;
37953 	__u32 user_ip6[4];
37954 	__u32 user_port;
37955 	__u32 family;
37956 	__u32 type;
37957 	__u32 protocol;
37958 	__u32 msg_src_ip4;
37959 	__u32 msg_src_ip6[4];
37960 	union {
37961 		struct bpf_sock *sk;
37962 	};
37963 };
37964 
37965 struct bpf_sock_ops {
37966 	__u32 op;
37967 	union {
37968 		__u32 args[4];
37969 		__u32 reply;
37970 		__u32 replylong[4];
37971 	};
37972 	__u32 family;
37973 	__u32 remote_ip4;
37974 	__u32 local_ip4;
37975 	__u32 remote_ip6[4];
37976 	__u32 local_ip6[4];
37977 	__u32 remote_port;
37978 	__u32 local_port;
37979 	__u32 is_fullsock;
37980 	__u32 snd_cwnd;
37981 	__u32 srtt_us;
37982 	__u32 bpf_sock_ops_cb_flags;
37983 	__u32 state;
37984 	__u32 rtt_min;
37985 	__u32 snd_ssthresh;
37986 	__u32 rcv_nxt;
37987 	__u32 snd_nxt;
37988 	__u32 snd_una;
37989 	__u32 mss_cache;
37990 	__u32 ecn_flags;
37991 	__u32 rate_delivered;
37992 	__u32 rate_interval_us;
37993 	__u32 packets_out;
37994 	__u32 retrans_out;
37995 	__u32 total_retrans;
37996 	__u32 segs_in;
37997 	__u32 data_segs_in;
37998 	__u32 segs_out;
37999 	__u32 data_segs_out;
38000 	__u32 lost_out;
38001 	__u32 sacked_out;
38002 	__u32 sk_txhash;
38003 	__u64 bytes_received;
38004 	__u64 bytes_acked;
38005 	union {
38006 		struct bpf_sock *sk;
38007 	};
38008 	union {
38009 		void *skb_data;
38010 	};
38011 	union {
38012 		void *skb_data_end;
38013 	};
38014 	__u32 skb_len;
38015 	__u32 skb_tcp_flags;
38016 };
38017 
38018 struct bpf_cgroup_dev_ctx {
38019 	__u32 access_type;
38020 	__u32 major;
38021 	__u32 minor;
38022 };
38023 
38024 struct bpf_sysctl {
38025 	__u32 write;
38026 	__u32 file_pos;
38027 };
38028 
38029 struct bpf_sockopt {
38030 	union {
38031 		struct bpf_sock *sk;
38032 	};
38033 	union {
38034 		void *optval;
38035 	};
38036 	union {
38037 		void *optval_end;
38038 	};
38039 	__s32 level;
38040 	__s32 optname;
38041 	__s32 optlen;
38042 	__s32 retval;
38043 };
38044 
38045 struct bpf_sk_lookup {
38046 	union {
38047 		union {
38048 			struct bpf_sock *sk;
38049 		};
38050 		__u64 cookie;
38051 	};
38052 	__u32 family;
38053 	__u32 protocol;
38054 	__u32 remote_ip4;
38055 	__u32 remote_ip6[4];
38056 	__u32 remote_port;
38057 	__u32 local_ip4;
38058 	__u32 local_ip6[4];
38059 	__u32 local_port;
38060 	__u32 ingress_ifindex;
38061 };
38062 
38063 struct sk_reuseport_kern {
38064 	struct sk_buff *skb;
38065 	struct sock *sk;
38066 	struct sock *selected_sk;
38067 	struct sock *migrating_sk;
38068 	void *data_end;
38069 	u32 hash;
38070 	u32 reuseport_id;
38071 	bool bind_inany;
38072 };
38073 
38074 struct btf_kfunc_id_set {
38075 	struct module *owner;
38076 	union {
38077 		struct {
38078 			struct btf_id_set *check_set;
38079 			struct btf_id_set *acquire_set;
38080 			struct btf_id_set *release_set;
38081 			struct btf_id_set *ret_null_set;
38082 		};
38083 		struct btf_id_set *sets[4];
38084 	};
38085 };
38086 
38087 struct bpf_flow_dissector {
38088 	struct bpf_flow_keys *flow_keys;
38089 	const struct sk_buff *skb;
38090 	const void *data;
38091 	const void *data_end;
38092 };
38093 
38094 struct inet_listen_hashbucket {
38095 	spinlock_t lock;
38096 	unsigned int count;
38097 	union {
38098 		struct hlist_head head;
38099 		struct hlist_nulls_head nulls_head;
38100 	};
38101 };
38102 
38103 struct inet_ehash_bucket;
38104 
38105 struct inet_bind_hashbucket;
38106 
38107 struct inet_hashinfo {
38108 	struct inet_ehash_bucket *ehash;
38109 	spinlock_t *ehash_locks;
38110 	unsigned int ehash_mask;
38111 	unsigned int ehash_locks_mask;
38112 	struct kmem_cache *bind_bucket_cachep;
38113 	struct inet_bind_hashbucket *bhash;
38114 	unsigned int bhash_size;
38115 	unsigned int lhash2_mask;
38116 	struct inet_listen_hashbucket *lhash2;
38117 	long: 64;
38118 	struct inet_listen_hashbucket listening_hash[32];
38119 };
38120 
38121 struct ip_ra_chain {
38122 	struct ip_ra_chain *next;
38123 	struct sock *sk;
38124 	union {
38125 		void (*destructor)(struct sock *);
38126 		struct sock *saved_sk;
38127 	};
38128 	struct callback_head rcu;
38129 };
38130 
38131 struct fib_table {
38132 	struct hlist_node tb_hlist;
38133 	u32 tb_id;
38134 	int tb_num_default;
38135 	struct callback_head rcu;
38136 	long unsigned int *tb_data;
38137 	long unsigned int __data[0];
38138 };
38139 
38140 struct inet_peer_base {
38141 	struct rb_root rb_root;
38142 	seqlock_t lock;
38143 	int total;
38144 };
38145 
38146 struct tcp_fastopen_context {
38147 	siphash_key_t key[2];
38148 	int num;
38149 	struct callback_head rcu;
38150 };
38151 
38152 struct in_addr {
38153 	__be32 s_addr;
38154 };
38155 
38156 struct bpf_sock_addr_kern {
38157 	struct sock *sk;
38158 	struct sockaddr *uaddr;
38159 	u64 tmp_reg;
38160 	void *t_ctx;
38161 };
38162 
38163 struct bpf_sock_ops_kern {
38164 	struct sock *sk;
38165 	union {
38166 		u32 args[4];
38167 		u32 reply;
38168 		u32 replylong[4];
38169 	};
38170 	struct sk_buff *syn_skb;
38171 	struct sk_buff *skb;
38172 	void *skb_data_end;
38173 	u8 op;
38174 	u8 is_fullsock;
38175 	u8 remaining_opt_len;
38176 	u64 temp;
38177 };
38178 
38179 struct bpf_sysctl_kern {
38180 	struct ctl_table_header *head;
38181 	struct ctl_table *table;
38182 	void *cur_val;
38183 	size_t cur_len;
38184 	void *new_val;
38185 	size_t new_len;
38186 	int new_updated;
38187 	int write;
38188 	loff_t *ppos;
38189 	u64 tmp_reg;
38190 };
38191 
38192 struct bpf_sockopt_kern {
38193 	struct sock *sk;
38194 	u8 *optval;
38195 	u8 *optval_end;
38196 	s32 level;
38197 	s32 optname;
38198 	s32 optlen;
38199 	struct task_struct *current_task;
38200 	u64 tmp_reg;
38201 };
38202 
38203 struct bpf_sk_lookup_kern {
38204 	u16 family;
38205 	u16 protocol;
38206 	__be16 sport;
38207 	u16 dport;
38208 	struct {
38209 		__be32 saddr;
38210 		__be32 daddr;
38211 	} v4;
38212 	struct {
38213 		const struct in6_addr *saddr;
38214 		const struct in6_addr *daddr;
38215 	} v6;
38216 	struct sock *selected_sk;
38217 	u32 ingress_ifindex;
38218 	bool no_reuseport;
38219 };
38220 
38221 struct lwtunnel_state {
38222 	__u16 type;
38223 	__u16 flags;
38224 	__u16 headroom;
38225 	atomic_t refcnt;
38226 	int (*orig_output)(struct net *, struct sock *, struct sk_buff *);
38227 	int (*orig_input)(struct sk_buff *);
38228 	struct callback_head rcu;
38229 	__u8 data[0];
38230 };
38231 
38232 struct sock_reuseport {
38233 	struct callback_head rcu;
38234 	u16 max_socks;
38235 	u16 num_socks;
38236 	u16 num_closed_socks;
38237 	unsigned int synq_overflow_ts;
38238 	unsigned int reuseport_id;
38239 	unsigned int bind_inany: 1;
38240 	unsigned int has_conns: 1;
38241 	struct bpf_prog *prog;
38242 	struct sock *socks[0];
38243 };
38244 
38245 struct sk_psock_progs {
38246 	struct bpf_prog *msg_parser;
38247 	struct bpf_prog *stream_parser;
38248 	struct bpf_prog *stream_verdict;
38249 	struct bpf_prog *skb_verdict;
38250 };
38251 
38252 struct strp_stats {
38253 	long long unsigned int msgs;
38254 	long long unsigned int bytes;
38255 	unsigned int mem_fail;
38256 	unsigned int need_more_hdr;
38257 	unsigned int msg_too_big;
38258 	unsigned int msg_timeouts;
38259 	unsigned int bad_hdr_len;
38260 };
38261 
38262 struct strparser;
38263 
38264 struct strp_callbacks {
38265 	int (*parse_msg)(struct strparser *, struct sk_buff *);
38266 	void (*rcv_msg)(struct strparser *, struct sk_buff *);
38267 	int (*read_sock_done)(struct strparser *, int);
38268 	void (*abort_parser)(struct strparser *, int);
38269 	void (*lock)(struct strparser *);
38270 	void (*unlock)(struct strparser *);
38271 };
38272 
38273 struct strparser {
38274 	struct sock *sk;
38275 	u32 stopped: 1;
38276 	u32 paused: 1;
38277 	u32 aborted: 1;
38278 	u32 interrupted: 1;
38279 	u32 unrecov_intr: 1;
38280 	struct sk_buff **skb_nextp;
38281 	struct sk_buff *skb_head;
38282 	unsigned int need_bytes;
38283 	struct delayed_work msg_timer_work;
38284 	struct work_struct work;
38285 	struct strp_stats stats;
38286 	struct strp_callbacks cb;
38287 };
38288 
38289 struct sk_psock_work_state {
38290 	struct sk_buff *skb;
38291 	u32 len;
38292 	u32 off;
38293 };
38294 
38295 struct sk_msg;
38296 
38297 struct sk_psock {
38298 	struct sock *sk;
38299 	struct sock *sk_redir;
38300 	u32 apply_bytes;
38301 	u32 cork_bytes;
38302 	u32 eval;
38303 	struct sk_msg *cork;
38304 	struct sk_psock_progs progs;
38305 	struct strparser strp;
38306 	struct sk_buff_head ingress_skb;
38307 	struct list_head ingress_msg;
38308 	spinlock_t ingress_lock;
38309 	long unsigned int state;
38310 	struct list_head link;
38311 	spinlock_t link_lock;
38312 	refcount_t refcnt;
38313 	void (*saved_unhash)(struct sock *);
38314 	void (*saved_close)(struct sock *, long int);
38315 	void (*saved_write_space)(struct sock *);
38316 	void (*saved_data_ready)(struct sock *);
38317 	int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool);
38318 	struct proto *sk_proto;
38319 	struct mutex work_mutex;
38320 	struct sk_psock_work_state work_state;
38321 	struct work_struct work;
38322 	struct rcu_work rwork;
38323 };
38324 
38325 struct inet_connection_sock_af_ops {
38326 	int (*queue_xmit)(struct sock *, struct sk_buff *, struct flowi *);
38327 	void (*send_check)(struct sock *, struct sk_buff *);
38328 	int (*rebuild_header)(struct sock *);
38329 	void (*sk_rx_dst_set)(struct sock *, const struct sk_buff *);
38330 	int (*conn_request)(struct sock *, struct sk_buff *);
38331 	struct sock * (*syn_recv_sock)(const struct sock *, struct sk_buff *, struct request_sock *, struct dst_entry *, struct request_sock *, bool *);
38332 	u16 net_header_len;
38333 	u16 net_frag_header_len;
38334 	u16 sockaddr_len;
38335 	int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int);
38336 	int (*getsockopt)(struct sock *, int, int, char *, int *);
38337 	void (*addr2sockaddr)(struct sock *, struct sockaddr *);
38338 	void (*mtu_reduced)(struct sock *);
38339 };
38340 
38341 struct tcp_fastopen_cookie {
38342 	__le64 val[2];
38343 	s8 len;
38344 	bool exp;
38345 };
38346 
38347 enum tcp_synack_type {
38348 	TCP_SYNACK_NORMAL = 0,
38349 	TCP_SYNACK_FASTOPEN = 1,
38350 	TCP_SYNACK_COOKIE = 2,
38351 };
38352 
38353 struct tcp_md5sig_key;
38354 
38355 struct tcp_request_sock_ops {
38356 	u16 mss_clamp;
38357 	struct tcp_md5sig_key * (*req_md5_lookup)(const struct sock *, const struct sock *);
38358 	int (*calc_md5_hash)(char *, const struct tcp_md5sig_key *, const struct sock *, const struct sk_buff *);
38359 	__u32 (*cookie_init_seq)(const struct sk_buff *, __u16 *);
38360 	struct dst_entry * (*route_req)(const struct sock *, struct sk_buff *, struct flowi *, struct request_sock *);
38361 	u32 (*init_seq)(const struct sk_buff *);
38362 	u32 (*init_ts_off)(const struct net *, const struct sk_buff *);
38363 	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 *);
38364 };
38365 
38366 union tcp_md5_addr {
38367 	struct in_addr a4;
38368 	struct in6_addr a6;
38369 };
38370 
38371 struct tcp_md5sig_key {
38372 	struct hlist_node node;
38373 	u8 keylen;
38374 	u8 family;
38375 	u8 prefixlen;
38376 	u8 flags;
38377 	union tcp_md5_addr addr;
38378 	int l3index;
38379 	u8 key[80];
38380 	struct callback_head rcu;
38381 };
38382 
38383 struct ip_rt_acct {
38384 	__u32 o_bytes;
38385 	__u32 o_packets;
38386 	__u32 i_bytes;
38387 	__u32 i_packets;
38388 };
38389 
38390 struct inet_ehash_bucket {
38391 	struct hlist_nulls_head chain;
38392 };
38393 
38394 struct inet_bind_hashbucket {
38395 	spinlock_t lock;
38396 	struct hlist_head chain;
38397 };
38398 
38399 struct ack_sample {
38400 	u32 pkts_acked;
38401 	s32 rtt_us;
38402 	u32 in_flight;
38403 };
38404 
38405 struct rate_sample {
38406 	u64 prior_mstamp;
38407 	u32 prior_delivered;
38408 	u32 prior_delivered_ce;
38409 	s32 delivered;
38410 	s32 delivered_ce;
38411 	long int interval_us;
38412 	u32 snd_interval_us;
38413 	u32 rcv_interval_us;
38414 	long int rtt_us;
38415 	int losses;
38416 	u32 acked_sacked;
38417 	u32 prior_in_flight;
38418 	bool is_app_limited;
38419 	bool is_retrans;
38420 	bool is_ack_delayed;
38421 };
38422 
38423 struct sk_msg_sg {
38424 	u32 start;
38425 	u32 curr;
38426 	u32 end;
38427 	u32 size;
38428 	u32 copybreak;
38429 	long unsigned int copy;
38430 	struct scatterlist data[19];
38431 };
38432 
38433 struct sk_msg {
38434 	struct sk_msg_sg sg;
38435 	void *data;
38436 	void *data_end;
38437 	u32 apply_bytes;
38438 	u32 cork_bytes;
38439 	u32 flags;
38440 	struct sk_buff *skb;
38441 	struct sock *sk_redir;
38442 	struct sock *sk;
38443 	struct list_head list;
38444 };
38445 
38446 struct bpf_core_cand {
38447 	const struct btf *btf;
38448 	__u32 id;
38449 };
38450 
38451 struct bpf_core_cand_list {
38452 	struct bpf_core_cand *cands;
38453 	int len;
38454 };
38455 
38456 struct bpf_core_accessor {
38457 	__u32 type_id;
38458 	__u32 idx;
38459 	const char *name;
38460 };
38461 
38462 struct bpf_core_spec {
38463 	const struct btf *btf;
38464 	struct bpf_core_accessor spec[64];
38465 	__u32 root_type_id;
38466 	enum bpf_core_relo_kind relo_kind;
38467 	int len;
38468 	int raw_spec[64];
38469 	int raw_len;
38470 	__u32 bit_offset;
38471 };
38472 
38473 enum btf_kfunc_hook {
38474 	BTF_KFUNC_HOOK_XDP = 0,
38475 	BTF_KFUNC_HOOK_TC = 1,
38476 	BTF_KFUNC_HOOK_STRUCT_OPS = 2,
38477 	BTF_KFUNC_HOOK_MAX = 3,
38478 };
38479 
38480 enum {
38481 	BTF_KFUNC_SET_MAX_CNT = 32,
38482 };
38483 
38484 struct btf_kfunc_set_tab {
38485 	struct btf_id_set *sets[12];
38486 };
38487 
38488 enum verifier_phase {
38489 	CHECK_META = 0,
38490 	CHECK_TYPE = 1,
38491 };
38492 
38493 struct resolve_vertex {
38494 	const struct btf_type *t;
38495 	u32 type_id;
38496 	u16 next_member;
38497 };
38498 
38499 enum visit_state {
38500 	NOT_VISITED = 0,
38501 	VISITED = 1,
38502 	RESOLVED = 2,
38503 };
38504 
38505 enum resolve_mode {
38506 	RESOLVE_TBD = 0,
38507 	RESOLVE_PTR = 1,
38508 	RESOLVE_STRUCT_OR_ARRAY = 2,
38509 };
38510 
38511 struct btf_sec_info {
38512 	u32 off;
38513 	u32 len;
38514 };
38515 
38516 struct btf_verifier_env {
38517 	struct btf *btf;
38518 	u8 *visit_states;
38519 	struct resolve_vertex stack[32];
38520 	struct bpf_verifier_log log;
38521 	u32 log_type_id;
38522 	u32 top_stack;
38523 	enum verifier_phase phase;
38524 	enum resolve_mode resolve_mode;
38525 };
38526 
38527 struct btf_show {
38528 	u64 flags;
38529 	void *target;
38530 	void (*showfn)(struct btf_show *, const char *, struct __va_list_tag *);
38531 	const struct btf *btf;
38532 	struct {
38533 		u8 depth;
38534 		u8 depth_to_show;
38535 		u8 depth_check;
38536 		u8 array_member: 1;
38537 		u8 array_terminated: 1;
38538 		u16 array_encoding;
38539 		u32 type_id;
38540 		int status;
38541 		const struct btf_type *type;
38542 		const struct btf_member *member;
38543 		char name[80];
38544 	} state;
38545 	struct {
38546 		u32 size;
38547 		void *head;
38548 		void *data;
38549 		u8 safe[32];
38550 	} obj;
38551 };
38552 
38553 struct btf_kind_operations {
38554 	s32 (*check_meta)(struct btf_verifier_env *, const struct btf_type *, u32);
38555 	int (*resolve)(struct btf_verifier_env *, const struct resolve_vertex *);
38556 	int (*check_member)(struct btf_verifier_env *, const struct btf_type *, const struct btf_member *, const struct btf_type *);
38557 	int (*check_kflag_member)(struct btf_verifier_env *, const struct btf_type *, const struct btf_member *, const struct btf_type *);
38558 	void (*log_details)(struct btf_verifier_env *, const struct btf_type *);
38559 	void (*show)(const struct btf *, const struct btf_type *, u32, void *, u8, struct btf_show *);
38560 };
38561 
38562 struct bpf_ctx_convert {
38563 	struct __sk_buff BPF_PROG_TYPE_SOCKET_FILTER_prog;
38564 	struct sk_buff BPF_PROG_TYPE_SOCKET_FILTER_kern;
38565 	struct __sk_buff BPF_PROG_TYPE_SCHED_CLS_prog;
38566 	struct sk_buff BPF_PROG_TYPE_SCHED_CLS_kern;
38567 	struct __sk_buff BPF_PROG_TYPE_SCHED_ACT_prog;
38568 	struct sk_buff BPF_PROG_TYPE_SCHED_ACT_kern;
38569 	struct xdp_md BPF_PROG_TYPE_XDP_prog;
38570 	struct xdp_buff BPF_PROG_TYPE_XDP_kern;
38571 	struct __sk_buff BPF_PROG_TYPE_CGROUP_SKB_prog;
38572 	struct sk_buff BPF_PROG_TYPE_CGROUP_SKB_kern;
38573 	struct bpf_sock BPF_PROG_TYPE_CGROUP_SOCK_prog;
38574 	struct sock BPF_PROG_TYPE_CGROUP_SOCK_kern;
38575 	struct bpf_sock_addr BPF_PROG_TYPE_CGROUP_SOCK_ADDR_prog;
38576 	struct bpf_sock_addr_kern BPF_PROG_TYPE_CGROUP_SOCK_ADDR_kern;
38577 	struct __sk_buff BPF_PROG_TYPE_LWT_IN_prog;
38578 	struct sk_buff BPF_PROG_TYPE_LWT_IN_kern;
38579 	struct __sk_buff BPF_PROG_TYPE_LWT_OUT_prog;
38580 	struct sk_buff BPF_PROG_TYPE_LWT_OUT_kern;
38581 	struct __sk_buff BPF_PROG_TYPE_LWT_XMIT_prog;
38582 	struct sk_buff BPF_PROG_TYPE_LWT_XMIT_kern;
38583 	struct __sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_prog;
38584 	struct sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_kern;
38585 	struct bpf_sock_ops BPF_PROG_TYPE_SOCK_OPS_prog;
38586 	struct bpf_sock_ops_kern BPF_PROG_TYPE_SOCK_OPS_kern;
38587 	struct __sk_buff BPF_PROG_TYPE_SK_SKB_prog;
38588 	struct sk_buff BPF_PROG_TYPE_SK_SKB_kern;
38589 	struct sk_msg_md BPF_PROG_TYPE_SK_MSG_prog;
38590 	struct sk_msg BPF_PROG_TYPE_SK_MSG_kern;
38591 	struct __sk_buff BPF_PROG_TYPE_FLOW_DISSECTOR_prog;
38592 	struct bpf_flow_dissector BPF_PROG_TYPE_FLOW_DISSECTOR_kern;
38593 	bpf_user_pt_regs_t BPF_PROG_TYPE_KPROBE_prog;
38594 	struct pt_regs BPF_PROG_TYPE_KPROBE_kern;
38595 	__u64 BPF_PROG_TYPE_TRACEPOINT_prog;
38596 	u64 BPF_PROG_TYPE_TRACEPOINT_kern;
38597 	struct bpf_perf_event_data BPF_PROG_TYPE_PERF_EVENT_prog;
38598 	struct bpf_perf_event_data_kern BPF_PROG_TYPE_PERF_EVENT_kern;
38599 	struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_prog;
38600 	u64 BPF_PROG_TYPE_RAW_TRACEPOINT_kern;
38601 	struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_prog;
38602 	u64 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_kern;
38603 	void *BPF_PROG_TYPE_TRACING_prog;
38604 	void *BPF_PROG_TYPE_TRACING_kern;
38605 	struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_prog;
38606 	struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_kern;
38607 	struct bpf_sysctl BPF_PROG_TYPE_CGROUP_SYSCTL_prog;
38608 	struct bpf_sysctl_kern BPF_PROG_TYPE_CGROUP_SYSCTL_kern;
38609 	struct bpf_sockopt BPF_PROG_TYPE_CGROUP_SOCKOPT_prog;
38610 	struct bpf_sockopt_kern BPF_PROG_TYPE_CGROUP_SOCKOPT_kern;
38611 	__u32 BPF_PROG_TYPE_LIRC_MODE2_prog;
38612 	u32 BPF_PROG_TYPE_LIRC_MODE2_kern;
38613 	struct sk_reuseport_md BPF_PROG_TYPE_SK_REUSEPORT_prog;
38614 	struct sk_reuseport_kern BPF_PROG_TYPE_SK_REUSEPORT_kern;
38615 	struct bpf_sk_lookup BPF_PROG_TYPE_SK_LOOKUP_prog;
38616 	struct bpf_sk_lookup_kern BPF_PROG_TYPE_SK_LOOKUP_kern;
38617 	void *BPF_PROG_TYPE_STRUCT_OPS_prog;
38618 	void *BPF_PROG_TYPE_STRUCT_OPS_kern;
38619 	void *BPF_PROG_TYPE_EXT_prog;
38620 	void *BPF_PROG_TYPE_EXT_kern;
38621 	void *BPF_PROG_TYPE_LSM_prog;
38622 	void *BPF_PROG_TYPE_LSM_kern;
38623 	void *BPF_PROG_TYPE_SYSCALL_prog;
38624 	void *BPF_PROG_TYPE_SYSCALL_kern;
38625 };
38626 
38627 enum {
38628 	__ctx_convertBPF_PROG_TYPE_SOCKET_FILTER = 0,
38629 	__ctx_convertBPF_PROG_TYPE_SCHED_CLS = 1,
38630 	__ctx_convertBPF_PROG_TYPE_SCHED_ACT = 2,
38631 	__ctx_convertBPF_PROG_TYPE_XDP = 3,
38632 	__ctx_convertBPF_PROG_TYPE_CGROUP_SKB = 4,
38633 	__ctx_convertBPF_PROG_TYPE_CGROUP_SOCK = 5,
38634 	__ctx_convertBPF_PROG_TYPE_CGROUP_SOCK_ADDR = 6,
38635 	__ctx_convertBPF_PROG_TYPE_LWT_IN = 7,
38636 	__ctx_convertBPF_PROG_TYPE_LWT_OUT = 8,
38637 	__ctx_convertBPF_PROG_TYPE_LWT_XMIT = 9,
38638 	__ctx_convertBPF_PROG_TYPE_LWT_SEG6LOCAL = 10,
38639 	__ctx_convertBPF_PROG_TYPE_SOCK_OPS = 11,
38640 	__ctx_convertBPF_PROG_TYPE_SK_SKB = 12,
38641 	__ctx_convertBPF_PROG_TYPE_SK_MSG = 13,
38642 	__ctx_convertBPF_PROG_TYPE_FLOW_DISSECTOR = 14,
38643 	__ctx_convertBPF_PROG_TYPE_KPROBE = 15,
38644 	__ctx_convertBPF_PROG_TYPE_TRACEPOINT = 16,
38645 	__ctx_convertBPF_PROG_TYPE_PERF_EVENT = 17,
38646 	__ctx_convertBPF_PROG_TYPE_RAW_TRACEPOINT = 18,
38647 	__ctx_convertBPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 19,
38648 	__ctx_convertBPF_PROG_TYPE_TRACING = 20,
38649 	__ctx_convertBPF_PROG_TYPE_CGROUP_DEVICE = 21,
38650 	__ctx_convertBPF_PROG_TYPE_CGROUP_SYSCTL = 22,
38651 	__ctx_convertBPF_PROG_TYPE_CGROUP_SOCKOPT = 23,
38652 	__ctx_convertBPF_PROG_TYPE_LIRC_MODE2 = 24,
38653 	__ctx_convertBPF_PROG_TYPE_SK_REUSEPORT = 25,
38654 	__ctx_convertBPF_PROG_TYPE_SK_LOOKUP = 26,
38655 	__ctx_convertBPF_PROG_TYPE_STRUCT_OPS = 27,
38656 	__ctx_convertBPF_PROG_TYPE_EXT = 28,
38657 	__ctx_convertBPF_PROG_TYPE_LSM = 29,
38658 	__ctx_convertBPF_PROG_TYPE_SYSCALL = 30,
38659 	__ctx_convert_unused = 31,
38660 };
38661 
38662 enum bpf_struct_walk_result {
38663 	WALK_SCALAR = 0,
38664 	WALK_PTR = 1,
38665 	WALK_STRUCT = 2,
38666 };
38667 
38668 struct btf_show_snprintf {
38669 	struct btf_show show;
38670 	int len_left;
38671 	int len;
38672 };
38673 
38674 enum {
38675 	BTF_MODULE_F_LIVE = 1,
38676 };
38677 
38678 struct btf_module {
38679 	struct list_head list;
38680 	struct module *module;
38681 	struct btf *btf;
38682 	struct bin_attribute *sysfs_attr;
38683 	int flags;
38684 };
38685 
38686 typedef u64 (*btf_bpf_btf_find_by_name_kind)(char *, int, u32, int);
38687 
38688 struct bpf_cand_cache {
38689 	const char *name;
38690 	u32 name_len;
38691 	u16 kind;
38692 	u16 cnt;
38693 	struct {
38694 		const struct btf *btf;
38695 		u32 id;
38696 	} cands[0];
38697 };
38698 
38699 enum {
38700 	BPF_F_BROADCAST = 8,
38701 	BPF_F_EXCLUDE_INGRESS = 16,
38702 };
38703 
38704 struct bpf_devmap_val {
38705 	__u32 ifindex;
38706 	union {
38707 		int fd;
38708 		__u32 id;
38709 	} bpf_prog;
38710 };
38711 
38712 enum net_device_flags {
38713 	IFF_UP = 1,
38714 	IFF_BROADCAST = 2,
38715 	IFF_DEBUG = 4,
38716 	IFF_LOOPBACK = 8,
38717 	IFF_POINTOPOINT = 16,
38718 	IFF_NOTRAILERS = 32,
38719 	IFF_RUNNING = 64,
38720 	IFF_NOARP = 128,
38721 	IFF_PROMISC = 256,
38722 	IFF_ALLMULTI = 512,
38723 	IFF_MASTER = 1024,
38724 	IFF_SLAVE = 2048,
38725 	IFF_MULTICAST = 4096,
38726 	IFF_PORTSEL = 8192,
38727 	IFF_AUTOMEDIA = 16384,
38728 	IFF_DYNAMIC = 32768,
38729 	IFF_LOWER_UP = 65536,
38730 	IFF_DORMANT = 131072,
38731 	IFF_ECHO = 262144,
38732 };
38733 
38734 enum netdev_priv_flags {
38735 	IFF_802_1Q_VLAN = 1,
38736 	IFF_EBRIDGE = 2,
38737 	IFF_BONDING = 4,
38738 	IFF_ISATAP = 8,
38739 	IFF_WAN_HDLC = 16,
38740 	IFF_XMIT_DST_RELEASE = 32,
38741 	IFF_DONT_BRIDGE = 64,
38742 	IFF_DISABLE_NETPOLL = 128,
38743 	IFF_MACVLAN_PORT = 256,
38744 	IFF_BRIDGE_PORT = 512,
38745 	IFF_OVS_DATAPATH = 1024,
38746 	IFF_TX_SKB_SHARING = 2048,
38747 	IFF_UNICAST_FLT = 4096,
38748 	IFF_TEAM_PORT = 8192,
38749 	IFF_SUPP_NOFCS = 16384,
38750 	IFF_LIVE_ADDR_CHANGE = 32768,
38751 	IFF_MACVLAN = 65536,
38752 	IFF_XMIT_DST_RELEASE_PERM = 131072,
38753 	IFF_L3MDEV_MASTER = 262144,
38754 	IFF_NO_QUEUE = 524288,
38755 	IFF_OPENVSWITCH = 1048576,
38756 	IFF_L3MDEV_SLAVE = 2097152,
38757 	IFF_TEAM = 4194304,
38758 	IFF_RXFH_CONFIGURED = 8388608,
38759 	IFF_PHONY_HEADROOM = 16777216,
38760 	IFF_MACSEC = 33554432,
38761 	IFF_NO_RX_HANDLER = 67108864,
38762 	IFF_FAILOVER = 134217728,
38763 	IFF_FAILOVER_SLAVE = 268435456,
38764 	IFF_L3MDEV_RX_HANDLER = 536870912,
38765 	IFF_LIVE_RENAME_OK = 1073741824,
38766 	IFF_TX_SKB_NO_LINEAR = 2147483648,
38767 	IFF_CHANGE_PROTO_DOWN = 0,
38768 };
38769 
38770 struct xdp_dev_bulk_queue {
38771 	struct xdp_frame *q[16];
38772 	struct list_head flush_node;
38773 	struct net_device *dev;
38774 	struct net_device *dev_rx;
38775 	struct bpf_prog *xdp_prog;
38776 	unsigned int count;
38777 };
38778 
38779 enum netdev_cmd {
38780 	NETDEV_UP = 1,
38781 	NETDEV_DOWN = 2,
38782 	NETDEV_REBOOT = 3,
38783 	NETDEV_CHANGE = 4,
38784 	NETDEV_REGISTER = 5,
38785 	NETDEV_UNREGISTER = 6,
38786 	NETDEV_CHANGEMTU = 7,
38787 	NETDEV_CHANGEADDR = 8,
38788 	NETDEV_PRE_CHANGEADDR = 9,
38789 	NETDEV_GOING_DOWN = 10,
38790 	NETDEV_CHANGENAME = 11,
38791 	NETDEV_FEAT_CHANGE = 12,
38792 	NETDEV_BONDING_FAILOVER = 13,
38793 	NETDEV_PRE_UP = 14,
38794 	NETDEV_PRE_TYPE_CHANGE = 15,
38795 	NETDEV_POST_TYPE_CHANGE = 16,
38796 	NETDEV_POST_INIT = 17,
38797 	NETDEV_RELEASE = 18,
38798 	NETDEV_NOTIFY_PEERS = 19,
38799 	NETDEV_JOIN = 20,
38800 	NETDEV_CHANGEUPPER = 21,
38801 	NETDEV_RESEND_IGMP = 22,
38802 	NETDEV_PRECHANGEMTU = 23,
38803 	NETDEV_CHANGEINFODATA = 24,
38804 	NETDEV_BONDING_INFO = 25,
38805 	NETDEV_PRECHANGEUPPER = 26,
38806 	NETDEV_CHANGELOWERSTATE = 27,
38807 	NETDEV_UDP_TUNNEL_PUSH_INFO = 28,
38808 	NETDEV_UDP_TUNNEL_DROP_INFO = 29,
38809 	NETDEV_CHANGE_TX_QUEUE_LEN = 30,
38810 	NETDEV_CVLAN_FILTER_PUSH_INFO = 31,
38811 	NETDEV_CVLAN_FILTER_DROP_INFO = 32,
38812 	NETDEV_SVLAN_FILTER_PUSH_INFO = 33,
38813 	NETDEV_SVLAN_FILTER_DROP_INFO = 34,
38814 };
38815 
38816 struct netdev_notifier_info {
38817 	struct net_device *dev;
38818 	struct netlink_ext_ack *extack;
38819 };
38820 
38821 struct bpf_dtab;
38822 
38823 struct bpf_dtab_netdev {
38824 	struct net_device *dev;
38825 	struct hlist_node index_hlist;
38826 	struct bpf_dtab *dtab;
38827 	struct bpf_prog *xdp_prog;
38828 	struct callback_head rcu;
38829 	unsigned int idx;
38830 	struct bpf_devmap_val val;
38831 };
38832 
38833 struct bpf_dtab {
38834 	struct bpf_map map;
38835 	struct bpf_dtab_netdev **netdev_map;
38836 	struct list_head list;
38837 	struct hlist_head *dev_index_head;
38838 	spinlock_t index_lock;
38839 	unsigned int items;
38840 	u32 n_buckets;
38841 	long: 64;
38842 	long: 64;
38843 	long: 64;
38844 };
38845 
38846 struct bpf_cpumap_val {
38847 	__u32 qsize;
38848 	union {
38849 		int fd;
38850 		__u32 id;
38851 	} bpf_prog;
38852 };
38853 
38854 struct bpf_cpu_map_entry;
38855 
38856 struct xdp_bulk_queue {
38857 	void *q[8];
38858 	struct list_head flush_node;
38859 	struct bpf_cpu_map_entry *obj;
38860 	unsigned int count;
38861 };
38862 
38863 struct bpf_cpu_map;
38864 
38865 struct bpf_cpu_map_entry {
38866 	u32 cpu;
38867 	int map_id;
38868 	struct xdp_bulk_queue *bulkq;
38869 	struct bpf_cpu_map *cmap;
38870 	struct ptr_ring *queue;
38871 	struct task_struct *kthread;
38872 	struct bpf_cpumap_val value;
38873 	struct bpf_prog *prog;
38874 	atomic_t refcnt;
38875 	struct callback_head rcu;
38876 	struct work_struct kthread_stop_wq;
38877 };
38878 
38879 struct bpf_cpu_map {
38880 	struct bpf_map map;
38881 	struct bpf_cpu_map_entry **cpu_map;
38882 	long: 64;
38883 	long: 64;
38884 	long: 64;
38885 	long: 64;
38886 	long: 64;
38887 	long: 64;
38888 	long: 64;
38889 };
38890 
38891 struct rhlist_head {
38892 	struct rhash_head rhead;
38893 	struct rhlist_head *next;
38894 };
38895 
38896 struct bpf_prog_offload_ops {
38897 	int (*insn_hook)(struct bpf_verifier_env *, int, int);
38898 	int (*finalize)(struct bpf_verifier_env *);
38899 	int (*replace_insn)(struct bpf_verifier_env *, u32, struct bpf_insn *);
38900 	int (*remove_insns)(struct bpf_verifier_env *, u32, u32);
38901 	int (*prepare)(struct bpf_prog *);
38902 	int (*translate)(struct bpf_prog *);
38903 	void (*destroy)(struct bpf_prog *);
38904 };
38905 
38906 struct bpf_offload_dev {
38907 	const struct bpf_prog_offload_ops *ops;
38908 	struct list_head netdevs;
38909 	void *priv;
38910 };
38911 
38912 struct bpf_offload_netdev {
38913 	struct rhash_head l;
38914 	struct net_device *netdev;
38915 	struct bpf_offload_dev *offdev;
38916 	struct list_head progs;
38917 	struct list_head maps;
38918 	struct list_head offdev_netdevs;
38919 };
38920 
38921 struct ns_get_path_bpf_prog_args {
38922 	struct bpf_prog *prog;
38923 	struct bpf_prog_info *info;
38924 };
38925 
38926 struct ns_get_path_bpf_map_args {
38927 	struct bpf_offloaded_map *offmap;
38928 	struct bpf_map_info *info;
38929 };
38930 
38931 struct bpf_netns_link {
38932 	struct bpf_link link;
38933 	enum bpf_attach_type type;
38934 	enum netns_bpf_attach_type netns_type;
38935 	struct net *net;
38936 	struct list_head node;
38937 };
38938 
38939 enum bpf_stack_build_id_status {
38940 	BPF_STACK_BUILD_ID_EMPTY = 0,
38941 	BPF_STACK_BUILD_ID_VALID = 1,
38942 	BPF_STACK_BUILD_ID_IP = 2,
38943 };
38944 
38945 struct bpf_stack_build_id {
38946 	__s32 status;
38947 	unsigned char build_id[20];
38948 	union {
38949 		__u64 offset;
38950 		__u64 ip;
38951 	};
38952 };
38953 
38954 enum {
38955 	BPF_F_SKIP_FIELD_MASK = 255,
38956 	BPF_F_USER_STACK = 256,
38957 	BPF_F_FAST_STACK_CMP = 512,
38958 	BPF_F_REUSE_STACKID = 1024,
38959 	BPF_F_USER_BUILD_ID = 2048,
38960 };
38961 
38962 enum perf_callchain_context {
38963 	PERF_CONTEXT_HV = 4294967264,
38964 	PERF_CONTEXT_KERNEL = 4294967168,
38965 	PERF_CONTEXT_USER = 4294966784,
38966 	PERF_CONTEXT_GUEST = 4294965248,
38967 	PERF_CONTEXT_GUEST_KERNEL = 4294965120,
38968 	PERF_CONTEXT_GUEST_USER = 4294964736,
38969 	PERF_CONTEXT_MAX = 4294963201,
38970 };
38971 
38972 struct stack_map_bucket {
38973 	struct pcpu_freelist_node fnode;
38974 	u32 hash;
38975 	u32 nr;
38976 	u64 data[0];
38977 };
38978 
38979 struct bpf_stack_map {
38980 	struct bpf_map map;
38981 	void *elems;
38982 	struct pcpu_freelist freelist;
38983 	u32 n_buckets;
38984 	struct stack_map_bucket *buckets[0];
38985 	long: 64;
38986 	long: 64;
38987 	long: 64;
38988 	long: 64;
38989 };
38990 
38991 typedef u64 (*btf_bpf_get_stackid)(struct pt_regs *, struct bpf_map *, u64);
38992 
38993 typedef u64 (*btf_bpf_get_stackid_pe)(struct bpf_perf_event_data_kern *, struct bpf_map *, u64);
38994 
38995 typedef u64 (*btf_bpf_get_stack)(struct pt_regs *, void *, u32, u64);
38996 
38997 typedef u64 (*btf_bpf_get_task_stack)(struct task_struct *, void *, u32, u64);
38998 
38999 typedef u64 (*btf_bpf_get_stack_pe)(struct bpf_perf_event_data_kern *, void *, u32, u64);
39000 
39001 enum {
39002 	BPF_F_SYSCTL_BASE_NAME = 1,
39003 };
39004 
39005 struct qdisc_skb_cb {
39006 	struct {
39007 		unsigned int pkt_len;
39008 		u16 slave_dev_queue_mapping;
39009 		u16 tc_classid;
39010 	};
39011 	unsigned char data[20];
39012 };
39013 
39014 struct bpf_skb_data_end {
39015 	struct qdisc_skb_cb qdisc_cb;
39016 	void *data_meta;
39017 	void *data_end;
39018 };
39019 
39020 struct bpf_sockopt_buf {
39021 	u8 data[32];
39022 };
39023 
39024 struct bpf_cgroup_link {
39025 	struct bpf_link link;
39026 	struct cgroup *cgroup;
39027 	enum bpf_attach_type type;
39028 };
39029 
39030 struct bpf_prog_list {
39031 	struct list_head node;
39032 	struct bpf_prog *prog;
39033 	struct bpf_cgroup_link *link;
39034 	struct bpf_cgroup_storage *storage[2];
39035 };
39036 
39037 enum {
39038 	TCPF_ESTABLISHED = 2,
39039 	TCPF_SYN_SENT = 4,
39040 	TCPF_SYN_RECV = 8,
39041 	TCPF_FIN_WAIT1 = 16,
39042 	TCPF_FIN_WAIT2 = 32,
39043 	TCPF_TIME_WAIT = 64,
39044 	TCPF_CLOSE = 128,
39045 	TCPF_CLOSE_WAIT = 256,
39046 	TCPF_LAST_ACK = 512,
39047 	TCPF_LISTEN = 1024,
39048 	TCPF_CLOSING = 2048,
39049 	TCPF_NEW_SYN_RECV = 4096,
39050 };
39051 
39052 typedef u64 (*btf_bpf_get_retval)();
39053 
39054 typedef u64 (*btf_bpf_set_retval)(int);
39055 
39056 typedef u64 (*btf_bpf_sysctl_get_name)(struct bpf_sysctl_kern *, char *, size_t, u64);
39057 
39058 typedef u64 (*btf_bpf_sysctl_get_current_value)(struct bpf_sysctl_kern *, char *, size_t);
39059 
39060 typedef u64 (*btf_bpf_sysctl_get_new_value)(struct bpf_sysctl_kern *, char *, size_t);
39061 
39062 typedef u64 (*btf_bpf_sysctl_set_new_value)(struct bpf_sysctl_kern *, const char *, size_t);
39063 
39064 typedef u64 (*btf_bpf_get_netns_cookie_sockopt)(struct bpf_sockopt_kern *);
39065 
39066 enum sock_type {
39067 	SOCK_STREAM = 1,
39068 	SOCK_DGRAM = 2,
39069 	SOCK_RAW = 3,
39070 	SOCK_RDM = 4,
39071 	SOCK_SEQPACKET = 5,
39072 	SOCK_DCCP = 6,
39073 	SOCK_PACKET = 10,
39074 };
39075 
39076 enum sock_flags {
39077 	SOCK_DEAD = 0,
39078 	SOCK_DONE = 1,
39079 	SOCK_URGINLINE = 2,
39080 	SOCK_KEEPOPEN = 3,
39081 	SOCK_LINGER = 4,
39082 	SOCK_DESTROY = 5,
39083 	SOCK_BROADCAST = 6,
39084 	SOCK_TIMESTAMP = 7,
39085 	SOCK_ZAPPED = 8,
39086 	SOCK_USE_WRITE_QUEUE = 9,
39087 	SOCK_DBG = 10,
39088 	SOCK_RCVTSTAMP = 11,
39089 	SOCK_RCVTSTAMPNS = 12,
39090 	SOCK_LOCALROUTE = 13,
39091 	SOCK_MEMALLOC = 14,
39092 	SOCK_TIMESTAMPING_RX_SOFTWARE = 15,
39093 	SOCK_FASYNC = 16,
39094 	SOCK_RXQ_OVFL = 17,
39095 	SOCK_ZEROCOPY = 18,
39096 	SOCK_WIFI_STATUS = 19,
39097 	SOCK_NOFCS = 20,
39098 	SOCK_FILTER_LOCKED = 21,
39099 	SOCK_SELECT_ERR_QUEUE = 22,
39100 	SOCK_RCU_FREE = 23,
39101 	SOCK_TXTIME = 24,
39102 	SOCK_XDP = 25,
39103 	SOCK_TSTAMP_NEW = 26,
39104 };
39105 
39106 struct reuseport_array {
39107 	struct bpf_map map;
39108 	struct sock *ptrs[0];
39109 };
39110 
39111 struct bpf_dummy_ops_state {
39112 	int val;
39113 };
39114 
39115 struct bpf_dummy_ops {
39116 	int (*test_1)(struct bpf_dummy_ops_state *);
39117 	int (*test_2)(struct bpf_dummy_ops_state *, int, short unsigned int, char, long unsigned int);
39118 };
39119 
39120 enum bpf_struct_ops_state {
39121 	BPF_STRUCT_OPS_STATE_INIT = 0,
39122 	BPF_STRUCT_OPS_STATE_INUSE = 1,
39123 	BPF_STRUCT_OPS_STATE_TOBEFREE = 2,
39124 };
39125 
39126 struct bpf_struct_ops_value {
39127 	refcount_t refcnt;
39128 	enum bpf_struct_ops_state state;
39129 	long: 64;
39130 	long: 64;
39131 	long: 64;
39132 	long: 64;
39133 	long: 64;
39134 	long: 64;
39135 	long: 64;
39136 	char data[0];
39137 };
39138 
39139 struct bpf_struct_ops_map {
39140 	struct bpf_map map;
39141 	struct callback_head rcu;
39142 	const struct bpf_struct_ops *st_ops;
39143 	struct mutex lock;
39144 	struct bpf_prog **progs;
39145 	void *image;
39146 	struct bpf_struct_ops_value *uvalue;
39147 	struct bpf_struct_ops_value kvalue;
39148 };
39149 
39150 struct bpf_struct_ops_bpf_dummy_ops {
39151 	refcount_t refcnt;
39152 	enum bpf_struct_ops_state state;
39153 	long: 64;
39154 	long: 64;
39155 	long: 64;
39156 	long: 64;
39157 	long: 64;
39158 	long: 64;
39159 	long: 64;
39160 	struct bpf_dummy_ops data;
39161 	long: 64;
39162 	long: 64;
39163 	long: 64;
39164 	long: 64;
39165 	long: 64;
39166 	long: 64;
39167 };
39168 
39169 struct bpf_struct_ops_tcp_congestion_ops {
39170 	refcount_t refcnt;
39171 	enum bpf_struct_ops_state state;
39172 	long: 64;
39173 	long: 64;
39174 	long: 64;
39175 	long: 64;
39176 	long: 64;
39177 	long: 64;
39178 	long: 64;
39179 	struct tcp_congestion_ops data;
39180 };
39181 
39182 enum {
39183 	BPF_STRUCT_OPS_TYPE_bpf_dummy_ops = 0,
39184 	BPF_STRUCT_OPS_TYPE_tcp_congestion_ops = 1,
39185 	__NR_BPF_STRUCT_OPS_TYPE = 2,
39186 };
39187 
39188 enum {
39189 	BPF_F_BPRM_SECUREEXEC = 1,
39190 };
39191 
39192 struct sembuf {
39193 	short unsigned int sem_num;
39194 	short int sem_op;
39195 	short int sem_flg;
39196 };
39197 
39198 enum key_need_perm {
39199 	KEY_NEED_UNSPECIFIED = 0,
39200 	KEY_NEED_VIEW = 1,
39201 	KEY_NEED_READ = 2,
39202 	KEY_NEED_WRITE = 3,
39203 	KEY_NEED_SEARCH = 4,
39204 	KEY_NEED_LINK = 5,
39205 	KEY_NEED_SETATTR = 6,
39206 	KEY_NEED_UNLINK = 7,
39207 	KEY_SYSADMIN_OVERRIDE = 8,
39208 	KEY_AUTHTOKEN_OVERRIDE = 9,
39209 	KEY_DEFER_PERM_CHECK = 10,
39210 };
39211 
39212 struct __key_reference_with_attributes;
39213 
39214 typedef struct __key_reference_with_attributes *key_ref_t;
39215 
39216 enum hash_algo {
39217 	HASH_ALGO_MD4 = 0,
39218 	HASH_ALGO_MD5 = 1,
39219 	HASH_ALGO_SHA1 = 2,
39220 	HASH_ALGO_RIPE_MD_160 = 3,
39221 	HASH_ALGO_SHA256 = 4,
39222 	HASH_ALGO_SHA384 = 5,
39223 	HASH_ALGO_SHA512 = 6,
39224 	HASH_ALGO_SHA224 = 7,
39225 	HASH_ALGO_RIPE_MD_128 = 8,
39226 	HASH_ALGO_RIPE_MD_256 = 9,
39227 	HASH_ALGO_RIPE_MD_320 = 10,
39228 	HASH_ALGO_WP_256 = 11,
39229 	HASH_ALGO_WP_384 = 12,
39230 	HASH_ALGO_WP_512 = 13,
39231 	HASH_ALGO_TGR_128 = 14,
39232 	HASH_ALGO_TGR_160 = 15,
39233 	HASH_ALGO_TGR_192 = 16,
39234 	HASH_ALGO_SM3_256 = 17,
39235 	HASH_ALGO_STREEBOG_256 = 18,
39236 	HASH_ALGO_STREEBOG_512 = 19,
39237 	HASH_ALGO__LAST = 20,
39238 };
39239 
39240 typedef u64 (*btf_bpf_bprm_opts_set)(struct linux_binprm *, u64);
39241 
39242 typedef u64 (*btf_bpf_ima_inode_hash)(struct inode *, void *, u32);
39243 
39244 enum libbpf_print_level {
39245 	LIBBPF_WARN = 0,
39246 	LIBBPF_INFO = 1,
39247 	LIBBPF_DEBUG = 2,
39248 };
39249 
39250 struct bpf_core_relo_res {
39251 	__u32 orig_val;
39252 	__u32 new_val;
39253 	bool poison;
39254 	bool validate;
39255 	bool fail_memsz_adjust;
39256 	__u32 orig_sz;
39257 	__u32 orig_type_id;
39258 	__u32 new_sz;
39259 	__u32 new_type_id;
39260 };
39261 
39262 struct static_call_tramp_key {
39263 	s32 tramp;
39264 	s32 key;
39265 };
39266 
39267 enum perf_event_read_format {
39268 	PERF_FORMAT_TOTAL_TIME_ENABLED = 1,
39269 	PERF_FORMAT_TOTAL_TIME_RUNNING = 2,
39270 	PERF_FORMAT_ID = 4,
39271 	PERF_FORMAT_GROUP = 8,
39272 	PERF_FORMAT_MAX = 16,
39273 };
39274 
39275 enum perf_event_ioc_flags {
39276 	PERF_IOC_FLAG_GROUP = 1,
39277 };
39278 
39279 struct perf_ns_link_info {
39280 	__u64 dev;
39281 	__u64 ino;
39282 };
39283 
39284 enum {
39285 	NET_NS_INDEX = 0,
39286 	UTS_NS_INDEX = 1,
39287 	IPC_NS_INDEX = 2,
39288 	PID_NS_INDEX = 3,
39289 	USER_NS_INDEX = 4,
39290 	MNT_NS_INDEX = 5,
39291 	CGROUP_NS_INDEX = 6,
39292 	NR_NAMESPACES = 7,
39293 };
39294 
39295 enum perf_event_type {
39296 	PERF_RECORD_MMAP = 1,
39297 	PERF_RECORD_LOST = 2,
39298 	PERF_RECORD_COMM = 3,
39299 	PERF_RECORD_EXIT = 4,
39300 	PERF_RECORD_THROTTLE = 5,
39301 	PERF_RECORD_UNTHROTTLE = 6,
39302 	PERF_RECORD_FORK = 7,
39303 	PERF_RECORD_READ = 8,
39304 	PERF_RECORD_SAMPLE = 9,
39305 	PERF_RECORD_MMAP2 = 10,
39306 	PERF_RECORD_AUX = 11,
39307 	PERF_RECORD_ITRACE_START = 12,
39308 	PERF_RECORD_LOST_SAMPLES = 13,
39309 	PERF_RECORD_SWITCH = 14,
39310 	PERF_RECORD_SWITCH_CPU_WIDE = 15,
39311 	PERF_RECORD_NAMESPACES = 16,
39312 	PERF_RECORD_KSYMBOL = 17,
39313 	PERF_RECORD_BPF_EVENT = 18,
39314 	PERF_RECORD_CGROUP = 19,
39315 	PERF_RECORD_TEXT_POKE = 20,
39316 	PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
39317 	PERF_RECORD_MAX = 22,
39318 };
39319 
39320 struct swevent_hlist {
39321 	struct hlist_head heads[256];
39322 	struct callback_head callback_head;
39323 };
39324 
39325 struct pmu_event_list {
39326 	raw_spinlock_t lock;
39327 	struct list_head list;
39328 };
39329 
39330 struct perf_buffer {
39331 	refcount_t refcount;
39332 	struct callback_head callback_head;
39333 	int nr_pages;
39334 	int overwrite;
39335 	int paused;
39336 	atomic_t poll;
39337 	local_t head;
39338 	unsigned int nest;
39339 	local_t events;
39340 	local_t wakeup;
39341 	local_t lost;
39342 	long int watermark;
39343 	long int aux_watermark;
39344 	spinlock_t event_lock;
39345 	struct list_head event_list;
39346 	atomic_t mmap_count;
39347 	long unsigned int mmap_locked;
39348 	struct user_struct *mmap_user;
39349 	long int aux_head;
39350 	unsigned int aux_nest;
39351 	long int aux_wakeup;
39352 	long unsigned int aux_pgoff;
39353 	int aux_nr_pages;
39354 	int aux_overwrite;
39355 	atomic_t aux_mmap_count;
39356 	long unsigned int aux_mmap_locked;
39357 	void (*free_aux)(void *);
39358 	refcount_t aux_refcount;
39359 	int aux_in_sampling;
39360 	void **aux_pages;
39361 	void *aux_priv;
39362 	struct perf_event_mmap_page *user_page;
39363 	void *data_pages[0];
39364 };
39365 
39366 struct match_token {
39367 	int token;
39368 	const char *pattern;
39369 };
39370 
39371 enum {
39372 	MAX_OPT_ARGS = 3,
39373 };
39374 
39375 typedef struct {
39376 	char *from;
39377 	char *to;
39378 } substring_t;
39379 
39380 struct min_heap {
39381 	void *data;
39382 	int nr;
39383 	int size;
39384 };
39385 
39386 struct min_heap_callbacks {
39387 	int elem_size;
39388 	bool (*less)(const void *, const void *);
39389 	void (*swp)(void *, void *);
39390 };
39391 
39392 typedef int (*remote_function_f)(void *);
39393 
39394 struct remote_function_call {
39395 	struct task_struct *p;
39396 	remote_function_f func;
39397 	void *info;
39398 	int ret;
39399 };
39400 
39401 typedef void (*event_f)(struct perf_event *, struct perf_cpu_context *, struct perf_event_context *, void *);
39402 
39403 struct event_function_struct {
39404 	struct perf_event *event;
39405 	event_f func;
39406 	void *data;
39407 };
39408 
39409 enum event_type_t {
39410 	EVENT_FLEXIBLE = 1,
39411 	EVENT_PINNED = 2,
39412 	EVENT_TIME = 4,
39413 	EVENT_CPU = 8,
39414 	EVENT_ALL = 3,
39415 };
39416 
39417 struct __group_key {
39418 	int cpu;
39419 	struct cgroup *cgroup;
39420 };
39421 
39422 struct stop_event_data {
39423 	struct perf_event *event;
39424 	unsigned int restart;
39425 };
39426 
39427 struct perf_read_data {
39428 	struct perf_event *event;
39429 	bool group;
39430 	int ret;
39431 };
39432 
39433 struct perf_read_event {
39434 	struct perf_event_header header;
39435 	u32 pid;
39436 	u32 tid;
39437 };
39438 
39439 typedef void perf_iterate_f(struct perf_event *, void *);
39440 
39441 struct remote_output {
39442 	struct perf_buffer *rb;
39443 	int err;
39444 };
39445 
39446 struct perf_task_event {
39447 	struct task_struct *task;
39448 	struct perf_event_context *task_ctx;
39449 	struct {
39450 		struct perf_event_header header;
39451 		u32 pid;
39452 		u32 ppid;
39453 		u32 tid;
39454 		u32 ptid;
39455 		u64 time;
39456 	} event_id;
39457 };
39458 
39459 struct perf_comm_event {
39460 	struct task_struct *task;
39461 	char *comm;
39462 	int comm_size;
39463 	struct {
39464 		struct perf_event_header header;
39465 		u32 pid;
39466 		u32 tid;
39467 	} event_id;
39468 };
39469 
39470 struct perf_namespaces_event {
39471 	struct task_struct *task;
39472 	struct {
39473 		struct perf_event_header header;
39474 		u32 pid;
39475 		u32 tid;
39476 		u64 nr_namespaces;
39477 		struct perf_ns_link_info link_info[7];
39478 	} event_id;
39479 };
39480 
39481 struct perf_cgroup_event {
39482 	char *path;
39483 	int path_size;
39484 	struct {
39485 		struct perf_event_header header;
39486 		u64 id;
39487 		char path[0];
39488 	} event_id;
39489 };
39490 
39491 struct perf_mmap_event {
39492 	struct vm_area_struct *vma;
39493 	const char *file_name;
39494 	int file_size;
39495 	int maj;
39496 	int min;
39497 	u64 ino;
39498 	u64 ino_generation;
39499 	u32 prot;
39500 	u32 flags;
39501 	u8 build_id[20];
39502 	u32 build_id_size;
39503 	struct {
39504 		struct perf_event_header header;
39505 		u32 pid;
39506 		u32 tid;
39507 		u64 start;
39508 		u64 len;
39509 		u64 pgoff;
39510 	} event_id;
39511 };
39512 
39513 struct perf_switch_event {
39514 	struct task_struct *task;
39515 	struct task_struct *next_prev;
39516 	struct {
39517 		struct perf_event_header header;
39518 		u32 next_prev_pid;
39519 		u32 next_prev_tid;
39520 	} event_id;
39521 };
39522 
39523 struct perf_ksymbol_event {
39524 	const char *name;
39525 	int name_len;
39526 	struct {
39527 		struct perf_event_header header;
39528 		u64 addr;
39529 		u32 len;
39530 		u16 ksym_type;
39531 		u16 flags;
39532 	} event_id;
39533 };
39534 
39535 struct perf_bpf_event {
39536 	struct bpf_prog *prog;
39537 	struct {
39538 		struct perf_event_header header;
39539 		u16 type;
39540 		u16 flags;
39541 		u32 id;
39542 		u8 tag[8];
39543 	} event_id;
39544 };
39545 
39546 struct perf_text_poke_event {
39547 	const void *old_bytes;
39548 	const void *new_bytes;
39549 	size_t pad;
39550 	u16 old_len;
39551 	u16 new_len;
39552 	struct {
39553 		struct perf_event_header header;
39554 		u64 addr;
39555 	} event_id;
39556 };
39557 
39558 struct swevent_htable {
39559 	struct swevent_hlist *swevent_hlist;
39560 	struct mutex hlist_mutex;
39561 	int hlist_refcount;
39562 	int recursion[4];
39563 };
39564 
39565 enum perf_probe_config {
39566 	PERF_PROBE_CONFIG_IS_RETPROBE = 1,
39567 	PERF_UPROBE_REF_CTR_OFFSET_BITS = 32,
39568 	PERF_UPROBE_REF_CTR_OFFSET_SHIFT = 32,
39569 };
39570 
39571 enum {
39572 	IF_ACT_NONE = 4294967295,
39573 	IF_ACT_FILTER = 0,
39574 	IF_ACT_START = 1,
39575 	IF_ACT_STOP = 2,
39576 	IF_SRC_FILE = 3,
39577 	IF_SRC_KERNEL = 4,
39578 	IF_SRC_FILEADDR = 5,
39579 	IF_SRC_KERNELADDR = 6,
39580 };
39581 
39582 enum {
39583 	IF_STATE_ACTION = 0,
39584 	IF_STATE_SOURCE = 1,
39585 	IF_STATE_END = 2,
39586 };
39587 
39588 struct perf_aux_event {
39589 	struct perf_event_header header;
39590 	u64 hw_id;
39591 };
39592 
39593 struct perf_aux_event___2 {
39594 	struct perf_event_header header;
39595 	u32 pid;
39596 	u32 tid;
39597 };
39598 
39599 struct perf_aux_event___3 {
39600 	struct perf_event_header header;
39601 	u64 offset;
39602 	u64 size;
39603 	u64 flags;
39604 };
39605 
39606 struct callchain_cpus_entries {
39607 	struct callback_head callback_head;
39608 	struct perf_callchain_entry *cpu_entries[0];
39609 };
39610 
39611 enum bp_type_idx {
39612 	TYPE_INST = 0,
39613 	TYPE_DATA = 0,
39614 	TYPE_MAX = 1,
39615 };
39616 
39617 struct bp_cpuinfo {
39618 	unsigned int cpu_pinned;
39619 	unsigned int *tsk_pinned;
39620 	unsigned int flexible;
39621 };
39622 
39623 struct bp_busy_slots {
39624 	unsigned int pinned;
39625 	unsigned int flexible;
39626 };
39627 
39628 typedef u8 uprobe_opcode_t;
39629 
39630 struct uprobe {
39631 	struct rb_node rb_node;
39632 	refcount_t ref;
39633 	struct rw_semaphore register_rwsem;
39634 	struct rw_semaphore consumer_rwsem;
39635 	struct list_head pending_list;
39636 	struct uprobe_consumer *consumers;
39637 	struct inode *inode;
39638 	loff_t offset;
39639 	loff_t ref_ctr_offset;
39640 	long unsigned int flags;
39641 	struct arch_uprobe arch;
39642 };
39643 
39644 struct xol_area {
39645 	wait_queue_head_t wq;
39646 	atomic_t slot_count;
39647 	long unsigned int *bitmap;
39648 	struct vm_special_mapping xol_mapping;
39649 	struct page *pages[2];
39650 	long unsigned int vaddr;
39651 };
39652 
39653 typedef long unsigned int vm_flags_t;
39654 
39655 struct compact_control;
39656 
39657 struct capture_control {
39658 	struct compact_control *cc;
39659 	struct page *page;
39660 };
39661 
39662 struct page_vma_mapped_walk {
39663 	struct page *page;
39664 	struct vm_area_struct *vma;
39665 	long unsigned int address;
39666 	pmd_t *pmd;
39667 	pte_t *pte;
39668 	spinlock_t *ptl;
39669 	unsigned int flags;
39670 };
39671 
39672 struct mmu_notifier_range {
39673 	long unsigned int start;
39674 	long unsigned int end;
39675 };
39676 
39677 struct compact_control {
39678 	struct list_head freepages;
39679 	struct list_head migratepages;
39680 	unsigned int nr_freepages;
39681 	unsigned int nr_migratepages;
39682 	long unsigned int free_pfn;
39683 	long unsigned int migrate_pfn;
39684 	long unsigned int fast_start_pfn;
39685 	struct zone *zone;
39686 	long unsigned int total_migrate_scanned;
39687 	long unsigned int total_free_scanned;
39688 	short unsigned int fast_search_fail;
39689 	short int search_order;
39690 	const gfp_t gfp_mask;
39691 	int order;
39692 	int migratetype;
39693 	const unsigned int alloc_flags;
39694 	const int highest_zoneidx;
39695 	enum migrate_mode mode;
39696 	bool ignore_skip_hint;
39697 	bool no_set_skip_hint;
39698 	bool ignore_block_suitable;
39699 	bool direct_compaction;
39700 	bool proactive_compaction;
39701 	bool whole_zone;
39702 	bool contended;
39703 	bool rescan;
39704 	bool alloc_contig;
39705 };
39706 
39707 struct delayed_uprobe {
39708 	struct list_head list;
39709 	struct uprobe *uprobe;
39710 	struct mm_struct *mm;
39711 };
39712 
39713 struct __uprobe_key {
39714 	struct inode *inode;
39715 	loff_t offset;
39716 };
39717 
39718 struct map_info {
39719 	struct map_info *next;
39720 	struct mm_struct *mm;
39721 	long unsigned int vaddr;
39722 };
39723 
39724 struct static_key_mod {
39725 	struct static_key_mod *next;
39726 	struct jump_entry *entries;
39727 	struct module *mod;
39728 };
39729 
39730 struct static_key_deferred {
39731 	struct static_key key;
39732 	long unsigned int timeout;
39733 	struct delayed_work work;
39734 };
39735 
39736 enum rseq_cpu_id_state {
39737 	RSEQ_CPU_ID_UNINITIALIZED = 4294967295,
39738 	RSEQ_CPU_ID_REGISTRATION_FAILED = 4294967294,
39739 };
39740 
39741 enum rseq_flags {
39742 	RSEQ_FLAG_UNREGISTER = 1,
39743 };
39744 
39745 enum rseq_cs_flags {
39746 	RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT = 1,
39747 	RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL = 2,
39748 	RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE = 4,
39749 };
39750 
39751 struct rseq_cs {
39752 	__u32 version;
39753 	__u32 flags;
39754 	__u64 start_ip;
39755 	__u64 post_commit_offset;
39756 	__u64 abort_ip;
39757 };
39758 
39759 struct trace_event_raw_rseq_update {
39760 	struct trace_entry ent;
39761 	s32 cpu_id;
39762 	char __data[0];
39763 };
39764 
39765 struct trace_event_raw_rseq_ip_fixup {
39766 	struct trace_entry ent;
39767 	long unsigned int regs_ip;
39768 	long unsigned int start_ip;
39769 	long unsigned int post_commit_offset;
39770 	long unsigned int abort_ip;
39771 	char __data[0];
39772 };
39773 
39774 struct trace_event_data_offsets_rseq_update {};
39775 
39776 struct trace_event_data_offsets_rseq_ip_fixup {};
39777 
39778 typedef void (*btf_trace_rseq_update)(void *, struct task_struct *);
39779 
39780 typedef void (*btf_trace_rseq_ip_fixup)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int);
39781 
39782 enum key_being_used_for {
39783 	VERIFYING_MODULE_SIGNATURE = 0,
39784 	VERIFYING_FIRMWARE_SIGNATURE = 1,
39785 	VERIFYING_KEXEC_PE_SIGNATURE = 2,
39786 	VERIFYING_KEY_SIGNATURE = 3,
39787 	VERIFYING_KEY_SELF_SIGNATURE = 4,
39788 	VERIFYING_UNSPECIFIED_SIGNATURE = 5,
39789 	NR__KEY_BEING_USED_FOR = 6,
39790 };
39791 
39792 struct pkcs7_message;
39793 
39794 struct asymmetric_key_subtype;
39795 
39796 typedef struct pglist_data pg_data_t;
39797 
39798 typedef void (*xa_update_node_t)(struct xa_node *);
39799 
39800 struct xa_state {
39801 	struct xarray *xa;
39802 	long unsigned int xa_index;
39803 	unsigned char xa_shift;
39804 	unsigned char xa_sibs;
39805 	unsigned char xa_offset;
39806 	unsigned char xa_pad;
39807 	struct xa_node *xa_node;
39808 	struct xa_node *xa_alloc;
39809 	xa_update_node_t xa_update;
39810 };
39811 
39812 typedef int __kernel_rwf_t;
39813 
39814 enum positive_aop_returns {
39815 	AOP_WRITEPAGE_ACTIVATE = 524288,
39816 	AOP_TRUNCATED_PAGE = 524289,
39817 };
39818 
39819 enum iter_type {
39820 	ITER_IOVEC = 0,
39821 	ITER_KVEC = 1,
39822 	ITER_BVEC = 2,
39823 	ITER_PIPE = 3,
39824 	ITER_XARRAY = 4,
39825 	ITER_DISCARD = 5,
39826 };
39827 
39828 enum mapping_flags {
39829 	AS_EIO = 0,
39830 	AS_ENOSPC = 1,
39831 	AS_MM_ALL_LOCKS = 2,
39832 	AS_UNEVICTABLE = 3,
39833 	AS_EXITING = 4,
39834 	AS_NO_WRITEBACK_TAGS = 5,
39835 	AS_LARGE_FOLIO_SUPPORT = 6,
39836 };
39837 
39838 typedef int filler_t(void *, struct page *);
39839 
39840 struct wait_page_key {
39841 	struct folio *folio;
39842 	int bit_nr;
39843 	int page_match;
39844 };
39845 
39846 struct pagevec {
39847 	unsigned char nr;
39848 	bool percpu_pvec_drained;
39849 	struct page *pages[15];
39850 };
39851 
39852 struct folio_batch {
39853 	unsigned char nr;
39854 	bool percpu_pvec_drained;
39855 	struct folio *folios[15];
39856 };
39857 
39858 struct fid {
39859 	union {
39860 		struct {
39861 			u32 ino;
39862 			u32 gen;
39863 			u32 parent_ino;
39864 			u32 parent_gen;
39865 		} i32;
39866 		struct {
39867 			u32 block;
39868 			u16 partref;
39869 			u16 parent_partref;
39870 			u32 generation;
39871 			u32 parent_block;
39872 			u32 parent_generation;
39873 		} udf;
39874 		__u32 raw[0];
39875 	};
39876 };
39877 
39878 struct trace_event_raw_mm_filemap_op_page_cache {
39879 	struct trace_entry ent;
39880 	long unsigned int pfn;
39881 	long unsigned int i_ino;
39882 	long unsigned int index;
39883 	dev_t s_dev;
39884 	unsigned char order;
39885 	char __data[0];
39886 };
39887 
39888 struct trace_event_raw_filemap_set_wb_err {
39889 	struct trace_entry ent;
39890 	long unsigned int i_ino;
39891 	dev_t s_dev;
39892 	errseq_t errseq;
39893 	char __data[0];
39894 };
39895 
39896 struct trace_event_raw_file_check_and_advance_wb_err {
39897 	struct trace_entry ent;
39898 	struct file *file;
39899 	long unsigned int i_ino;
39900 	dev_t s_dev;
39901 	errseq_t old;
39902 	errseq_t new;
39903 	char __data[0];
39904 };
39905 
39906 struct trace_event_data_offsets_mm_filemap_op_page_cache {};
39907 
39908 struct trace_event_data_offsets_filemap_set_wb_err {};
39909 
39910 struct trace_event_data_offsets_file_check_and_advance_wb_err {};
39911 
39912 typedef void (*btf_trace_mm_filemap_delete_from_page_cache)(void *, struct folio *);
39913 
39914 typedef void (*btf_trace_mm_filemap_add_to_page_cache)(void *, struct folio *);
39915 
39916 typedef void (*btf_trace_filemap_set_wb_err)(void *, struct address_space *, errseq_t);
39917 
39918 typedef void (*btf_trace_file_check_and_advance_wb_err)(void *, struct file *, errseq_t);
39919 
39920 enum behavior {
39921 	EXCLUSIVE = 0,
39922 	SHARED = 1,
39923 	DROP = 2,
39924 };
39925 
39926 struct reciprocal_value {
39927 	u32 m;
39928 	u8 sh1;
39929 	u8 sh2;
39930 };
39931 
39932 struct kmem_cache_order_objects {
39933 	unsigned int x;
39934 };
39935 
39936 struct kmem_cache_cpu;
39937 
39938 struct kmem_cache_node;
39939 
39940 struct kmem_cache {
39941 	struct kmem_cache_cpu *cpu_slab;
39942 	slab_flags_t flags;
39943 	long unsigned int min_partial;
39944 	unsigned int size;
39945 	unsigned int object_size;
39946 	struct reciprocal_value reciprocal_size;
39947 	unsigned int offset;
39948 	unsigned int cpu_partial;
39949 	unsigned int cpu_partial_slabs;
39950 	struct kmem_cache_order_objects oo;
39951 	struct kmem_cache_order_objects max;
39952 	struct kmem_cache_order_objects min;
39953 	gfp_t allocflags;
39954 	int refcount;
39955 	void (*ctor)(void *);
39956 	unsigned int inuse;
39957 	unsigned int align;
39958 	unsigned int red_left_pad;
39959 	const char *name;
39960 	struct list_head list;
39961 	struct kobject kobj;
39962 	unsigned int remote_node_defrag_ratio;
39963 	unsigned int useroffset;
39964 	unsigned int usersize;
39965 	struct kmem_cache_node *node[64];
39966 };
39967 
39968 struct slab {
39969 	long unsigned int __page_flags;
39970 	union {
39971 		struct list_head slab_list;
39972 		struct callback_head callback_head;
39973 		struct {
39974 			struct slab *next;
39975 			int slabs;
39976 		};
39977 	};
39978 	struct kmem_cache *slab_cache;
39979 	void *freelist;
39980 	union {
39981 		long unsigned int counters;
39982 		struct {
39983 			unsigned int inuse: 16;
39984 			unsigned int objects: 15;
39985 			unsigned int frozen: 1;
39986 		};
39987 	};
39988 	unsigned int __unused;
39989 	atomic_t __page_refcount;
39990 	long unsigned int memcg_data;
39991 };
39992 
39993 struct kmem_cache_cpu {
39994 	void **freelist;
39995 	long unsigned int tid;
39996 	struct slab *slab;
39997 	struct slab *partial;
39998 	local_lock_t lock;
39999 };
40000 
40001 struct kmem_cache_node {
40002 	spinlock_t list_lock;
40003 	long unsigned int nr_partial;
40004 	struct list_head partial;
40005 	atomic_long_t nr_slabs;
40006 	atomic_long_t total_objects;
40007 	struct list_head full;
40008 };
40009 
40010 enum slab_state {
40011 	DOWN = 0,
40012 	PARTIAL = 1,
40013 	PARTIAL_NODE = 2,
40014 	UP = 3,
40015 	FULL = 4,
40016 };
40017 
40018 struct kmalloc_info_struct {
40019 	const char *name[4];
40020 	unsigned int size;
40021 };
40022 
40023 enum oom_constraint {
40024 	CONSTRAINT_NONE = 0,
40025 	CONSTRAINT_CPUSET = 1,
40026 	CONSTRAINT_MEMORY_POLICY = 2,
40027 	CONSTRAINT_MEMCG = 3,
40028 };
40029 
40030 struct oom_control {
40031 	struct zonelist *zonelist;
40032 	nodemask_t *nodemask;
40033 	struct mem_cgroup *memcg;
40034 	const gfp_t gfp_mask;
40035 	const int order;
40036 	long unsigned int totalpages;
40037 	struct task_struct *chosen;
40038 	long int chosen_points;
40039 	enum oom_constraint constraint;
40040 };
40041 
40042 enum compact_priority {
40043 	COMPACT_PRIO_SYNC_FULL = 0,
40044 	MIN_COMPACT_PRIORITY = 0,
40045 	COMPACT_PRIO_SYNC_LIGHT = 1,
40046 	MIN_COMPACT_COSTLY_PRIORITY = 1,
40047 	DEF_COMPACT_PRIORITY = 1,
40048 	COMPACT_PRIO_ASYNC = 2,
40049 	INIT_COMPACT_PRIORITY = 2,
40050 };
40051 
40052 enum compact_result {
40053 	COMPACT_NOT_SUITABLE_ZONE = 0,
40054 	COMPACT_SKIPPED = 1,
40055 	COMPACT_DEFERRED = 2,
40056 	COMPACT_NO_SUITABLE_PAGE = 3,
40057 	COMPACT_CONTINUE = 4,
40058 	COMPACT_COMPLETE = 5,
40059 	COMPACT_PARTIAL_SKIPPED = 6,
40060 	COMPACT_CONTENDED = 7,
40061 	COMPACT_SUCCESS = 8,
40062 };
40063 
40064 struct trace_event_raw_oom_score_adj_update {
40065 	struct trace_entry ent;
40066 	pid_t pid;
40067 	char comm[16];
40068 	short int oom_score_adj;
40069 	char __data[0];
40070 };
40071 
40072 struct trace_event_raw_reclaim_retry_zone {
40073 	struct trace_entry ent;
40074 	int node;
40075 	int zone_idx;
40076 	int order;
40077 	long unsigned int reclaimable;
40078 	long unsigned int available;
40079 	long unsigned int min_wmark;
40080 	int no_progress_loops;
40081 	bool wmark_check;
40082 	char __data[0];
40083 };
40084 
40085 struct trace_event_raw_mark_victim {
40086 	struct trace_entry ent;
40087 	int pid;
40088 	char __data[0];
40089 };
40090 
40091 struct trace_event_raw_wake_reaper {
40092 	struct trace_entry ent;
40093 	int pid;
40094 	char __data[0];
40095 };
40096 
40097 struct trace_event_raw_start_task_reaping {
40098 	struct trace_entry ent;
40099 	int pid;
40100 	char __data[0];
40101 };
40102 
40103 struct trace_event_raw_finish_task_reaping {
40104 	struct trace_entry ent;
40105 	int pid;
40106 	char __data[0];
40107 };
40108 
40109 struct trace_event_raw_skip_task_reaping {
40110 	struct trace_entry ent;
40111 	int pid;
40112 	char __data[0];
40113 };
40114 
40115 struct trace_event_raw_compact_retry {
40116 	struct trace_entry ent;
40117 	int order;
40118 	int priority;
40119 	int result;
40120 	int retries;
40121 	int max_retries;
40122 	bool ret;
40123 	char __data[0];
40124 };
40125 
40126 struct trace_event_data_offsets_oom_score_adj_update {};
40127 
40128 struct trace_event_data_offsets_reclaim_retry_zone {};
40129 
40130 struct trace_event_data_offsets_mark_victim {};
40131 
40132 struct trace_event_data_offsets_wake_reaper {};
40133 
40134 struct trace_event_data_offsets_start_task_reaping {};
40135 
40136 struct trace_event_data_offsets_finish_task_reaping {};
40137 
40138 struct trace_event_data_offsets_skip_task_reaping {};
40139 
40140 struct trace_event_data_offsets_compact_retry {};
40141 
40142 typedef void (*btf_trace_oom_score_adj_update)(void *, struct task_struct *);
40143 
40144 typedef void (*btf_trace_reclaim_retry_zone)(void *, struct zoneref *, int, long unsigned int, long unsigned int, long unsigned int, int, bool);
40145 
40146 typedef void (*btf_trace_mark_victim)(void *, int);
40147 
40148 typedef void (*btf_trace_wake_reaper)(void *, int);
40149 
40150 typedef void (*btf_trace_start_task_reaping)(void *, int);
40151 
40152 typedef void (*btf_trace_finish_task_reaping)(void *, int);
40153 
40154 typedef void (*btf_trace_skip_task_reaping)(void *, int);
40155 
40156 typedef void (*btf_trace_compact_retry)(void *, int, enum compact_priority, enum compact_result, int, int, bool);
40157 
40158 enum wb_congested_state {
40159 	WB_async_congested = 0,
40160 	WB_sync_congested = 1,
40161 };
40162 
40163 enum {
40164 	XA_CHECK_SCHED = 4096,
40165 };
40166 
40167 enum wb_state {
40168 	WB_registered = 0,
40169 	WB_writeback_running = 1,
40170 	WB_has_dirty_io = 2,
40171 	WB_start_all = 3,
40172 };
40173 
40174 struct wb_lock_cookie {
40175 	bool locked;
40176 	long unsigned int flags;
40177 };
40178 
40179 typedef int (*writepage_t)(struct page *, struct writeback_control *, void *);
40180 
40181 enum page_memcg_data_flags {
40182 	MEMCG_DATA_OBJCGS = 1,
40183 	MEMCG_DATA_KMEM = 2,
40184 	__NR_MEMCG_DATA_FLAGS = 4,
40185 };
40186 
40187 struct dirty_throttle_control {
40188 	struct wb_domain *dom;
40189 	struct dirty_throttle_control *gdtc;
40190 	struct bdi_writeback *wb;
40191 	struct fprop_local_percpu *wb_completions;
40192 	long unsigned int avail;
40193 	long unsigned int dirty;
40194 	long unsigned int thresh;
40195 	long unsigned int bg_thresh;
40196 	long unsigned int wb_dirty;
40197 	long unsigned int wb_thresh;
40198 	long unsigned int wb_bg_thresh;
40199 	long unsigned int pos_ratio;
40200 };
40201 
40202 enum migrate_reason {
40203 	MR_COMPACTION = 0,
40204 	MR_MEMORY_FAILURE = 1,
40205 	MR_MEMORY_HOTPLUG = 2,
40206 	MR_SYSCALL = 3,
40207 	MR_MEMPOLICY_MBIND = 4,
40208 	MR_NUMA_MISPLACED = 5,
40209 	MR_CONTIG_RANGE = 6,
40210 	MR_LONGTERM_PIN = 7,
40211 	MR_DEMOTION = 8,
40212 	MR_TYPES = 9,
40213 };
40214 
40215 struct trace_event_raw_mm_lru_insertion {
40216 	struct trace_entry ent;
40217 	struct folio *folio;
40218 	long unsigned int pfn;
40219 	enum lru_list lru;
40220 	long unsigned int flags;
40221 	char __data[0];
40222 };
40223 
40224 struct trace_event_raw_mm_lru_activate {
40225 	struct trace_entry ent;
40226 	struct folio *folio;
40227 	long unsigned int pfn;
40228 	char __data[0];
40229 };
40230 
40231 struct trace_event_data_offsets_mm_lru_insertion {};
40232 
40233 struct trace_event_data_offsets_mm_lru_activate {};
40234 
40235 typedef void (*btf_trace_mm_lru_insertion)(void *, struct folio *);
40236 
40237 typedef void (*btf_trace_mm_lru_activate)(void *, struct folio *);
40238 
40239 struct lru_rotate {
40240 	local_lock_t lock;
40241 	struct pagevec pvec;
40242 };
40243 
40244 struct lru_pvecs {
40245 	local_lock_t lock;
40246 	struct pagevec lru_add;
40247 	struct pagevec lru_deactivate_file;
40248 	struct pagevec lru_deactivate;
40249 	struct pagevec lru_lazyfree;
40250 	struct pagevec activate_page;
40251 };
40252 
40253 typedef struct {
40254 	long unsigned int val;
40255 } swp_entry_t;
40256 
40257 enum lruvec_flags {
40258 	LRUVEC_CONGESTED = 0,
40259 };
40260 
40261 enum pgdat_flags {
40262 	PGDAT_DIRTY = 0,
40263 	PGDAT_WRITEBACK = 1,
40264 	PGDAT_RECLAIM_LOCKED = 2,
40265 };
40266 
40267 enum zone_flags {
40268 	ZONE_BOOSTED_WATERMARK = 0,
40269 	ZONE_RECLAIM_ACTIVE = 1,
40270 };
40271 
40272 struct reclaim_stat {
40273 	unsigned int nr_dirty;
40274 	unsigned int nr_unqueued_dirty;
40275 	unsigned int nr_congested;
40276 	unsigned int nr_writeback;
40277 	unsigned int nr_immediate;
40278 	unsigned int nr_pageout;
40279 	unsigned int nr_activate[2];
40280 	unsigned int nr_ref_keep;
40281 	unsigned int nr_unmap_fail;
40282 	unsigned int nr_lazyfree_fail;
40283 };
40284 
40285 enum ttu_flags {
40286 	TTU_SPLIT_HUGE_PMD = 4,
40287 	TTU_IGNORE_MLOCK = 8,
40288 	TTU_SYNC = 16,
40289 	TTU_IGNORE_HWPOISON = 32,
40290 	TTU_BATCH_FLUSH = 64,
40291 	TTU_RMAP_LOCKED = 128,
40292 };
40293 
40294 struct migration_target_control {
40295 	int nid;
40296 	nodemask_t *nmask;
40297 	gfp_t gfp_mask;
40298 };
40299 
40300 struct trace_event_raw_mm_vmscan_kswapd_sleep {
40301 	struct trace_entry ent;
40302 	int nid;
40303 	char __data[0];
40304 };
40305 
40306 struct trace_event_raw_mm_vmscan_kswapd_wake {
40307 	struct trace_entry ent;
40308 	int nid;
40309 	int zid;
40310 	int order;
40311 	char __data[0];
40312 };
40313 
40314 struct trace_event_raw_mm_vmscan_wakeup_kswapd {
40315 	struct trace_entry ent;
40316 	int nid;
40317 	int zid;
40318 	int order;
40319 	gfp_t gfp_flags;
40320 	char __data[0];
40321 };
40322 
40323 struct trace_event_raw_mm_vmscan_direct_reclaim_begin_template {
40324 	struct trace_entry ent;
40325 	int order;
40326 	gfp_t gfp_flags;
40327 	char __data[0];
40328 };
40329 
40330 struct trace_event_raw_mm_vmscan_direct_reclaim_end_template {
40331 	struct trace_entry ent;
40332 	long unsigned int nr_reclaimed;
40333 	char __data[0];
40334 };
40335 
40336 struct trace_event_raw_mm_shrink_slab_start {
40337 	struct trace_entry ent;
40338 	struct shrinker *shr;
40339 	void *shrink;
40340 	int nid;
40341 	long int nr_objects_to_shrink;
40342 	gfp_t gfp_flags;
40343 	long unsigned int cache_items;
40344 	long long unsigned int delta;
40345 	long unsigned int total_scan;
40346 	int priority;
40347 	char __data[0];
40348 };
40349 
40350 struct trace_event_raw_mm_shrink_slab_end {
40351 	struct trace_entry ent;
40352 	struct shrinker *shr;
40353 	int nid;
40354 	void *shrink;
40355 	long int unused_scan;
40356 	long int new_scan;
40357 	int retval;
40358 	long int total_scan;
40359 	char __data[0];
40360 };
40361 
40362 struct trace_event_raw_mm_vmscan_lru_isolate {
40363 	struct trace_entry ent;
40364 	int highest_zoneidx;
40365 	int order;
40366 	long unsigned int nr_requested;
40367 	long unsigned int nr_scanned;
40368 	long unsigned int nr_skipped;
40369 	long unsigned int nr_taken;
40370 	isolate_mode_t isolate_mode;
40371 	int lru;
40372 	char __data[0];
40373 };
40374 
40375 struct trace_event_raw_mm_vmscan_writepage {
40376 	struct trace_entry ent;
40377 	long unsigned int pfn;
40378 	int reclaim_flags;
40379 	char __data[0];
40380 };
40381 
40382 struct trace_event_raw_mm_vmscan_lru_shrink_inactive {
40383 	struct trace_entry ent;
40384 	int nid;
40385 	long unsigned int nr_scanned;
40386 	long unsigned int nr_reclaimed;
40387 	long unsigned int nr_dirty;
40388 	long unsigned int nr_writeback;
40389 	long unsigned int nr_congested;
40390 	long unsigned int nr_immediate;
40391 	unsigned int nr_activate0;
40392 	unsigned int nr_activate1;
40393 	long unsigned int nr_ref_keep;
40394 	long unsigned int nr_unmap_fail;
40395 	int priority;
40396 	int reclaim_flags;
40397 	char __data[0];
40398 };
40399 
40400 struct trace_event_raw_mm_vmscan_lru_shrink_active {
40401 	struct trace_entry ent;
40402 	int nid;
40403 	long unsigned int nr_taken;
40404 	long unsigned int nr_active;
40405 	long unsigned int nr_deactivated;
40406 	long unsigned int nr_referenced;
40407 	int priority;
40408 	int reclaim_flags;
40409 	char __data[0];
40410 };
40411 
40412 struct trace_event_raw_mm_vmscan_node_reclaim_begin {
40413 	struct trace_entry ent;
40414 	int nid;
40415 	int order;
40416 	gfp_t gfp_flags;
40417 	char __data[0];
40418 };
40419 
40420 struct trace_event_raw_mm_vmscan_throttled {
40421 	struct trace_entry ent;
40422 	int nid;
40423 	int usec_timeout;
40424 	int usec_delayed;
40425 	int reason;
40426 	char __data[0];
40427 };
40428 
40429 struct trace_event_data_offsets_mm_vmscan_kswapd_sleep {};
40430 
40431 struct trace_event_data_offsets_mm_vmscan_kswapd_wake {};
40432 
40433 struct trace_event_data_offsets_mm_vmscan_wakeup_kswapd {};
40434 
40435 struct trace_event_data_offsets_mm_vmscan_direct_reclaim_begin_template {};
40436 
40437 struct trace_event_data_offsets_mm_vmscan_direct_reclaim_end_template {};
40438 
40439 struct trace_event_data_offsets_mm_shrink_slab_start {};
40440 
40441 struct trace_event_data_offsets_mm_shrink_slab_end {};
40442 
40443 struct trace_event_data_offsets_mm_vmscan_lru_isolate {};
40444 
40445 struct trace_event_data_offsets_mm_vmscan_writepage {};
40446 
40447 struct trace_event_data_offsets_mm_vmscan_lru_shrink_inactive {};
40448 
40449 struct trace_event_data_offsets_mm_vmscan_lru_shrink_active {};
40450 
40451 struct trace_event_data_offsets_mm_vmscan_node_reclaim_begin {};
40452 
40453 struct trace_event_data_offsets_mm_vmscan_throttled {};
40454 
40455 typedef void (*btf_trace_mm_vmscan_kswapd_sleep)(void *, int);
40456 
40457 typedef void (*btf_trace_mm_vmscan_kswapd_wake)(void *, int, int, int);
40458 
40459 typedef void (*btf_trace_mm_vmscan_wakeup_kswapd)(void *, int, int, int, gfp_t);
40460 
40461 typedef void (*btf_trace_mm_vmscan_direct_reclaim_begin)(void *, int, gfp_t);
40462 
40463 typedef void (*btf_trace_mm_vmscan_memcg_reclaim_begin)(void *, int, gfp_t);
40464 
40465 typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_begin)(void *, int, gfp_t);
40466 
40467 typedef void (*btf_trace_mm_vmscan_direct_reclaim_end)(void *, long unsigned int);
40468 
40469 typedef void (*btf_trace_mm_vmscan_memcg_reclaim_end)(void *, long unsigned int);
40470 
40471 typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_end)(void *, long unsigned int);
40472 
40473 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);
40474 
40475 typedef void (*btf_trace_mm_shrink_slab_end)(void *, struct shrinker *, int, int, long int, long int, long int);
40476 
40477 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);
40478 
40479 typedef void (*btf_trace_mm_vmscan_writepage)(void *, struct page *);
40480 
40481 typedef void (*btf_trace_mm_vmscan_lru_shrink_inactive)(void *, int, long unsigned int, long unsigned int, struct reclaim_stat *, int, int);
40482 
40483 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);
40484 
40485 typedef void (*btf_trace_mm_vmscan_node_reclaim_begin)(void *, int, int, gfp_t);
40486 
40487 typedef void (*btf_trace_mm_vmscan_node_reclaim_end)(void *, long unsigned int);
40488 
40489 typedef void (*btf_trace_mm_vmscan_throttled)(void *, int, int, int, int);
40490 
40491 struct scan_control {
40492 	long unsigned int nr_to_reclaim;
40493 	nodemask_t *nodemask;
40494 	struct mem_cgroup *target_mem_cgroup;
40495 	long unsigned int anon_cost;
40496 	long unsigned int file_cost;
40497 	unsigned int may_deactivate: 2;
40498 	unsigned int force_deactivate: 1;
40499 	unsigned int skipped_deactivate: 1;
40500 	unsigned int may_writepage: 1;
40501 	unsigned int may_unmap: 1;
40502 	unsigned int may_swap: 1;
40503 	unsigned int memcg_low_reclaim: 1;
40504 	unsigned int memcg_low_skipped: 1;
40505 	unsigned int hibernation_mode: 1;
40506 	unsigned int compaction_ready: 1;
40507 	unsigned int cache_trim_mode: 1;
40508 	unsigned int file_is_tiny: 1;
40509 	unsigned int no_demotion: 1;
40510 	s8 order;
40511 	s8 priority;
40512 	s8 reclaim_idx;
40513 	gfp_t gfp_mask;
40514 	long unsigned int nr_scanned;
40515 	long unsigned int nr_reclaimed;
40516 	struct {
40517 		unsigned int dirty;
40518 		unsigned int unqueued_dirty;
40519 		unsigned int congested;
40520 		unsigned int writeback;
40521 		unsigned int immediate;
40522 		unsigned int file_taken;
40523 		unsigned int taken;
40524 	} nr;
40525 	struct reclaim_state reclaim_state;
40526 };
40527 
40528 typedef enum {
40529 	PAGE_KEEP = 0,
40530 	PAGE_ACTIVATE = 1,
40531 	PAGE_SUCCESS = 2,
40532 	PAGE_CLEAN = 3,
40533 } pageout_t;
40534 
40535 enum page_references {
40536 	PAGEREF_RECLAIM = 0,
40537 	PAGEREF_RECLAIM_CLEAN = 1,
40538 	PAGEREF_KEEP = 2,
40539 	PAGEREF_ACTIVATE = 3,
40540 };
40541 
40542 enum scan_balance {
40543 	SCAN_EQUAL = 0,
40544 	SCAN_FRACT = 1,
40545 	SCAN_ANON = 2,
40546 	SCAN_FILE = 3,
40547 };
40548 
40549 enum transparent_hugepage_flag {
40550 	TRANSPARENT_HUGEPAGE_NEVER_DAX = 0,
40551 	TRANSPARENT_HUGEPAGE_FLAG = 1,
40552 	TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG = 2,
40553 	TRANSPARENT_HUGEPAGE_DEFRAG_DIRECT_FLAG = 3,
40554 	TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_FLAG = 4,
40555 	TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG = 5,
40556 	TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG = 6,
40557 	TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG = 7,
40558 	TRANSPARENT_HUGEPAGE_USE_ZERO_PAGE_FLAG = 8,
40559 };
40560 
40561 struct xattr {
40562 	const char *name;
40563 	void *value;
40564 	size_t value_len;
40565 };
40566 
40567 struct constant_table {
40568 	const char *name;
40569 	int value;
40570 };
40571 
40572 enum {
40573 	MPOL_DEFAULT = 0,
40574 	MPOL_PREFERRED = 1,
40575 	MPOL_BIND = 2,
40576 	MPOL_INTERLEAVE = 3,
40577 	MPOL_LOCAL = 4,
40578 	MPOL_PREFERRED_MANY = 5,
40579 	MPOL_MAX = 6,
40580 };
40581 
40582 struct shared_policy {
40583 	struct rb_root root;
40584 	rwlock_t lock;
40585 };
40586 
40587 struct simple_xattrs {
40588 	struct list_head head;
40589 	spinlock_t lock;
40590 };
40591 
40592 struct simple_xattr {
40593 	struct list_head list;
40594 	char *name;
40595 	size_t size;
40596 	char value[0];
40597 };
40598 
40599 struct shmem_inode_info {
40600 	spinlock_t lock;
40601 	unsigned int seals;
40602 	long unsigned int flags;
40603 	long unsigned int alloced;
40604 	long unsigned int swapped;
40605 	long unsigned int fallocend;
40606 	struct list_head shrinklist;
40607 	struct list_head swaplist;
40608 	struct shared_policy policy;
40609 	struct simple_xattrs xattrs;
40610 	atomic_t stop_eviction;
40611 	struct inode vfs_inode;
40612 };
40613 
40614 struct shmem_sb_info {
40615 	long unsigned int max_blocks;
40616 	struct percpu_counter used_blocks;
40617 	long unsigned int max_inodes;
40618 	long unsigned int free_inodes;
40619 	raw_spinlock_t stat_lock;
40620 	umode_t mode;
40621 	unsigned char huge;
40622 	kuid_t uid;
40623 	kgid_t gid;
40624 	bool full_inums;
40625 	ino_t next_ino;
40626 	ino_t *ino_batch;
40627 	struct mempolicy *mpol;
40628 	spinlock_t shrinklist_lock;
40629 	struct list_head shrinklist;
40630 	long unsigned int shrinklist_len;
40631 };
40632 
40633 enum sgp_type {
40634 	SGP_READ = 0,
40635 	SGP_NOALLOC = 1,
40636 	SGP_CACHE = 2,
40637 	SGP_WRITE = 3,
40638 	SGP_FALLOC = 4,
40639 };
40640 
40641 enum fid_type {
40642 	FILEID_ROOT = 0,
40643 	FILEID_INO32_GEN = 1,
40644 	FILEID_INO32_GEN_PARENT = 2,
40645 	FILEID_BTRFS_WITHOUT_PARENT = 77,
40646 	FILEID_BTRFS_WITH_PARENT = 78,
40647 	FILEID_BTRFS_WITH_PARENT_ROOT = 79,
40648 	FILEID_UDF_WITHOUT_PARENT = 81,
40649 	FILEID_UDF_WITH_PARENT = 82,
40650 	FILEID_NILFS_WITHOUT_PARENT = 97,
40651 	FILEID_NILFS_WITH_PARENT = 98,
40652 	FILEID_FAT_WITHOUT_PARENT = 113,
40653 	FILEID_FAT_WITH_PARENT = 114,
40654 	FILEID_LUSTRE = 151,
40655 	FILEID_KERNFS = 254,
40656 	FILEID_INVALID = 255,
40657 };
40658 
40659 struct shmem_falloc {
40660 	wait_queue_head_t *waitq;
40661 	long unsigned int start;
40662 	long unsigned int next;
40663 	long unsigned int nr_falloced;
40664 	long unsigned int nr_unswapped;
40665 };
40666 
40667 struct shmem_options {
40668 	long long unsigned int blocks;
40669 	long long unsigned int inodes;
40670 	struct mempolicy *mpol;
40671 	kuid_t uid;
40672 	kgid_t gid;
40673 	umode_t mode;
40674 	bool full_inums;
40675 	int huge;
40676 	int seen;
40677 };
40678 
40679 enum shmem_param {
40680 	Opt_gid = 0,
40681 	Opt_huge = 1,
40682 	Opt_mode = 2,
40683 	Opt_mpol = 3,
40684 	Opt_nr_blocks = 4,
40685 	Opt_nr_inodes = 5,
40686 	Opt_size = 6,
40687 	Opt_uid = 7,
40688 	Opt_inode32 = 8,
40689 	Opt_inode64 = 9,
40690 };
40691 
40692 enum writeback_stat_item {
40693 	NR_DIRTY_THRESHOLD = 0,
40694 	NR_DIRTY_BG_THRESHOLD = 1,
40695 	NR_VM_WRITEBACK_STAT_ITEMS = 2,
40696 };
40697 
40698 struct contig_page_info {
40699 	long unsigned int free_pages;
40700 	long unsigned int free_blocks_total;
40701 	long unsigned int free_blocks_suitable;
40702 };
40703 
40704 struct radix_tree_iter {
40705 	long unsigned int index;
40706 	long unsigned int next_index;
40707 	long unsigned int tags;
40708 	struct xa_node *node;
40709 };
40710 
40711 enum {
40712 	RADIX_TREE_ITER_TAG_MASK = 15,
40713 	RADIX_TREE_ITER_TAGGED = 16,
40714 	RADIX_TREE_ITER_CONTIG = 32,
40715 };
40716 
40717 enum mminit_level {
40718 	MMINIT_WARNING = 0,
40719 	MMINIT_VERIFY = 1,
40720 	MMINIT_TRACE = 2,
40721 };
40722 
40723 struct pcpu_group_info {
40724 	int nr_units;
40725 	long unsigned int base_offset;
40726 	unsigned int *cpu_map;
40727 };
40728 
40729 struct pcpu_alloc_info {
40730 	size_t static_size;
40731 	size_t reserved_size;
40732 	size_t dyn_size;
40733 	size_t unit_size;
40734 	size_t atom_size;
40735 	size_t alloc_size;
40736 	size_t __ai_size;
40737 	int nr_groups;
40738 	struct pcpu_group_info groups[0];
40739 };
40740 
40741 typedef int pcpu_fc_cpu_to_node_fn_t(int);
40742 
40743 typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int);
40744 
40745 struct trace_event_raw_percpu_alloc_percpu {
40746 	struct trace_entry ent;
40747 	bool reserved;
40748 	bool is_atomic;
40749 	size_t size;
40750 	size_t align;
40751 	void *base_addr;
40752 	int off;
40753 	void *ptr;
40754 	char __data[0];
40755 };
40756 
40757 struct trace_event_raw_percpu_free_percpu {
40758 	struct trace_entry ent;
40759 	void *base_addr;
40760 	int off;
40761 	void *ptr;
40762 	char __data[0];
40763 };
40764 
40765 struct trace_event_raw_percpu_alloc_percpu_fail {
40766 	struct trace_entry ent;
40767 	bool reserved;
40768 	bool is_atomic;
40769 	size_t size;
40770 	size_t align;
40771 	char __data[0];
40772 };
40773 
40774 struct trace_event_raw_percpu_create_chunk {
40775 	struct trace_entry ent;
40776 	void *base_addr;
40777 	char __data[0];
40778 };
40779 
40780 struct trace_event_raw_percpu_destroy_chunk {
40781 	struct trace_entry ent;
40782 	void *base_addr;
40783 	char __data[0];
40784 };
40785 
40786 struct trace_event_data_offsets_percpu_alloc_percpu {};
40787 
40788 struct trace_event_data_offsets_percpu_free_percpu {};
40789 
40790 struct trace_event_data_offsets_percpu_alloc_percpu_fail {};
40791 
40792 struct trace_event_data_offsets_percpu_create_chunk {};
40793 
40794 struct trace_event_data_offsets_percpu_destroy_chunk {};
40795 
40796 typedef void (*btf_trace_percpu_alloc_percpu)(void *, bool, bool, size_t, size_t, void *, int, void *);
40797 
40798 typedef void (*btf_trace_percpu_free_percpu)(void *, void *, int, void *);
40799 
40800 typedef void (*btf_trace_percpu_alloc_percpu_fail)(void *, bool, bool, size_t, size_t);
40801 
40802 typedef void (*btf_trace_percpu_create_chunk)(void *, void *);
40803 
40804 typedef void (*btf_trace_percpu_destroy_chunk)(void *, void *);
40805 
40806 struct pcpu_block_md {
40807 	int scan_hint;
40808 	int scan_hint_start;
40809 	int contig_hint;
40810 	int contig_hint_start;
40811 	int left_free;
40812 	int right_free;
40813 	int first_free;
40814 	int nr_bits;
40815 };
40816 
40817 struct pcpu_chunk {
40818 	struct list_head list;
40819 	int free_bytes;
40820 	struct pcpu_block_md chunk_md;
40821 	void *base_addr;
40822 	long unsigned int *alloc_map;
40823 	long unsigned int *bound_map;
40824 	struct pcpu_block_md *md_blocks;
40825 	void *data;
40826 	bool immutable;
40827 	bool isolated;
40828 	int start_offset;
40829 	int end_offset;
40830 	struct obj_cgroup **obj_cgroups;
40831 	int nr_pages;
40832 	int nr_populated;
40833 	int nr_empty_pop_pages;
40834 	long unsigned int populated[0];
40835 };
40836 
40837 struct trace_event_raw_kmem_alloc {
40838 	struct trace_entry ent;
40839 	long unsigned int call_site;
40840 	const void *ptr;
40841 	size_t bytes_req;
40842 	size_t bytes_alloc;
40843 	gfp_t gfp_flags;
40844 	char __data[0];
40845 };
40846 
40847 struct trace_event_raw_kmem_alloc_node {
40848 	struct trace_entry ent;
40849 	long unsigned int call_site;
40850 	const void *ptr;
40851 	size_t bytes_req;
40852 	size_t bytes_alloc;
40853 	gfp_t gfp_flags;
40854 	int node;
40855 	char __data[0];
40856 };
40857 
40858 struct trace_event_raw_kfree {
40859 	struct trace_entry ent;
40860 	long unsigned int call_site;
40861 	const void *ptr;
40862 	char __data[0];
40863 };
40864 
40865 struct trace_event_raw_kmem_cache_free {
40866 	struct trace_entry ent;
40867 	long unsigned int call_site;
40868 	const void *ptr;
40869 	u32 __data_loc_name;
40870 	char __data[0];
40871 };
40872 
40873 struct trace_event_raw_mm_page_free {
40874 	struct trace_entry ent;
40875 	long unsigned int pfn;
40876 	unsigned int order;
40877 	char __data[0];
40878 };
40879 
40880 struct trace_event_raw_mm_page_free_batched {
40881 	struct trace_entry ent;
40882 	long unsigned int pfn;
40883 	char __data[0];
40884 };
40885 
40886 struct trace_event_raw_mm_page_alloc {
40887 	struct trace_entry ent;
40888 	long unsigned int pfn;
40889 	unsigned int order;
40890 	gfp_t gfp_flags;
40891 	int migratetype;
40892 	char __data[0];
40893 };
40894 
40895 struct trace_event_raw_mm_page {
40896 	struct trace_entry ent;
40897 	long unsigned int pfn;
40898 	unsigned int order;
40899 	int migratetype;
40900 	char __data[0];
40901 };
40902 
40903 struct trace_event_raw_mm_page_pcpu_drain {
40904 	struct trace_entry ent;
40905 	long unsigned int pfn;
40906 	unsigned int order;
40907 	int migratetype;
40908 	char __data[0];
40909 };
40910 
40911 struct trace_event_raw_mm_page_alloc_extfrag {
40912 	struct trace_entry ent;
40913 	long unsigned int pfn;
40914 	int alloc_order;
40915 	int fallback_order;
40916 	int alloc_migratetype;
40917 	int fallback_migratetype;
40918 	int change_ownership;
40919 	char __data[0];
40920 };
40921 
40922 struct trace_event_raw_rss_stat {
40923 	struct trace_entry ent;
40924 	unsigned int mm_id;
40925 	unsigned int curr;
40926 	int member;
40927 	long int size;
40928 	char __data[0];
40929 };
40930 
40931 struct trace_event_data_offsets_kmem_alloc {};
40932 
40933 struct trace_event_data_offsets_kmem_alloc_node {};
40934 
40935 struct trace_event_data_offsets_kfree {};
40936 
40937 struct trace_event_data_offsets_kmem_cache_free {
40938 	u32 name;
40939 };
40940 
40941 struct trace_event_data_offsets_mm_page_free {};
40942 
40943 struct trace_event_data_offsets_mm_page_free_batched {};
40944 
40945 struct trace_event_data_offsets_mm_page_alloc {};
40946 
40947 struct trace_event_data_offsets_mm_page {};
40948 
40949 struct trace_event_data_offsets_mm_page_pcpu_drain {};
40950 
40951 struct trace_event_data_offsets_mm_page_alloc_extfrag {};
40952 
40953 struct trace_event_data_offsets_rss_stat {};
40954 
40955 typedef void (*btf_trace_kmalloc)(void *, long unsigned int, const void *, size_t, size_t, gfp_t);
40956 
40957 typedef void (*btf_trace_kmem_cache_alloc)(void *, long unsigned int, const void *, size_t, size_t, gfp_t);
40958 
40959 typedef void (*btf_trace_kmalloc_node)(void *, long unsigned int, const void *, size_t, size_t, gfp_t, int);
40960 
40961 typedef void (*btf_trace_kmem_cache_alloc_node)(void *, long unsigned int, const void *, size_t, size_t, gfp_t, int);
40962 
40963 typedef void (*btf_trace_kfree)(void *, long unsigned int, const void *);
40964 
40965 typedef void (*btf_trace_kmem_cache_free)(void *, long unsigned int, const void *, const char *);
40966 
40967 typedef void (*btf_trace_mm_page_free)(void *, struct page *, unsigned int);
40968 
40969 typedef void (*btf_trace_mm_page_free_batched)(void *, struct page *);
40970 
40971 typedef void (*btf_trace_mm_page_alloc)(void *, struct page *, unsigned int, gfp_t, int);
40972 
40973 typedef void (*btf_trace_mm_page_alloc_zone_locked)(void *, struct page *, unsigned int, int);
40974 
40975 typedef void (*btf_trace_mm_page_pcpu_drain)(void *, struct page *, unsigned int, int);
40976 
40977 typedef void (*btf_trace_mm_page_alloc_extfrag)(void *, struct page *, int, int, int, int);
40978 
40979 typedef void (*btf_trace_rss_stat)(void *, struct mm_struct *, int, long int);
40980 
40981 struct slabinfo {
40982 	long unsigned int active_objs;
40983 	long unsigned int num_objs;
40984 	long unsigned int active_slabs;
40985 	long unsigned int num_slabs;
40986 	long unsigned int shared_avail;
40987 	unsigned int limit;
40988 	unsigned int batchcount;
40989 	unsigned int shared;
40990 	unsigned int objects_per_slab;
40991 	unsigned int cache_order;
40992 };
40993 
40994 struct kmem_obj_info {
40995 	void *kp_ptr;
40996 	struct slab *kp_slab;
40997 	void *kp_objp;
40998 	long unsigned int kp_data_offset;
40999 	struct kmem_cache *kp_slab_cache;
41000 	void *kp_ret;
41001 	void *kp_stack[16];
41002 	void *kp_free_stack[16];
41003 };
41004 
41005 enum pageblock_bits {
41006 	PB_migrate = 0,
41007 	PB_migrate_end = 2,
41008 	PB_migrate_skip = 3,
41009 	NR_PAGEBLOCK_BITS = 4,
41010 };
41011 
41012 struct alloc_context {
41013 	struct zonelist *zonelist;
41014 	nodemask_t *nodemask;
41015 	struct zoneref *preferred_zoneref;
41016 	int migratetype;
41017 	enum zone_type highest_zoneidx;
41018 	bool spread_dirty_pages;
41019 };
41020 
41021 struct trace_event_raw_mm_compaction_isolate_template {
41022 	struct trace_entry ent;
41023 	long unsigned int start_pfn;
41024 	long unsigned int end_pfn;
41025 	long unsigned int nr_scanned;
41026 	long unsigned int nr_taken;
41027 	char __data[0];
41028 };
41029 
41030 struct trace_event_raw_mm_compaction_migratepages {
41031 	struct trace_entry ent;
41032 	long unsigned int nr_migrated;
41033 	long unsigned int nr_failed;
41034 	char __data[0];
41035 };
41036 
41037 struct trace_event_raw_mm_compaction_begin {
41038 	struct trace_entry ent;
41039 	long unsigned int zone_start;
41040 	long unsigned int migrate_pfn;
41041 	long unsigned int free_pfn;
41042 	long unsigned int zone_end;
41043 	bool sync;
41044 	char __data[0];
41045 };
41046 
41047 struct trace_event_raw_mm_compaction_end {
41048 	struct trace_entry ent;
41049 	long unsigned int zone_start;
41050 	long unsigned int migrate_pfn;
41051 	long unsigned int free_pfn;
41052 	long unsigned int zone_end;
41053 	bool sync;
41054 	int status;
41055 	char __data[0];
41056 };
41057 
41058 struct trace_event_raw_mm_compaction_try_to_compact_pages {
41059 	struct trace_entry ent;
41060 	int order;
41061 	gfp_t gfp_mask;
41062 	int prio;
41063 	char __data[0];
41064 };
41065 
41066 struct trace_event_raw_mm_compaction_suitable_template {
41067 	struct trace_entry ent;
41068 	int nid;
41069 	enum zone_type idx;
41070 	int order;
41071 	int ret;
41072 	char __data[0];
41073 };
41074 
41075 struct trace_event_raw_mm_compaction_defer_template {
41076 	struct trace_entry ent;
41077 	int nid;
41078 	enum zone_type idx;
41079 	int order;
41080 	unsigned int considered;
41081 	unsigned int defer_shift;
41082 	int order_failed;
41083 	char __data[0];
41084 };
41085 
41086 struct trace_event_raw_mm_compaction_kcompactd_sleep {
41087 	struct trace_entry ent;
41088 	int nid;
41089 	char __data[0];
41090 };
41091 
41092 struct trace_event_raw_kcompactd_wake_template {
41093 	struct trace_entry ent;
41094 	int nid;
41095 	int order;
41096 	enum zone_type highest_zoneidx;
41097 	char __data[0];
41098 };
41099 
41100 struct trace_event_data_offsets_mm_compaction_isolate_template {};
41101 
41102 struct trace_event_data_offsets_mm_compaction_migratepages {};
41103 
41104 struct trace_event_data_offsets_mm_compaction_begin {};
41105 
41106 struct trace_event_data_offsets_mm_compaction_end {};
41107 
41108 struct trace_event_data_offsets_mm_compaction_try_to_compact_pages {};
41109 
41110 struct trace_event_data_offsets_mm_compaction_suitable_template {};
41111 
41112 struct trace_event_data_offsets_mm_compaction_defer_template {};
41113 
41114 struct trace_event_data_offsets_mm_compaction_kcompactd_sleep {};
41115 
41116 struct trace_event_data_offsets_kcompactd_wake_template {};
41117 
41118 typedef void (*btf_trace_mm_compaction_isolate_migratepages)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int);
41119 
41120 typedef void (*btf_trace_mm_compaction_isolate_freepages)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int);
41121 
41122 typedef void (*btf_trace_mm_compaction_migratepages)(void *, long unsigned int, unsigned int);
41123 
41124 typedef void (*btf_trace_mm_compaction_begin)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int, bool);
41125 
41126 typedef void (*btf_trace_mm_compaction_end)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int, bool, int);
41127 
41128 typedef void (*btf_trace_mm_compaction_try_to_compact_pages)(void *, int, gfp_t, int);
41129 
41130 typedef void (*btf_trace_mm_compaction_finished)(void *, struct zone *, int, int);
41131 
41132 typedef void (*btf_trace_mm_compaction_suitable)(void *, struct zone *, int, int);
41133 
41134 typedef void (*btf_trace_mm_compaction_deferred)(void *, struct zone *, int);
41135 
41136 typedef void (*btf_trace_mm_compaction_defer_compaction)(void *, struct zone *, int);
41137 
41138 typedef void (*btf_trace_mm_compaction_defer_reset)(void *, struct zone *, int);
41139 
41140 typedef void (*btf_trace_mm_compaction_kcompactd_sleep)(void *, int);
41141 
41142 typedef void (*btf_trace_mm_compaction_wakeup_kcompactd)(void *, int, int, enum zone_type);
41143 
41144 typedef void (*btf_trace_mm_compaction_kcompactd_wake)(void *, int, int, enum zone_type);
41145 
41146 typedef enum {
41147 	ISOLATE_ABORT = 0,
41148 	ISOLATE_NONE = 1,
41149 	ISOLATE_SUCCESS = 2,
41150 } isolate_migrate_t;
41151 
41152 struct anon_vma_chain {
41153 	struct vm_area_struct *vma;
41154 	struct anon_vma *anon_vma;
41155 	struct list_head same_vma;
41156 	struct rb_node rb;
41157 	long unsigned int rb_subtree_last;
41158 };
41159 
41160 enum lru_status {
41161 	LRU_REMOVED = 0,
41162 	LRU_REMOVED_RETRY = 1,
41163 	LRU_ROTATE = 2,
41164 	LRU_SKIP = 3,
41165 	LRU_RETRY = 4,
41166 };
41167 
41168 typedef enum lru_status (*list_lru_walk_cb)(struct list_head *, struct list_lru_one *, spinlock_t *, void *);
41169 
41170 typedef struct {
41171 	long unsigned int pd;
41172 } hugepd_t;
41173 
41174 struct follow_page_context {
41175 	struct dev_pagemap *pgmap;
41176 	unsigned int page_mask;
41177 };
41178 
41179 struct trace_event_raw_mmap_lock {
41180 	struct trace_entry ent;
41181 	struct mm_struct *mm;
41182 	u32 __data_loc_memcg_path;
41183 	bool write;
41184 	char __data[0];
41185 };
41186 
41187 struct trace_event_raw_mmap_lock_acquire_returned {
41188 	struct trace_entry ent;
41189 	struct mm_struct *mm;
41190 	u32 __data_loc_memcg_path;
41191 	bool write;
41192 	bool success;
41193 	char __data[0];
41194 };
41195 
41196 struct trace_event_data_offsets_mmap_lock {
41197 	u32 memcg_path;
41198 };
41199 
41200 struct trace_event_data_offsets_mmap_lock_acquire_returned {
41201 	u32 memcg_path;
41202 };
41203 
41204 typedef void (*btf_trace_mmap_lock_start_locking)(void *, struct mm_struct *, const char *, bool);
41205 
41206 typedef void (*btf_trace_mmap_lock_released)(void *, struct mm_struct *, const char *, bool);
41207 
41208 typedef void (*btf_trace_mmap_lock_acquire_returned)(void *, struct mm_struct *, const char *, bool, bool);
41209 
41210 struct memcg_path {
41211 	local_lock_t lock;
41212 	char *buf;
41213 	local_t buf_idx;
41214 };
41215 
41216 typedef unsigned int pgtbl_mod_mask;
41217 
41218 typedef int (*pte_fn_t)(pte_t *, long unsigned int, void *);
41219 
41220 enum {
41221 	SWP_USED = 1,
41222 	SWP_WRITEOK = 2,
41223 	SWP_DISCARDABLE = 4,
41224 	SWP_DISCARDING = 8,
41225 	SWP_SOLIDSTATE = 16,
41226 	SWP_CONTINUED = 32,
41227 	SWP_BLKDEV = 64,
41228 	SWP_ACTIVATED = 128,
41229 	SWP_FS_OPS = 256,
41230 	SWP_AREA_DISCARD = 512,
41231 	SWP_PAGE_DISCARD = 1024,
41232 	SWP_STABLE_WRITES = 2048,
41233 	SWP_SYNCHRONOUS_IO = 4096,
41234 	SWP_SCANNING = 16384,
41235 };
41236 
41237 struct zap_details {
41238 	struct address_space *zap_mapping;
41239 	struct folio *single_folio;
41240 };
41241 
41242 struct copy_subpage_arg {
41243 	struct page *dst;
41244 	struct page *src;
41245 	struct vm_area_struct *vma;
41246 };
41247 
41248 struct mm_walk;
41249 
41250 struct mm_walk_ops {
41251 	int (*pgd_entry)(pgd_t *, long unsigned int, long unsigned int, struct mm_walk *);
41252 	int (*p4d_entry)(p4d_t *, long unsigned int, long unsigned int, struct mm_walk *);
41253 	int (*pud_entry)(pud_t *, long unsigned int, long unsigned int, struct mm_walk *);
41254 	int (*pmd_entry)(pmd_t *, long unsigned int, long unsigned int, struct mm_walk *);
41255 	int (*pte_entry)(pte_t *, long unsigned int, long unsigned int, struct mm_walk *);
41256 	int (*pte_hole)(long unsigned int, long unsigned int, int, struct mm_walk *);
41257 	int (*hugetlb_entry)(pte_t *, long unsigned int, long unsigned int, long unsigned int, struct mm_walk *);
41258 	int (*test_walk)(long unsigned int, long unsigned int, struct mm_walk *);
41259 	int (*pre_vma)(long unsigned int, long unsigned int, struct mm_walk *);
41260 	void (*post_vma)(struct mm_walk *);
41261 };
41262 
41263 enum page_walk_action {
41264 	ACTION_SUBTREE = 0,
41265 	ACTION_CONTINUE = 1,
41266 	ACTION_AGAIN = 2,
41267 };
41268 
41269 struct mm_walk {
41270 	const struct mm_walk_ops *ops;
41271 	struct mm_struct *mm;
41272 	pgd_t *pgd;
41273 	struct vm_area_struct *vma;
41274 	enum page_walk_action action;
41275 	bool no_vma;
41276 	void *private;
41277 };
41278 
41279 enum {
41280 	HUGETLB_SHMFS_INODE = 1,
41281 	HUGETLB_ANONHUGE_INODE = 2,
41282 };
41283 
41284 struct trace_event_raw_vm_unmapped_area {
41285 	struct trace_entry ent;
41286 	long unsigned int addr;
41287 	long unsigned int total_vm;
41288 	long unsigned int flags;
41289 	long unsigned int length;
41290 	long unsigned int low_limit;
41291 	long unsigned int high_limit;
41292 	long unsigned int align_mask;
41293 	long unsigned int align_offset;
41294 	char __data[0];
41295 };
41296 
41297 struct trace_event_data_offsets_vm_unmapped_area {};
41298 
41299 typedef void (*btf_trace_vm_unmapped_area)(void *, long unsigned int, struct vm_unmapped_area_info *);
41300 
41301 enum pgt_entry {
41302 	NORMAL_PMD = 0,
41303 	HPAGE_PMD = 1,
41304 	NORMAL_PUD = 2,
41305 	HPAGE_PUD = 3,
41306 };
41307 
41308 struct rmap_walk_control {
41309 	void *arg;
41310 	bool (*rmap_one)(struct page *, struct vm_area_struct *, long unsigned int, void *);
41311 	int (*done)(struct page *);
41312 	struct anon_vma * (*anon_lock)(struct page *);
41313 	bool (*invalid_vma)(struct vm_area_struct *, void *);
41314 };
41315 
41316 struct page_referenced_arg {
41317 	int mapcount;
41318 	int referenced;
41319 	long unsigned int vm_flags;
41320 	struct mem_cgroup *memcg;
41321 };
41322 
41323 struct vmap_area {
41324 	long unsigned int va_start;
41325 	long unsigned int va_end;
41326 	struct rb_node rb_node;
41327 	struct list_head list;
41328 	union {
41329 		long unsigned int subtree_max_size;
41330 		struct vm_struct *vm;
41331 	};
41332 };
41333 
41334 struct vfree_deferred {
41335 	struct llist_head list;
41336 	struct work_struct wq;
41337 };
41338 
41339 enum fit_type {
41340 	NOTHING_FIT = 0,
41341 	FL_FIT_TYPE = 1,
41342 	LE_FIT_TYPE = 2,
41343 	RE_FIT_TYPE = 3,
41344 	NE_FIT_TYPE = 4,
41345 };
41346 
41347 struct vmap_block_queue {
41348 	spinlock_t lock;
41349 	struct list_head free;
41350 };
41351 
41352 struct vmap_block {
41353 	spinlock_t lock;
41354 	struct vmap_area *va;
41355 	long unsigned int free;
41356 	long unsigned int dirty;
41357 	long unsigned int dirty_min;
41358 	long unsigned int dirty_max;
41359 	struct list_head free_list;
41360 	struct callback_head callback_head;
41361 	struct list_head purge;
41362 };
41363 
41364 struct page_frag_cache {
41365 	void *va;
41366 	__u16 offset;
41367 	__u16 size;
41368 	unsigned int pagecnt_bias;
41369 	bool pfmemalloc;
41370 };
41371 
41372 typedef int fpi_t;
41373 
41374 struct pagesets {
41375 	local_lock_t lock;
41376 };
41377 
41378 struct pcpu_drain {
41379 	struct zone *zone;
41380 	struct work_struct work;
41381 };
41382 
41383 struct mminit_pfnnid_cache {
41384 	long unsigned int last_start;
41385 	long unsigned int last_end;
41386 	int last_nid;
41387 };
41388 
41389 struct madvise_walk_private {
41390 	struct mmu_gather *tlb;
41391 	bool pageout;
41392 };
41393 
41394 enum {
41395 	IOPRIO_CLASS_NONE = 0,
41396 	IOPRIO_CLASS_RT = 1,
41397 	IOPRIO_CLASS_BE = 2,
41398 	IOPRIO_CLASS_IDLE = 3,
41399 };
41400 
41401 enum {
41402 	BIO_NO_PAGE_REF = 0,
41403 	BIO_CLONED = 1,
41404 	BIO_BOUNCED = 2,
41405 	BIO_WORKINGSET = 3,
41406 	BIO_QUIET = 4,
41407 	BIO_CHAIN = 5,
41408 	BIO_REFFED = 6,
41409 	BIO_THROTTLED = 7,
41410 	BIO_TRACE_COMPLETION = 8,
41411 	BIO_CGROUP_ACCT = 9,
41412 	BIO_TRACKED = 10,
41413 	BIO_REMAPPED = 11,
41414 	BIO_ZONE_WRITE_LOCKED = 12,
41415 	BIO_PERCPU_CACHE = 13,
41416 	BIO_FLAG_LAST = 14,
41417 };
41418 
41419 struct vma_swap_readahead {
41420 	short unsigned int win;
41421 	short unsigned int offset;
41422 	short unsigned int nr_pte;
41423 	pte_t *ptes;
41424 };
41425 
41426 enum {
41427 	PERCPU_REF_INIT_ATOMIC = 1,
41428 	PERCPU_REF_INIT_DEAD = 2,
41429 	PERCPU_REF_ALLOW_REINIT = 4,
41430 };
41431 
41432 union swap_header {
41433 	struct {
41434 		char reserved[4086];
41435 		char magic[10];
41436 	} magic;
41437 	struct {
41438 		char bootbits[1024];
41439 		__u32 version;
41440 		__u32 last_page;
41441 		__u32 nr_badpages;
41442 		unsigned char sws_uuid[16];
41443 		unsigned char sws_volume[16];
41444 		__u32 padding[117];
41445 		__u32 badpages[1];
41446 	} info;
41447 };
41448 
41449 struct swap_extent {
41450 	struct rb_node rb_node;
41451 	long unsigned int start_page;
41452 	long unsigned int nr_pages;
41453 	sector_t start_block;
41454 };
41455 
41456 struct swap_slots_cache {
41457 	bool lock_initialized;
41458 	struct mutex alloc_lock;
41459 	swp_entry_t *slots;
41460 	int nr;
41461 	int cur;
41462 	spinlock_t free_lock;
41463 	swp_entry_t *slots_ret;
41464 	int n_ret;
41465 };
41466 
41467 struct dma_pool {
41468 	struct list_head page_list;
41469 	spinlock_t lock;
41470 	size_t size;
41471 	struct device *dev;
41472 	size_t allocation;
41473 	size_t boundary;
41474 	char name[32];
41475 	struct list_head pools;
41476 };
41477 
41478 struct dma_page {
41479 	struct list_head page_list;
41480 	void *vaddr;
41481 	dma_addr_t dma;
41482 	unsigned int in_use;
41483 	unsigned int offset;
41484 };
41485 
41486 enum string_size_units {
41487 	STRING_UNITS_10 = 0,
41488 	STRING_UNITS_2 = 1,
41489 };
41490 
41491 enum mcopy_atomic_mode {
41492 	MCOPY_ATOMIC_NORMAL = 0,
41493 	MCOPY_ATOMIC_ZEROPAGE = 1,
41494 	MCOPY_ATOMIC_CONTINUE = 2,
41495 };
41496 
41497 enum {
41498 	SUBPAGE_INDEX_SUBPOOL = 1,
41499 	SUBPAGE_INDEX_CGROUP = 2,
41500 	SUBPAGE_INDEX_CGROUP_RSVD = 3,
41501 	__MAX_CGROUP_SUBPAGE_INDEX = 3,
41502 	__NR_USED_SUBPAGE = 4,
41503 };
41504 
41505 struct resv_map {
41506 	struct kref refs;
41507 	spinlock_t lock;
41508 	struct list_head regions;
41509 	long int adds_in_progress;
41510 	struct list_head region_cache;
41511 	long int region_cache_count;
41512 	struct page_counter *reservation_counter;
41513 	long unsigned int pages_per_hpage;
41514 	struct cgroup_subsys_state *css;
41515 };
41516 
41517 struct file_region {
41518 	struct list_head link;
41519 	long int from;
41520 	long int to;
41521 	struct page_counter *reservation_counter;
41522 	struct cgroup_subsys_state *css;
41523 };
41524 
41525 enum hugetlb_page_flags {
41526 	HPG_restore_reserve = 0,
41527 	HPG_migratable = 1,
41528 	HPG_temporary = 2,
41529 	HPG_freed = 3,
41530 	HPG_vmemmap_optimized = 4,
41531 	__NR_HPAGEFLAGS = 5,
41532 };
41533 
41534 struct huge_bootmem_page {
41535 	struct list_head list;
41536 	struct hstate *hstate;
41537 };
41538 
41539 enum hugetlb_memory_event {
41540 	HUGETLB_MAX = 0,
41541 	HUGETLB_NR_MEMORY_EVENTS = 1,
41542 };
41543 
41544 struct hugetlb_cgroup_per_node {
41545 	long unsigned int usage[2];
41546 };
41547 
41548 struct hugetlb_cgroup {
41549 	struct cgroup_subsys_state css;
41550 	struct page_counter hugepage[2];
41551 	struct page_counter rsvd_hugepage[2];
41552 	atomic_long_t events[2];
41553 	atomic_long_t events_local[2];
41554 	struct cgroup_file events_file[2];
41555 	struct cgroup_file events_local_file[2];
41556 	struct hugetlb_cgroup_per_node *nodeinfo[0];
41557 };
41558 
41559 enum vma_resv_mode {
41560 	VMA_NEEDS_RESV = 0,
41561 	VMA_COMMIT_RESV = 1,
41562 	VMA_END_RESV = 2,
41563 	VMA_ADD_RESV = 3,
41564 	VMA_DEL_RESV = 4,
41565 };
41566 
41567 struct node_hstate {
41568 	struct kobject *hugepages_kobj;
41569 	struct kobject *hstate_kobjs[2];
41570 };
41571 
41572 struct nodemask_scratch {
41573 	nodemask_t mask1;
41574 	nodemask_t mask2;
41575 };
41576 
41577 struct sp_node {
41578 	struct rb_node nd;
41579 	long unsigned int start;
41580 	long unsigned int end;
41581 	struct mempolicy *policy;
41582 };
41583 
41584 typedef u32 compat_ulong_t;
41585 
41586 struct mempolicy_operations {
41587 	int (*create)(struct mempolicy *, const nodemask_t *);
41588 	void (*rebind)(struct mempolicy *, const nodemask_t *);
41589 };
41590 
41591 struct queue_pages {
41592 	struct list_head *pagelist;
41593 	long unsigned int flags;
41594 	nodemask_t *nmask;
41595 	long unsigned int start;
41596 	long unsigned int end;
41597 	struct vm_area_struct *first;
41598 };
41599 
41600 struct vmemmap_remap_walk {
41601 	void (*remap_pte)(pte_t *, long unsigned int, struct vmemmap_remap_walk *);
41602 	long unsigned int nr_walked;
41603 	struct page *reuse_page;
41604 	long unsigned int reuse_addr;
41605 	struct list_head *vmemmap_pages;
41606 };
41607 
41608 struct rmap_item;
41609 
41610 struct mm_slot {
41611 	struct hlist_node link;
41612 	struct list_head mm_list;
41613 	struct rmap_item *rmap_list;
41614 	struct mm_struct *mm;
41615 };
41616 
41617 struct stable_node;
41618 
41619 struct rmap_item {
41620 	struct rmap_item *rmap_list;
41621 	union {
41622 		struct anon_vma *anon_vma;
41623 		int nid;
41624 	};
41625 	struct mm_struct *mm;
41626 	long unsigned int address;
41627 	unsigned int oldchecksum;
41628 	union {
41629 		struct rb_node node;
41630 		struct {
41631 			struct stable_node *head;
41632 			struct hlist_node hlist;
41633 		};
41634 	};
41635 };
41636 
41637 struct ksm_scan {
41638 	struct mm_slot *mm_slot;
41639 	long unsigned int address;
41640 	struct rmap_item **rmap_list;
41641 	long unsigned int seqnr;
41642 };
41643 
41644 struct stable_node {
41645 	union {
41646 		struct rb_node node;
41647 		struct {
41648 			struct list_head *head;
41649 			struct {
41650 				struct hlist_node hlist_dup;
41651 				struct list_head list;
41652 			};
41653 		};
41654 	};
41655 	struct hlist_head hlist;
41656 	union {
41657 		long unsigned int kpfn;
41658 		long unsigned int chain_prune_time;
41659 	};
41660 	int rmap_hlist_len;
41661 	int nid;
41662 };
41663 
41664 enum get_ksm_page_flags {
41665 	GET_KSM_PAGE_NOLOCK = 0,
41666 	GET_KSM_PAGE_LOCK = 1,
41667 	GET_KSM_PAGE_TRYLOCK = 2,
41668 };
41669 
41670 enum stat_item {
41671 	ALLOC_FASTPATH = 0,
41672 	ALLOC_SLOWPATH = 1,
41673 	FREE_FASTPATH = 2,
41674 	FREE_SLOWPATH = 3,
41675 	FREE_FROZEN = 4,
41676 	FREE_ADD_PARTIAL = 5,
41677 	FREE_REMOVE_PARTIAL = 6,
41678 	ALLOC_FROM_PARTIAL = 7,
41679 	ALLOC_SLAB = 8,
41680 	ALLOC_REFILL = 9,
41681 	ALLOC_NODE_MISMATCH = 10,
41682 	FREE_SLAB = 11,
41683 	CPUSLAB_FLUSH = 12,
41684 	DEACTIVATE_FULL = 13,
41685 	DEACTIVATE_EMPTY = 14,
41686 	DEACTIVATE_TO_HEAD = 15,
41687 	DEACTIVATE_TO_TAIL = 16,
41688 	DEACTIVATE_REMOTE_FREES = 17,
41689 	DEACTIVATE_BYPASS = 18,
41690 	ORDER_FALLBACK = 19,
41691 	CMPXCHG_DOUBLE_CPU_FAIL = 20,
41692 	CMPXCHG_DOUBLE_FAIL = 21,
41693 	CPU_PARTIAL_ALLOC = 22,
41694 	CPU_PARTIAL_FREE = 23,
41695 	CPU_PARTIAL_NODE = 24,
41696 	CPU_PARTIAL_DRAIN = 25,
41697 	NR_SLUB_STAT_ITEMS = 26,
41698 };
41699 
41700 struct track {
41701 	long unsigned int addr;
41702 	long unsigned int addrs[16];
41703 	int cpu;
41704 	int pid;
41705 	long unsigned int when;
41706 };
41707 
41708 enum track_item {
41709 	TRACK_ALLOC = 0,
41710 	TRACK_FREE = 1,
41711 };
41712 
41713 struct slub_flush_work {
41714 	struct work_struct work;
41715 	struct kmem_cache *s;
41716 	bool skip;
41717 };
41718 
41719 struct detached_freelist {
41720 	struct slab *slab;
41721 	void *tail;
41722 	void *freelist;
41723 	int cnt;
41724 	struct kmem_cache *s;
41725 };
41726 
41727 struct location {
41728 	long unsigned int count;
41729 	long unsigned int addr;
41730 	long long int sum_time;
41731 	long int min_time;
41732 	long int max_time;
41733 	long int min_pid;
41734 	long int max_pid;
41735 	long unsigned int cpus[2];
41736 	nodemask_t nodes;
41737 };
41738 
41739 struct loc_track {
41740 	long unsigned int max;
41741 	long unsigned int count;
41742 	struct location *loc;
41743 	loff_t idx;
41744 };
41745 
41746 enum slab_stat_type {
41747 	SL_ALL = 0,
41748 	SL_PARTIAL = 1,
41749 	SL_CPU = 2,
41750 	SL_OBJECTS = 3,
41751 	SL_TOTAL = 4,
41752 };
41753 
41754 struct slab_attribute {
41755 	struct attribute attr;
41756 	ssize_t (*show)(struct kmem_cache *, char *);
41757 	ssize_t (*store)(struct kmem_cache *, const char *, size_t);
41758 };
41759 
41760 struct saved_alias {
41761 	struct kmem_cache *s;
41762 	const char *name;
41763 	struct saved_alias *next;
41764 };
41765 
41766 enum slab_modes {
41767 	M_NONE = 0,
41768 	M_PARTIAL = 1,
41769 	M_FULL = 2,
41770 	M_FREE = 3,
41771 };
41772 
41773 struct buffer_head;
41774 
41775 typedef void bh_end_io_t(struct buffer_head *, int);
41776 
41777 struct buffer_head {
41778 	long unsigned int b_state;
41779 	struct buffer_head *b_this_page;
41780 	struct page *b_page;
41781 	sector_t b_blocknr;
41782 	size_t b_size;
41783 	char *b_data;
41784 	struct block_device *b_bdev;
41785 	bh_end_io_t *b_end_io;
41786 	void *b_private;
41787 	struct list_head b_assoc_buffers;
41788 	struct address_space *b_assoc_map;
41789 	atomic_t b_count;
41790 	spinlock_t b_uptodate_lock;
41791 };
41792 
41793 typedef struct page *new_page_t(struct page *, long unsigned int);
41794 
41795 typedef void free_page_t(struct page *, long unsigned int);
41796 
41797 enum bh_state_bits {
41798 	BH_Uptodate = 0,
41799 	BH_Dirty = 1,
41800 	BH_Lock = 2,
41801 	BH_Req = 3,
41802 	BH_Mapped = 4,
41803 	BH_New = 5,
41804 	BH_Async_Read = 6,
41805 	BH_Async_Write = 7,
41806 	BH_Delay = 8,
41807 	BH_Boundary = 9,
41808 	BH_Write_EIO = 10,
41809 	BH_Unwritten = 11,
41810 	BH_Quiet = 12,
41811 	BH_Meta = 13,
41812 	BH_Prio = 14,
41813 	BH_Defer_Completion = 15,
41814 	BH_PrivateStart = 16,
41815 };
41816 
41817 typedef u32 compat_uptr_t;
41818 
41819 struct memory_notify {
41820 	long unsigned int start_pfn;
41821 	long unsigned int nr_pages;
41822 	int status_change_nid_normal;
41823 	int status_change_nid;
41824 };
41825 
41826 struct trace_event_raw_mm_migrate_pages {
41827 	struct trace_entry ent;
41828 	long unsigned int succeeded;
41829 	long unsigned int failed;
41830 	long unsigned int thp_succeeded;
41831 	long unsigned int thp_failed;
41832 	long unsigned int thp_split;
41833 	enum migrate_mode mode;
41834 	int reason;
41835 	char __data[0];
41836 };
41837 
41838 struct trace_event_raw_mm_migrate_pages_start {
41839 	struct trace_entry ent;
41840 	enum migrate_mode mode;
41841 	int reason;
41842 	char __data[0];
41843 };
41844 
41845 struct trace_event_data_offsets_mm_migrate_pages {};
41846 
41847 struct trace_event_data_offsets_mm_migrate_pages_start {};
41848 
41849 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);
41850 
41851 typedef void (*btf_trace_mm_migrate_pages_start)(void *, enum migrate_mode, int);
41852 
41853 struct demotion_nodes {
41854 	short unsigned int nr;
41855 	short int nodes[15];
41856 };
41857 
41858 enum scan_result {
41859 	SCAN_FAIL = 0,
41860 	SCAN_SUCCEED = 1,
41861 	SCAN_PMD_NULL = 2,
41862 	SCAN_EXCEED_NONE_PTE = 3,
41863 	SCAN_EXCEED_SWAP_PTE = 4,
41864 	SCAN_EXCEED_SHARED_PTE = 5,
41865 	SCAN_PTE_NON_PRESENT = 6,
41866 	SCAN_PTE_UFFD_WP = 7,
41867 	SCAN_PAGE_RO = 8,
41868 	SCAN_LACK_REFERENCED_PAGE = 9,
41869 	SCAN_PAGE_NULL = 10,
41870 	SCAN_SCAN_ABORT = 11,
41871 	SCAN_PAGE_COUNT = 12,
41872 	SCAN_PAGE_LRU = 13,
41873 	SCAN_PAGE_LOCK = 14,
41874 	SCAN_PAGE_ANON = 15,
41875 	SCAN_PAGE_COMPOUND = 16,
41876 	SCAN_ANY_PROCESS = 17,
41877 	SCAN_VMA_NULL = 18,
41878 	SCAN_VMA_CHECK = 19,
41879 	SCAN_ADDRESS_RANGE = 20,
41880 	SCAN_SWAP_CACHE_PAGE = 21,
41881 	SCAN_DEL_PAGE_LRU = 22,
41882 	SCAN_ALLOC_HUGE_PAGE_FAIL = 23,
41883 	SCAN_CGROUP_CHARGE_FAIL = 24,
41884 	SCAN_TRUNCATED = 25,
41885 	SCAN_PAGE_HAS_PRIVATE = 26,
41886 };
41887 
41888 struct trace_event_raw_mm_khugepaged_scan_pmd {
41889 	struct trace_entry ent;
41890 	struct mm_struct *mm;
41891 	long unsigned int pfn;
41892 	bool writable;
41893 	int referenced;
41894 	int none_or_zero;
41895 	int status;
41896 	int unmapped;
41897 	char __data[0];
41898 };
41899 
41900 struct trace_event_raw_mm_collapse_huge_page {
41901 	struct trace_entry ent;
41902 	struct mm_struct *mm;
41903 	int isolated;
41904 	int status;
41905 	char __data[0];
41906 };
41907 
41908 struct trace_event_raw_mm_collapse_huge_page_isolate {
41909 	struct trace_entry ent;
41910 	long unsigned int pfn;
41911 	int none_or_zero;
41912 	int referenced;
41913 	bool writable;
41914 	int status;
41915 	char __data[0];
41916 };
41917 
41918 struct trace_event_raw_mm_collapse_huge_page_swapin {
41919 	struct trace_entry ent;
41920 	struct mm_struct *mm;
41921 	int swapped_in;
41922 	int referenced;
41923 	int ret;
41924 	char __data[0];
41925 };
41926 
41927 struct trace_event_data_offsets_mm_khugepaged_scan_pmd {};
41928 
41929 struct trace_event_data_offsets_mm_collapse_huge_page {};
41930 
41931 struct trace_event_data_offsets_mm_collapse_huge_page_isolate {};
41932 
41933 struct trace_event_data_offsets_mm_collapse_huge_page_swapin {};
41934 
41935 typedef void (*btf_trace_mm_khugepaged_scan_pmd)(void *, struct mm_struct *, struct page *, bool, int, int, int, int);
41936 
41937 typedef void (*btf_trace_mm_collapse_huge_page)(void *, struct mm_struct *, int, int);
41938 
41939 typedef void (*btf_trace_mm_collapse_huge_page_isolate)(void *, struct page *, int, int, bool, int);
41940 
41941 typedef void (*btf_trace_mm_collapse_huge_page_swapin)(void *, struct mm_struct *, int, int, int);
41942 
41943 struct mm_slot___2 {
41944 	struct hlist_node hash;
41945 	struct list_head mm_node;
41946 	struct mm_struct *mm;
41947 	int nr_pte_mapped_thp;
41948 	long unsigned int pte_mapped_thp[8];
41949 };
41950 
41951 struct khugepaged_scan {
41952 	struct list_head mm_head;
41953 	struct mm_slot___2 *mm_slot;
41954 	long unsigned int address;
41955 };
41956 
41957 struct mem_cgroup_reclaim_cookie {
41958 	pg_data_t *pgdat;
41959 	unsigned int generation;
41960 };
41961 
41962 struct mem_cgroup_tree_per_node {
41963 	struct rb_root rb_root;
41964 	struct rb_node *rb_rightmost;
41965 	spinlock_t lock;
41966 };
41967 
41968 struct mem_cgroup_tree {
41969 	struct mem_cgroup_tree_per_node *rb_tree_per_node[64];
41970 };
41971 
41972 struct mem_cgroup_eventfd_list {
41973 	struct list_head list;
41974 	struct eventfd_ctx *eventfd;
41975 };
41976 
41977 struct mem_cgroup_event {
41978 	struct mem_cgroup *memcg;
41979 	struct eventfd_ctx *eventfd;
41980 	struct list_head list;
41981 	int (*register_event)(struct mem_cgroup *, struct eventfd_ctx *, const char *);
41982 	void (*unregister_event)(struct mem_cgroup *, struct eventfd_ctx *);
41983 	poll_table pt;
41984 	wait_queue_head_t *wqh;
41985 	wait_queue_entry_t wait;
41986 	struct work_struct remove;
41987 };
41988 
41989 struct move_charge_struct {
41990 	spinlock_t lock;
41991 	struct mm_struct *mm;
41992 	struct mem_cgroup *from;
41993 	struct mem_cgroup *to;
41994 	long unsigned int flags;
41995 	long unsigned int precharge;
41996 	long unsigned int moved_charge;
41997 	long unsigned int moved_swap;
41998 	struct task_struct *moving_task;
41999 	wait_queue_head_t waitq;
42000 };
42001 
42002 enum res_type {
42003 	_MEM = 0,
42004 	_MEMSWAP = 1,
42005 	_OOM_TYPE = 2,
42006 	_KMEM = 3,
42007 	_TCP = 4,
42008 };
42009 
42010 struct memory_stat {
42011 	const char *name;
42012 	unsigned int idx;
42013 };
42014 
42015 struct oom_wait_info {
42016 	struct mem_cgroup *memcg;
42017 	wait_queue_entry_t wait;
42018 };
42019 
42020 enum oom_status {
42021 	OOM_SUCCESS = 0,
42022 	OOM_FAILED = 1,
42023 	OOM_ASYNC = 2,
42024 	OOM_SKIPPED = 3,
42025 };
42026 
42027 struct obj_stock {
42028 	struct obj_cgroup *cached_objcg;
42029 	struct pglist_data *cached_pgdat;
42030 	unsigned int nr_bytes;
42031 	int nr_slab_reclaimable_b;
42032 	int nr_slab_unreclaimable_b;
42033 };
42034 
42035 struct memcg_stock_pcp {
42036 	struct mem_cgroup *cached;
42037 	unsigned int nr_pages;
42038 	struct obj_stock task_obj;
42039 	struct obj_stock irq_obj;
42040 	struct work_struct work;
42041 	long unsigned int flags;
42042 };
42043 
42044 enum {
42045 	RES_USAGE = 0,
42046 	RES_LIMIT = 1,
42047 	RES_MAX_USAGE = 2,
42048 	RES_FAILCNT = 3,
42049 	RES_SOFT_LIMIT = 4,
42050 };
42051 
42052 union mc_target {
42053 	struct page *page;
42054 	swp_entry_t ent;
42055 };
42056 
42057 enum mc_target_type {
42058 	MC_TARGET_NONE = 0,
42059 	MC_TARGET_PAGE = 1,
42060 	MC_TARGET_SWAP = 2,
42061 	MC_TARGET_DEVICE = 3,
42062 };
42063 
42064 struct uncharge_gather {
42065 	struct mem_cgroup *memcg;
42066 	long unsigned int nr_memory;
42067 	long unsigned int pgpgout;
42068 	long unsigned int nr_kmem;
42069 	int nid;
42070 };
42071 
42072 struct numa_stat {
42073 	const char *name;
42074 	unsigned int lru_mask;
42075 };
42076 
42077 enum vmpressure_levels {
42078 	VMPRESSURE_LOW = 0,
42079 	VMPRESSURE_MEDIUM = 1,
42080 	VMPRESSURE_CRITICAL = 2,
42081 	VMPRESSURE_NUM_LEVELS = 3,
42082 };
42083 
42084 enum vmpressure_modes {
42085 	VMPRESSURE_NO_PASSTHROUGH = 0,
42086 	VMPRESSURE_HIERARCHY = 1,
42087 	VMPRESSURE_LOCAL = 2,
42088 	VMPRESSURE_NUM_MODES = 3,
42089 };
42090 
42091 struct vmpressure_event {
42092 	struct eventfd_ctx *efd;
42093 	enum vmpressure_levels level;
42094 	enum vmpressure_modes mode;
42095 	struct list_head node;
42096 };
42097 
42098 struct swap_cgroup_ctrl {
42099 	struct page **map;
42100 	long unsigned int length;
42101 	spinlock_t lock;
42102 };
42103 
42104 struct swap_cgroup {
42105 	short unsigned int id;
42106 };
42107 
42108 enum {
42109 	RES_USAGE___2 = 0,
42110 	RES_RSVD_USAGE = 1,
42111 	RES_LIMIT___2 = 2,
42112 	RES_RSVD_LIMIT = 3,
42113 	RES_MAX_USAGE___2 = 4,
42114 	RES_RSVD_MAX_USAGE = 5,
42115 	RES_FAILCNT___2 = 6,
42116 	RES_RSVD_FAILCNT = 7,
42117 };
42118 
42119 enum mf_result {
42120 	MF_IGNORED = 0,
42121 	MF_FAILED = 1,
42122 	MF_DELAYED = 2,
42123 	MF_RECOVERED = 3,
42124 };
42125 
42126 enum mf_action_page_type {
42127 	MF_MSG_KERNEL = 0,
42128 	MF_MSG_KERNEL_HIGH_ORDER = 1,
42129 	MF_MSG_SLAB = 2,
42130 	MF_MSG_DIFFERENT_COMPOUND = 3,
42131 	MF_MSG_HUGE = 4,
42132 	MF_MSG_FREE_HUGE = 5,
42133 	MF_MSG_NON_PMD_HUGE = 6,
42134 	MF_MSG_UNMAP_FAILED = 7,
42135 	MF_MSG_DIRTY_SWAPCACHE = 8,
42136 	MF_MSG_CLEAN_SWAPCACHE = 9,
42137 	MF_MSG_DIRTY_MLOCKED_LRU = 10,
42138 	MF_MSG_CLEAN_MLOCKED_LRU = 11,
42139 	MF_MSG_DIRTY_UNEVICTABLE_LRU = 12,
42140 	MF_MSG_CLEAN_UNEVICTABLE_LRU = 13,
42141 	MF_MSG_DIRTY_LRU = 14,
42142 	MF_MSG_CLEAN_LRU = 15,
42143 	MF_MSG_TRUNCATED_LRU = 16,
42144 	MF_MSG_BUDDY = 17,
42145 	MF_MSG_DAX = 18,
42146 	MF_MSG_UNSPLIT_THP = 19,
42147 	MF_MSG_UNKNOWN = 20,
42148 };
42149 
42150 typedef long unsigned int dax_entry_t;
42151 
42152 struct __kfifo {
42153 	unsigned int in;
42154 	unsigned int out;
42155 	unsigned int mask;
42156 	unsigned int esize;
42157 	void *data;
42158 };
42159 
42160 struct to_kill {
42161 	struct list_head nd;
42162 	struct task_struct *tsk;
42163 	long unsigned int addr;
42164 	short int size_shift;
42165 };
42166 
42167 struct hwp_walk {
42168 	struct to_kill tk;
42169 	long unsigned int pfn;
42170 	int flags;
42171 };
42172 
42173 struct page_state {
42174 	long unsigned int mask;
42175 	long unsigned int res;
42176 	enum mf_action_page_type type;
42177 	int (*action)(struct page_state *, struct page *);
42178 };
42179 
42180 struct memory_failure_entry {
42181 	long unsigned int pfn;
42182 	int flags;
42183 };
42184 
42185 struct memory_failure_cpu {
42186 	struct {
42187 		union {
42188 			struct __kfifo kfifo;
42189 			struct memory_failure_entry *type;
42190 			const struct memory_failure_entry *const_type;
42191 			char (*rectype)[0];
42192 			struct memory_failure_entry *ptr;
42193 			const struct memory_failure_entry *ptr_const;
42194 		};
42195 		struct memory_failure_entry buf[16];
42196 	} fifo;
42197 	spinlock_t lock;
42198 	struct work_struct work;
42199 };
42200 
42201 struct trace_event_raw_test_pages_isolated {
42202 	struct trace_entry ent;
42203 	long unsigned int start_pfn;
42204 	long unsigned int end_pfn;
42205 	long unsigned int fin_pfn;
42206 	char __data[0];
42207 };
42208 
42209 struct trace_event_data_offsets_test_pages_isolated {};
42210 
42211 typedef void (*btf_trace_test_pages_isolated)(void *, long unsigned int, long unsigned int, long unsigned int);
42212 
42213 struct cma {
42214 	long unsigned int base_pfn;
42215 	long unsigned int count;
42216 	long unsigned int *bitmap;
42217 	unsigned int order_per_bit;
42218 	spinlock_t lock;
42219 	char name[64];
42220 };
42221 
42222 struct trace_event_raw_cma_alloc_class {
42223 	struct trace_entry ent;
42224 	u32 __data_loc_name;
42225 	long unsigned int pfn;
42226 	const struct page *page;
42227 	long unsigned int count;
42228 	unsigned int align;
42229 	char __data[0];
42230 };
42231 
42232 struct trace_event_raw_cma_release {
42233 	struct trace_entry ent;
42234 	u32 __data_loc_name;
42235 	long unsigned int pfn;
42236 	const struct page *page;
42237 	long unsigned int count;
42238 	char __data[0];
42239 };
42240 
42241 struct trace_event_raw_cma_alloc_start {
42242 	struct trace_entry ent;
42243 	u32 __data_loc_name;
42244 	long unsigned int count;
42245 	unsigned int align;
42246 	char __data[0];
42247 };
42248 
42249 struct trace_event_data_offsets_cma_alloc_class {
42250 	u32 name;
42251 };
42252 
42253 struct trace_event_data_offsets_cma_release {
42254 	u32 name;
42255 };
42256 
42257 struct trace_event_data_offsets_cma_alloc_start {
42258 	u32 name;
42259 };
42260 
42261 typedef void (*btf_trace_cma_release)(void *, const char *, long unsigned int, const struct page *, long unsigned int);
42262 
42263 typedef void (*btf_trace_cma_alloc_start)(void *, const char *, long unsigned int, unsigned int);
42264 
42265 typedef void (*btf_trace_cma_alloc_finish)(void *, const char *, long unsigned int, const struct page *, long unsigned int, unsigned int);
42266 
42267 typedef void (*btf_trace_cma_alloc_busy_retry)(void *, const char *, long unsigned int, const struct page *, long unsigned int, unsigned int);
42268 
42269 struct balloon_dev_info {
42270 	long unsigned int isolated_pages;
42271 	spinlock_t pages_lock;
42272 	struct list_head pages;
42273 	int (*migratepage)(struct balloon_dev_info *, struct page *, struct page *, enum migrate_mode);
42274 	struct inode *inode;
42275 };
42276 
42277 struct hugetlbfs_inode_info {
42278 	struct shared_policy policy;
42279 	struct inode vfs_inode;
42280 	unsigned int seals;
42281 };
42282 
42283 struct page_reporting_dev_info {
42284 	int (*report)(struct page_reporting_dev_info *, struct scatterlist *, unsigned int);
42285 	struct delayed_work work;
42286 	atomic_t state;
42287 	unsigned int order;
42288 };
42289 
42290 enum {
42291 	PAGE_REPORTING_IDLE = 0,
42292 	PAGE_REPORTING_REQUESTED = 1,
42293 	PAGE_REPORTING_ACTIVE = 2,
42294 };
42295 
42296 enum fsnotify_data_type {
42297 	FSNOTIFY_EVENT_NONE = 0,
42298 	FSNOTIFY_EVENT_PATH = 1,
42299 	FSNOTIFY_EVENT_INODE = 2,
42300 	FSNOTIFY_EVENT_DENTRY = 3,
42301 	FSNOTIFY_EVENT_ERROR = 4,
42302 };
42303 
42304 struct fs_context_operations___2;
42305 
42306 struct open_flags {
42307 	int open_flag;
42308 	umode_t mode;
42309 	int acc_mode;
42310 	int intent;
42311 	int lookup_flags;
42312 };
42313 
42314 typedef __kernel_long_t __kernel_off_t;
42315 
42316 typedef __kernel_off_t off_t;
42317 
42318 typedef __kernel_rwf_t rwf_t;
42319 
42320 enum vfs_get_super_keying {
42321 	vfs_get_single_super = 0,
42322 	vfs_get_single_reconf_super = 1,
42323 	vfs_get_keyed_super = 2,
42324 	vfs_get_independent_super = 3,
42325 };
42326 
42327 struct kobj_map;
42328 
42329 struct char_device_struct {
42330 	struct char_device_struct *next;
42331 	unsigned int major;
42332 	unsigned int baseminor;
42333 	int minorct;
42334 	char name[64];
42335 	struct cdev *cdev;
42336 };
42337 
42338 struct stat {
42339 	__kernel_ulong_t st_dev;
42340 	__kernel_ulong_t st_ino;
42341 	__kernel_ulong_t st_nlink;
42342 	unsigned int st_mode;
42343 	unsigned int st_uid;
42344 	unsigned int st_gid;
42345 	unsigned int __pad0;
42346 	__kernel_ulong_t st_rdev;
42347 	__kernel_long_t st_size;
42348 	__kernel_long_t st_blksize;
42349 	__kernel_long_t st_blocks;
42350 	__kernel_ulong_t st_atime;
42351 	__kernel_ulong_t st_atime_nsec;
42352 	__kernel_ulong_t st_mtime;
42353 	__kernel_ulong_t st_mtime_nsec;
42354 	__kernel_ulong_t st_ctime;
42355 	__kernel_ulong_t st_ctime_nsec;
42356 	__kernel_long_t __unused[3];
42357 };
42358 
42359 struct __old_kernel_stat {
42360 	short unsigned int st_dev;
42361 	short unsigned int st_ino;
42362 	short unsigned int st_mode;
42363 	short unsigned int st_nlink;
42364 	short unsigned int st_uid;
42365 	short unsigned int st_gid;
42366 	short unsigned int st_rdev;
42367 	unsigned int st_size;
42368 	unsigned int st_atime;
42369 	unsigned int st_mtime;
42370 	unsigned int st_ctime;
42371 };
42372 
42373 struct statx_timestamp {
42374 	__s64 tv_sec;
42375 	__u32 tv_nsec;
42376 	__s32 __reserved;
42377 };
42378 
42379 struct statx {
42380 	__u32 stx_mask;
42381 	__u32 stx_blksize;
42382 	__u64 stx_attributes;
42383 	__u32 stx_nlink;
42384 	__u32 stx_uid;
42385 	__u32 stx_gid;
42386 	__u16 stx_mode;
42387 	__u16 __spare0[1];
42388 	__u64 stx_ino;
42389 	__u64 stx_size;
42390 	__u64 stx_blocks;
42391 	__u64 stx_attributes_mask;
42392 	struct statx_timestamp stx_atime;
42393 	struct statx_timestamp stx_btime;
42394 	struct statx_timestamp stx_ctime;
42395 	struct statx_timestamp stx_mtime;
42396 	__u32 stx_rdev_major;
42397 	__u32 stx_rdev_minor;
42398 	__u32 stx_dev_major;
42399 	__u32 stx_dev_minor;
42400 	__u64 stx_mnt_id;
42401 	__u64 __spare2;
42402 	__u64 __spare3[12];
42403 };
42404 
42405 struct mount;
42406 
42407 struct mnt_namespace {
42408 	struct ns_common ns;
42409 	struct mount *root;
42410 	struct list_head list;
42411 	spinlock_t ns_lock;
42412 	struct user_namespace *user_ns;
42413 	struct ucounts *ucounts;
42414 	u64 seq;
42415 	wait_queue_head_t poll;
42416 	u64 event;
42417 	unsigned int mounts;
42418 	unsigned int pending_mounts;
42419 };
42420 
42421 struct mnt_pcp;
42422 
42423 struct mountpoint;
42424 
42425 struct mount {
42426 	struct hlist_node mnt_hash;
42427 	struct mount *mnt_parent;
42428 	struct dentry *mnt_mountpoint;
42429 	struct vfsmount mnt;
42430 	union {
42431 		struct callback_head mnt_rcu;
42432 		struct llist_node mnt_llist;
42433 	};
42434 	struct mnt_pcp *mnt_pcp;
42435 	struct list_head mnt_mounts;
42436 	struct list_head mnt_child;
42437 	struct list_head mnt_instance;
42438 	const char *mnt_devname;
42439 	struct list_head mnt_list;
42440 	struct list_head mnt_expire;
42441 	struct list_head mnt_share;
42442 	struct list_head mnt_slave_list;
42443 	struct list_head mnt_slave;
42444 	struct mount *mnt_master;
42445 	struct mnt_namespace *mnt_ns;
42446 	struct mountpoint *mnt_mp;
42447 	union {
42448 		struct hlist_node mnt_mp_list;
42449 		struct hlist_node mnt_umount;
42450 	};
42451 	struct list_head mnt_umounting;
42452 	struct fsnotify_mark_connector *mnt_fsnotify_marks;
42453 	__u32 mnt_fsnotify_mask;
42454 	int mnt_id;
42455 	int mnt_group_id;
42456 	int mnt_expiry_mark;
42457 	struct hlist_head mnt_pins;
42458 	struct hlist_head mnt_stuck_children;
42459 };
42460 
42461 struct mnt_pcp {
42462 	int mnt_count;
42463 	int mnt_writers;
42464 };
42465 
42466 struct mountpoint {
42467 	struct hlist_node m_hash;
42468 	struct dentry *m_dentry;
42469 	struct hlist_head m_list;
42470 	int m_count;
42471 };
42472 
42473 typedef short unsigned int ushort;
42474 
42475 struct user_arg_ptr {
42476 	union {
42477 		const char * const *native;
42478 	} ptr;
42479 };
42480 
42481 enum inode_i_mutex_lock_class {
42482 	I_MUTEX_NORMAL = 0,
42483 	I_MUTEX_PARENT = 1,
42484 	I_MUTEX_CHILD = 2,
42485 	I_MUTEX_XATTR = 3,
42486 	I_MUTEX_NONDIR2 = 4,
42487 	I_MUTEX_PARENT2 = 5,
42488 };
42489 
42490 struct pseudo_fs_context {
42491 	const struct super_operations *ops;
42492 	const struct xattr_handler **xattr;
42493 	const struct dentry_operations *dops;
42494 	long unsigned int magic;
42495 };
42496 
42497 struct name_snapshot {
42498 	struct qstr name;
42499 	unsigned char inline_name[32];
42500 };
42501 
42502 struct saved {
42503 	struct path link;
42504 	struct delayed_call done;
42505 	const char *name;
42506 	unsigned int seq;
42507 };
42508 
42509 struct nameidata {
42510 	struct path path;
42511 	struct qstr last;
42512 	struct path root;
42513 	struct inode *inode;
42514 	unsigned int flags;
42515 	unsigned int state;
42516 	unsigned int seq;
42517 	unsigned int m_seq;
42518 	unsigned int r_seq;
42519 	int last_type;
42520 	unsigned int depth;
42521 	int total_link_count;
42522 	struct saved *stack;
42523 	struct saved internal[2];
42524 	struct filename *name;
42525 	struct nameidata *saved;
42526 	unsigned int root_seq;
42527 	int dfd;
42528 	kuid_t dir_uid;
42529 	umode_t dir_mode;
42530 };
42531 
42532 struct renamedata {
42533 	struct user_namespace *old_mnt_userns;
42534 	struct inode *old_dir;
42535 	struct dentry *old_dentry;
42536 	struct user_namespace *new_mnt_userns;
42537 	struct inode *new_dir;
42538 	struct dentry *new_dentry;
42539 	struct inode **delegated_inode;
42540 	unsigned int flags;
42541 };
42542 
42543 enum {
42544 	LAST_NORM = 0,
42545 	LAST_ROOT = 1,
42546 	LAST_DOT = 2,
42547 	LAST_DOTDOT = 3,
42548 };
42549 
42550 enum {
42551 	WALK_TRAILING = 1,
42552 	WALK_MORE = 2,
42553 	WALK_NOFOLLOW = 4,
42554 };
42555 
42556 struct word_at_a_time {
42557 	const long unsigned int one_bits;
42558 	const long unsigned int high_bits;
42559 };
42560 
42561 struct f_owner_ex {
42562 	int type;
42563 	__kernel_pid_t pid;
42564 };
42565 
42566 struct flock {
42567 	short int l_type;
42568 	short int l_whence;
42569 	__kernel_off_t l_start;
42570 	__kernel_off_t l_len;
42571 	__kernel_pid_t l_pid;
42572 };
42573 
42574 struct file_clone_range {
42575 	__s64 src_fd;
42576 	__u64 src_offset;
42577 	__u64 src_length;
42578 	__u64 dest_offset;
42579 };
42580 
42581 struct file_dedupe_range_info {
42582 	__s64 dest_fd;
42583 	__u64 dest_offset;
42584 	__u64 bytes_deduped;
42585 	__s32 status;
42586 	__u32 reserved;
42587 };
42588 
42589 struct file_dedupe_range {
42590 	__u64 src_offset;
42591 	__u64 src_length;
42592 	__u16 dest_count;
42593 	__u16 reserved1;
42594 	__u32 reserved2;
42595 	struct file_dedupe_range_info info[0];
42596 };
42597 
42598 struct fsxattr {
42599 	__u32 fsx_xflags;
42600 	__u32 fsx_extsize;
42601 	__u32 fsx_nextents;
42602 	__u32 fsx_projid;
42603 	__u32 fsx_cowextsize;
42604 	unsigned char fsx_pad[8];
42605 };
42606 
42607 struct fiemap_extent;
42608 
42609 struct fiemap_extent_info {
42610 	unsigned int fi_flags;
42611 	unsigned int fi_extents_mapped;
42612 	unsigned int fi_extents_max;
42613 	struct fiemap_extent *fi_extents_start;
42614 };
42615 
42616 struct fileattr {
42617 	u32 flags;
42618 	u32 fsx_xflags;
42619 	u32 fsx_extsize;
42620 	u32 fsx_nextents;
42621 	u32 fsx_projid;
42622 	u32 fsx_cowextsize;
42623 	bool flags_valid: 1;
42624 	bool fsx_valid: 1;
42625 };
42626 
42627 struct space_resv {
42628 	__s16 l_type;
42629 	__s16 l_whence;
42630 	__s64 l_start;
42631 	__s64 l_len;
42632 	__s32 l_sysid;
42633 	__u32 l_pid;
42634 	__s32 l_pad[4];
42635 };
42636 
42637 struct fiemap_extent {
42638 	__u64 fe_logical;
42639 	__u64 fe_physical;
42640 	__u64 fe_length;
42641 	__u64 fe_reserved64[2];
42642 	__u32 fe_flags;
42643 	__u32 fe_reserved[3];
42644 };
42645 
42646 struct fiemap {
42647 	__u64 fm_start;
42648 	__u64 fm_length;
42649 	__u32 fm_flags;
42650 	__u32 fm_mapped_extents;
42651 	__u32 fm_extent_count;
42652 	__u32 fm_reserved;
42653 	struct fiemap_extent fm_extents[0];
42654 };
42655 
42656 struct linux_dirent64 {
42657 	u64 d_ino;
42658 	s64 d_off;
42659 	short unsigned int d_reclen;
42660 	unsigned char d_type;
42661 	char d_name[0];
42662 };
42663 
42664 struct old_linux_dirent {
42665 	long unsigned int d_ino;
42666 	long unsigned int d_offset;
42667 	short unsigned int d_namlen;
42668 	char d_name[1];
42669 };
42670 
42671 struct readdir_callback {
42672 	struct dir_context ctx;
42673 	struct old_linux_dirent *dirent;
42674 	int result;
42675 };
42676 
42677 struct linux_dirent {
42678 	long unsigned int d_ino;
42679 	long unsigned int d_off;
42680 	short unsigned int d_reclen;
42681 	char d_name[1];
42682 };
42683 
42684 struct getdents_callback {
42685 	struct dir_context ctx;
42686 	struct linux_dirent *current_dir;
42687 	int prev_reclen;
42688 	int count;
42689 	int error;
42690 };
42691 
42692 struct getdents_callback64 {
42693 	struct dir_context ctx;
42694 	struct linux_dirent64 *current_dir;
42695 	int prev_reclen;
42696 	int count;
42697 	int error;
42698 };
42699 
42700 typedef struct {
42701 	long unsigned int fds_bits[16];
42702 } __kernel_fd_set;
42703 
42704 typedef __kernel_fd_set fd_set;
42705 
42706 struct poll_table_entry {
42707 	struct file *filp;
42708 	__poll_t key;
42709 	wait_queue_entry_t wait;
42710 	wait_queue_head_t *wait_address;
42711 };
42712 
42713 struct poll_table_page;
42714 
42715 struct poll_wqueues {
42716 	poll_table pt;
42717 	struct poll_table_page *table;
42718 	struct task_struct *polling_task;
42719 	int triggered;
42720 	int error;
42721 	int inline_index;
42722 	struct poll_table_entry inline_entries[9];
42723 };
42724 
42725 struct poll_table_page {
42726 	struct poll_table_page *next;
42727 	struct poll_table_entry *entry;
42728 	struct poll_table_entry entries[0];
42729 };
42730 
42731 enum poll_time_type {
42732 	PT_TIMEVAL = 0,
42733 	PT_OLD_TIMEVAL = 1,
42734 	PT_TIMESPEC = 2,
42735 	PT_OLD_TIMESPEC = 3,
42736 };
42737 
42738 typedef struct {
42739 	long unsigned int *in;
42740 	long unsigned int *out;
42741 	long unsigned int *ex;
42742 	long unsigned int *res_in;
42743 	long unsigned int *res_out;
42744 	long unsigned int *res_ex;
42745 } fd_set_bits;
42746 
42747 struct sigset_argpack {
42748 	sigset_t *p;
42749 	size_t size;
42750 };
42751 
42752 struct poll_list {
42753 	struct poll_list *next;
42754 	int len;
42755 	struct pollfd entries[0];
42756 };
42757 
42758 enum dentry_d_lock_class {
42759 	DENTRY_D_LOCK_NORMAL = 0,
42760 	DENTRY_D_LOCK_NESTED = 1,
42761 };
42762 
42763 struct external_name {
42764 	union {
42765 		atomic_t count;
42766 		struct callback_head head;
42767 	} u;
42768 	unsigned char name[0];
42769 };
42770 
42771 enum d_walk_ret {
42772 	D_WALK_CONTINUE = 0,
42773 	D_WALK_QUIT = 1,
42774 	D_WALK_NORETRY = 2,
42775 	D_WALK_SKIP = 3,
42776 };
42777 
42778 struct check_mount {
42779 	struct vfsmount *mnt;
42780 	unsigned int mounted;
42781 };
42782 
42783 struct select_data {
42784 	struct dentry *start;
42785 	union {
42786 		long int found;
42787 		struct dentry *victim;
42788 	};
42789 	struct list_head dispose;
42790 };
42791 
42792 enum file_time_flags {
42793 	S_ATIME = 1,
42794 	S_MTIME = 2,
42795 	S_CTIME = 4,
42796 	S_VERSION = 8,
42797 };
42798 
42799 struct mount_attr {
42800 	__u64 attr_set;
42801 	__u64 attr_clr;
42802 	__u64 propagation;
42803 	__u64 userns_fd;
42804 };
42805 
42806 struct proc_mounts {
42807 	struct mnt_namespace *ns;
42808 	struct path root;
42809 	int (*show)(struct seq_file *, struct vfsmount *);
42810 	struct mount cursor;
42811 };
42812 
42813 struct mount_kattr {
42814 	unsigned int attr_set;
42815 	unsigned int attr_clr;
42816 	unsigned int propagation;
42817 	unsigned int lookup_flags;
42818 	bool recurse;
42819 	struct user_namespace *mnt_userns;
42820 };
42821 
42822 enum umount_tree_flags {
42823 	UMOUNT_SYNC = 1,
42824 	UMOUNT_PROPAGATE = 2,
42825 	UMOUNT_CONNECTED = 4,
42826 };
42827 
42828 struct simple_transaction_argresp {
42829 	ssize_t size;
42830 	char data[0];
42831 };
42832 
42833 enum utf8_normalization {
42834 	UTF8_NFDI = 0,
42835 	UTF8_NFDICF = 1,
42836 	UTF8_NMAX = 2,
42837 };
42838 
42839 struct simple_attr {
42840 	int (*get)(void *, u64 *);
42841 	int (*set)(void *, u64);
42842 	char get_buf[24];
42843 	char set_buf[24];
42844 	void *data;
42845 	const char *fmt;
42846 	struct mutex mutex;
42847 };
42848 
42849 struct wb_writeback_work {
42850 	long int nr_pages;
42851 	struct super_block *sb;
42852 	enum writeback_sync_modes sync_mode;
42853 	unsigned int tagged_writepages: 1;
42854 	unsigned int for_kupdate: 1;
42855 	unsigned int range_cyclic: 1;
42856 	unsigned int for_background: 1;
42857 	unsigned int for_sync: 1;
42858 	unsigned int auto_free: 1;
42859 	enum wb_reason reason;
42860 	struct list_head list;
42861 	struct wb_completion *done;
42862 };
42863 
42864 struct trace_event_raw_writeback_folio_template {
42865 	struct trace_entry ent;
42866 	char name[32];
42867 	ino_t ino;
42868 	long unsigned int index;
42869 	char __data[0];
42870 };
42871 
42872 struct trace_event_raw_writeback_dirty_inode_template {
42873 	struct trace_entry ent;
42874 	char name[32];
42875 	ino_t ino;
42876 	long unsigned int state;
42877 	long unsigned int flags;
42878 	char __data[0];
42879 };
42880 
42881 struct trace_event_raw_inode_foreign_history {
42882 	struct trace_entry ent;
42883 	char name[32];
42884 	ino_t ino;
42885 	ino_t cgroup_ino;
42886 	unsigned int history;
42887 	char __data[0];
42888 };
42889 
42890 struct trace_event_raw_inode_switch_wbs {
42891 	struct trace_entry ent;
42892 	char name[32];
42893 	ino_t ino;
42894 	ino_t old_cgroup_ino;
42895 	ino_t new_cgroup_ino;
42896 	char __data[0];
42897 };
42898 
42899 struct trace_event_raw_track_foreign_dirty {
42900 	struct trace_entry ent;
42901 	char name[32];
42902 	u64 bdi_id;
42903 	ino_t ino;
42904 	unsigned int memcg_id;
42905 	ino_t cgroup_ino;
42906 	ino_t page_cgroup_ino;
42907 	char __data[0];
42908 };
42909 
42910 struct trace_event_raw_flush_foreign {
42911 	struct trace_entry ent;
42912 	char name[32];
42913 	ino_t cgroup_ino;
42914 	unsigned int frn_bdi_id;
42915 	unsigned int frn_memcg_id;
42916 	char __data[0];
42917 };
42918 
42919 struct trace_event_raw_writeback_write_inode_template {
42920 	struct trace_entry ent;
42921 	char name[32];
42922 	ino_t ino;
42923 	int sync_mode;
42924 	ino_t cgroup_ino;
42925 	char __data[0];
42926 };
42927 
42928 struct trace_event_raw_writeback_work_class {
42929 	struct trace_entry ent;
42930 	char name[32];
42931 	long int nr_pages;
42932 	dev_t sb_dev;
42933 	int sync_mode;
42934 	int for_kupdate;
42935 	int range_cyclic;
42936 	int for_background;
42937 	int reason;
42938 	ino_t cgroup_ino;
42939 	char __data[0];
42940 };
42941 
42942 struct trace_event_raw_writeback_pages_written {
42943 	struct trace_entry ent;
42944 	long int pages;
42945 	char __data[0];
42946 };
42947 
42948 struct trace_event_raw_writeback_class {
42949 	struct trace_entry ent;
42950 	char name[32];
42951 	ino_t cgroup_ino;
42952 	char __data[0];
42953 };
42954 
42955 struct trace_event_raw_writeback_bdi_register {
42956 	struct trace_entry ent;
42957 	char name[32];
42958 	char __data[0];
42959 };
42960 
42961 struct trace_event_raw_wbc_class {
42962 	struct trace_entry ent;
42963 	char name[32];
42964 	long int nr_to_write;
42965 	long int pages_skipped;
42966 	int sync_mode;
42967 	int for_kupdate;
42968 	int for_background;
42969 	int for_reclaim;
42970 	int range_cyclic;
42971 	long int range_start;
42972 	long int range_end;
42973 	ino_t cgroup_ino;
42974 	char __data[0];
42975 };
42976 
42977 struct trace_event_raw_writeback_queue_io {
42978 	struct trace_entry ent;
42979 	char name[32];
42980 	long unsigned int older;
42981 	long int age;
42982 	int moved;
42983 	int reason;
42984 	ino_t cgroup_ino;
42985 	char __data[0];
42986 };
42987 
42988 struct trace_event_raw_global_dirty_state {
42989 	struct trace_entry ent;
42990 	long unsigned int nr_dirty;
42991 	long unsigned int nr_writeback;
42992 	long unsigned int background_thresh;
42993 	long unsigned int dirty_thresh;
42994 	long unsigned int dirty_limit;
42995 	long unsigned int nr_dirtied;
42996 	long unsigned int nr_written;
42997 	char __data[0];
42998 };
42999 
43000 struct trace_event_raw_bdi_dirty_ratelimit {
43001 	struct trace_entry ent;
43002 	char bdi[32];
43003 	long unsigned int write_bw;
43004 	long unsigned int avg_write_bw;
43005 	long unsigned int dirty_rate;
43006 	long unsigned int dirty_ratelimit;
43007 	long unsigned int task_ratelimit;
43008 	long unsigned int balanced_dirty_ratelimit;
43009 	ino_t cgroup_ino;
43010 	char __data[0];
43011 };
43012 
43013 struct trace_event_raw_balance_dirty_pages {
43014 	struct trace_entry ent;
43015 	char bdi[32];
43016 	long unsigned int limit;
43017 	long unsigned int setpoint;
43018 	long unsigned int dirty;
43019 	long unsigned int bdi_setpoint;
43020 	long unsigned int bdi_dirty;
43021 	long unsigned int dirty_ratelimit;
43022 	long unsigned int task_ratelimit;
43023 	unsigned int dirtied;
43024 	unsigned int dirtied_pause;
43025 	long unsigned int paused;
43026 	long int pause;
43027 	long unsigned int period;
43028 	long int think;
43029 	ino_t cgroup_ino;
43030 	char __data[0];
43031 };
43032 
43033 struct trace_event_raw_writeback_sb_inodes_requeue {
43034 	struct trace_entry ent;
43035 	char name[32];
43036 	ino_t ino;
43037 	long unsigned int state;
43038 	long unsigned int dirtied_when;
43039 	ino_t cgroup_ino;
43040 	char __data[0];
43041 };
43042 
43043 struct trace_event_raw_writeback_congest_waited_template {
43044 	struct trace_entry ent;
43045 	unsigned int usec_timeout;
43046 	unsigned int usec_delayed;
43047 	char __data[0];
43048 };
43049 
43050 struct trace_event_raw_writeback_single_inode_template {
43051 	struct trace_entry ent;
43052 	char name[32];
43053 	ino_t ino;
43054 	long unsigned int state;
43055 	long unsigned int dirtied_when;
43056 	long unsigned int writeback_index;
43057 	long int nr_to_write;
43058 	long unsigned int wrote;
43059 	ino_t cgroup_ino;
43060 	char __data[0];
43061 };
43062 
43063 struct trace_event_raw_writeback_inode_template {
43064 	struct trace_entry ent;
43065 	dev_t dev;
43066 	ino_t ino;
43067 	long unsigned int state;
43068 	__u16 mode;
43069 	long unsigned int dirtied_when;
43070 	char __data[0];
43071 };
43072 
43073 struct trace_event_data_offsets_writeback_folio_template {};
43074 
43075 struct trace_event_data_offsets_writeback_dirty_inode_template {};
43076 
43077 struct trace_event_data_offsets_inode_foreign_history {};
43078 
43079 struct trace_event_data_offsets_inode_switch_wbs {};
43080 
43081 struct trace_event_data_offsets_track_foreign_dirty {};
43082 
43083 struct trace_event_data_offsets_flush_foreign {};
43084 
43085 struct trace_event_data_offsets_writeback_write_inode_template {};
43086 
43087 struct trace_event_data_offsets_writeback_work_class {};
43088 
43089 struct trace_event_data_offsets_writeback_pages_written {};
43090 
43091 struct trace_event_data_offsets_writeback_class {};
43092 
43093 struct trace_event_data_offsets_writeback_bdi_register {};
43094 
43095 struct trace_event_data_offsets_wbc_class {};
43096 
43097 struct trace_event_data_offsets_writeback_queue_io {};
43098 
43099 struct trace_event_data_offsets_global_dirty_state {};
43100 
43101 struct trace_event_data_offsets_bdi_dirty_ratelimit {};
43102 
43103 struct trace_event_data_offsets_balance_dirty_pages {};
43104 
43105 struct trace_event_data_offsets_writeback_sb_inodes_requeue {};
43106 
43107 struct trace_event_data_offsets_writeback_congest_waited_template {};
43108 
43109 struct trace_event_data_offsets_writeback_single_inode_template {};
43110 
43111 struct trace_event_data_offsets_writeback_inode_template {};
43112 
43113 typedef void (*btf_trace_writeback_dirty_folio)(void *, struct folio *, struct address_space *);
43114 
43115 typedef void (*btf_trace_folio_wait_writeback)(void *, struct folio *, struct address_space *);
43116 
43117 typedef void (*btf_trace_writeback_mark_inode_dirty)(void *, struct inode *, int);
43118 
43119 typedef void (*btf_trace_writeback_dirty_inode_start)(void *, struct inode *, int);
43120 
43121 typedef void (*btf_trace_writeback_dirty_inode)(void *, struct inode *, int);
43122 
43123 typedef void (*btf_trace_inode_foreign_history)(void *, struct inode *, struct writeback_control *, unsigned int);
43124 
43125 typedef void (*btf_trace_inode_switch_wbs)(void *, struct inode *, struct bdi_writeback *, struct bdi_writeback *);
43126 
43127 typedef void (*btf_trace_track_foreign_dirty)(void *, struct folio *, struct bdi_writeback *);
43128 
43129 typedef void (*btf_trace_flush_foreign)(void *, struct bdi_writeback *, unsigned int, unsigned int);
43130 
43131 typedef void (*btf_trace_writeback_write_inode_start)(void *, struct inode *, struct writeback_control *);
43132 
43133 typedef void (*btf_trace_writeback_write_inode)(void *, struct inode *, struct writeback_control *);
43134 
43135 typedef void (*btf_trace_writeback_queue)(void *, struct bdi_writeback *, struct wb_writeback_work *);
43136 
43137 typedef void (*btf_trace_writeback_exec)(void *, struct bdi_writeback *, struct wb_writeback_work *);
43138 
43139 typedef void (*btf_trace_writeback_start)(void *, struct bdi_writeback *, struct wb_writeback_work *);
43140 
43141 typedef void (*btf_trace_writeback_written)(void *, struct bdi_writeback *, struct wb_writeback_work *);
43142 
43143 typedef void (*btf_trace_writeback_wait)(void *, struct bdi_writeback *, struct wb_writeback_work *);
43144 
43145 typedef void (*btf_trace_writeback_pages_written)(void *, long int);
43146 
43147 typedef void (*btf_trace_writeback_wake_background)(void *, struct bdi_writeback *);
43148 
43149 typedef void (*btf_trace_writeback_bdi_register)(void *, struct backing_dev_info *);
43150 
43151 typedef void (*btf_trace_wbc_writepage)(void *, struct writeback_control *, struct backing_dev_info *);
43152 
43153 typedef void (*btf_trace_writeback_queue_io)(void *, struct bdi_writeback *, struct wb_writeback_work *, long unsigned int, int);
43154 
43155 typedef void (*btf_trace_global_dirty_state)(void *, long unsigned int, long unsigned int);
43156 
43157 typedef void (*btf_trace_bdi_dirty_ratelimit)(void *, struct bdi_writeback *, long unsigned int, long unsigned int);
43158 
43159 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);
43160 
43161 typedef void (*btf_trace_writeback_sb_inodes_requeue)(void *, struct inode *);
43162 
43163 typedef void (*btf_trace_writeback_congestion_wait)(void *, unsigned int, unsigned int);
43164 
43165 typedef void (*btf_trace_writeback_single_inode_start)(void *, struct inode *, struct writeback_control *, long unsigned int);
43166 
43167 typedef void (*btf_trace_writeback_single_inode)(void *, struct inode *, struct writeback_control *, long unsigned int);
43168 
43169 typedef void (*btf_trace_writeback_lazytime)(void *, struct inode *);
43170 
43171 typedef void (*btf_trace_writeback_lazytime_iput)(void *, struct inode *);
43172 
43173 typedef void (*btf_trace_writeback_dirty_inode_enqueue)(void *, struct inode *);
43174 
43175 typedef void (*btf_trace_sb_mark_inode_writeback)(void *, struct inode *);
43176 
43177 typedef void (*btf_trace_sb_clear_inode_writeback)(void *, struct inode *);
43178 
43179 struct inode_switch_wbs_context {
43180 	struct rcu_work work;
43181 	struct bdi_writeback *new_wb;
43182 	struct inode *inodes[0];
43183 };
43184 
43185 struct splice_desc {
43186 	size_t total_len;
43187 	unsigned int len;
43188 	unsigned int flags;
43189 	union {
43190 		void *userptr;
43191 		struct file *file;
43192 		void *data;
43193 	} u;
43194 	loff_t pos;
43195 	loff_t *opos;
43196 	size_t num_spliced;
43197 	bool need_wakeup;
43198 };
43199 
43200 typedef int splice_actor(struct pipe_inode_info *, struct pipe_buffer *, struct splice_desc *);
43201 
43202 typedef int splice_direct_actor(struct pipe_inode_info *, struct splice_desc *);
43203 
43204 struct old_utimbuf32 {
43205 	old_time32_t actime;
43206 	old_time32_t modtime;
43207 };
43208 
43209 struct utimbuf {
43210 	__kernel_old_time_t actime;
43211 	__kernel_old_time_t modtime;
43212 };
43213 
43214 struct prepend_buffer {
43215 	char *buf;
43216 	int len;
43217 };
43218 
43219 typedef int __kernel_daddr_t;
43220 
43221 struct ustat {
43222 	__kernel_daddr_t f_tfree;
43223 	long unsigned int f_tinode;
43224 	char f_fname[6];
43225 	char f_fpack[6];
43226 };
43227 
43228 struct statfs {
43229 	__kernel_long_t f_type;
43230 	__kernel_long_t f_bsize;
43231 	__kernel_long_t f_blocks;
43232 	__kernel_long_t f_bfree;
43233 	__kernel_long_t f_bavail;
43234 	__kernel_long_t f_files;
43235 	__kernel_long_t f_ffree;
43236 	__kernel_fsid_t f_fsid;
43237 	__kernel_long_t f_namelen;
43238 	__kernel_long_t f_frsize;
43239 	__kernel_long_t f_flags;
43240 	__kernel_long_t f_spare[4];
43241 };
43242 
43243 struct statfs64 {
43244 	__kernel_long_t f_type;
43245 	__kernel_long_t f_bsize;
43246 	__u64 f_blocks;
43247 	__u64 f_bfree;
43248 	__u64 f_bavail;
43249 	__u64 f_files;
43250 	__u64 f_ffree;
43251 	__kernel_fsid_t f_fsid;
43252 	__kernel_long_t f_namelen;
43253 	__kernel_long_t f_frsize;
43254 	__kernel_long_t f_flags;
43255 	__kernel_long_t f_spare[4];
43256 };
43257 
43258 typedef struct ns_common *ns_get_path_helper_t(void *);
43259 
43260 struct ns_get_path_task_args {
43261 	const struct proc_ns_operations *ns_ops;
43262 	struct task_struct *task;
43263 };
43264 
43265 enum legacy_fs_param {
43266 	LEGACY_FS_UNSET_PARAMS = 0,
43267 	LEGACY_FS_MONOLITHIC_PARAMS = 1,
43268 	LEGACY_FS_INDIVIDUAL_PARAMS = 2,
43269 };
43270 
43271 struct legacy_fs_context {
43272 	char *legacy_data;
43273 	size_t data_size;
43274 	enum legacy_fs_param param_type;
43275 };
43276 
43277 enum fsconfig_command {
43278 	FSCONFIG_SET_FLAG = 0,
43279 	FSCONFIG_SET_STRING = 1,
43280 	FSCONFIG_SET_BINARY = 2,
43281 	FSCONFIG_SET_PATH = 3,
43282 	FSCONFIG_SET_PATH_EMPTY = 4,
43283 	FSCONFIG_SET_FD = 5,
43284 	FSCONFIG_CMD_CREATE = 6,
43285 	FSCONFIG_CMD_RECONFIGURE = 7,
43286 };
43287 
43288 typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int);
43289 
43290 typedef __u32 blk_mq_req_flags_t;
43291 
43292 struct dax_device;
43293 
43294 struct iomap_page_ops;
43295 
43296 struct iomap___2 {
43297 	u64 addr;
43298 	loff_t offset;
43299 	u64 length;
43300 	u16 type;
43301 	u16 flags;
43302 	struct block_device *bdev;
43303 	struct dax_device *dax_dev;
43304 	void *inline_data;
43305 	void *private;
43306 	const struct iomap_page_ops *page_ops;
43307 };
43308 
43309 struct iomap_page_ops {
43310 	int (*page_prepare)(struct inode *, loff_t, unsigned int);
43311 	void (*page_done)(struct inode *, loff_t, unsigned int, struct page *);
43312 };
43313 
43314 enum hctx_type {
43315 	HCTX_TYPE_DEFAULT = 0,
43316 	HCTX_TYPE_READ = 1,
43317 	HCTX_TYPE_POLL = 2,
43318 	HCTX_MAX_TYPES = 3,
43319 };
43320 
43321 struct decrypt_bh_ctx {
43322 	struct work_struct work;
43323 	struct buffer_head *bh;
43324 };
43325 
43326 struct bh_lru {
43327 	struct buffer_head *bhs[16];
43328 };
43329 
43330 struct bh_accounting {
43331 	int nr;
43332 	int ratelimit;
43333 };
43334 
43335 typedef int dio_iodone_t(struct kiocb *, loff_t, ssize_t, void *);
43336 
43337 typedef void dio_submit_t(struct bio *, struct inode *, loff_t);
43338 
43339 enum {
43340 	DIO_LOCKING = 1,
43341 	DIO_SKIP_HOLES = 2,
43342 };
43343 
43344 struct dio_submit {
43345 	struct bio *bio;
43346 	unsigned int blkbits;
43347 	unsigned int blkfactor;
43348 	unsigned int start_zero_done;
43349 	int pages_in_io;
43350 	sector_t block_in_file;
43351 	unsigned int blocks_available;
43352 	int reap_counter;
43353 	sector_t final_block_in_request;
43354 	int boundary;
43355 	get_block_t *get_block;
43356 	dio_submit_t *submit_io;
43357 	loff_t logical_offset_in_bio;
43358 	sector_t final_block_in_bio;
43359 	sector_t next_block_for_io;
43360 	struct page *cur_page;
43361 	unsigned int cur_page_offset;
43362 	unsigned int cur_page_len;
43363 	sector_t cur_page_block;
43364 	loff_t cur_page_fs_offset;
43365 	struct iov_iter *iter;
43366 	unsigned int head;
43367 	unsigned int tail;
43368 	size_t from;
43369 	size_t to;
43370 };
43371 
43372 struct dio {
43373 	int flags;
43374 	int op;
43375 	int op_flags;
43376 	struct gendisk *bio_disk;
43377 	struct inode *inode;
43378 	loff_t i_size;
43379 	dio_iodone_t *end_io;
43380 	void *private;
43381 	spinlock_t bio_lock;
43382 	int page_errors;
43383 	int is_async;
43384 	bool defer_completion;
43385 	bool should_dirty;
43386 	int io_error;
43387 	long unsigned int refcount;
43388 	struct bio *bio_list;
43389 	struct task_struct *waiter;
43390 	struct kiocb *iocb;
43391 	ssize_t result;
43392 	union {
43393 		struct page *pages[64];
43394 		struct work_struct complete_work;
43395 	};
43396 	long: 64;
43397 	long: 64;
43398 };
43399 
43400 struct bvec_iter_all {
43401 	struct bio_vec bv;
43402 	int idx;
43403 	unsigned int done;
43404 };
43405 
43406 struct mpage_readpage_args {
43407 	struct bio *bio;
43408 	struct page *page;
43409 	unsigned int nr_pages;
43410 	bool is_readahead;
43411 	sector_t last_block_in_bio;
43412 	struct buffer_head map_bh;
43413 	long unsigned int first_logical_block;
43414 	get_block_t *get_block;
43415 };
43416 
43417 struct mpage_data {
43418 	struct bio *bio;
43419 	sector_t last_block_in_bio;
43420 	get_block_t *get_block;
43421 	unsigned int use_writepage;
43422 };
43423 
43424 typedef u32 nlink_t;
43425 
43426 typedef int (*proc_write_t)(struct file *, char *, size_t);
43427 
43428 struct proc_dir_entry {
43429 	atomic_t in_use;
43430 	refcount_t refcnt;
43431 	struct list_head pde_openers;
43432 	spinlock_t pde_unload_lock;
43433 	struct completion *pde_unload_completion;
43434 	const struct inode_operations *proc_iops;
43435 	union {
43436 		const struct proc_ops *proc_ops;
43437 		const struct file_operations *proc_dir_ops;
43438 	};
43439 	const struct dentry_operations *proc_dops;
43440 	union {
43441 		const struct seq_operations *seq_ops;
43442 		int (*single_show)(struct seq_file *, void *);
43443 	};
43444 	proc_write_t write;
43445 	void *data;
43446 	unsigned int state_size;
43447 	unsigned int low_ino;
43448 	nlink_t nlink;
43449 	kuid_t uid;
43450 	kgid_t gid;
43451 	loff_t size;
43452 	struct proc_dir_entry *parent;
43453 	struct rb_root subdir;
43454 	struct rb_node subdir_node;
43455 	char *name;
43456 	umode_t mode;
43457 	u8 flags;
43458 	u8 namelen;
43459 	char inline_name[0];
43460 };
43461 
43462 union proc_op {
43463 	int (*proc_get_link)(struct dentry *, struct path *);
43464 	int (*proc_show)(struct seq_file *, struct pid_namespace *, struct pid *, struct task_struct *);
43465 	const char *lsm;
43466 };
43467 
43468 struct proc_inode {
43469 	struct pid *pid;
43470 	unsigned int fd;
43471 	union proc_op op;
43472 	struct proc_dir_entry *pde;
43473 	struct ctl_table_header *sysctl;
43474 	struct ctl_table *sysctl_entry;
43475 	struct hlist_node sibling_inodes;
43476 	const struct proc_ns_operations *ns_ops;
43477 	struct inode vfs_inode;
43478 };
43479 
43480 struct proc_fs_opts {
43481 	int flag;
43482 	const char *str;
43483 };
43484 
43485 struct fs_error_report {
43486 	int error;
43487 	struct inode *inode;
43488 	struct super_block *sb;
43489 };
43490 
43491 struct file_handle {
43492 	__u32 handle_bytes;
43493 	int handle_type;
43494 	unsigned char f_handle[0];
43495 };
43496 
43497 struct inotify_inode_mark {
43498 	struct fsnotify_mark fsn_mark;
43499 	int wd;
43500 };
43501 
43502 struct dnotify_struct {
43503 	struct dnotify_struct *dn_next;
43504 	__u32 dn_mask;
43505 	int dn_fd;
43506 	struct file *dn_filp;
43507 	fl_owner_t dn_owner;
43508 };
43509 
43510 struct dnotify_mark {
43511 	struct fsnotify_mark fsn_mark;
43512 	struct dnotify_struct *dn;
43513 };
43514 
43515 struct inotify_event_info {
43516 	struct fsnotify_event fse;
43517 	u32 mask;
43518 	int wd;
43519 	u32 sync_cookie;
43520 	int name_len;
43521 	char name[0];
43522 };
43523 
43524 struct inotify_event {
43525 	__s32 wd;
43526 	__u32 mask;
43527 	__u32 cookie;
43528 	__u32 len;
43529 	char name[0];
43530 };
43531 
43532 struct epoll_event {
43533 	__poll_t events;
43534 	__u64 data;
43535 } __attribute__((packed));
43536 
43537 struct wake_irq;
43538 
43539 struct wakeup_source {
43540 	const char *name;
43541 	int id;
43542 	struct list_head entry;
43543 	spinlock_t lock;
43544 	struct wake_irq *wakeirq;
43545 	struct timer_list timer;
43546 	long unsigned int timer_expires;
43547 	ktime_t total_time;
43548 	ktime_t max_time;
43549 	ktime_t last_time;
43550 	ktime_t start_prevent_time;
43551 	ktime_t prevent_sleep_time;
43552 	long unsigned int event_count;
43553 	long unsigned int active_count;
43554 	long unsigned int relax_count;
43555 	long unsigned int expire_count;
43556 	long unsigned int wakeup_count;
43557 	struct device *dev;
43558 	bool active: 1;
43559 	bool autosleep_enabled: 1;
43560 };
43561 
43562 struct epoll_filefd {
43563 	struct file *file;
43564 	int fd;
43565 } __attribute__((packed));
43566 
43567 struct epitem;
43568 
43569 struct eppoll_entry {
43570 	struct eppoll_entry *next;
43571 	struct epitem *base;
43572 	wait_queue_entry_t wait;
43573 	wait_queue_head_t *whead;
43574 };
43575 
43576 struct eventpoll;
43577 
43578 struct epitem {
43579 	union {
43580 		struct rb_node rbn;
43581 		struct callback_head rcu;
43582 	};
43583 	struct list_head rdllink;
43584 	struct epitem *next;
43585 	struct epoll_filefd ffd;
43586 	struct eppoll_entry *pwqlist;
43587 	struct eventpoll *ep;
43588 	struct hlist_node fllink;
43589 	struct wakeup_source *ws;
43590 	struct epoll_event event;
43591 };
43592 
43593 struct eventpoll {
43594 	struct mutex mtx;
43595 	wait_queue_head_t wq;
43596 	wait_queue_head_t poll_wait;
43597 	struct list_head rdllist;
43598 	rwlock_t lock;
43599 	struct rb_root_cached rbr;
43600 	struct epitem *ovflist;
43601 	struct wakeup_source *ws;
43602 	struct user_struct *user;
43603 	struct file *file;
43604 	u64 gen;
43605 	struct hlist_head refs;
43606 	unsigned int napi_id;
43607 	u8 nests;
43608 };
43609 
43610 struct ep_pqueue {
43611 	poll_table pt;
43612 	struct epitem *epi;
43613 };
43614 
43615 struct epitems_head {
43616 	struct hlist_head epitems;
43617 	struct epitems_head *next;
43618 };
43619 
43620 struct signalfd_siginfo {
43621 	__u32 ssi_signo;
43622 	__s32 ssi_errno;
43623 	__s32 ssi_code;
43624 	__u32 ssi_pid;
43625 	__u32 ssi_uid;
43626 	__s32 ssi_fd;
43627 	__u32 ssi_tid;
43628 	__u32 ssi_band;
43629 	__u32 ssi_overrun;
43630 	__u32 ssi_trapno;
43631 	__s32 ssi_status;
43632 	__s32 ssi_int;
43633 	__u64 ssi_ptr;
43634 	__u64 ssi_utime;
43635 	__u64 ssi_stime;
43636 	__u64 ssi_addr;
43637 	__u16 ssi_addr_lsb;
43638 	__u16 __pad2;
43639 	__s32 ssi_syscall;
43640 	__u64 ssi_call_addr;
43641 	__u32 ssi_arch;
43642 	__u8 __pad[28];
43643 };
43644 
43645 struct signalfd_ctx {
43646 	sigset_t sigmask;
43647 };
43648 
43649 struct timerfd_ctx {
43650 	union {
43651 		struct hrtimer tmr;
43652 		struct alarm alarm;
43653 	} t;
43654 	ktime_t tintv;
43655 	ktime_t moffs;
43656 	wait_queue_head_t wqh;
43657 	u64 ticks;
43658 	int clockid;
43659 	short unsigned int expired;
43660 	short unsigned int settime_flags;
43661 	struct callback_head rcu;
43662 	struct list_head clist;
43663 	spinlock_t cancel_lock;
43664 	bool might_cancel;
43665 };
43666 
43667 struct eventfd_ctx___2 {
43668 	struct kref kref;
43669 	wait_queue_head_t wqh;
43670 	__u64 count;
43671 	unsigned int flags;
43672 	int id;
43673 };
43674 
43675 struct userfaultfd_ctx {
43676 	wait_queue_head_t fault_pending_wqh;
43677 	wait_queue_head_t fault_wqh;
43678 	wait_queue_head_t fd_wqh;
43679 	wait_queue_head_t event_wqh;
43680 	seqcount_spinlock_t refile_seq;
43681 	refcount_t refcount;
43682 	unsigned int flags;
43683 	unsigned int features;
43684 	bool released;
43685 	atomic_t mmap_changing;
43686 	struct mm_struct *mm;
43687 };
43688 
43689 struct uffd_msg {
43690 	__u8 event;
43691 	__u8 reserved1;
43692 	__u16 reserved2;
43693 	__u32 reserved3;
43694 	union {
43695 		struct {
43696 			__u64 flags;
43697 			__u64 address;
43698 			union {
43699 				__u32 ptid;
43700 			} feat;
43701 		} pagefault;
43702 		struct {
43703 			__u32 ufd;
43704 		} fork;
43705 		struct {
43706 			__u64 from;
43707 			__u64 to;
43708 			__u64 len;
43709 		} remap;
43710 		struct {
43711 			__u64 start;
43712 			__u64 end;
43713 		} remove;
43714 		struct {
43715 			__u64 reserved1;
43716 			__u64 reserved2;
43717 			__u64 reserved3;
43718 		} reserved;
43719 	} arg;
43720 };
43721 
43722 struct uffdio_api {
43723 	__u64 api;
43724 	__u64 features;
43725 	__u64 ioctls;
43726 };
43727 
43728 struct uffdio_range {
43729 	__u64 start;
43730 	__u64 len;
43731 };
43732 
43733 struct uffdio_register {
43734 	struct uffdio_range range;
43735 	__u64 mode;
43736 	__u64 ioctls;
43737 };
43738 
43739 struct uffdio_copy {
43740 	__u64 dst;
43741 	__u64 src;
43742 	__u64 len;
43743 	__u64 mode;
43744 	__s64 copy;
43745 };
43746 
43747 struct uffdio_zeropage {
43748 	struct uffdio_range range;
43749 	__u64 mode;
43750 	__s64 zeropage;
43751 };
43752 
43753 struct uffdio_writeprotect {
43754 	struct uffdio_range range;
43755 	__u64 mode;
43756 };
43757 
43758 struct uffdio_continue {
43759 	struct uffdio_range range;
43760 	__u64 mode;
43761 	__s64 mapped;
43762 };
43763 
43764 struct userfaultfd_fork_ctx {
43765 	struct userfaultfd_ctx *orig;
43766 	struct userfaultfd_ctx *new;
43767 	struct list_head list;
43768 };
43769 
43770 struct userfaultfd_unmap_ctx {
43771 	struct userfaultfd_ctx *ctx;
43772 	long unsigned int start;
43773 	long unsigned int end;
43774 	struct list_head list;
43775 };
43776 
43777 struct userfaultfd_wait_queue {
43778 	struct uffd_msg msg;
43779 	wait_queue_entry_t wq;
43780 	struct userfaultfd_ctx *ctx;
43781 	bool waken;
43782 };
43783 
43784 struct userfaultfd_wake_range {
43785 	long unsigned int start;
43786 	long unsigned int len;
43787 };
43788 
43789 struct kioctx;
43790 
43791 struct kioctx_table {
43792 	struct callback_head rcu;
43793 	unsigned int nr;
43794 	struct kioctx *table[0];
43795 };
43796 
43797 typedef __kernel_ulong_t aio_context_t;
43798 
43799 enum {
43800 	IOCB_CMD_PREAD = 0,
43801 	IOCB_CMD_PWRITE = 1,
43802 	IOCB_CMD_FSYNC = 2,
43803 	IOCB_CMD_FDSYNC = 3,
43804 	IOCB_CMD_POLL = 5,
43805 	IOCB_CMD_NOOP = 6,
43806 	IOCB_CMD_PREADV = 7,
43807 	IOCB_CMD_PWRITEV = 8,
43808 };
43809 
43810 struct io_event {
43811 	__u64 data;
43812 	__u64 obj;
43813 	__s64 res;
43814 	__s64 res2;
43815 };
43816 
43817 struct iocb {
43818 	__u64 aio_data;
43819 	__u32 aio_key;
43820 	__kernel_rwf_t aio_rw_flags;
43821 	__u16 aio_lio_opcode;
43822 	__s16 aio_reqprio;
43823 	__u32 aio_fildes;
43824 	__u64 aio_buf;
43825 	__u64 aio_nbytes;
43826 	__s64 aio_offset;
43827 	__u64 aio_reserved2;
43828 	__u32 aio_flags;
43829 	__u32 aio_resfd;
43830 };
43831 
43832 typedef int kiocb_cancel_fn(struct kiocb *);
43833 
43834 struct aio_ring {
43835 	unsigned int id;
43836 	unsigned int nr;
43837 	unsigned int head;
43838 	unsigned int tail;
43839 	unsigned int magic;
43840 	unsigned int compat_features;
43841 	unsigned int incompat_features;
43842 	unsigned int header_length;
43843 	struct io_event io_events[0];
43844 };
43845 
43846 struct kioctx_cpu;
43847 
43848 struct ctx_rq_wait;
43849 
43850 struct kioctx {
43851 	struct percpu_ref users;
43852 	atomic_t dead;
43853 	struct percpu_ref reqs;
43854 	long unsigned int user_id;
43855 	struct kioctx_cpu *cpu;
43856 	unsigned int req_batch;
43857 	unsigned int max_reqs;
43858 	unsigned int nr_events;
43859 	long unsigned int mmap_base;
43860 	long unsigned int mmap_size;
43861 	struct page **ring_pages;
43862 	long int nr_pages;
43863 	struct rcu_work free_rwork;
43864 	struct ctx_rq_wait *rq_wait;
43865 	long: 64;
43866 	long: 64;
43867 	long: 64;
43868 	long: 64;
43869 	long: 64;
43870 	long: 64;
43871 	struct {
43872 		atomic_t reqs_available;
43873 		long: 32;
43874 		long: 64;
43875 		long: 64;
43876 		long: 64;
43877 		long: 64;
43878 		long: 64;
43879 		long: 64;
43880 		long: 64;
43881 	};
43882 	struct {
43883 		spinlock_t ctx_lock;
43884 		struct list_head active_reqs;
43885 		long: 64;
43886 		long: 64;
43887 		long: 64;
43888 		long: 64;
43889 		long: 64;
43890 		long: 64;
43891 	};
43892 	struct {
43893 		struct mutex ring_lock;
43894 		wait_queue_head_t wait;
43895 		long: 64;
43896 		long: 64;
43897 		long: 64;
43898 		long: 64;
43899 	};
43900 	struct {
43901 		unsigned int tail;
43902 		unsigned int completed_events;
43903 		spinlock_t completion_lock;
43904 		long: 64;
43905 		long: 64;
43906 		long: 64;
43907 		long: 64;
43908 		long: 64;
43909 		long: 64;
43910 		long: 64;
43911 	};
43912 	struct page *internal_pages[8];
43913 	struct file *aio_ring_file;
43914 	unsigned int id;
43915 	long: 32;
43916 	long: 64;
43917 	long: 64;
43918 	long: 64;
43919 	long: 64;
43920 	long: 64;
43921 	long: 64;
43922 };
43923 
43924 struct kioctx_cpu {
43925 	unsigned int reqs_available;
43926 };
43927 
43928 struct ctx_rq_wait {
43929 	struct completion comp;
43930 	atomic_t count;
43931 };
43932 
43933 struct fsync_iocb {
43934 	struct file *file;
43935 	struct work_struct work;
43936 	bool datasync;
43937 	struct cred *creds;
43938 };
43939 
43940 struct poll_iocb {
43941 	struct file *file;
43942 	struct wait_queue_head *head;
43943 	__poll_t events;
43944 	bool cancelled;
43945 	bool work_scheduled;
43946 	bool work_need_resched;
43947 	struct wait_queue_entry wait;
43948 	struct work_struct work;
43949 };
43950 
43951 struct aio_kiocb {
43952 	union {
43953 		struct file *ki_filp;
43954 		struct kiocb rw;
43955 		struct fsync_iocb fsync;
43956 		struct poll_iocb poll;
43957 	};
43958 	struct kioctx *ki_ctx;
43959 	kiocb_cancel_fn *ki_cancel;
43960 	struct io_event ki_res;
43961 	struct list_head ki_list;
43962 	refcount_t ki_refcnt;
43963 	struct eventfd_ctx *ki_eventfd;
43964 };
43965 
43966 struct aio_poll_table {
43967 	struct poll_table_struct pt;
43968 	struct aio_kiocb *iocb;
43969 	bool queued;
43970 	int error;
43971 };
43972 
43973 struct __aio_sigset {
43974 	const sigset_t *sigmask;
43975 	size_t sigsetsize;
43976 };
43977 
43978 struct xa_limit {
43979 	u32 max;
43980 	u32 min;
43981 };
43982 
43983 struct io_wq;
43984 
43985 struct io_wq_work_node;
43986 
43987 struct io_wq_work_list {
43988 	struct io_wq_work_node *first;
43989 	struct io_wq_work_node *last;
43990 };
43991 
43992 struct io_ring_ctx;
43993 
43994 struct io_uring_task {
43995 	int cached_refs;
43996 	struct xarray xa;
43997 	struct wait_queue_head wait;
43998 	const struct io_ring_ctx *last;
43999 	struct io_wq *io_wq;
44000 	struct percpu_counter inflight;
44001 	atomic_t inflight_tracked;
44002 	atomic_t in_idle;
44003 	spinlock_t task_lock;
44004 	struct io_wq_work_list task_list;
44005 	struct io_wq_work_list prior_task_list;
44006 	struct callback_head task_work;
44007 	bool task_running;
44008 };
44009 
44010 struct iov_iter_state {
44011 	size_t iov_offset;
44012 	size_t count;
44013 	long unsigned int nr_segs;
44014 };
44015 
44016 struct user_msghdr {
44017 	void *msg_name;
44018 	int msg_namelen;
44019 	struct iovec *msg_iov;
44020 	__kernel_size_t msg_iovlen;
44021 	void *msg_control;
44022 	__kernel_size_t msg_controllen;
44023 	unsigned int msg_flags;
44024 };
44025 
44026 typedef u32 compat_size_t;
44027 
44028 typedef s32 compat_int_t;
44029 
44030 typedef u32 compat_uint_t;
44031 
44032 struct compat_msghdr {
44033 	compat_uptr_t msg_name;
44034 	compat_int_t msg_namelen;
44035 	compat_uptr_t msg_iov;
44036 	compat_size_t msg_iovlen;
44037 	compat_uptr_t msg_control;
44038 	compat_size_t msg_controllen;
44039 	compat_uint_t msg_flags;
44040 };
44041 
44042 struct scm_fp_list {
44043 	short int count;
44044 	short int max;
44045 	struct user_struct *user;
44046 	struct file *fp[253];
44047 };
44048 
44049 struct unix_skb_parms {
44050 	struct pid *pid;
44051 	kuid_t uid;
44052 	kgid_t gid;
44053 	struct scm_fp_list *fp;
44054 	u32 secid;
44055 	u32 consumed;
44056 };
44057 
44058 struct io_uring_sqe {
44059 	__u8 opcode;
44060 	__u8 flags;
44061 	__u16 ioprio;
44062 	__s32 fd;
44063 	union {
44064 		__u64 off;
44065 		__u64 addr2;
44066 	};
44067 	union {
44068 		__u64 addr;
44069 		__u64 splice_off_in;
44070 	};
44071 	__u32 len;
44072 	union {
44073 		__kernel_rwf_t rw_flags;
44074 		__u32 fsync_flags;
44075 		__u16 poll_events;
44076 		__u32 poll32_events;
44077 		__u32 sync_range_flags;
44078 		__u32 msg_flags;
44079 		__u32 timeout_flags;
44080 		__u32 accept_flags;
44081 		__u32 cancel_flags;
44082 		__u32 open_flags;
44083 		__u32 statx_flags;
44084 		__u32 fadvise_advice;
44085 		__u32 splice_flags;
44086 		__u32 rename_flags;
44087 		__u32 unlink_flags;
44088 		__u32 hardlink_flags;
44089 	};
44090 	__u64 user_data;
44091 	union {
44092 		__u16 buf_index;
44093 		__u16 buf_group;
44094 	};
44095 	__u16 personality;
44096 	union {
44097 		__s32 splice_fd_in;
44098 		__u32 file_index;
44099 	};
44100 	__u64 __pad2[2];
44101 };
44102 
44103 enum {
44104 	IOSQE_FIXED_FILE_BIT = 0,
44105 	IOSQE_IO_DRAIN_BIT = 1,
44106 	IOSQE_IO_LINK_BIT = 2,
44107 	IOSQE_IO_HARDLINK_BIT = 3,
44108 	IOSQE_ASYNC_BIT = 4,
44109 	IOSQE_BUFFER_SELECT_BIT = 5,
44110 	IOSQE_CQE_SKIP_SUCCESS_BIT = 6,
44111 };
44112 
44113 enum {
44114 	IORING_OP_NOP = 0,
44115 	IORING_OP_READV = 1,
44116 	IORING_OP_WRITEV = 2,
44117 	IORING_OP_FSYNC = 3,
44118 	IORING_OP_READ_FIXED = 4,
44119 	IORING_OP_WRITE_FIXED = 5,
44120 	IORING_OP_POLL_ADD = 6,
44121 	IORING_OP_POLL_REMOVE = 7,
44122 	IORING_OP_SYNC_FILE_RANGE = 8,
44123 	IORING_OP_SENDMSG = 9,
44124 	IORING_OP_RECVMSG = 10,
44125 	IORING_OP_TIMEOUT = 11,
44126 	IORING_OP_TIMEOUT_REMOVE = 12,
44127 	IORING_OP_ACCEPT = 13,
44128 	IORING_OP_ASYNC_CANCEL = 14,
44129 	IORING_OP_LINK_TIMEOUT = 15,
44130 	IORING_OP_CONNECT = 16,
44131 	IORING_OP_FALLOCATE = 17,
44132 	IORING_OP_OPENAT = 18,
44133 	IORING_OP_CLOSE = 19,
44134 	IORING_OP_FILES_UPDATE = 20,
44135 	IORING_OP_STATX = 21,
44136 	IORING_OP_READ = 22,
44137 	IORING_OP_WRITE = 23,
44138 	IORING_OP_FADVISE = 24,
44139 	IORING_OP_MADVISE = 25,
44140 	IORING_OP_SEND = 26,
44141 	IORING_OP_RECV = 27,
44142 	IORING_OP_OPENAT2 = 28,
44143 	IORING_OP_EPOLL_CTL = 29,
44144 	IORING_OP_SPLICE = 30,
44145 	IORING_OP_PROVIDE_BUFFERS = 31,
44146 	IORING_OP_REMOVE_BUFFERS = 32,
44147 	IORING_OP_TEE = 33,
44148 	IORING_OP_SHUTDOWN = 34,
44149 	IORING_OP_RENAMEAT = 35,
44150 	IORING_OP_UNLINKAT = 36,
44151 	IORING_OP_MKDIRAT = 37,
44152 	IORING_OP_SYMLINKAT = 38,
44153 	IORING_OP_LINKAT = 39,
44154 	IORING_OP_LAST = 40,
44155 };
44156 
44157 struct io_uring_cqe {
44158 	__u64 user_data;
44159 	__s32 res;
44160 	__u32 flags;
44161 };
44162 
44163 enum {
44164 	IORING_CQE_BUFFER_SHIFT = 16,
44165 };
44166 
44167 struct io_sqring_offsets {
44168 	__u32 head;
44169 	__u32 tail;
44170 	__u32 ring_mask;
44171 	__u32 ring_entries;
44172 	__u32 flags;
44173 	__u32 dropped;
44174 	__u32 array;
44175 	__u32 resv1;
44176 	__u64 resv2;
44177 };
44178 
44179 struct io_cqring_offsets {
44180 	__u32 head;
44181 	__u32 tail;
44182 	__u32 ring_mask;
44183 	__u32 ring_entries;
44184 	__u32 overflow;
44185 	__u32 cqes;
44186 	__u32 flags;
44187 	__u32 resv1;
44188 	__u64 resv2;
44189 };
44190 
44191 struct io_uring_params {
44192 	__u32 sq_entries;
44193 	__u32 cq_entries;
44194 	__u32 flags;
44195 	__u32 sq_thread_cpu;
44196 	__u32 sq_thread_idle;
44197 	__u32 features;
44198 	__u32 wq_fd;
44199 	__u32 resv[3];
44200 	struct io_sqring_offsets sq_off;
44201 	struct io_cqring_offsets cq_off;
44202 };
44203 
44204 enum {
44205 	IORING_REGISTER_BUFFERS = 0,
44206 	IORING_UNREGISTER_BUFFERS = 1,
44207 	IORING_REGISTER_FILES = 2,
44208 	IORING_UNREGISTER_FILES = 3,
44209 	IORING_REGISTER_EVENTFD = 4,
44210 	IORING_UNREGISTER_EVENTFD = 5,
44211 	IORING_REGISTER_FILES_UPDATE = 6,
44212 	IORING_REGISTER_EVENTFD_ASYNC = 7,
44213 	IORING_REGISTER_PROBE = 8,
44214 	IORING_REGISTER_PERSONALITY = 9,
44215 	IORING_UNREGISTER_PERSONALITY = 10,
44216 	IORING_REGISTER_RESTRICTIONS = 11,
44217 	IORING_REGISTER_ENABLE_RINGS = 12,
44218 	IORING_REGISTER_FILES2 = 13,
44219 	IORING_REGISTER_FILES_UPDATE2 = 14,
44220 	IORING_REGISTER_BUFFERS2 = 15,
44221 	IORING_REGISTER_BUFFERS_UPDATE = 16,
44222 	IORING_REGISTER_IOWQ_AFF = 17,
44223 	IORING_UNREGISTER_IOWQ_AFF = 18,
44224 	IORING_REGISTER_IOWQ_MAX_WORKERS = 19,
44225 	IORING_REGISTER_LAST = 20,
44226 };
44227 
44228 struct io_uring_rsrc_register {
44229 	__u32 nr;
44230 	__u32 resv;
44231 	__u64 resv2;
44232 	__u64 data;
44233 	__u64 tags;
44234 };
44235 
44236 struct io_uring_rsrc_update2 {
44237 	__u32 offset;
44238 	__u32 resv;
44239 	__u64 data;
44240 	__u64 tags;
44241 	__u32 nr;
44242 	__u32 resv2;
44243 };
44244 
44245 struct io_uring_probe_op {
44246 	__u8 op;
44247 	__u8 resv;
44248 	__u16 flags;
44249 	__u32 resv2;
44250 };
44251 
44252 struct io_uring_probe {
44253 	__u8 last_op;
44254 	__u8 ops_len;
44255 	__u16 resv;
44256 	__u32 resv2[3];
44257 	struct io_uring_probe_op ops[0];
44258 };
44259 
44260 struct io_uring_restriction {
44261 	__u16 opcode;
44262 	union {
44263 		__u8 register_op;
44264 		__u8 sqe_op;
44265 		__u8 sqe_flags;
44266 	};
44267 	__u8 resv;
44268 	__u32 resv2[3];
44269 };
44270 
44271 enum {
44272 	IORING_RESTRICTION_REGISTER_OP = 0,
44273 	IORING_RESTRICTION_SQE_OP = 1,
44274 	IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2,
44275 	IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3,
44276 	IORING_RESTRICTION_LAST = 4,
44277 };
44278 
44279 struct io_uring_getevents_arg {
44280 	__u64 sigmask;
44281 	__u32 sigmask_sz;
44282 	__u32 pad;
44283 	__u64 ts;
44284 };
44285 
44286 struct trace_event_raw_io_uring_create {
44287 	struct trace_entry ent;
44288 	int fd;
44289 	void *ctx;
44290 	u32 sq_entries;
44291 	u32 cq_entries;
44292 	u32 flags;
44293 	char __data[0];
44294 };
44295 
44296 struct trace_event_raw_io_uring_register {
44297 	struct trace_entry ent;
44298 	void *ctx;
44299 	unsigned int opcode;
44300 	unsigned int nr_files;
44301 	unsigned int nr_bufs;
44302 	bool eventfd;
44303 	long int ret;
44304 	char __data[0];
44305 };
44306 
44307 struct trace_event_raw_io_uring_file_get {
44308 	struct trace_entry ent;
44309 	void *ctx;
44310 	int fd;
44311 	char __data[0];
44312 };
44313 
44314 struct io_wq_work;
44315 
44316 struct trace_event_raw_io_uring_queue_async_work {
44317 	struct trace_entry ent;
44318 	void *ctx;
44319 	int rw;
44320 	void *req;
44321 	struct io_wq_work *work;
44322 	unsigned int flags;
44323 	char __data[0];
44324 };
44325 
44326 struct io_wq_work_node {
44327 	struct io_wq_work_node *next;
44328 };
44329 
44330 struct io_wq_work {
44331 	struct io_wq_work_node list;
44332 	unsigned int flags;
44333 };
44334 
44335 struct trace_event_raw_io_uring_defer {
44336 	struct trace_entry ent;
44337 	void *ctx;
44338 	void *req;
44339 	long long unsigned int data;
44340 	char __data[0];
44341 };
44342 
44343 struct trace_event_raw_io_uring_link {
44344 	struct trace_entry ent;
44345 	void *ctx;
44346 	void *req;
44347 	void *target_req;
44348 	char __data[0];
44349 };
44350 
44351 struct trace_event_raw_io_uring_cqring_wait {
44352 	struct trace_entry ent;
44353 	void *ctx;
44354 	int min_events;
44355 	char __data[0];
44356 };
44357 
44358 struct trace_event_raw_io_uring_fail_link {
44359 	struct trace_entry ent;
44360 	void *req;
44361 	void *link;
44362 	char __data[0];
44363 };
44364 
44365 struct trace_event_raw_io_uring_complete {
44366 	struct trace_entry ent;
44367 	void *ctx;
44368 	u64 user_data;
44369 	int res;
44370 	unsigned int cflags;
44371 	char __data[0];
44372 };
44373 
44374 struct trace_event_raw_io_uring_submit_sqe {
44375 	struct trace_entry ent;
44376 	void *ctx;
44377 	void *req;
44378 	u8 opcode;
44379 	u64 user_data;
44380 	u32 flags;
44381 	bool force_nonblock;
44382 	bool sq_thread;
44383 	char __data[0];
44384 };
44385 
44386 struct trace_event_raw_io_uring_poll_arm {
44387 	struct trace_entry ent;
44388 	void *ctx;
44389 	void *req;
44390 	u8 opcode;
44391 	u64 user_data;
44392 	int mask;
44393 	int events;
44394 	char __data[0];
44395 };
44396 
44397 struct trace_event_raw_io_uring_poll_wake {
44398 	struct trace_entry ent;
44399 	void *ctx;
44400 	u8 opcode;
44401 	u64 user_data;
44402 	int mask;
44403 	char __data[0];
44404 };
44405 
44406 struct trace_event_raw_io_uring_task_add {
44407 	struct trace_entry ent;
44408 	void *ctx;
44409 	u8 opcode;
44410 	u64 user_data;
44411 	int mask;
44412 	char __data[0];
44413 };
44414 
44415 struct trace_event_raw_io_uring_task_run {
44416 	struct trace_entry ent;
44417 	void *ctx;
44418 	void *req;
44419 	u8 opcode;
44420 	u64 user_data;
44421 	char __data[0];
44422 };
44423 
44424 struct trace_event_raw_io_uring_req_failed {
44425 	struct trace_entry ent;
44426 	u8 opcode;
44427 	u8 flags;
44428 	u8 ioprio;
44429 	u64 off;
44430 	u64 addr;
44431 	u32 len;
44432 	u32 op_flags;
44433 	u64 user_data;
44434 	u16 buf_index;
44435 	u16 personality;
44436 	u32 file_index;
44437 	u64 pad1;
44438 	u64 pad2;
44439 	int error;
44440 	char __data[0];
44441 };
44442 
44443 struct trace_event_data_offsets_io_uring_create {};
44444 
44445 struct trace_event_data_offsets_io_uring_register {};
44446 
44447 struct trace_event_data_offsets_io_uring_file_get {};
44448 
44449 struct trace_event_data_offsets_io_uring_queue_async_work {};
44450 
44451 struct trace_event_data_offsets_io_uring_defer {};
44452 
44453 struct trace_event_data_offsets_io_uring_link {};
44454 
44455 struct trace_event_data_offsets_io_uring_cqring_wait {};
44456 
44457 struct trace_event_data_offsets_io_uring_fail_link {};
44458 
44459 struct trace_event_data_offsets_io_uring_complete {};
44460 
44461 struct trace_event_data_offsets_io_uring_submit_sqe {};
44462 
44463 struct trace_event_data_offsets_io_uring_poll_arm {};
44464 
44465 struct trace_event_data_offsets_io_uring_poll_wake {};
44466 
44467 struct trace_event_data_offsets_io_uring_task_add {};
44468 
44469 struct trace_event_data_offsets_io_uring_task_run {};
44470 
44471 struct trace_event_data_offsets_io_uring_req_failed {};
44472 
44473 typedef void (*btf_trace_io_uring_create)(void *, int, void *, u32, u32, u32);
44474 
44475 typedef void (*btf_trace_io_uring_register)(void *, void *, unsigned int, unsigned int, unsigned int, bool, long int);
44476 
44477 typedef void (*btf_trace_io_uring_file_get)(void *, void *, int);
44478 
44479 typedef void (*btf_trace_io_uring_queue_async_work)(void *, void *, int, void *, struct io_wq_work *, unsigned int);
44480 
44481 typedef void (*btf_trace_io_uring_defer)(void *, void *, void *, long long unsigned int);
44482 
44483 typedef void (*btf_trace_io_uring_link)(void *, void *, void *, void *);
44484 
44485 typedef void (*btf_trace_io_uring_cqring_wait)(void *, void *, int);
44486 
44487 typedef void (*btf_trace_io_uring_fail_link)(void *, void *, void *);
44488 
44489 typedef void (*btf_trace_io_uring_complete)(void *, void *, u64, int, unsigned int);
44490 
44491 typedef void (*btf_trace_io_uring_submit_sqe)(void *, void *, void *, u8, u64, u32, bool, bool);
44492 
44493 typedef void (*btf_trace_io_uring_poll_arm)(void *, void *, void *, u8, u64, int, int);
44494 
44495 typedef void (*btf_trace_io_uring_poll_wake)(void *, void *, u8, u64, int);
44496 
44497 typedef void (*btf_trace_io_uring_task_add)(void *, void *, u8, u64, int);
44498 
44499 typedef void (*btf_trace_io_uring_task_run)(void *, void *, void *, u8, u64);
44500 
44501 typedef void (*btf_trace_io_uring_req_failed)(void *, const struct io_uring_sqe *, int);
44502 
44503 enum {
44504 	IO_WQ_WORK_CANCEL = 1,
44505 	IO_WQ_WORK_HASHED = 2,
44506 	IO_WQ_WORK_UNBOUND = 4,
44507 	IO_WQ_WORK_CONCURRENT = 16,
44508 	IO_WQ_HASH_SHIFT = 24,
44509 };
44510 
44511 enum io_wq_cancel {
44512 	IO_WQ_CANCEL_OK = 0,
44513 	IO_WQ_CANCEL_RUNNING = 1,
44514 	IO_WQ_CANCEL_NOTFOUND = 2,
44515 };
44516 
44517 typedef struct io_wq_work *free_work_fn(struct io_wq_work *);
44518 
44519 typedef void io_wq_work_fn(struct io_wq_work *);
44520 
44521 struct io_wq_hash {
44522 	refcount_t refs;
44523 	long unsigned int map;
44524 	struct wait_queue_head wait;
44525 };
44526 
44527 struct io_wq_data {
44528 	struct io_wq_hash *hash;
44529 	struct task_struct *task;
44530 	io_wq_work_fn *do_work;
44531 	free_work_fn *free_work;
44532 };
44533 
44534 struct io_uring {
44535 	u32 head;
44536 	long: 32;
44537 	long: 64;
44538 	long: 64;
44539 	long: 64;
44540 	long: 64;
44541 	long: 64;
44542 	long: 64;
44543 	long: 64;
44544 	u32 tail;
44545 	long: 32;
44546 	long: 64;
44547 	long: 64;
44548 	long: 64;
44549 	long: 64;
44550 	long: 64;
44551 	long: 64;
44552 	long: 64;
44553 };
44554 
44555 struct io_rings {
44556 	struct io_uring sq;
44557 	struct io_uring cq;
44558 	u32 sq_ring_mask;
44559 	u32 cq_ring_mask;
44560 	u32 sq_ring_entries;
44561 	u32 cq_ring_entries;
44562 	u32 sq_dropped;
44563 	u32 sq_flags;
44564 	u32 cq_flags;
44565 	u32 cq_overflow;
44566 	long: 64;
44567 	long: 64;
44568 	long: 64;
44569 	long: 64;
44570 	struct io_uring_cqe cqes[0];
44571 };
44572 
44573 enum io_uring_cmd_flags {
44574 	IO_URING_F_COMPLETE_DEFER = 1,
44575 	IO_URING_F_UNLOCKED = 2,
44576 	IO_URING_F_NONBLOCK = 2147483648,
44577 };
44578 
44579 struct io_mapped_ubuf {
44580 	u64 ubuf;
44581 	u64 ubuf_end;
44582 	unsigned int nr_bvecs;
44583 	long unsigned int acct_pages;
44584 	struct bio_vec bvec[0];
44585 };
44586 
44587 struct io_overflow_cqe {
44588 	struct io_uring_cqe cqe;
44589 	struct list_head list;
44590 };
44591 
44592 struct io_fixed_file {
44593 	long unsigned int file_ptr;
44594 };
44595 
44596 struct io_rsrc_put {
44597 	struct list_head list;
44598 	u64 tag;
44599 	union {
44600 		void *rsrc;
44601 		struct file *file;
44602 		struct io_mapped_ubuf *buf;
44603 	};
44604 };
44605 
44606 struct io_file_table {
44607 	struct io_fixed_file *files;
44608 };
44609 
44610 struct io_rsrc_data;
44611 
44612 struct io_rsrc_node {
44613 	struct percpu_ref refs;
44614 	struct list_head node;
44615 	struct list_head rsrc_list;
44616 	struct io_rsrc_data *rsrc_data;
44617 	struct llist_node llist;
44618 	bool done;
44619 };
44620 
44621 typedef void rsrc_put_fn(struct io_ring_ctx *, struct io_rsrc_put *);
44622 
44623 struct io_rsrc_data {
44624 	struct io_ring_ctx *ctx;
44625 	u64 **tags;
44626 	unsigned int nr;
44627 	rsrc_put_fn *do_put;
44628 	atomic_t refs;
44629 	struct completion done;
44630 	bool quiesce;
44631 };
44632 
44633 struct io_kiocb;
44634 
44635 struct io_submit_link {
44636 	struct io_kiocb *head;
44637 	struct io_kiocb *last;
44638 };
44639 
44640 struct io_submit_state {
44641 	struct io_wq_work_node free_list;
44642 	struct io_wq_work_list compl_reqs;
44643 	struct io_submit_link link;
44644 	bool plug_started;
44645 	bool need_plug;
44646 	bool flush_cqes;
44647 	short unsigned int submit_nr;
44648 	struct blk_plug plug;
44649 };
44650 
44651 struct io_restriction {
44652 	long unsigned int register_op[1];
44653 	long unsigned int sqe_op[1];
44654 	u8 sqe_flags_allowed;
44655 	u8 sqe_flags_required;
44656 	bool registered;
44657 };
44658 
44659 struct io_sq_data;
44660 
44661 struct io_ring_ctx {
44662 	struct {
44663 		struct percpu_ref refs;
44664 		struct io_rings *rings;
44665 		unsigned int flags;
44666 		unsigned int compat: 1;
44667 		unsigned int drain_next: 1;
44668 		unsigned int eventfd_async: 1;
44669 		unsigned int restricted: 1;
44670 		unsigned int off_timeout_used: 1;
44671 		unsigned int drain_active: 1;
44672 		unsigned int drain_disabled: 1;
44673 		long: 25;
44674 		long: 64;
44675 		long: 64;
44676 		long: 64;
44677 		long: 64;
44678 	};
44679 	struct {
44680 		struct mutex uring_lock;
44681 		u32 *sq_array;
44682 		struct io_uring_sqe *sq_sqes;
44683 		unsigned int cached_sq_head;
44684 		unsigned int sq_entries;
44685 		struct list_head defer_list;
44686 		struct io_rsrc_node *rsrc_node;
44687 		int rsrc_cached_refs;
44688 		struct io_file_table file_table;
44689 		unsigned int nr_user_files;
44690 		unsigned int nr_user_bufs;
44691 		struct io_mapped_ubuf **user_bufs;
44692 		struct io_submit_state submit_state;
44693 		struct list_head timeout_list;
44694 		struct list_head ltimeout_list;
44695 		struct list_head cq_overflow_list;
44696 		struct xarray io_buffers;
44697 		struct xarray personalities;
44698 		u32 pers_next;
44699 		unsigned int sq_thread_idle;
44700 		long: 64;
44701 		long: 64;
44702 		long: 64;
44703 		long: 64;
44704 		long: 64;
44705 		long: 64;
44706 	};
44707 	struct io_wq_work_list locked_free_list;
44708 	unsigned int locked_free_nr;
44709 	const struct cred *sq_creds;
44710 	struct io_sq_data *sq_data;
44711 	struct wait_queue_head sqo_sq_wait;
44712 	struct list_head sqd_list;
44713 	long unsigned int check_cq_overflow;
44714 	long: 64;
44715 	long: 64;
44716 	long: 64;
44717 	long: 64;
44718 	long: 64;
44719 	long: 64;
44720 	struct {
44721 		unsigned int cached_cq_tail;
44722 		unsigned int cq_entries;
44723 		struct eventfd_ctx *cq_ev_fd;
44724 		struct wait_queue_head cq_wait;
44725 		unsigned int cq_extra;
44726 		atomic_t cq_timeouts;
44727 		unsigned int cq_last_tm_flush;
44728 		long: 32;
44729 		long: 64;
44730 		long: 64;
44731 	};
44732 	struct {
44733 		spinlock_t completion_lock;
44734 		spinlock_t timeout_lock;
44735 		struct io_wq_work_list iopoll_list;
44736 		struct hlist_head *cancel_hash;
44737 		unsigned int cancel_hash_bits;
44738 		bool poll_multi_queue;
44739 		long: 24;
44740 		long: 64;
44741 		long: 64;
44742 		long: 64;
44743 		long: 64;
44744 	};
44745 	struct io_restriction restrictions;
44746 	struct {
44747 		struct io_rsrc_node *rsrc_backup_node;
44748 		struct io_mapped_ubuf *dummy_ubuf;
44749 		struct io_rsrc_data *file_data;
44750 		struct io_rsrc_data *buf_data;
44751 		struct delayed_work rsrc_put_work;
44752 		struct llist_head rsrc_put_llist;
44753 		struct list_head rsrc_ref_list;
44754 		spinlock_t rsrc_ref_lock;
44755 	};
44756 	struct {
44757 		struct socket *ring_sock;
44758 		struct io_wq_hash *hash_map;
44759 		struct user_struct *user;
44760 		struct mm_struct *mm_account;
44761 		struct llist_head fallback_llist;
44762 		struct delayed_work fallback_work;
44763 		struct work_struct exit_work;
44764 		struct list_head tctx_list;
44765 		struct completion ref_comp;
44766 		u32 iowq_limits[2];
44767 		bool iowq_limits_set;
44768 	};
44769 	long: 64;
44770 	long: 64;
44771 	long: 64;
44772 	long: 64;
44773 	long: 64;
44774 	long: 64;
44775 	long: 64;
44776 };
44777 
44778 struct io_buffer {
44779 	struct list_head list;
44780 	__u64 addr;
44781 	__u32 len;
44782 	__u16 bid;
44783 };
44784 
44785 enum {
44786 	IO_SQ_THREAD_SHOULD_STOP = 0,
44787 	IO_SQ_THREAD_SHOULD_PARK = 1,
44788 };
44789 
44790 struct io_sq_data {
44791 	refcount_t refs;
44792 	atomic_t park_pending;
44793 	struct mutex lock;
44794 	struct list_head ctx_list;
44795 	struct task_struct *thread;
44796 	struct wait_queue_head wait;
44797 	unsigned int sq_thread_idle;
44798 	int sq_cpu;
44799 	pid_t task_pid;
44800 	pid_t task_tgid;
44801 	long unsigned int state;
44802 	struct completion exited;
44803 };
44804 
44805 struct io_rw {
44806 	struct kiocb kiocb;
44807 	u64 addr;
44808 	u64 len;
44809 };
44810 
44811 struct io_poll_iocb {
44812 	struct file *file;
44813 	struct wait_queue_head *head;
44814 	__poll_t events;
44815 	struct wait_queue_entry wait;
44816 };
44817 
44818 struct io_poll_update {
44819 	struct file *file;
44820 	u64 old_user_data;
44821 	u64 new_user_data;
44822 	__poll_t events;
44823 	bool update_events;
44824 	bool update_user_data;
44825 };
44826 
44827 struct io_accept {
44828 	struct file *file;
44829 	struct sockaddr *addr;
44830 	int *addr_len;
44831 	int flags;
44832 	u32 file_slot;
44833 	long unsigned int nofile;
44834 };
44835 
44836 struct io_sync {
44837 	struct file *file;
44838 	loff_t len;
44839 	loff_t off;
44840 	int flags;
44841 	int mode;
44842 };
44843 
44844 struct io_cancel {
44845 	struct file *file;
44846 	u64 addr;
44847 };
44848 
44849 struct io_timeout {
44850 	struct file *file;
44851 	u32 off;
44852 	u32 target_seq;
44853 	struct list_head list;
44854 	struct io_kiocb *head;
44855 	struct io_kiocb *prev;
44856 };
44857 
44858 struct io_timeout_rem {
44859 	struct file *file;
44860 	u64 addr;
44861 	struct timespec64 ts;
44862 	u32 flags;
44863 	bool ltimeout;
44864 };
44865 
44866 struct io_connect {
44867 	struct file *file;
44868 	struct sockaddr *addr;
44869 	int addr_len;
44870 };
44871 
44872 struct io_sr_msg {
44873 	struct file *file;
44874 	union {
44875 		struct compat_msghdr *umsg_compat;
44876 		struct user_msghdr *umsg;
44877 		void *buf;
44878 	};
44879 	int msg_flags;
44880 	int bgid;
44881 	size_t len;
44882 };
44883 
44884 struct io_open {
44885 	struct file *file;
44886 	int dfd;
44887 	u32 file_slot;
44888 	struct filename *filename;
44889 	struct open_how how;
44890 	long unsigned int nofile;
44891 };
44892 
44893 struct io_close {
44894 	struct file *file;
44895 	int fd;
44896 	u32 file_slot;
44897 };
44898 
44899 struct io_rsrc_update {
44900 	struct file *file;
44901 	u64 arg;
44902 	u32 nr_args;
44903 	u32 offset;
44904 };
44905 
44906 struct io_fadvise {
44907 	struct file *file;
44908 	u64 offset;
44909 	u32 len;
44910 	u32 advice;
44911 };
44912 
44913 struct io_madvise {
44914 	struct file *file;
44915 	u64 addr;
44916 	u32 len;
44917 	u32 advice;
44918 };
44919 
44920 struct io_epoll {
44921 	struct file *file;
44922 	int epfd;
44923 	int op;
44924 	int fd;
44925 	struct epoll_event event;
44926 } __attribute__((packed));
44927 
44928 struct io_splice {
44929 	struct file *file_out;
44930 	struct file *file_in;
44931 	loff_t off_out;
44932 	loff_t off_in;
44933 	u64 len;
44934 	unsigned int flags;
44935 };
44936 
44937 struct io_provide_buf {
44938 	struct file *file;
44939 	__u64 addr;
44940 	__u32 len;
44941 	__u32 bgid;
44942 	__u16 nbufs;
44943 	__u16 bid;
44944 };
44945 
44946 struct io_statx {
44947 	struct file *file;
44948 	int dfd;
44949 	unsigned int mask;
44950 	unsigned int flags;
44951 	const char *filename;
44952 	struct statx *buffer;
44953 };
44954 
44955 struct io_shutdown {
44956 	struct file *file;
44957 	int how;
44958 };
44959 
44960 struct io_rename {
44961 	struct file *file;
44962 	int old_dfd;
44963 	int new_dfd;
44964 	struct filename *oldpath;
44965 	struct filename *newpath;
44966 	int flags;
44967 };
44968 
44969 struct io_unlink {
44970 	struct file *file;
44971 	int dfd;
44972 	int flags;
44973 	struct filename *filename;
44974 };
44975 
44976 struct io_mkdir {
44977 	struct file *file;
44978 	int dfd;
44979 	umode_t mode;
44980 	struct filename *filename;
44981 };
44982 
44983 struct io_symlink {
44984 	struct file *file;
44985 	int new_dfd;
44986 	struct filename *oldpath;
44987 	struct filename *newpath;
44988 };
44989 
44990 struct io_hardlink {
44991 	struct file *file;
44992 	int old_dfd;
44993 	int new_dfd;
44994 	struct filename *oldpath;
44995 	struct filename *newpath;
44996 	int flags;
44997 };
44998 
44999 typedef void (*io_req_tw_func_t)(struct io_kiocb *, bool *);
45000 
45001 struct io_task_work {
45002 	union {
45003 		struct io_wq_work_node node;
45004 		struct llist_node fallback_node;
45005 	};
45006 	io_req_tw_func_t func;
45007 };
45008 
45009 struct async_poll;
45010 
45011 struct io_kiocb {
45012 	union {
45013 		struct file *file;
45014 		struct io_rw rw;
45015 		struct io_poll_iocb poll;
45016 		struct io_poll_update poll_update;
45017 		struct io_accept accept;
45018 		struct io_sync sync;
45019 		struct io_cancel cancel;
45020 		struct io_timeout timeout;
45021 		struct io_timeout_rem timeout_rem;
45022 		struct io_connect connect;
45023 		struct io_sr_msg sr_msg;
45024 		struct io_open open;
45025 		struct io_close close;
45026 		struct io_rsrc_update rsrc_update;
45027 		struct io_fadvise fadvise;
45028 		struct io_madvise madvise;
45029 		struct io_epoll epoll;
45030 		struct io_splice splice;
45031 		struct io_provide_buf pbuf;
45032 		struct io_statx statx;
45033 		struct io_shutdown shutdown;
45034 		struct io_rename rename;
45035 		struct io_unlink unlink;
45036 		struct io_mkdir mkdir;
45037 		struct io_symlink symlink;
45038 		struct io_hardlink hardlink;
45039 	};
45040 	u8 opcode;
45041 	u8 iopoll_completed;
45042 	u16 buf_index;
45043 	unsigned int flags;
45044 	u64 user_data;
45045 	u32 result;
45046 	u32 cflags;
45047 	struct io_ring_ctx *ctx;
45048 	struct task_struct *task;
45049 	struct percpu_ref *fixed_rsrc_refs;
45050 	struct io_mapped_ubuf *imu;
45051 	struct io_wq_work_node comp_list;
45052 	atomic_t refs;
45053 	struct io_kiocb *link;
45054 	struct io_task_work io_task_work;
45055 	struct hlist_node hash_node;
45056 	struct async_poll *apoll;
45057 	void *async_data;
45058 	struct io_wq_work work;
45059 	const struct cred *creds;
45060 	struct io_buffer *kbuf;
45061 	atomic_t poll_refs;
45062 };
45063 
45064 struct io_timeout_data {
45065 	struct io_kiocb *req;
45066 	struct hrtimer timer;
45067 	struct timespec64 ts;
45068 	enum hrtimer_mode mode;
45069 	u32 flags;
45070 };
45071 
45072 struct io_async_connect {
45073 	struct __kernel_sockaddr_storage address;
45074 };
45075 
45076 struct io_async_msghdr {
45077 	struct iovec fast_iov[8];
45078 	struct iovec *free_iov;
45079 	struct sockaddr *uaddr;
45080 	struct msghdr msg;
45081 	struct __kernel_sockaddr_storage addr;
45082 };
45083 
45084 struct io_rw_state {
45085 	struct iov_iter iter;
45086 	struct iov_iter_state iter_state;
45087 	struct iovec fast_iov[8];
45088 };
45089 
45090 struct io_async_rw {
45091 	struct io_rw_state s;
45092 	const struct iovec *free_iovec;
45093 	size_t bytes_done;
45094 	struct wait_page_queue wpq;
45095 };
45096 
45097 enum {
45098 	REQ_F_FIXED_FILE_BIT = 0,
45099 	REQ_F_IO_DRAIN_BIT = 1,
45100 	REQ_F_LINK_BIT = 2,
45101 	REQ_F_HARDLINK_BIT = 3,
45102 	REQ_F_FORCE_ASYNC_BIT = 4,
45103 	REQ_F_BUFFER_SELECT_BIT = 5,
45104 	REQ_F_CQE_SKIP_BIT = 6,
45105 	REQ_F_FAIL_BIT = 8,
45106 	REQ_F_INFLIGHT_BIT = 9,
45107 	REQ_F_CUR_POS_BIT = 10,
45108 	REQ_F_NOWAIT_BIT = 11,
45109 	REQ_F_LINK_TIMEOUT_BIT = 12,
45110 	REQ_F_NEED_CLEANUP_BIT = 13,
45111 	REQ_F_POLLED_BIT = 14,
45112 	REQ_F_BUFFER_SELECTED_BIT = 15,
45113 	REQ_F_COMPLETE_INLINE_BIT = 16,
45114 	REQ_F_REISSUE_BIT = 17,
45115 	REQ_F_CREDS_BIT = 18,
45116 	REQ_F_REFCOUNT_BIT = 19,
45117 	REQ_F_ARM_LTIMEOUT_BIT = 20,
45118 	REQ_F_ASYNC_DATA_BIT = 21,
45119 	REQ_F_SKIP_LINK_CQES_BIT = 22,
45120 	REQ_F_SUPPORT_NOWAIT_BIT = 23,
45121 	REQ_F_ISREG_BIT = 24,
45122 	__REQ_F_LAST_BIT = 25,
45123 };
45124 
45125 enum {
45126 	REQ_F_FIXED_FILE = 1,
45127 	REQ_F_IO_DRAIN = 2,
45128 	REQ_F_LINK = 4,
45129 	REQ_F_HARDLINK = 8,
45130 	REQ_F_FORCE_ASYNC = 16,
45131 	REQ_F_BUFFER_SELECT = 32,
45132 	REQ_F_CQE_SKIP = 64,
45133 	REQ_F_FAIL = 256,
45134 	REQ_F_INFLIGHT = 512,
45135 	REQ_F_CUR_POS = 1024,
45136 	REQ_F_NOWAIT = 2048,
45137 	REQ_F_LINK_TIMEOUT = 4096,
45138 	REQ_F_NEED_CLEANUP = 8192,
45139 	REQ_F_POLLED = 16384,
45140 	REQ_F_BUFFER_SELECTED = 32768,
45141 	REQ_F_COMPLETE_INLINE = 65536,
45142 	REQ_F_REISSUE = 131072,
45143 	REQ_F_SUPPORT_NOWAIT = 8388608,
45144 	REQ_F_ISREG = 16777216,
45145 	REQ_F_CREDS = 262144,
45146 	REQ_F_REFCOUNT = 524288,
45147 	REQ_F_ARM_LTIMEOUT = 1048576,
45148 	REQ_F_ASYNC_DATA = 2097152,
45149 	REQ_F_SKIP_LINK_CQES = 4194304,
45150 };
45151 
45152 struct async_poll {
45153 	struct io_poll_iocb poll;
45154 	struct io_poll_iocb *double_poll;
45155 };
45156 
45157 enum {
45158 	IORING_RSRC_FILE = 0,
45159 	IORING_RSRC_BUFFER = 1,
45160 };
45161 
45162 struct io_tctx_node {
45163 	struct list_head ctx_node;
45164 	struct task_struct *task;
45165 	struct io_ring_ctx *ctx;
45166 };
45167 
45168 struct io_defer_entry {
45169 	struct list_head list;
45170 	struct io_kiocb *req;
45171 	u32 seq;
45172 };
45173 
45174 struct io_op_def {
45175 	unsigned int needs_file: 1;
45176 	unsigned int plug: 1;
45177 	unsigned int hash_reg_file: 1;
45178 	unsigned int unbound_nonreg_file: 1;
45179 	unsigned int pollin: 1;
45180 	unsigned int pollout: 1;
45181 	unsigned int buffer_select: 1;
45182 	unsigned int needs_async_setup: 1;
45183 	unsigned int not_supported: 1;
45184 	unsigned int audit_skip: 1;
45185 	short unsigned int async_size;
45186 };
45187 
45188 struct io_poll_table {
45189 	struct poll_table_struct pt;
45190 	struct io_kiocb *req;
45191 	int nr_entries;
45192 	int error;
45193 };
45194 
45195 enum {
45196 	IO_APOLL_OK = 0,
45197 	IO_APOLL_ABORTED = 1,
45198 	IO_APOLL_READY = 2,
45199 };
45200 
45201 struct io_cancel_data {
45202 	struct io_ring_ctx *ctx;
45203 	u64 user_data;
45204 };
45205 
45206 struct io_wait_queue {
45207 	struct wait_queue_entry wq;
45208 	struct io_ring_ctx *ctx;
45209 	unsigned int cq_tail;
45210 	unsigned int nr_timeouts;
45211 };
45212 
45213 struct io_tctx_exit {
45214 	struct callback_head task_work;
45215 	struct completion completion;
45216 	struct io_ring_ctx *ctx;
45217 };
45218 
45219 struct io_task_cancel {
45220 	struct task_struct *task;
45221 	bool all;
45222 };
45223 
45224 struct creds;
45225 
45226 enum {
45227 	IO_WQ_BOUND = 0,
45228 	IO_WQ_UNBOUND = 1,
45229 };
45230 
45231 typedef bool work_cancel_fn(struct io_wq_work *, void *);
45232 
45233 enum {
45234 	IO_WORKER_F_UP = 1,
45235 	IO_WORKER_F_RUNNING = 2,
45236 	IO_WORKER_F_FREE = 4,
45237 	IO_WORKER_F_BOUND = 8,
45238 };
45239 
45240 enum {
45241 	IO_WQ_BIT_EXIT = 0,
45242 };
45243 
45244 enum {
45245 	IO_ACCT_STALLED_BIT = 0,
45246 };
45247 
45248 struct io_wqe;
45249 
45250 struct io_worker {
45251 	refcount_t ref;
45252 	unsigned int flags;
45253 	struct hlist_nulls_node nulls_node;
45254 	struct list_head all_list;
45255 	struct task_struct *task;
45256 	struct io_wqe *wqe;
45257 	struct io_wq_work *cur_work;
45258 	spinlock_t lock;
45259 	struct completion ref_done;
45260 	long unsigned int create_state;
45261 	struct callback_head create_work;
45262 	int create_index;
45263 	union {
45264 		struct callback_head rcu;
45265 		struct work_struct work;
45266 	};
45267 };
45268 
45269 struct io_wqe_acct {
45270 	unsigned int nr_workers;
45271 	unsigned int max_workers;
45272 	int index;
45273 	atomic_t nr_running;
45274 	struct io_wq_work_list work_list;
45275 	long unsigned int flags;
45276 };
45277 
45278 struct io_wq___2;
45279 
45280 struct io_wqe {
45281 	raw_spinlock_t lock;
45282 	struct io_wqe_acct acct[2];
45283 	int node;
45284 	struct hlist_nulls_head free_list;
45285 	struct list_head all_list;
45286 	struct wait_queue_entry wait;
45287 	struct io_wq___2 *wq;
45288 	struct io_wq_work *hash_tail[64];
45289 	cpumask_var_t cpu_mask;
45290 };
45291 
45292 enum {
45293 	IO_WQ_ACCT_BOUND = 0,
45294 	IO_WQ_ACCT_UNBOUND = 1,
45295 	IO_WQ_ACCT_NR = 2,
45296 };
45297 
45298 struct io_wq___2 {
45299 	long unsigned int state;
45300 	free_work_fn *free_work;
45301 	io_wq_work_fn *do_work;
45302 	struct io_wq_hash *hash;
45303 	atomic_t worker_refs;
45304 	struct completion worker_done;
45305 	struct hlist_node cpuhp_node;
45306 	struct task_struct *task;
45307 	struct io_wqe *wqes[0];
45308 };
45309 
45310 struct io_cb_cancel_data {
45311 	work_cancel_fn *fn;
45312 	void *data;
45313 	int nr_running;
45314 	int nr_pending;
45315 	bool cancel_all;
45316 };
45317 
45318 struct online_data {
45319 	unsigned int cpu;
45320 	bool online;
45321 };
45322 
45323 struct flock64 {
45324 	short int l_type;
45325 	short int l_whence;
45326 	__kernel_loff_t l_start;
45327 	__kernel_loff_t l_len;
45328 	__kernel_pid_t l_pid;
45329 };
45330 
45331 struct trace_event_raw_locks_get_lock_context {
45332 	struct trace_entry ent;
45333 	long unsigned int i_ino;
45334 	dev_t s_dev;
45335 	unsigned char type;
45336 	struct file_lock_context *ctx;
45337 	char __data[0];
45338 };
45339 
45340 struct trace_event_raw_filelock_lock {
45341 	struct trace_entry ent;
45342 	struct file_lock *fl;
45343 	long unsigned int i_ino;
45344 	dev_t s_dev;
45345 	struct file_lock *fl_blocker;
45346 	fl_owner_t fl_owner;
45347 	unsigned int fl_pid;
45348 	unsigned int fl_flags;
45349 	unsigned char fl_type;
45350 	loff_t fl_start;
45351 	loff_t fl_end;
45352 	int ret;
45353 	char __data[0];
45354 };
45355 
45356 struct trace_event_raw_filelock_lease {
45357 	struct trace_entry ent;
45358 	struct file_lock *fl;
45359 	long unsigned int i_ino;
45360 	dev_t s_dev;
45361 	struct file_lock *fl_blocker;
45362 	fl_owner_t fl_owner;
45363 	unsigned int fl_flags;
45364 	unsigned char fl_type;
45365 	long unsigned int fl_break_time;
45366 	long unsigned int fl_downgrade_time;
45367 	char __data[0];
45368 };
45369 
45370 struct trace_event_raw_generic_add_lease {
45371 	struct trace_entry ent;
45372 	long unsigned int i_ino;
45373 	int wcount;
45374 	int rcount;
45375 	int icount;
45376 	dev_t s_dev;
45377 	fl_owner_t fl_owner;
45378 	unsigned int fl_flags;
45379 	unsigned char fl_type;
45380 	char __data[0];
45381 };
45382 
45383 struct trace_event_raw_leases_conflict {
45384 	struct trace_entry ent;
45385 	void *lease;
45386 	void *breaker;
45387 	unsigned int l_fl_flags;
45388 	unsigned int b_fl_flags;
45389 	unsigned char l_fl_type;
45390 	unsigned char b_fl_type;
45391 	bool conflict;
45392 	char __data[0];
45393 };
45394 
45395 struct trace_event_data_offsets_locks_get_lock_context {};
45396 
45397 struct trace_event_data_offsets_filelock_lock {};
45398 
45399 struct trace_event_data_offsets_filelock_lease {};
45400 
45401 struct trace_event_data_offsets_generic_add_lease {};
45402 
45403 struct trace_event_data_offsets_leases_conflict {};
45404 
45405 typedef void (*btf_trace_locks_get_lock_context)(void *, struct inode *, int, struct file_lock_context *);
45406 
45407 typedef void (*btf_trace_posix_lock_inode)(void *, struct inode *, struct file_lock *, int);
45408 
45409 typedef void (*btf_trace_fcntl_setlk)(void *, struct inode *, struct file_lock *, int);
45410 
45411 typedef void (*btf_trace_locks_remove_posix)(void *, struct inode *, struct file_lock *, int);
45412 
45413 typedef void (*btf_trace_flock_lock_inode)(void *, struct inode *, struct file_lock *, int);
45414 
45415 typedef void (*btf_trace_break_lease_noblock)(void *, struct inode *, struct file_lock *);
45416 
45417 typedef void (*btf_trace_break_lease_block)(void *, struct inode *, struct file_lock *);
45418 
45419 typedef void (*btf_trace_break_lease_unblock)(void *, struct inode *, struct file_lock *);
45420 
45421 typedef void (*btf_trace_generic_delete_lease)(void *, struct inode *, struct file_lock *);
45422 
45423 typedef void (*btf_trace_time_out_leases)(void *, struct inode *, struct file_lock *);
45424 
45425 typedef void (*btf_trace_generic_add_lease)(void *, struct inode *, struct file_lock *);
45426 
45427 typedef void (*btf_trace_leases_conflict)(void *, bool, struct file_lock *, struct file_lock *);
45428 
45429 struct file_lock_list_struct {
45430 	spinlock_t lock;
45431 	struct hlist_head hlist;
45432 };
45433 
45434 struct locks_iterator {
45435 	int li_cpu;
45436 	loff_t li_pos;
45437 };
45438 
45439 enum {
45440 	VERBOSE_STATUS = 1,
45441 };
45442 
45443 enum {
45444 	Enabled = 0,
45445 	Magic = 1,
45446 };
45447 
45448 typedef struct {
45449 	struct list_head list;
45450 	long unsigned int flags;
45451 	int offset;
45452 	int size;
45453 	char *magic;
45454 	char *mask;
45455 	const char *interpreter;
45456 	char *name;
45457 	struct dentry *dentry;
45458 	struct file *interp_file;
45459 } Node;
45460 
45461 typedef unsigned int __kernel_uid_t;
45462 
45463 typedef unsigned int __kernel_gid_t;
45464 
45465 struct elf64_phdr {
45466 	Elf64_Word p_type;
45467 	Elf64_Word p_flags;
45468 	Elf64_Off p_offset;
45469 	Elf64_Addr p_vaddr;
45470 	Elf64_Addr p_paddr;
45471 	Elf64_Xword p_filesz;
45472 	Elf64_Xword p_memsz;
45473 	Elf64_Xword p_align;
45474 };
45475 
45476 struct elf_prpsinfo {
45477 	char pr_state;
45478 	char pr_sname;
45479 	char pr_zomb;
45480 	char pr_nice;
45481 	long unsigned int pr_flag;
45482 	__kernel_uid_t pr_uid;
45483 	__kernel_gid_t pr_gid;
45484 	pid_t pr_pid;
45485 	pid_t pr_ppid;
45486 	pid_t pr_pgrp;
45487 	pid_t pr_sid;
45488 	char pr_fname[16];
45489 	char pr_psargs[80];
45490 };
45491 
45492 struct core_vma_metadata {
45493 	long unsigned int start;
45494 	long unsigned int end;
45495 	long unsigned int flags;
45496 	long unsigned int dump_size;
45497 };
45498 
45499 struct arch_elf_state {};
45500 
45501 struct memelfnote {
45502 	const char *name;
45503 	int type;
45504 	unsigned int datasz;
45505 	void *data;
45506 };
45507 
45508 struct elf_thread_core_info {
45509 	struct elf_thread_core_info *next;
45510 	struct task_struct *task;
45511 	struct elf_prstatus prstatus;
45512 	struct memelfnote notes[0];
45513 };
45514 
45515 struct elf_note_info {
45516 	struct elf_thread_core_info *thread;
45517 	struct memelfnote psinfo;
45518 	struct memelfnote signote;
45519 	struct memelfnote auxv;
45520 	struct memelfnote files;
45521 	siginfo_t csigdata;
45522 	size_t size;
45523 	int thread_notes;
45524 };
45525 
45526 struct mb_cache_entry {
45527 	struct list_head e_list;
45528 	struct hlist_bl_node e_hash_list;
45529 	atomic_t e_refcnt;
45530 	u32 e_key;
45531 	u32 e_referenced: 1;
45532 	u32 e_reusable: 1;
45533 	u64 e_value;
45534 };
45535 
45536 struct mb_cache {
45537 	struct hlist_bl_head *c_hash;
45538 	int c_bucket_bits;
45539 	long unsigned int c_max_entries;
45540 	spinlock_t c_list_lock;
45541 	struct list_head c_list;
45542 	long unsigned int c_entry_count;
45543 	struct shrinker c_shrink;
45544 	struct work_struct c_shrink_work;
45545 };
45546 
45547 struct posix_acl_xattr_entry {
45548 	__le16 e_tag;
45549 	__le16 e_perm;
45550 	__le32 e_id;
45551 };
45552 
45553 struct posix_acl_xattr_header {
45554 	__le32 a_version;
45555 };
45556 
45557 struct core_name {
45558 	char *corename;
45559 	int used;
45560 	int size;
45561 };
45562 
45563 struct iomap_iter {
45564 	struct inode *inode;
45565 	loff_t pos;
45566 	u64 len;
45567 	s64 processed;
45568 	unsigned int flags;
45569 	struct iomap___2 iomap;
45570 	struct iomap___2 srcmap;
45571 };
45572 
45573 struct trace_event_raw_iomap_readpage_class {
45574 	struct trace_entry ent;
45575 	dev_t dev;
45576 	u64 ino;
45577 	int nr_pages;
45578 	char __data[0];
45579 };
45580 
45581 struct trace_event_raw_iomap_range_class {
45582 	struct trace_entry ent;
45583 	dev_t dev;
45584 	u64 ino;
45585 	loff_t size;
45586 	loff_t offset;
45587 	u64 length;
45588 	char __data[0];
45589 };
45590 
45591 struct trace_event_raw_iomap_class {
45592 	struct trace_entry ent;
45593 	dev_t dev;
45594 	u64 ino;
45595 	u64 addr;
45596 	loff_t offset;
45597 	u64 length;
45598 	u16 type;
45599 	u16 flags;
45600 	dev_t bdev;
45601 	char __data[0];
45602 };
45603 
45604 struct trace_event_raw_iomap_iter {
45605 	struct trace_entry ent;
45606 	dev_t dev;
45607 	u64 ino;
45608 	loff_t pos;
45609 	u64 length;
45610 	unsigned int flags;
45611 	const void *ops;
45612 	long unsigned int caller;
45613 	char __data[0];
45614 };
45615 
45616 struct trace_event_data_offsets_iomap_readpage_class {};
45617 
45618 struct trace_event_data_offsets_iomap_range_class {};
45619 
45620 struct trace_event_data_offsets_iomap_class {};
45621 
45622 struct trace_event_data_offsets_iomap_iter {};
45623 
45624 typedef void (*btf_trace_iomap_readpage)(void *, struct inode *, int);
45625 
45626 typedef void (*btf_trace_iomap_readahead)(void *, struct inode *, int);
45627 
45628 typedef void (*btf_trace_iomap_writepage)(void *, struct inode *, loff_t, u64);
45629 
45630 typedef void (*btf_trace_iomap_releasepage)(void *, struct inode *, loff_t, u64);
45631 
45632 typedef void (*btf_trace_iomap_invalidatepage)(void *, struct inode *, loff_t, u64);
45633 
45634 typedef void (*btf_trace_iomap_dio_invalidate_fail)(void *, struct inode *, loff_t, u64);
45635 
45636 typedef void (*btf_trace_iomap_iter_dstmap)(void *, struct inode *, struct iomap___2 *);
45637 
45638 typedef void (*btf_trace_iomap_iter_srcmap)(void *, struct inode *, struct iomap___2 *);
45639 
45640 typedef void (*btf_trace_iomap_iter)(void *, struct iomap_iter *, const void *, long unsigned int);
45641 
45642 struct iomap_ops {
45643 	int (*iomap_begin)(struct inode *, loff_t, loff_t, unsigned int, struct iomap___2 *, struct iomap___2 *);
45644 	int (*iomap_end)(struct inode *, loff_t, loff_t, ssize_t, unsigned int, struct iomap___2 *);
45645 };
45646 
45647 struct folio_iter {
45648 	struct folio *folio;
45649 	size_t offset;
45650 	size_t length;
45651 	size_t _seg_count;
45652 	int _i;
45653 };
45654 
45655 enum {
45656 	BIOSET_NEED_BVECS = 1,
45657 	BIOSET_NEED_RESCUER = 2,
45658 	BIOSET_PERCPU_CACHE = 4,
45659 };
45660 
45661 struct iomap_ioend {
45662 	struct list_head io_list;
45663 	u16 io_type;
45664 	u16 io_flags;
45665 	struct inode *io_inode;
45666 	size_t io_size;
45667 	loff_t io_offset;
45668 	struct bio *io_bio;
45669 	struct bio io_inline_bio;
45670 };
45671 
45672 struct iomap_writepage_ctx;
45673 
45674 struct iomap_writeback_ops {
45675 	int (*map_blocks)(struct iomap_writepage_ctx *, struct inode *, loff_t);
45676 	int (*prepare_ioend)(struct iomap_ioend *, int);
45677 	void (*discard_folio)(struct folio *, loff_t);
45678 };
45679 
45680 struct iomap_writepage_ctx {
45681 	struct iomap___2 iomap;
45682 	struct iomap_ioend *ioend;
45683 	const struct iomap_writeback_ops *ops;
45684 };
45685 
45686 struct iomap_page {
45687 	atomic_t read_bytes_pending;
45688 	atomic_t write_bytes_pending;
45689 	spinlock_t uptodate_lock;
45690 	long unsigned int uptodate[0];
45691 };
45692 
45693 struct iomap_readpage_ctx {
45694 	struct folio *cur_folio;
45695 	bool cur_folio_in_bio;
45696 	struct bio *bio;
45697 	struct readahead_control *rac;
45698 };
45699 
45700 struct iomap_dio_ops {
45701 	int (*end_io)(struct kiocb *, ssize_t, int, unsigned int);
45702 	void (*submit_io)(const struct iomap_iter *, struct bio *, loff_t);
45703 };
45704 
45705 struct iomap_dio {
45706 	struct kiocb *iocb;
45707 	const struct iomap_dio_ops *dops;
45708 	loff_t i_size;
45709 	loff_t size;
45710 	atomic_t ref;
45711 	unsigned int flags;
45712 	int error;
45713 	size_t done_before;
45714 	bool wait_for_completion;
45715 	union {
45716 		struct {
45717 			struct iov_iter *iter;
45718 			struct task_struct *waiter;
45719 			struct bio *poll_bio;
45720 		} submit;
45721 		struct {
45722 			struct work_struct work;
45723 		} aio;
45724 	};
45725 };
45726 
45727 struct iomap_swapfile_info {
45728 	struct iomap___2 iomap;
45729 	struct swap_info_struct *sis;
45730 	uint64_t lowest_ppage;
45731 	uint64_t highest_ppage;
45732 	long unsigned int nr_pages;
45733 	int nr_extents;
45734 	struct file *file;
45735 };
45736 
45737 struct proc_maps_private {
45738 	struct inode *inode;
45739 	struct task_struct *task;
45740 	struct mm_struct *mm;
45741 	struct vm_area_struct *tail_vma;
45742 	struct mempolicy *task_mempolicy;
45743 };
45744 
45745 struct mem_size_stats {
45746 	long unsigned int resident;
45747 	long unsigned int shared_clean;
45748 	long unsigned int shared_dirty;
45749 	long unsigned int private_clean;
45750 	long unsigned int private_dirty;
45751 	long unsigned int referenced;
45752 	long unsigned int anonymous;
45753 	long unsigned int lazyfree;
45754 	long unsigned int anonymous_thp;
45755 	long unsigned int shmem_thp;
45756 	long unsigned int file_thp;
45757 	long unsigned int swap;
45758 	long unsigned int shared_hugetlb;
45759 	long unsigned int private_hugetlb;
45760 	u64 pss;
45761 	u64 pss_anon;
45762 	u64 pss_file;
45763 	u64 pss_shmem;
45764 	u64 pss_locked;
45765 	u64 swap_pss;
45766 };
45767 
45768 enum clear_refs_types {
45769 	CLEAR_REFS_ALL = 1,
45770 	CLEAR_REFS_ANON = 2,
45771 	CLEAR_REFS_MAPPED = 3,
45772 	CLEAR_REFS_SOFT_DIRTY = 4,
45773 	CLEAR_REFS_MM_HIWATER_RSS = 5,
45774 	CLEAR_REFS_LAST = 6,
45775 };
45776 
45777 struct clear_refs_private {
45778 	enum clear_refs_types type;
45779 };
45780 
45781 typedef struct {
45782 	u64 pme;
45783 } pagemap_entry_t;
45784 
45785 struct pagemapread {
45786 	int pos;
45787 	int len;
45788 	pagemap_entry_t *buffer;
45789 	bool show_pfn;
45790 };
45791 
45792 struct numa_maps {
45793 	long unsigned int pages;
45794 	long unsigned int anon;
45795 	long unsigned int active;
45796 	long unsigned int writeback;
45797 	long unsigned int mapcount_max;
45798 	long unsigned int dirty;
45799 	long unsigned int swapcache;
45800 	long unsigned int node[64];
45801 };
45802 
45803 struct numa_maps_private {
45804 	struct proc_maps_private proc_maps;
45805 	struct numa_maps md;
45806 };
45807 
45808 struct pde_opener {
45809 	struct list_head lh;
45810 	struct file *file;
45811 	bool closing;
45812 	struct completion *c;
45813 };
45814 
45815 enum {
45816 	BIAS = 2147483648,
45817 };
45818 
45819 struct proc_fs_context {
45820 	struct pid_namespace *pid_ns;
45821 	unsigned int mask;
45822 	enum proc_hidepid hidepid;
45823 	int gid;
45824 	enum proc_pidonly pidonly;
45825 };
45826 
45827 enum proc_param {
45828 	Opt_gid___2 = 0,
45829 	Opt_hidepid = 1,
45830 	Opt_subset = 2,
45831 };
45832 
45833 struct genradix_root;
45834 
45835 struct __genradix {
45836 	struct genradix_root *root;
45837 };
45838 
45839 struct syscall_info {
45840 	__u64 sp;
45841 	struct seccomp_data data;
45842 };
45843 
45844 enum resctrl_conf_type {
45845 	CDP_NONE = 0,
45846 	CDP_CODE = 1,
45847 	CDP_DATA = 2,
45848 };
45849 
45850 typedef struct dentry *instantiate_t(struct dentry *, struct task_struct *, const void *);
45851 
45852 struct pid_entry {
45853 	const char *name;
45854 	unsigned int len;
45855 	umode_t mode;
45856 	const struct inode_operations *iop;
45857 	const struct file_operations *fop;
45858 	union proc_op op;
45859 };
45860 
45861 struct limit_names {
45862 	const char *name;
45863 	const char *unit;
45864 };
45865 
45866 struct map_files_info {
45867 	long unsigned int start;
45868 	long unsigned int end;
45869 	fmode_t mode;
45870 };
45871 
45872 struct tgid_iter {
45873 	unsigned int tgid;
45874 	struct task_struct *task;
45875 };
45876 
45877 struct fd_data {
45878 	fmode_t mode;
45879 	unsigned int fd;
45880 };
45881 
45882 struct sysctl_alias {
45883 	const char *kernel_param;
45884 	const char *sysctl_param;
45885 };
45886 
45887 struct seq_net_private {
45888 	struct net *net;
45889 	netns_tracker ns_tracker;
45890 };
45891 
45892 struct bpf_iter_aux_info___2;
45893 
45894 struct kernfs_iattrs {
45895 	kuid_t ia_uid;
45896 	kgid_t ia_gid;
45897 	struct timespec64 ia_atime;
45898 	struct timespec64 ia_mtime;
45899 	struct timespec64 ia_ctime;
45900 	struct simple_xattrs xattrs;
45901 	atomic_t nr_user_xattrs;
45902 	atomic_t user_xattr_size;
45903 };
45904 
45905 struct kernfs_super_info {
45906 	struct super_block *sb;
45907 	struct kernfs_root *root;
45908 	const void *ns;
45909 	struct list_head node;
45910 };
45911 
45912 enum kernfs_node_flag {
45913 	KERNFS_ACTIVATED = 16,
45914 	KERNFS_NS = 32,
45915 	KERNFS_HAS_SEQ_SHOW = 64,
45916 	KERNFS_HAS_MMAP = 128,
45917 	KERNFS_LOCKDEP = 256,
45918 	KERNFS_SUICIDAL = 1024,
45919 	KERNFS_SUICIDED = 2048,
45920 	KERNFS_EMPTY_DIR = 4096,
45921 	KERNFS_HAS_RELEASE = 8192,
45922 };
45923 
45924 struct kernfs_open_node {
45925 	atomic_t refcnt;
45926 	atomic_t event;
45927 	wait_queue_head_t poll;
45928 	struct list_head files;
45929 };
45930 
45931 struct pts_mount_opts {
45932 	int setuid;
45933 	int setgid;
45934 	kuid_t uid;
45935 	kgid_t gid;
45936 	umode_t mode;
45937 	umode_t ptmxmode;
45938 	int reserve;
45939 	int max;
45940 };
45941 
45942 enum {
45943 	Opt_uid___2 = 0,
45944 	Opt_gid___3 = 1,
45945 	Opt_mode___2 = 2,
45946 	Opt_ptmxmode = 3,
45947 	Opt_newinstance = 4,
45948 	Opt_max = 5,
45949 	Opt_err = 6,
45950 };
45951 
45952 struct pts_fs_info {
45953 	struct ida allocated_ptys;
45954 	struct pts_mount_opts mount_opts;
45955 	struct super_block *sb;
45956 	struct dentry *ptmx_dentry;
45957 };
45958 
45959 enum netfs_read_source {
45960 	NETFS_FILL_WITH_ZEROES = 0,
45961 	NETFS_DOWNLOAD_FROM_SERVER = 1,
45962 	NETFS_READ_FROM_CACHE = 2,
45963 	NETFS_INVALID_READ = 3,
45964 };
45965 
45966 typedef void (*netfs_io_terminated_t)(void *, ssize_t, bool);
45967 
45968 struct netfs_cache_ops;
45969 
45970 struct netfs_cache_resources {
45971 	const struct netfs_cache_ops *ops;
45972 	void *cache_priv;
45973 	void *cache_priv2;
45974 	unsigned int debug_id;
45975 	unsigned int inval_counter;
45976 };
45977 
45978 enum netfs_read_from_hole {
45979 	NETFS_READ_HOLE_IGNORE = 0,
45980 	NETFS_READ_HOLE_CLEAR = 1,
45981 	NETFS_READ_HOLE_FAIL = 2,
45982 };
45983 
45984 struct netfs_read_subrequest;
45985 
45986 struct netfs_cache_ops {
45987 	void (*end_operation)(struct netfs_cache_resources *);
45988 	int (*read)(struct netfs_cache_resources *, loff_t, struct iov_iter *, enum netfs_read_from_hole, netfs_io_terminated_t, void *);
45989 	int (*write)(struct netfs_cache_resources *, loff_t, struct iov_iter *, netfs_io_terminated_t, void *);
45990 	void (*expand_readahead)(struct netfs_cache_resources *, loff_t *, size_t *, loff_t);
45991 	enum netfs_read_source (*prepare_read)(struct netfs_read_subrequest *, loff_t);
45992 	int (*prepare_write)(struct netfs_cache_resources *, loff_t *, size_t *, loff_t, bool);
45993 };
45994 
45995 struct netfs_read_request;
45996 
45997 struct netfs_read_subrequest {
45998 	struct netfs_read_request *rreq;
45999 	struct list_head rreq_link;
46000 	loff_t start;
46001 	size_t len;
46002 	size_t transferred;
46003 	refcount_t usage;
46004 	short int error;
46005 	short unsigned int debug_index;
46006 	enum netfs_read_source source;
46007 	long unsigned int flags;
46008 };
46009 
46010 struct netfs_read_request_ops;
46011 
46012 struct netfs_read_request {
46013 	struct work_struct work;
46014 	struct inode *inode;
46015 	struct address_space *mapping;
46016 	struct netfs_cache_resources cache_resources;
46017 	struct list_head subrequests;
46018 	void *netfs_priv;
46019 	unsigned int debug_id;
46020 	atomic_t nr_rd_ops;
46021 	atomic_t nr_wr_ops;
46022 	size_t submitted;
46023 	size_t len;
46024 	short int error;
46025 	loff_t i_size;
46026 	loff_t start;
46027 	long unsigned int no_unlock_folio;
46028 	refcount_t usage;
46029 	long unsigned int flags;
46030 	const struct netfs_read_request_ops *netfs_ops;
46031 };
46032 
46033 struct netfs_read_request_ops {
46034 	bool (*is_cache_enabled)(struct inode *);
46035 	void (*init_rreq)(struct netfs_read_request *, struct file *);
46036 	int (*begin_cache_operation)(struct netfs_read_request *);
46037 	void (*expand_readahead)(struct netfs_read_request *);
46038 	bool (*clamp_length)(struct netfs_read_subrequest *);
46039 	void (*issue_op)(struct netfs_read_subrequest *);
46040 	bool (*is_still_valid)(struct netfs_read_request *);
46041 	int (*check_write_begin)(struct file *, loff_t, unsigned int, struct folio *, void **);
46042 	void (*done)(struct netfs_read_request *);
46043 	void (*cleanup)(struct address_space *, void *);
46044 };
46045 
46046 enum netfs_read_trace {
46047 	netfs_read_trace_expanded = 0,
46048 	netfs_read_trace_readahead = 1,
46049 	netfs_read_trace_readpage = 2,
46050 	netfs_read_trace_write_begin = 3,
46051 };
46052 
46053 enum netfs_rreq_trace {
46054 	netfs_rreq_trace_assess = 0,
46055 	netfs_rreq_trace_done = 1,
46056 	netfs_rreq_trace_free = 2,
46057 	netfs_rreq_trace_resubmit = 3,
46058 	netfs_rreq_trace_unlock = 4,
46059 	netfs_rreq_trace_unmark = 5,
46060 	netfs_rreq_trace_write = 6,
46061 };
46062 
46063 enum netfs_sreq_trace {
46064 	netfs_sreq_trace_download_instead = 0,
46065 	netfs_sreq_trace_free = 1,
46066 	netfs_sreq_trace_prepare = 2,
46067 	netfs_sreq_trace_resubmit_short = 3,
46068 	netfs_sreq_trace_submit = 4,
46069 	netfs_sreq_trace_terminated = 5,
46070 	netfs_sreq_trace_write = 6,
46071 	netfs_sreq_trace_write_skip = 7,
46072 	netfs_sreq_trace_write_term = 8,
46073 };
46074 
46075 enum netfs_failure {
46076 	netfs_fail_check_write_begin = 0,
46077 	netfs_fail_copy_to_cache = 1,
46078 	netfs_fail_read = 2,
46079 	netfs_fail_short_readpage = 3,
46080 	netfs_fail_short_write_begin = 4,
46081 	netfs_fail_prepare_write = 5,
46082 };
46083 
46084 struct trace_event_raw_netfs_read {
46085 	struct trace_entry ent;
46086 	unsigned int rreq;
46087 	unsigned int cookie;
46088 	loff_t start;
46089 	size_t len;
46090 	enum netfs_read_trace what;
46091 	unsigned int netfs_inode;
46092 	char __data[0];
46093 };
46094 
46095 struct trace_event_raw_netfs_rreq {
46096 	struct trace_entry ent;
46097 	unsigned int rreq;
46098 	short unsigned int flags;
46099 	enum netfs_rreq_trace what;
46100 	char __data[0];
46101 };
46102 
46103 struct trace_event_raw_netfs_sreq {
46104 	struct trace_entry ent;
46105 	unsigned int rreq;
46106 	short unsigned int index;
46107 	short int error;
46108 	short unsigned int flags;
46109 	enum netfs_read_source source;
46110 	enum netfs_sreq_trace what;
46111 	size_t len;
46112 	size_t transferred;
46113 	loff_t start;
46114 	char __data[0];
46115 };
46116 
46117 struct trace_event_raw_netfs_failure {
46118 	struct trace_entry ent;
46119 	unsigned int rreq;
46120 	short unsigned int index;
46121 	short int error;
46122 	short unsigned int flags;
46123 	enum netfs_read_source source;
46124 	enum netfs_failure what;
46125 	size_t len;
46126 	size_t transferred;
46127 	loff_t start;
46128 	char __data[0];
46129 };
46130 
46131 struct trace_event_data_offsets_netfs_read {};
46132 
46133 struct trace_event_data_offsets_netfs_rreq {};
46134 
46135 struct trace_event_data_offsets_netfs_sreq {};
46136 
46137 struct trace_event_data_offsets_netfs_failure {};
46138 
46139 typedef void (*btf_trace_netfs_read)(void *, struct netfs_read_request *, loff_t, size_t, enum netfs_read_trace);
46140 
46141 typedef void (*btf_trace_netfs_rreq)(void *, struct netfs_read_request *, enum netfs_rreq_trace);
46142 
46143 typedef void (*btf_trace_netfs_sreq)(void *, struct netfs_read_subrequest *, enum netfs_sreq_trace);
46144 
46145 typedef void (*btf_trace_netfs_failure)(void *, struct netfs_read_request *, struct netfs_read_subrequest *, int, enum netfs_failure);
46146 
46147 typedef unsigned int tid_t;
46148 
46149 struct transaction_chp_stats_s {
46150 	long unsigned int cs_chp_time;
46151 	__u32 cs_forced_to_close;
46152 	__u32 cs_written;
46153 	__u32 cs_dropped;
46154 };
46155 
46156 struct journal_s;
46157 
46158 typedef struct journal_s journal_t;
46159 
46160 struct journal_head;
46161 
46162 struct transaction_s;
46163 
46164 typedef struct transaction_s transaction_t;
46165 
46166 struct transaction_s {
46167 	journal_t *t_journal;
46168 	tid_t t_tid;
46169 	enum {
46170 		T_RUNNING = 0,
46171 		T_LOCKED = 1,
46172 		T_SWITCH = 2,
46173 		T_FLUSH = 3,
46174 		T_COMMIT = 4,
46175 		T_COMMIT_DFLUSH = 5,
46176 		T_COMMIT_JFLUSH = 6,
46177 		T_COMMIT_CALLBACK = 7,
46178 		T_FINISHED = 8,
46179 	} t_state;
46180 	long unsigned int t_log_start;
46181 	int t_nr_buffers;
46182 	struct journal_head *t_reserved_list;
46183 	struct journal_head *t_buffers;
46184 	struct journal_head *t_forget;
46185 	struct journal_head *t_checkpoint_list;
46186 	struct journal_head *t_checkpoint_io_list;
46187 	struct journal_head *t_shadow_list;
46188 	struct list_head t_inode_list;
46189 	spinlock_t t_handle_lock;
46190 	long unsigned int t_max_wait;
46191 	long unsigned int t_start;
46192 	long unsigned int t_requested;
46193 	struct transaction_chp_stats_s t_chp_stats;
46194 	atomic_t t_updates;
46195 	atomic_t t_outstanding_credits;
46196 	atomic_t t_outstanding_revokes;
46197 	atomic_t t_handle_count;
46198 	transaction_t *t_cpnext;
46199 	transaction_t *t_cpprev;
46200 	long unsigned int t_expires;
46201 	ktime_t t_start_time;
46202 	unsigned int t_synchronous_commit: 1;
46203 	int t_need_data_flush;
46204 	struct list_head t_private_list;
46205 };
46206 
46207 struct jbd2_buffer_trigger_type;
46208 
46209 struct journal_head {
46210 	struct buffer_head *b_bh;
46211 	spinlock_t b_state_lock;
46212 	int b_jcount;
46213 	unsigned int b_jlist;
46214 	unsigned int b_modified;
46215 	char *b_frozen_data;
46216 	char *b_committed_data;
46217 	transaction_t *b_transaction;
46218 	transaction_t *b_next_transaction;
46219 	struct journal_head *b_tnext;
46220 	struct journal_head *b_tprev;
46221 	transaction_t *b_cp_transaction;
46222 	struct journal_head *b_cpnext;
46223 	struct journal_head *b_cpprev;
46224 	struct jbd2_buffer_trigger_type *b_triggers;
46225 	struct jbd2_buffer_trigger_type *b_frozen_triggers;
46226 };
46227 
46228 struct jbd2_buffer_trigger_type {
46229 	void (*t_frozen)(struct jbd2_buffer_trigger_type *, struct buffer_head *, void *, size_t);
46230 	void (*t_abort)(struct jbd2_buffer_trigger_type *, struct buffer_head *);
46231 };
46232 
46233 struct crypto_alg;
46234 
46235 struct crypto_tfm {
46236 	u32 crt_flags;
46237 	int node;
46238 	void (*exit)(struct crypto_tfm *);
46239 	struct crypto_alg *__crt_alg;
46240 	void *__crt_ctx[0];
46241 };
46242 
46243 struct cipher_alg {
46244 	unsigned int cia_min_keysize;
46245 	unsigned int cia_max_keysize;
46246 	int (*cia_setkey)(struct crypto_tfm *, const u8 *, unsigned int);
46247 	void (*cia_encrypt)(struct crypto_tfm *, u8 *, const u8 *);
46248 	void (*cia_decrypt)(struct crypto_tfm *, u8 *, const u8 *);
46249 };
46250 
46251 struct compress_alg {
46252 	int (*coa_compress)(struct crypto_tfm *, const u8 *, unsigned int, u8 *, unsigned int *);
46253 	int (*coa_decompress)(struct crypto_tfm *, const u8 *, unsigned int, u8 *, unsigned int *);
46254 };
46255 
46256 struct crypto_type;
46257 
46258 struct crypto_alg {
46259 	struct list_head cra_list;
46260 	struct list_head cra_users;
46261 	u32 cra_flags;
46262 	unsigned int cra_blocksize;
46263 	unsigned int cra_ctxsize;
46264 	unsigned int cra_alignmask;
46265 	int cra_priority;
46266 	refcount_t cra_refcnt;
46267 	char cra_name[128];
46268 	char cra_driver_name[128];
46269 	const struct crypto_type *cra_type;
46270 	union {
46271 		struct cipher_alg cipher;
46272 		struct compress_alg compress;
46273 	} cra_u;
46274 	int (*cra_init)(struct crypto_tfm *);
46275 	void (*cra_exit)(struct crypto_tfm *);
46276 	void (*cra_destroy)(struct crypto_alg *);
46277 	struct module *cra_module;
46278 };
46279 
46280 struct crypto_instance;
46281 
46282 struct crypto_type {
46283 	unsigned int (*ctxsize)(struct crypto_alg *, u32, u32);
46284 	unsigned int (*extsize)(struct crypto_alg *);
46285 	int (*init)(struct crypto_tfm *, u32, u32);
46286 	int (*init_tfm)(struct crypto_tfm *);
46287 	void (*show)(struct seq_file *, struct crypto_alg *);
46288 	int (*report)(struct sk_buff *, struct crypto_alg *);
46289 	void (*free)(struct crypto_instance *);
46290 	unsigned int type;
46291 	unsigned int maskclear;
46292 	unsigned int maskset;
46293 	unsigned int tfmsize;
46294 };
46295 
46296 struct crypto_shash {
46297 	unsigned int descsize;
46298 	struct crypto_tfm base;
46299 };
46300 
46301 struct jbd2_journal_handle;
46302 
46303 typedef struct jbd2_journal_handle handle_t;
46304 
46305 struct jbd2_journal_handle {
46306 	union {
46307 		transaction_t *h_transaction;
46308 		journal_t *h_journal;
46309 	};
46310 	handle_t *h_rsv_handle;
46311 	int h_total_credits;
46312 	int h_revoke_credits;
46313 	int h_revoke_credits_requested;
46314 	int h_ref;
46315 	int h_err;
46316 	unsigned int h_sync: 1;
46317 	unsigned int h_jdata: 1;
46318 	unsigned int h_reserved: 1;
46319 	unsigned int h_aborted: 1;
46320 	unsigned int h_type: 8;
46321 	unsigned int h_line_no: 16;
46322 	long unsigned int h_start_jiffies;
46323 	unsigned int h_requested_credits;
46324 	unsigned int saved_alloc_context;
46325 };
46326 
46327 struct transaction_run_stats_s {
46328 	long unsigned int rs_wait;
46329 	long unsigned int rs_request_delay;
46330 	long unsigned int rs_running;
46331 	long unsigned int rs_locked;
46332 	long unsigned int rs_flushing;
46333 	long unsigned int rs_logging;
46334 	__u32 rs_handle_count;
46335 	__u32 rs_blocks;
46336 	__u32 rs_blocks_logged;
46337 };
46338 
46339 struct transaction_stats_s {
46340 	long unsigned int ts_tid;
46341 	long unsigned int ts_requested;
46342 	struct transaction_run_stats_s run;
46343 };
46344 
46345 enum passtype {
46346 	PASS_SCAN = 0,
46347 	PASS_REVOKE = 1,
46348 	PASS_REPLAY = 2,
46349 };
46350 
46351 struct journal_superblock_s;
46352 
46353 typedef struct journal_superblock_s journal_superblock_t;
46354 
46355 struct jbd2_revoke_table_s;
46356 
46357 struct jbd2_inode;
46358 
46359 struct journal_s {
46360 	long unsigned int j_flags;
46361 	long unsigned int j_atomic_flags;
46362 	int j_errno;
46363 	struct mutex j_abort_mutex;
46364 	struct buffer_head *j_sb_buffer;
46365 	journal_superblock_t *j_superblock;
46366 	int j_format_version;
46367 	rwlock_t j_state_lock;
46368 	int j_barrier_count;
46369 	struct mutex j_barrier;
46370 	transaction_t *j_running_transaction;
46371 	transaction_t *j_committing_transaction;
46372 	transaction_t *j_checkpoint_transactions;
46373 	wait_queue_head_t j_wait_transaction_locked;
46374 	wait_queue_head_t j_wait_done_commit;
46375 	wait_queue_head_t j_wait_commit;
46376 	wait_queue_head_t j_wait_updates;
46377 	wait_queue_head_t j_wait_reserved;
46378 	wait_queue_head_t j_fc_wait;
46379 	struct mutex j_checkpoint_mutex;
46380 	struct buffer_head *j_chkpt_bhs[64];
46381 	struct shrinker j_shrinker;
46382 	struct percpu_counter j_checkpoint_jh_count;
46383 	transaction_t *j_shrink_transaction;
46384 	long unsigned int j_head;
46385 	long unsigned int j_tail;
46386 	long unsigned int j_free;
46387 	long unsigned int j_first;
46388 	long unsigned int j_last;
46389 	long unsigned int j_fc_first;
46390 	long unsigned int j_fc_off;
46391 	long unsigned int j_fc_last;
46392 	struct block_device *j_dev;
46393 	int j_blocksize;
46394 	long long unsigned int j_blk_offset;
46395 	char j_devname[56];
46396 	struct block_device *j_fs_dev;
46397 	unsigned int j_total_len;
46398 	atomic_t j_reserved_credits;
46399 	spinlock_t j_list_lock;
46400 	struct inode *j_inode;
46401 	tid_t j_tail_sequence;
46402 	tid_t j_transaction_sequence;
46403 	tid_t j_commit_sequence;
46404 	tid_t j_commit_request;
46405 	__u8 j_uuid[16];
46406 	struct task_struct *j_task;
46407 	int j_max_transaction_buffers;
46408 	int j_revoke_records_per_block;
46409 	long unsigned int j_commit_interval;
46410 	struct timer_list j_commit_timer;
46411 	spinlock_t j_revoke_lock;
46412 	struct jbd2_revoke_table_s *j_revoke;
46413 	struct jbd2_revoke_table_s *j_revoke_table[2];
46414 	struct buffer_head **j_wbuf;
46415 	struct buffer_head **j_fc_wbuf;
46416 	int j_wbufsize;
46417 	int j_fc_wbufsize;
46418 	pid_t j_last_sync_writer;
46419 	u64 j_average_commit_time;
46420 	u32 j_min_batch_time;
46421 	u32 j_max_batch_time;
46422 	void (*j_commit_callback)(journal_t *, transaction_t *);
46423 	int (*j_submit_inode_data_buffers)(struct jbd2_inode *);
46424 	int (*j_finish_inode_data_buffers)(struct jbd2_inode *);
46425 	spinlock_t j_history_lock;
46426 	struct proc_dir_entry *j_proc_entry;
46427 	struct transaction_stats_s j_stats;
46428 	unsigned int j_failed_commit;
46429 	void *j_private;
46430 	struct crypto_shash *j_chksum_driver;
46431 	__u32 j_csum_seed;
46432 	struct lockdep_map j_trans_commit_map;
46433 	void (*j_fc_cleanup_callback)(struct journal_s *, int);
46434 	int (*j_fc_replay_callback)(struct journal_s *, struct buffer_head *, enum passtype, int, tid_t);
46435 };
46436 
46437 struct journal_header_s {
46438 	__be32 h_magic;
46439 	__be32 h_blocktype;
46440 	__be32 h_sequence;
46441 };
46442 
46443 typedef struct journal_header_s journal_header_t;
46444 
46445 struct journal_superblock_s {
46446 	journal_header_t s_header;
46447 	__be32 s_blocksize;
46448 	__be32 s_maxlen;
46449 	__be32 s_first;
46450 	__be32 s_sequence;
46451 	__be32 s_start;
46452 	__be32 s_errno;
46453 	__be32 s_feature_compat;
46454 	__be32 s_feature_incompat;
46455 	__be32 s_feature_ro_compat;
46456 	__u8 s_uuid[16];
46457 	__be32 s_nr_users;
46458 	__be32 s_dynsuper;
46459 	__be32 s_max_transaction;
46460 	__be32 s_max_trans_data;
46461 	__u8 s_checksum_type;
46462 	__u8 s_padding2[3];
46463 	__be32 s_num_fc_blks;
46464 	__u32 s_padding[41];
46465 	__be32 s_checksum;
46466 	__u8 s_users[768];
46467 };
46468 
46469 enum jbd_state_bits {
46470 	BH_JBD = 16,
46471 	BH_JWrite = 17,
46472 	BH_Freed = 18,
46473 	BH_Revoked = 19,
46474 	BH_RevokeValid = 20,
46475 	BH_JBDDirty = 21,
46476 	BH_JournalHead = 22,
46477 	BH_Shadow = 23,
46478 	BH_Verified = 24,
46479 	BH_JBDPrivateStart = 25,
46480 };
46481 
46482 struct jbd2_inode {
46483 	transaction_t *i_transaction;
46484 	transaction_t *i_next_transaction;
46485 	struct list_head i_list;
46486 	struct inode *i_vfs_inode;
46487 	long unsigned int i_flags;
46488 	loff_t i_dirty_start;
46489 	loff_t i_dirty_end;
46490 };
46491 
46492 struct bgl_lock {
46493 	spinlock_t lock;
46494 };
46495 
46496 struct blockgroup_lock {
46497 	struct bgl_lock locks[128];
46498 };
46499 
46500 struct fscrypt_dummy_policy {};
46501 
46502 struct fsverity_operations {
46503 	int (*begin_enable_verity)(struct file *);
46504 	int (*end_enable_verity)(struct file *, const void *, size_t, u64);
46505 	int (*get_verity_descriptor)(struct inode *, void *, size_t);
46506 	struct page * (*read_merkle_tree_page)(struct inode *, long unsigned int, long unsigned int);
46507 	int (*write_merkle_tree_block)(struct inode *, const void *, u64, int);
46508 };
46509 
46510 typedef int ext4_grpblk_t;
46511 
46512 typedef long long unsigned int ext4_fsblk_t;
46513 
46514 typedef __u32 ext4_lblk_t;
46515 
46516 typedef unsigned int ext4_group_t;
46517 
46518 struct ext4_allocation_request {
46519 	struct inode *inode;
46520 	unsigned int len;
46521 	ext4_lblk_t logical;
46522 	ext4_lblk_t lleft;
46523 	ext4_lblk_t lright;
46524 	ext4_fsblk_t goal;
46525 	ext4_fsblk_t pleft;
46526 	ext4_fsblk_t pright;
46527 	unsigned int flags;
46528 };
46529 
46530 struct ext4_system_blocks {
46531 	struct rb_root root;
46532 	struct callback_head rcu;
46533 };
46534 
46535 struct ext4_group_desc {
46536 	__le32 bg_block_bitmap_lo;
46537 	__le32 bg_inode_bitmap_lo;
46538 	__le32 bg_inode_table_lo;
46539 	__le16 bg_free_blocks_count_lo;
46540 	__le16 bg_free_inodes_count_lo;
46541 	__le16 bg_used_dirs_count_lo;
46542 	__le16 bg_flags;
46543 	__le32 bg_exclude_bitmap_lo;
46544 	__le16 bg_block_bitmap_csum_lo;
46545 	__le16 bg_inode_bitmap_csum_lo;
46546 	__le16 bg_itable_unused_lo;
46547 	__le16 bg_checksum;
46548 	__le32 bg_block_bitmap_hi;
46549 	__le32 bg_inode_bitmap_hi;
46550 	__le32 bg_inode_table_hi;
46551 	__le16 bg_free_blocks_count_hi;
46552 	__le16 bg_free_inodes_count_hi;
46553 	__le16 bg_used_dirs_count_hi;
46554 	__le16 bg_itable_unused_hi;
46555 	__le32 bg_exclude_bitmap_hi;
46556 	__le16 bg_block_bitmap_csum_hi;
46557 	__le16 bg_inode_bitmap_csum_hi;
46558 	__u32 bg_reserved;
46559 };
46560 
46561 struct flex_groups {
46562 	atomic64_t free_clusters;
46563 	atomic_t free_inodes;
46564 	atomic_t used_dirs;
46565 };
46566 
46567 struct extent_status {
46568 	struct rb_node rb_node;
46569 	ext4_lblk_t es_lblk;
46570 	ext4_lblk_t es_len;
46571 	ext4_fsblk_t es_pblk;
46572 };
46573 
46574 struct ext4_es_tree {
46575 	struct rb_root root;
46576 	struct extent_status *cache_es;
46577 };
46578 
46579 struct ext4_es_stats {
46580 	long unsigned int es_stats_shrunk;
46581 	struct percpu_counter es_stats_cache_hits;
46582 	struct percpu_counter es_stats_cache_misses;
46583 	u64 es_stats_scan_time;
46584 	u64 es_stats_max_scan_time;
46585 	struct percpu_counter es_stats_all_cnt;
46586 	struct percpu_counter es_stats_shk_cnt;
46587 };
46588 
46589 struct ext4_pending_tree {
46590 	struct rb_root root;
46591 };
46592 
46593 struct ext4_fc_stats {
46594 	unsigned int fc_ineligible_reason_count[10];
46595 	long unsigned int fc_num_commits;
46596 	long unsigned int fc_ineligible_commits;
46597 	long unsigned int fc_failed_commits;
46598 	long unsigned int fc_skipped_commits;
46599 	long unsigned int fc_numblks;
46600 	u64 s_fc_avg_commit_time;
46601 };
46602 
46603 struct ext4_fc_alloc_region {
46604 	ext4_lblk_t lblk;
46605 	ext4_fsblk_t pblk;
46606 	int ino;
46607 	int len;
46608 };
46609 
46610 struct ext4_fc_replay_state {
46611 	int fc_replay_num_tags;
46612 	int fc_replay_expected_off;
46613 	int fc_current_pass;
46614 	int fc_cur_tag;
46615 	int fc_crc;
46616 	struct ext4_fc_alloc_region *fc_regions;
46617 	int fc_regions_size;
46618 	int fc_regions_used;
46619 	int fc_regions_valid;
46620 	int *fc_modified_inodes;
46621 	int fc_modified_inodes_used;
46622 	int fc_modified_inodes_size;
46623 };
46624 
46625 struct ext4_inode_info {
46626 	__le32 i_data[15];
46627 	__u32 i_dtime;
46628 	ext4_fsblk_t i_file_acl;
46629 	ext4_group_t i_block_group;
46630 	ext4_lblk_t i_dir_start_lookup;
46631 	long unsigned int i_flags;
46632 	struct rw_semaphore xattr_sem;
46633 	union {
46634 		struct list_head i_orphan;
46635 		unsigned int i_orphan_idx;
46636 	};
46637 	struct list_head i_fc_list;
46638 	ext4_lblk_t i_fc_lblk_start;
46639 	ext4_lblk_t i_fc_lblk_len;
46640 	atomic_t i_fc_updates;
46641 	wait_queue_head_t i_fc_wait;
46642 	struct mutex i_fc_lock;
46643 	loff_t i_disksize;
46644 	struct rw_semaphore i_data_sem;
46645 	struct inode vfs_inode;
46646 	struct jbd2_inode *jinode;
46647 	spinlock_t i_raw_lock;
46648 	struct timespec64 i_crtime;
46649 	atomic_t i_prealloc_active;
46650 	struct list_head i_prealloc_list;
46651 	spinlock_t i_prealloc_lock;
46652 	struct ext4_es_tree i_es_tree;
46653 	rwlock_t i_es_lock;
46654 	struct list_head i_es_list;
46655 	unsigned int i_es_all_nr;
46656 	unsigned int i_es_shk_nr;
46657 	ext4_lblk_t i_es_shrink_lblk;
46658 	ext4_group_t i_last_alloc_group;
46659 	unsigned int i_reserved_data_blocks;
46660 	struct ext4_pending_tree i_pending_tree;
46661 	__u16 i_extra_isize;
46662 	u16 i_inline_off;
46663 	u16 i_inline_size;
46664 	spinlock_t i_completed_io_lock;
46665 	struct list_head i_rsv_conversion_list;
46666 	struct work_struct i_rsv_conversion_work;
46667 	atomic_t i_unwritten;
46668 	spinlock_t i_block_reservation_lock;
46669 	tid_t i_sync_tid;
46670 	tid_t i_datasync_tid;
46671 	__u32 i_csum_seed;
46672 	kprojid_t i_projid;
46673 };
46674 
46675 struct ext4_super_block {
46676 	__le32 s_inodes_count;
46677 	__le32 s_blocks_count_lo;
46678 	__le32 s_r_blocks_count_lo;
46679 	__le32 s_free_blocks_count_lo;
46680 	__le32 s_free_inodes_count;
46681 	__le32 s_first_data_block;
46682 	__le32 s_log_block_size;
46683 	__le32 s_log_cluster_size;
46684 	__le32 s_blocks_per_group;
46685 	__le32 s_clusters_per_group;
46686 	__le32 s_inodes_per_group;
46687 	__le32 s_mtime;
46688 	__le32 s_wtime;
46689 	__le16 s_mnt_count;
46690 	__le16 s_max_mnt_count;
46691 	__le16 s_magic;
46692 	__le16 s_state;
46693 	__le16 s_errors;
46694 	__le16 s_minor_rev_level;
46695 	__le32 s_lastcheck;
46696 	__le32 s_checkinterval;
46697 	__le32 s_creator_os;
46698 	__le32 s_rev_level;
46699 	__le16 s_def_resuid;
46700 	__le16 s_def_resgid;
46701 	__le32 s_first_ino;
46702 	__le16 s_inode_size;
46703 	__le16 s_block_group_nr;
46704 	__le32 s_feature_compat;
46705 	__le32 s_feature_incompat;
46706 	__le32 s_feature_ro_compat;
46707 	__u8 s_uuid[16];
46708 	char s_volume_name[16];
46709 	char s_last_mounted[64];
46710 	__le32 s_algorithm_usage_bitmap;
46711 	__u8 s_prealloc_blocks;
46712 	__u8 s_prealloc_dir_blocks;
46713 	__le16 s_reserved_gdt_blocks;
46714 	__u8 s_journal_uuid[16];
46715 	__le32 s_journal_inum;
46716 	__le32 s_journal_dev;
46717 	__le32 s_last_orphan;
46718 	__le32 s_hash_seed[4];
46719 	__u8 s_def_hash_version;
46720 	__u8 s_jnl_backup_type;
46721 	__le16 s_desc_size;
46722 	__le32 s_default_mount_opts;
46723 	__le32 s_first_meta_bg;
46724 	__le32 s_mkfs_time;
46725 	__le32 s_jnl_blocks[17];
46726 	__le32 s_blocks_count_hi;
46727 	__le32 s_r_blocks_count_hi;
46728 	__le32 s_free_blocks_count_hi;
46729 	__le16 s_min_extra_isize;
46730 	__le16 s_want_extra_isize;
46731 	__le32 s_flags;
46732 	__le16 s_raid_stride;
46733 	__le16 s_mmp_update_interval;
46734 	__le64 s_mmp_block;
46735 	__le32 s_raid_stripe_width;
46736 	__u8 s_log_groups_per_flex;
46737 	__u8 s_checksum_type;
46738 	__u8 s_encryption_level;
46739 	__u8 s_reserved_pad;
46740 	__le64 s_kbytes_written;
46741 	__le32 s_snapshot_inum;
46742 	__le32 s_snapshot_id;
46743 	__le64 s_snapshot_r_blocks_count;
46744 	__le32 s_snapshot_list;
46745 	__le32 s_error_count;
46746 	__le32 s_first_error_time;
46747 	__le32 s_first_error_ino;
46748 	__le64 s_first_error_block;
46749 	__u8 s_first_error_func[32];
46750 	__le32 s_first_error_line;
46751 	__le32 s_last_error_time;
46752 	__le32 s_last_error_ino;
46753 	__le32 s_last_error_line;
46754 	__le64 s_last_error_block;
46755 	__u8 s_last_error_func[32];
46756 	__u8 s_mount_opts[64];
46757 	__le32 s_usr_quota_inum;
46758 	__le32 s_grp_quota_inum;
46759 	__le32 s_overhead_clusters;
46760 	__le32 s_backup_bgs[2];
46761 	__u8 s_encrypt_algos[4];
46762 	__u8 s_encrypt_pw_salt[16];
46763 	__le32 s_lpf_ino;
46764 	__le32 s_prj_quota_inum;
46765 	__le32 s_checksum_seed;
46766 	__u8 s_wtime_hi;
46767 	__u8 s_mtime_hi;
46768 	__u8 s_mkfs_time_hi;
46769 	__u8 s_lastcheck_hi;
46770 	__u8 s_first_error_time_hi;
46771 	__u8 s_last_error_time_hi;
46772 	__u8 s_first_error_errcode;
46773 	__u8 s_last_error_errcode;
46774 	__le16 s_encoding;
46775 	__le16 s_encoding_flags;
46776 	__le32 s_orphan_file_inum;
46777 	__le32 s_reserved[94];
46778 	__le32 s_checksum;
46779 };
46780 
46781 struct ext4_journal_trigger {
46782 	struct jbd2_buffer_trigger_type tr_triggers;
46783 	struct super_block *sb;
46784 };
46785 
46786 struct ext4_orphan_block {
46787 	atomic_t ob_free_entries;
46788 	struct buffer_head *ob_bh;
46789 };
46790 
46791 struct ext4_orphan_info {
46792 	int of_blocks;
46793 	__u32 of_csum_seed;
46794 	struct ext4_orphan_block *of_binfo;
46795 };
46796 
46797 struct mb_cache___2;
46798 
46799 struct ext4_group_info;
46800 
46801 struct ext4_locality_group;
46802 
46803 struct ext4_li_request;
46804 
46805 struct ext4_sb_info {
46806 	long unsigned int s_desc_size;
46807 	long unsigned int s_inodes_per_block;
46808 	long unsigned int s_blocks_per_group;
46809 	long unsigned int s_clusters_per_group;
46810 	long unsigned int s_inodes_per_group;
46811 	long unsigned int s_itb_per_group;
46812 	long unsigned int s_gdb_count;
46813 	long unsigned int s_desc_per_block;
46814 	ext4_group_t s_groups_count;
46815 	ext4_group_t s_blockfile_groups;
46816 	long unsigned int s_overhead;
46817 	unsigned int s_cluster_ratio;
46818 	unsigned int s_cluster_bits;
46819 	loff_t s_bitmap_maxbytes;
46820 	struct buffer_head *s_sbh;
46821 	struct ext4_super_block *s_es;
46822 	struct buffer_head **s_group_desc;
46823 	unsigned int s_mount_opt;
46824 	unsigned int s_mount_opt2;
46825 	long unsigned int s_mount_flags;
46826 	unsigned int s_def_mount_opt;
46827 	ext4_fsblk_t s_sb_block;
46828 	atomic64_t s_resv_clusters;
46829 	kuid_t s_resuid;
46830 	kgid_t s_resgid;
46831 	short unsigned int s_mount_state;
46832 	short unsigned int s_pad;
46833 	int s_addr_per_block_bits;
46834 	int s_desc_per_block_bits;
46835 	int s_inode_size;
46836 	int s_first_ino;
46837 	unsigned int s_inode_readahead_blks;
46838 	unsigned int s_inode_goal;
46839 	u32 s_hash_seed[4];
46840 	int s_def_hash_version;
46841 	int s_hash_unsigned;
46842 	struct percpu_counter s_freeclusters_counter;
46843 	struct percpu_counter s_freeinodes_counter;
46844 	struct percpu_counter s_dirs_counter;
46845 	struct percpu_counter s_dirtyclusters_counter;
46846 	struct percpu_counter s_sra_exceeded_retry_limit;
46847 	struct blockgroup_lock *s_blockgroup_lock;
46848 	struct proc_dir_entry *s_proc;
46849 	struct kobject s_kobj;
46850 	struct completion s_kobj_unregister;
46851 	struct super_block *s_sb;
46852 	struct buffer_head *s_mmp_bh;
46853 	struct journal_s *s_journal;
46854 	long unsigned int s_ext4_flags;
46855 	struct mutex s_orphan_lock;
46856 	struct list_head s_orphan;
46857 	struct ext4_orphan_info s_orphan_info;
46858 	long unsigned int s_commit_interval;
46859 	u32 s_max_batch_time;
46860 	u32 s_min_batch_time;
46861 	struct block_device *s_journal_bdev;
46862 	unsigned int s_want_extra_isize;
46863 	struct ext4_system_blocks *s_system_blks;
46864 	struct ext4_group_info ***s_group_info;
46865 	struct inode *s_buddy_cache;
46866 	spinlock_t s_md_lock;
46867 	short unsigned int *s_mb_offsets;
46868 	unsigned int *s_mb_maxs;
46869 	unsigned int s_group_info_size;
46870 	unsigned int s_mb_free_pending;
46871 	struct list_head s_freed_data_list;
46872 	struct list_head s_discard_list;
46873 	struct work_struct s_discard_work;
46874 	atomic_t s_retry_alloc_pending;
46875 	struct rb_root s_mb_avg_fragment_size_root;
46876 	rwlock_t s_mb_rb_lock;
46877 	struct list_head *s_mb_largest_free_orders;
46878 	rwlock_t *s_mb_largest_free_orders_locks;
46879 	long unsigned int s_stripe;
46880 	unsigned int s_mb_max_linear_groups;
46881 	unsigned int s_mb_stream_request;
46882 	unsigned int s_mb_max_to_scan;
46883 	unsigned int s_mb_min_to_scan;
46884 	unsigned int s_mb_stats;
46885 	unsigned int s_mb_order2_reqs;
46886 	unsigned int s_mb_group_prealloc;
46887 	unsigned int s_mb_max_inode_prealloc;
46888 	unsigned int s_max_dir_size_kb;
46889 	long unsigned int s_mb_last_group;
46890 	long unsigned int s_mb_last_start;
46891 	unsigned int s_mb_prefetch;
46892 	unsigned int s_mb_prefetch_limit;
46893 	atomic_t s_bal_reqs;
46894 	atomic_t s_bal_success;
46895 	atomic_t s_bal_allocated;
46896 	atomic_t s_bal_ex_scanned;
46897 	atomic_t s_bal_groups_scanned;
46898 	atomic_t s_bal_goals;
46899 	atomic_t s_bal_breaks;
46900 	atomic_t s_bal_2orders;
46901 	atomic_t s_bal_cr0_bad_suggestions;
46902 	atomic_t s_bal_cr1_bad_suggestions;
46903 	atomic64_t s_bal_cX_groups_considered[4];
46904 	atomic64_t s_bal_cX_hits[4];
46905 	atomic64_t s_bal_cX_failed[4];
46906 	atomic_t s_mb_buddies_generated;
46907 	atomic64_t s_mb_generation_time;
46908 	atomic_t s_mb_lost_chunks;
46909 	atomic_t s_mb_preallocated;
46910 	atomic_t s_mb_discarded;
46911 	atomic_t s_lock_busy;
46912 	struct ext4_locality_group *s_locality_groups;
46913 	long unsigned int s_sectors_written_start;
46914 	u64 s_kbytes_written;
46915 	unsigned int s_extent_max_zeroout_kb;
46916 	unsigned int s_log_groups_per_flex;
46917 	struct flex_groups **s_flex_groups;
46918 	ext4_group_t s_flex_groups_allocated;
46919 	struct workqueue_struct *rsv_conversion_wq;
46920 	struct timer_list s_err_report;
46921 	struct ext4_li_request *s_li_request;
46922 	unsigned int s_li_wait_mult;
46923 	struct task_struct *s_mmp_tsk;
46924 	long unsigned int s_last_trim_minblks;
46925 	struct crypto_shash *s_chksum_driver;
46926 	__u32 s_csum_seed;
46927 	struct shrinker s_es_shrinker;
46928 	struct list_head s_es_list;
46929 	long int s_es_nr_inode;
46930 	struct ext4_es_stats s_es_stats;
46931 	struct mb_cache___2 *s_ea_block_cache;
46932 	struct mb_cache___2 *s_ea_inode_cache;
46933 	long: 64;
46934 	spinlock_t s_es_lock;
46935 	struct ext4_journal_trigger s_journal_triggers[1];
46936 	struct ratelimit_state s_err_ratelimit_state;
46937 	struct ratelimit_state s_warning_ratelimit_state;
46938 	struct ratelimit_state s_msg_ratelimit_state;
46939 	atomic_t s_warning_count;
46940 	atomic_t s_msg_count;
46941 	struct fscrypt_dummy_policy s_dummy_enc_policy;
46942 	struct percpu_rw_semaphore s_writepages_rwsem;
46943 	struct dax_device *s_daxdev;
46944 	u64 s_dax_part_off;
46945 	errseq_t s_bdev_wb_err;
46946 	spinlock_t s_bdev_wb_lock;
46947 	spinlock_t s_error_lock;
46948 	int s_add_error_count;
46949 	int s_first_error_code;
46950 	__u32 s_first_error_line;
46951 	__u32 s_first_error_ino;
46952 	__u64 s_first_error_block;
46953 	const char *s_first_error_func;
46954 	time64_t s_first_error_time;
46955 	int s_last_error_code;
46956 	__u32 s_last_error_line;
46957 	__u32 s_last_error_ino;
46958 	__u64 s_last_error_block;
46959 	const char *s_last_error_func;
46960 	time64_t s_last_error_time;
46961 	struct work_struct s_error_work;
46962 	atomic_t s_fc_subtid;
46963 	struct list_head s_fc_q[2];
46964 	struct list_head s_fc_dentry_q[2];
46965 	unsigned int s_fc_bytes;
46966 	spinlock_t s_fc_lock;
46967 	struct buffer_head *s_fc_bh;
46968 	struct ext4_fc_stats s_fc_stats;
46969 	struct ext4_fc_replay_state s_fc_replay_state;
46970 	long: 64;
46971 	long: 64;
46972 	long: 64;
46973 	long: 64;
46974 	long: 64;
46975 };
46976 
46977 struct ext4_group_info {
46978 	long unsigned int bb_state;
46979 	struct rb_root bb_free_root;
46980 	ext4_grpblk_t bb_first_free;
46981 	ext4_grpblk_t bb_free;
46982 	ext4_grpblk_t bb_fragments;
46983 	ext4_grpblk_t bb_largest_free_order;
46984 	ext4_group_t bb_group;
46985 	struct list_head bb_prealloc_list;
46986 	struct rw_semaphore alloc_sem;
46987 	struct rb_node bb_avg_fragment_size_rb;
46988 	struct list_head bb_largest_free_order_node;
46989 	ext4_grpblk_t bb_counters[0];
46990 };
46991 
46992 struct ext4_locality_group {
46993 	struct mutex lg_mutex;
46994 	struct list_head lg_prealloc_list[10];
46995 	spinlock_t lg_prealloc_lock;
46996 };
46997 
46998 enum ext4_li_mode {
46999 	EXT4_LI_MODE_PREFETCH_BBITMAP = 0,
47000 	EXT4_LI_MODE_ITABLE = 1,
47001 };
47002 
47003 struct ext4_li_request {
47004 	struct super_block *lr_super;
47005 	enum ext4_li_mode lr_mode;
47006 	ext4_group_t lr_first_not_zeroed;
47007 	ext4_group_t lr_next_group;
47008 	struct list_head lr_request;
47009 	long unsigned int lr_next_sched;
47010 	long unsigned int lr_timeout;
47011 };
47012 
47013 struct iomap_ops___2;
47014 
47015 struct shash_desc {
47016 	struct crypto_shash *tfm;
47017 	void *__ctx[0];
47018 };
47019 
47020 struct ext4_map_blocks {
47021 	ext4_fsblk_t m_pblk;
47022 	ext4_lblk_t m_lblk;
47023 	unsigned int m_len;
47024 	unsigned int m_flags;
47025 };
47026 
47027 struct ext4_system_zone {
47028 	struct rb_node node;
47029 	ext4_fsblk_t start_blk;
47030 	unsigned int count;
47031 	u32 ino;
47032 };
47033 
47034 struct fscrypt_str {
47035 	unsigned char *name;
47036 	u32 len;
47037 };
47038 
47039 enum {
47040 	EXT4_INODE_SECRM = 0,
47041 	EXT4_INODE_UNRM = 1,
47042 	EXT4_INODE_COMPR = 2,
47043 	EXT4_INODE_SYNC = 3,
47044 	EXT4_INODE_IMMUTABLE = 4,
47045 	EXT4_INODE_APPEND = 5,
47046 	EXT4_INODE_NODUMP = 6,
47047 	EXT4_INODE_NOATIME = 7,
47048 	EXT4_INODE_DIRTY = 8,
47049 	EXT4_INODE_COMPRBLK = 9,
47050 	EXT4_INODE_NOCOMPR = 10,
47051 	EXT4_INODE_ENCRYPT = 11,
47052 	EXT4_INODE_INDEX = 12,
47053 	EXT4_INODE_IMAGIC = 13,
47054 	EXT4_INODE_JOURNAL_DATA = 14,
47055 	EXT4_INODE_NOTAIL = 15,
47056 	EXT4_INODE_DIRSYNC = 16,
47057 	EXT4_INODE_TOPDIR = 17,
47058 	EXT4_INODE_HUGE_FILE = 18,
47059 	EXT4_INODE_EXTENTS = 19,
47060 	EXT4_INODE_VERITY = 20,
47061 	EXT4_INODE_EA_INODE = 21,
47062 	EXT4_INODE_DAX = 25,
47063 	EXT4_INODE_INLINE_DATA = 28,
47064 	EXT4_INODE_PROJINHERIT = 29,
47065 	EXT4_INODE_CASEFOLD = 30,
47066 	EXT4_INODE_RESERVED = 31,
47067 };
47068 
47069 enum {
47070 	EXT4_FC_REASON_XATTR = 0,
47071 	EXT4_FC_REASON_CROSS_RENAME = 1,
47072 	EXT4_FC_REASON_JOURNAL_FLAG_CHANGE = 2,
47073 	EXT4_FC_REASON_NOMEM = 3,
47074 	EXT4_FC_REASON_SWAP_BOOT = 4,
47075 	EXT4_FC_REASON_RESIZE = 5,
47076 	EXT4_FC_REASON_RENAME_DIR = 6,
47077 	EXT4_FC_REASON_FALLOC_RANGE = 7,
47078 	EXT4_FC_REASON_INODE_JOURNAL_DATA = 8,
47079 	EXT4_FC_COMMIT_FAILED = 9,
47080 	EXT4_FC_REASON_MAX = 10,
47081 };
47082 
47083 enum ext4_journal_trigger_type {
47084 	EXT4_JTR_ORPHAN_FILE = 0,
47085 	EXT4_JTR_NONE = 1,
47086 };
47087 
47088 struct ext4_dir_entry_hash {
47089 	__le32 hash;
47090 	__le32 minor_hash;
47091 };
47092 
47093 struct ext4_dir_entry_2 {
47094 	__le32 inode;
47095 	__le16 rec_len;
47096 	__u8 name_len;
47097 	__u8 file_type;
47098 	char name[255];
47099 };
47100 
47101 struct fname;
47102 
47103 struct dir_private_info {
47104 	struct rb_root root;
47105 	struct rb_node *curr_node;
47106 	struct fname *extra_fname;
47107 	loff_t last_pos;
47108 	__u32 curr_hash;
47109 	__u32 curr_minor_hash;
47110 	__u32 next_hash;
47111 };
47112 
47113 struct fname {
47114 	__u32 hash;
47115 	__u32 minor_hash;
47116 	struct rb_node rb_hash;
47117 	struct fname *next;
47118 	__u32 inode;
47119 	__u8 name_len;
47120 	__u8 file_type;
47121 	char name[0];
47122 };
47123 
47124 enum SHIFT_DIRECTION {
47125 	SHIFT_LEFT = 0,
47126 	SHIFT_RIGHT = 1,
47127 };
47128 
47129 struct ext4_io_end_vec {
47130 	struct list_head list;
47131 	loff_t offset;
47132 	ssize_t size;
47133 };
47134 
47135 struct ext4_io_end {
47136 	struct list_head list;
47137 	handle_t *handle;
47138 	struct inode *inode;
47139 	struct bio *bio;
47140 	unsigned int flag;
47141 	refcount_t count;
47142 	struct list_head list_vec;
47143 };
47144 
47145 typedef struct ext4_io_end ext4_io_end_t;
47146 
47147 enum {
47148 	ES_WRITTEN_B = 0,
47149 	ES_UNWRITTEN_B = 1,
47150 	ES_DELAYED_B = 2,
47151 	ES_HOLE_B = 3,
47152 	ES_REFERENCED_B = 4,
47153 	ES_FLAGS = 5,
47154 };
47155 
47156 enum {
47157 	EXT4_STATE_JDATA = 0,
47158 	EXT4_STATE_NEW = 1,
47159 	EXT4_STATE_XATTR = 2,
47160 	EXT4_STATE_NO_EXPAND = 3,
47161 	EXT4_STATE_DA_ALLOC_CLOSE = 4,
47162 	EXT4_STATE_EXT_MIGRATE = 5,
47163 	EXT4_STATE_NEWENTRY = 6,
47164 	EXT4_STATE_MAY_INLINE_DATA = 7,
47165 	EXT4_STATE_EXT_PRECACHED = 8,
47166 	EXT4_STATE_LUSTRE_EA_INODE = 9,
47167 	EXT4_STATE_VERITY_IN_PROGRESS = 10,
47168 	EXT4_STATE_FC_COMMITTING = 11,
47169 	EXT4_STATE_ORPHAN_FILE = 12,
47170 };
47171 
47172 struct ext4_iloc {
47173 	struct buffer_head *bh;
47174 	long unsigned int offset;
47175 	ext4_group_t block_group;
47176 };
47177 
47178 struct ext4_extent_tail {
47179 	__le32 et_checksum;
47180 };
47181 
47182 struct ext4_extent {
47183 	__le32 ee_block;
47184 	__le16 ee_len;
47185 	__le16 ee_start_hi;
47186 	__le32 ee_start_lo;
47187 };
47188 
47189 struct ext4_extent_idx {
47190 	__le32 ei_block;
47191 	__le32 ei_leaf_lo;
47192 	__le16 ei_leaf_hi;
47193 	__u16 ei_unused;
47194 };
47195 
47196 struct ext4_extent_header {
47197 	__le16 eh_magic;
47198 	__le16 eh_entries;
47199 	__le16 eh_max;
47200 	__le16 eh_depth;
47201 	__le32 eh_generation;
47202 };
47203 
47204 struct ext4_ext_path {
47205 	ext4_fsblk_t p_block;
47206 	__u16 p_depth;
47207 	__u16 p_maxdepth;
47208 	struct ext4_extent *p_ext;
47209 	struct ext4_extent_idx *p_idx;
47210 	struct ext4_extent_header *p_hdr;
47211 	struct buffer_head *p_bh;
47212 };
47213 
47214 struct partial_cluster {
47215 	ext4_fsblk_t pclu;
47216 	ext4_lblk_t lblk;
47217 	enum {
47218 		initial = 0,
47219 		tofree = 1,
47220 		nofree = 2,
47221 	} state;
47222 };
47223 
47224 struct pending_reservation {
47225 	struct rb_node rb_node;
47226 	ext4_lblk_t lclu;
47227 };
47228 
47229 struct rsvd_count {
47230 	int ndelonly;
47231 	bool first_do_lblk_found;
47232 	ext4_lblk_t first_do_lblk;
47233 	ext4_lblk_t last_do_lblk;
47234 	struct extent_status *left_es;
47235 	bool partial;
47236 	ext4_lblk_t lclu;
47237 };
47238 
47239 enum {
47240 	EXT4_MF_MNTDIR_SAMPLED = 0,
47241 	EXT4_MF_FS_ABORTED = 1,
47242 	EXT4_MF_FC_INELIGIBLE = 2,
47243 	EXT4_MF_FC_COMMITTING = 3,
47244 };
47245 
47246 struct fsverity_info;
47247 
47248 struct fsmap {
47249 	__u32 fmr_device;
47250 	__u32 fmr_flags;
47251 	__u64 fmr_physical;
47252 	__u64 fmr_owner;
47253 	__u64 fmr_offset;
47254 	__u64 fmr_length;
47255 	__u64 fmr_reserved[3];
47256 };
47257 
47258 struct ext4_fsmap {
47259 	struct list_head fmr_list;
47260 	dev_t fmr_device;
47261 	uint32_t fmr_flags;
47262 	uint64_t fmr_physical;
47263 	uint64_t fmr_owner;
47264 	uint64_t fmr_length;
47265 };
47266 
47267 struct ext4_fsmap_head {
47268 	uint32_t fmh_iflags;
47269 	uint32_t fmh_oflags;
47270 	unsigned int fmh_count;
47271 	unsigned int fmh_entries;
47272 	struct ext4_fsmap fmh_keys[2];
47273 };
47274 
47275 typedef int (*ext4_fsmap_format_t)(struct ext4_fsmap *, void *);
47276 
47277 struct ext4_getfsmap_info {
47278 	struct ext4_fsmap_head *gfi_head;
47279 	ext4_fsmap_format_t gfi_formatter;
47280 	void *gfi_format_arg;
47281 	ext4_fsblk_t gfi_next_fsblk;
47282 	u32 gfi_dev;
47283 	ext4_group_t gfi_agno;
47284 	struct ext4_fsmap gfi_low;
47285 	struct ext4_fsmap gfi_high;
47286 	struct ext4_fsmap gfi_lastfree;
47287 	struct list_head gfi_meta_list;
47288 	bool gfi_last;
47289 };
47290 
47291 struct ext4_getfsmap_dev {
47292 	int (*gfd_fn)(struct super_block *, struct ext4_fsmap *, struct ext4_getfsmap_info *);
47293 	u32 gfd_dev;
47294 };
47295 
47296 struct dx_hash_info {
47297 	u32 hash;
47298 	u32 minor_hash;
47299 	int hash_version;
47300 	u32 *seed;
47301 };
47302 
47303 struct fscrypt_info;
47304 
47305 typedef unsigned int __kernel_mode_t;
47306 
47307 typedef __kernel_mode_t mode_t;
47308 
47309 struct ext4_inode {
47310 	__le16 i_mode;
47311 	__le16 i_uid;
47312 	__le32 i_size_lo;
47313 	__le32 i_atime;
47314 	__le32 i_ctime;
47315 	__le32 i_mtime;
47316 	__le32 i_dtime;
47317 	__le16 i_gid;
47318 	__le16 i_links_count;
47319 	__le32 i_blocks_lo;
47320 	__le32 i_flags;
47321 	union {
47322 		struct {
47323 			__le32 l_i_version;
47324 		} linux1;
47325 		struct {
47326 			__u32 h_i_translator;
47327 		} hurd1;
47328 		struct {
47329 			__u32 m_i_reserved1;
47330 		} masix1;
47331 	} osd1;
47332 	__le32 i_block[15];
47333 	__le32 i_generation;
47334 	__le32 i_file_acl_lo;
47335 	__le32 i_size_high;
47336 	__le32 i_obso_faddr;
47337 	union {
47338 		struct {
47339 			__le16 l_i_blocks_high;
47340 			__le16 l_i_file_acl_high;
47341 			__le16 l_i_uid_high;
47342 			__le16 l_i_gid_high;
47343 			__le16 l_i_checksum_lo;
47344 			__le16 l_i_reserved;
47345 		} linux2;
47346 		struct {
47347 			__le16 h_i_reserved1;
47348 			__u16 h_i_mode_high;
47349 			__u16 h_i_uid_high;
47350 			__u16 h_i_gid_high;
47351 			__u32 h_i_author;
47352 		} hurd2;
47353 		struct {
47354 			__le16 h_i_reserved1;
47355 			__le16 m_i_file_acl_high;
47356 			__u32 m_i_reserved2[2];
47357 		} masix2;
47358 	} osd2;
47359 	__le16 i_extra_isize;
47360 	__le16 i_checksum_hi;
47361 	__le32 i_ctime_extra;
47362 	__le32 i_mtime_extra;
47363 	__le32 i_atime_extra;
47364 	__le32 i_crtime;
47365 	__le32 i_crtime_extra;
47366 	__le32 i_version_hi;
47367 	__le32 i_projid;
47368 };
47369 
47370 struct orlov_stats {
47371 	__u64 free_clusters;
47372 	__u32 free_inodes;
47373 	__u32 used_dirs;
47374 };
47375 
47376 typedef struct {
47377 	__le32 *p;
47378 	__le32 key;
47379 	struct buffer_head *bh;
47380 } Indirect;
47381 
47382 struct ext4_filename {
47383 	const struct qstr *usr_fname;
47384 	struct fscrypt_str disk_name;
47385 	struct dx_hash_info hinfo;
47386 };
47387 
47388 struct ext4_xattr_ibody_header {
47389 	__le32 h_magic;
47390 };
47391 
47392 struct ext4_xattr_entry {
47393 	__u8 e_name_len;
47394 	__u8 e_name_index;
47395 	__le16 e_value_offs;
47396 	__le32 e_value_inum;
47397 	__le32 e_value_size;
47398 	__le32 e_hash;
47399 	char e_name[0];
47400 };
47401 
47402 struct ext4_xattr_info {
47403 	const char *name;
47404 	const void *value;
47405 	size_t value_len;
47406 	int name_index;
47407 	int in_inode;
47408 };
47409 
47410 struct ext4_xattr_search {
47411 	struct ext4_xattr_entry *first;
47412 	void *base;
47413 	void *end;
47414 	struct ext4_xattr_entry *here;
47415 	int not_found;
47416 };
47417 
47418 struct ext4_xattr_ibody_find {
47419 	struct ext4_xattr_search s;
47420 	struct ext4_iloc iloc;
47421 };
47422 
47423 typedef short unsigned int __kernel_uid16_t;
47424 
47425 typedef short unsigned int __kernel_gid16_t;
47426 
47427 typedef __kernel_uid16_t uid16_t;
47428 
47429 typedef __kernel_gid16_t gid16_t;
47430 
47431 struct ext4_io_submit {
47432 	struct writeback_control *io_wbc;
47433 	struct bio *io_bio;
47434 	ext4_io_end_t *io_end;
47435 	sector_t io_next_block;
47436 };
47437 
47438 typedef enum {
47439 	EXT4_IGET_NORMAL = 0,
47440 	EXT4_IGET_SPECIAL = 1,
47441 	EXT4_IGET_HANDLE = 2,
47442 } ext4_iget_flags;
47443 
47444 struct ext4_xattr_inode_array {
47445 	unsigned int count;
47446 	struct inode *inodes[0];
47447 };
47448 
47449 struct mpage_da_data {
47450 	struct inode *inode;
47451 	struct writeback_control *wbc;
47452 	long unsigned int first_page;
47453 	long unsigned int next_page;
47454 	long unsigned int last_page;
47455 	struct ext4_map_blocks map;
47456 	struct ext4_io_submit io_submit;
47457 	unsigned int do_map: 1;
47458 	unsigned int scanned_until_end: 1;
47459 };
47460 
47461 struct fstrim_range {
47462 	__u64 start;
47463 	__u64 len;
47464 	__u64 minlen;
47465 };
47466 
47467 struct ext4_new_group_input {
47468 	__u32 group;
47469 	__u64 block_bitmap;
47470 	__u64 inode_bitmap;
47471 	__u64 inode_table;
47472 	__u32 blocks_count;
47473 	__u16 reserved_blocks;
47474 	__u16 unused;
47475 };
47476 
47477 struct ext4_new_group_data {
47478 	__u32 group;
47479 	__u64 block_bitmap;
47480 	__u64 inode_bitmap;
47481 	__u64 inode_table;
47482 	__u32 blocks_count;
47483 	__u16 reserved_blocks;
47484 	__u16 mdata_blocks;
47485 	__u32 free_clusters_count;
47486 };
47487 
47488 struct move_extent {
47489 	__u32 reserved;
47490 	__u32 donor_fd;
47491 	__u64 orig_start;
47492 	__u64 donor_start;
47493 	__u64 len;
47494 	__u64 moved_len;
47495 };
47496 
47497 struct fsmap_head {
47498 	__u32 fmh_iflags;
47499 	__u32 fmh_oflags;
47500 	__u32 fmh_count;
47501 	__u32 fmh_entries;
47502 	__u64 fmh_reserved[6];
47503 	struct fsmap fmh_keys[2];
47504 	struct fsmap fmh_recs[0];
47505 };
47506 
47507 typedef void ext4_update_sb_callback(struct ext4_super_block *, const void *);
47508 
47509 struct getfsmap_info {
47510 	struct super_block *gi_sb;
47511 	struct fsmap_head *gi_data;
47512 	unsigned int gi_idx;
47513 	__u32 gi_last_flags;
47514 };
47515 
47516 enum blk_default_limits {
47517 	BLK_MAX_SEGMENTS = 128,
47518 	BLK_SAFE_MAX_SECTORS = 255,
47519 	BLK_DEF_MAX_SECTORS = 2560,
47520 	BLK_MAX_SEGMENT_SIZE = 65536,
47521 	BLK_SEG_BOUNDARY_MASK = 4294967295,
47522 };
47523 
47524 struct ext4_free_data {
47525 	struct list_head efd_list;
47526 	struct rb_node efd_node;
47527 	ext4_group_t efd_group;
47528 	ext4_grpblk_t efd_start_cluster;
47529 	ext4_grpblk_t efd_count;
47530 	tid_t efd_tid;
47531 };
47532 
47533 struct ext4_prealloc_space {
47534 	struct list_head pa_inode_list;
47535 	struct list_head pa_group_list;
47536 	union {
47537 		struct list_head pa_tmp_list;
47538 		struct callback_head pa_rcu;
47539 	} u;
47540 	spinlock_t pa_lock;
47541 	atomic_t pa_count;
47542 	unsigned int pa_deleted;
47543 	ext4_fsblk_t pa_pstart;
47544 	ext4_lblk_t pa_lstart;
47545 	ext4_grpblk_t pa_len;
47546 	ext4_grpblk_t pa_free;
47547 	short unsigned int pa_type;
47548 	spinlock_t *pa_obj_lock;
47549 	struct inode *pa_inode;
47550 };
47551 
47552 enum {
47553 	MB_INODE_PA = 0,
47554 	MB_GROUP_PA = 1,
47555 };
47556 
47557 struct ext4_free_extent {
47558 	ext4_lblk_t fe_logical;
47559 	ext4_grpblk_t fe_start;
47560 	ext4_group_t fe_group;
47561 	ext4_grpblk_t fe_len;
47562 };
47563 
47564 struct ext4_allocation_context {
47565 	struct inode *ac_inode;
47566 	struct super_block *ac_sb;
47567 	struct ext4_free_extent ac_o_ex;
47568 	struct ext4_free_extent ac_g_ex;
47569 	struct ext4_free_extent ac_b_ex;
47570 	struct ext4_free_extent ac_f_ex;
47571 	ext4_group_t ac_last_optimal_group;
47572 	__u32 ac_groups_considered;
47573 	__u32 ac_flags;
47574 	__u16 ac_groups_scanned;
47575 	__u16 ac_groups_linear_remaining;
47576 	__u16 ac_found;
47577 	__u16 ac_tail;
47578 	__u16 ac_buddy;
47579 	__u8 ac_status;
47580 	__u8 ac_criteria;
47581 	__u8 ac_2order;
47582 	__u8 ac_op;
47583 	struct page *ac_bitmap_page;
47584 	struct page *ac_buddy_page;
47585 	struct ext4_prealloc_space *ac_pa;
47586 	struct ext4_locality_group *ac_lg;
47587 };
47588 
47589 struct ext4_buddy {
47590 	struct page *bd_buddy_page;
47591 	void *bd_buddy;
47592 	struct page *bd_bitmap_page;
47593 	void *bd_bitmap;
47594 	struct ext4_group_info *bd_info;
47595 	struct super_block *bd_sb;
47596 	__u16 bd_blkbits;
47597 	ext4_group_t bd_group;
47598 };
47599 
47600 typedef int (*ext4_mballoc_query_range_fn)(struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t, void *);
47601 
47602 struct sg {
47603 	struct ext4_group_info info;
47604 	ext4_grpblk_t counters[18];
47605 };
47606 
47607 struct migrate_struct {
47608 	ext4_lblk_t first_block;
47609 	ext4_lblk_t last_block;
47610 	ext4_lblk_t curr_block;
47611 	ext4_fsblk_t first_pblock;
47612 	ext4_fsblk_t last_pblock;
47613 };
47614 
47615 struct mmp_struct {
47616 	__le32 mmp_magic;
47617 	__le32 mmp_seq;
47618 	__le64 mmp_time;
47619 	char mmp_nodename[64];
47620 	char mmp_bdevname[32];
47621 	__le16 mmp_check_interval;
47622 	__le16 mmp_pad1;
47623 	__le32 mmp_pad2[226];
47624 	__le32 mmp_checksum;
47625 };
47626 
47627 enum {
47628 	I_DATA_SEM_NORMAL = 0,
47629 	I_DATA_SEM_OTHER = 1,
47630 	I_DATA_SEM_QUOTA = 2,
47631 };
47632 
47633 struct fscrypt_name {
47634 	const struct qstr *usr_fname;
47635 	struct fscrypt_str disk_name;
47636 	u32 hash;
47637 	u32 minor_hash;
47638 	struct fscrypt_str crypto_buf;
47639 	bool is_nokey_name;
47640 };
47641 
47642 struct ext4_dir_entry {
47643 	__le32 inode;
47644 	__le16 rec_len;
47645 	__le16 name_len;
47646 	char name[255];
47647 };
47648 
47649 struct ext4_dir_entry_tail {
47650 	__le32 det_reserved_zero1;
47651 	__le16 det_rec_len;
47652 	__u8 det_reserved_zero2;
47653 	__u8 det_reserved_ft;
47654 	__le32 det_checksum;
47655 };
47656 
47657 typedef enum {
47658 	EITHER = 0,
47659 	INDEX = 1,
47660 	DIRENT = 2,
47661 	DIRENT_HTREE = 3,
47662 } dirblock_type_t;
47663 
47664 struct fake_dirent {
47665 	__le32 inode;
47666 	__le16 rec_len;
47667 	u8 name_len;
47668 	u8 file_type;
47669 };
47670 
47671 struct dx_countlimit {
47672 	__le16 limit;
47673 	__le16 count;
47674 };
47675 
47676 struct dx_entry {
47677 	__le32 hash;
47678 	__le32 block;
47679 };
47680 
47681 struct dx_root_info {
47682 	__le32 reserved_zero;
47683 	u8 hash_version;
47684 	u8 info_length;
47685 	u8 indirect_levels;
47686 	u8 unused_flags;
47687 };
47688 
47689 struct dx_root {
47690 	struct fake_dirent dot;
47691 	char dot_name[4];
47692 	struct fake_dirent dotdot;
47693 	char dotdot_name[4];
47694 	struct dx_root_info info;
47695 	struct dx_entry entries[0];
47696 };
47697 
47698 struct dx_node {
47699 	struct fake_dirent fake;
47700 	struct dx_entry entries[0];
47701 };
47702 
47703 struct dx_frame {
47704 	struct buffer_head *bh;
47705 	struct dx_entry *entries;
47706 	struct dx_entry *at;
47707 };
47708 
47709 struct dx_map_entry {
47710 	u32 hash;
47711 	u16 offs;
47712 	u16 size;
47713 };
47714 
47715 struct dx_tail {
47716 	u32 dt_reserved;
47717 	__le32 dt_checksum;
47718 };
47719 
47720 struct ext4_renament {
47721 	struct inode *dir;
47722 	struct dentry *dentry;
47723 	struct inode *inode;
47724 	bool is_dir;
47725 	int dir_nlink_delta;
47726 	struct buffer_head *bh;
47727 	struct ext4_dir_entry_2 *de;
47728 	int inlined;
47729 	struct buffer_head *dir_bh;
47730 	struct ext4_dir_entry_2 *parent_de;
47731 	int dir_inlined;
47732 };
47733 
47734 enum bio_post_read_step {
47735 	STEP_INITIAL = 0,
47736 	STEP_DECRYPT = 1,
47737 	STEP_VERITY = 2,
47738 	STEP_MAX = 3,
47739 };
47740 
47741 struct bio_post_read_ctx {
47742 	struct bio *bio;
47743 	struct work_struct work;
47744 	unsigned int cur_step;
47745 	unsigned int enabled_steps;
47746 };
47747 
47748 enum {
47749 	BLOCK_BITMAP = 0,
47750 	INODE_BITMAP = 1,
47751 	INODE_TABLE = 2,
47752 	GROUP_TABLE_COUNT = 3,
47753 };
47754 
47755 struct ext4_rcu_ptr {
47756 	struct callback_head rcu;
47757 	void *ptr;
47758 };
47759 
47760 struct ext4_new_flex_group_data {
47761 	struct ext4_new_group_data *groups;
47762 	__u16 *bg_flags;
47763 	ext4_group_t count;
47764 };
47765 
47766 struct disk_stats {
47767 	u64 nsecs[4];
47768 	long unsigned int sectors[4];
47769 	long unsigned int ios[4];
47770 	long unsigned int merges[4];
47771 	long unsigned int io_ticks;
47772 	local_t in_flight[2];
47773 };
47774 
47775 enum stat_group {
47776 	STAT_READ = 0,
47777 	STAT_WRITE = 1,
47778 	STAT_DISCARD = 2,
47779 	STAT_FLUSH = 3,
47780 	NR_STAT_GROUPS = 4,
47781 };
47782 
47783 struct ext4_lazy_init {
47784 	long unsigned int li_state;
47785 	struct list_head li_request_list;
47786 	struct mutex li_list_mtx;
47787 };
47788 
47789 struct ext4_journal_cb_entry {
47790 	struct list_head jce_list;
47791 	void (*jce_func)(struct super_block *, struct ext4_journal_cb_entry *, int);
47792 };
47793 
47794 struct trace_event_raw_ext4_other_inode_update_time {
47795 	struct trace_entry ent;
47796 	dev_t dev;
47797 	ino_t ino;
47798 	ino_t orig_ino;
47799 	uid_t uid;
47800 	gid_t gid;
47801 	__u16 mode;
47802 	char __data[0];
47803 };
47804 
47805 struct trace_event_raw_ext4_free_inode {
47806 	struct trace_entry ent;
47807 	dev_t dev;
47808 	ino_t ino;
47809 	uid_t uid;
47810 	gid_t gid;
47811 	__u64 blocks;
47812 	__u16 mode;
47813 	char __data[0];
47814 };
47815 
47816 struct trace_event_raw_ext4_request_inode {
47817 	struct trace_entry ent;
47818 	dev_t dev;
47819 	ino_t dir;
47820 	__u16 mode;
47821 	char __data[0];
47822 };
47823 
47824 struct trace_event_raw_ext4_allocate_inode {
47825 	struct trace_entry ent;
47826 	dev_t dev;
47827 	ino_t ino;
47828 	ino_t dir;
47829 	__u16 mode;
47830 	char __data[0];
47831 };
47832 
47833 struct trace_event_raw_ext4_evict_inode {
47834 	struct trace_entry ent;
47835 	dev_t dev;
47836 	ino_t ino;
47837 	int nlink;
47838 	char __data[0];
47839 };
47840 
47841 struct trace_event_raw_ext4_drop_inode {
47842 	struct trace_entry ent;
47843 	dev_t dev;
47844 	ino_t ino;
47845 	int drop;
47846 	char __data[0];
47847 };
47848 
47849 struct trace_event_raw_ext4_nfs_commit_metadata {
47850 	struct trace_entry ent;
47851 	dev_t dev;
47852 	ino_t ino;
47853 	char __data[0];
47854 };
47855 
47856 struct trace_event_raw_ext4_mark_inode_dirty {
47857 	struct trace_entry ent;
47858 	dev_t dev;
47859 	ino_t ino;
47860 	long unsigned int ip;
47861 	char __data[0];
47862 };
47863 
47864 struct trace_event_raw_ext4_begin_ordered_truncate {
47865 	struct trace_entry ent;
47866 	dev_t dev;
47867 	ino_t ino;
47868 	loff_t new_size;
47869 	char __data[0];
47870 };
47871 
47872 struct trace_event_raw_ext4__write_begin {
47873 	struct trace_entry ent;
47874 	dev_t dev;
47875 	ino_t ino;
47876 	loff_t pos;
47877 	unsigned int len;
47878 	unsigned int flags;
47879 	char __data[0];
47880 };
47881 
47882 struct trace_event_raw_ext4__write_end {
47883 	struct trace_entry ent;
47884 	dev_t dev;
47885 	ino_t ino;
47886 	loff_t pos;
47887 	unsigned int len;
47888 	unsigned int copied;
47889 	char __data[0];
47890 };
47891 
47892 struct trace_event_raw_ext4_writepages {
47893 	struct trace_entry ent;
47894 	dev_t dev;
47895 	ino_t ino;
47896 	long int nr_to_write;
47897 	long int pages_skipped;
47898 	loff_t range_start;
47899 	loff_t range_end;
47900 	long unsigned int writeback_index;
47901 	int sync_mode;
47902 	char for_kupdate;
47903 	char range_cyclic;
47904 	char __data[0];
47905 };
47906 
47907 struct trace_event_raw_ext4_da_write_pages {
47908 	struct trace_entry ent;
47909 	dev_t dev;
47910 	ino_t ino;
47911 	long unsigned int first_page;
47912 	long int nr_to_write;
47913 	int sync_mode;
47914 	char __data[0];
47915 };
47916 
47917 struct trace_event_raw_ext4_da_write_pages_extent {
47918 	struct trace_entry ent;
47919 	dev_t dev;
47920 	ino_t ino;
47921 	__u64 lblk;
47922 	__u32 len;
47923 	__u32 flags;
47924 	char __data[0];
47925 };
47926 
47927 struct trace_event_raw_ext4_writepages_result {
47928 	struct trace_entry ent;
47929 	dev_t dev;
47930 	ino_t ino;
47931 	int ret;
47932 	int pages_written;
47933 	long int pages_skipped;
47934 	long unsigned int writeback_index;
47935 	int sync_mode;
47936 	char __data[0];
47937 };
47938 
47939 struct trace_event_raw_ext4__page_op {
47940 	struct trace_entry ent;
47941 	dev_t dev;
47942 	ino_t ino;
47943 	long unsigned int index;
47944 	char __data[0];
47945 };
47946 
47947 struct trace_event_raw_ext4_invalidatepage_op {
47948 	struct trace_entry ent;
47949 	dev_t dev;
47950 	ino_t ino;
47951 	long unsigned int index;
47952 	unsigned int offset;
47953 	unsigned int length;
47954 	char __data[0];
47955 };
47956 
47957 struct trace_event_raw_ext4_discard_blocks {
47958 	struct trace_entry ent;
47959 	dev_t dev;
47960 	__u64 blk;
47961 	__u64 count;
47962 	char __data[0];
47963 };
47964 
47965 struct trace_event_raw_ext4__mb_new_pa {
47966 	struct trace_entry ent;
47967 	dev_t dev;
47968 	ino_t ino;
47969 	__u64 pa_pstart;
47970 	__u64 pa_lstart;
47971 	__u32 pa_len;
47972 	char __data[0];
47973 };
47974 
47975 struct trace_event_raw_ext4_mb_release_inode_pa {
47976 	struct trace_entry ent;
47977 	dev_t dev;
47978 	ino_t ino;
47979 	__u64 block;
47980 	__u32 count;
47981 	char __data[0];
47982 };
47983 
47984 struct trace_event_raw_ext4_mb_release_group_pa {
47985 	struct trace_entry ent;
47986 	dev_t dev;
47987 	__u64 pa_pstart;
47988 	__u32 pa_len;
47989 	char __data[0];
47990 };
47991 
47992 struct trace_event_raw_ext4_discard_preallocations {
47993 	struct trace_entry ent;
47994 	dev_t dev;
47995 	ino_t ino;
47996 	unsigned int len;
47997 	unsigned int needed;
47998 	char __data[0];
47999 };
48000 
48001 struct trace_event_raw_ext4_mb_discard_preallocations {
48002 	struct trace_entry ent;
48003 	dev_t dev;
48004 	int needed;
48005 	char __data[0];
48006 };
48007 
48008 struct trace_event_raw_ext4_request_blocks {
48009 	struct trace_entry ent;
48010 	dev_t dev;
48011 	ino_t ino;
48012 	unsigned int len;
48013 	__u32 logical;
48014 	__u32 lleft;
48015 	__u32 lright;
48016 	__u64 goal;
48017 	__u64 pleft;
48018 	__u64 pright;
48019 	unsigned int flags;
48020 	char __data[0];
48021 };
48022 
48023 struct trace_event_raw_ext4_allocate_blocks {
48024 	struct trace_entry ent;
48025 	dev_t dev;
48026 	ino_t ino;
48027 	__u64 block;
48028 	unsigned int len;
48029 	__u32 logical;
48030 	__u32 lleft;
48031 	__u32 lright;
48032 	__u64 goal;
48033 	__u64 pleft;
48034 	__u64 pright;
48035 	unsigned int flags;
48036 	char __data[0];
48037 };
48038 
48039 struct trace_event_raw_ext4_free_blocks {
48040 	struct trace_entry ent;
48041 	dev_t dev;
48042 	ino_t ino;
48043 	__u64 block;
48044 	long unsigned int count;
48045 	int flags;
48046 	__u16 mode;
48047 	char __data[0];
48048 };
48049 
48050 struct trace_event_raw_ext4_sync_file_enter {
48051 	struct trace_entry ent;
48052 	dev_t dev;
48053 	ino_t ino;
48054 	ino_t parent;
48055 	int datasync;
48056 	char __data[0];
48057 };
48058 
48059 struct trace_event_raw_ext4_sync_file_exit {
48060 	struct trace_entry ent;
48061 	dev_t dev;
48062 	ino_t ino;
48063 	int ret;
48064 	char __data[0];
48065 };
48066 
48067 struct trace_event_raw_ext4_sync_fs {
48068 	struct trace_entry ent;
48069 	dev_t dev;
48070 	int wait;
48071 	char __data[0];
48072 };
48073 
48074 struct trace_event_raw_ext4_alloc_da_blocks {
48075 	struct trace_entry ent;
48076 	dev_t dev;
48077 	ino_t ino;
48078 	unsigned int data_blocks;
48079 	char __data[0];
48080 };
48081 
48082 struct trace_event_raw_ext4_mballoc_alloc {
48083 	struct trace_entry ent;
48084 	dev_t dev;
48085 	ino_t ino;
48086 	__u32 orig_logical;
48087 	int orig_start;
48088 	__u32 orig_group;
48089 	int orig_len;
48090 	__u32 goal_logical;
48091 	int goal_start;
48092 	__u32 goal_group;
48093 	int goal_len;
48094 	__u32 result_logical;
48095 	int result_start;
48096 	__u32 result_group;
48097 	int result_len;
48098 	__u16 found;
48099 	__u16 groups;
48100 	__u16 buddy;
48101 	__u16 flags;
48102 	__u16 tail;
48103 	__u8 cr;
48104 	char __data[0];
48105 };
48106 
48107 struct trace_event_raw_ext4_mballoc_prealloc {
48108 	struct trace_entry ent;
48109 	dev_t dev;
48110 	ino_t ino;
48111 	__u32 orig_logical;
48112 	int orig_start;
48113 	__u32 orig_group;
48114 	int orig_len;
48115 	__u32 result_logical;
48116 	int result_start;
48117 	__u32 result_group;
48118 	int result_len;
48119 	char __data[0];
48120 };
48121 
48122 struct trace_event_raw_ext4__mballoc {
48123 	struct trace_entry ent;
48124 	dev_t dev;
48125 	ino_t ino;
48126 	int result_start;
48127 	__u32 result_group;
48128 	int result_len;
48129 	char __data[0];
48130 };
48131 
48132 struct trace_event_raw_ext4_forget {
48133 	struct trace_entry ent;
48134 	dev_t dev;
48135 	ino_t ino;
48136 	__u64 block;
48137 	int is_metadata;
48138 	__u16 mode;
48139 	char __data[0];
48140 };
48141 
48142 struct trace_event_raw_ext4_da_update_reserve_space {
48143 	struct trace_entry ent;
48144 	dev_t dev;
48145 	ino_t ino;
48146 	__u64 i_blocks;
48147 	int used_blocks;
48148 	int reserved_data_blocks;
48149 	int quota_claim;
48150 	__u16 mode;
48151 	char __data[0];
48152 };
48153 
48154 struct trace_event_raw_ext4_da_reserve_space {
48155 	struct trace_entry ent;
48156 	dev_t dev;
48157 	ino_t ino;
48158 	__u64 i_blocks;
48159 	int reserved_data_blocks;
48160 	__u16 mode;
48161 	char __data[0];
48162 };
48163 
48164 struct trace_event_raw_ext4_da_release_space {
48165 	struct trace_entry ent;
48166 	dev_t dev;
48167 	ino_t ino;
48168 	__u64 i_blocks;
48169 	int freed_blocks;
48170 	int reserved_data_blocks;
48171 	__u16 mode;
48172 	char __data[0];
48173 };
48174 
48175 struct trace_event_raw_ext4__bitmap_load {
48176 	struct trace_entry ent;
48177 	dev_t dev;
48178 	__u32 group;
48179 	char __data[0];
48180 };
48181 
48182 struct trace_event_raw_ext4_read_block_bitmap_load {
48183 	struct trace_entry ent;
48184 	dev_t dev;
48185 	__u32 group;
48186 	bool prefetch;
48187 	char __data[0];
48188 };
48189 
48190 struct trace_event_raw_ext4__fallocate_mode {
48191 	struct trace_entry ent;
48192 	dev_t dev;
48193 	ino_t ino;
48194 	loff_t offset;
48195 	loff_t len;
48196 	int mode;
48197 	char __data[0];
48198 };
48199 
48200 struct trace_event_raw_ext4_fallocate_exit {
48201 	struct trace_entry ent;
48202 	dev_t dev;
48203 	ino_t ino;
48204 	loff_t pos;
48205 	unsigned int blocks;
48206 	int ret;
48207 	char __data[0];
48208 };
48209 
48210 struct trace_event_raw_ext4_unlink_enter {
48211 	struct trace_entry ent;
48212 	dev_t dev;
48213 	ino_t ino;
48214 	ino_t parent;
48215 	loff_t size;
48216 	char __data[0];
48217 };
48218 
48219 struct trace_event_raw_ext4_unlink_exit {
48220 	struct trace_entry ent;
48221 	dev_t dev;
48222 	ino_t ino;
48223 	int ret;
48224 	char __data[0];
48225 };
48226 
48227 struct trace_event_raw_ext4__truncate {
48228 	struct trace_entry ent;
48229 	dev_t dev;
48230 	ino_t ino;
48231 	__u64 blocks;
48232 	char __data[0];
48233 };
48234 
48235 struct trace_event_raw_ext4_ext_convert_to_initialized_enter {
48236 	struct trace_entry ent;
48237 	dev_t dev;
48238 	ino_t ino;
48239 	ext4_lblk_t m_lblk;
48240 	unsigned int m_len;
48241 	ext4_lblk_t u_lblk;
48242 	unsigned int u_len;
48243 	ext4_fsblk_t u_pblk;
48244 	char __data[0];
48245 };
48246 
48247 struct trace_event_raw_ext4_ext_convert_to_initialized_fastpath {
48248 	struct trace_entry ent;
48249 	dev_t dev;
48250 	ino_t ino;
48251 	ext4_lblk_t m_lblk;
48252 	unsigned int m_len;
48253 	ext4_lblk_t u_lblk;
48254 	unsigned int u_len;
48255 	ext4_fsblk_t u_pblk;
48256 	ext4_lblk_t i_lblk;
48257 	unsigned int i_len;
48258 	ext4_fsblk_t i_pblk;
48259 	char __data[0];
48260 };
48261 
48262 struct trace_event_raw_ext4__map_blocks_enter {
48263 	struct trace_entry ent;
48264 	dev_t dev;
48265 	ino_t ino;
48266 	ext4_lblk_t lblk;
48267 	unsigned int len;
48268 	unsigned int flags;
48269 	char __data[0];
48270 };
48271 
48272 struct trace_event_raw_ext4__map_blocks_exit {
48273 	struct trace_entry ent;
48274 	dev_t dev;
48275 	ino_t ino;
48276 	unsigned int flags;
48277 	ext4_fsblk_t pblk;
48278 	ext4_lblk_t lblk;
48279 	unsigned int len;
48280 	unsigned int mflags;
48281 	int ret;
48282 	char __data[0];
48283 };
48284 
48285 struct trace_event_raw_ext4_ext_load_extent {
48286 	struct trace_entry ent;
48287 	dev_t dev;
48288 	ino_t ino;
48289 	ext4_fsblk_t pblk;
48290 	ext4_lblk_t lblk;
48291 	char __data[0];
48292 };
48293 
48294 struct trace_event_raw_ext4_load_inode {
48295 	struct trace_entry ent;
48296 	dev_t dev;
48297 	ino_t ino;
48298 	char __data[0];
48299 };
48300 
48301 struct trace_event_raw_ext4_journal_start {
48302 	struct trace_entry ent;
48303 	dev_t dev;
48304 	long unsigned int ip;
48305 	int blocks;
48306 	int rsv_blocks;
48307 	int revoke_creds;
48308 	char __data[0];
48309 };
48310 
48311 struct trace_event_raw_ext4_journal_start_reserved {
48312 	struct trace_entry ent;
48313 	dev_t dev;
48314 	long unsigned int ip;
48315 	int blocks;
48316 	char __data[0];
48317 };
48318 
48319 struct trace_event_raw_ext4__trim {
48320 	struct trace_entry ent;
48321 	int dev_major;
48322 	int dev_minor;
48323 	__u32 group;
48324 	int start;
48325 	int len;
48326 	char __data[0];
48327 };
48328 
48329 struct trace_event_raw_ext4_ext_handle_unwritten_extents {
48330 	struct trace_entry ent;
48331 	dev_t dev;
48332 	ino_t ino;
48333 	int flags;
48334 	ext4_lblk_t lblk;
48335 	ext4_fsblk_t pblk;
48336 	unsigned int len;
48337 	unsigned int allocated;
48338 	ext4_fsblk_t newblk;
48339 	char __data[0];
48340 };
48341 
48342 struct trace_event_raw_ext4_get_implied_cluster_alloc_exit {
48343 	struct trace_entry ent;
48344 	dev_t dev;
48345 	unsigned int flags;
48346 	ext4_lblk_t lblk;
48347 	ext4_fsblk_t pblk;
48348 	unsigned int len;
48349 	int ret;
48350 	char __data[0];
48351 };
48352 
48353 struct trace_event_raw_ext4_ext_show_extent {
48354 	struct trace_entry ent;
48355 	dev_t dev;
48356 	ino_t ino;
48357 	ext4_fsblk_t pblk;
48358 	ext4_lblk_t lblk;
48359 	short unsigned int len;
48360 	char __data[0];
48361 };
48362 
48363 struct trace_event_raw_ext4_remove_blocks {
48364 	struct trace_entry ent;
48365 	dev_t dev;
48366 	ino_t ino;
48367 	ext4_lblk_t from;
48368 	ext4_lblk_t to;
48369 	ext4_fsblk_t ee_pblk;
48370 	ext4_lblk_t ee_lblk;
48371 	short unsigned int ee_len;
48372 	ext4_fsblk_t pc_pclu;
48373 	ext4_lblk_t pc_lblk;
48374 	int pc_state;
48375 	char __data[0];
48376 };
48377 
48378 struct trace_event_raw_ext4_ext_rm_leaf {
48379 	struct trace_entry ent;
48380 	dev_t dev;
48381 	ino_t ino;
48382 	ext4_lblk_t start;
48383 	ext4_lblk_t ee_lblk;
48384 	ext4_fsblk_t ee_pblk;
48385 	short int ee_len;
48386 	ext4_fsblk_t pc_pclu;
48387 	ext4_lblk_t pc_lblk;
48388 	int pc_state;
48389 	char __data[0];
48390 };
48391 
48392 struct trace_event_raw_ext4_ext_rm_idx {
48393 	struct trace_entry ent;
48394 	dev_t dev;
48395 	ino_t ino;
48396 	ext4_fsblk_t pblk;
48397 	char __data[0];
48398 };
48399 
48400 struct trace_event_raw_ext4_ext_remove_space {
48401 	struct trace_entry ent;
48402 	dev_t dev;
48403 	ino_t ino;
48404 	ext4_lblk_t start;
48405 	ext4_lblk_t end;
48406 	int depth;
48407 	char __data[0];
48408 };
48409 
48410 struct trace_event_raw_ext4_ext_remove_space_done {
48411 	struct trace_entry ent;
48412 	dev_t dev;
48413 	ino_t ino;
48414 	ext4_lblk_t start;
48415 	ext4_lblk_t end;
48416 	int depth;
48417 	ext4_fsblk_t pc_pclu;
48418 	ext4_lblk_t pc_lblk;
48419 	int pc_state;
48420 	short unsigned int eh_entries;
48421 	char __data[0];
48422 };
48423 
48424 struct trace_event_raw_ext4__es_extent {
48425 	struct trace_entry ent;
48426 	dev_t dev;
48427 	ino_t ino;
48428 	ext4_lblk_t lblk;
48429 	ext4_lblk_t len;
48430 	ext4_fsblk_t pblk;
48431 	char status;
48432 	char __data[0];
48433 };
48434 
48435 struct trace_event_raw_ext4_es_remove_extent {
48436 	struct trace_entry ent;
48437 	dev_t dev;
48438 	ino_t ino;
48439 	loff_t lblk;
48440 	loff_t len;
48441 	char __data[0];
48442 };
48443 
48444 struct trace_event_raw_ext4_es_find_extent_range_enter {
48445 	struct trace_entry ent;
48446 	dev_t dev;
48447 	ino_t ino;
48448 	ext4_lblk_t lblk;
48449 	char __data[0];
48450 };
48451 
48452 struct trace_event_raw_ext4_es_find_extent_range_exit {
48453 	struct trace_entry ent;
48454 	dev_t dev;
48455 	ino_t ino;
48456 	ext4_lblk_t lblk;
48457 	ext4_lblk_t len;
48458 	ext4_fsblk_t pblk;
48459 	char status;
48460 	char __data[0];
48461 };
48462 
48463 struct trace_event_raw_ext4_es_lookup_extent_enter {
48464 	struct trace_entry ent;
48465 	dev_t dev;
48466 	ino_t ino;
48467 	ext4_lblk_t lblk;
48468 	char __data[0];
48469 };
48470 
48471 struct trace_event_raw_ext4_es_lookup_extent_exit {
48472 	struct trace_entry ent;
48473 	dev_t dev;
48474 	ino_t ino;
48475 	ext4_lblk_t lblk;
48476 	ext4_lblk_t len;
48477 	ext4_fsblk_t pblk;
48478 	char status;
48479 	int found;
48480 	char __data[0];
48481 };
48482 
48483 struct trace_event_raw_ext4__es_shrink_enter {
48484 	struct trace_entry ent;
48485 	dev_t dev;
48486 	int nr_to_scan;
48487 	int cache_cnt;
48488 	char __data[0];
48489 };
48490 
48491 struct trace_event_raw_ext4_es_shrink_scan_exit {
48492 	struct trace_entry ent;
48493 	dev_t dev;
48494 	int nr_shrunk;
48495 	int cache_cnt;
48496 	char __data[0];
48497 };
48498 
48499 struct trace_event_raw_ext4_collapse_range {
48500 	struct trace_entry ent;
48501 	dev_t dev;
48502 	ino_t ino;
48503 	loff_t offset;
48504 	loff_t len;
48505 	char __data[0];
48506 };
48507 
48508 struct trace_event_raw_ext4_insert_range {
48509 	struct trace_entry ent;
48510 	dev_t dev;
48511 	ino_t ino;
48512 	loff_t offset;
48513 	loff_t len;
48514 	char __data[0];
48515 };
48516 
48517 struct trace_event_raw_ext4_es_shrink {
48518 	struct trace_entry ent;
48519 	dev_t dev;
48520 	int nr_shrunk;
48521 	long long unsigned int scan_time;
48522 	int nr_skipped;
48523 	int retried;
48524 	char __data[0];
48525 };
48526 
48527 struct trace_event_raw_ext4_es_insert_delayed_block {
48528 	struct trace_entry ent;
48529 	dev_t dev;
48530 	ino_t ino;
48531 	ext4_lblk_t lblk;
48532 	ext4_lblk_t len;
48533 	ext4_fsblk_t pblk;
48534 	char status;
48535 	bool allocated;
48536 	char __data[0];
48537 };
48538 
48539 struct trace_event_raw_ext4_fsmap_class {
48540 	struct trace_entry ent;
48541 	dev_t dev;
48542 	dev_t keydev;
48543 	u32 agno;
48544 	u64 bno;
48545 	u64 len;
48546 	u64 owner;
48547 	char __data[0];
48548 };
48549 
48550 struct trace_event_raw_ext4_getfsmap_class {
48551 	struct trace_entry ent;
48552 	dev_t dev;
48553 	dev_t keydev;
48554 	u64 block;
48555 	u64 len;
48556 	u64 owner;
48557 	u64 flags;
48558 	char __data[0];
48559 };
48560 
48561 struct trace_event_raw_ext4_shutdown {
48562 	struct trace_entry ent;
48563 	dev_t dev;
48564 	unsigned int flags;
48565 	char __data[0];
48566 };
48567 
48568 struct trace_event_raw_ext4_error {
48569 	struct trace_entry ent;
48570 	dev_t dev;
48571 	const char *function;
48572 	unsigned int line;
48573 	char __data[0];
48574 };
48575 
48576 struct trace_event_raw_ext4_prefetch_bitmaps {
48577 	struct trace_entry ent;
48578 	dev_t dev;
48579 	__u32 group;
48580 	__u32 next;
48581 	__u32 ios;
48582 	char __data[0];
48583 };
48584 
48585 struct trace_event_raw_ext4_lazy_itable_init {
48586 	struct trace_entry ent;
48587 	dev_t dev;
48588 	__u32 group;
48589 	char __data[0];
48590 };
48591 
48592 struct trace_event_raw_ext4_fc_replay_scan {
48593 	struct trace_entry ent;
48594 	dev_t dev;
48595 	int error;
48596 	int off;
48597 	char __data[0];
48598 };
48599 
48600 struct trace_event_raw_ext4_fc_replay {
48601 	struct trace_entry ent;
48602 	dev_t dev;
48603 	int tag;
48604 	int ino;
48605 	int priv1;
48606 	int priv2;
48607 	char __data[0];
48608 };
48609 
48610 struct trace_event_raw_ext4_fc_commit_start {
48611 	struct trace_entry ent;
48612 	dev_t dev;
48613 	char __data[0];
48614 };
48615 
48616 struct trace_event_raw_ext4_fc_commit_stop {
48617 	struct trace_entry ent;
48618 	dev_t dev;
48619 	int nblks;
48620 	int reason;
48621 	int num_fc;
48622 	int num_fc_ineligible;
48623 	int nblks_agg;
48624 	char __data[0];
48625 };
48626 
48627 struct trace_event_raw_ext4_fc_stats {
48628 	struct trace_entry ent;
48629 	dev_t dev;
48630 	struct ext4_sb_info *sbi;
48631 	int count;
48632 	char __data[0];
48633 };
48634 
48635 struct trace_event_raw_ext4_fc_track_create {
48636 	struct trace_entry ent;
48637 	dev_t dev;
48638 	int ino;
48639 	int error;
48640 	char __data[0];
48641 };
48642 
48643 struct trace_event_raw_ext4_fc_track_link {
48644 	struct trace_entry ent;
48645 	dev_t dev;
48646 	int ino;
48647 	int error;
48648 	char __data[0];
48649 };
48650 
48651 struct trace_event_raw_ext4_fc_track_unlink {
48652 	struct trace_entry ent;
48653 	dev_t dev;
48654 	int ino;
48655 	int error;
48656 	char __data[0];
48657 };
48658 
48659 struct trace_event_raw_ext4_fc_track_inode {
48660 	struct trace_entry ent;
48661 	dev_t dev;
48662 	int ino;
48663 	int error;
48664 	char __data[0];
48665 };
48666 
48667 struct trace_event_raw_ext4_fc_track_range {
48668 	struct trace_entry ent;
48669 	dev_t dev;
48670 	int ino;
48671 	long int start;
48672 	long int end;
48673 	int error;
48674 	char __data[0];
48675 };
48676 
48677 struct trace_event_raw_ext4_update_sb {
48678 	struct trace_entry ent;
48679 	dev_t dev;
48680 	ext4_fsblk_t fsblk;
48681 	unsigned int flags;
48682 	char __data[0];
48683 };
48684 
48685 struct trace_event_data_offsets_ext4_other_inode_update_time {};
48686 
48687 struct trace_event_data_offsets_ext4_free_inode {};
48688 
48689 struct trace_event_data_offsets_ext4_request_inode {};
48690 
48691 struct trace_event_data_offsets_ext4_allocate_inode {};
48692 
48693 struct trace_event_data_offsets_ext4_evict_inode {};
48694 
48695 struct trace_event_data_offsets_ext4_drop_inode {};
48696 
48697 struct trace_event_data_offsets_ext4_nfs_commit_metadata {};
48698 
48699 struct trace_event_data_offsets_ext4_mark_inode_dirty {};
48700 
48701 struct trace_event_data_offsets_ext4_begin_ordered_truncate {};
48702 
48703 struct trace_event_data_offsets_ext4__write_begin {};
48704 
48705 struct trace_event_data_offsets_ext4__write_end {};
48706 
48707 struct trace_event_data_offsets_ext4_writepages {};
48708 
48709 struct trace_event_data_offsets_ext4_da_write_pages {};
48710 
48711 struct trace_event_data_offsets_ext4_da_write_pages_extent {};
48712 
48713 struct trace_event_data_offsets_ext4_writepages_result {};
48714 
48715 struct trace_event_data_offsets_ext4__page_op {};
48716 
48717 struct trace_event_data_offsets_ext4_invalidatepage_op {};
48718 
48719 struct trace_event_data_offsets_ext4_discard_blocks {};
48720 
48721 struct trace_event_data_offsets_ext4__mb_new_pa {};
48722 
48723 struct trace_event_data_offsets_ext4_mb_release_inode_pa {};
48724 
48725 struct trace_event_data_offsets_ext4_mb_release_group_pa {};
48726 
48727 struct trace_event_data_offsets_ext4_discard_preallocations {};
48728 
48729 struct trace_event_data_offsets_ext4_mb_discard_preallocations {};
48730 
48731 struct trace_event_data_offsets_ext4_request_blocks {};
48732 
48733 struct trace_event_data_offsets_ext4_allocate_blocks {};
48734 
48735 struct trace_event_data_offsets_ext4_free_blocks {};
48736 
48737 struct trace_event_data_offsets_ext4_sync_file_enter {};
48738 
48739 struct trace_event_data_offsets_ext4_sync_file_exit {};
48740 
48741 struct trace_event_data_offsets_ext4_sync_fs {};
48742 
48743 struct trace_event_data_offsets_ext4_alloc_da_blocks {};
48744 
48745 struct trace_event_data_offsets_ext4_mballoc_alloc {};
48746 
48747 struct trace_event_data_offsets_ext4_mballoc_prealloc {};
48748 
48749 struct trace_event_data_offsets_ext4__mballoc {};
48750 
48751 struct trace_event_data_offsets_ext4_forget {};
48752 
48753 struct trace_event_data_offsets_ext4_da_update_reserve_space {};
48754 
48755 struct trace_event_data_offsets_ext4_da_reserve_space {};
48756 
48757 struct trace_event_data_offsets_ext4_da_release_space {};
48758 
48759 struct trace_event_data_offsets_ext4__bitmap_load {};
48760 
48761 struct trace_event_data_offsets_ext4_read_block_bitmap_load {};
48762 
48763 struct trace_event_data_offsets_ext4__fallocate_mode {};
48764 
48765 struct trace_event_data_offsets_ext4_fallocate_exit {};
48766 
48767 struct trace_event_data_offsets_ext4_unlink_enter {};
48768 
48769 struct trace_event_data_offsets_ext4_unlink_exit {};
48770 
48771 struct trace_event_data_offsets_ext4__truncate {};
48772 
48773 struct trace_event_data_offsets_ext4_ext_convert_to_initialized_enter {};
48774 
48775 struct trace_event_data_offsets_ext4_ext_convert_to_initialized_fastpath {};
48776 
48777 struct trace_event_data_offsets_ext4__map_blocks_enter {};
48778 
48779 struct trace_event_data_offsets_ext4__map_blocks_exit {};
48780 
48781 struct trace_event_data_offsets_ext4_ext_load_extent {};
48782 
48783 struct trace_event_data_offsets_ext4_load_inode {};
48784 
48785 struct trace_event_data_offsets_ext4_journal_start {};
48786 
48787 struct trace_event_data_offsets_ext4_journal_start_reserved {};
48788 
48789 struct trace_event_data_offsets_ext4__trim {};
48790 
48791 struct trace_event_data_offsets_ext4_ext_handle_unwritten_extents {};
48792 
48793 struct trace_event_data_offsets_ext4_get_implied_cluster_alloc_exit {};
48794 
48795 struct trace_event_data_offsets_ext4_ext_show_extent {};
48796 
48797 struct trace_event_data_offsets_ext4_remove_blocks {};
48798 
48799 struct trace_event_data_offsets_ext4_ext_rm_leaf {};
48800 
48801 struct trace_event_data_offsets_ext4_ext_rm_idx {};
48802 
48803 struct trace_event_data_offsets_ext4_ext_remove_space {};
48804 
48805 struct trace_event_data_offsets_ext4_ext_remove_space_done {};
48806 
48807 struct trace_event_data_offsets_ext4__es_extent {};
48808 
48809 struct trace_event_data_offsets_ext4_es_remove_extent {};
48810 
48811 struct trace_event_data_offsets_ext4_es_find_extent_range_enter {};
48812 
48813 struct trace_event_data_offsets_ext4_es_find_extent_range_exit {};
48814 
48815 struct trace_event_data_offsets_ext4_es_lookup_extent_enter {};
48816 
48817 struct trace_event_data_offsets_ext4_es_lookup_extent_exit {};
48818 
48819 struct trace_event_data_offsets_ext4__es_shrink_enter {};
48820 
48821 struct trace_event_data_offsets_ext4_es_shrink_scan_exit {};
48822 
48823 struct trace_event_data_offsets_ext4_collapse_range {};
48824 
48825 struct trace_event_data_offsets_ext4_insert_range {};
48826 
48827 struct trace_event_data_offsets_ext4_es_shrink {};
48828 
48829 struct trace_event_data_offsets_ext4_es_insert_delayed_block {};
48830 
48831 struct trace_event_data_offsets_ext4_fsmap_class {};
48832 
48833 struct trace_event_data_offsets_ext4_getfsmap_class {};
48834 
48835 struct trace_event_data_offsets_ext4_shutdown {};
48836 
48837 struct trace_event_data_offsets_ext4_error {};
48838 
48839 struct trace_event_data_offsets_ext4_prefetch_bitmaps {};
48840 
48841 struct trace_event_data_offsets_ext4_lazy_itable_init {};
48842 
48843 struct trace_event_data_offsets_ext4_fc_replay_scan {};
48844 
48845 struct trace_event_data_offsets_ext4_fc_replay {};
48846 
48847 struct trace_event_data_offsets_ext4_fc_commit_start {};
48848 
48849 struct trace_event_data_offsets_ext4_fc_commit_stop {};
48850 
48851 struct trace_event_data_offsets_ext4_fc_stats {};
48852 
48853 struct trace_event_data_offsets_ext4_fc_track_create {};
48854 
48855 struct trace_event_data_offsets_ext4_fc_track_link {};
48856 
48857 struct trace_event_data_offsets_ext4_fc_track_unlink {};
48858 
48859 struct trace_event_data_offsets_ext4_fc_track_inode {};
48860 
48861 struct trace_event_data_offsets_ext4_fc_track_range {};
48862 
48863 struct trace_event_data_offsets_ext4_update_sb {};
48864 
48865 typedef void (*btf_trace_ext4_other_inode_update_time)(void *, struct inode *, ino_t);
48866 
48867 typedef void (*btf_trace_ext4_free_inode)(void *, struct inode *);
48868 
48869 typedef void (*btf_trace_ext4_request_inode)(void *, struct inode *, int);
48870 
48871 typedef void (*btf_trace_ext4_allocate_inode)(void *, struct inode *, struct inode *, int);
48872 
48873 typedef void (*btf_trace_ext4_evict_inode)(void *, struct inode *);
48874 
48875 typedef void (*btf_trace_ext4_drop_inode)(void *, struct inode *, int);
48876 
48877 typedef void (*btf_trace_ext4_nfs_commit_metadata)(void *, struct inode *);
48878 
48879 typedef void (*btf_trace_ext4_mark_inode_dirty)(void *, struct inode *, long unsigned int);
48880 
48881 typedef void (*btf_trace_ext4_begin_ordered_truncate)(void *, struct inode *, loff_t);
48882 
48883 typedef void (*btf_trace_ext4_write_begin)(void *, struct inode *, loff_t, unsigned int, unsigned int);
48884 
48885 typedef void (*btf_trace_ext4_da_write_begin)(void *, struct inode *, loff_t, unsigned int, unsigned int);
48886 
48887 typedef void (*btf_trace_ext4_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int);
48888 
48889 typedef void (*btf_trace_ext4_journalled_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int);
48890 
48891 typedef void (*btf_trace_ext4_da_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int);
48892 
48893 typedef void (*btf_trace_ext4_writepages)(void *, struct inode *, struct writeback_control *);
48894 
48895 typedef void (*btf_trace_ext4_da_write_pages)(void *, struct inode *, long unsigned int, struct writeback_control *);
48896 
48897 typedef void (*btf_trace_ext4_da_write_pages_extent)(void *, struct inode *, struct ext4_map_blocks *);
48898 
48899 typedef void (*btf_trace_ext4_writepages_result)(void *, struct inode *, struct writeback_control *, int, int);
48900 
48901 typedef void (*btf_trace_ext4_writepage)(void *, struct page *);
48902 
48903 typedef void (*btf_trace_ext4_readpage)(void *, struct page *);
48904 
48905 typedef void (*btf_trace_ext4_releasepage)(void *, struct page *);
48906 
48907 typedef void (*btf_trace_ext4_invalidatepage)(void *, struct page *, unsigned int, unsigned int);
48908 
48909 typedef void (*btf_trace_ext4_journalled_invalidatepage)(void *, struct page *, unsigned int, unsigned int);
48910 
48911 typedef void (*btf_trace_ext4_discard_blocks)(void *, struct super_block *, long long unsigned int, long long unsigned int);
48912 
48913 typedef void (*btf_trace_ext4_mb_new_inode_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *);
48914 
48915 typedef void (*btf_trace_ext4_mb_new_group_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *);
48916 
48917 typedef void (*btf_trace_ext4_mb_release_inode_pa)(void *, struct ext4_prealloc_space *, long long unsigned int, unsigned int);
48918 
48919 typedef void (*btf_trace_ext4_mb_release_group_pa)(void *, struct super_block *, struct ext4_prealloc_space *);
48920 
48921 typedef void (*btf_trace_ext4_discard_preallocations)(void *, struct inode *, unsigned int, unsigned int);
48922 
48923 typedef void (*btf_trace_ext4_mb_discard_preallocations)(void *, struct super_block *, int);
48924 
48925 typedef void (*btf_trace_ext4_request_blocks)(void *, struct ext4_allocation_request *);
48926 
48927 typedef void (*btf_trace_ext4_allocate_blocks)(void *, struct ext4_allocation_request *, long long unsigned int);
48928 
48929 typedef void (*btf_trace_ext4_free_blocks)(void *, struct inode *, __u64, long unsigned int, int);
48930 
48931 typedef void (*btf_trace_ext4_sync_file_enter)(void *, struct file *, int);
48932 
48933 typedef void (*btf_trace_ext4_sync_file_exit)(void *, struct inode *, int);
48934 
48935 typedef void (*btf_trace_ext4_sync_fs)(void *, struct super_block *, int);
48936 
48937 typedef void (*btf_trace_ext4_alloc_da_blocks)(void *, struct inode *);
48938 
48939 typedef void (*btf_trace_ext4_mballoc_alloc)(void *, struct ext4_allocation_context *);
48940 
48941 typedef void (*btf_trace_ext4_mballoc_prealloc)(void *, struct ext4_allocation_context *);
48942 
48943 typedef void (*btf_trace_ext4_mballoc_discard)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t);
48944 
48945 typedef void (*btf_trace_ext4_mballoc_free)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t);
48946 
48947 typedef void (*btf_trace_ext4_forget)(void *, struct inode *, int, __u64);
48948 
48949 typedef void (*btf_trace_ext4_da_update_reserve_space)(void *, struct inode *, int, int);
48950 
48951 typedef void (*btf_trace_ext4_da_reserve_space)(void *, struct inode *);
48952 
48953 typedef void (*btf_trace_ext4_da_release_space)(void *, struct inode *, int);
48954 
48955 typedef void (*btf_trace_ext4_mb_bitmap_load)(void *, struct super_block *, long unsigned int);
48956 
48957 typedef void (*btf_trace_ext4_mb_buddy_bitmap_load)(void *, struct super_block *, long unsigned int);
48958 
48959 typedef void (*btf_trace_ext4_load_inode_bitmap)(void *, struct super_block *, long unsigned int);
48960 
48961 typedef void (*btf_trace_ext4_read_block_bitmap_load)(void *, struct super_block *, long unsigned int, bool);
48962 
48963 typedef void (*btf_trace_ext4_fallocate_enter)(void *, struct inode *, loff_t, loff_t, int);
48964 
48965 typedef void (*btf_trace_ext4_punch_hole)(void *, struct inode *, loff_t, loff_t, int);
48966 
48967 typedef void (*btf_trace_ext4_zero_range)(void *, struct inode *, loff_t, loff_t, int);
48968 
48969 typedef void (*btf_trace_ext4_fallocate_exit)(void *, struct inode *, loff_t, unsigned int, int);
48970 
48971 typedef void (*btf_trace_ext4_unlink_enter)(void *, struct inode *, struct dentry *);
48972 
48973 typedef void (*btf_trace_ext4_unlink_exit)(void *, struct dentry *, int);
48974 
48975 typedef void (*btf_trace_ext4_truncate_enter)(void *, struct inode *);
48976 
48977 typedef void (*btf_trace_ext4_truncate_exit)(void *, struct inode *);
48978 
48979 typedef void (*btf_trace_ext4_ext_convert_to_initialized_enter)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *);
48980 
48981 typedef void (*btf_trace_ext4_ext_convert_to_initialized_fastpath)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *, struct ext4_extent *);
48982 
48983 typedef void (*btf_trace_ext4_ext_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int);
48984 
48985 typedef void (*btf_trace_ext4_ind_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int);
48986 
48987 typedef void (*btf_trace_ext4_ext_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int);
48988 
48989 typedef void (*btf_trace_ext4_ind_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int);
48990 
48991 typedef void (*btf_trace_ext4_ext_load_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t);
48992 
48993 typedef void (*btf_trace_ext4_load_inode)(void *, struct super_block *, long unsigned int);
48994 
48995 typedef void (*btf_trace_ext4_journal_start)(void *, struct super_block *, int, int, int, long unsigned int);
48996 
48997 typedef void (*btf_trace_ext4_journal_start_reserved)(void *, struct super_block *, int, long unsigned int);
48998 
48999 typedef void (*btf_trace_ext4_trim_extent)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t);
49000 
49001 typedef void (*btf_trace_ext4_trim_all_free)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t);
49002 
49003 typedef void (*btf_trace_ext4_ext_handle_unwritten_extents)(void *, struct inode *, struct ext4_map_blocks *, int, unsigned int, ext4_fsblk_t);
49004 
49005 typedef void (*btf_trace_ext4_get_implied_cluster_alloc_exit)(void *, struct super_block *, struct ext4_map_blocks *, int);
49006 
49007 typedef void (*btf_trace_ext4_ext_show_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t, short unsigned int);
49008 
49009 typedef void (*btf_trace_ext4_remove_blocks)(void *, struct inode *, struct ext4_extent *, ext4_lblk_t, ext4_fsblk_t, struct partial_cluster *);
49010 
49011 typedef void (*btf_trace_ext4_ext_rm_leaf)(void *, struct inode *, ext4_lblk_t, struct ext4_extent *, struct partial_cluster *);
49012 
49013 typedef void (*btf_trace_ext4_ext_rm_idx)(void *, struct inode *, ext4_fsblk_t);
49014 
49015 typedef void (*btf_trace_ext4_ext_remove_space)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int);
49016 
49017 typedef void (*btf_trace_ext4_ext_remove_space_done)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int, struct partial_cluster *, __le16);
49018 
49019 typedef void (*btf_trace_ext4_es_insert_extent)(void *, struct inode *, struct extent_status *);
49020 
49021 typedef void (*btf_trace_ext4_es_cache_extent)(void *, struct inode *, struct extent_status *);
49022 
49023 typedef void (*btf_trace_ext4_es_remove_extent)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t);
49024 
49025 typedef void (*btf_trace_ext4_es_find_extent_range_enter)(void *, struct inode *, ext4_lblk_t);
49026 
49027 typedef void (*btf_trace_ext4_es_find_extent_range_exit)(void *, struct inode *, struct extent_status *);
49028 
49029 typedef void (*btf_trace_ext4_es_lookup_extent_enter)(void *, struct inode *, ext4_lblk_t);
49030 
49031 typedef void (*btf_trace_ext4_es_lookup_extent_exit)(void *, struct inode *, struct extent_status *, int);
49032 
49033 typedef void (*btf_trace_ext4_es_shrink_count)(void *, struct super_block *, int, int);
49034 
49035 typedef void (*btf_trace_ext4_es_shrink_scan_enter)(void *, struct super_block *, int, int);
49036 
49037 typedef void (*btf_trace_ext4_es_shrink_scan_exit)(void *, struct super_block *, int, int);
49038 
49039 typedef void (*btf_trace_ext4_collapse_range)(void *, struct inode *, loff_t, loff_t);
49040 
49041 typedef void (*btf_trace_ext4_insert_range)(void *, struct inode *, loff_t, loff_t);
49042 
49043 typedef void (*btf_trace_ext4_es_shrink)(void *, struct super_block *, int, u64, int, int);
49044 
49045 typedef void (*btf_trace_ext4_es_insert_delayed_block)(void *, struct inode *, struct extent_status *, bool);
49046 
49047 typedef void (*btf_trace_ext4_fsmap_low_key)(void *, struct super_block *, u32, u32, u64, u64, u64);
49048 
49049 typedef void (*btf_trace_ext4_fsmap_high_key)(void *, struct super_block *, u32, u32, u64, u64, u64);
49050 
49051 typedef void (*btf_trace_ext4_fsmap_mapping)(void *, struct super_block *, u32, u32, u64, u64, u64);
49052 
49053 typedef void (*btf_trace_ext4_getfsmap_low_key)(void *, struct super_block *, struct ext4_fsmap *);
49054 
49055 typedef void (*btf_trace_ext4_getfsmap_high_key)(void *, struct super_block *, struct ext4_fsmap *);
49056 
49057 typedef void (*btf_trace_ext4_getfsmap_mapping)(void *, struct super_block *, struct ext4_fsmap *);
49058 
49059 typedef void (*btf_trace_ext4_shutdown)(void *, struct super_block *, long unsigned int);
49060 
49061 typedef void (*btf_trace_ext4_error)(void *, struct super_block *, const char *, unsigned int);
49062 
49063 typedef void (*btf_trace_ext4_prefetch_bitmaps)(void *, struct super_block *, ext4_group_t, ext4_group_t, unsigned int);
49064 
49065 typedef void (*btf_trace_ext4_lazy_itable_init)(void *, struct super_block *, ext4_group_t);
49066 
49067 typedef void (*btf_trace_ext4_fc_replay_scan)(void *, struct super_block *, int, int);
49068 
49069 typedef void (*btf_trace_ext4_fc_replay)(void *, struct super_block *, int, int, int, int);
49070 
49071 typedef void (*btf_trace_ext4_fc_commit_start)(void *, struct super_block *);
49072 
49073 typedef void (*btf_trace_ext4_fc_commit_stop)(void *, struct super_block *, int, int);
49074 
49075 typedef void (*btf_trace_ext4_fc_stats)(void *, struct super_block *);
49076 
49077 typedef void (*btf_trace_ext4_fc_track_create)(void *, struct inode *, struct dentry *, int);
49078 
49079 typedef void (*btf_trace_ext4_fc_track_link)(void *, struct inode *, struct dentry *, int);
49080 
49081 typedef void (*btf_trace_ext4_fc_track_unlink)(void *, struct inode *, struct dentry *, int);
49082 
49083 typedef void (*btf_trace_ext4_fc_track_inode)(void *, struct inode *, int);
49084 
49085 typedef void (*btf_trace_ext4_fc_track_range)(void *, struct inode *, long int, long int, int);
49086 
49087 typedef void (*btf_trace_ext4_update_sb)(void *, struct super_block *, ext4_fsblk_t, unsigned int);
49088 
49089 struct ext4_err_translation {
49090 	int code;
49091 	int errno;
49092 };
49093 
49094 enum {
49095 	Opt_bsd_df = 0,
49096 	Opt_minix_df = 1,
49097 	Opt_grpid = 2,
49098 	Opt_nogrpid = 3,
49099 	Opt_resgid = 4,
49100 	Opt_resuid = 5,
49101 	Opt_sb = 6,
49102 	Opt_nouid32 = 7,
49103 	Opt_debug = 8,
49104 	Opt_removed = 9,
49105 	Opt_user_xattr = 10,
49106 	Opt_nouser_xattr = 11,
49107 	Opt_acl = 12,
49108 	Opt_noacl = 13,
49109 	Opt_auto_da_alloc = 14,
49110 	Opt_noauto_da_alloc = 15,
49111 	Opt_noload = 16,
49112 	Opt_commit = 17,
49113 	Opt_min_batch_time = 18,
49114 	Opt_max_batch_time = 19,
49115 	Opt_journal_dev = 20,
49116 	Opt_journal_path = 21,
49117 	Opt_journal_checksum = 22,
49118 	Opt_journal_async_commit = 23,
49119 	Opt_abort = 24,
49120 	Opt_data_journal = 25,
49121 	Opt_data_ordered = 26,
49122 	Opt_data_writeback = 27,
49123 	Opt_data_err_abort = 28,
49124 	Opt_data_err_ignore = 29,
49125 	Opt_test_dummy_encryption = 30,
49126 	Opt_inlinecrypt = 31,
49127 	Opt_usrjquota = 32,
49128 	Opt_grpjquota = 33,
49129 	Opt_quota = 34,
49130 	Opt_noquota = 35,
49131 	Opt_barrier = 36,
49132 	Opt_nobarrier = 37,
49133 	Opt_err___2 = 38,
49134 	Opt_usrquota = 39,
49135 	Opt_grpquota = 40,
49136 	Opt_prjquota = 41,
49137 	Opt_i_version = 42,
49138 	Opt_dax = 43,
49139 	Opt_dax_always = 44,
49140 	Opt_dax_inode = 45,
49141 	Opt_dax_never = 46,
49142 	Opt_stripe = 47,
49143 	Opt_delalloc = 48,
49144 	Opt_nodelalloc = 49,
49145 	Opt_warn_on_error = 50,
49146 	Opt_nowarn_on_error = 51,
49147 	Opt_mblk_io_submit = 52,
49148 	Opt_debug_want_extra_isize = 53,
49149 	Opt_nomblk_io_submit = 54,
49150 	Opt_block_validity = 55,
49151 	Opt_noblock_validity = 56,
49152 	Opt_inode_readahead_blks = 57,
49153 	Opt_journal_ioprio = 58,
49154 	Opt_dioread_nolock = 59,
49155 	Opt_dioread_lock = 60,
49156 	Opt_discard = 61,
49157 	Opt_nodiscard = 62,
49158 	Opt_init_itable = 63,
49159 	Opt_noinit_itable = 64,
49160 	Opt_max_dir_size_kb = 65,
49161 	Opt_nojournal_checksum = 66,
49162 	Opt_nombcache = 67,
49163 	Opt_no_prefetch_block_bitmaps = 68,
49164 	Opt_mb_optimize_scan = 69,
49165 	Opt_errors = 70,
49166 	Opt_data = 71,
49167 	Opt_data_err = 72,
49168 	Opt_jqfmt = 73,
49169 	Opt_dax_type = 74,
49170 };
49171 
49172 struct mount_opts {
49173 	int token;
49174 	int mount_opt;
49175 	int flags;
49176 };
49177 
49178 struct ext4_fs_context {
49179 	char *s_qf_names[3];
49180 	char *test_dummy_enc_arg;
49181 	int s_jquota_fmt;
49182 	int mb_optimize_scan;
49183 	short unsigned int qname_spec;
49184 	long unsigned int vals_s_flags;
49185 	long unsigned int mask_s_flags;
49186 	long unsigned int journal_devnum;
49187 	long unsigned int s_commit_interval;
49188 	long unsigned int s_stripe;
49189 	unsigned int s_inode_readahead_blks;
49190 	unsigned int s_want_extra_isize;
49191 	unsigned int s_li_wait_mult;
49192 	unsigned int s_max_dir_size_kb;
49193 	unsigned int journal_ioprio;
49194 	unsigned int vals_s_mount_opt;
49195 	unsigned int mask_s_mount_opt;
49196 	unsigned int vals_s_mount_opt2;
49197 	unsigned int mask_s_mount_opt2;
49198 	unsigned int vals_s_mount_flags;
49199 	unsigned int mask_s_mount_flags;
49200 	unsigned int opt_flags;
49201 	unsigned int spec;
49202 	u32 s_max_batch_time;
49203 	u32 s_min_batch_time;
49204 	kuid_t s_resuid;
49205 	kgid_t s_resgid;
49206 	ext4_fsblk_t s_sb_block;
49207 };
49208 
49209 struct ext4_mount_options {
49210 	long unsigned int s_mount_opt;
49211 	long unsigned int s_mount_opt2;
49212 	kuid_t s_resuid;
49213 	kgid_t s_resgid;
49214 	long unsigned int s_commit_interval;
49215 	u32 s_min_batch_time;
49216 	u32 s_max_batch_time;
49217 };
49218 
49219 enum {
49220 	attr_noop = 0,
49221 	attr_delayed_allocation_blocks = 1,
49222 	attr_session_write_kbytes = 2,
49223 	attr_lifetime_write_kbytes = 3,
49224 	attr_reserved_clusters = 4,
49225 	attr_sra_exceeded_retry_limit = 5,
49226 	attr_inode_readahead = 6,
49227 	attr_trigger_test_error = 7,
49228 	attr_first_error_time = 8,
49229 	attr_last_error_time = 9,
49230 	attr_feature = 10,
49231 	attr_pointer_ui = 11,
49232 	attr_pointer_ul = 12,
49233 	attr_pointer_u64 = 13,
49234 	attr_pointer_u8 = 14,
49235 	attr_pointer_string = 15,
49236 	attr_pointer_atomic = 16,
49237 	attr_journal_task = 17,
49238 };
49239 
49240 enum {
49241 	ptr_explicit = 0,
49242 	ptr_ext4_sb_info_offset = 1,
49243 	ptr_ext4_super_block_offset = 2,
49244 };
49245 
49246 struct ext4_attr {
49247 	struct attribute attr;
49248 	short int attr_id;
49249 	short int attr_ptr;
49250 	short unsigned int attr_size;
49251 	union {
49252 		int offset;
49253 		void *explicit_ptr;
49254 	} u;
49255 };
49256 
49257 struct ext4_xattr_header {
49258 	__le32 h_magic;
49259 	__le32 h_refcount;
49260 	__le32 h_blocks;
49261 	__le32 h_hash;
49262 	__le32 h_checksum;
49263 	__u32 h_reserved[3];
49264 };
49265 
49266 struct ext4_xattr_block_find {
49267 	struct ext4_xattr_search s;
49268 	struct buffer_head *bh;
49269 };
49270 
49271 struct ext4_fc_tl {
49272 	__le16 fc_tag;
49273 	__le16 fc_len;
49274 };
49275 
49276 struct ext4_fc_head {
49277 	__le32 fc_features;
49278 	__le32 fc_tid;
49279 };
49280 
49281 struct ext4_fc_add_range {
49282 	__le32 fc_ino;
49283 	__u8 fc_ex[12];
49284 };
49285 
49286 struct ext4_fc_del_range {
49287 	__le32 fc_ino;
49288 	__le32 fc_lblk;
49289 	__le32 fc_len;
49290 };
49291 
49292 struct ext4_fc_dentry_info {
49293 	__le32 fc_parent_ino;
49294 	__le32 fc_ino;
49295 	__u8 fc_dname[0];
49296 };
49297 
49298 struct ext4_fc_inode {
49299 	__le32 fc_ino;
49300 	__u8 fc_raw_inode[0];
49301 };
49302 
49303 struct ext4_fc_tail {
49304 	__le32 fc_tid;
49305 	__le32 fc_crc;
49306 };
49307 
49308 enum {
49309 	EXT4_FC_STATUS_OK = 0,
49310 	EXT4_FC_STATUS_INELIGIBLE = 1,
49311 	EXT4_FC_STATUS_SKIPPED = 2,
49312 	EXT4_FC_STATUS_FAILED = 3,
49313 };
49314 
49315 struct ext4_fc_dentry_update {
49316 	int fcd_op;
49317 	int fcd_parent;
49318 	int fcd_ino;
49319 	struct qstr fcd_name;
49320 	unsigned char fcd_iname[32];
49321 	struct list_head fcd_list;
49322 };
49323 
49324 struct __track_dentry_update_args {
49325 	struct dentry *dentry;
49326 	int op;
49327 };
49328 
49329 struct __track_range_args {
49330 	ext4_lblk_t start;
49331 	ext4_lblk_t end;
49332 };
49333 
49334 struct dentry_info_args {
49335 	int parent_ino;
49336 	int dname_len;
49337 	int ino;
49338 	int inode_len;
49339 	char *dname;
49340 };
49341 
49342 struct ext4_orphan_block_tail {
49343 	__le32 ob_magic;
49344 	__le32 ob_checksum;
49345 };
49346 
49347 typedef struct {
49348 	__le16 e_tag;
49349 	__le16 e_perm;
49350 	__le32 e_id;
49351 } ext4_acl_entry;
49352 
49353 typedef struct {
49354 	__le32 a_version;
49355 } ext4_acl_header;
49356 
49357 struct commit_header {
49358 	__be32 h_magic;
49359 	__be32 h_blocktype;
49360 	__be32 h_sequence;
49361 	unsigned char h_chksum_type;
49362 	unsigned char h_chksum_size;
49363 	unsigned char h_padding[2];
49364 	__be32 h_chksum[8];
49365 	__be64 h_commit_sec;
49366 	__be32 h_commit_nsec;
49367 };
49368 
49369 struct journal_block_tag3_s {
49370 	__be32 t_blocknr;
49371 	__be32 t_flags;
49372 	__be32 t_blocknr_high;
49373 	__be32 t_checksum;
49374 };
49375 
49376 typedef struct journal_block_tag3_s journal_block_tag3_t;
49377 
49378 struct journal_block_tag_s {
49379 	__be32 t_blocknr;
49380 	__be16 t_checksum;
49381 	__be16 t_flags;
49382 	__be32 t_blocknr_high;
49383 };
49384 
49385 typedef struct journal_block_tag_s journal_block_tag_t;
49386 
49387 struct jbd2_journal_block_tail {
49388 	__be32 t_checksum;
49389 };
49390 
49391 struct jbd2_journal_revoke_header_s {
49392 	journal_header_t r_header;
49393 	__be32 r_count;
49394 };
49395 
49396 typedef struct jbd2_journal_revoke_header_s jbd2_journal_revoke_header_t;
49397 
49398 struct recovery_info {
49399 	tid_t start_transaction;
49400 	tid_t end_transaction;
49401 	int nr_replays;
49402 	int nr_revokes;
49403 	int nr_revoke_hits;
49404 };
49405 
49406 struct jbd2_revoke_table_s {
49407 	int hash_size;
49408 	int hash_shift;
49409 	struct list_head *hash_table;
49410 };
49411 
49412 struct jbd2_revoke_record_s {
49413 	struct list_head hash;
49414 	tid_t sequence;
49415 	long long unsigned int blocknr;
49416 };
49417 
49418 struct trace_event_raw_jbd2_checkpoint {
49419 	struct trace_entry ent;
49420 	dev_t dev;
49421 	int result;
49422 	char __data[0];
49423 };
49424 
49425 struct trace_event_raw_jbd2_commit {
49426 	struct trace_entry ent;
49427 	dev_t dev;
49428 	char sync_commit;
49429 	int transaction;
49430 	char __data[0];
49431 };
49432 
49433 struct trace_event_raw_jbd2_end_commit {
49434 	struct trace_entry ent;
49435 	dev_t dev;
49436 	char sync_commit;
49437 	int transaction;
49438 	int head;
49439 	char __data[0];
49440 };
49441 
49442 struct trace_event_raw_jbd2_submit_inode_data {
49443 	struct trace_entry ent;
49444 	dev_t dev;
49445 	ino_t ino;
49446 	char __data[0];
49447 };
49448 
49449 struct trace_event_raw_jbd2_handle_start_class {
49450 	struct trace_entry ent;
49451 	dev_t dev;
49452 	long unsigned int tid;
49453 	unsigned int type;
49454 	unsigned int line_no;
49455 	int requested_blocks;
49456 	char __data[0];
49457 };
49458 
49459 struct trace_event_raw_jbd2_handle_extend {
49460 	struct trace_entry ent;
49461 	dev_t dev;
49462 	long unsigned int tid;
49463 	unsigned int type;
49464 	unsigned int line_no;
49465 	int buffer_credits;
49466 	int requested_blocks;
49467 	char __data[0];
49468 };
49469 
49470 struct trace_event_raw_jbd2_handle_stats {
49471 	struct trace_entry ent;
49472 	dev_t dev;
49473 	long unsigned int tid;
49474 	unsigned int type;
49475 	unsigned int line_no;
49476 	int interval;
49477 	int sync;
49478 	int requested_blocks;
49479 	int dirtied_blocks;
49480 	char __data[0];
49481 };
49482 
49483 struct trace_event_raw_jbd2_run_stats {
49484 	struct trace_entry ent;
49485 	dev_t dev;
49486 	long unsigned int tid;
49487 	long unsigned int wait;
49488 	long unsigned int request_delay;
49489 	long unsigned int running;
49490 	long unsigned int locked;
49491 	long unsigned int flushing;
49492 	long unsigned int logging;
49493 	__u32 handle_count;
49494 	__u32 blocks;
49495 	__u32 blocks_logged;
49496 	char __data[0];
49497 };
49498 
49499 struct trace_event_raw_jbd2_checkpoint_stats {
49500 	struct trace_entry ent;
49501 	dev_t dev;
49502 	long unsigned int tid;
49503 	long unsigned int chp_time;
49504 	__u32 forced_to_close;
49505 	__u32 written;
49506 	__u32 dropped;
49507 	char __data[0];
49508 };
49509 
49510 struct trace_event_raw_jbd2_update_log_tail {
49511 	struct trace_entry ent;
49512 	dev_t dev;
49513 	tid_t tail_sequence;
49514 	tid_t first_tid;
49515 	long unsigned int block_nr;
49516 	long unsigned int freed;
49517 	char __data[0];
49518 };
49519 
49520 struct trace_event_raw_jbd2_write_superblock {
49521 	struct trace_entry ent;
49522 	dev_t dev;
49523 	int write_op;
49524 	char __data[0];
49525 };
49526 
49527 struct trace_event_raw_jbd2_lock_buffer_stall {
49528 	struct trace_entry ent;
49529 	dev_t dev;
49530 	long unsigned int stall_ms;
49531 	char __data[0];
49532 };
49533 
49534 struct trace_event_raw_jbd2_journal_shrink {
49535 	struct trace_entry ent;
49536 	dev_t dev;
49537 	long unsigned int nr_to_scan;
49538 	long unsigned int count;
49539 	char __data[0];
49540 };
49541 
49542 struct trace_event_raw_jbd2_shrink_scan_exit {
49543 	struct trace_entry ent;
49544 	dev_t dev;
49545 	long unsigned int nr_to_scan;
49546 	long unsigned int nr_shrunk;
49547 	long unsigned int count;
49548 	char __data[0];
49549 };
49550 
49551 struct trace_event_raw_jbd2_shrink_checkpoint_list {
49552 	struct trace_entry ent;
49553 	dev_t dev;
49554 	tid_t first_tid;
49555 	tid_t tid;
49556 	tid_t last_tid;
49557 	long unsigned int nr_freed;
49558 	long unsigned int nr_scanned;
49559 	tid_t next_tid;
49560 	char __data[0];
49561 };
49562 
49563 struct trace_event_data_offsets_jbd2_checkpoint {};
49564 
49565 struct trace_event_data_offsets_jbd2_commit {};
49566 
49567 struct trace_event_data_offsets_jbd2_end_commit {};
49568 
49569 struct trace_event_data_offsets_jbd2_submit_inode_data {};
49570 
49571 struct trace_event_data_offsets_jbd2_handle_start_class {};
49572 
49573 struct trace_event_data_offsets_jbd2_handle_extend {};
49574 
49575 struct trace_event_data_offsets_jbd2_handle_stats {};
49576 
49577 struct trace_event_data_offsets_jbd2_run_stats {};
49578 
49579 struct trace_event_data_offsets_jbd2_checkpoint_stats {};
49580 
49581 struct trace_event_data_offsets_jbd2_update_log_tail {};
49582 
49583 struct trace_event_data_offsets_jbd2_write_superblock {};
49584 
49585 struct trace_event_data_offsets_jbd2_lock_buffer_stall {};
49586 
49587 struct trace_event_data_offsets_jbd2_journal_shrink {};
49588 
49589 struct trace_event_data_offsets_jbd2_shrink_scan_exit {};
49590 
49591 struct trace_event_data_offsets_jbd2_shrink_checkpoint_list {};
49592 
49593 typedef void (*btf_trace_jbd2_checkpoint)(void *, journal_t *, int);
49594 
49595 typedef void (*btf_trace_jbd2_start_commit)(void *, journal_t *, transaction_t *);
49596 
49597 typedef void (*btf_trace_jbd2_commit_locking)(void *, journal_t *, transaction_t *);
49598 
49599 typedef void (*btf_trace_jbd2_commit_flushing)(void *, journal_t *, transaction_t *);
49600 
49601 typedef void (*btf_trace_jbd2_commit_logging)(void *, journal_t *, transaction_t *);
49602 
49603 typedef void (*btf_trace_jbd2_drop_transaction)(void *, journal_t *, transaction_t *);
49604 
49605 typedef void (*btf_trace_jbd2_end_commit)(void *, journal_t *, transaction_t *);
49606 
49607 typedef void (*btf_trace_jbd2_submit_inode_data)(void *, struct inode *);
49608 
49609 typedef void (*btf_trace_jbd2_handle_start)(void *, dev_t, long unsigned int, unsigned int, unsigned int, int);
49610 
49611 typedef void (*btf_trace_jbd2_handle_restart)(void *, dev_t, long unsigned int, unsigned int, unsigned int, int);
49612 
49613 typedef void (*btf_trace_jbd2_handle_extend)(void *, dev_t, long unsigned int, unsigned int, unsigned int, int, int);
49614 
49615 typedef void (*btf_trace_jbd2_handle_stats)(void *, dev_t, long unsigned int, unsigned int, unsigned int, int, int, int, int);
49616 
49617 typedef void (*btf_trace_jbd2_run_stats)(void *, dev_t, long unsigned int, struct transaction_run_stats_s *);
49618 
49619 typedef void (*btf_trace_jbd2_checkpoint_stats)(void *, dev_t, long unsigned int, struct transaction_chp_stats_s *);
49620 
49621 typedef void (*btf_trace_jbd2_update_log_tail)(void *, journal_t *, tid_t, long unsigned int, long unsigned int);
49622 
49623 typedef void (*btf_trace_jbd2_write_superblock)(void *, journal_t *, int);
49624 
49625 typedef void (*btf_trace_jbd2_lock_buffer_stall)(void *, dev_t, long unsigned int);
49626 
49627 typedef void (*btf_trace_jbd2_shrink_count)(void *, journal_t *, long unsigned int, long unsigned int);
49628 
49629 typedef void (*btf_trace_jbd2_shrink_scan_enter)(void *, journal_t *, long unsigned int, long unsigned int);
49630 
49631 typedef void (*btf_trace_jbd2_shrink_scan_exit)(void *, journal_t *, long unsigned int, long unsigned int, long unsigned int);
49632 
49633 typedef void (*btf_trace_jbd2_shrink_checkpoint_list)(void *, journal_t *, tid_t, tid_t, tid_t, long unsigned int, long unsigned int, tid_t);
49634 
49635 struct jbd2_stats_proc_session {
49636 	journal_t *journal;
49637 	struct transaction_stats_s *stats;
49638 	int start;
49639 	int max;
49640 };
49641 
49642 struct ramfs_mount_opts {
49643 	umode_t mode;
49644 };
49645 
49646 struct ramfs_fs_info {
49647 	struct ramfs_mount_opts mount_opts;
49648 };
49649 
49650 enum ramfs_param {
49651 	Opt_mode___3 = 0,
49652 };
49653 
49654 enum hugetlbfs_size_type {
49655 	NO_SIZE = 0,
49656 	SIZE_STD = 1,
49657 	SIZE_PERCENT = 2,
49658 };
49659 
49660 struct hugetlbfs_fs_context {
49661 	struct hstate *hstate;
49662 	long long unsigned int max_size_opt;
49663 	long long unsigned int min_size_opt;
49664 	long int max_hpages;
49665 	long int nr_inodes;
49666 	long int min_hpages;
49667 	enum hugetlbfs_size_type max_val_type;
49668 	enum hugetlbfs_size_type min_val_type;
49669 	kuid_t uid;
49670 	kgid_t gid;
49671 	umode_t mode;
49672 };
49673 
49674 enum hugetlb_param {
49675 	Opt_gid___4 = 0,
49676 	Opt_min_size = 1,
49677 	Opt_mode___4 = 2,
49678 	Opt_nr_inodes___2 = 3,
49679 	Opt_pagesize = 4,
49680 	Opt_size___2 = 5,
49681 	Opt_uid___3 = 6,
49682 };
49683 
49684 struct getdents_callback___2 {
49685 	struct dir_context ctx;
49686 	char *name;
49687 	u64 ino;
49688 	int found;
49689 	int sequence;
49690 };
49691 
49692 typedef u16 wchar_t;
49693 
49694 typedef u32 unicode_t;
49695 
49696 struct nls_table {
49697 	const char *charset;
49698 	const char *alias;
49699 	int (*uni2char)(wchar_t, unsigned char *, int);
49700 	int (*char2uni)(const unsigned char *, int, wchar_t *);
49701 	const unsigned char *charset2lower;
49702 	const unsigned char *charset2upper;
49703 	struct module *owner;
49704 	struct nls_table *next;
49705 };
49706 
49707 enum utf16_endian {
49708 	UTF16_HOST_ENDIAN = 0,
49709 	UTF16_LITTLE_ENDIAN = 1,
49710 	UTF16_BIG_ENDIAN = 2,
49711 };
49712 
49713 struct utf8_table {
49714 	int cmask;
49715 	int cval;
49716 	int shift;
49717 	long int lmask;
49718 	long int lval;
49719 };
49720 
49721 enum fscache_cookie_state {
49722 	FSCACHE_COOKIE_STATE_QUIESCENT = 0,
49723 	FSCACHE_COOKIE_STATE_LOOKING_UP = 1,
49724 	FSCACHE_COOKIE_STATE_CREATING = 2,
49725 	FSCACHE_COOKIE_STATE_ACTIVE = 3,
49726 	FSCACHE_COOKIE_STATE_INVALIDATING = 4,
49727 	FSCACHE_COOKIE_STATE_FAILED = 5,
49728 	FSCACHE_COOKIE_STATE_LRU_DISCARDING = 6,
49729 	FSCACHE_COOKIE_STATE_WITHDRAWING = 7,
49730 	FSCACHE_COOKIE_STATE_RELINQUISHING = 8,
49731 	FSCACHE_COOKIE_STATE_DROPPED = 9,
49732 };
49733 
49734 struct fscache_cache;
49735 
49736 struct fscache_volume {
49737 	refcount_t ref;
49738 	atomic_t n_cookies;
49739 	atomic_t n_accesses;
49740 	unsigned int debug_id;
49741 	unsigned int key_hash;
49742 	char *key;
49743 	struct list_head proc_link;
49744 	struct hlist_bl_node hash_link;
49745 	struct work_struct work;
49746 	struct fscache_cache *cache;
49747 	void *cache_priv;
49748 	spinlock_t lock;
49749 	long unsigned int flags;
49750 	u8 coherency_len;
49751 	u8 coherency[0];
49752 };
49753 
49754 struct fscache_cookie {
49755 	refcount_t ref;
49756 	atomic_t n_active;
49757 	atomic_t n_accesses;
49758 	unsigned int debug_id;
49759 	unsigned int inval_counter;
49760 	spinlock_t lock;
49761 	struct fscache_volume *volume;
49762 	void *cache_priv;
49763 	struct hlist_bl_node hash_link;
49764 	struct list_head proc_link;
49765 	struct list_head commit_link;
49766 	struct work_struct work;
49767 	loff_t object_size;
49768 	long unsigned int unused_at;
49769 	long unsigned int flags;
49770 	enum fscache_cookie_state state;
49771 	u8 advice;
49772 	u8 key_len;
49773 	u8 aux_len;
49774 	u32 key_hash;
49775 	union {
49776 		void *key;
49777 		u8 inline_key[16];
49778 	};
49779 	union {
49780 		void *aux;
49781 		u8 inline_aux[8];
49782 	};
49783 };
49784 
49785 struct p9_qid {
49786 	u8 type;
49787 	u32 version;
49788 	u64 path;
49789 };
49790 
49791 struct p9_wstat {
49792 	u16 size;
49793 	u16 type;
49794 	u32 dev;
49795 	struct p9_qid qid;
49796 	u32 mode;
49797 	u32 atime;
49798 	u32 mtime;
49799 	u64 length;
49800 	const char *name;
49801 	const char *uid;
49802 	const char *gid;
49803 	const char *muid;
49804 	char *extension;
49805 	kuid_t n_uid;
49806 	kgid_t n_gid;
49807 	kuid_t n_muid;
49808 };
49809 
49810 struct p9_stat_dotl {
49811 	u64 st_result_mask;
49812 	struct p9_qid qid;
49813 	u32 st_mode;
49814 	kuid_t st_uid;
49815 	kgid_t st_gid;
49816 	u64 st_nlink;
49817 	u64 st_rdev;
49818 	u64 st_size;
49819 	u64 st_blksize;
49820 	u64 st_blocks;
49821 	u64 st_atime_sec;
49822 	u64 st_atime_nsec;
49823 	u64 st_mtime_sec;
49824 	u64 st_mtime_nsec;
49825 	u64 st_ctime_sec;
49826 	u64 st_ctime_nsec;
49827 	u64 st_btime_sec;
49828 	u64 st_btime_nsec;
49829 	u64 st_gen;
49830 	u64 st_data_version;
49831 };
49832 
49833 struct p9_rstatfs {
49834 	u32 type;
49835 	u32 bsize;
49836 	u64 blocks;
49837 	u64 bfree;
49838 	u64 bavail;
49839 	u64 files;
49840 	u64 ffree;
49841 	u64 fsid;
49842 	u32 namelen;
49843 };
49844 
49845 enum p9_trans_status {
49846 	Connected = 0,
49847 	BeginDisconnect = 1,
49848 	Disconnected = 2,
49849 	Hung = 3,
49850 };
49851 
49852 struct p9_trans_module;
49853 
49854 struct p9_client {
49855 	spinlock_t lock;
49856 	unsigned int msize;
49857 	unsigned char proto_version;
49858 	struct p9_trans_module *trans_mod;
49859 	enum p9_trans_status status;
49860 	void *trans;
49861 	struct kmem_cache *fcall_cache;
49862 	union {
49863 		struct {
49864 			int rfd;
49865 			int wfd;
49866 		} fd;
49867 		struct {
49868 			u16 port;
49869 			bool privport;
49870 		} tcp;
49871 	} trans_opts;
49872 	struct idr fids;
49873 	struct idr reqs;
49874 	char name[65];
49875 };
49876 
49877 struct p9_fid {
49878 	struct p9_client *clnt;
49879 	u32 fid;
49880 	refcount_t count;
49881 	int mode;
49882 	struct p9_qid qid;
49883 	u32 iounit;
49884 	kuid_t uid;
49885 	void *rdir;
49886 	struct hlist_node dlist;
49887 	struct hlist_node ilist;
49888 };
49889 
49890 enum p9_session_flags {
49891 	V9FS_PROTO_2000U = 1,
49892 	V9FS_PROTO_2000L = 2,
49893 	V9FS_ACCESS_SINGLE = 4,
49894 	V9FS_ACCESS_USER = 8,
49895 	V9FS_ACCESS_CLIENT = 16,
49896 	V9FS_POSIX_ACL = 32,
49897 };
49898 
49899 enum p9_cache_modes {
49900 	CACHE_NONE = 0,
49901 	CACHE_MMAP = 1,
49902 	CACHE_LOOSE = 2,
49903 	CACHE_FSCACHE = 3,
49904 	nr__p9_cache_modes = 4,
49905 };
49906 
49907 struct v9fs_session_info {
49908 	unsigned char flags;
49909 	unsigned char nodev;
49910 	short unsigned int debug;
49911 	unsigned int afid;
49912 	unsigned int cache;
49913 	char *uname;
49914 	char *aname;
49915 	unsigned int maxdata;
49916 	kuid_t dfltuid;
49917 	kgid_t dfltgid;
49918 	kuid_t uid;
49919 	struct p9_client *clnt;
49920 	struct list_head slist;
49921 	struct rw_semaphore rename_sem;
49922 	long int session_lock_timeout;
49923 };
49924 
49925 struct v9fs_inode {
49926 	struct p9_qid qid;
49927 	unsigned int cache_validity;
49928 	struct p9_fid *writeback_fid;
49929 	struct mutex v_mutex;
49930 	struct inode vfs_inode;
49931 };
49932 
49933 enum p9_open_mode_t {
49934 	P9_OREAD = 0,
49935 	P9_OWRITE = 1,
49936 	P9_ORDWR = 2,
49937 	P9_OEXEC = 3,
49938 	P9_OTRUNC = 16,
49939 	P9_OREXEC = 32,
49940 	P9_ORCLOSE = 64,
49941 	P9_OAPPEND = 128,
49942 	P9_OEXCL = 4096,
49943 };
49944 
49945 enum p9_perm_t {
49946 	P9_DMDIR = 2147483648,
49947 	P9_DMAPPEND = 1073741824,
49948 	P9_DMEXCL = 536870912,
49949 	P9_DMMOUNT = 268435456,
49950 	P9_DMAUTH = 134217728,
49951 	P9_DMTMP = 67108864,
49952 	P9_DMSYMLINK = 33554432,
49953 	P9_DMLINK = 16777216,
49954 	P9_DMDEVICE = 8388608,
49955 	P9_DMNAMEDPIPE = 2097152,
49956 	P9_DMSOCKET = 1048576,
49957 	P9_DMSETUID = 524288,
49958 	P9_DMSETGID = 262144,
49959 	P9_DMSETVTX = 65536,
49960 };
49961 
49962 struct p9_iattr_dotl {
49963 	u32 valid;
49964 	u32 mode;
49965 	kuid_t uid;
49966 	kgid_t gid;
49967 	u64 size;
49968 	u64 atime_sec;
49969 	u64 atime_nsec;
49970 	u64 mtime_sec;
49971 	u64 mtime_nsec;
49972 };
49973 
49974 struct dotl_openflag_map {
49975 	int open_flag;
49976 	int dotl_flag;
49977 };
49978 
49979 struct dotl_iattr_map {
49980 	int iattr_valid;
49981 	int p9_iattr_valid;
49982 };
49983 
49984 struct p9_flock {
49985 	u8 type;
49986 	u32 flags;
49987 	u64 start;
49988 	u64 length;
49989 	u32 proc_id;
49990 	char *client_id;
49991 };
49992 
49993 struct p9_getlock {
49994 	u8 type;
49995 	u64 start;
49996 	u64 length;
49997 	u32 proc_id;
49998 	char *client_id;
49999 };
50000 
50001 struct p9_dirent {
50002 	struct p9_qid qid;
50003 	u64 d_off;
50004 	unsigned char d_type;
50005 	char d_name[256];
50006 };
50007 
50008 struct p9_rdir {
50009 	int head;
50010 	int tail;
50011 	uint8_t buf[0];
50012 };
50013 
50014 struct p9_fcall {
50015 	u32 size;
50016 	u8 id;
50017 	u16 tag;
50018 	size_t offset;
50019 	size_t capacity;
50020 	struct kmem_cache *cache;
50021 	u8 *sdata;
50022 };
50023 
50024 struct p9_req_t {
50025 	int status;
50026 	int t_err;
50027 	struct kref refcount;
50028 	wait_queue_head_t wq;
50029 	struct p9_fcall tc;
50030 	struct p9_fcall rc;
50031 	struct list_head req_list;
50032 };
50033 
50034 struct p9_trans_module {
50035 	struct list_head list;
50036 	char *name;
50037 	int maxsize;
50038 	int def;
50039 	struct module *owner;
50040 	int (*create)(struct p9_client *, const char *, char *);
50041 	void (*close)(struct p9_client *);
50042 	int (*request)(struct p9_client *, struct p9_req_t *);
50043 	int (*cancel)(struct p9_client *, struct p9_req_t *);
50044 	int (*cancelled)(struct p9_client *, struct p9_req_t *);
50045 	int (*zc_request)(struct p9_client *, struct p9_req_t *, struct iov_iter *, struct iov_iter *, int, int, int);
50046 	int (*show_options)(struct seq_file *, struct p9_client *);
50047 };
50048 
50049 enum {
50050 	Opt_debug___2 = 0,
50051 	Opt_dfltuid = 1,
50052 	Opt_dfltgid = 2,
50053 	Opt_afid = 3,
50054 	Opt_uname = 4,
50055 	Opt_remotename = 5,
50056 	Opt_cache = 6,
50057 	Opt_cachetag = 7,
50058 	Opt_nodevmap = 8,
50059 	Opt_cache_loose = 9,
50060 	Opt_fscache = 10,
50061 	Opt_mmap = 11,
50062 	Opt_access = 12,
50063 	Opt_posixacl = 13,
50064 	Opt_locktimeout = 14,
50065 	Opt_err___3 = 15,
50066 };
50067 
50068 typedef struct vfsmount * (*debugfs_automount_t)(struct dentry *, void *);
50069 
50070 struct debugfs_fsdata {
50071 	const struct file_operations *real_fops;
50072 	refcount_t active_users;
50073 	struct completion active_users_drained;
50074 };
50075 
50076 struct debugfs_mount_opts {
50077 	kuid_t uid;
50078 	kgid_t gid;
50079 	umode_t mode;
50080 };
50081 
50082 enum {
50083 	Opt_uid___4 = 0,
50084 	Opt_gid___5 = 1,
50085 	Opt_mode___5 = 2,
50086 	Opt_err___4 = 3,
50087 };
50088 
50089 struct debugfs_fs_info {
50090 	struct debugfs_mount_opts mount_opts;
50091 };
50092 
50093 struct debugfs_blob_wrapper {
50094 	void *data;
50095 	long unsigned int size;
50096 };
50097 
50098 struct debugfs_reg32 {
50099 	char *name;
50100 	long unsigned int offset;
50101 };
50102 
50103 struct debugfs_regset32 {
50104 	const struct debugfs_reg32 *regs;
50105 	int nregs;
50106 	void *base;
50107 	struct device *dev;
50108 };
50109 
50110 struct debugfs_u32_array {
50111 	u32 *array;
50112 	u32 n_elements;
50113 };
50114 
50115 struct debugfs_devm_entry {
50116 	int (*read)(struct seq_file *, void *);
50117 	struct device *dev;
50118 };
50119 
50120 struct tracefs_dir_ops {
50121 	int (*mkdir)(const char *);
50122 	int (*rmdir)(const char *);
50123 };
50124 
50125 struct tracefs_mount_opts {
50126 	kuid_t uid;
50127 	kgid_t gid;
50128 	umode_t mode;
50129 };
50130 
50131 struct tracefs_fs_info {
50132 	struct tracefs_mount_opts mount_opts;
50133 };
50134 
50135 struct ipc_perm {
50136 	__kernel_key_t key;
50137 	__kernel_uid_t uid;
50138 	__kernel_gid_t gid;
50139 	__kernel_uid_t cuid;
50140 	__kernel_gid_t cgid;
50141 	__kernel_mode_t mode;
50142 	short unsigned int seq;
50143 };
50144 
50145 struct ipc64_perm {
50146 	__kernel_key_t key;
50147 	__kernel_uid32_t uid;
50148 	__kernel_gid32_t gid;
50149 	__kernel_uid32_t cuid;
50150 	__kernel_gid32_t cgid;
50151 	__kernel_mode_t mode;
50152 	unsigned char __pad1[0];
50153 	short unsigned int seq;
50154 	short unsigned int __pad2;
50155 	__kernel_ulong_t __unused1;
50156 	__kernel_ulong_t __unused2;
50157 };
50158 
50159 struct ipc_params {
50160 	key_t key;
50161 	int flg;
50162 	union {
50163 		size_t size;
50164 		int nsems;
50165 	} u;
50166 };
50167 
50168 struct ipc_ops {
50169 	int (*getnew)(struct ipc_namespace *, struct ipc_params *);
50170 	int (*associate)(struct kern_ipc_perm *, int);
50171 	int (*more_checks)(struct kern_ipc_perm *, struct ipc_params *);
50172 };
50173 
50174 struct ipc_proc_iface {
50175 	const char *path;
50176 	const char *header;
50177 	int ids;
50178 	int (*show)(struct seq_file *, void *);
50179 };
50180 
50181 struct ipc_proc_iter {
50182 	struct ipc_namespace *ns;
50183 	struct pid_namespace *pid_ns;
50184 	struct ipc_proc_iface *iface;
50185 };
50186 
50187 struct msg_msgseg;
50188 
50189 struct msg_msg {
50190 	struct list_head m_list;
50191 	long int m_type;
50192 	size_t m_ts;
50193 	struct msg_msgseg *next;
50194 	void *security;
50195 };
50196 
50197 struct msg_msgseg {
50198 	struct msg_msgseg *next;
50199 };
50200 
50201 typedef int __kernel_ipc_pid_t;
50202 
50203 struct msgbuf {
50204 	__kernel_long_t mtype;
50205 	char mtext[1];
50206 };
50207 
50208 struct msg;
50209 
50210 struct msqid_ds {
50211 	struct ipc_perm msg_perm;
50212 	struct msg *msg_first;
50213 	struct msg *msg_last;
50214 	__kernel_old_time_t msg_stime;
50215 	__kernel_old_time_t msg_rtime;
50216 	__kernel_old_time_t msg_ctime;
50217 	long unsigned int msg_lcbytes;
50218 	long unsigned int msg_lqbytes;
50219 	short unsigned int msg_cbytes;
50220 	short unsigned int msg_qnum;
50221 	short unsigned int msg_qbytes;
50222 	__kernel_ipc_pid_t msg_lspid;
50223 	__kernel_ipc_pid_t msg_lrpid;
50224 };
50225 
50226 struct msqid64_ds {
50227 	struct ipc64_perm msg_perm;
50228 	long int msg_stime;
50229 	long int msg_rtime;
50230 	long int msg_ctime;
50231 	long unsigned int msg_cbytes;
50232 	long unsigned int msg_qnum;
50233 	long unsigned int msg_qbytes;
50234 	__kernel_pid_t msg_lspid;
50235 	__kernel_pid_t msg_lrpid;
50236 	long unsigned int __unused4;
50237 	long unsigned int __unused5;
50238 };
50239 
50240 struct msginfo {
50241 	int msgpool;
50242 	int msgmap;
50243 	int msgmax;
50244 	int msgmnb;
50245 	int msgmni;
50246 	int msgssz;
50247 	int msgtql;
50248 	short unsigned int msgseg;
50249 };
50250 
50251 struct msg_queue {
50252 	struct kern_ipc_perm q_perm;
50253 	time64_t q_stime;
50254 	time64_t q_rtime;
50255 	time64_t q_ctime;
50256 	long unsigned int q_cbytes;
50257 	long unsigned int q_qnum;
50258 	long unsigned int q_qbytes;
50259 	struct pid *q_lspid;
50260 	struct pid *q_lrpid;
50261 	struct list_head q_messages;
50262 	struct list_head q_receivers;
50263 	struct list_head q_senders;
50264 	long: 64;
50265 	long: 64;
50266 };
50267 
50268 struct msg_receiver {
50269 	struct list_head r_list;
50270 	struct task_struct *r_tsk;
50271 	int r_mode;
50272 	long int r_msgtype;
50273 	long int r_maxsize;
50274 	struct msg_msg *r_msg;
50275 };
50276 
50277 struct msg_sender {
50278 	struct list_head list;
50279 	struct task_struct *tsk;
50280 	size_t msgsz;
50281 };
50282 
50283 struct sem;
50284 
50285 struct sem_queue;
50286 
50287 struct sem_undo;
50288 
50289 struct semid_ds {
50290 	struct ipc_perm sem_perm;
50291 	__kernel_old_time_t sem_otime;
50292 	__kernel_old_time_t sem_ctime;
50293 	struct sem *sem_base;
50294 	struct sem_queue *sem_pending;
50295 	struct sem_queue **sem_pending_last;
50296 	struct sem_undo *undo;
50297 	short unsigned int sem_nsems;
50298 };
50299 
50300 struct sem {
50301 	int semval;
50302 	struct pid *sempid;
50303 	spinlock_t lock;
50304 	struct list_head pending_alter;
50305 	struct list_head pending_const;
50306 	time64_t sem_otime;
50307 	long: 64;
50308 };
50309 
50310 struct sem_queue {
50311 	struct list_head list;
50312 	struct task_struct *sleeper;
50313 	struct sem_undo *undo;
50314 	struct pid *pid;
50315 	int status;
50316 	struct sembuf *sops;
50317 	struct sembuf *blocking;
50318 	int nsops;
50319 	bool alter;
50320 	bool dupsop;
50321 };
50322 
50323 struct sem_undo {
50324 	struct list_head list_proc;
50325 	struct callback_head rcu;
50326 	struct sem_undo_list *ulp;
50327 	struct list_head list_id;
50328 	int semid;
50329 	short int *semadj;
50330 };
50331 
50332 struct semid64_ds {
50333 	struct ipc64_perm sem_perm;
50334 	__kernel_long_t sem_otime;
50335 	__kernel_ulong_t __unused1;
50336 	__kernel_long_t sem_ctime;
50337 	__kernel_ulong_t __unused2;
50338 	__kernel_ulong_t sem_nsems;
50339 	__kernel_ulong_t __unused3;
50340 	__kernel_ulong_t __unused4;
50341 };
50342 
50343 struct seminfo {
50344 	int semmap;
50345 	int semmni;
50346 	int semmns;
50347 	int semmnu;
50348 	int semmsl;
50349 	int semopm;
50350 	int semume;
50351 	int semusz;
50352 	int semvmx;
50353 	int semaem;
50354 };
50355 
50356 struct sem_undo_list {
50357 	refcount_t refcnt;
50358 	spinlock_t lock;
50359 	struct list_head list_proc;
50360 };
50361 
50362 struct sem_array {
50363 	struct kern_ipc_perm sem_perm;
50364 	time64_t sem_ctime;
50365 	struct list_head pending_alter;
50366 	struct list_head pending_const;
50367 	struct list_head list_id;
50368 	int sem_nsems;
50369 	int complex_count;
50370 	unsigned int use_global_lock;
50371 	long: 32;
50372 	long: 64;
50373 	long: 64;
50374 	long: 64;
50375 	long: 64;
50376 	long: 64;
50377 	long: 64;
50378 	long: 64;
50379 	struct sem sems[0];
50380 };
50381 
50382 struct shmid_ds {
50383 	struct ipc_perm shm_perm;
50384 	int shm_segsz;
50385 	__kernel_old_time_t shm_atime;
50386 	__kernel_old_time_t shm_dtime;
50387 	__kernel_old_time_t shm_ctime;
50388 	__kernel_ipc_pid_t shm_cpid;
50389 	__kernel_ipc_pid_t shm_lpid;
50390 	short unsigned int shm_nattch;
50391 	short unsigned int shm_unused;
50392 	void *shm_unused2;
50393 	void *shm_unused3;
50394 };
50395 
50396 struct shmid64_ds {
50397 	struct ipc64_perm shm_perm;
50398 	size_t shm_segsz;
50399 	long int shm_atime;
50400 	long int shm_dtime;
50401 	long int shm_ctime;
50402 	__kernel_pid_t shm_cpid;
50403 	__kernel_pid_t shm_lpid;
50404 	long unsigned int shm_nattch;
50405 	long unsigned int __unused4;
50406 	long unsigned int __unused5;
50407 };
50408 
50409 struct shminfo64 {
50410 	long unsigned int shmmax;
50411 	long unsigned int shmmin;
50412 	long unsigned int shmmni;
50413 	long unsigned int shmseg;
50414 	long unsigned int shmall;
50415 	long unsigned int __unused1;
50416 	long unsigned int __unused2;
50417 	long unsigned int __unused3;
50418 	long unsigned int __unused4;
50419 };
50420 
50421 struct shminfo {
50422 	int shmmax;
50423 	int shmmin;
50424 	int shmmni;
50425 	int shmseg;
50426 	int shmall;
50427 };
50428 
50429 struct shm_info {
50430 	int used_ids;
50431 	__kernel_ulong_t shm_tot;
50432 	__kernel_ulong_t shm_rss;
50433 	__kernel_ulong_t shm_swp;
50434 	__kernel_ulong_t swap_attempts;
50435 	__kernel_ulong_t swap_successes;
50436 };
50437 
50438 struct shmid_kernel {
50439 	struct kern_ipc_perm shm_perm;
50440 	struct file *shm_file;
50441 	long unsigned int shm_nattch;
50442 	long unsigned int shm_segsz;
50443 	time64_t shm_atim;
50444 	time64_t shm_dtim;
50445 	time64_t shm_ctim;
50446 	struct pid *shm_cprid;
50447 	struct pid *shm_lprid;
50448 	struct ucounts *mlock_ucounts;
50449 	struct task_struct *shm_creator;
50450 	struct list_head shm_clist;
50451 	struct ipc_namespace *ns;
50452 	long: 64;
50453 	long: 64;
50454 	long: 64;
50455 };
50456 
50457 struct shm_file_data {
50458 	int id;
50459 	struct ipc_namespace *ns;
50460 	struct file *file;
50461 	const struct vm_operations_struct *vm_ops;
50462 };
50463 
50464 struct mqueue_fs_context {
50465 	struct ipc_namespace *ipc_ns;
50466 };
50467 
50468 struct posix_msg_tree_node {
50469 	struct rb_node rb_node;
50470 	struct list_head msg_list;
50471 	int priority;
50472 };
50473 
50474 struct ext_wait_queue {
50475 	struct task_struct *task;
50476 	struct list_head list;
50477 	struct msg_msg *msg;
50478 	int state;
50479 };
50480 
50481 struct mqueue_inode_info {
50482 	spinlock_t lock;
50483 	struct inode vfs_inode;
50484 	wait_queue_head_t wait_q;
50485 	struct rb_root msg_tree;
50486 	struct rb_node *msg_tree_rightmost;
50487 	struct posix_msg_tree_node *node_cache;
50488 	struct mq_attr attr;
50489 	struct sigevent notify;
50490 	struct pid *notify_owner;
50491 	u32 notify_self_exec_id;
50492 	struct user_namespace *notify_user_ns;
50493 	struct ucounts *ucounts;
50494 	struct sock *notify_sock;
50495 	struct sk_buff *notify_cookie;
50496 	struct ext_wait_queue e_wait_q[2];
50497 	long unsigned int qsize;
50498 };
50499 
50500 enum key_state {
50501 	KEY_IS_UNINSTANTIATED = 0,
50502 	KEY_IS_POSITIVE = 1,
50503 };
50504 
50505 struct key_user {
50506 	struct rb_node node;
50507 	struct mutex cons_lock;
50508 	spinlock_t lock;
50509 	refcount_t usage;
50510 	atomic_t nkeys;
50511 	atomic_t nikeys;
50512 	kuid_t uid;
50513 	int qnkeys;
50514 	int qnbytes;
50515 };
50516 
50517 enum key_notification_subtype {
50518 	NOTIFY_KEY_INSTANTIATED = 0,
50519 	NOTIFY_KEY_UPDATED = 1,
50520 	NOTIFY_KEY_LINKED = 2,
50521 	NOTIFY_KEY_UNLINKED = 3,
50522 	NOTIFY_KEY_CLEARED = 4,
50523 	NOTIFY_KEY_REVOKED = 5,
50524 	NOTIFY_KEY_INVALIDATED = 6,
50525 	NOTIFY_KEY_SETATTR = 7,
50526 };
50527 
50528 struct assoc_array_edit;
50529 
50530 struct assoc_array_ops {
50531 	long unsigned int (*get_key_chunk)(const void *, int);
50532 	long unsigned int (*get_object_key_chunk)(const void *, int);
50533 	bool (*compare_object)(const void *, const void *);
50534 	int (*diff_objects)(const void *, const void *);
50535 	void (*free_object)(void *);
50536 };
50537 
50538 struct assoc_array_node {
50539 	struct assoc_array_ptr *back_pointer;
50540 	u8 parent_slot;
50541 	struct assoc_array_ptr *slots[16];
50542 	long unsigned int nr_leaves_on_branch;
50543 };
50544 
50545 struct assoc_array_shortcut {
50546 	struct assoc_array_ptr *back_pointer;
50547 	int parent_slot;
50548 	int skip_to_level;
50549 	struct assoc_array_ptr *next_node;
50550 	long unsigned int index_key[0];
50551 };
50552 
50553 struct assoc_array_edit___2 {
50554 	struct callback_head rcu;
50555 	struct assoc_array *array;
50556 	const struct assoc_array_ops *ops;
50557 	const struct assoc_array_ops *ops_for_excised_subtree;
50558 	struct assoc_array_ptr *leaf;
50559 	struct assoc_array_ptr **leaf_p;
50560 	struct assoc_array_ptr *dead_leaf;
50561 	struct assoc_array_ptr *new_meta[3];
50562 	struct assoc_array_ptr *excised_meta[1];
50563 	struct assoc_array_ptr *excised_subtree;
50564 	struct assoc_array_ptr **set_backpointers[16];
50565 	struct assoc_array_ptr *set_backpointers_to;
50566 	struct assoc_array_node *adjust_count_on;
50567 	long int adjust_count_by;
50568 	struct {
50569 		struct assoc_array_ptr **ptr;
50570 		struct assoc_array_ptr *to;
50571 	} set[2];
50572 	struct {
50573 		u8 *p;
50574 		u8 to;
50575 	} set_parent_slot[1];
50576 	u8 segment_cache[17];
50577 };
50578 
50579 struct keyring_search_context {
50580 	struct keyring_index_key index_key;
50581 	const struct cred *cred;
50582 	struct key_match_data match_data;
50583 	unsigned int flags;
50584 	int (*iterator)(const void *, void *);
50585 	int skipped_ret;
50586 	bool possessed;
50587 	key_ref_t result;
50588 	time64_t now;
50589 };
50590 
50591 struct keyring_read_iterator_context {
50592 	size_t buflen;
50593 	size_t count;
50594 	key_serial_t *buffer;
50595 };
50596 
50597 struct keyctl_dh_params {
50598 	union {
50599 		__s32 private;
50600 		__s32 priv;
50601 	};
50602 	__s32 prime;
50603 	__s32 base;
50604 };
50605 
50606 struct keyctl_kdf_params {
50607 	char *hashname;
50608 	char *otherinfo;
50609 	__u32 otherinfolen;
50610 	__u32 __spare[8];
50611 };
50612 
50613 struct keyctl_pkey_query {
50614 	__u32 supported_ops;
50615 	__u32 key_size;
50616 	__u16 max_data_size;
50617 	__u16 max_sig_size;
50618 	__u16 max_enc_size;
50619 	__u16 max_dec_size;
50620 	__u32 __spare[10];
50621 };
50622 
50623 struct keyctl_pkey_params {
50624 	__s32 key_id;
50625 	__u32 in_len;
50626 	union {
50627 		__u32 out_len;
50628 		__u32 in2_len;
50629 	};
50630 	__u32 __spare[7];
50631 };
50632 
50633 struct request_key_auth {
50634 	struct callback_head rcu;
50635 	struct key *target_key;
50636 	struct key *dest_keyring;
50637 	const struct cred *cred;
50638 	void *callout_info;
50639 	size_t callout_len;
50640 	pid_t pid;
50641 	char op[8];
50642 };
50643 
50644 struct user_key_payload {
50645 	struct callback_head rcu;
50646 	short unsigned int datalen;
50647 	long: 48;
50648 	char data[0];
50649 };
50650 
50651 enum {
50652 	Opt_err___5 = 0,
50653 	Opt_enc = 1,
50654 	Opt_hash = 2,
50655 };
50656 
50657 struct vfs_cap_data {
50658 	__le32 magic_etc;
50659 	struct {
50660 		__le32 permitted;
50661 		__le32 inheritable;
50662 	} data[2];
50663 };
50664 
50665 struct vfs_ns_cap_data {
50666 	__le32 magic_etc;
50667 	struct {
50668 		__le32 permitted;
50669 		__le32 inheritable;
50670 	} data[2];
50671 	__le32 rootid;
50672 };
50673 
50674 struct sctp_association;
50675 
50676 union security_list_options {
50677 	int (*binder_set_context_mgr)(const struct cred *);
50678 	int (*binder_transaction)(const struct cred *, const struct cred *);
50679 	int (*binder_transfer_binder)(const struct cred *, const struct cred *);
50680 	int (*binder_transfer_file)(const struct cred *, const struct cred *, struct file *);
50681 	int (*ptrace_access_check)(struct task_struct *, unsigned int);
50682 	int (*ptrace_traceme)(struct task_struct *);
50683 	int (*capget)(struct task_struct *, kernel_cap_t *, kernel_cap_t *, kernel_cap_t *);
50684 	int (*capset)(struct cred *, const struct cred *, const kernel_cap_t *, const kernel_cap_t *, const kernel_cap_t *);
50685 	int (*capable)(const struct cred *, struct user_namespace *, int, unsigned int);
50686 	int (*quotactl)(int, int, int, struct super_block *);
50687 	int (*quota_on)(struct dentry *);
50688 	int (*syslog)(int);
50689 	int (*settime)(const struct timespec64 *, const struct timezone *);
50690 	int (*vm_enough_memory)(struct mm_struct *, long int);
50691 	int (*bprm_creds_for_exec)(struct linux_binprm *);
50692 	int (*bprm_creds_from_file)(struct linux_binprm *, struct file *);
50693 	int (*bprm_check_security)(struct linux_binprm *);
50694 	void (*bprm_committing_creds)(struct linux_binprm *);
50695 	void (*bprm_committed_creds)(struct linux_binprm *);
50696 	int (*fs_context_dup)(struct fs_context *, struct fs_context *);
50697 	int (*fs_context_parse_param)(struct fs_context *, struct fs_parameter *);
50698 	int (*sb_alloc_security)(struct super_block *);
50699 	void (*sb_delete)(struct super_block *);
50700 	void (*sb_free_security)(struct super_block *);
50701 	void (*sb_free_mnt_opts)(void *);
50702 	int (*sb_eat_lsm_opts)(char *, void **);
50703 	int (*sb_mnt_opts_compat)(struct super_block *, void *);
50704 	int (*sb_remount)(struct super_block *, void *);
50705 	int (*sb_kern_mount)(struct super_block *);
50706 	int (*sb_show_options)(struct seq_file *, struct super_block *);
50707 	int (*sb_statfs)(struct dentry *);
50708 	int (*sb_mount)(const char *, const struct path *, const char *, long unsigned int, void *);
50709 	int (*sb_umount)(struct vfsmount *, int);
50710 	int (*sb_pivotroot)(const struct path *, const struct path *);
50711 	int (*sb_set_mnt_opts)(struct super_block *, void *, long unsigned int, long unsigned int *);
50712 	int (*sb_clone_mnt_opts)(const struct super_block *, struct super_block *, long unsigned int, long unsigned int *);
50713 	int (*move_mount)(const struct path *, const struct path *);
50714 	int (*dentry_init_security)(struct dentry *, int, const struct qstr *, const char **, void **, u32 *);
50715 	int (*dentry_create_files_as)(struct dentry *, int, struct qstr *, const struct cred *, struct cred *);
50716 	int (*path_notify)(const struct path *, u64, unsigned int);
50717 	int (*inode_alloc_security)(struct inode *);
50718 	void (*inode_free_security)(struct inode *);
50719 	int (*inode_init_security)(struct inode *, struct inode *, const struct qstr *, const char **, void **, size_t *);
50720 	int (*inode_init_security_anon)(struct inode *, const struct qstr *, const struct inode *);
50721 	int (*inode_create)(struct inode *, struct dentry *, umode_t);
50722 	int (*inode_link)(struct dentry *, struct inode *, struct dentry *);
50723 	int (*inode_unlink)(struct inode *, struct dentry *);
50724 	int (*inode_symlink)(struct inode *, struct dentry *, const char *);
50725 	int (*inode_mkdir)(struct inode *, struct dentry *, umode_t);
50726 	int (*inode_rmdir)(struct inode *, struct dentry *);
50727 	int (*inode_mknod)(struct inode *, struct dentry *, umode_t, dev_t);
50728 	int (*inode_rename)(struct inode *, struct dentry *, struct inode *, struct dentry *);
50729 	int (*inode_readlink)(struct dentry *);
50730 	int (*inode_follow_link)(struct dentry *, struct inode *, bool);
50731 	int (*inode_permission)(struct inode *, int);
50732 	int (*inode_setattr)(struct dentry *, struct iattr *);
50733 	int (*inode_getattr)(const struct path *);
50734 	int (*inode_setxattr)(struct user_namespace *, struct dentry *, const char *, const void *, size_t, int);
50735 	void (*inode_post_setxattr)(struct dentry *, const char *, const void *, size_t, int);
50736 	int (*inode_getxattr)(struct dentry *, const char *);
50737 	int (*inode_listxattr)(struct dentry *);
50738 	int (*inode_removexattr)(struct user_namespace *, struct dentry *, const char *);
50739 	int (*inode_need_killpriv)(struct dentry *);
50740 	int (*inode_killpriv)(struct user_namespace *, struct dentry *);
50741 	int (*inode_getsecurity)(struct user_namespace *, struct inode *, const char *, void **, bool);
50742 	int (*inode_setsecurity)(struct inode *, const char *, const void *, size_t, int);
50743 	int (*inode_listsecurity)(struct inode *, char *, size_t);
50744 	void (*inode_getsecid)(struct inode *, u32 *);
50745 	int (*inode_copy_up)(struct dentry *, struct cred **);
50746 	int (*inode_copy_up_xattr)(const char *);
50747 	int (*kernfs_init_security)(struct kernfs_node *, struct kernfs_node *);
50748 	int (*file_permission)(struct file *, int);
50749 	int (*file_alloc_security)(struct file *);
50750 	void (*file_free_security)(struct file *);
50751 	int (*file_ioctl)(struct file *, unsigned int, long unsigned int);
50752 	int (*mmap_addr)(long unsigned int);
50753 	int (*mmap_file)(struct file *, long unsigned int, long unsigned int, long unsigned int);
50754 	int (*file_mprotect)(struct vm_area_struct *, long unsigned int, long unsigned int);
50755 	int (*file_lock)(struct file *, unsigned int);
50756 	int (*file_fcntl)(struct file *, unsigned int, long unsigned int);
50757 	void (*file_set_fowner)(struct file *);
50758 	int (*file_send_sigiotask)(struct task_struct *, struct fown_struct *, int);
50759 	int (*file_receive)(struct file *);
50760 	int (*file_open)(struct file *);
50761 	int (*task_alloc)(struct task_struct *, long unsigned int);
50762 	void (*task_free)(struct task_struct *);
50763 	int (*cred_alloc_blank)(struct cred *, gfp_t);
50764 	void (*cred_free)(struct cred *);
50765 	int (*cred_prepare)(struct cred *, const struct cred *, gfp_t);
50766 	void (*cred_transfer)(struct cred *, const struct cred *);
50767 	void (*cred_getsecid)(const struct cred *, u32 *);
50768 	int (*kernel_act_as)(struct cred *, u32);
50769 	int (*kernel_create_files_as)(struct cred *, struct inode *);
50770 	int (*kernel_module_request)(char *);
50771 	int (*kernel_load_data)(enum kernel_load_data_id, bool);
50772 	int (*kernel_post_load_data)(char *, loff_t, enum kernel_load_data_id, char *);
50773 	int (*kernel_read_file)(struct file *, enum kernel_read_file_id, bool);
50774 	int (*kernel_post_read_file)(struct file *, char *, loff_t, enum kernel_read_file_id);
50775 	int (*task_fix_setuid)(struct cred *, const struct cred *, int);
50776 	int (*task_fix_setgid)(struct cred *, const struct cred *, int);
50777 	int (*task_setpgid)(struct task_struct *, pid_t);
50778 	int (*task_getpgid)(struct task_struct *);
50779 	int (*task_getsid)(struct task_struct *);
50780 	void (*current_getsecid_subj)(u32 *);
50781 	void (*task_getsecid_obj)(struct task_struct *, u32 *);
50782 	int (*task_setnice)(struct task_struct *, int);
50783 	int (*task_setioprio)(struct task_struct *, int);
50784 	int (*task_getioprio)(struct task_struct *);
50785 	int (*task_prlimit)(const struct cred *, const struct cred *, unsigned int);
50786 	int (*task_setrlimit)(struct task_struct *, unsigned int, struct rlimit *);
50787 	int (*task_setscheduler)(struct task_struct *);
50788 	int (*task_getscheduler)(struct task_struct *);
50789 	int (*task_movememory)(struct task_struct *);
50790 	int (*task_kill)(struct task_struct *, struct kernel_siginfo *, int, const struct cred *);
50791 	int (*task_prctl)(int, long unsigned int, long unsigned int, long unsigned int, long unsigned int);
50792 	void (*task_to_inode)(struct task_struct *, struct inode *);
50793 	int (*ipc_permission)(struct kern_ipc_perm *, short int);
50794 	void (*ipc_getsecid)(struct kern_ipc_perm *, u32 *);
50795 	int (*msg_msg_alloc_security)(struct msg_msg *);
50796 	void (*msg_msg_free_security)(struct msg_msg *);
50797 	int (*msg_queue_alloc_security)(struct kern_ipc_perm *);
50798 	void (*msg_queue_free_security)(struct kern_ipc_perm *);
50799 	int (*msg_queue_associate)(struct kern_ipc_perm *, int);
50800 	int (*msg_queue_msgctl)(struct kern_ipc_perm *, int);
50801 	int (*msg_queue_msgsnd)(struct kern_ipc_perm *, struct msg_msg *, int);
50802 	int (*msg_queue_msgrcv)(struct kern_ipc_perm *, struct msg_msg *, struct task_struct *, long int, int);
50803 	int (*shm_alloc_security)(struct kern_ipc_perm *);
50804 	void (*shm_free_security)(struct kern_ipc_perm *);
50805 	int (*shm_associate)(struct kern_ipc_perm *, int);
50806 	int (*shm_shmctl)(struct kern_ipc_perm *, int);
50807 	int (*shm_shmat)(struct kern_ipc_perm *, char *, int);
50808 	int (*sem_alloc_security)(struct kern_ipc_perm *);
50809 	void (*sem_free_security)(struct kern_ipc_perm *);
50810 	int (*sem_associate)(struct kern_ipc_perm *, int);
50811 	int (*sem_semctl)(struct kern_ipc_perm *, int);
50812 	int (*sem_semop)(struct kern_ipc_perm *, struct sembuf *, unsigned int, int);
50813 	int (*netlink_send)(struct sock *, struct sk_buff *);
50814 	void (*d_instantiate)(struct dentry *, struct inode *);
50815 	int (*getprocattr)(struct task_struct *, char *, char **);
50816 	int (*setprocattr)(const char *, void *, size_t);
50817 	int (*ismaclabel)(const char *);
50818 	int (*secid_to_secctx)(u32, char **, u32 *);
50819 	int (*secctx_to_secid)(const char *, u32, u32 *);
50820 	void (*release_secctx)(char *, u32);
50821 	void (*inode_invalidate_secctx)(struct inode *);
50822 	int (*inode_notifysecctx)(struct inode *, void *, u32);
50823 	int (*inode_setsecctx)(struct dentry *, void *, u32);
50824 	int (*inode_getsecctx)(struct inode *, void **, u32 *);
50825 	int (*unix_stream_connect)(struct sock *, struct sock *, struct sock *);
50826 	int (*unix_may_send)(struct socket *, struct socket *);
50827 	int (*socket_create)(int, int, int, int);
50828 	int (*socket_post_create)(struct socket *, int, int, int, int);
50829 	int (*socket_socketpair)(struct socket *, struct socket *);
50830 	int (*socket_bind)(struct socket *, struct sockaddr *, int);
50831 	int (*socket_connect)(struct socket *, struct sockaddr *, int);
50832 	int (*socket_listen)(struct socket *, int);
50833 	int (*socket_accept)(struct socket *, struct socket *);
50834 	int (*socket_sendmsg)(struct socket *, struct msghdr *, int);
50835 	int (*socket_recvmsg)(struct socket *, struct msghdr *, int, int);
50836 	int (*socket_getsockname)(struct socket *);
50837 	int (*socket_getpeername)(struct socket *);
50838 	int (*socket_getsockopt)(struct socket *, int, int);
50839 	int (*socket_setsockopt)(struct socket *, int, int);
50840 	int (*socket_shutdown)(struct socket *, int);
50841 	int (*socket_sock_rcv_skb)(struct sock *, struct sk_buff *);
50842 	int (*socket_getpeersec_stream)(struct socket *, char *, int *, unsigned int);
50843 	int (*socket_getpeersec_dgram)(struct socket *, struct sk_buff *, u32 *);
50844 	int (*sk_alloc_security)(struct sock *, int, gfp_t);
50845 	void (*sk_free_security)(struct sock *);
50846 	void (*sk_clone_security)(const struct sock *, struct sock *);
50847 	void (*sk_getsecid)(struct sock *, u32 *);
50848 	void (*sock_graft)(struct sock *, struct socket *);
50849 	int (*inet_conn_request)(const struct sock *, struct sk_buff *, struct request_sock *);
50850 	void (*inet_csk_clone)(struct sock *, const struct request_sock *);
50851 	void (*inet_conn_established)(struct sock *, struct sk_buff *);
50852 	int (*secmark_relabel_packet)(u32);
50853 	void (*secmark_refcount_inc)();
50854 	void (*secmark_refcount_dec)();
50855 	void (*req_classify_flow)(const struct request_sock *, struct flowi_common *);
50856 	int (*tun_dev_alloc_security)(void **);
50857 	void (*tun_dev_free_security)(void *);
50858 	int (*tun_dev_create)();
50859 	int (*tun_dev_attach_queue)(void *);
50860 	int (*tun_dev_attach)(struct sock *, void *);
50861 	int (*tun_dev_open)(void *);
50862 	int (*sctp_assoc_request)(struct sctp_association *, struct sk_buff *);
50863 	int (*sctp_bind_connect)(struct sock *, int, struct sockaddr *, int);
50864 	void (*sctp_sk_clone)(struct sctp_association *, struct sock *, struct sock *);
50865 	int (*key_alloc)(struct key *, const struct cred *, long unsigned int);
50866 	void (*key_free)(struct key *);
50867 	int (*key_permission)(key_ref_t, const struct cred *, enum key_need_perm);
50868 	int (*key_getsecurity)(struct key *, char **);
50869 	int (*audit_rule_init)(u32, u32, char *, void **);
50870 	int (*audit_rule_known)(struct audit_krule *);
50871 	int (*audit_rule_match)(u32, u32, u32, void *);
50872 	void (*audit_rule_free)(void *);
50873 	int (*bpf)(int, union bpf_attr *, unsigned int);
50874 	int (*bpf_map)(struct bpf_map *, fmode_t);
50875 	int (*bpf_prog)(struct bpf_prog *);
50876 	int (*bpf_map_alloc_security)(struct bpf_map *);
50877 	void (*bpf_map_free_security)(struct bpf_map *);
50878 	int (*bpf_prog_alloc_security)(struct bpf_prog_aux *);
50879 	void (*bpf_prog_free_security)(struct bpf_prog_aux *);
50880 	int (*locked_down)(enum lockdown_reason);
50881 	int (*perf_event_open)(struct perf_event_attr *, int);
50882 	int (*perf_event_alloc)(struct perf_event *);
50883 	void (*perf_event_free)(struct perf_event *);
50884 	int (*perf_event_read)(struct perf_event *);
50885 	int (*perf_event_write)(struct perf_event *);
50886 	int (*uring_override_creds)(const struct cred *);
50887 	int (*uring_sqpoll)();
50888 };
50889 
50890 struct security_hook_list {
50891 	struct hlist_node list;
50892 	struct hlist_head *head;
50893 	union security_list_options hook;
50894 	char *lsm;
50895 };
50896 
50897 enum lsm_event {
50898 	LSM_POLICY_CHANGE = 0,
50899 };
50900 
50901 typedef int (*initxattrs)(struct inode *, const struct xattr *, void *);
50902 
50903 struct ethhdr {
50904 	unsigned char h_dest[6];
50905 	unsigned char h_source[6];
50906 	__be16 h_proto;
50907 };
50908 
50909 struct ethtool_drvinfo {
50910 	__u32 cmd;
50911 	char driver[32];
50912 	char version[32];
50913 	char fw_version[32];
50914 	char bus_info[32];
50915 	char erom_version[32];
50916 	char reserved2[12];
50917 	__u32 n_priv_flags;
50918 	__u32 n_stats;
50919 	__u32 testinfo_len;
50920 	__u32 eedump_len;
50921 	__u32 regdump_len;
50922 };
50923 
50924 struct ethtool_wolinfo {
50925 	__u32 cmd;
50926 	__u32 supported;
50927 	__u32 wolopts;
50928 	__u8 sopass[6];
50929 };
50930 
50931 struct ethtool_tunable {
50932 	__u32 cmd;
50933 	__u32 id;
50934 	__u32 type_id;
50935 	__u32 len;
50936 	void *data[0];
50937 };
50938 
50939 struct ethtool_regs {
50940 	__u32 cmd;
50941 	__u32 version;
50942 	__u32 len;
50943 	__u8 data[0];
50944 };
50945 
50946 struct ethtool_eeprom {
50947 	__u32 cmd;
50948 	__u32 magic;
50949 	__u32 offset;
50950 	__u32 len;
50951 	__u8 data[0];
50952 };
50953 
50954 struct ethtool_eee {
50955 	__u32 cmd;
50956 	__u32 supported;
50957 	__u32 advertised;
50958 	__u32 lp_advertised;
50959 	__u32 eee_active;
50960 	__u32 eee_enabled;
50961 	__u32 tx_lpi_enabled;
50962 	__u32 tx_lpi_timer;
50963 	__u32 reserved[2];
50964 };
50965 
50966 struct ethtool_modinfo {
50967 	__u32 cmd;
50968 	__u32 type;
50969 	__u32 eeprom_len;
50970 	__u32 reserved[8];
50971 };
50972 
50973 struct ethtool_coalesce {
50974 	__u32 cmd;
50975 	__u32 rx_coalesce_usecs;
50976 	__u32 rx_max_coalesced_frames;
50977 	__u32 rx_coalesce_usecs_irq;
50978 	__u32 rx_max_coalesced_frames_irq;
50979 	__u32 tx_coalesce_usecs;
50980 	__u32 tx_max_coalesced_frames;
50981 	__u32 tx_coalesce_usecs_irq;
50982 	__u32 tx_max_coalesced_frames_irq;
50983 	__u32 stats_block_coalesce_usecs;
50984 	__u32 use_adaptive_rx_coalesce;
50985 	__u32 use_adaptive_tx_coalesce;
50986 	__u32 pkt_rate_low;
50987 	__u32 rx_coalesce_usecs_low;
50988 	__u32 rx_max_coalesced_frames_low;
50989 	__u32 tx_coalesce_usecs_low;
50990 	__u32 tx_max_coalesced_frames_low;
50991 	__u32 pkt_rate_high;
50992 	__u32 rx_coalesce_usecs_high;
50993 	__u32 rx_max_coalesced_frames_high;
50994 	__u32 tx_coalesce_usecs_high;
50995 	__u32 tx_max_coalesced_frames_high;
50996 	__u32 rate_sample_interval;
50997 };
50998 
50999 struct ethtool_ringparam {
51000 	__u32 cmd;
51001 	__u32 rx_max_pending;
51002 	__u32 rx_mini_max_pending;
51003 	__u32 rx_jumbo_max_pending;
51004 	__u32 tx_max_pending;
51005 	__u32 rx_pending;
51006 	__u32 rx_mini_pending;
51007 	__u32 rx_jumbo_pending;
51008 	__u32 tx_pending;
51009 };
51010 
51011 struct ethtool_channels {
51012 	__u32 cmd;
51013 	__u32 max_rx;
51014 	__u32 max_tx;
51015 	__u32 max_other;
51016 	__u32 max_combined;
51017 	__u32 rx_count;
51018 	__u32 tx_count;
51019 	__u32 other_count;
51020 	__u32 combined_count;
51021 };
51022 
51023 struct ethtool_pauseparam {
51024 	__u32 cmd;
51025 	__u32 autoneg;
51026 	__u32 rx_pause;
51027 	__u32 tx_pause;
51028 };
51029 
51030 enum ethtool_link_ext_state {
51031 	ETHTOOL_LINK_EXT_STATE_AUTONEG = 0,
51032 	ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE = 1,
51033 	ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH = 2,
51034 	ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY = 3,
51035 	ETHTOOL_LINK_EXT_STATE_NO_CABLE = 4,
51036 	ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE = 5,
51037 	ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE = 6,
51038 	ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE = 7,
51039 	ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED = 8,
51040 	ETHTOOL_LINK_EXT_STATE_OVERHEAT = 9,
51041 	ETHTOOL_LINK_EXT_STATE_MODULE = 10,
51042 };
51043 
51044 enum ethtool_link_ext_substate_autoneg {
51045 	ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1,
51046 	ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED = 2,
51047 	ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED = 3,
51048 	ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE = 4,
51049 	ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE = 5,
51050 	ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD = 6,
51051 };
51052 
51053 enum ethtool_link_ext_substate_link_training {
51054 	ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 1,
51055 	ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT = 2,
51056 	ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY = 3,
51057 	ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT = 4,
51058 };
51059 
51060 enum ethtool_link_ext_substate_link_logical_mismatch {
51061 	ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 1,
51062 	ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK = 2,
51063 	ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS = 3,
51064 	ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED = 4,
51065 	ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED = 5,
51066 };
51067 
51068 enum ethtool_link_ext_substate_bad_signal_integrity {
51069 	ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1,
51070 	ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE = 2,
51071 	ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_REFERENCE_CLOCK_LOST = 3,
51072 	ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_ALOS = 4,
51073 };
51074 
51075 enum ethtool_link_ext_substate_cable_issue {
51076 	ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1,
51077 	ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 2,
51078 };
51079 
51080 enum ethtool_link_ext_substate_module {
51081 	ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1,
51082 };
51083 
51084 enum ethtool_module_power_mode_policy {
51085 	ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1,
51086 	ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO = 2,
51087 };
51088 
51089 enum ethtool_module_power_mode {
51090 	ETHTOOL_MODULE_POWER_MODE_LOW = 1,
51091 	ETHTOOL_MODULE_POWER_MODE_HIGH = 2,
51092 };
51093 
51094 struct ethtool_test {
51095 	__u32 cmd;
51096 	__u32 flags;
51097 	__u32 reserved;
51098 	__u32 len;
51099 	__u64 data[0];
51100 };
51101 
51102 struct ethtool_stats {
51103 	__u32 cmd;
51104 	__u32 n_stats;
51105 	__u64 data[0];
51106 };
51107 
51108 struct ethtool_tcpip4_spec {
51109 	__be32 ip4src;
51110 	__be32 ip4dst;
51111 	__be16 psrc;
51112 	__be16 pdst;
51113 	__u8 tos;
51114 };
51115 
51116 struct ethtool_ah_espip4_spec {
51117 	__be32 ip4src;
51118 	__be32 ip4dst;
51119 	__be32 spi;
51120 	__u8 tos;
51121 };
51122 
51123 struct ethtool_usrip4_spec {
51124 	__be32 ip4src;
51125 	__be32 ip4dst;
51126 	__be32 l4_4_bytes;
51127 	__u8 tos;
51128 	__u8 ip_ver;
51129 	__u8 proto;
51130 };
51131 
51132 struct ethtool_tcpip6_spec {
51133 	__be32 ip6src[4];
51134 	__be32 ip6dst[4];
51135 	__be16 psrc;
51136 	__be16 pdst;
51137 	__u8 tclass;
51138 };
51139 
51140 struct ethtool_ah_espip6_spec {
51141 	__be32 ip6src[4];
51142 	__be32 ip6dst[4];
51143 	__be32 spi;
51144 	__u8 tclass;
51145 };
51146 
51147 struct ethtool_usrip6_spec {
51148 	__be32 ip6src[4];
51149 	__be32 ip6dst[4];
51150 	__be32 l4_4_bytes;
51151 	__u8 tclass;
51152 	__u8 l4_proto;
51153 };
51154 
51155 union ethtool_flow_union {
51156 	struct ethtool_tcpip4_spec tcp_ip4_spec;
51157 	struct ethtool_tcpip4_spec udp_ip4_spec;
51158 	struct ethtool_tcpip4_spec sctp_ip4_spec;
51159 	struct ethtool_ah_espip4_spec ah_ip4_spec;
51160 	struct ethtool_ah_espip4_spec esp_ip4_spec;
51161 	struct ethtool_usrip4_spec usr_ip4_spec;
51162 	struct ethtool_tcpip6_spec tcp_ip6_spec;
51163 	struct ethtool_tcpip6_spec udp_ip6_spec;
51164 	struct ethtool_tcpip6_spec sctp_ip6_spec;
51165 	struct ethtool_ah_espip6_spec ah_ip6_spec;
51166 	struct ethtool_ah_espip6_spec esp_ip6_spec;
51167 	struct ethtool_usrip6_spec usr_ip6_spec;
51168 	struct ethhdr ether_spec;
51169 	__u8 hdata[52];
51170 };
51171 
51172 struct ethtool_flow_ext {
51173 	__u8 padding[2];
51174 	unsigned char h_dest[6];
51175 	__be16 vlan_etype;
51176 	__be16 vlan_tci;
51177 	__be32 data[2];
51178 };
51179 
51180 struct ethtool_rx_flow_spec {
51181 	__u32 flow_type;
51182 	union ethtool_flow_union h_u;
51183 	struct ethtool_flow_ext h_ext;
51184 	union ethtool_flow_union m_u;
51185 	struct ethtool_flow_ext m_ext;
51186 	__u64 ring_cookie;
51187 	__u32 location;
51188 };
51189 
51190 struct ethtool_rxnfc {
51191 	__u32 cmd;
51192 	__u32 flow_type;
51193 	__u64 data;
51194 	struct ethtool_rx_flow_spec fs;
51195 	union {
51196 		__u32 rule_cnt;
51197 		__u32 rss_context;
51198 	};
51199 	__u32 rule_locs[0];
51200 };
51201 
51202 struct ethtool_flash {
51203 	__u32 cmd;
51204 	__u32 region;
51205 	char data[128];
51206 };
51207 
51208 struct ethtool_dump {
51209 	__u32 cmd;
51210 	__u32 version;
51211 	__u32 flag;
51212 	__u32 len;
51213 	__u8 data[0];
51214 };
51215 
51216 struct ethtool_ts_info {
51217 	__u32 cmd;
51218 	__u32 so_timestamping;
51219 	__s32 phc_index;
51220 	__u32 tx_types;
51221 	__u32 tx_reserved[3];
51222 	__u32 rx_filters;
51223 	__u32 rx_reserved[3];
51224 };
51225 
51226 struct ethtool_fecparam {
51227 	__u32 cmd;
51228 	__u32 active_fec;
51229 	__u32 fec;
51230 	__u32 reserved;
51231 };
51232 
51233 enum ethtool_link_mode_bit_indices {
51234 	ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0,
51235 	ETHTOOL_LINK_MODE_10baseT_Full_BIT = 1,
51236 	ETHTOOL_LINK_MODE_100baseT_Half_BIT = 2,
51237 	ETHTOOL_LINK_MODE_100baseT_Full_BIT = 3,
51238 	ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 4,
51239 	ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 5,
51240 	ETHTOOL_LINK_MODE_Autoneg_BIT = 6,
51241 	ETHTOOL_LINK_MODE_TP_BIT = 7,
51242 	ETHTOOL_LINK_MODE_AUI_BIT = 8,
51243 	ETHTOOL_LINK_MODE_MII_BIT = 9,
51244 	ETHTOOL_LINK_MODE_FIBRE_BIT = 10,
51245 	ETHTOOL_LINK_MODE_BNC_BIT = 11,
51246 	ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 12,
51247 	ETHTOOL_LINK_MODE_Pause_BIT = 13,
51248 	ETHTOOL_LINK_MODE_Asym_Pause_BIT = 14,
51249 	ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 15,
51250 	ETHTOOL_LINK_MODE_Backplane_BIT = 16,
51251 	ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 17,
51252 	ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 18,
51253 	ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 19,
51254 	ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 20,
51255 	ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 21,
51256 	ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 22,
51257 	ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 23,
51258 	ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 24,
51259 	ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 25,
51260 	ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 26,
51261 	ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 27,
51262 	ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 28,
51263 	ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29,
51264 	ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30,
51265 	ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31,
51266 	ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32,
51267 	ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33,
51268 	ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34,
51269 	ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 35,
51270 	ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 36,
51271 	ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 37,
51272 	ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 38,
51273 	ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39,
51274 	ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 40,
51275 	ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 41,
51276 	ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 42,
51277 	ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 43,
51278 	ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44,
51279 	ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45,
51280 	ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46,
51281 	ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47,
51282 	ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48,
51283 	ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49,
51284 	ETHTOOL_LINK_MODE_FEC_RS_BIT = 50,
51285 	ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51,
51286 	ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 52,
51287 	ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 53,
51288 	ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 54,
51289 	ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 55,
51290 	ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 56,
51291 	ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 57,
51292 	ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 58,
51293 	ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 59,
51294 	ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 60,
51295 	ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 61,
51296 	ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 62,
51297 	ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 63,
51298 	ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64,
51299 	ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65,
51300 	ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66,
51301 	ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67,
51302 	ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68,
51303 	ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 69,
51304 	ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 70,
51305 	ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71,
51306 	ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72,
51307 	ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73,
51308 	ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74,
51309 	ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 75,
51310 	ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 76,
51311 	ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 77,
51312 	ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 78,
51313 	ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 79,
51314 	ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 80,
51315 	ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 81,
51316 	ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82,
51317 	ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 83,
51318 	ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 84,
51319 	ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 85,
51320 	ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 86,
51321 	ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87,
51322 	ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 88,
51323 	ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 89,
51324 	ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90,
51325 	ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91,
51326 	__ETHTOOL_LINK_MODE_MASK_NBITS = 92,
51327 };
51328 
51329 struct ethtool_link_settings {
51330 	__u32 cmd;
51331 	__u32 speed;
51332 	__u8 duplex;
51333 	__u8 port;
51334 	__u8 phy_address;
51335 	__u8 autoneg;
51336 	__u8 mdio_support;
51337 	__u8 eth_tp_mdix;
51338 	__u8 eth_tp_mdix_ctrl;
51339 	__s8 link_mode_masks_nwords;
51340 	__u8 transceiver;
51341 	__u8 master_slave_cfg;
51342 	__u8 master_slave_state;
51343 	__u8 reserved1[1];
51344 	__u32 reserved[7];
51345 	__u32 link_mode_masks[0];
51346 };
51347 
51348 struct kernel_ethtool_ringparam {
51349 	u32 rx_buf_len;
51350 };
51351 
51352 struct ethtool_link_ext_state_info {
51353 	enum ethtool_link_ext_state link_ext_state;
51354 	union {
51355 		enum ethtool_link_ext_substate_autoneg autoneg;
51356 		enum ethtool_link_ext_substate_link_training link_training;
51357 		enum ethtool_link_ext_substate_link_logical_mismatch link_logical_mismatch;
51358 		enum ethtool_link_ext_substate_bad_signal_integrity bad_signal_integrity;
51359 		enum ethtool_link_ext_substate_cable_issue cable_issue;
51360 		enum ethtool_link_ext_substate_module module;
51361 		u32 __link_ext_substate;
51362 	};
51363 };
51364 
51365 struct ethtool_link_ksettings {
51366 	struct ethtool_link_settings base;
51367 	struct {
51368 		long unsigned int supported[2];
51369 		long unsigned int advertising[2];
51370 		long unsigned int lp_advertising[2];
51371 	} link_modes;
51372 	u32 lanes;
51373 };
51374 
51375 struct kernel_ethtool_coalesce {
51376 	u8 use_cqe_mode_tx;
51377 	u8 use_cqe_mode_rx;
51378 };
51379 
51380 struct ethtool_eth_mac_stats {
51381 	u64 FramesTransmittedOK;
51382 	u64 SingleCollisionFrames;
51383 	u64 MultipleCollisionFrames;
51384 	u64 FramesReceivedOK;
51385 	u64 FrameCheckSequenceErrors;
51386 	u64 AlignmentErrors;
51387 	u64 OctetsTransmittedOK;
51388 	u64 FramesWithDeferredXmissions;
51389 	u64 LateCollisions;
51390 	u64 FramesAbortedDueToXSColls;
51391 	u64 FramesLostDueToIntMACXmitError;
51392 	u64 CarrierSenseErrors;
51393 	u64 OctetsReceivedOK;
51394 	u64 FramesLostDueToIntMACRcvError;
51395 	u64 MulticastFramesXmittedOK;
51396 	u64 BroadcastFramesXmittedOK;
51397 	u64 FramesWithExcessiveDeferral;
51398 	u64 MulticastFramesReceivedOK;
51399 	u64 BroadcastFramesReceivedOK;
51400 	u64 InRangeLengthErrors;
51401 	u64 OutOfRangeLengthField;
51402 	u64 FrameTooLongErrors;
51403 };
51404 
51405 struct ethtool_eth_phy_stats {
51406 	u64 SymbolErrorDuringCarrier;
51407 };
51408 
51409 struct ethtool_eth_ctrl_stats {
51410 	u64 MACControlFramesTransmitted;
51411 	u64 MACControlFramesReceived;
51412 	u64 UnsupportedOpcodesReceived;
51413 };
51414 
51415 struct ethtool_pause_stats {
51416 	u64 tx_pause_frames;
51417 	u64 rx_pause_frames;
51418 };
51419 
51420 struct ethtool_fec_stat {
51421 	u64 total;
51422 	u64 lanes[8];
51423 };
51424 
51425 struct ethtool_fec_stats {
51426 	struct ethtool_fec_stat corrected_blocks;
51427 	struct ethtool_fec_stat uncorrectable_blocks;
51428 	struct ethtool_fec_stat corrected_bits;
51429 };
51430 
51431 struct ethtool_rmon_hist_range {
51432 	u16 low;
51433 	u16 high;
51434 };
51435 
51436 struct ethtool_rmon_stats {
51437 	u64 undersize_pkts;
51438 	u64 oversize_pkts;
51439 	u64 fragments;
51440 	u64 jabbers;
51441 	u64 hist[10];
51442 	u64 hist_tx[10];
51443 };
51444 
51445 struct ethtool_module_eeprom {
51446 	u32 offset;
51447 	u32 length;
51448 	u8 page;
51449 	u8 bank;
51450 	u8 i2c_address;
51451 	u8 *data;
51452 };
51453 
51454 struct ethtool_module_power_mode_params {
51455 	enum ethtool_module_power_mode_policy policy;
51456 	enum ethtool_module_power_mode mode;
51457 };
51458 
51459 enum ib_uverbs_write_cmds {
51460 	IB_USER_VERBS_CMD_GET_CONTEXT = 0,
51461 	IB_USER_VERBS_CMD_QUERY_DEVICE = 1,
51462 	IB_USER_VERBS_CMD_QUERY_PORT = 2,
51463 	IB_USER_VERBS_CMD_ALLOC_PD = 3,
51464 	IB_USER_VERBS_CMD_DEALLOC_PD = 4,
51465 	IB_USER_VERBS_CMD_CREATE_AH = 5,
51466 	IB_USER_VERBS_CMD_MODIFY_AH = 6,
51467 	IB_USER_VERBS_CMD_QUERY_AH = 7,
51468 	IB_USER_VERBS_CMD_DESTROY_AH = 8,
51469 	IB_USER_VERBS_CMD_REG_MR = 9,
51470 	IB_USER_VERBS_CMD_REG_SMR = 10,
51471 	IB_USER_VERBS_CMD_REREG_MR = 11,
51472 	IB_USER_VERBS_CMD_QUERY_MR = 12,
51473 	IB_USER_VERBS_CMD_DEREG_MR = 13,
51474 	IB_USER_VERBS_CMD_ALLOC_MW = 14,
51475 	IB_USER_VERBS_CMD_BIND_MW = 15,
51476 	IB_USER_VERBS_CMD_DEALLOC_MW = 16,
51477 	IB_USER_VERBS_CMD_CREATE_COMP_CHANNEL = 17,
51478 	IB_USER_VERBS_CMD_CREATE_CQ = 18,
51479 	IB_USER_VERBS_CMD_RESIZE_CQ = 19,
51480 	IB_USER_VERBS_CMD_DESTROY_CQ = 20,
51481 	IB_USER_VERBS_CMD_POLL_CQ = 21,
51482 	IB_USER_VERBS_CMD_PEEK_CQ = 22,
51483 	IB_USER_VERBS_CMD_REQ_NOTIFY_CQ = 23,
51484 	IB_USER_VERBS_CMD_CREATE_QP = 24,
51485 	IB_USER_VERBS_CMD_QUERY_QP = 25,
51486 	IB_USER_VERBS_CMD_MODIFY_QP = 26,
51487 	IB_USER_VERBS_CMD_DESTROY_QP = 27,
51488 	IB_USER_VERBS_CMD_POST_SEND = 28,
51489 	IB_USER_VERBS_CMD_POST_RECV = 29,
51490 	IB_USER_VERBS_CMD_ATTACH_MCAST = 30,
51491 	IB_USER_VERBS_CMD_DETACH_MCAST = 31,
51492 	IB_USER_VERBS_CMD_CREATE_SRQ = 32,
51493 	IB_USER_VERBS_CMD_MODIFY_SRQ = 33,
51494 	IB_USER_VERBS_CMD_QUERY_SRQ = 34,
51495 	IB_USER_VERBS_CMD_DESTROY_SRQ = 35,
51496 	IB_USER_VERBS_CMD_POST_SRQ_RECV = 36,
51497 	IB_USER_VERBS_CMD_OPEN_XRCD = 37,
51498 	IB_USER_VERBS_CMD_CLOSE_XRCD = 38,
51499 	IB_USER_VERBS_CMD_CREATE_XSRQ = 39,
51500 	IB_USER_VERBS_CMD_OPEN_QP = 40,
51501 };
51502 
51503 enum ib_uverbs_wc_opcode {
51504 	IB_UVERBS_WC_SEND = 0,
51505 	IB_UVERBS_WC_RDMA_WRITE = 1,
51506 	IB_UVERBS_WC_RDMA_READ = 2,
51507 	IB_UVERBS_WC_COMP_SWAP = 3,
51508 	IB_UVERBS_WC_FETCH_ADD = 4,
51509 	IB_UVERBS_WC_BIND_MW = 5,
51510 	IB_UVERBS_WC_LOCAL_INV = 6,
51511 	IB_UVERBS_WC_TSO = 7,
51512 };
51513 
51514 enum ib_uverbs_create_qp_mask {
51515 	IB_UVERBS_CREATE_QP_MASK_IND_TABLE = 1,
51516 };
51517 
51518 enum ib_uverbs_wr_opcode {
51519 	IB_UVERBS_WR_RDMA_WRITE = 0,
51520 	IB_UVERBS_WR_RDMA_WRITE_WITH_IMM = 1,
51521 	IB_UVERBS_WR_SEND = 2,
51522 	IB_UVERBS_WR_SEND_WITH_IMM = 3,
51523 	IB_UVERBS_WR_RDMA_READ = 4,
51524 	IB_UVERBS_WR_ATOMIC_CMP_AND_SWP = 5,
51525 	IB_UVERBS_WR_ATOMIC_FETCH_AND_ADD = 6,
51526 	IB_UVERBS_WR_LOCAL_INV = 7,
51527 	IB_UVERBS_WR_BIND_MW = 8,
51528 	IB_UVERBS_WR_SEND_WITH_INV = 9,
51529 	IB_UVERBS_WR_TSO = 10,
51530 	IB_UVERBS_WR_RDMA_READ_WITH_INV = 11,
51531 	IB_UVERBS_WR_MASKED_ATOMIC_CMP_AND_SWP = 12,
51532 	IB_UVERBS_WR_MASKED_ATOMIC_FETCH_AND_ADD = 13,
51533 };
51534 
51535 enum ib_uverbs_access_flags {
51536 	IB_UVERBS_ACCESS_LOCAL_WRITE = 1,
51537 	IB_UVERBS_ACCESS_REMOTE_WRITE = 2,
51538 	IB_UVERBS_ACCESS_REMOTE_READ = 4,
51539 	IB_UVERBS_ACCESS_REMOTE_ATOMIC = 8,
51540 	IB_UVERBS_ACCESS_MW_BIND = 16,
51541 	IB_UVERBS_ACCESS_ZERO_BASED = 32,
51542 	IB_UVERBS_ACCESS_ON_DEMAND = 64,
51543 	IB_UVERBS_ACCESS_HUGETLB = 128,
51544 	IB_UVERBS_ACCESS_RELAXED_ORDERING = 1048576,
51545 	IB_UVERBS_ACCESS_OPTIONAL_RANGE = 1072693248,
51546 };
51547 
51548 enum ib_uverbs_srq_type {
51549 	IB_UVERBS_SRQT_BASIC = 0,
51550 	IB_UVERBS_SRQT_XRC = 1,
51551 	IB_UVERBS_SRQT_TM = 2,
51552 };
51553 
51554 enum ib_uverbs_wq_type {
51555 	IB_UVERBS_WQT_RQ = 0,
51556 };
51557 
51558 enum ib_uverbs_wq_flags {
51559 	IB_UVERBS_WQ_FLAGS_CVLAN_STRIPPING = 1,
51560 	IB_UVERBS_WQ_FLAGS_SCATTER_FCS = 2,
51561 	IB_UVERBS_WQ_FLAGS_DELAY_DROP = 4,
51562 	IB_UVERBS_WQ_FLAGS_PCI_WRITE_END_PADDING = 8,
51563 };
51564 
51565 enum ib_uverbs_qp_type {
51566 	IB_UVERBS_QPT_RC = 2,
51567 	IB_UVERBS_QPT_UC = 3,
51568 	IB_UVERBS_QPT_UD = 4,
51569 	IB_UVERBS_QPT_RAW_PACKET = 8,
51570 	IB_UVERBS_QPT_XRC_INI = 9,
51571 	IB_UVERBS_QPT_XRC_TGT = 10,
51572 	IB_UVERBS_QPT_DRIVER = 255,
51573 };
51574 
51575 enum ib_uverbs_qp_create_flags {
51576 	IB_UVERBS_QP_CREATE_BLOCK_MULTICAST_LOOPBACK = 2,
51577 	IB_UVERBS_QP_CREATE_SCATTER_FCS = 256,
51578 	IB_UVERBS_QP_CREATE_CVLAN_STRIPPING = 512,
51579 	IB_UVERBS_QP_CREATE_PCI_WRITE_END_PADDING = 2048,
51580 	IB_UVERBS_QP_CREATE_SQ_SIG_ALL = 4096,
51581 };
51582 
51583 enum ib_uverbs_gid_type {
51584 	IB_UVERBS_GID_TYPE_IB = 0,
51585 	IB_UVERBS_GID_TYPE_ROCE_V1 = 1,
51586 	IB_UVERBS_GID_TYPE_ROCE_V2 = 2,
51587 };
51588 
51589 union ib_gid {
51590 	u8 raw[16];
51591 	struct {
51592 		__be64 subnet_prefix;
51593 		__be64 interface_id;
51594 	} global;
51595 };
51596 
51597 enum ib_poll_context {
51598 	IB_POLL_SOFTIRQ = 0,
51599 	IB_POLL_WORKQUEUE = 1,
51600 	IB_POLL_UNBOUND_WORKQUEUE = 2,
51601 	IB_POLL_LAST_POOL_TYPE = 2,
51602 	IB_POLL_DIRECT = 3,
51603 };
51604 
51605 struct lsm_network_audit {
51606 	int netif;
51607 	const struct sock *sk;
51608 	u16 family;
51609 	__be16 dport;
51610 	__be16 sport;
51611 	union {
51612 		struct {
51613 			__be32 daddr;
51614 			__be32 saddr;
51615 		} v4;
51616 		struct {
51617 			struct in6_addr daddr;
51618 			struct in6_addr saddr;
51619 		} v6;
51620 	} fam;
51621 };
51622 
51623 struct lsm_ioctlop_audit {
51624 	struct path path;
51625 	u16 cmd;
51626 };
51627 
51628 struct lsm_ibpkey_audit {
51629 	u64 subnet_prefix;
51630 	u16 pkey;
51631 };
51632 
51633 struct lsm_ibendport_audit {
51634 	const char *dev_name;
51635 	u8 port;
51636 };
51637 
51638 struct selinux_state;
51639 
51640 struct selinux_audit_data {
51641 	u32 ssid;
51642 	u32 tsid;
51643 	u16 tclass;
51644 	u32 requested;
51645 	u32 audited;
51646 	u32 denied;
51647 	int result;
51648 	struct selinux_state *state;
51649 };
51650 
51651 struct common_audit_data {
51652 	char type;
51653 	union {
51654 		struct path path;
51655 		struct dentry *dentry;
51656 		struct inode *inode;
51657 		struct lsm_network_audit *net;
51658 		int cap;
51659 		int ipc_id;
51660 		struct task_struct *tsk;
51661 		struct {
51662 			key_serial_t key;
51663 			char *key_desc;
51664 		} key_struct;
51665 		char *kmod_name;
51666 		struct lsm_ioctlop_audit *op;
51667 		struct file *file;
51668 		struct lsm_ibpkey_audit *ibpkey;
51669 		struct lsm_ibendport_audit *ibendport;
51670 		int reason;
51671 	} u;
51672 	union {
51673 		struct selinux_audit_data *selinux_audit_data;
51674 	};
51675 };
51676 
51677 enum {
51678 	POLICYDB_CAPABILITY_NETPEER = 0,
51679 	POLICYDB_CAPABILITY_OPENPERM = 1,
51680 	POLICYDB_CAPABILITY_EXTSOCKCLASS = 2,
51681 	POLICYDB_CAPABILITY_ALWAYSNETWORK = 3,
51682 	POLICYDB_CAPABILITY_CGROUPSECLABEL = 4,
51683 	POLICYDB_CAPABILITY_NNP_NOSUID_TRANSITION = 5,
51684 	POLICYDB_CAPABILITY_GENFS_SECLABEL_SYMLINKS = 6,
51685 	__POLICYDB_CAPABILITY_MAX = 7,
51686 };
51687 
51688 struct selinux_avc;
51689 
51690 struct selinux_policy;
51691 
51692 struct selinux_state {
51693 	bool enforcing;
51694 	bool checkreqprot;
51695 	bool initialized;
51696 	bool policycap[7];
51697 	struct page *status_page;
51698 	struct mutex status_lock;
51699 	struct selinux_avc *avc;
51700 	struct selinux_policy *policy;
51701 	struct mutex policy_mutex;
51702 };
51703 
51704 struct avc_cache {
51705 	struct hlist_head slots[512];
51706 	spinlock_t slots_lock[512];
51707 	atomic_t lru_hint;
51708 	atomic_t active_nodes;
51709 	u32 latest_notif;
51710 };
51711 
51712 struct selinux_avc {
51713 	unsigned int avc_cache_threshold;
51714 	struct avc_cache avc_cache;
51715 };
51716 
51717 struct av_decision {
51718 	u32 allowed;
51719 	u32 auditallow;
51720 	u32 auditdeny;
51721 	u32 seqno;
51722 	u32 flags;
51723 };
51724 
51725 struct extended_perms_data {
51726 	u32 p[8];
51727 };
51728 
51729 struct extended_perms_decision {
51730 	u8 used;
51731 	u8 driver;
51732 	struct extended_perms_data *allowed;
51733 	struct extended_perms_data *auditallow;
51734 	struct extended_perms_data *dontaudit;
51735 };
51736 
51737 struct extended_perms {
51738 	u16 len;
51739 	struct extended_perms_data drivers;
51740 };
51741 
51742 struct avc_cache_stats {
51743 	unsigned int lookups;
51744 	unsigned int misses;
51745 	unsigned int allocations;
51746 	unsigned int reclaims;
51747 	unsigned int frees;
51748 };
51749 
51750 struct security_class_mapping {
51751 	const char *name;
51752 	const char *perms[33];
51753 };
51754 
51755 struct trace_event_raw_selinux_audited {
51756 	struct trace_entry ent;
51757 	u32 requested;
51758 	u32 denied;
51759 	u32 audited;
51760 	int result;
51761 	u32 __data_loc_scontext;
51762 	u32 __data_loc_tcontext;
51763 	u32 __data_loc_tclass;
51764 	char __data[0];
51765 };
51766 
51767 struct trace_event_data_offsets_selinux_audited {
51768 	u32 scontext;
51769 	u32 tcontext;
51770 	u32 tclass;
51771 };
51772 
51773 typedef void (*btf_trace_selinux_audited)(void *, struct selinux_audit_data *, char *, char *, const char *);
51774 
51775 struct avc_xperms_node;
51776 
51777 struct avc_entry {
51778 	u32 ssid;
51779 	u32 tsid;
51780 	u16 tclass;
51781 	struct av_decision avd;
51782 	struct avc_xperms_node *xp_node;
51783 };
51784 
51785 struct avc_xperms_node {
51786 	struct extended_perms xp;
51787 	struct list_head xpd_head;
51788 };
51789 
51790 struct avc_node {
51791 	struct avc_entry ae;
51792 	struct hlist_node list;
51793 	struct callback_head rhead;
51794 };
51795 
51796 struct avc_xperms_decision_node {
51797 	struct extended_perms_decision xpd;
51798 	struct list_head xpd_list;
51799 };
51800 
51801 struct avc_callback_node {
51802 	int (*callback)(u32);
51803 	u32 events;
51804 	struct avc_callback_node *next;
51805 };
51806 
51807 typedef __u16 __sum16;
51808 
51809 typedef u16 u_int16_t;
51810 
51811 struct rhltable {
51812 	struct rhashtable ht;
51813 };
51814 
51815 enum sctp_endpoint_type {
51816 	SCTP_EP_TYPE_SOCKET = 0,
51817 	SCTP_EP_TYPE_ASSOCIATION = 1,
51818 };
51819 
51820 struct sctp_chunk;
51821 
51822 struct sctp_inq {
51823 	struct list_head in_chunk_list;
51824 	struct sctp_chunk *in_progress;
51825 	struct work_struct immediate;
51826 };
51827 
51828 struct sctp_bind_addr {
51829 	__u16 port;
51830 	struct list_head address_list;
51831 };
51832 
51833 struct sctp_ep_common {
51834 	enum sctp_endpoint_type type;
51835 	refcount_t refcnt;
51836 	bool dead;
51837 	struct sock *sk;
51838 	struct net *net;
51839 	struct sctp_inq inqueue;
51840 	struct sctp_bind_addr bind_addr;
51841 };
51842 
51843 typedef __s32 sctp_assoc_t;
51844 
51845 struct sockaddr_in {
51846 	__kernel_sa_family_t sin_family;
51847 	__be16 sin_port;
51848 	struct in_addr sin_addr;
51849 	unsigned char __pad[8];
51850 };
51851 
51852 struct sockaddr_in6 {
51853 	short unsigned int sin6_family;
51854 	__be16 sin6_port;
51855 	__be32 sin6_flowinfo;
51856 	struct in6_addr sin6_addr;
51857 	__u32 sin6_scope_id;
51858 };
51859 
51860 union sctp_addr {
51861 	struct sockaddr_in v4;
51862 	struct sockaddr_in6 v6;
51863 	struct sockaddr sa;
51864 };
51865 
51866 struct sctp_chunkhdr {
51867 	__u8 type;
51868 	__u8 flags;
51869 	__be16 length;
51870 };
51871 
51872 struct sctp_inithdr {
51873 	__be32 init_tag;
51874 	__be32 a_rwnd;
51875 	__be16 num_outbound_streams;
51876 	__be16 num_inbound_streams;
51877 	__be32 initial_tsn;
51878 	__u8 params[0];
51879 };
51880 
51881 struct sctp_init_chunk {
51882 	struct sctp_chunkhdr chunk_hdr;
51883 	struct sctp_inithdr init_hdr;
51884 };
51885 
51886 struct sctp_cookie {
51887 	__u32 my_vtag;
51888 	__u32 peer_vtag;
51889 	__u32 my_ttag;
51890 	__u32 peer_ttag;
51891 	ktime_t expiration;
51892 	__u16 sinit_num_ostreams;
51893 	__u16 sinit_max_instreams;
51894 	__u32 initial_tsn;
51895 	union sctp_addr peer_addr;
51896 	__u16 my_port;
51897 	__u8 prsctp_capable;
51898 	__u8 padding;
51899 	__u32 adaptation_ind;
51900 	__u8 auth_random[36];
51901 	__u8 auth_hmacs[10];
51902 	__u8 auth_chunks[20];
51903 	__u32 raw_addr_list_len;
51904 	struct sctp_init_chunk peer_init[0];
51905 };
51906 
51907 struct sctp_tsnmap {
51908 	long unsigned int *tsn_map;
51909 	__u32 base_tsn;
51910 	__u32 cumulative_tsn_ack_point;
51911 	__u32 max_tsn_seen;
51912 	__u16 len;
51913 	__u16 pending_data;
51914 	__u16 num_dup_tsns;
51915 	__be32 dup_tsns[16];
51916 };
51917 
51918 struct sctp_inithdr_host {
51919 	__u32 init_tag;
51920 	__u32 a_rwnd;
51921 	__u16 num_outbound_streams;
51922 	__u16 num_inbound_streams;
51923 	__u32 initial_tsn;
51924 };
51925 
51926 enum sctp_state {
51927 	SCTP_STATE_CLOSED = 0,
51928 	SCTP_STATE_COOKIE_WAIT = 1,
51929 	SCTP_STATE_COOKIE_ECHOED = 2,
51930 	SCTP_STATE_ESTABLISHED = 3,
51931 	SCTP_STATE_SHUTDOWN_PENDING = 4,
51932 	SCTP_STATE_SHUTDOWN_SENT = 5,
51933 	SCTP_STATE_SHUTDOWN_RECEIVED = 6,
51934 	SCTP_STATE_SHUTDOWN_ACK_SENT = 7,
51935 };
51936 
51937 struct sctp_stream_out_ext;
51938 
51939 struct sctp_stream_out {
51940 	union {
51941 		__u32 mid;
51942 		__u16 ssn;
51943 	};
51944 	__u32 mid_uo;
51945 	struct sctp_stream_out_ext *ext;
51946 	__u8 state;
51947 };
51948 
51949 struct sctp_stream_in {
51950 	union {
51951 		__u32 mid;
51952 		__u16 ssn;
51953 	};
51954 	__u32 mid_uo;
51955 	__u32 fsn;
51956 	__u32 fsn_uo;
51957 	char pd_mode;
51958 	char pd_mode_uo;
51959 };
51960 
51961 struct sctp_stream_interleave;
51962 
51963 struct sctp_stream {
51964 	struct {
51965 		struct __genradix tree;
51966 		struct sctp_stream_out type[0];
51967 	} out;
51968 	struct {
51969 		struct __genradix tree;
51970 		struct sctp_stream_in type[0];
51971 	} in;
51972 	__u16 outcnt;
51973 	__u16 incnt;
51974 	struct sctp_stream_out *out_curr;
51975 	union {
51976 		struct {
51977 			struct list_head prio_list;
51978 		};
51979 		struct {
51980 			struct list_head rr_list;
51981 			struct sctp_stream_out_ext *rr_next;
51982 		};
51983 	};
51984 	struct sctp_stream_interleave *si;
51985 };
51986 
51987 struct sctp_sched_ops;
51988 
51989 struct sctp_outq {
51990 	struct sctp_association *asoc;
51991 	struct list_head out_chunk_list;
51992 	struct sctp_sched_ops *sched;
51993 	unsigned int out_qlen;
51994 	unsigned int error;
51995 	struct list_head control_chunk_list;
51996 	struct list_head sacked;
51997 	struct list_head retransmit;
51998 	struct list_head abandoned;
51999 	__u32 outstanding_bytes;
52000 	char fast_rtx;
52001 	char cork;
52002 };
52003 
52004 struct sctp_ulpq {
52005 	char pd_mode;
52006 	struct sctp_association *asoc;
52007 	struct sk_buff_head reasm;
52008 	struct sk_buff_head reasm_uo;
52009 	struct sk_buff_head lobby;
52010 };
52011 
52012 struct sctp_priv_assoc_stats {
52013 	struct __kernel_sockaddr_storage obs_rto_ipaddr;
52014 	__u64 max_obs_rto;
52015 	__u64 isacks;
52016 	__u64 osacks;
52017 	__u64 opackets;
52018 	__u64 ipackets;
52019 	__u64 rtxchunks;
52020 	__u64 outofseqtsns;
52021 	__u64 idupchunks;
52022 	__u64 gapcnt;
52023 	__u64 ouodchunks;
52024 	__u64 iuodchunks;
52025 	__u64 oodchunks;
52026 	__u64 iodchunks;
52027 	__u64 octrlchunks;
52028 	__u64 ictrlchunks;
52029 };
52030 
52031 struct sctp_endpoint;
52032 
52033 struct sctp_transport;
52034 
52035 struct sctp_random_param;
52036 
52037 struct sctp_chunks_param;
52038 
52039 struct sctp_hmac_algo_param;
52040 
52041 struct sctp_auth_bytes;
52042 
52043 struct sctp_shared_key;
52044 
52045 struct sctp_association {
52046 	struct sctp_ep_common base;
52047 	struct list_head asocs;
52048 	sctp_assoc_t assoc_id;
52049 	struct sctp_endpoint *ep;
52050 	struct sctp_cookie c;
52051 	struct {
52052 		struct list_head transport_addr_list;
52053 		__u32 rwnd;
52054 		__u16 transport_count;
52055 		__u16 port;
52056 		struct sctp_transport *primary_path;
52057 		union sctp_addr primary_addr;
52058 		struct sctp_transport *active_path;
52059 		struct sctp_transport *retran_path;
52060 		struct sctp_transport *last_sent_to;
52061 		struct sctp_transport *last_data_from;
52062 		struct sctp_tsnmap tsn_map;
52063 		__be16 addip_disabled_mask;
52064 		__u16 ecn_capable: 1;
52065 		__u16 ipv4_address: 1;
52066 		__u16 ipv6_address: 1;
52067 		__u16 hostname_address: 1;
52068 		__u16 asconf_capable: 1;
52069 		__u16 prsctp_capable: 1;
52070 		__u16 reconf_capable: 1;
52071 		__u16 intl_capable: 1;
52072 		__u16 auth_capable: 1;
52073 		__u16 sack_needed: 1;
52074 		__u16 sack_generation: 1;
52075 		__u16 zero_window_announced: 1;
52076 		__u32 sack_cnt;
52077 		__u32 adaptation_ind;
52078 		struct sctp_inithdr_host i;
52079 		void *cookie;
52080 		int cookie_len;
52081 		__u32 addip_serial;
52082 		struct sctp_random_param *peer_random;
52083 		struct sctp_chunks_param *peer_chunks;
52084 		struct sctp_hmac_algo_param *peer_hmacs;
52085 	} peer;
52086 	enum sctp_state state;
52087 	int overall_error_count;
52088 	ktime_t cookie_life;
52089 	long unsigned int rto_initial;
52090 	long unsigned int rto_max;
52091 	long unsigned int rto_min;
52092 	int max_burst;
52093 	int max_retrans;
52094 	__u16 pf_retrans;
52095 	__u16 ps_retrans;
52096 	__u16 max_init_attempts;
52097 	__u16 init_retries;
52098 	long unsigned int max_init_timeo;
52099 	long unsigned int hbinterval;
52100 	long unsigned int probe_interval;
52101 	__be16 encap_port;
52102 	__u16 pathmaxrxt;
52103 	__u32 flowlabel;
52104 	__u8 dscp;
52105 	__u8 pmtu_pending;
52106 	__u32 pathmtu;
52107 	__u32 param_flags;
52108 	__u32 sackfreq;
52109 	long unsigned int sackdelay;
52110 	long unsigned int timeouts[12];
52111 	struct timer_list timers[12];
52112 	struct sctp_transport *shutdown_last_sent_to;
52113 	struct sctp_transport *init_last_sent_to;
52114 	int shutdown_retries;
52115 	__u32 next_tsn;
52116 	__u32 ctsn_ack_point;
52117 	__u32 adv_peer_ack_point;
52118 	__u32 highest_sacked;
52119 	__u32 fast_recovery_exit;
52120 	__u8 fast_recovery;
52121 	__u16 unack_data;
52122 	__u32 rtx_data_chunks;
52123 	__u32 rwnd;
52124 	__u32 a_rwnd;
52125 	__u32 rwnd_over;
52126 	__u32 rwnd_press;
52127 	int sndbuf_used;
52128 	atomic_t rmem_alloc;
52129 	wait_queue_head_t wait;
52130 	__u32 frag_point;
52131 	__u32 user_frag;
52132 	int init_err_counter;
52133 	int init_cycle;
52134 	__u16 default_stream;
52135 	__u16 default_flags;
52136 	__u32 default_ppid;
52137 	__u32 default_context;
52138 	__u32 default_timetolive;
52139 	__u32 default_rcv_context;
52140 	struct sctp_stream stream;
52141 	struct sctp_outq outqueue;
52142 	struct sctp_ulpq ulpq;
52143 	__u32 last_ecne_tsn;
52144 	__u32 last_cwr_tsn;
52145 	int numduptsns;
52146 	struct sctp_chunk *addip_last_asconf;
52147 	struct list_head asconf_ack_list;
52148 	struct list_head addip_chunk_list;
52149 	__u32 addip_serial;
52150 	int src_out_of_asoc_ok;
52151 	union sctp_addr *asconf_addr_del_pending;
52152 	struct sctp_transport *new_transport;
52153 	struct list_head endpoint_shared_keys;
52154 	struct sctp_auth_bytes *asoc_shared_key;
52155 	struct sctp_shared_key *shkey;
52156 	__u16 default_hmac_id;
52157 	__u16 active_key_id;
52158 	__u8 need_ecne: 1;
52159 	__u8 temp: 1;
52160 	__u8 pf_expose: 2;
52161 	__u8 force_delay: 1;
52162 	__u8 strreset_enable;
52163 	__u8 strreset_outstanding;
52164 	__u32 strreset_outseq;
52165 	__u32 strreset_inseq;
52166 	__u32 strreset_result[2];
52167 	struct sctp_chunk *strreset_chunk;
52168 	struct sctp_priv_assoc_stats stats;
52169 	int sent_cnt_removable;
52170 	__u16 subscribe;
52171 	__u64 abandoned_unsent[3];
52172 	__u64 abandoned_sent[3];
52173 	u32 secid;
52174 	u32 peer_secid;
52175 	struct callback_head rcu;
52176 };
52177 
52178 enum ip_conntrack_info {
52179 	IP_CT_ESTABLISHED = 0,
52180 	IP_CT_RELATED = 1,
52181 	IP_CT_NEW = 2,
52182 	IP_CT_IS_REPLY = 3,
52183 	IP_CT_ESTABLISHED_REPLY = 3,
52184 	IP_CT_RELATED_REPLY = 4,
52185 	IP_CT_NUMBER = 5,
52186 	IP_CT_UNTRACKED = 7,
52187 };
52188 
52189 struct nf_conntrack {
52190 	refcount_t use;
52191 };
52192 
52193 struct nf_hook_state;
52194 
52195 typedef unsigned int nf_hookfn(void *, struct sk_buff *, const struct nf_hook_state *);
52196 
52197 struct nf_hook_entry {
52198 	nf_hookfn *hook;
52199 	void *priv;
52200 };
52201 
52202 struct nf_hook_entries {
52203 	u16 num_hook_entries;
52204 	struct nf_hook_entry hooks[0];
52205 };
52206 
52207 struct nf_hook_state {
52208 	u8 hook;
52209 	u8 pf;
52210 	struct net_device *in;
52211 	struct net_device *out;
52212 	struct sock *sk;
52213 	struct net *net;
52214 	int (*okfn)(struct net *, struct sock *, struct sk_buff *);
52215 };
52216 
52217 enum nf_hook_ops_type {
52218 	NF_HOOK_OP_UNDEFINED = 0,
52219 	NF_HOOK_OP_NF_TABLES = 1,
52220 };
52221 
52222 struct nf_hook_ops {
52223 	nf_hookfn *hook;
52224 	struct net_device *dev;
52225 	void *priv;
52226 	u8 pf;
52227 	enum nf_hook_ops_type hook_ops_type: 8;
52228 	unsigned int hooknum;
52229 	int priority;
52230 };
52231 
52232 enum nf_nat_manip_type {
52233 	NF_NAT_MANIP_SRC = 0,
52234 	NF_NAT_MANIP_DST = 1,
52235 };
52236 
52237 struct nf_conn;
52238 
52239 struct nf_nat_hook {
52240 	int (*parse_nat_setup)(struct nf_conn *, enum nf_nat_manip_type, const struct nlattr *);
52241 	void (*decode_session)(struct sk_buff *, struct flowi *);
52242 	unsigned int (*manip_pkt)(struct sk_buff *, struct nf_conn *, enum nf_nat_manip_type, enum ip_conntrack_dir);
52243 };
52244 
52245 union nf_inet_addr {
52246 	__u32 all[4];
52247 	__be32 ip;
52248 	__be32 ip6[4];
52249 	struct in_addr in;
52250 	struct in6_addr in6;
52251 };
52252 
52253 union nf_conntrack_man_proto {
52254 	__be16 all;
52255 	struct {
52256 		__be16 port;
52257 	} tcp;
52258 	struct {
52259 		__be16 port;
52260 	} udp;
52261 	struct {
52262 		__be16 id;
52263 	} icmp;
52264 	struct {
52265 		__be16 port;
52266 	} dccp;
52267 	struct {
52268 		__be16 port;
52269 	} sctp;
52270 	struct {
52271 		__be16 key;
52272 	} gre;
52273 };
52274 
52275 struct nf_conntrack_man {
52276 	union nf_inet_addr u3;
52277 	union nf_conntrack_man_proto u;
52278 	u_int16_t l3num;
52279 };
52280 
52281 struct nf_conntrack_tuple {
52282 	struct nf_conntrack_man src;
52283 	struct {
52284 		union nf_inet_addr u3;
52285 		union {
52286 			__be16 all;
52287 			struct {
52288 				__be16 port;
52289 			} tcp;
52290 			struct {
52291 				__be16 port;
52292 			} udp;
52293 			struct {
52294 				u_int8_t type;
52295 				u_int8_t code;
52296 			} icmp;
52297 			struct {
52298 				__be16 port;
52299 			} dccp;
52300 			struct {
52301 				__be16 port;
52302 			} sctp;
52303 			struct {
52304 				__be16 key;
52305 			} gre;
52306 		} u;
52307 		u_int8_t protonum;
52308 		u_int8_t dir;
52309 	} dst;
52310 };
52311 
52312 struct nf_conntrack_tuple_hash {
52313 	struct hlist_nulls_node hnnode;
52314 	struct nf_conntrack_tuple tuple;
52315 };
52316 
52317 typedef u64 u_int64_t;
52318 
52319 struct nf_ct_dccp {
52320 	u_int8_t role[2];
52321 	u_int8_t state;
52322 	u_int8_t last_pkt;
52323 	u_int8_t last_dir;
52324 	u_int64_t handshake_seq;
52325 };
52326 
52327 struct ip_ct_sctp {
52328 	enum sctp_conntrack state;
52329 	__be32 vtag[2];
52330 	u8 last_dir;
52331 	u8 flags;
52332 };
52333 
52334 typedef u32 u_int32_t;
52335 
52336 struct ip_ct_tcp_state {
52337 	u_int32_t td_end;
52338 	u_int32_t td_maxend;
52339 	u_int32_t td_maxwin;
52340 	u_int32_t td_maxack;
52341 	u_int8_t td_scale;
52342 	u_int8_t flags;
52343 };
52344 
52345 struct ip_ct_tcp {
52346 	struct ip_ct_tcp_state seen[2];
52347 	u_int8_t state;
52348 	u_int8_t last_dir;
52349 	u_int8_t retrans;
52350 	u_int8_t last_index;
52351 	u_int32_t last_seq;
52352 	u_int32_t last_ack;
52353 	u_int32_t last_end;
52354 	u_int16_t last_win;
52355 	u_int8_t last_wscale;
52356 	u_int8_t last_flags;
52357 };
52358 
52359 struct nf_ct_udp {
52360 	long unsigned int stream_ts;
52361 };
52362 
52363 struct nf_ct_gre {
52364 	unsigned int stream_timeout;
52365 	unsigned int timeout;
52366 };
52367 
52368 union nf_conntrack_proto {
52369 	struct nf_ct_dccp dccp;
52370 	struct ip_ct_sctp sctp;
52371 	struct ip_ct_tcp tcp;
52372 	struct nf_ct_udp udp;
52373 	struct nf_ct_gre gre;
52374 	unsigned int tmpl_padto;
52375 };
52376 
52377 struct nf_ct_ext;
52378 
52379 struct nf_conn {
52380 	struct nf_conntrack ct_general;
52381 	spinlock_t lock;
52382 	u32 timeout;
52383 	struct nf_conntrack_tuple_hash tuplehash[2];
52384 	long unsigned int status;
52385 	u16 cpu;
52386 	u16 local_origin: 1;
52387 	possible_net_t ct_net;
52388 	struct {	} __nfct_init_offset;
52389 	struct nf_conn *master;
52390 	struct nf_ct_ext *ext;
52391 	union nf_conntrack_proto proto;
52392 };
52393 
52394 struct nf_conntrack_zone {
52395 	u16 id;
52396 	u8 flags;
52397 	u8 dir;
52398 };
52399 
52400 struct nf_ct_hook {
52401 	int (*update)(struct net *, struct sk_buff *);
52402 	void (*destroy)(struct nf_conntrack *);
52403 	bool (*get_tuple_skb)(struct nf_conntrack_tuple *, const struct sk_buff *);
52404 	void (*attach)(struct sk_buff *, const struct sk_buff *);
52405 };
52406 
52407 struct nfnl_ct_hook {
52408 	size_t (*build_size)(const struct nf_conn *);
52409 	int (*build)(struct sk_buff *, struct nf_conn *, enum ip_conntrack_info, u_int16_t, u_int16_t);
52410 	int (*parse)(const struct nlattr *, struct nf_conn *);
52411 	int (*attach_expect)(const struct nlattr *, struct nf_conn *, u32, u32);
52412 	void (*seq_adjust)(struct sk_buff *, struct nf_conn *, enum ip_conntrack_info, s32);
52413 };
52414 
52415 enum nf_ip_hook_priorities {
52416 	NF_IP_PRI_FIRST = 2147483648,
52417 	NF_IP_PRI_RAW_BEFORE_DEFRAG = 4294966846,
52418 	NF_IP_PRI_CONNTRACK_DEFRAG = 4294966896,
52419 	NF_IP_PRI_RAW = 4294966996,
52420 	NF_IP_PRI_SELINUX_FIRST = 4294967071,
52421 	NF_IP_PRI_CONNTRACK = 4294967096,
52422 	NF_IP_PRI_MANGLE = 4294967146,
52423 	NF_IP_PRI_NAT_DST = 4294967196,
52424 	NF_IP_PRI_FILTER = 0,
52425 	NF_IP_PRI_SECURITY = 50,
52426 	NF_IP_PRI_NAT_SRC = 100,
52427 	NF_IP_PRI_SELINUX_LAST = 225,
52428 	NF_IP_PRI_CONNTRACK_HELPER = 300,
52429 	NF_IP_PRI_CONNTRACK_CONFIRM = 2147483647,
52430 	NF_IP_PRI_LAST = 2147483647,
52431 };
52432 
52433 enum nf_ip6_hook_priorities {
52434 	NF_IP6_PRI_FIRST = 2147483648,
52435 	NF_IP6_PRI_RAW_BEFORE_DEFRAG = 4294966846,
52436 	NF_IP6_PRI_CONNTRACK_DEFRAG = 4294966896,
52437 	NF_IP6_PRI_RAW = 4294966996,
52438 	NF_IP6_PRI_SELINUX_FIRST = 4294967071,
52439 	NF_IP6_PRI_CONNTRACK = 4294967096,
52440 	NF_IP6_PRI_MANGLE = 4294967146,
52441 	NF_IP6_PRI_NAT_DST = 4294967196,
52442 	NF_IP6_PRI_FILTER = 0,
52443 	NF_IP6_PRI_SECURITY = 50,
52444 	NF_IP6_PRI_NAT_SRC = 100,
52445 	NF_IP6_PRI_SELINUX_LAST = 225,
52446 	NF_IP6_PRI_CONNTRACK_HELPER = 300,
52447 	NF_IP6_PRI_LAST = 2147483647,
52448 };
52449 
52450 struct socket_alloc {
52451 	struct socket socket;
52452 	struct inode vfs_inode;
52453 	long: 64;
52454 };
52455 
52456 struct ip_options {
52457 	__be32 faddr;
52458 	__be32 nexthop;
52459 	unsigned char optlen;
52460 	unsigned char srr;
52461 	unsigned char rr;
52462 	unsigned char ts;
52463 	unsigned char is_strictroute: 1;
52464 	unsigned char srr_is_hit: 1;
52465 	unsigned char is_changed: 1;
52466 	unsigned char rr_needaddr: 1;
52467 	unsigned char ts_needtime: 1;
52468 	unsigned char ts_needaddr: 1;
52469 	unsigned char router_alert;
52470 	unsigned char cipso;
52471 	unsigned char __pad2;
52472 	unsigned char __data[0];
52473 };
52474 
52475 struct ip_options_rcu {
52476 	struct callback_head rcu;
52477 	struct ip_options opt;
52478 };
52479 
52480 struct ipv6_opt_hdr;
52481 
52482 struct ipv6_rt_hdr;
52483 
52484 struct ipv6_txoptions {
52485 	refcount_t refcnt;
52486 	int tot_len;
52487 	__u16 opt_flen;
52488 	__u16 opt_nflen;
52489 	struct ipv6_opt_hdr *hopopt;
52490 	struct ipv6_opt_hdr *dst0opt;
52491 	struct ipv6_rt_hdr *srcrt;
52492 	struct ipv6_opt_hdr *dst1opt;
52493 	struct callback_head rcu;
52494 };
52495 
52496 struct inet_cork {
52497 	unsigned int flags;
52498 	__be32 addr;
52499 	struct ip_options *opt;
52500 	unsigned int fragsize;
52501 	int length;
52502 	struct dst_entry *dst;
52503 	u8 tx_flags;
52504 	__u8 ttl;
52505 	__s16 tos;
52506 	char priority;
52507 	__u16 gso_size;
52508 	u64 transmit_time;
52509 	u32 mark;
52510 };
52511 
52512 struct inet_cork_full {
52513 	struct inet_cork base;
52514 	struct flowi fl;
52515 };
52516 
52517 struct ipv6_pinfo;
52518 
52519 struct ip_mc_socklist;
52520 
52521 struct inet_sock {
52522 	struct sock sk;
52523 	struct ipv6_pinfo *pinet6;
52524 	__be32 inet_saddr;
52525 	__s16 uc_ttl;
52526 	__u16 cmsg_flags;
52527 	struct ip_options_rcu *inet_opt;
52528 	__be16 inet_sport;
52529 	__u16 inet_id;
52530 	__u8 tos;
52531 	__u8 min_ttl;
52532 	__u8 mc_ttl;
52533 	__u8 pmtudisc;
52534 	__u8 recverr: 1;
52535 	__u8 is_icsk: 1;
52536 	__u8 freebind: 1;
52537 	__u8 hdrincl: 1;
52538 	__u8 mc_loop: 1;
52539 	__u8 transparent: 1;
52540 	__u8 mc_all: 1;
52541 	__u8 nodefrag: 1;
52542 	__u8 bind_address_no_port: 1;
52543 	__u8 recverr_rfc4884: 1;
52544 	__u8 defer_connect: 1;
52545 	__u8 rcv_tos;
52546 	__u8 convert_csum;
52547 	int uc_index;
52548 	int mc_index;
52549 	__be32 mc_addr;
52550 	struct ip_mc_socklist *mc_list;
52551 	struct inet_cork_full cork;
52552 };
52553 
52554 struct in6_pktinfo {
52555 	struct in6_addr ipi6_addr;
52556 	int ipi6_ifindex;
52557 };
52558 
52559 struct inet6_cork {
52560 	struct ipv6_txoptions *opt;
52561 	u8 hop_limit;
52562 	u8 tclass;
52563 };
52564 
52565 struct ipv6_mc_socklist;
52566 
52567 struct ipv6_ac_socklist;
52568 
52569 struct ipv6_fl_socklist;
52570 
52571 struct ipv6_pinfo {
52572 	struct in6_addr saddr;
52573 	struct in6_pktinfo sticky_pktinfo;
52574 	const struct in6_addr *daddr_cache;
52575 	const struct in6_addr *saddr_cache;
52576 	__be32 flow_label;
52577 	__u32 frag_size;
52578 	__u16 __unused_1: 7;
52579 	__s16 hop_limit: 9;
52580 	__u16 mc_loop: 1;
52581 	__u16 __unused_2: 6;
52582 	__s16 mcast_hops: 9;
52583 	int ucast_oif;
52584 	int mcast_oif;
52585 	union {
52586 		struct {
52587 			__u16 srcrt: 1;
52588 			__u16 osrcrt: 1;
52589 			__u16 rxinfo: 1;
52590 			__u16 rxoinfo: 1;
52591 			__u16 rxhlim: 1;
52592 			__u16 rxohlim: 1;
52593 			__u16 hopopts: 1;
52594 			__u16 ohopopts: 1;
52595 			__u16 dstopts: 1;
52596 			__u16 odstopts: 1;
52597 			__u16 rxflow: 1;
52598 			__u16 rxtclass: 1;
52599 			__u16 rxpmtu: 1;
52600 			__u16 rxorigdstaddr: 1;
52601 			__u16 recvfragsize: 1;
52602 		} bits;
52603 		__u16 all;
52604 	} rxopt;
52605 	__u16 recverr: 1;
52606 	__u16 sndflow: 1;
52607 	__u16 repflow: 1;
52608 	__u16 pmtudisc: 3;
52609 	__u16 padding: 1;
52610 	__u16 srcprefs: 3;
52611 	__u16 dontfrag: 1;
52612 	__u16 autoflowlabel: 1;
52613 	__u16 autoflowlabel_set: 1;
52614 	__u16 mc_all: 1;
52615 	__u16 recverr_rfc4884: 1;
52616 	__u16 rtalert_isolate: 1;
52617 	__u8 min_hopcount;
52618 	__u8 tclass;
52619 	__be32 rcv_flowinfo;
52620 	__u32 dst_cookie;
52621 	struct ipv6_mc_socklist *ipv6_mc_list;
52622 	struct ipv6_ac_socklist *ipv6_ac_list;
52623 	struct ipv6_fl_socklist *ipv6_fl_list;
52624 	struct ipv6_txoptions *opt;
52625 	struct sk_buff *pktoptions;
52626 	struct sk_buff *rxpmtu;
52627 	struct inet6_cork cork;
52628 };
52629 
52630 struct tcphdr {
52631 	__be16 source;
52632 	__be16 dest;
52633 	__be32 seq;
52634 	__be32 ack_seq;
52635 	__u16 res1: 4;
52636 	__u16 doff: 4;
52637 	__u16 fin: 1;
52638 	__u16 syn: 1;
52639 	__u16 rst: 1;
52640 	__u16 psh: 1;
52641 	__u16 ack: 1;
52642 	__u16 urg: 1;
52643 	__u16 ece: 1;
52644 	__u16 cwr: 1;
52645 	__be16 window;
52646 	__sum16 check;
52647 	__be16 urg_ptr;
52648 };
52649 
52650 struct iphdr {
52651 	__u8 ihl: 4;
52652 	__u8 version: 4;
52653 	__u8 tos;
52654 	__be16 tot_len;
52655 	__be16 id;
52656 	__be16 frag_off;
52657 	__u8 ttl;
52658 	__u8 protocol;
52659 	__sum16 check;
52660 	__be32 saddr;
52661 	__be32 daddr;
52662 };
52663 
52664 struct ipv6_rt_hdr {
52665 	__u8 nexthdr;
52666 	__u8 hdrlen;
52667 	__u8 type;
52668 	__u8 segments_left;
52669 };
52670 
52671 struct ipv6_opt_hdr {
52672 	__u8 nexthdr;
52673 	__u8 hdrlen;
52674 };
52675 
52676 struct ipv6hdr {
52677 	__u8 priority: 4;
52678 	__u8 version: 4;
52679 	__u8 flow_lbl[3];
52680 	__be16 payload_len;
52681 	__u8 nexthdr;
52682 	__u8 hop_limit;
52683 	struct in6_addr saddr;
52684 	struct in6_addr daddr;
52685 };
52686 
52687 struct udphdr {
52688 	__be16 source;
52689 	__be16 dest;
52690 	__be16 len;
52691 	__sum16 check;
52692 };
52693 
52694 struct inet6_skb_parm {
52695 	int iif;
52696 	__be16 ra;
52697 	__u16 dst0;
52698 	__u16 srcrt;
52699 	__u16 dst1;
52700 	__u16 lastopt;
52701 	__u16 nhoff;
52702 	__u16 flags;
52703 	__u16 dsthao;
52704 	__u16 frag_max_size;
52705 	__u16 srhoff;
52706 };
52707 
52708 struct ip6_sf_socklist;
52709 
52710 struct ipv6_mc_socklist {
52711 	struct in6_addr addr;
52712 	int ifindex;
52713 	unsigned int sfmode;
52714 	struct ipv6_mc_socklist *next;
52715 	struct ip6_sf_socklist *sflist;
52716 	struct callback_head rcu;
52717 };
52718 
52719 struct ipv6_ac_socklist {
52720 	struct in6_addr acl_addr;
52721 	int acl_ifindex;
52722 	struct ipv6_ac_socklist *acl_next;
52723 };
52724 
52725 struct ip6_flowlabel;
52726 
52727 struct ipv6_fl_socklist {
52728 	struct ipv6_fl_socklist *next;
52729 	struct ip6_flowlabel *fl;
52730 	struct callback_head rcu;
52731 };
52732 
52733 struct ip6_sf_socklist {
52734 	unsigned int sl_max;
52735 	unsigned int sl_count;
52736 	struct callback_head rcu;
52737 	struct in6_addr sl_addr[0];
52738 };
52739 
52740 struct ip6_flowlabel {
52741 	struct ip6_flowlabel *next;
52742 	__be32 label;
52743 	atomic_t users;
52744 	struct in6_addr dst;
52745 	struct ipv6_txoptions *opt;
52746 	long unsigned int linger;
52747 	struct callback_head rcu;
52748 	u8 share;
52749 	union {
52750 		struct pid *pid;
52751 		kuid_t uid;
52752 	} owner;
52753 	long unsigned int lastuse;
52754 	long unsigned int expires;
52755 	struct net *fl_net;
52756 };
52757 
52758 struct inet_skb_parm {
52759 	int iif;
52760 	struct ip_options opt;
52761 	u16 flags;
52762 	u16 frag_max_size;
52763 };
52764 
52765 struct nf_queue_entry;
52766 
52767 struct nf_ipv6_ops {
52768 	void (*route_input)(struct sk_buff *);
52769 	int (*fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *));
52770 	int (*reroute)(struct sk_buff *, const struct nf_queue_entry *);
52771 };
52772 
52773 struct nf_queue_entry {
52774 	struct list_head list;
52775 	struct sk_buff *skb;
52776 	unsigned int id;
52777 	unsigned int hook_index;
52778 	struct nf_hook_state state;
52779 	u16 size;
52780 };
52781 
52782 struct tty_file_private {
52783 	struct tty_struct *tty;
52784 	struct file *file;
52785 	struct list_head list;
52786 };
52787 
52788 struct icmp_err {
52789 	int errno;
52790 	unsigned int fatal: 1;
52791 };
52792 
52793 struct netlbl_lsm_cache {
52794 	refcount_t refcount;
52795 	void (*free)(const void *);
52796 	void *data;
52797 };
52798 
52799 struct netlbl_lsm_catmap {
52800 	u32 startbit;
52801 	u64 bitmap[4];
52802 	struct netlbl_lsm_catmap *next;
52803 };
52804 
52805 struct netlbl_lsm_secattr {
52806 	u32 flags;
52807 	u32 type;
52808 	char *domain;
52809 	struct netlbl_lsm_cache *cache;
52810 	struct {
52811 		struct {
52812 			struct netlbl_lsm_catmap *cat;
52813 			u32 lvl;
52814 		} mls;
52815 		u32 secid;
52816 	} attr;
52817 };
52818 
52819 struct dccp_hdr {
52820 	__be16 dccph_sport;
52821 	__be16 dccph_dport;
52822 	__u8 dccph_doff;
52823 	__u8 dccph_cscov: 4;
52824 	__u8 dccph_ccval: 4;
52825 	__sum16 dccph_checksum;
52826 	__u8 dccph_x: 1;
52827 	__u8 dccph_type: 4;
52828 	__u8 dccph_reserved: 3;
52829 	__u8 dccph_seq2;
52830 	__be16 dccph_seq;
52831 };
52832 
52833 enum dccp_state {
52834 	DCCP_OPEN = 1,
52835 	DCCP_REQUESTING = 2,
52836 	DCCP_LISTEN = 10,
52837 	DCCP_RESPOND = 3,
52838 	DCCP_ACTIVE_CLOSEREQ = 4,
52839 	DCCP_PASSIVE_CLOSE = 8,
52840 	DCCP_CLOSING = 11,
52841 	DCCP_TIME_WAIT = 6,
52842 	DCCP_CLOSED = 7,
52843 	DCCP_NEW_SYN_RECV = 12,
52844 	DCCP_PARTOPEN = 13,
52845 	DCCP_PASSIVE_CLOSEREQ = 14,
52846 	DCCP_MAX_STATES = 15,
52847 };
52848 
52849 enum sctp_msg_flags {
52850 	MSG_NOTIFICATION = 32768,
52851 };
52852 
52853 struct sctp_initmsg {
52854 	__u16 sinit_num_ostreams;
52855 	__u16 sinit_max_instreams;
52856 	__u16 sinit_max_attempts;
52857 	__u16 sinit_max_init_timeo;
52858 };
52859 
52860 struct sctp_sndrcvinfo {
52861 	__u16 sinfo_stream;
52862 	__u16 sinfo_ssn;
52863 	__u16 sinfo_flags;
52864 	__u32 sinfo_ppid;
52865 	__u32 sinfo_context;
52866 	__u32 sinfo_timetolive;
52867 	__u32 sinfo_tsn;
52868 	__u32 sinfo_cumtsn;
52869 	sctp_assoc_t sinfo_assoc_id;
52870 };
52871 
52872 struct sctp_rtoinfo {
52873 	sctp_assoc_t srto_assoc_id;
52874 	__u32 srto_initial;
52875 	__u32 srto_max;
52876 	__u32 srto_min;
52877 };
52878 
52879 struct sctp_assocparams {
52880 	sctp_assoc_t sasoc_assoc_id;
52881 	__u16 sasoc_asocmaxrxt;
52882 	__u16 sasoc_number_peer_destinations;
52883 	__u32 sasoc_peer_rwnd;
52884 	__u32 sasoc_local_rwnd;
52885 	__u32 sasoc_cookie_life;
52886 };
52887 
52888 struct sctp_paddrparams {
52889 	sctp_assoc_t spp_assoc_id;
52890 	struct __kernel_sockaddr_storage spp_address;
52891 	__u32 spp_hbinterval;
52892 	__u16 spp_pathmaxrxt;
52893 	__u32 spp_pathmtu;
52894 	__u32 spp_sackdelay;
52895 	__u32 spp_flags;
52896 	__u32 spp_ipv6_flowlabel;
52897 	__u8 spp_dscp;
52898 	char: 8;
52899 } __attribute__((packed));
52900 
52901 struct sctphdr {
52902 	__be16 source;
52903 	__be16 dest;
52904 	__be32 vtag;
52905 	__le32 checksum;
52906 };
52907 
52908 enum sctp_cid {
52909 	SCTP_CID_DATA = 0,
52910 	SCTP_CID_INIT = 1,
52911 	SCTP_CID_INIT_ACK = 2,
52912 	SCTP_CID_SACK = 3,
52913 	SCTP_CID_HEARTBEAT = 4,
52914 	SCTP_CID_HEARTBEAT_ACK = 5,
52915 	SCTP_CID_ABORT = 6,
52916 	SCTP_CID_SHUTDOWN = 7,
52917 	SCTP_CID_SHUTDOWN_ACK = 8,
52918 	SCTP_CID_ERROR = 9,
52919 	SCTP_CID_COOKIE_ECHO = 10,
52920 	SCTP_CID_COOKIE_ACK = 11,
52921 	SCTP_CID_ECN_ECNE = 12,
52922 	SCTP_CID_ECN_CWR = 13,
52923 	SCTP_CID_SHUTDOWN_COMPLETE = 14,
52924 	SCTP_CID_AUTH = 15,
52925 	SCTP_CID_I_DATA = 64,
52926 	SCTP_CID_FWD_TSN = 192,
52927 	SCTP_CID_ASCONF = 193,
52928 	SCTP_CID_I_FWD_TSN = 194,
52929 	SCTP_CID_ASCONF_ACK = 128,
52930 	SCTP_CID_RECONF = 130,
52931 	SCTP_CID_PAD = 132,
52932 };
52933 
52934 struct sctp_paramhdr {
52935 	__be16 type;
52936 	__be16 length;
52937 };
52938 
52939 enum sctp_param {
52940 	SCTP_PARAM_HEARTBEAT_INFO = 256,
52941 	SCTP_PARAM_IPV4_ADDRESS = 1280,
52942 	SCTP_PARAM_IPV6_ADDRESS = 1536,
52943 	SCTP_PARAM_STATE_COOKIE = 1792,
52944 	SCTP_PARAM_UNRECOGNIZED_PARAMETERS = 2048,
52945 	SCTP_PARAM_COOKIE_PRESERVATIVE = 2304,
52946 	SCTP_PARAM_HOST_NAME_ADDRESS = 2816,
52947 	SCTP_PARAM_SUPPORTED_ADDRESS_TYPES = 3072,
52948 	SCTP_PARAM_ECN_CAPABLE = 128,
52949 	SCTP_PARAM_RANDOM = 640,
52950 	SCTP_PARAM_CHUNKS = 896,
52951 	SCTP_PARAM_HMAC_ALGO = 1152,
52952 	SCTP_PARAM_SUPPORTED_EXT = 2176,
52953 	SCTP_PARAM_FWD_TSN_SUPPORT = 192,
52954 	SCTP_PARAM_ADD_IP = 448,
52955 	SCTP_PARAM_DEL_IP = 704,
52956 	SCTP_PARAM_ERR_CAUSE = 960,
52957 	SCTP_PARAM_SET_PRIMARY = 1216,
52958 	SCTP_PARAM_SUCCESS_REPORT = 1472,
52959 	SCTP_PARAM_ADAPTATION_LAYER_IND = 1728,
52960 	SCTP_PARAM_RESET_OUT_REQUEST = 3328,
52961 	SCTP_PARAM_RESET_IN_REQUEST = 3584,
52962 	SCTP_PARAM_RESET_TSN_REQUEST = 3840,
52963 	SCTP_PARAM_RESET_RESPONSE = 4096,
52964 	SCTP_PARAM_RESET_ADD_OUT_STREAMS = 4352,
52965 	SCTP_PARAM_RESET_ADD_IN_STREAMS = 4608,
52966 };
52967 
52968 struct sctp_datahdr {
52969 	__be32 tsn;
52970 	__be16 stream;
52971 	__be16 ssn;
52972 	__u32 ppid;
52973 	__u8 payload[0];
52974 };
52975 
52976 struct sctp_idatahdr {
52977 	__be32 tsn;
52978 	__be16 stream;
52979 	__be16 reserved;
52980 	__be32 mid;
52981 	union {
52982 		__u32 ppid;
52983 		__be32 fsn;
52984 	};
52985 	__u8 payload[0];
52986 };
52987 
52988 struct sctp_ipv4addr_param {
52989 	struct sctp_paramhdr param_hdr;
52990 	struct in_addr addr;
52991 };
52992 
52993 struct sctp_ipv6addr_param {
52994 	struct sctp_paramhdr param_hdr;
52995 	struct in6_addr addr;
52996 };
52997 
52998 struct sctp_cookie_preserve_param {
52999 	struct sctp_paramhdr param_hdr;
53000 	__be32 lifespan_increment;
53001 };
53002 
53003 struct sctp_hostname_param {
53004 	struct sctp_paramhdr param_hdr;
53005 	uint8_t hostname[0];
53006 };
53007 
53008 struct sctp_supported_addrs_param {
53009 	struct sctp_paramhdr param_hdr;
53010 	__be16 types[0];
53011 };
53012 
53013 struct sctp_adaptation_ind_param {
53014 	struct sctp_paramhdr param_hdr;
53015 	__be32 adaptation_ind;
53016 };
53017 
53018 struct sctp_supported_ext_param {
53019 	struct sctp_paramhdr param_hdr;
53020 	__u8 chunks[0];
53021 };
53022 
53023 struct sctp_random_param {
53024 	struct sctp_paramhdr param_hdr;
53025 	__u8 random_val[0];
53026 };
53027 
53028 struct sctp_chunks_param {
53029 	struct sctp_paramhdr param_hdr;
53030 	__u8 chunks[0];
53031 };
53032 
53033 struct sctp_hmac_algo_param {
53034 	struct sctp_paramhdr param_hdr;
53035 	__be16 hmac_ids[0];
53036 };
53037 
53038 struct sctp_cookie_param {
53039 	struct sctp_paramhdr p;
53040 	__u8 body[0];
53041 };
53042 
53043 struct sctp_gap_ack_block {
53044 	__be16 start;
53045 	__be16 end;
53046 };
53047 
53048 union sctp_sack_variable {
53049 	struct sctp_gap_ack_block gab;
53050 	__be32 dup;
53051 };
53052 
53053 struct sctp_sackhdr {
53054 	__be32 cum_tsn_ack;
53055 	__be32 a_rwnd;
53056 	__be16 num_gap_ack_blocks;
53057 	__be16 num_dup_tsns;
53058 	union sctp_sack_variable variable[0];
53059 };
53060 
53061 struct sctp_heartbeathdr {
53062 	struct sctp_paramhdr info;
53063 };
53064 
53065 struct sctp_shutdownhdr {
53066 	__be32 cum_tsn_ack;
53067 };
53068 
53069 struct sctp_errhdr {
53070 	__be16 cause;
53071 	__be16 length;
53072 	__u8 variable[0];
53073 };
53074 
53075 struct sctp_ecnehdr {
53076 	__be32 lowest_tsn;
53077 };
53078 
53079 struct sctp_cwrhdr {
53080 	__be32 lowest_tsn;
53081 };
53082 
53083 struct sctp_fwdtsn_skip {
53084 	__be16 stream;
53085 	__be16 ssn;
53086 };
53087 
53088 struct sctp_fwdtsn_hdr {
53089 	__be32 new_cum_tsn;
53090 	struct sctp_fwdtsn_skip skip[0];
53091 };
53092 
53093 struct sctp_ifwdtsn_skip {
53094 	__be16 stream;
53095 	__u8 reserved;
53096 	__u8 flags;
53097 	__be32 mid;
53098 };
53099 
53100 struct sctp_ifwdtsn_hdr {
53101 	__be32 new_cum_tsn;
53102 	struct sctp_ifwdtsn_skip skip[0];
53103 };
53104 
53105 struct sctp_addip_param {
53106 	struct sctp_paramhdr param_hdr;
53107 	__be32 crr_id;
53108 };
53109 
53110 struct sctp_addiphdr {
53111 	__be32 serial;
53112 	__u8 params[0];
53113 };
53114 
53115 struct sctp_authhdr {
53116 	__be16 shkey_id;
53117 	__be16 hmac_id;
53118 	__u8 hmac[0];
53119 };
53120 
53121 struct sctp_auth_bytes {
53122 	refcount_t refcnt;
53123 	__u32 len;
53124 	__u8 data[0];
53125 };
53126 
53127 struct sctp_shared_key {
53128 	struct list_head key_list;
53129 	struct sctp_auth_bytes *key;
53130 	refcount_t refcnt;
53131 	__u16 key_id;
53132 	__u8 deactivated;
53133 };
53134 
53135 enum {
53136 	SCTP_MAX_STREAM = 65535,
53137 };
53138 
53139 enum sctp_event_timeout {
53140 	SCTP_EVENT_TIMEOUT_NONE = 0,
53141 	SCTP_EVENT_TIMEOUT_T1_COOKIE = 1,
53142 	SCTP_EVENT_TIMEOUT_T1_INIT = 2,
53143 	SCTP_EVENT_TIMEOUT_T2_SHUTDOWN = 3,
53144 	SCTP_EVENT_TIMEOUT_T3_RTX = 4,
53145 	SCTP_EVENT_TIMEOUT_T4_RTO = 5,
53146 	SCTP_EVENT_TIMEOUT_T5_SHUTDOWN_GUARD = 6,
53147 	SCTP_EVENT_TIMEOUT_HEARTBEAT = 7,
53148 	SCTP_EVENT_TIMEOUT_RECONF = 8,
53149 	SCTP_EVENT_TIMEOUT_PROBE = 9,
53150 	SCTP_EVENT_TIMEOUT_SACK = 10,
53151 	SCTP_EVENT_TIMEOUT_AUTOCLOSE = 11,
53152 };
53153 
53154 enum {
53155 	SCTP_MAX_DUP_TSNS = 16,
53156 };
53157 
53158 enum sctp_scope {
53159 	SCTP_SCOPE_GLOBAL = 0,
53160 	SCTP_SCOPE_PRIVATE = 1,
53161 	SCTP_SCOPE_LINK = 2,
53162 	SCTP_SCOPE_LOOPBACK = 3,
53163 	SCTP_SCOPE_UNUSABLE = 4,
53164 };
53165 
53166 enum {
53167 	SCTP_AUTH_HMAC_ID_RESERVED_0 = 0,
53168 	SCTP_AUTH_HMAC_ID_SHA1 = 1,
53169 	SCTP_AUTH_HMAC_ID_RESERVED_2 = 2,
53170 	SCTP_AUTH_HMAC_ID_SHA256 = 3,
53171 	__SCTP_AUTH_HMAC_MAX = 4,
53172 };
53173 
53174 struct sctp_ulpevent {
53175 	struct sctp_association *asoc;
53176 	struct sctp_chunk *chunk;
53177 	unsigned int rmem_len;
53178 	union {
53179 		__u32 mid;
53180 		__u16 ssn;
53181 	};
53182 	union {
53183 		__u32 ppid;
53184 		__u32 fsn;
53185 	};
53186 	__u32 tsn;
53187 	__u32 cumtsn;
53188 	__u16 stream;
53189 	__u16 flags;
53190 	__u16 msg_flags;
53191 } __attribute__((packed));
53192 
53193 union sctp_addr_param;
53194 
53195 union sctp_params {
53196 	void *v;
53197 	struct sctp_paramhdr *p;
53198 	struct sctp_cookie_preserve_param *life;
53199 	struct sctp_hostname_param *dns;
53200 	struct sctp_cookie_param *cookie;
53201 	struct sctp_supported_addrs_param *sat;
53202 	struct sctp_ipv4addr_param *v4;
53203 	struct sctp_ipv6addr_param *v6;
53204 	union sctp_addr_param *addr;
53205 	struct sctp_adaptation_ind_param *aind;
53206 	struct sctp_supported_ext_param *ext;
53207 	struct sctp_random_param *random;
53208 	struct sctp_chunks_param *chunks;
53209 	struct sctp_hmac_algo_param *hmac_algo;
53210 	struct sctp_addip_param *addip;
53211 };
53212 
53213 struct sctp_sender_hb_info;
53214 
53215 struct sctp_signed_cookie;
53216 
53217 struct sctp_datamsg;
53218 
53219 struct sctp_chunk {
53220 	struct list_head list;
53221 	refcount_t refcnt;
53222 	int sent_count;
53223 	union {
53224 		struct list_head transmitted_list;
53225 		struct list_head stream_list;
53226 	};
53227 	struct list_head frag_list;
53228 	struct sk_buff *skb;
53229 	union {
53230 		struct sk_buff *head_skb;
53231 		struct sctp_shared_key *shkey;
53232 	};
53233 	union sctp_params param_hdr;
53234 	union {
53235 		__u8 *v;
53236 		struct sctp_datahdr *data_hdr;
53237 		struct sctp_inithdr *init_hdr;
53238 		struct sctp_sackhdr *sack_hdr;
53239 		struct sctp_heartbeathdr *hb_hdr;
53240 		struct sctp_sender_hb_info *hbs_hdr;
53241 		struct sctp_shutdownhdr *shutdown_hdr;
53242 		struct sctp_signed_cookie *cookie_hdr;
53243 		struct sctp_ecnehdr *ecne_hdr;
53244 		struct sctp_cwrhdr *ecn_cwr_hdr;
53245 		struct sctp_errhdr *err_hdr;
53246 		struct sctp_addiphdr *addip_hdr;
53247 		struct sctp_fwdtsn_hdr *fwdtsn_hdr;
53248 		struct sctp_authhdr *auth_hdr;
53249 		struct sctp_idatahdr *idata_hdr;
53250 		struct sctp_ifwdtsn_hdr *ifwdtsn_hdr;
53251 	} subh;
53252 	__u8 *chunk_end;
53253 	struct sctp_chunkhdr *chunk_hdr;
53254 	struct sctphdr *sctp_hdr;
53255 	struct sctp_sndrcvinfo sinfo;
53256 	struct sctp_association *asoc;
53257 	struct sctp_ep_common *rcvr;
53258 	long unsigned int sent_at;
53259 	union sctp_addr source;
53260 	union sctp_addr dest;
53261 	struct sctp_datamsg *msg;
53262 	struct sctp_transport *transport;
53263 	struct sk_buff *auth_chunk;
53264 	__u16 rtt_in_progress: 1;
53265 	__u16 has_tsn: 1;
53266 	__u16 has_ssn: 1;
53267 	__u16 singleton: 1;
53268 	__u16 end_of_packet: 1;
53269 	__u16 ecn_ce_done: 1;
53270 	__u16 pdiscard: 1;
53271 	__u16 tsn_gap_acked: 1;
53272 	__u16 data_accepted: 1;
53273 	__u16 auth: 1;
53274 	__u16 has_asconf: 1;
53275 	__u16 pmtu_probe: 1;
53276 	__u16 tsn_missing_report: 2;
53277 	__u16 fast_retransmit: 2;
53278 };
53279 
53280 struct sctp_stream_interleave {
53281 	__u16 data_chunk_len;
53282 	__u16 ftsn_chunk_len;
53283 	struct sctp_chunk * (*make_datafrag)(const struct sctp_association *, const struct sctp_sndrcvinfo *, int, __u8, gfp_t);
53284 	void (*assign_number)(struct sctp_chunk *);
53285 	bool (*validate_data)(struct sctp_chunk *);
53286 	int (*ulpevent_data)(struct sctp_ulpq *, struct sctp_chunk *, gfp_t);
53287 	int (*enqueue_event)(struct sctp_ulpq *, struct sctp_ulpevent *);
53288 	void (*renege_events)(struct sctp_ulpq *, struct sctp_chunk *, gfp_t);
53289 	void (*start_pd)(struct sctp_ulpq *, gfp_t);
53290 	void (*abort_pd)(struct sctp_ulpq *, gfp_t);
53291 	void (*generate_ftsn)(struct sctp_outq *, __u32);
53292 	bool (*validate_ftsn)(struct sctp_chunk *);
53293 	void (*report_ftsn)(struct sctp_ulpq *, __u32);
53294 	void (*handle_ftsn)(struct sctp_ulpq *, struct sctp_chunk *);
53295 };
53296 
53297 struct sctp_bind_bucket {
53298 	short unsigned int port;
53299 	signed char fastreuse;
53300 	signed char fastreuseport;
53301 	kuid_t fastuid;
53302 	struct hlist_node node;
53303 	struct hlist_head owner;
53304 	struct net *net;
53305 };
53306 
53307 struct sctp_bind_hashbucket {
53308 	spinlock_t lock;
53309 	struct hlist_head chain;
53310 };
53311 
53312 struct sctp_hashbucket {
53313 	rwlock_t lock;
53314 	struct hlist_head chain;
53315 };
53316 
53317 struct sctp_globals {
53318 	struct list_head address_families;
53319 	struct sctp_hashbucket *ep_hashtable;
53320 	struct sctp_bind_hashbucket *port_hashtable;
53321 	struct rhltable transport_hashtable;
53322 	int ep_hashsize;
53323 	int port_hashsize;
53324 	__u16 max_instreams;
53325 	__u16 max_outstreams;
53326 	bool checksum_disable;
53327 };
53328 
53329 enum sctp_socket_type {
53330 	SCTP_SOCKET_UDP = 0,
53331 	SCTP_SOCKET_UDP_HIGH_BANDWIDTH = 1,
53332 	SCTP_SOCKET_TCP = 2,
53333 };
53334 
53335 struct crypto_shash___2;
53336 
53337 struct sctp_pf;
53338 
53339 struct sctp_sock {
53340 	struct inet_sock inet;
53341 	enum sctp_socket_type type;
53342 	int: 32;
53343 	struct sctp_pf *pf;
53344 	struct crypto_shash___2 *hmac;
53345 	char *sctp_hmac_alg;
53346 	struct sctp_endpoint *ep;
53347 	struct sctp_bind_bucket *bind_hash;
53348 	__u16 default_stream;
53349 	short: 16;
53350 	__u32 default_ppid;
53351 	__u16 default_flags;
53352 	short: 16;
53353 	__u32 default_context;
53354 	__u32 default_timetolive;
53355 	__u32 default_rcv_context;
53356 	int max_burst;
53357 	__u32 hbinterval;
53358 	__u32 probe_interval;
53359 	__be16 udp_port;
53360 	__be16 encap_port;
53361 	__u16 pathmaxrxt;
53362 	short: 16;
53363 	__u32 flowlabel;
53364 	__u8 dscp;
53365 	char: 8;
53366 	__u16 pf_retrans;
53367 	__u16 ps_retrans;
53368 	short: 16;
53369 	__u32 pathmtu;
53370 	__u32 sackdelay;
53371 	__u32 sackfreq;
53372 	__u32 param_flags;
53373 	__u32 default_ss;
53374 	struct sctp_rtoinfo rtoinfo;
53375 	struct sctp_paddrparams paddrparam;
53376 	struct sctp_assocparams assocparams;
53377 	__u16 subscribe;
53378 	struct sctp_initmsg initmsg;
53379 	short: 16;
53380 	int user_frag;
53381 	__u32 autoclose;
53382 	__u32 adaptation_ind;
53383 	__u32 pd_point;
53384 	__u16 nodelay: 1;
53385 	__u16 pf_expose: 2;
53386 	__u16 reuse: 1;
53387 	__u16 disable_fragments: 1;
53388 	__u16 v4mapped: 1;
53389 	__u16 frag_interleave: 1;
53390 	__u16 recvrcvinfo: 1;
53391 	__u16 recvnxtinfo: 1;
53392 	__u16 data_ready_signalled: 1;
53393 	int: 22;
53394 	atomic_t pd_mode;
53395 	struct sk_buff_head pd_lobby;
53396 	struct list_head auto_asconf_list;
53397 	int do_auto_asconf;
53398 	int: 32;
53399 } __attribute__((packed));
53400 
53401 struct sctp_af;
53402 
53403 struct sctp_pf {
53404 	void (*event_msgname)(struct sctp_ulpevent *, char *, int *);
53405 	void (*skb_msgname)(struct sk_buff *, char *, int *);
53406 	int (*af_supported)(sa_family_t, struct sctp_sock *);
53407 	int (*cmp_addr)(const union sctp_addr *, const union sctp_addr *, struct sctp_sock *);
53408 	int (*bind_verify)(struct sctp_sock *, union sctp_addr *);
53409 	int (*send_verify)(struct sctp_sock *, union sctp_addr *);
53410 	int (*supported_addrs)(const struct sctp_sock *, __be16 *);
53411 	struct sock * (*create_accept_sk)(struct sock *, struct sctp_association *, bool);
53412 	int (*addr_to_user)(struct sctp_sock *, union sctp_addr *);
53413 	void (*to_sk_saddr)(union sctp_addr *, struct sock *);
53414 	void (*to_sk_daddr)(union sctp_addr *, struct sock *);
53415 	void (*copy_ip_options)(struct sock *, struct sock *);
53416 	struct sctp_af *af;
53417 };
53418 
53419 struct sctp_endpoint {
53420 	struct sctp_ep_common base;
53421 	struct hlist_node node;
53422 	int hashent;
53423 	struct list_head asocs;
53424 	__u8 secret_key[32];
53425 	__u8 *digest;
53426 	__u32 sndbuf_policy;
53427 	__u32 rcvbuf_policy;
53428 	struct crypto_shash___2 **auth_hmacs;
53429 	struct sctp_hmac_algo_param *auth_hmacs_list;
53430 	struct sctp_chunks_param *auth_chunk_list;
53431 	struct list_head endpoint_shared_keys;
53432 	__u16 active_key_id;
53433 	__u8 ecn_enable: 1;
53434 	__u8 auth_enable: 1;
53435 	__u8 intl_enable: 1;
53436 	__u8 prsctp_enable: 1;
53437 	__u8 asconf_enable: 1;
53438 	__u8 reconf_enable: 1;
53439 	__u8 strreset_enable;
53440 	struct callback_head rcu;
53441 };
53442 
53443 struct sctp_signed_cookie {
53444 	__u8 signature[32];
53445 	__u32 __pad;
53446 	struct sctp_cookie c;
53447 } __attribute__((packed));
53448 
53449 union sctp_addr_param {
53450 	struct sctp_paramhdr p;
53451 	struct sctp_ipv4addr_param v4;
53452 	struct sctp_ipv6addr_param v6;
53453 };
53454 
53455 struct sctp_sender_hb_info {
53456 	struct sctp_paramhdr param_hdr;
53457 	union sctp_addr daddr;
53458 	long unsigned int sent_at;
53459 	__u64 hb_nonce;
53460 	__u32 probe_size;
53461 };
53462 
53463 struct sctp_af {
53464 	int (*sctp_xmit)(struct sk_buff *, struct sctp_transport *);
53465 	int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int);
53466 	int (*getsockopt)(struct sock *, int, int, char *, int *);
53467 	void (*get_dst)(struct sctp_transport *, union sctp_addr *, struct flowi *, struct sock *);
53468 	void (*get_saddr)(struct sctp_sock *, struct sctp_transport *, struct flowi *);
53469 	void (*copy_addrlist)(struct list_head *, struct net_device *);
53470 	int (*cmp_addr)(const union sctp_addr *, const union sctp_addr *);
53471 	void (*addr_copy)(union sctp_addr *, union sctp_addr *);
53472 	void (*from_skb)(union sctp_addr *, struct sk_buff *, int);
53473 	void (*from_sk)(union sctp_addr *, struct sock *);
53474 	bool (*from_addr_param)(union sctp_addr *, union sctp_addr_param *, __be16, int);
53475 	int (*to_addr_param)(const union sctp_addr *, union sctp_addr_param *);
53476 	int (*addr_valid)(union sctp_addr *, struct sctp_sock *, const struct sk_buff *);
53477 	enum sctp_scope (*scope)(union sctp_addr *);
53478 	void (*inaddr_any)(union sctp_addr *, __be16);
53479 	int (*is_any)(const union sctp_addr *);
53480 	int (*available)(union sctp_addr *, struct sctp_sock *);
53481 	int (*skb_iif)(const struct sk_buff *);
53482 	int (*is_ce)(const struct sk_buff *);
53483 	void (*seq_dump_addr)(struct seq_file *, union sctp_addr *);
53484 	void (*ecn_capable)(struct sock *);
53485 	__u16 net_header_len;
53486 	int sockaddr_len;
53487 	int (*ip_options_len)(struct sock *);
53488 	sa_family_t sa_family;
53489 	struct list_head list;
53490 };
53491 
53492 struct sctp_packet {
53493 	__u16 source_port;
53494 	__u16 destination_port;
53495 	__u32 vtag;
53496 	struct list_head chunk_list;
53497 	size_t overhead;
53498 	size_t size;
53499 	size_t max_size;
53500 	struct sctp_transport *transport;
53501 	struct sctp_chunk *auth;
53502 	u8 has_cookie_echo: 1;
53503 	u8 has_sack: 1;
53504 	u8 has_auth: 1;
53505 	u8 has_data: 1;
53506 	u8 ipfragok: 1;
53507 };
53508 
53509 struct sctp_transport {
53510 	struct list_head transports;
53511 	struct rhlist_head node;
53512 	refcount_t refcnt;
53513 	__u32 rto_pending: 1;
53514 	__u32 hb_sent: 1;
53515 	__u32 pmtu_pending: 1;
53516 	__u32 dst_pending_confirm: 1;
53517 	__u32 sack_generation: 1;
53518 	u32 dst_cookie;
53519 	struct flowi fl;
53520 	union sctp_addr ipaddr;
53521 	struct sctp_af *af_specific;
53522 	struct sctp_association *asoc;
53523 	long unsigned int rto;
53524 	__u32 rtt;
53525 	__u32 rttvar;
53526 	__u32 srtt;
53527 	__u32 cwnd;
53528 	__u32 ssthresh;
53529 	__u32 partial_bytes_acked;
53530 	__u32 flight_size;
53531 	__u32 burst_limited;
53532 	struct dst_entry *dst;
53533 	union sctp_addr saddr;
53534 	long unsigned int hbinterval;
53535 	long unsigned int probe_interval;
53536 	long unsigned int sackdelay;
53537 	__u32 sackfreq;
53538 	atomic_t mtu_info;
53539 	ktime_t last_time_heard;
53540 	long unsigned int last_time_sent;
53541 	long unsigned int last_time_ecne_reduced;
53542 	__be16 encap_port;
53543 	__u16 pathmaxrxt;
53544 	__u32 flowlabel;
53545 	__u8 dscp;
53546 	__u16 pf_retrans;
53547 	__u16 ps_retrans;
53548 	__u32 pathmtu;
53549 	__u32 param_flags;
53550 	int init_sent_count;
53551 	int state;
53552 	short unsigned int error_count;
53553 	struct timer_list T3_rtx_timer;
53554 	struct timer_list hb_timer;
53555 	struct timer_list proto_unreach_timer;
53556 	struct timer_list reconf_timer;
53557 	struct timer_list probe_timer;
53558 	struct list_head transmitted;
53559 	struct sctp_packet packet;
53560 	struct list_head send_ready;
53561 	struct {
53562 		__u32 next_tsn_at_change;
53563 		char changeover_active;
53564 		char cycling_changeover;
53565 		char cacc_saw_newack;
53566 	} cacc;
53567 	struct {
53568 		__u16 pmtu;
53569 		__u16 probe_size;
53570 		__u16 probe_high;
53571 		__u8 probe_count;
53572 		__u8 state;
53573 	} pl;
53574 	__u64 hb_nonce;
53575 	struct callback_head rcu;
53576 };
53577 
53578 struct sctp_datamsg {
53579 	struct list_head chunks;
53580 	refcount_t refcnt;
53581 	long unsigned int expires_at;
53582 	int send_error;
53583 	u8 send_failed: 1;
53584 	u8 can_delay: 1;
53585 	u8 abandoned: 1;
53586 };
53587 
53588 struct sctp_stream_priorities {
53589 	struct list_head prio_sched;
53590 	struct list_head active;
53591 	struct sctp_stream_out_ext *next;
53592 	__u16 prio;
53593 };
53594 
53595 struct sctp_stream_out_ext {
53596 	__u64 abandoned_unsent[3];
53597 	__u64 abandoned_sent[3];
53598 	struct list_head outq;
53599 	union {
53600 		struct {
53601 			struct list_head prio_list;
53602 			struct sctp_stream_priorities *prio_head;
53603 		};
53604 		struct {
53605 			struct list_head rr_list;
53606 		};
53607 	};
53608 };
53609 
53610 struct task_security_struct {
53611 	u32 osid;
53612 	u32 sid;
53613 	u32 exec_sid;
53614 	u32 create_sid;
53615 	u32 keycreate_sid;
53616 	u32 sockcreate_sid;
53617 };
53618 
53619 enum label_initialized {
53620 	LABEL_INVALID = 0,
53621 	LABEL_INITIALIZED = 1,
53622 	LABEL_PENDING = 2,
53623 };
53624 
53625 struct inode_security_struct {
53626 	struct inode *inode;
53627 	struct list_head list;
53628 	u32 task_sid;
53629 	u32 sid;
53630 	u16 sclass;
53631 	unsigned char initialized;
53632 	spinlock_t lock;
53633 };
53634 
53635 struct file_security_struct {
53636 	u32 sid;
53637 	u32 fown_sid;
53638 	u32 isid;
53639 	u32 pseqno;
53640 };
53641 
53642 struct superblock_security_struct {
53643 	u32 sid;
53644 	u32 def_sid;
53645 	u32 mntpoint_sid;
53646 	short unsigned int behavior;
53647 	short unsigned int flags;
53648 	struct mutex lock;
53649 	struct list_head isec_head;
53650 	spinlock_t isec_lock;
53651 };
53652 
53653 struct msg_security_struct {
53654 	u32 sid;
53655 };
53656 
53657 struct ipc_security_struct {
53658 	u16 sclass;
53659 	u32 sid;
53660 };
53661 
53662 struct sk_security_struct {
53663 	enum {
53664 		NLBL_UNSET = 0,
53665 		NLBL_REQUIRE = 1,
53666 		NLBL_LABELED = 2,
53667 		NLBL_REQSKB = 3,
53668 		NLBL_CONNLABELED = 4,
53669 	} nlbl_state;
53670 	struct netlbl_lsm_secattr *nlbl_secattr;
53671 	u32 sid;
53672 	u32 peer_sid;
53673 	u16 sclass;
53674 	enum {
53675 		SCTP_ASSOC_UNSET = 0,
53676 		SCTP_ASSOC_SET = 1,
53677 	} sctp_assoc_state;
53678 };
53679 
53680 struct tun_security_struct {
53681 	u32 sid;
53682 };
53683 
53684 struct key_security_struct {
53685 	u32 sid;
53686 };
53687 
53688 struct bpf_security_struct {
53689 	u32 sid;
53690 };
53691 
53692 struct perf_event_security_struct {
53693 	u32 sid;
53694 };
53695 
53696 struct selinux_mnt_opts {
53697 	const char *fscontext;
53698 	const char *context;
53699 	const char *rootcontext;
53700 	const char *defcontext;
53701 };
53702 
53703 enum {
53704 	Opt_error = 4294967295,
53705 	Opt_context = 0,
53706 	Opt_defcontext = 1,
53707 	Opt_fscontext = 2,
53708 	Opt_rootcontext = 3,
53709 	Opt_seclabel = 4,
53710 };
53711 
53712 struct selinux_policy_convert_data;
53713 
53714 struct selinux_load_state {
53715 	struct selinux_policy *policy;
53716 	struct selinux_policy_convert_data *convert_data;
53717 };
53718 
53719 enum sel_inos {
53720 	SEL_ROOT_INO = 2,
53721 	SEL_LOAD = 3,
53722 	SEL_ENFORCE = 4,
53723 	SEL_CONTEXT = 5,
53724 	SEL_ACCESS = 6,
53725 	SEL_CREATE = 7,
53726 	SEL_RELABEL = 8,
53727 	SEL_USER = 9,
53728 	SEL_POLICYVERS = 10,
53729 	SEL_COMMIT_BOOLS = 11,
53730 	SEL_MLS = 12,
53731 	SEL_DISABLE = 13,
53732 	SEL_MEMBER = 14,
53733 	SEL_CHECKREQPROT = 15,
53734 	SEL_COMPAT_NET = 16,
53735 	SEL_REJECT_UNKNOWN = 17,
53736 	SEL_DENY_UNKNOWN = 18,
53737 	SEL_STATUS = 19,
53738 	SEL_POLICY = 20,
53739 	SEL_VALIDATE_TRANS = 21,
53740 	SEL_INO_NEXT = 22,
53741 };
53742 
53743 struct selinux_fs_info {
53744 	struct dentry *bool_dir;
53745 	unsigned int bool_num;
53746 	char **bool_pending_names;
53747 	unsigned int *bool_pending_values;
53748 	struct dentry *class_dir;
53749 	long unsigned int last_class_ino;
53750 	bool policy_opened;
53751 	struct dentry *policycap_dir;
53752 	long unsigned int last_ino;
53753 	struct selinux_state *state;
53754 	struct super_block *sb;
53755 };
53756 
53757 struct policy_load_memory {
53758 	size_t len;
53759 	void *data;
53760 };
53761 
53762 enum {
53763 	SELNL_MSG_SETENFORCE = 16,
53764 	SELNL_MSG_POLICYLOAD = 17,
53765 	SELNL_MSG_MAX = 18,
53766 };
53767 
53768 enum selinux_nlgroups {
53769 	SELNLGRP_NONE = 0,
53770 	SELNLGRP_AVC = 1,
53771 	__SELNLGRP_MAX = 2,
53772 };
53773 
53774 struct selnl_msg_setenforce {
53775 	__s32 val;
53776 };
53777 
53778 struct selnl_msg_policyload {
53779 	__u32 seqno;
53780 };
53781 
53782 enum {
53783 	XFRM_MSG_BASE = 16,
53784 	XFRM_MSG_NEWSA = 16,
53785 	XFRM_MSG_DELSA = 17,
53786 	XFRM_MSG_GETSA = 18,
53787 	XFRM_MSG_NEWPOLICY = 19,
53788 	XFRM_MSG_DELPOLICY = 20,
53789 	XFRM_MSG_GETPOLICY = 21,
53790 	XFRM_MSG_ALLOCSPI = 22,
53791 	XFRM_MSG_ACQUIRE = 23,
53792 	XFRM_MSG_EXPIRE = 24,
53793 	XFRM_MSG_UPDPOLICY = 25,
53794 	XFRM_MSG_UPDSA = 26,
53795 	XFRM_MSG_POLEXPIRE = 27,
53796 	XFRM_MSG_FLUSHSA = 28,
53797 	XFRM_MSG_FLUSHPOLICY = 29,
53798 	XFRM_MSG_NEWAE = 30,
53799 	XFRM_MSG_GETAE = 31,
53800 	XFRM_MSG_REPORT = 32,
53801 	XFRM_MSG_MIGRATE = 33,
53802 	XFRM_MSG_NEWSADINFO = 34,
53803 	XFRM_MSG_GETSADINFO = 35,
53804 	XFRM_MSG_NEWSPDINFO = 36,
53805 	XFRM_MSG_GETSPDINFO = 37,
53806 	XFRM_MSG_MAPPING = 38,
53807 	XFRM_MSG_SETDEFAULT = 39,
53808 	XFRM_MSG_GETDEFAULT = 40,
53809 	__XFRM_MSG_MAX = 41,
53810 };
53811 
53812 enum {
53813 	RTM_BASE = 16,
53814 	RTM_NEWLINK = 16,
53815 	RTM_DELLINK = 17,
53816 	RTM_GETLINK = 18,
53817 	RTM_SETLINK = 19,
53818 	RTM_NEWADDR = 20,
53819 	RTM_DELADDR = 21,
53820 	RTM_GETADDR = 22,
53821 	RTM_NEWROUTE = 24,
53822 	RTM_DELROUTE = 25,
53823 	RTM_GETROUTE = 26,
53824 	RTM_NEWNEIGH = 28,
53825 	RTM_DELNEIGH = 29,
53826 	RTM_GETNEIGH = 30,
53827 	RTM_NEWRULE = 32,
53828 	RTM_DELRULE = 33,
53829 	RTM_GETRULE = 34,
53830 	RTM_NEWQDISC = 36,
53831 	RTM_DELQDISC = 37,
53832 	RTM_GETQDISC = 38,
53833 	RTM_NEWTCLASS = 40,
53834 	RTM_DELTCLASS = 41,
53835 	RTM_GETTCLASS = 42,
53836 	RTM_NEWTFILTER = 44,
53837 	RTM_DELTFILTER = 45,
53838 	RTM_GETTFILTER = 46,
53839 	RTM_NEWACTION = 48,
53840 	RTM_DELACTION = 49,
53841 	RTM_GETACTION = 50,
53842 	RTM_NEWPREFIX = 52,
53843 	RTM_GETMULTICAST = 58,
53844 	RTM_GETANYCAST = 62,
53845 	RTM_NEWNEIGHTBL = 64,
53846 	RTM_GETNEIGHTBL = 66,
53847 	RTM_SETNEIGHTBL = 67,
53848 	RTM_NEWNDUSEROPT = 68,
53849 	RTM_NEWADDRLABEL = 72,
53850 	RTM_DELADDRLABEL = 73,
53851 	RTM_GETADDRLABEL = 74,
53852 	RTM_GETDCB = 78,
53853 	RTM_SETDCB = 79,
53854 	RTM_NEWNETCONF = 80,
53855 	RTM_DELNETCONF = 81,
53856 	RTM_GETNETCONF = 82,
53857 	RTM_NEWMDB = 84,
53858 	RTM_DELMDB = 85,
53859 	RTM_GETMDB = 86,
53860 	RTM_NEWNSID = 88,
53861 	RTM_DELNSID = 89,
53862 	RTM_GETNSID = 90,
53863 	RTM_NEWSTATS = 92,
53864 	RTM_GETSTATS = 94,
53865 	RTM_NEWCACHEREPORT = 96,
53866 	RTM_NEWCHAIN = 100,
53867 	RTM_DELCHAIN = 101,
53868 	RTM_GETCHAIN = 102,
53869 	RTM_NEWNEXTHOP = 104,
53870 	RTM_DELNEXTHOP = 105,
53871 	RTM_GETNEXTHOP = 106,
53872 	RTM_NEWLINKPROP = 108,
53873 	RTM_DELLINKPROP = 109,
53874 	RTM_GETLINKPROP = 110,
53875 	RTM_NEWVLAN = 112,
53876 	RTM_DELVLAN = 113,
53877 	RTM_GETVLAN = 114,
53878 	RTM_NEWNEXTHOPBUCKET = 116,
53879 	RTM_DELNEXTHOPBUCKET = 117,
53880 	RTM_GETNEXTHOPBUCKET = 118,
53881 	__RTM_MAX = 119,
53882 };
53883 
53884 enum {
53885 	INET_DIAG_REQ_NONE = 0,
53886 	INET_DIAG_REQ_BYTECODE = 1,
53887 	INET_DIAG_REQ_SK_BPF_STORAGES = 2,
53888 	INET_DIAG_REQ_PROTOCOL = 3,
53889 	__INET_DIAG_REQ_MAX = 4,
53890 };
53891 
53892 struct nlmsg_perm {
53893 	u16 nlmsg_type;
53894 	u32 perm;
53895 };
53896 
53897 struct netif_security_struct {
53898 	struct net *ns;
53899 	int ifindex;
53900 	u32 sid;
53901 };
53902 
53903 struct sel_netif {
53904 	struct list_head list;
53905 	struct netif_security_struct nsec;
53906 	struct callback_head callback_head;
53907 };
53908 
53909 struct netnode_security_struct {
53910 	union {
53911 		__be32 ipv4;
53912 		struct in6_addr ipv6;
53913 	} addr;
53914 	u32 sid;
53915 	u16 family;
53916 };
53917 
53918 struct sel_netnode_bkt {
53919 	unsigned int size;
53920 	struct list_head list;
53921 };
53922 
53923 struct sel_netnode {
53924 	struct netnode_security_struct nsec;
53925 	struct list_head list;
53926 	struct callback_head rcu;
53927 };
53928 
53929 struct netport_security_struct {
53930 	u32 sid;
53931 	u16 port;
53932 	u8 protocol;
53933 };
53934 
53935 struct sel_netport_bkt {
53936 	int size;
53937 	struct list_head list;
53938 };
53939 
53940 struct sel_netport {
53941 	struct netport_security_struct psec;
53942 	struct list_head list;
53943 	struct callback_head rcu;
53944 };
53945 
53946 struct selinux_kernel_status {
53947 	u32 version;
53948 	u32 sequence;
53949 	u32 enforcing;
53950 	u32 policyload;
53951 	u32 deny_unknown;
53952 };
53953 
53954 struct ebitmap_node {
53955 	struct ebitmap_node *next;
53956 	long unsigned int maps[6];
53957 	u32 startbit;
53958 };
53959 
53960 struct ebitmap {
53961 	struct ebitmap_node *node;
53962 	u32 highbit;
53963 };
53964 
53965 struct policy_file {
53966 	char *data;
53967 	size_t len;
53968 };
53969 
53970 struct hashtab_node {
53971 	void *key;
53972 	void *datum;
53973 	struct hashtab_node *next;
53974 };
53975 
53976 struct hashtab {
53977 	struct hashtab_node **htable;
53978 	u32 size;
53979 	u32 nel;
53980 };
53981 
53982 struct hashtab_info {
53983 	u32 slots_used;
53984 	u32 max_chain_len;
53985 };
53986 
53987 struct path___2;
53988 
53989 struct hashtab_key_params {
53990 	u32 (*hash)(const void *);
53991 	int (*cmp)(const void *, const void *);
53992 };
53993 
53994 struct symtab {
53995 	struct hashtab table;
53996 	u32 nprim;
53997 };
53998 
53999 struct mls_level {
54000 	u32 sens;
54001 	struct ebitmap cat;
54002 };
54003 
54004 struct mls_range {
54005 	struct mls_level level[2];
54006 };
54007 
54008 struct context___2 {
54009 	u32 user;
54010 	u32 role;
54011 	u32 type;
54012 	u32 len;
54013 	struct mls_range range;
54014 	char *str;
54015 };
54016 
54017 struct sidtab_str_cache;
54018 
54019 struct sidtab_entry {
54020 	u32 sid;
54021 	u32 hash;
54022 	struct context___2 context;
54023 	struct sidtab_str_cache *cache;
54024 	struct hlist_node list;
54025 };
54026 
54027 struct sidtab_str_cache {
54028 	struct callback_head rcu_member;
54029 	struct list_head lru_member;
54030 	struct sidtab_entry *parent;
54031 	u32 len;
54032 	char str[0];
54033 };
54034 
54035 struct sidtab_node_inner;
54036 
54037 struct sidtab_node_leaf;
54038 
54039 union sidtab_entry_inner {
54040 	struct sidtab_node_inner *ptr_inner;
54041 	struct sidtab_node_leaf *ptr_leaf;
54042 };
54043 
54044 struct sidtab_node_inner {
54045 	union sidtab_entry_inner entries[512];
54046 };
54047 
54048 struct sidtab_node_leaf {
54049 	struct sidtab_entry entries[39];
54050 };
54051 
54052 struct sidtab_isid_entry {
54053 	int set;
54054 	struct sidtab_entry entry;
54055 };
54056 
54057 struct sidtab;
54058 
54059 struct sidtab_convert_params {
54060 	int (*func)(struct context___2 *, struct context___2 *, void *);
54061 	void *args;
54062 	struct sidtab *target;
54063 };
54064 
54065 struct sidtab {
54066 	union sidtab_entry_inner roots[4];
54067 	u32 count;
54068 	struct sidtab_convert_params *convert;
54069 	bool frozen;
54070 	spinlock_t lock;
54071 	u32 cache_free_slots;
54072 	struct list_head cache_lru_list;
54073 	spinlock_t cache_lock;
54074 	struct sidtab_isid_entry isids[27];
54075 	struct hlist_head context_to_sid[512];
54076 };
54077 
54078 struct avtab_key {
54079 	u16 source_type;
54080 	u16 target_type;
54081 	u16 target_class;
54082 	u16 specified;
54083 };
54084 
54085 struct avtab_extended_perms {
54086 	u8 specified;
54087 	u8 driver;
54088 	struct extended_perms_data perms;
54089 };
54090 
54091 struct avtab_datum {
54092 	union {
54093 		u32 data;
54094 		struct avtab_extended_perms *xperms;
54095 	} u;
54096 };
54097 
54098 struct avtab_node {
54099 	struct avtab_key key;
54100 	struct avtab_datum datum;
54101 	struct avtab_node *next;
54102 };
54103 
54104 struct avtab {
54105 	struct avtab_node **htable;
54106 	u32 nel;
54107 	u32 nslot;
54108 	u32 mask;
54109 };
54110 
54111 struct type_set;
54112 
54113 struct constraint_expr {
54114 	u32 expr_type;
54115 	u32 attr;
54116 	u32 op;
54117 	struct ebitmap names;
54118 	struct type_set *type_names;
54119 	struct constraint_expr *next;
54120 };
54121 
54122 struct type_set {
54123 	struct ebitmap types;
54124 	struct ebitmap negset;
54125 	u32 flags;
54126 };
54127 
54128 struct constraint_node {
54129 	u32 permissions;
54130 	struct constraint_expr *expr;
54131 	struct constraint_node *next;
54132 };
54133 
54134 struct common_datum {
54135 	u32 value;
54136 	struct symtab permissions;
54137 };
54138 
54139 struct class_datum {
54140 	u32 value;
54141 	char *comkey;
54142 	struct common_datum *comdatum;
54143 	struct symtab permissions;
54144 	struct constraint_node *constraints;
54145 	struct constraint_node *validatetrans;
54146 	char default_user;
54147 	char default_role;
54148 	char default_type;
54149 	char default_range;
54150 };
54151 
54152 struct role_datum {
54153 	u32 value;
54154 	u32 bounds;
54155 	struct ebitmap dominates;
54156 	struct ebitmap types;
54157 };
54158 
54159 struct role_allow {
54160 	u32 role;
54161 	u32 new_role;
54162 	struct role_allow *next;
54163 };
54164 
54165 struct type_datum {
54166 	u32 value;
54167 	u32 bounds;
54168 	unsigned char primary;
54169 	unsigned char attribute;
54170 };
54171 
54172 struct user_datum {
54173 	u32 value;
54174 	u32 bounds;
54175 	struct ebitmap roles;
54176 	struct mls_range range;
54177 	struct mls_level dfltlevel;
54178 };
54179 
54180 struct cond_bool_datum {
54181 	__u32 value;
54182 	int state;
54183 };
54184 
54185 struct ocontext {
54186 	union {
54187 		char *name;
54188 		struct {
54189 			u8 protocol;
54190 			u16 low_port;
54191 			u16 high_port;
54192 		} port;
54193 		struct {
54194 			u32 addr;
54195 			u32 mask;
54196 		} node;
54197 		struct {
54198 			u32 addr[4];
54199 			u32 mask[4];
54200 		} node6;
54201 		struct {
54202 			u64 subnet_prefix;
54203 			u16 low_pkey;
54204 			u16 high_pkey;
54205 		} ibpkey;
54206 		struct {
54207 			char *dev_name;
54208 			u8 port;
54209 		} ibendport;
54210 	} u;
54211 	union {
54212 		u32 sclass;
54213 		u32 behavior;
54214 	} v;
54215 	struct context___2 context[2];
54216 	u32 sid[2];
54217 	struct ocontext *next;
54218 };
54219 
54220 struct genfs {
54221 	char *fstype;
54222 	struct ocontext *head;
54223 	struct genfs *next;
54224 };
54225 
54226 struct cond_node;
54227 
54228 struct policydb {
54229 	int mls_enabled;
54230 	struct symtab symtab[8];
54231 	char **sym_val_to_name[8];
54232 	struct class_datum **class_val_to_struct;
54233 	struct role_datum **role_val_to_struct;
54234 	struct user_datum **user_val_to_struct;
54235 	struct type_datum **type_val_to_struct;
54236 	struct avtab te_avtab;
54237 	struct hashtab role_tr;
54238 	struct ebitmap filename_trans_ttypes;
54239 	struct hashtab filename_trans;
54240 	u32 compat_filename_trans_count;
54241 	struct cond_bool_datum **bool_val_to_struct;
54242 	struct avtab te_cond_avtab;
54243 	struct cond_node *cond_list;
54244 	u32 cond_list_len;
54245 	struct role_allow *role_allow;
54246 	struct ocontext *ocontexts[9];
54247 	struct genfs *genfs;
54248 	struct hashtab range_tr;
54249 	struct ebitmap *type_attr_map_array;
54250 	struct ebitmap policycaps;
54251 	struct ebitmap permissive_map;
54252 	size_t len;
54253 	unsigned int policyvers;
54254 	unsigned int reject_unknown: 1;
54255 	unsigned int allow_unknown: 1;
54256 	u16 process_class;
54257 	u32 process_trans_perms;
54258 };
54259 
54260 struct selinux_mapping;
54261 
54262 struct selinux_map {
54263 	struct selinux_mapping *mapping;
54264 	u16 size;
54265 };
54266 
54267 struct selinux_policy {
54268 	struct sidtab *sidtab;
54269 	struct policydb policydb;
54270 	struct selinux_map map;
54271 	u32 latest_granting;
54272 };
54273 
54274 struct perm_datum {
54275 	u32 value;
54276 };
54277 
54278 struct role_trans_key {
54279 	u32 role;
54280 	u32 type;
54281 	u32 tclass;
54282 };
54283 
54284 struct role_trans_datum {
54285 	u32 new_role;
54286 };
54287 
54288 struct filename_trans_key {
54289 	u32 ttype;
54290 	u16 tclass;
54291 	const char *name;
54292 };
54293 
54294 struct filename_trans_datum {
54295 	struct ebitmap stypes;
54296 	u32 otype;
54297 	struct filename_trans_datum *next;
54298 };
54299 
54300 struct level_datum {
54301 	struct mls_level *level;
54302 	unsigned char isalias;
54303 };
54304 
54305 struct cat_datum {
54306 	u32 value;
54307 	unsigned char isalias;
54308 };
54309 
54310 struct range_trans {
54311 	u32 source_type;
54312 	u32 target_type;
54313 	u32 target_class;
54314 };
54315 
54316 struct cond_expr_node;
54317 
54318 struct cond_expr {
54319 	struct cond_expr_node *nodes;
54320 	u32 len;
54321 };
54322 
54323 struct cond_av_list {
54324 	struct avtab_node **nodes;
54325 	u32 len;
54326 };
54327 
54328 struct cond_node {
54329 	int cur_state;
54330 	struct cond_expr expr;
54331 	struct cond_av_list true_list;
54332 	struct cond_av_list false_list;
54333 };
54334 
54335 struct policy_data {
54336 	struct policydb *p;
54337 	void *fp;
54338 };
54339 
54340 struct cond_expr_node {
54341 	u32 expr_type;
54342 	u32 bool;
54343 };
54344 
54345 struct selinux_mapping {
54346 	u16 value;
54347 	unsigned int num_perms;
54348 	u32 perms[32];
54349 };
54350 
54351 struct policydb_compat_info {
54352 	int version;
54353 	int sym_num;
54354 	int ocon_num;
54355 };
54356 
54357 struct convert_context_args {
54358 	struct selinux_state *state;
54359 	struct policydb *oldp;
54360 	struct policydb *newp;
54361 };
54362 
54363 struct selinux_policy_convert_data {
54364 	struct convert_context_args args;
54365 	struct sidtab_convert_params sidtab_params;
54366 };
54367 
54368 struct selinux_audit_rule {
54369 	u32 au_seqno;
54370 	struct context___2 au_ctxt;
54371 };
54372 
54373 struct cond_insertf_data {
54374 	struct policydb *p;
54375 	struct avtab_node **dst;
54376 	struct cond_av_list *other;
54377 };
54378 
54379 struct sockaddr_un {
54380 	__kernel_sa_family_t sun_family;
54381 	char sun_path[108];
54382 };
54383 
54384 struct unix_address {
54385 	refcount_t refcnt;
54386 	int len;
54387 	struct sockaddr_un name[0];
54388 };
54389 
54390 struct scm_stat {
54391 	atomic_t nr_fds;
54392 };
54393 
54394 struct unix_sock {
54395 	struct sock sk;
54396 	struct unix_address *addr;
54397 	struct path path;
54398 	struct mutex iolock;
54399 	struct mutex bindlock;
54400 	struct sock *peer;
54401 	struct list_head link;
54402 	atomic_long_t inflight;
54403 	spinlock_t lock;
54404 	long unsigned int gc_flags;
54405 	long: 64;
54406 	long: 64;
54407 	long: 64;
54408 	long: 64;
54409 	long: 64;
54410 	struct socket_wq peer_wq;
54411 	wait_queue_entry_t peer_wake;
54412 	struct scm_stat scm_stat;
54413 	struct sk_buff *oob_skb;
54414 	long: 64;
54415 };
54416 
54417 enum devcg_behavior {
54418 	DEVCG_DEFAULT_NONE = 0,
54419 	DEVCG_DEFAULT_ALLOW = 1,
54420 	DEVCG_DEFAULT_DENY = 2,
54421 };
54422 
54423 struct dev_exception_item {
54424 	u32 major;
54425 	u32 minor;
54426 	short int type;
54427 	short int access;
54428 	struct list_head list;
54429 	struct callback_head rcu;
54430 };
54431 
54432 struct dev_cgroup {
54433 	struct cgroup_subsys_state css;
54434 	struct list_head exceptions;
54435 	enum devcg_behavior behavior;
54436 };
54437 
54438 enum integrity_status {
54439 	INTEGRITY_PASS = 0,
54440 	INTEGRITY_PASS_IMMUTABLE = 1,
54441 	INTEGRITY_FAIL = 2,
54442 	INTEGRITY_FAIL_IMMUTABLE = 3,
54443 	INTEGRITY_NOLABEL = 4,
54444 	INTEGRITY_NOXATTRS = 5,
54445 	INTEGRITY_UNKNOWN = 6,
54446 };
54447 
54448 struct ima_digest_data {
54449 	u8 algo;
54450 	u8 length;
54451 	union {
54452 		struct {
54453 			u8 unused;
54454 			u8 type;
54455 		} sha1;
54456 		struct {
54457 			u8 type;
54458 			u8 algo;
54459 		} ng;
54460 		u8 data[2];
54461 	} xattr;
54462 	u8 digest[0];
54463 };
54464 
54465 struct integrity_iint_cache {
54466 	struct rb_node rb_node;
54467 	struct mutex mutex;
54468 	struct inode *inode;
54469 	u64 version;
54470 	long unsigned int flags;
54471 	long unsigned int measured_pcrs;
54472 	long unsigned int atomic_flags;
54473 	enum integrity_status ima_file_status: 4;
54474 	enum integrity_status ima_mmap_status: 4;
54475 	enum integrity_status ima_bprm_status: 4;
54476 	enum integrity_status ima_read_status: 4;
54477 	enum integrity_status ima_creds_status: 4;
54478 	enum integrity_status evm_status: 4;
54479 	struct ima_digest_data *ima_hash;
54480 };
54481 
54482 struct hwrng {
54483 	const char *name;
54484 	int (*init)(struct hwrng *);
54485 	void (*cleanup)(struct hwrng *);
54486 	int (*data_present)(struct hwrng *, int);
54487 	int (*data_read)(struct hwrng *, u32 *);
54488 	int (*read)(struct hwrng *, void *, size_t, bool);
54489 	long unsigned int priv;
54490 	short unsigned int quality;
54491 	struct list_head list;
54492 	struct kref ref;
54493 	struct completion cleanup_done;
54494 };
54495 
54496 struct tpm_digest {
54497 	u16 alg_id;
54498 	u8 digest[64];
54499 };
54500 
54501 struct tpm_bank_info {
54502 	u16 alg_id;
54503 	u16 digest_size;
54504 	u16 crypto_id;
54505 };
54506 
54507 struct tpm_chip;
54508 
54509 struct tpm_class_ops {
54510 	unsigned int flags;
54511 	const u8 req_complete_mask;
54512 	const u8 req_complete_val;
54513 	bool (*req_canceled)(struct tpm_chip *, u8);
54514 	int (*recv)(struct tpm_chip *, u8 *, size_t);
54515 	int (*send)(struct tpm_chip *, u8 *, size_t);
54516 	void (*cancel)(struct tpm_chip *);
54517 	u8 (*status)(struct tpm_chip *);
54518 	void (*update_timeouts)(struct tpm_chip *, long unsigned int *);
54519 	void (*update_durations)(struct tpm_chip *, long unsigned int *);
54520 	int (*go_idle)(struct tpm_chip *);
54521 	int (*cmd_ready)(struct tpm_chip *);
54522 	int (*request_locality)(struct tpm_chip *, int);
54523 	int (*relinquish_locality)(struct tpm_chip *, int);
54524 	void (*clk_enable)(struct tpm_chip *, bool);
54525 };
54526 
54527 struct tpm_bios_log {
54528 	void *bios_event_log;
54529 	void *bios_event_log_end;
54530 };
54531 
54532 struct tpm_chip_seqops {
54533 	struct tpm_chip *chip;
54534 	const struct seq_operations *seqops;
54535 };
54536 
54537 struct tpm_space {
54538 	u32 context_tbl[3];
54539 	u8 *context_buf;
54540 	u32 session_tbl[3];
54541 	u8 *session_buf;
54542 	u32 buf_size;
54543 };
54544 
54545 struct tpm_chip {
54546 	struct device dev;
54547 	struct device devs;
54548 	struct cdev cdev;
54549 	struct cdev cdevs;
54550 	struct rw_semaphore ops_sem;
54551 	const struct tpm_class_ops *ops;
54552 	struct tpm_bios_log log;
54553 	struct tpm_chip_seqops bin_log_seqops;
54554 	struct tpm_chip_seqops ascii_log_seqops;
54555 	unsigned int flags;
54556 	int dev_num;
54557 	long unsigned int is_open;
54558 	char hwrng_name[64];
54559 	struct hwrng hwrng;
54560 	struct mutex tpm_mutex;
54561 	long unsigned int timeout_a;
54562 	long unsigned int timeout_b;
54563 	long unsigned int timeout_c;
54564 	long unsigned int timeout_d;
54565 	bool timeout_adjusted;
54566 	long unsigned int duration[4];
54567 	bool duration_adjusted;
54568 	struct dentry *bios_dir[3];
54569 	const struct attribute_group *groups[8];
54570 	unsigned int groups_cnt;
54571 	u32 nr_allocated_banks;
54572 	struct tpm_bank_info *allocated_banks;
54573 	acpi_handle acpi_dev_handle;
54574 	char ppi_version[4];
54575 	struct tpm_space work_space;
54576 	u32 last_cc;
54577 	u32 nr_commands;
54578 	u32 *cc_attrs_tbl;
54579 	int locality;
54580 };
54581 
54582 struct evm_ima_xattr_data {
54583 	u8 type;
54584 	u8 data[0];
54585 };
54586 
54587 enum ima_show_type {
54588 	IMA_SHOW_BINARY = 0,
54589 	IMA_SHOW_BINARY_NO_FIELD_LEN = 1,
54590 	IMA_SHOW_BINARY_OLD_STRING_FMT = 2,
54591 	IMA_SHOW_ASCII = 3,
54592 };
54593 
54594 struct modsig;
54595 
54596 struct ima_event_data {
54597 	struct integrity_iint_cache *iint;
54598 	struct file *file;
54599 	const unsigned char *filename;
54600 	struct evm_ima_xattr_data *xattr_value;
54601 	int xattr_len;
54602 	const struct modsig *modsig;
54603 	const char *violation;
54604 	const void *buf;
54605 	int buf_len;
54606 };
54607 
54608 struct ima_field_data {
54609 	u8 *data;
54610 	u32 len;
54611 };
54612 
54613 struct ima_template_field {
54614 	const char field_id[16];
54615 	int (*field_init)(struct ima_event_data *, struct ima_field_data *);
54616 	void (*field_show)(struct seq_file *, enum ima_show_type, struct ima_field_data *);
54617 };
54618 
54619 struct ima_template_desc {
54620 	struct list_head list;
54621 	char *name;
54622 	char *fmt;
54623 	int num_fields;
54624 	const struct ima_template_field **fields;
54625 };
54626 
54627 struct ima_template_entry {
54628 	int pcr;
54629 	struct tpm_digest *digests;
54630 	struct ima_template_desc *template_desc;
54631 	u32 template_data_len;
54632 	struct ima_field_data template_data[0];
54633 };
54634 
54635 struct ima_queue_entry {
54636 	struct hlist_node hnext;
54637 	struct list_head later;
54638 	struct ima_template_entry *entry;
54639 };
54640 
54641 struct ima_h_table {
54642 	atomic_long_t len;
54643 	atomic_long_t violations;
54644 	struct hlist_head queue[1024];
54645 };
54646 
54647 enum ima_fs_flags {
54648 	IMA_FS_BUSY = 0,
54649 };
54650 
54651 enum tpm_duration {
54652 	TPM_SHORT = 0,
54653 	TPM_MEDIUM = 1,
54654 	TPM_LONG = 2,
54655 	TPM_LONG_LONG = 3,
54656 	TPM_UNDEFINED = 4,
54657 	TPM_NUM_DURATIONS = 4,
54658 };
54659 
54660 enum evm_ima_xattr_type {
54661 	IMA_XATTR_DIGEST = 1,
54662 	EVM_XATTR_HMAC = 2,
54663 	EVM_IMA_XATTR_DIGSIG = 3,
54664 	IMA_XATTR_DIGEST_NG = 4,
54665 	EVM_XATTR_PORTABLE_DIGSIG = 5,
54666 	IMA_XATTR_LAST = 6,
54667 };
54668 
54669 enum ima_hooks {
54670 	NONE___2 = 0,
54671 	FILE_CHECK = 1,
54672 	MMAP_CHECK = 2,
54673 	BPRM_CHECK = 3,
54674 	CREDS_CHECK = 4,
54675 	POST_SETATTR = 5,
54676 	MODULE_CHECK = 6,
54677 	FIRMWARE_CHECK = 7,
54678 	KEXEC_KERNEL_CHECK = 8,
54679 	KEXEC_INITRAMFS_CHECK = 9,
54680 	POLICY_CHECK = 10,
54681 	KEXEC_CMDLINE = 11,
54682 	KEY_CHECK = 12,
54683 	CRITICAL_DATA = 13,
54684 	SETXATTR_CHECK = 14,
54685 	MAX_CHECK = 15,
54686 };
54687 
54688 struct crypto_async_request;
54689 
54690 typedef void (*crypto_completion_t)(struct crypto_async_request *, int);
54691 
54692 struct crypto_async_request {
54693 	struct list_head list;
54694 	crypto_completion_t complete;
54695 	void *data;
54696 	struct crypto_tfm *tfm;
54697 	u32 flags;
54698 };
54699 
54700 struct crypto_wait {
54701 	struct completion completion;
54702 	int err;
54703 };
54704 
54705 struct hash_alg_common {
54706 	unsigned int digestsize;
54707 	unsigned int statesize;
54708 	struct crypto_alg base;
54709 };
54710 
54711 struct ahash_request {
54712 	struct crypto_async_request base;
54713 	unsigned int nbytes;
54714 	struct scatterlist *src;
54715 	u8 *result;
54716 	void *priv;
54717 	void *__ctx[0];
54718 };
54719 
54720 struct crypto_ahash {
54721 	int (*init)(struct ahash_request *);
54722 	int (*update)(struct ahash_request *);
54723 	int (*final)(struct ahash_request *);
54724 	int (*finup)(struct ahash_request *);
54725 	int (*digest)(struct ahash_request *);
54726 	int (*export)(struct ahash_request *, void *);
54727 	int (*import)(struct ahash_request *, const void *);
54728 	int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int);
54729 	unsigned int reqsize;
54730 	struct crypto_tfm base;
54731 };
54732 
54733 struct shash_alg {
54734 	int (*init)(struct shash_desc *);
54735 	int (*update)(struct shash_desc *, const u8 *, unsigned int);
54736 	int (*final)(struct shash_desc *, u8 *);
54737 	int (*finup)(struct shash_desc *, const u8 *, unsigned int, u8 *);
54738 	int (*digest)(struct shash_desc *, const u8 *, unsigned int, u8 *);
54739 	int (*export)(struct shash_desc *, void *);
54740 	int (*import)(struct shash_desc *, const void *);
54741 	int (*setkey)(struct crypto_shash *, const u8 *, unsigned int);
54742 	int (*init_tfm)(struct crypto_shash *);
54743 	void (*exit_tfm)(struct crypto_shash *);
54744 	unsigned int descsize;
54745 	int: 32;
54746 	unsigned int digestsize;
54747 	unsigned int statesize;
54748 	struct crypto_alg base;
54749 };
54750 
54751 enum tpm_algorithms {
54752 	TPM_ALG_ERROR = 0,
54753 	TPM_ALG_SHA1 = 4,
54754 	TPM_ALG_KEYEDHASH = 8,
54755 	TPM_ALG_SHA256 = 11,
54756 	TPM_ALG_SHA384 = 12,
54757 	TPM_ALG_SHA512 = 13,
54758 	TPM_ALG_NULL = 16,
54759 	TPM_ALG_SM3_256 = 18,
54760 };
54761 
54762 enum tpm_pcrs {
54763 	TPM_PCR0 = 0,
54764 	TPM_PCR8 = 8,
54765 	TPM_PCR10 = 10,
54766 };
54767 
54768 struct ima_algo_desc {
54769 	struct crypto_shash *tfm;
54770 	enum hash_algo algo;
54771 };
54772 
54773 enum lsm_rule_types {
54774 	LSM_OBJ_USER = 0,
54775 	LSM_OBJ_ROLE = 1,
54776 	LSM_OBJ_TYPE = 2,
54777 	LSM_SUBJ_USER = 3,
54778 	LSM_SUBJ_ROLE = 4,
54779 	LSM_SUBJ_TYPE = 5,
54780 };
54781 
54782 enum policy_types {
54783 	ORIGINAL_TCB = 1,
54784 	DEFAULT_TCB = 2,
54785 };
54786 
54787 enum policy_rule_list {
54788 	IMA_DEFAULT_POLICY = 1,
54789 	IMA_CUSTOM_POLICY = 2,
54790 };
54791 
54792 struct ima_rule_opt_list {
54793 	size_t count;
54794 	char *items[0];
54795 };
54796 
54797 struct ima_rule_entry {
54798 	struct list_head list;
54799 	int action;
54800 	unsigned int flags;
54801 	enum ima_hooks func;
54802 	int mask;
54803 	long unsigned int fsmagic;
54804 	uuid_t fsuuid;
54805 	kuid_t uid;
54806 	kgid_t gid;
54807 	kuid_t fowner;
54808 	kgid_t fgroup;
54809 	bool (*uid_op)(kuid_t, kuid_t);
54810 	bool (*gid_op)(kgid_t, kgid_t);
54811 	bool (*fowner_op)(kuid_t, kuid_t);
54812 	bool (*fgroup_op)(kgid_t, kgid_t);
54813 	int pcr;
54814 	unsigned int allowed_algos;
54815 	struct {
54816 		void *rule;
54817 		char *args_p;
54818 		int type;
54819 	} lsm[6];
54820 	char *fsname;
54821 	struct ima_rule_opt_list *keyrings;
54822 	struct ima_rule_opt_list *label;
54823 	struct ima_template_desc *template;
54824 };
54825 
54826 enum policy_opt {
54827 	Opt_measure = 0,
54828 	Opt_dont_measure = 1,
54829 	Opt_appraise = 2,
54830 	Opt_dont_appraise = 3,
54831 	Opt_audit = 4,
54832 	Opt_hash___2 = 5,
54833 	Opt_dont_hash = 6,
54834 	Opt_obj_user = 7,
54835 	Opt_obj_role = 8,
54836 	Opt_obj_type = 9,
54837 	Opt_subj_user = 10,
54838 	Opt_subj_role = 11,
54839 	Opt_subj_type = 12,
54840 	Opt_func = 13,
54841 	Opt_mask = 14,
54842 	Opt_fsmagic = 15,
54843 	Opt_fsname = 16,
54844 	Opt_fsuuid = 17,
54845 	Opt_uid_eq = 18,
54846 	Opt_euid_eq = 19,
54847 	Opt_gid_eq = 20,
54848 	Opt_egid_eq = 21,
54849 	Opt_fowner_eq = 22,
54850 	Opt_fgroup_eq = 23,
54851 	Opt_uid_gt = 24,
54852 	Opt_euid_gt = 25,
54853 	Opt_gid_gt = 26,
54854 	Opt_egid_gt = 27,
54855 	Opt_fowner_gt = 28,
54856 	Opt_fgroup_gt = 29,
54857 	Opt_uid_lt = 30,
54858 	Opt_euid_lt = 31,
54859 	Opt_gid_lt = 32,
54860 	Opt_egid_lt = 33,
54861 	Opt_fowner_lt = 34,
54862 	Opt_fgroup_lt = 35,
54863 	Opt_appraise_type = 36,
54864 	Opt_appraise_flag = 37,
54865 	Opt_appraise_algos = 38,
54866 	Opt_permit_directio = 39,
54867 	Opt_pcr = 40,
54868 	Opt_template = 41,
54869 	Opt_keyrings = 42,
54870 	Opt_label = 43,
54871 	Opt_err___6 = 44,
54872 };
54873 
54874 enum {
54875 	mask_exec = 0,
54876 	mask_write = 1,
54877 	mask_read = 2,
54878 	mask_append = 3,
54879 };
54880 
54881 struct ima_kexec_hdr {
54882 	u16 version;
54883 	u16 _reserved0;
54884 	u32 _reserved1;
54885 	u64 buffer_size;
54886 	u64 count;
54887 };
54888 
54889 enum header_fields {
54890 	HDR_PCR = 0,
54891 	HDR_DIGEST = 1,
54892 	HDR_TEMPLATE_NAME = 2,
54893 	HDR_TEMPLATE_DATA = 3,
54894 	HDR__LAST = 4,
54895 };
54896 
54897 enum data_formats {
54898 	DATA_FMT_DIGEST = 0,
54899 	DATA_FMT_DIGEST_WITH_ALGO = 1,
54900 	DATA_FMT_STRING = 2,
54901 	DATA_FMT_HEX = 3,
54902 	DATA_FMT_UINT = 4,
54903 };
54904 
54905 struct ima_key_entry {
54906 	struct list_head list;
54907 	void *payload;
54908 	size_t payload_len;
54909 	char *keyring_name;
54910 };
54911 
54912 struct crypto_template;
54913 
54914 struct crypto_spawn;
54915 
54916 struct crypto_instance {
54917 	struct crypto_alg alg;
54918 	struct crypto_template *tmpl;
54919 	union {
54920 		struct hlist_node list;
54921 		struct crypto_spawn *spawns;
54922 	};
54923 	void *__ctx[0];
54924 };
54925 
54926 struct crypto_spawn {
54927 	struct list_head list;
54928 	struct crypto_alg *alg;
54929 	union {
54930 		struct crypto_instance *inst;
54931 		struct crypto_spawn *next;
54932 	};
54933 	const struct crypto_type *frontend;
54934 	u32 mask;
54935 	bool dead;
54936 	bool registered;
54937 };
54938 
54939 struct rtattr;
54940 
54941 struct crypto_template {
54942 	struct list_head list;
54943 	struct hlist_head instances;
54944 	struct module *module;
54945 	int (*create)(struct crypto_template *, struct rtattr **);
54946 	char name[128];
54947 };
54948 
54949 enum {
54950 	CRYPTO_MSG_ALG_REQUEST = 0,
54951 	CRYPTO_MSG_ALG_REGISTER = 1,
54952 	CRYPTO_MSG_ALG_LOADED = 2,
54953 };
54954 
54955 struct crypto_larval {
54956 	struct crypto_alg alg;
54957 	struct crypto_alg *adult;
54958 	struct completion completion;
54959 	u32 mask;
54960 	bool test_started;
54961 };
54962 
54963 struct crypto_cipher {
54964 	struct crypto_tfm base;
54965 };
54966 
54967 struct crypto_comp {
54968 	struct crypto_tfm base;
54969 };
54970 
54971 struct rtattr {
54972 	short unsigned int rta_len;
54973 	short unsigned int rta_type;
54974 };
54975 
54976 struct crypto_queue {
54977 	struct list_head list;
54978 	struct list_head *backlog;
54979 	unsigned int qlen;
54980 	unsigned int max_qlen;
54981 };
54982 
54983 struct crypto_attr_alg {
54984 	char name[128];
54985 };
54986 
54987 struct crypto_attr_type {
54988 	u32 type;
54989 	u32 mask;
54990 };
54991 
54992 enum {
54993 	CRYPTOA_UNSPEC = 0,
54994 	CRYPTOA_ALG = 1,
54995 	CRYPTOA_TYPE = 2,
54996 	__CRYPTOA_MAX = 3,
54997 };
54998 
54999 struct scatter_walk {
55000 	struct scatterlist *sg;
55001 	unsigned int offset;
55002 };
55003 
55004 struct aead_request {
55005 	struct crypto_async_request base;
55006 	unsigned int assoclen;
55007 	unsigned int cryptlen;
55008 	u8 *iv;
55009 	struct scatterlist *src;
55010 	struct scatterlist *dst;
55011 	void *__ctx[0];
55012 };
55013 
55014 struct crypto_aead;
55015 
55016 struct aead_alg {
55017 	int (*setkey)(struct crypto_aead *, const u8 *, unsigned int);
55018 	int (*setauthsize)(struct crypto_aead *, unsigned int);
55019 	int (*encrypt)(struct aead_request *);
55020 	int (*decrypt)(struct aead_request *);
55021 	int (*init)(struct crypto_aead *);
55022 	void (*exit)(struct crypto_aead *);
55023 	unsigned int ivsize;
55024 	unsigned int maxauthsize;
55025 	unsigned int chunksize;
55026 	struct crypto_alg base;
55027 };
55028 
55029 struct crypto_aead {
55030 	unsigned int authsize;
55031 	unsigned int reqsize;
55032 	struct crypto_tfm base;
55033 };
55034 
55035 struct aead_instance {
55036 	void (*free)(struct aead_instance *);
55037 	union {
55038 		struct {
55039 			char head[64];
55040 			struct crypto_instance base;
55041 		} s;
55042 		struct aead_alg alg;
55043 	};
55044 };
55045 
55046 struct crypto_aead_spawn {
55047 	struct crypto_spawn base;
55048 };
55049 
55050 enum crypto_attr_type_t {
55051 	CRYPTOCFGA_UNSPEC = 0,
55052 	CRYPTOCFGA_PRIORITY_VAL = 1,
55053 	CRYPTOCFGA_REPORT_LARVAL = 2,
55054 	CRYPTOCFGA_REPORT_HASH = 3,
55055 	CRYPTOCFGA_REPORT_BLKCIPHER = 4,
55056 	CRYPTOCFGA_REPORT_AEAD = 5,
55057 	CRYPTOCFGA_REPORT_COMPRESS = 6,
55058 	CRYPTOCFGA_REPORT_RNG = 7,
55059 	CRYPTOCFGA_REPORT_CIPHER = 8,
55060 	CRYPTOCFGA_REPORT_AKCIPHER = 9,
55061 	CRYPTOCFGA_REPORT_KPP = 10,
55062 	CRYPTOCFGA_REPORT_ACOMP = 11,
55063 	CRYPTOCFGA_STAT_LARVAL = 12,
55064 	CRYPTOCFGA_STAT_HASH = 13,
55065 	CRYPTOCFGA_STAT_BLKCIPHER = 14,
55066 	CRYPTOCFGA_STAT_AEAD = 15,
55067 	CRYPTOCFGA_STAT_COMPRESS = 16,
55068 	CRYPTOCFGA_STAT_RNG = 17,
55069 	CRYPTOCFGA_STAT_CIPHER = 18,
55070 	CRYPTOCFGA_STAT_AKCIPHER = 19,
55071 	CRYPTOCFGA_STAT_KPP = 20,
55072 	CRYPTOCFGA_STAT_ACOMP = 21,
55073 	__CRYPTOCFGA_MAX = 22,
55074 };
55075 
55076 struct crypto_report_aead {
55077 	char type[64];
55078 	char geniv[64];
55079 	unsigned int blocksize;
55080 	unsigned int maxauthsize;
55081 	unsigned int ivsize;
55082 };
55083 
55084 struct crypto_sync_skcipher;
55085 
55086 struct aead_geniv_ctx {
55087 	spinlock_t lock;
55088 	struct crypto_aead *child;
55089 	struct crypto_sync_skcipher *sknull;
55090 	u8 salt[0];
55091 };
55092 
55093 struct crypto_rng;
55094 
55095 struct rng_alg {
55096 	int (*generate)(struct crypto_rng *, const u8 *, unsigned int, u8 *, unsigned int);
55097 	int (*seed)(struct crypto_rng *, const u8 *, unsigned int);
55098 	void (*set_ent)(struct crypto_rng *, const u8 *, unsigned int);
55099 	unsigned int seedsize;
55100 	struct crypto_alg base;
55101 };
55102 
55103 struct crypto_rng {
55104 	struct crypto_tfm base;
55105 };
55106 
55107 struct crypto_cipher_spawn {
55108 	struct crypto_spawn base;
55109 };
55110 
55111 struct skcipher_request {
55112 	unsigned int cryptlen;
55113 	u8 *iv;
55114 	struct scatterlist *src;
55115 	struct scatterlist *dst;
55116 	struct crypto_async_request base;
55117 	void *__ctx[0];
55118 };
55119 
55120 struct crypto_skcipher {
55121 	unsigned int reqsize;
55122 	struct crypto_tfm base;
55123 };
55124 
55125 struct crypto_sync_skcipher {
55126 	struct crypto_skcipher base;
55127 };
55128 
55129 struct skcipher_alg {
55130 	int (*setkey)(struct crypto_skcipher *, const u8 *, unsigned int);
55131 	int (*encrypt)(struct skcipher_request *);
55132 	int (*decrypt)(struct skcipher_request *);
55133 	int (*init)(struct crypto_skcipher *);
55134 	void (*exit)(struct crypto_skcipher *);
55135 	unsigned int min_keysize;
55136 	unsigned int max_keysize;
55137 	unsigned int ivsize;
55138 	unsigned int chunksize;
55139 	unsigned int walksize;
55140 	struct crypto_alg base;
55141 };
55142 
55143 struct skcipher_instance {
55144 	void (*free)(struct skcipher_instance *);
55145 	union {
55146 		struct {
55147 			char head[64];
55148 			struct crypto_instance base;
55149 		} s;
55150 		struct skcipher_alg alg;
55151 	};
55152 };
55153 
55154 struct crypto_skcipher_spawn {
55155 	struct crypto_spawn base;
55156 };
55157 
55158 struct skcipher_walk {
55159 	union {
55160 		struct {
55161 			struct page *page;
55162 			long unsigned int offset;
55163 		} phys;
55164 		struct {
55165 			u8 *page;
55166 			void *addr;
55167 		} virt;
55168 	} src;
55169 	union {
55170 		struct {
55171 			struct page *page;
55172 			long unsigned int offset;
55173 		} phys;
55174 		struct {
55175 			u8 *page;
55176 			void *addr;
55177 		} virt;
55178 	} dst;
55179 	struct scatter_walk in;
55180 	unsigned int nbytes;
55181 	struct scatter_walk out;
55182 	unsigned int total;
55183 	struct list_head buffers;
55184 	u8 *page;
55185 	u8 *buffer;
55186 	u8 *oiv;
55187 	void *iv;
55188 	unsigned int ivsize;
55189 	int flags;
55190 	unsigned int blocksize;
55191 	unsigned int stride;
55192 	unsigned int alignmask;
55193 };
55194 
55195 struct skcipher_ctx_simple {
55196 	struct crypto_cipher *cipher;
55197 };
55198 
55199 struct crypto_report_blkcipher {
55200 	char type[64];
55201 	char geniv[64];
55202 	unsigned int blocksize;
55203 	unsigned int min_keysize;
55204 	unsigned int max_keysize;
55205 	unsigned int ivsize;
55206 };
55207 
55208 enum {
55209 	SKCIPHER_WALK_PHYS = 1,
55210 	SKCIPHER_WALK_SLOW = 2,
55211 	SKCIPHER_WALK_COPY = 4,
55212 	SKCIPHER_WALK_DIFF = 8,
55213 	SKCIPHER_WALK_SLEEP = 16,
55214 };
55215 
55216 struct skcipher_walk_buffer {
55217 	struct list_head entry;
55218 	struct scatter_walk dst;
55219 	unsigned int len;
55220 	u8 *data;
55221 	u8 buffer[0];
55222 };
55223 
55224 struct ahash_alg {
55225 	int (*init)(struct ahash_request *);
55226 	int (*update)(struct ahash_request *);
55227 	int (*final)(struct ahash_request *);
55228 	int (*finup)(struct ahash_request *);
55229 	int (*digest)(struct ahash_request *);
55230 	int (*export)(struct ahash_request *, void *);
55231 	int (*import)(struct ahash_request *, const void *);
55232 	int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int);
55233 	int (*init_tfm)(struct crypto_ahash *);
55234 	void (*exit_tfm)(struct crypto_ahash *);
55235 	struct hash_alg_common halg;
55236 };
55237 
55238 struct crypto_hash_walk {
55239 	char *data;
55240 	unsigned int offset;
55241 	unsigned int alignmask;
55242 	struct page *pg;
55243 	unsigned int entrylen;
55244 	unsigned int total;
55245 	struct scatterlist *sg;
55246 	unsigned int flags;
55247 };
55248 
55249 struct ahash_instance {
55250 	void (*free)(struct ahash_instance *);
55251 	union {
55252 		struct {
55253 			char head[88];
55254 			struct crypto_instance base;
55255 		} s;
55256 		struct ahash_alg alg;
55257 	};
55258 };
55259 
55260 struct crypto_ahash_spawn {
55261 	struct crypto_spawn base;
55262 };
55263 
55264 struct crypto_report_hash {
55265 	char type[64];
55266 	unsigned int blocksize;
55267 	unsigned int digestsize;
55268 };
55269 
55270 struct ahash_request_priv {
55271 	crypto_completion_t complete;
55272 	void *data;
55273 	u8 *result;
55274 	u32 flags;
55275 	void *ubuf[0];
55276 };
55277 
55278 struct shash_instance {
55279 	void (*free)(struct shash_instance *);
55280 	union {
55281 		struct {
55282 			char head[96];
55283 			struct crypto_instance base;
55284 		} s;
55285 		struct shash_alg alg;
55286 	};
55287 };
55288 
55289 struct crypto_shash_spawn {
55290 	struct crypto_spawn base;
55291 };
55292 
55293 struct crypto_report_akcipher {
55294 	char type[64];
55295 };
55296 
55297 struct akcipher_request {
55298 	struct crypto_async_request base;
55299 	struct scatterlist *src;
55300 	struct scatterlist *dst;
55301 	unsigned int src_len;
55302 	unsigned int dst_len;
55303 	void *__ctx[0];
55304 };
55305 
55306 struct crypto_akcipher {
55307 	struct crypto_tfm base;
55308 };
55309 
55310 struct akcipher_alg {
55311 	int (*sign)(struct akcipher_request *);
55312 	int (*verify)(struct akcipher_request *);
55313 	int (*encrypt)(struct akcipher_request *);
55314 	int (*decrypt)(struct akcipher_request *);
55315 	int (*set_pub_key)(struct crypto_akcipher *, const void *, unsigned int);
55316 	int (*set_priv_key)(struct crypto_akcipher *, const void *, unsigned int);
55317 	unsigned int (*max_size)(struct crypto_akcipher *);
55318 	int (*init)(struct crypto_akcipher *);
55319 	void (*exit)(struct crypto_akcipher *);
55320 	unsigned int reqsize;
55321 	struct crypto_alg base;
55322 };
55323 
55324 struct akcipher_instance {
55325 	void (*free)(struct akcipher_instance *);
55326 	union {
55327 		struct {
55328 			char head[80];
55329 			struct crypto_instance base;
55330 		} s;
55331 		struct akcipher_alg alg;
55332 	};
55333 };
55334 
55335 struct crypto_akcipher_spawn {
55336 	struct crypto_spawn base;
55337 };
55338 
55339 struct crypto_report_kpp {
55340 	char type[64];
55341 };
55342 
55343 struct kpp_request {
55344 	struct crypto_async_request base;
55345 	struct scatterlist *src;
55346 	struct scatterlist *dst;
55347 	unsigned int src_len;
55348 	unsigned int dst_len;
55349 	void *__ctx[0];
55350 };
55351 
55352 struct crypto_kpp {
55353 	struct crypto_tfm base;
55354 };
55355 
55356 struct kpp_alg {
55357 	int (*set_secret)(struct crypto_kpp *, const void *, unsigned int);
55358 	int (*generate_public_key)(struct kpp_request *);
55359 	int (*compute_shared_secret)(struct kpp_request *);
55360 	unsigned int (*max_size)(struct crypto_kpp *);
55361 	int (*init)(struct crypto_kpp *);
55362 	void (*exit)(struct crypto_kpp *);
55363 	unsigned int reqsize;
55364 	struct crypto_alg base;
55365 };
55366 
55367 enum asn1_class {
55368 	ASN1_UNIV = 0,
55369 	ASN1_APPL = 1,
55370 	ASN1_CONT = 2,
55371 	ASN1_PRIV = 3,
55372 };
55373 
55374 enum asn1_method {
55375 	ASN1_PRIM = 0,
55376 	ASN1_CONS = 1,
55377 };
55378 
55379 enum asn1_tag {
55380 	ASN1_EOC = 0,
55381 	ASN1_BOOL = 1,
55382 	ASN1_INT = 2,
55383 	ASN1_BTS = 3,
55384 	ASN1_OTS = 4,
55385 	ASN1_NULL = 5,
55386 	ASN1_OID = 6,
55387 	ASN1_ODE = 7,
55388 	ASN1_EXT = 8,
55389 	ASN1_REAL = 9,
55390 	ASN1_ENUM = 10,
55391 	ASN1_EPDV = 11,
55392 	ASN1_UTF8STR = 12,
55393 	ASN1_RELOID = 13,
55394 	ASN1_SEQ = 16,
55395 	ASN1_SET = 17,
55396 	ASN1_NUMSTR = 18,
55397 	ASN1_PRNSTR = 19,
55398 	ASN1_TEXSTR = 20,
55399 	ASN1_VIDSTR = 21,
55400 	ASN1_IA5STR = 22,
55401 	ASN1_UNITIM = 23,
55402 	ASN1_GENTIM = 24,
55403 	ASN1_GRASTR = 25,
55404 	ASN1_VISSTR = 26,
55405 	ASN1_GENSTR = 27,
55406 	ASN1_UNISTR = 28,
55407 	ASN1_CHRSTR = 29,
55408 	ASN1_BMPSTR = 30,
55409 	ASN1_LONG_TAG = 31,
55410 };
55411 
55412 typedef int (*asn1_action_t)(void *, size_t, unsigned char, const void *, size_t);
55413 
55414 struct asn1_decoder {
55415 	const unsigned char *machine;
55416 	size_t machlen;
55417 	const asn1_action_t *actions;
55418 };
55419 
55420 enum asn1_opcode {
55421 	ASN1_OP_MATCH = 0,
55422 	ASN1_OP_MATCH_OR_SKIP = 1,
55423 	ASN1_OP_MATCH_ACT = 2,
55424 	ASN1_OP_MATCH_ACT_OR_SKIP = 3,
55425 	ASN1_OP_MATCH_JUMP = 4,
55426 	ASN1_OP_MATCH_JUMP_OR_SKIP = 5,
55427 	ASN1_OP_MATCH_ANY = 8,
55428 	ASN1_OP_MATCH_ANY_OR_SKIP = 9,
55429 	ASN1_OP_MATCH_ANY_ACT = 10,
55430 	ASN1_OP_MATCH_ANY_ACT_OR_SKIP = 11,
55431 	ASN1_OP_COND_MATCH_OR_SKIP = 17,
55432 	ASN1_OP_COND_MATCH_ACT_OR_SKIP = 19,
55433 	ASN1_OP_COND_MATCH_JUMP_OR_SKIP = 21,
55434 	ASN1_OP_COND_MATCH_ANY = 24,
55435 	ASN1_OP_COND_MATCH_ANY_OR_SKIP = 25,
55436 	ASN1_OP_COND_MATCH_ANY_ACT = 26,
55437 	ASN1_OP_COND_MATCH_ANY_ACT_OR_SKIP = 27,
55438 	ASN1_OP_COND_FAIL = 28,
55439 	ASN1_OP_COMPLETE = 29,
55440 	ASN1_OP_ACT = 30,
55441 	ASN1_OP_MAYBE_ACT = 31,
55442 	ASN1_OP_END_SEQ = 32,
55443 	ASN1_OP_END_SET = 33,
55444 	ASN1_OP_END_SEQ_OF = 34,
55445 	ASN1_OP_END_SET_OF = 35,
55446 	ASN1_OP_END_SEQ_ACT = 36,
55447 	ASN1_OP_END_SET_ACT = 37,
55448 	ASN1_OP_END_SEQ_OF_ACT = 38,
55449 	ASN1_OP_END_SET_OF_ACT = 39,
55450 	ASN1_OP_RETURN = 40,
55451 	ASN1_OP__NR = 41,
55452 };
55453 
55454 enum rsapubkey_actions {
55455 	ACT_rsa_get_e = 0,
55456 	ACT_rsa_get_n = 1,
55457 	NR__rsapubkey_actions = 2,
55458 };
55459 
55460 enum rsaprivkey_actions {
55461 	ACT_rsa_get_d = 0,
55462 	ACT_rsa_get_dp = 1,
55463 	ACT_rsa_get_dq = 2,
55464 	ACT_rsa_get_e___2 = 3,
55465 	ACT_rsa_get_n___2 = 4,
55466 	ACT_rsa_get_p = 5,
55467 	ACT_rsa_get_q = 6,
55468 	ACT_rsa_get_qinv = 7,
55469 	NR__rsaprivkey_actions = 8,
55470 };
55471 
55472 typedef long unsigned int mpi_limb_t;
55473 
55474 struct gcry_mpi {
55475 	int alloced;
55476 	int nlimbs;
55477 	int nbits;
55478 	int sign;
55479 	unsigned int flags;
55480 	mpi_limb_t *d;
55481 };
55482 
55483 typedef struct gcry_mpi *MPI;
55484 
55485 struct rsa_key {
55486 	const u8 *n;
55487 	const u8 *e;
55488 	const u8 *d;
55489 	const u8 *p;
55490 	const u8 *q;
55491 	const u8 *dp;
55492 	const u8 *dq;
55493 	const u8 *qinv;
55494 	size_t n_sz;
55495 	size_t e_sz;
55496 	size_t d_sz;
55497 	size_t p_sz;
55498 	size_t q_sz;
55499 	size_t dp_sz;
55500 	size_t dq_sz;
55501 	size_t qinv_sz;
55502 };
55503 
55504 struct rsa_mpi_key {
55505 	MPI n;
55506 	MPI e;
55507 	MPI d;
55508 };
55509 
55510 struct crypto_template___2;
55511 
55512 struct asn1_decoder___2;
55513 
55514 struct rsa_asn1_template {
55515 	const char *name;
55516 	const u8 *data;
55517 	size_t size;
55518 };
55519 
55520 struct pkcs1pad_ctx {
55521 	struct crypto_akcipher *child;
55522 	unsigned int key_size;
55523 };
55524 
55525 struct pkcs1pad_inst_ctx {
55526 	struct crypto_akcipher_spawn spawn;
55527 	const struct rsa_asn1_template *digest_info;
55528 };
55529 
55530 struct pkcs1pad_request {
55531 	struct scatterlist in_sg[2];
55532 	struct scatterlist out_sg[1];
55533 	uint8_t *in_buf;
55534 	uint8_t *out_buf;
55535 	struct akcipher_request child_req;
55536 };
55537 
55538 struct crypto_report_acomp {
55539 	char type[64];
55540 };
55541 
55542 struct acomp_req {
55543 	struct crypto_async_request base;
55544 	struct scatterlist *src;
55545 	struct scatterlist *dst;
55546 	unsigned int slen;
55547 	unsigned int dlen;
55548 	u32 flags;
55549 	void *__ctx[0];
55550 };
55551 
55552 struct crypto_acomp {
55553 	int (*compress)(struct acomp_req *);
55554 	int (*decompress)(struct acomp_req *);
55555 	void (*dst_free)(struct scatterlist *);
55556 	unsigned int reqsize;
55557 	struct crypto_tfm base;
55558 };
55559 
55560 struct acomp_alg {
55561 	int (*compress)(struct acomp_req *);
55562 	int (*decompress)(struct acomp_req *);
55563 	void (*dst_free)(struct scatterlist *);
55564 	int (*init)(struct crypto_acomp *);
55565 	void (*exit)(struct crypto_acomp *);
55566 	unsigned int reqsize;
55567 	struct crypto_alg base;
55568 };
55569 
55570 struct crypto_report_comp {
55571 	char type[64];
55572 };
55573 
55574 struct crypto_scomp {
55575 	struct crypto_tfm base;
55576 };
55577 
55578 struct scomp_alg {
55579 	void * (*alloc_ctx)(struct crypto_scomp *);
55580 	void (*free_ctx)(struct crypto_scomp *, void *);
55581 	int (*compress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *);
55582 	int (*decompress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *);
55583 	struct crypto_alg base;
55584 };
55585 
55586 struct scomp_scratch {
55587 	spinlock_t lock;
55588 	void *src;
55589 	void *dst;
55590 };
55591 
55592 struct cryptomgr_param {
55593 	struct rtattr *tb[34];
55594 	struct {
55595 		struct rtattr attr;
55596 		struct crypto_attr_type data;
55597 	} type;
55598 	struct {
55599 		struct rtattr attr;
55600 		struct crypto_attr_alg data;
55601 	} attrs[32];
55602 	char template[128];
55603 	struct crypto_larval *larval;
55604 	u32 otype;
55605 	u32 omask;
55606 };
55607 
55608 struct crypto_test_param {
55609 	char driver[128];
55610 	char alg[128];
55611 	u32 type;
55612 };
55613 
55614 struct hmac_ctx {
55615 	struct crypto_shash *hash;
55616 };
55617 
55618 struct md5_state {
55619 	u32 hash[4];
55620 	u32 block[16];
55621 	u64 byte_count;
55622 };
55623 
55624 struct sha1_state {
55625 	u32 state[5];
55626 	u64 count;
55627 	u8 buffer[64];
55628 };
55629 
55630 typedef void sha1_block_fn(struct sha1_state *, const u8 *, int);
55631 
55632 struct sha256_state {
55633 	u32 state[8];
55634 	u64 count;
55635 	u8 buf[64];
55636 };
55637 
55638 struct sha512_state {
55639 	u64 state[8];
55640 	u64 count[2];
55641 	u8 buf[128];
55642 };
55643 
55644 typedef void sha512_block_fn(struct sha512_state *, const u8 *, int);
55645 
55646 enum blake2b_lengths {
55647 	BLAKE2B_BLOCK_SIZE = 128,
55648 	BLAKE2B_HASH_SIZE = 64,
55649 	BLAKE2B_KEY_SIZE = 64,
55650 	BLAKE2B_160_HASH_SIZE = 20,
55651 	BLAKE2B_256_HASH_SIZE = 32,
55652 	BLAKE2B_384_HASH_SIZE = 48,
55653 	BLAKE2B_512_HASH_SIZE = 64,
55654 };
55655 
55656 struct blake2b_state {
55657 	u64 h[8];
55658 	u64 t[2];
55659 	u64 f[2];
55660 	u8 buf[128];
55661 	unsigned int buflen;
55662 	unsigned int outlen;
55663 };
55664 
55665 enum blake2b_iv {
55666 	BLAKE2B_IV0 = 4089235720,
55667 	BLAKE2B_IV1 = 2227873595,
55668 	BLAKE2B_IV2 = 4271175723,
55669 	BLAKE2B_IV3 = 1595750129,
55670 	BLAKE2B_IV4 = 2917565137,
55671 	BLAKE2B_IV5 = 725511199,
55672 	BLAKE2B_IV6 = 4215389547,
55673 	BLAKE2B_IV7 = 327033209,
55674 };
55675 
55676 typedef void (*blake2b_compress_t)(struct blake2b_state *, const u8 *, size_t, u32);
55677 
55678 struct blake2b_tfm_ctx {
55679 	u8 key[64];
55680 	unsigned int keylen;
55681 };
55682 
55683 typedef struct {
55684 	u64 a;
55685 	u64 b;
55686 } u128;
55687 
55688 typedef struct {
55689 	__be64 a;
55690 	__be64 b;
55691 } be128;
55692 
55693 typedef struct {
55694 	__le64 b;
55695 	__le64 a;
55696 } le128;
55697 
55698 struct gf128mul_4k {
55699 	be128 t[256];
55700 };
55701 
55702 struct gf128mul_64k {
55703 	struct gf128mul_4k *t[16];
55704 };
55705 
55706 struct crypto_rfc3686_ctx {
55707 	struct crypto_skcipher *child;
55708 	u8 nonce[4];
55709 };
55710 
55711 struct crypto_rfc3686_req_ctx {
55712 	u8 iv[16];
55713 	struct skcipher_request subreq;
55714 };
55715 
55716 struct gcm_instance_ctx {
55717 	struct crypto_skcipher_spawn ctr;
55718 	struct crypto_ahash_spawn ghash;
55719 };
55720 
55721 struct crypto_gcm_ctx {
55722 	struct crypto_skcipher *ctr;
55723 	struct crypto_ahash *ghash;
55724 };
55725 
55726 struct crypto_rfc4106_ctx {
55727 	struct crypto_aead *child;
55728 	u8 nonce[4];
55729 };
55730 
55731 struct crypto_rfc4106_req_ctx {
55732 	struct scatterlist src[3];
55733 	struct scatterlist dst[3];
55734 	struct aead_request subreq;
55735 };
55736 
55737 struct crypto_rfc4543_instance_ctx {
55738 	struct crypto_aead_spawn aead;
55739 };
55740 
55741 struct crypto_rfc4543_ctx {
55742 	struct crypto_aead *child;
55743 	struct crypto_sync_skcipher *null;
55744 	u8 nonce[4];
55745 };
55746 
55747 struct crypto_rfc4543_req_ctx {
55748 	struct aead_request subreq;
55749 };
55750 
55751 struct crypto_gcm_ghash_ctx {
55752 	unsigned int cryptlen;
55753 	struct scatterlist *src;
55754 	int (*complete)(struct aead_request *, u32);
55755 };
55756 
55757 struct crypto_gcm_req_priv_ctx {
55758 	u8 iv[16];
55759 	u8 auth_tag[16];
55760 	u8 iauth_tag[16];
55761 	struct scatterlist src[3];
55762 	struct scatterlist dst[3];
55763 	struct scatterlist sg;
55764 	struct crypto_gcm_ghash_ctx ghash_ctx;
55765 	union {
55766 		struct ahash_request ahreq;
55767 		struct skcipher_request skreq;
55768 	} u;
55769 };
55770 
55771 struct crypto_aes_ctx {
55772 	u32 key_enc[60];
55773 	u32 key_dec[60];
55774 	u32 key_length;
55775 };
55776 
55777 struct chksum_ctx {
55778 	u32 key;
55779 };
55780 
55781 struct chksum_desc_ctx {
55782 	u32 crc;
55783 };
55784 
55785 struct chksum_desc_ctx___2 {
55786 	__u16 crc;
55787 };
55788 
55789 struct xxh64_state {
55790 	uint64_t total_len;
55791 	uint64_t v1;
55792 	uint64_t v2;
55793 	uint64_t v3;
55794 	uint64_t v4;
55795 	uint64_t mem64[4];
55796 	uint32_t memsize;
55797 };
55798 
55799 struct xxhash64_tfm_ctx {
55800 	u64 seed;
55801 };
55802 
55803 struct xxhash64_desc_ctx {
55804 	struct xxh64_state xxhstate;
55805 };
55806 
55807 struct crypto_report_rng {
55808 	char type[64];
55809 	unsigned int seedsize;
55810 };
55811 
55812 struct drbg_string {
55813 	const unsigned char *buf;
55814 	size_t len;
55815 	struct list_head list;
55816 };
55817 
55818 typedef uint32_t drbg_flag_t;
55819 
55820 struct drbg_core {
55821 	drbg_flag_t flags;
55822 	__u8 statelen;
55823 	__u8 blocklen_bytes;
55824 	char cra_name[128];
55825 	char backend_cra_name[128];
55826 };
55827 
55828 struct drbg_state;
55829 
55830 struct drbg_state_ops {
55831 	int (*update)(struct drbg_state *, struct list_head *, int);
55832 	int (*generate)(struct drbg_state *, unsigned char *, unsigned int, struct list_head *);
55833 	int (*crypto_init)(struct drbg_state *);
55834 	int (*crypto_fini)(struct drbg_state *);
55835 };
55836 
55837 enum drbg_seed_state {
55838 	DRBG_SEED_STATE_UNSEEDED = 0,
55839 	DRBG_SEED_STATE_PARTIAL = 1,
55840 	DRBG_SEED_STATE_FULL = 2,
55841 };
55842 
55843 struct drbg_state {
55844 	struct mutex drbg_mutex;
55845 	unsigned char *V;
55846 	unsigned char *Vbuf;
55847 	unsigned char *C;
55848 	unsigned char *Cbuf;
55849 	size_t reseed_ctr;
55850 	size_t reseed_threshold;
55851 	unsigned char *scratchpad;
55852 	unsigned char *scratchpadbuf;
55853 	void *priv_data;
55854 	struct crypto_skcipher *ctr_handle;
55855 	struct skcipher_request *ctr_req;
55856 	__u8 *outscratchpadbuf;
55857 	__u8 *outscratchpad;
55858 	struct crypto_wait ctr_wait;
55859 	struct scatterlist sg_in;
55860 	struct scatterlist sg_out;
55861 	enum drbg_seed_state seeded;
55862 	long unsigned int last_seed_time;
55863 	bool pr;
55864 	bool fips_primed;
55865 	unsigned char *prev;
55866 	struct crypto_rng *jent;
55867 	const struct drbg_state_ops *d_ops;
55868 	const struct drbg_core *core;
55869 	struct drbg_string test_data;
55870 };
55871 
55872 enum drbg_prefixes {
55873 	DRBG_PREFIX0 = 0,
55874 	DRBG_PREFIX1 = 1,
55875 	DRBG_PREFIX2 = 2,
55876 	DRBG_PREFIX3 = 3,
55877 };
55878 
55879 struct sdesc {
55880 	struct shash_desc shash;
55881 	char ctx[0];
55882 };
55883 
55884 struct rand_data {
55885 	__u64 data;
55886 	__u64 old_data;
55887 	__u64 prev_time;
55888 	__u64 last_delta;
55889 	__s64 last_delta2;
55890 	unsigned int osr;
55891 	unsigned char *mem;
55892 	unsigned int memlocation;
55893 	unsigned int memblocks;
55894 	unsigned int memblocksize;
55895 	unsigned int memaccessloops;
55896 	int rct_count;
55897 	unsigned int apt_observations;
55898 	unsigned int apt_count;
55899 	unsigned int apt_base;
55900 	unsigned int apt_base_set: 1;
55901 	unsigned int health_failure: 1;
55902 };
55903 
55904 struct rand_data___2;
55905 
55906 struct jitterentropy {
55907 	spinlock_t jent_lock;
55908 	struct rand_data___2 *entropy_collector;
55909 	unsigned int reset_cnt;
55910 };
55911 
55912 struct ghash_ctx {
55913 	struct gf128mul_4k *gf128;
55914 };
55915 
55916 struct ghash_desc_ctx {
55917 	u8 buffer[16];
55918 	u32 bytes;
55919 };
55920 
55921 struct sockaddr_alg_new {
55922 	__u16 salg_family;
55923 	__u8 salg_type[14];
55924 	__u32 salg_feat;
55925 	__u32 salg_mask;
55926 	__u8 salg_name[0];
55927 };
55928 
55929 struct af_alg_iv {
55930 	__u32 ivlen;
55931 	__u8 iv[0];
55932 };
55933 
55934 struct cmsghdr {
55935 	__kernel_size_t cmsg_len;
55936 	int cmsg_level;
55937 	int cmsg_type;
55938 };
55939 
55940 struct net_proto_family {
55941 	int family;
55942 	int (*create)(struct net *, struct socket *, int, int);
55943 	struct module *owner;
55944 };
55945 
55946 enum {
55947 	SOCK_WAKE_IO = 0,
55948 	SOCK_WAKE_WAITD = 1,
55949 	SOCK_WAKE_SPACE = 2,
55950 	SOCK_WAKE_URG = 3,
55951 };
55952 
55953 struct af_alg_type;
55954 
55955 struct alg_sock {
55956 	struct sock sk;
55957 	struct sock *parent;
55958 	atomic_t refcnt;
55959 	atomic_t nokey_refcnt;
55960 	const struct af_alg_type *type;
55961 	void *private;
55962 };
55963 
55964 struct af_alg_type {
55965 	void * (*bind)(const char *, u32, u32);
55966 	void (*release)(void *);
55967 	int (*setkey)(void *, const u8 *, unsigned int);
55968 	int (*setentropy)(void *, sockptr_t, unsigned int);
55969 	int (*accept)(void *, struct sock *);
55970 	int (*accept_nokey)(void *, struct sock *);
55971 	int (*setauthsize)(void *, unsigned int);
55972 	struct proto_ops *ops;
55973 	struct proto_ops *ops_nokey;
55974 	struct module *owner;
55975 	char name[14];
55976 };
55977 
55978 struct af_alg_control {
55979 	struct af_alg_iv *iv;
55980 	int op;
55981 	unsigned int aead_assoclen;
55982 };
55983 
55984 struct af_alg_sgl {
55985 	struct scatterlist sg[17];
55986 	struct page *pages[16];
55987 	unsigned int npages;
55988 };
55989 
55990 struct af_alg_tsgl {
55991 	struct list_head list;
55992 	unsigned int cur;
55993 	struct scatterlist sg[0];
55994 };
55995 
55996 struct af_alg_rsgl {
55997 	struct af_alg_sgl sgl;
55998 	struct list_head list;
55999 	size_t sg_num_bytes;
56000 };
56001 
56002 struct af_alg_async_req {
56003 	struct kiocb *iocb;
56004 	struct sock *sk;
56005 	struct af_alg_rsgl first_rsgl;
56006 	struct af_alg_rsgl *last_rsgl;
56007 	struct list_head rsgl_list;
56008 	struct scatterlist *tsgl;
56009 	unsigned int tsgl_entries;
56010 	unsigned int outlen;
56011 	unsigned int areqlen;
56012 	union {
56013 		struct aead_request aead_req;
56014 		struct skcipher_request skcipher_req;
56015 	} cra_u;
56016 };
56017 
56018 struct af_alg_ctx {
56019 	struct list_head tsgl_list;
56020 	void *iv;
56021 	size_t aead_assoclen;
56022 	struct crypto_wait wait;
56023 	size_t used;
56024 	atomic_t rcvused;
56025 	bool more;
56026 	bool merge;
56027 	bool enc;
56028 	bool init;
56029 	unsigned int len;
56030 };
56031 
56032 struct alg_type_list {
56033 	const struct af_alg_type *type;
56034 	struct list_head list;
56035 };
56036 
56037 struct hash_ctx {
56038 	struct af_alg_sgl sgl;
56039 	u8 *result;
56040 	struct crypto_wait wait;
56041 	unsigned int len;
56042 	bool more;
56043 	struct ahash_request req;
56044 };
56045 
56046 enum asymmetric_payload_bits {
56047 	asym_crypto = 0,
56048 	asym_subtype = 1,
56049 	asym_key_ids = 2,
56050 	asym_auth = 3,
56051 };
56052 
56053 struct asymmetric_key_id {
56054 	short unsigned int len;
56055 	unsigned char data[0];
56056 };
56057 
56058 struct asymmetric_key_ids {
56059 	void *id[3];
56060 };
56061 
56062 struct public_key_signature;
56063 
56064 struct asymmetric_key_subtype___2 {
56065 	struct module *owner;
56066 	const char *name;
56067 	short unsigned int name_len;
56068 	void (*describe)(const struct key *, struct seq_file *);
56069 	void (*destroy)(void *, void *);
56070 	int (*query)(const struct kernel_pkey_params *, struct kernel_pkey_query *);
56071 	int (*eds_op)(struct kernel_pkey_params *, const void *, void *);
56072 	int (*verify_signature)(const struct key *, const struct public_key_signature *);
56073 };
56074 
56075 struct public_key_signature {
56076 	struct asymmetric_key_id *auth_ids[3];
56077 	u8 *s;
56078 	u8 *digest;
56079 	u32 s_size;
56080 	u32 digest_size;
56081 	const char *pkey_algo;
56082 	const char *hash_algo;
56083 	const char *encoding;
56084 	const void *data;
56085 	unsigned int data_size;
56086 };
56087 
56088 struct asymmetric_key_parser {
56089 	struct list_head link;
56090 	struct module *owner;
56091 	const char *name;
56092 	int (*parse)(struct key_preparsed_payload *);
56093 };
56094 
56095 enum OID {
56096 	OID_id_dsa_with_sha1 = 0,
56097 	OID_id_dsa = 1,
56098 	OID_id_ecPublicKey = 2,
56099 	OID_id_prime192v1 = 3,
56100 	OID_id_prime256v1 = 4,
56101 	OID_id_ecdsa_with_sha1 = 5,
56102 	OID_id_ecdsa_with_sha224 = 6,
56103 	OID_id_ecdsa_with_sha256 = 7,
56104 	OID_id_ecdsa_with_sha384 = 8,
56105 	OID_id_ecdsa_with_sha512 = 9,
56106 	OID_rsaEncryption = 10,
56107 	OID_md2WithRSAEncryption = 11,
56108 	OID_md3WithRSAEncryption = 12,
56109 	OID_md4WithRSAEncryption = 13,
56110 	OID_sha1WithRSAEncryption = 14,
56111 	OID_sha256WithRSAEncryption = 15,
56112 	OID_sha384WithRSAEncryption = 16,
56113 	OID_sha512WithRSAEncryption = 17,
56114 	OID_sha224WithRSAEncryption = 18,
56115 	OID_data = 19,
56116 	OID_signed_data = 20,
56117 	OID_email_address = 21,
56118 	OID_contentType = 22,
56119 	OID_messageDigest = 23,
56120 	OID_signingTime = 24,
56121 	OID_smimeCapabilites = 25,
56122 	OID_smimeAuthenticatedAttrs = 26,
56123 	OID_md2 = 27,
56124 	OID_md4 = 28,
56125 	OID_md5 = 29,
56126 	OID_mskrb5 = 30,
56127 	OID_krb5 = 31,
56128 	OID_krb5u2u = 32,
56129 	OID_msIndirectData = 33,
56130 	OID_msStatementType = 34,
56131 	OID_msSpOpusInfo = 35,
56132 	OID_msPeImageDataObjId = 36,
56133 	OID_msIndividualSPKeyPurpose = 37,
56134 	OID_msOutlookExpress = 38,
56135 	OID_ntlmssp = 39,
56136 	OID_spnego = 40,
56137 	OID_IAKerb = 41,
56138 	OID_PKU2U = 42,
56139 	OID_Scram = 43,
56140 	OID_certAuthInfoAccess = 44,
56141 	OID_sha1 = 45,
56142 	OID_id_ansip384r1 = 46,
56143 	OID_sha256 = 47,
56144 	OID_sha384 = 48,
56145 	OID_sha512 = 49,
56146 	OID_sha224 = 50,
56147 	OID_commonName = 51,
56148 	OID_surname = 52,
56149 	OID_countryName = 53,
56150 	OID_locality = 54,
56151 	OID_stateOrProvinceName = 55,
56152 	OID_organizationName = 56,
56153 	OID_organizationUnitName = 57,
56154 	OID_title = 58,
56155 	OID_description = 59,
56156 	OID_name = 60,
56157 	OID_givenName = 61,
56158 	OID_initials = 62,
56159 	OID_generationalQualifier = 63,
56160 	OID_subjectKeyIdentifier = 64,
56161 	OID_keyUsage = 65,
56162 	OID_subjectAltName = 66,
56163 	OID_issuerAltName = 67,
56164 	OID_basicConstraints = 68,
56165 	OID_crlDistributionPoints = 69,
56166 	OID_certPolicies = 70,
56167 	OID_authorityKeyIdentifier = 71,
56168 	OID_extKeyUsage = 72,
56169 	OID_NetlogonMechanism = 73,
56170 	OID_appleLocalKdcSupported = 74,
56171 	OID_gostCPSignA = 75,
56172 	OID_gostCPSignB = 76,
56173 	OID_gostCPSignC = 77,
56174 	OID_gost2012PKey256 = 78,
56175 	OID_gost2012PKey512 = 79,
56176 	OID_gost2012Digest256 = 80,
56177 	OID_gost2012Digest512 = 81,
56178 	OID_gost2012Signature256 = 82,
56179 	OID_gost2012Signature512 = 83,
56180 	OID_gostTC26Sign256A = 84,
56181 	OID_gostTC26Sign256B = 85,
56182 	OID_gostTC26Sign256C = 86,
56183 	OID_gostTC26Sign256D = 87,
56184 	OID_gostTC26Sign512A = 88,
56185 	OID_gostTC26Sign512B = 89,
56186 	OID_gostTC26Sign512C = 90,
56187 	OID_sm2 = 91,
56188 	OID_sm3 = 92,
56189 	OID_SM2_with_SM3 = 93,
56190 	OID_sm3WithRSAEncryption = 94,
56191 	OID_TPMLoadableKey = 95,
56192 	OID_TPMImportableKey = 96,
56193 	OID_TPMSealedData = 97,
56194 	OID__NR = 98,
56195 };
56196 
56197 struct public_key {
56198 	void *key;
56199 	u32 keylen;
56200 	enum OID algo;
56201 	void *params;
56202 	u32 paramlen;
56203 	bool key_is_private;
56204 	const char *id_type;
56205 	const char *pkey_algo;
56206 };
56207 
56208 enum x509_actions {
56209 	ACT_x509_extract_key_data = 0,
56210 	ACT_x509_extract_name_segment = 1,
56211 	ACT_x509_note_OID = 2,
56212 	ACT_x509_note_issuer = 3,
56213 	ACT_x509_note_not_after = 4,
56214 	ACT_x509_note_not_before = 5,
56215 	ACT_x509_note_params = 6,
56216 	ACT_x509_note_pkey_algo = 7,
56217 	ACT_x509_note_serial = 8,
56218 	ACT_x509_note_signature = 9,
56219 	ACT_x509_note_subject = 10,
56220 	ACT_x509_note_tbs_certificate = 11,
56221 	ACT_x509_process_extension = 12,
56222 	NR__x509_actions = 13,
56223 };
56224 
56225 enum x509_akid_actions {
56226 	ACT_x509_akid_note_kid = 0,
56227 	ACT_x509_akid_note_name = 1,
56228 	ACT_x509_akid_note_serial = 2,
56229 	ACT_x509_extract_name_segment___2 = 3,
56230 	ACT_x509_note_OID___2 = 4,
56231 	NR__x509_akid_actions = 5,
56232 };
56233 
56234 struct x509_certificate {
56235 	struct x509_certificate *next;
56236 	struct x509_certificate *signer;
56237 	struct public_key *pub;
56238 	struct public_key_signature *sig;
56239 	char *issuer;
56240 	char *subject;
56241 	struct asymmetric_key_id *id;
56242 	struct asymmetric_key_id *skid;
56243 	time64_t valid_from;
56244 	time64_t valid_to;
56245 	const void *tbs;
56246 	unsigned int tbs_size;
56247 	unsigned int raw_sig_size;
56248 	const void *raw_sig;
56249 	const void *raw_serial;
56250 	unsigned int raw_serial_size;
56251 	unsigned int raw_issuer_size;
56252 	const void *raw_issuer;
56253 	const void *raw_subject;
56254 	unsigned int raw_subject_size;
56255 	unsigned int raw_skid_size;
56256 	const void *raw_skid;
56257 	unsigned int index;
56258 	bool seen;
56259 	bool verified;
56260 	bool self_signed;
56261 	bool unsupported_key;
56262 	bool unsupported_sig;
56263 	bool blacklisted;
56264 };
56265 
56266 struct x509_parse_context {
56267 	struct x509_certificate *cert;
56268 	long unsigned int data;
56269 	const void *cert_start;
56270 	const void *key;
56271 	size_t key_size;
56272 	const void *params;
56273 	size_t params_size;
56274 	enum OID key_algo;
56275 	enum OID last_oid;
56276 	enum OID algo_oid;
56277 	unsigned char nr_mpi;
56278 	u8 o_size;
56279 	u8 cn_size;
56280 	u8 email_size;
56281 	u16 o_offset;
56282 	u16 cn_offset;
56283 	u16 email_offset;
56284 	unsigned int raw_akid_size;
56285 	const void *raw_akid;
56286 	const void *akid_raw_issuer;
56287 	unsigned int akid_raw_issuer_size;
56288 };
56289 
56290 enum pkcs7_actions {
56291 	ACT_pkcs7_check_content_type = 0,
56292 	ACT_pkcs7_extract_cert = 1,
56293 	ACT_pkcs7_note_OID = 2,
56294 	ACT_pkcs7_note_certificate_list = 3,
56295 	ACT_pkcs7_note_content = 4,
56296 	ACT_pkcs7_note_data = 5,
56297 	ACT_pkcs7_note_signed_info = 6,
56298 	ACT_pkcs7_note_signeddata_version = 7,
56299 	ACT_pkcs7_note_signerinfo_version = 8,
56300 	ACT_pkcs7_sig_note_authenticated_attr = 9,
56301 	ACT_pkcs7_sig_note_digest_algo = 10,
56302 	ACT_pkcs7_sig_note_issuer = 11,
56303 	ACT_pkcs7_sig_note_pkey_algo = 12,
56304 	ACT_pkcs7_sig_note_serial = 13,
56305 	ACT_pkcs7_sig_note_set_of_authattrs = 14,
56306 	ACT_pkcs7_sig_note_signature = 15,
56307 	ACT_pkcs7_sig_note_skid = 16,
56308 	NR__pkcs7_actions = 17,
56309 };
56310 
56311 struct pkcs7_signed_info {
56312 	struct pkcs7_signed_info *next;
56313 	struct x509_certificate *signer;
56314 	unsigned int index;
56315 	bool unsupported_crypto;
56316 	bool blacklisted;
56317 	const void *msgdigest;
56318 	unsigned int msgdigest_len;
56319 	unsigned int authattrs_len;
56320 	const void *authattrs;
56321 	long unsigned int aa_set;
56322 	time64_t signing_time;
56323 	struct public_key_signature *sig;
56324 };
56325 
56326 struct pkcs7_message___2 {
56327 	struct x509_certificate *certs;
56328 	struct x509_certificate *crl;
56329 	struct pkcs7_signed_info *signed_infos;
56330 	u8 version;
56331 	bool have_authattrs;
56332 	enum OID data_type;
56333 	size_t data_len;
56334 	size_t data_hdrlen;
56335 	const void *data;
56336 };
56337 
56338 struct pkcs7_parse_context {
56339 	struct pkcs7_message___2 *msg;
56340 	struct pkcs7_signed_info *sinfo;
56341 	struct pkcs7_signed_info **ppsinfo;
56342 	struct x509_certificate *certs;
56343 	struct x509_certificate **ppcerts;
56344 	long unsigned int data;
56345 	enum OID last_oid;
56346 	unsigned int x509_index;
56347 	unsigned int sinfo_index;
56348 	const void *raw_serial;
56349 	unsigned int raw_serial_size;
56350 	unsigned int raw_issuer_size;
56351 	const void *raw_issuer;
56352 	const void *raw_skid;
56353 	unsigned int raw_skid_size;
56354 	bool expect_skid;
56355 };
56356 
56357 enum {
56358 	DISK_EVENT_MEDIA_CHANGE = 1,
56359 	DISK_EVENT_EJECT_REQUEST = 2,
56360 };
56361 
56362 enum {
56363 	DISK_EVENT_FLAG_POLL = 1,
56364 	DISK_EVENT_FLAG_UEVENT = 2,
56365 	DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 4,
56366 };
56367 
56368 struct blk_integrity_profile;
56369 
56370 struct blk_integrity {
56371 	const struct blk_integrity_profile *profile;
56372 	unsigned char flags;
56373 	unsigned char tuple_size;
56374 	unsigned char interval_exp;
56375 	unsigned char tag_size;
56376 };
56377 
56378 struct blk_integrity_iter;
56379 
56380 typedef blk_status_t integrity_processing_fn(struct blk_integrity_iter *);
56381 
56382 typedef void integrity_prepare_fn(struct request *);
56383 
56384 typedef void integrity_complete_fn(struct request *, unsigned int);
56385 
56386 struct blk_integrity_profile {
56387 	integrity_processing_fn *generate_fn;
56388 	integrity_processing_fn *verify_fn;
56389 	integrity_prepare_fn *prepare_fn;
56390 	integrity_complete_fn *complete_fn;
56391 	const char *name;
56392 };
56393 
56394 struct blk_integrity_iter {
56395 	void *prot_buf;
56396 	void *data_buf;
56397 	sector_t seed;
56398 	unsigned int data_size;
56399 	short unsigned int interval;
56400 	const char *disk_name;
56401 };
56402 
56403 struct bdev_inode {
56404 	struct block_device bdev;
56405 	struct inode vfs_inode;
56406 };
56407 
56408 enum {
56409 	DIO_SHOULD_DIRTY = 1,
56410 	DIO_IS_SYNC = 2,
56411 };
56412 
56413 struct blkdev_dio {
56414 	union {
56415 		struct kiocb *iocb;
56416 		struct task_struct *waiter;
56417 	};
56418 	size_t size;
56419 	atomic_t ref;
56420 	unsigned int flags;
56421 	long: 64;
56422 	long: 64;
56423 	long: 64;
56424 	long: 64;
56425 	long: 64;
56426 	struct bio bio;
56427 	long: 64;
56428 	long: 64;
56429 };
56430 
56431 struct bio_alloc_cache {
56432 	struct bio *free_list;
56433 	unsigned int nr;
56434 };
56435 
56436 enum rq_qos_id {
56437 	RQ_QOS_WBT = 0,
56438 	RQ_QOS_LATENCY = 1,
56439 	RQ_QOS_COST = 2,
56440 	RQ_QOS_IOPRIO = 3,
56441 };
56442 
56443 struct rq_qos_ops;
56444 
56445 struct rq_qos {
56446 	struct rq_qos_ops *ops;
56447 	struct request_queue *q;
56448 	enum rq_qos_id id;
56449 	struct rq_qos *next;
56450 	struct dentry *debugfs_dir;
56451 };
56452 
56453 struct blk_mq_debugfs_attr {
56454 	const char *name;
56455 	umode_t mode;
56456 	int (*show)(void *, struct seq_file *);
56457 	ssize_t (*write)(void *, const char *, size_t, loff_t *);
56458 	const struct seq_operations *seq_ops;
56459 };
56460 
56461 struct rq_qos_ops {
56462 	void (*throttle)(struct rq_qos *, struct bio *);
56463 	void (*track)(struct rq_qos *, struct request *, struct bio *);
56464 	void (*merge)(struct rq_qos *, struct request *, struct bio *);
56465 	void (*issue)(struct rq_qos *, struct request *);
56466 	void (*requeue)(struct rq_qos *, struct request *);
56467 	void (*done)(struct rq_qos *, struct request *);
56468 	void (*done_bio)(struct rq_qos *, struct bio *);
56469 	void (*cleanup)(struct rq_qos *, struct bio *);
56470 	void (*queue_depth_changed)(struct rq_qos *);
56471 	void (*exit)(struct rq_qos *);
56472 	const struct blk_mq_debugfs_attr *debugfs_attrs;
56473 };
56474 
56475 struct biovec_slab {
56476 	int nr_vecs;
56477 	char *name;
56478 	struct kmem_cache *slab;
56479 };
56480 
56481 struct bio_slab {
56482 	struct kmem_cache *slab;
56483 	unsigned int slab_ref;
56484 	unsigned int slab_size;
56485 	char name[8];
56486 };
56487 
56488 struct elevator_type;
56489 
56490 struct elevator_queue {
56491 	struct elevator_type *type;
56492 	void *elevator_data;
56493 	struct kobject kobj;
56494 	struct mutex sysfs_lock;
56495 	unsigned int registered: 1;
56496 	struct hlist_head hash[64];
56497 };
56498 
56499 struct blk_mq_ctxs;
56500 
56501 struct blk_mq_ctx {
56502 	struct {
56503 		spinlock_t lock;
56504 		struct list_head rq_lists[3];
56505 		long: 64;
56506 		long: 64;
56507 	};
56508 	unsigned int cpu;
56509 	short unsigned int index_hw[3];
56510 	struct blk_mq_hw_ctx *hctxs[3];
56511 	struct request_queue *queue;
56512 	struct blk_mq_ctxs *ctxs;
56513 	struct kobject kobj;
56514 	long: 64;
56515 };
56516 
56517 struct blk_stat_callback {
56518 	struct list_head list;
56519 	struct timer_list timer;
56520 	struct blk_rq_stat *cpu_stat;
56521 	int (*bucket_fn)(const struct request *);
56522 	unsigned int buckets;
56523 	struct blk_rq_stat *stat;
56524 	void (*timer_fn)(struct blk_stat_callback *);
56525 	void *data;
56526 	struct callback_head rcu;
56527 };
56528 
56529 enum {
56530 	BLK_MQ_F_SHOULD_MERGE = 1,
56531 	BLK_MQ_F_TAG_QUEUE_SHARED = 2,
56532 	BLK_MQ_F_STACKING = 4,
56533 	BLK_MQ_F_TAG_HCTX_SHARED = 8,
56534 	BLK_MQ_F_BLOCKING = 32,
56535 	BLK_MQ_F_NO_SCHED = 64,
56536 	BLK_MQ_F_NO_SCHED_BY_DEFAULT = 128,
56537 	BLK_MQ_F_ALLOC_POLICY_START_BIT = 8,
56538 	BLK_MQ_F_ALLOC_POLICY_BITS = 1,
56539 	BLK_MQ_S_STOPPED = 0,
56540 	BLK_MQ_S_TAG_ACTIVE = 1,
56541 	BLK_MQ_S_SCHED_RESTART = 2,
56542 	BLK_MQ_S_INACTIVE = 3,
56543 	BLK_MQ_MAX_DEPTH = 10240,
56544 	BLK_MQ_CPU_WORK_BATCH = 8,
56545 };
56546 
56547 enum elv_merge {
56548 	ELEVATOR_NO_MERGE = 0,
56549 	ELEVATOR_FRONT_MERGE = 1,
56550 	ELEVATOR_BACK_MERGE = 2,
56551 	ELEVATOR_DISCARD_MERGE = 3,
56552 };
56553 
56554 struct blk_mq_alloc_data;
56555 
56556 struct elevator_mq_ops {
56557 	int (*init_sched)(struct request_queue *, struct elevator_type *);
56558 	void (*exit_sched)(struct elevator_queue *);
56559 	int (*init_hctx)(struct blk_mq_hw_ctx *, unsigned int);
56560 	void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int);
56561 	void (*depth_updated)(struct blk_mq_hw_ctx *);
56562 	bool (*allow_merge)(struct request_queue *, struct request *, struct bio *);
56563 	bool (*bio_merge)(struct request_queue *, struct bio *, unsigned int);
56564 	int (*request_merge)(struct request_queue *, struct request **, struct bio *);
56565 	void (*request_merged)(struct request_queue *, struct request *, enum elv_merge);
56566 	void (*requests_merged)(struct request_queue *, struct request *, struct request *);
56567 	void (*limit_depth)(unsigned int, struct blk_mq_alloc_data *);
56568 	void (*prepare_request)(struct request *);
56569 	void (*finish_request)(struct request *);
56570 	void (*insert_requests)(struct blk_mq_hw_ctx *, struct list_head *, bool);
56571 	struct request * (*dispatch_request)(struct blk_mq_hw_ctx *);
56572 	bool (*has_work)(struct blk_mq_hw_ctx *);
56573 	void (*completed_request)(struct request *, u64);
56574 	void (*requeue_request)(struct request *);
56575 	struct request * (*former_request)(struct request_queue *, struct request *);
56576 	struct request * (*next_request)(struct request_queue *, struct request *);
56577 	void (*init_icq)(struct io_cq *);
56578 	void (*exit_icq)(struct io_cq *);
56579 };
56580 
56581 struct elv_fs_entry;
56582 
56583 struct elevator_type {
56584 	struct kmem_cache *icq_cache;
56585 	struct elevator_mq_ops ops;
56586 	size_t icq_size;
56587 	size_t icq_align;
56588 	struct elv_fs_entry *elevator_attrs;
56589 	const char *elevator_name;
56590 	const char *elevator_alias;
56591 	const unsigned int elevator_features;
56592 	struct module *elevator_owner;
56593 	const struct blk_mq_debugfs_attr *queue_debugfs_attrs;
56594 	const struct blk_mq_debugfs_attr *hctx_debugfs_attrs;
56595 	char icq_cache_name[22];
56596 	struct list_head list;
56597 };
56598 
56599 struct blk_mq_alloc_data {
56600 	struct request_queue *q;
56601 	blk_mq_req_flags_t flags;
56602 	unsigned int shallow_depth;
56603 	unsigned int cmd_flags;
56604 	req_flags_t rq_flags;
56605 	unsigned int nr_tags;
56606 	struct request **cached_rq;
56607 	struct blk_mq_ctx *ctx;
56608 	struct blk_mq_hw_ctx *hctx;
56609 };
56610 
56611 struct elv_fs_entry {
56612 	struct attribute attr;
56613 	ssize_t (*show)(struct elevator_queue *, char *);
56614 	ssize_t (*store)(struct elevator_queue *, const char *, size_t);
56615 };
56616 
56617 struct blk_mq_ctxs {
56618 	struct kobject kobj;
56619 	struct blk_mq_ctx *queue_ctx;
56620 };
56621 
56622 enum {
56623 	WBT_RWQ_BG = 0,
56624 	WBT_RWQ_KSWAPD = 1,
56625 	WBT_RWQ_DISCARD = 2,
56626 	WBT_NUM_RWQ = 3,
56627 };
56628 
56629 enum rpm_status {
56630 	RPM_INVALID = 4294967295,
56631 	RPM_ACTIVE = 0,
56632 	RPM_RESUMING = 1,
56633 	RPM_SUSPENDED = 2,
56634 	RPM_SUSPENDING = 3,
56635 };
56636 
56637 struct blk_plug_cb;
56638 
56639 typedef void (*blk_plug_cb_fn)(struct blk_plug_cb *, bool);
56640 
56641 struct blk_plug_cb {
56642 	struct list_head list;
56643 	blk_plug_cb_fn callback;
56644 	void *data;
56645 };
56646 
56647 enum {
56648 	BLK_MQ_REQ_NOWAIT = 1,
56649 	BLK_MQ_REQ_RESERVED = 2,
56650 	BLK_MQ_REQ_PM = 4,
56651 };
56652 
56653 typedef struct blkcg_policy_data *blkcg_pol_alloc_cpd_fn(gfp_t);
56654 
56655 typedef void blkcg_pol_init_cpd_fn(struct blkcg_policy_data *);
56656 
56657 typedef void blkcg_pol_free_cpd_fn(struct blkcg_policy_data *);
56658 
56659 typedef void blkcg_pol_bind_cpd_fn(struct blkcg_policy_data *);
56660 
56661 typedef struct blkg_policy_data *blkcg_pol_alloc_pd_fn(gfp_t, struct request_queue *, struct blkcg *);
56662 
56663 typedef void blkcg_pol_init_pd_fn(struct blkg_policy_data *);
56664 
56665 typedef void blkcg_pol_online_pd_fn(struct blkg_policy_data *);
56666 
56667 typedef void blkcg_pol_offline_pd_fn(struct blkg_policy_data *);
56668 
56669 typedef void blkcg_pol_free_pd_fn(struct blkg_policy_data *);
56670 
56671 typedef void blkcg_pol_reset_pd_stats_fn(struct blkg_policy_data *);
56672 
56673 typedef bool blkcg_pol_stat_pd_fn(struct blkg_policy_data *, struct seq_file *);
56674 
56675 struct blkcg_policy {
56676 	int plid;
56677 	struct cftype *dfl_cftypes;
56678 	struct cftype *legacy_cftypes;
56679 	blkcg_pol_alloc_cpd_fn *cpd_alloc_fn;
56680 	blkcg_pol_init_cpd_fn *cpd_init_fn;
56681 	blkcg_pol_free_cpd_fn *cpd_free_fn;
56682 	blkcg_pol_bind_cpd_fn *cpd_bind_fn;
56683 	blkcg_pol_alloc_pd_fn *pd_alloc_fn;
56684 	blkcg_pol_init_pd_fn *pd_init_fn;
56685 	blkcg_pol_online_pd_fn *pd_online_fn;
56686 	blkcg_pol_offline_pd_fn *pd_offline_fn;
56687 	blkcg_pol_free_pd_fn *pd_free_fn;
56688 	blkcg_pol_reset_pd_stats_fn *pd_reset_stats_fn;
56689 	blkcg_pol_stat_pd_fn *pd_stat_fn;
56690 };
56691 
56692 struct trace_event_raw_block_buffer {
56693 	struct trace_entry ent;
56694 	dev_t dev;
56695 	sector_t sector;
56696 	size_t size;
56697 	char __data[0];
56698 };
56699 
56700 struct trace_event_raw_block_rq_requeue {
56701 	struct trace_entry ent;
56702 	dev_t dev;
56703 	sector_t sector;
56704 	unsigned int nr_sector;
56705 	char rwbs[8];
56706 	u32 __data_loc_cmd;
56707 	char __data[0];
56708 };
56709 
56710 struct trace_event_raw_block_rq_complete {
56711 	struct trace_entry ent;
56712 	dev_t dev;
56713 	sector_t sector;
56714 	unsigned int nr_sector;
56715 	int error;
56716 	char rwbs[8];
56717 	u32 __data_loc_cmd;
56718 	char __data[0];
56719 };
56720 
56721 struct trace_event_raw_block_rq {
56722 	struct trace_entry ent;
56723 	dev_t dev;
56724 	sector_t sector;
56725 	unsigned int nr_sector;
56726 	unsigned int bytes;
56727 	char rwbs[8];
56728 	char comm[16];
56729 	u32 __data_loc_cmd;
56730 	char __data[0];
56731 };
56732 
56733 struct trace_event_raw_block_bio_complete {
56734 	struct trace_entry ent;
56735 	dev_t dev;
56736 	sector_t sector;
56737 	unsigned int nr_sector;
56738 	int error;
56739 	char rwbs[8];
56740 	char __data[0];
56741 };
56742 
56743 struct trace_event_raw_block_bio {
56744 	struct trace_entry ent;
56745 	dev_t dev;
56746 	sector_t sector;
56747 	unsigned int nr_sector;
56748 	char rwbs[8];
56749 	char comm[16];
56750 	char __data[0];
56751 };
56752 
56753 struct trace_event_raw_block_plug {
56754 	struct trace_entry ent;
56755 	char comm[16];
56756 	char __data[0];
56757 };
56758 
56759 struct trace_event_raw_block_unplug {
56760 	struct trace_entry ent;
56761 	int nr_rq;
56762 	char comm[16];
56763 	char __data[0];
56764 };
56765 
56766 struct trace_event_raw_block_split {
56767 	struct trace_entry ent;
56768 	dev_t dev;
56769 	sector_t sector;
56770 	sector_t new_sector;
56771 	char rwbs[8];
56772 	char comm[16];
56773 	char __data[0];
56774 };
56775 
56776 struct trace_event_raw_block_bio_remap {
56777 	struct trace_entry ent;
56778 	dev_t dev;
56779 	sector_t sector;
56780 	unsigned int nr_sector;
56781 	dev_t old_dev;
56782 	sector_t old_sector;
56783 	char rwbs[8];
56784 	char __data[0];
56785 };
56786 
56787 struct trace_event_raw_block_rq_remap {
56788 	struct trace_entry ent;
56789 	dev_t dev;
56790 	sector_t sector;
56791 	unsigned int nr_sector;
56792 	dev_t old_dev;
56793 	sector_t old_sector;
56794 	unsigned int nr_bios;
56795 	char rwbs[8];
56796 	char __data[0];
56797 };
56798 
56799 struct trace_event_data_offsets_block_buffer {};
56800 
56801 struct trace_event_data_offsets_block_rq_requeue {
56802 	u32 cmd;
56803 };
56804 
56805 struct trace_event_data_offsets_block_rq_complete {
56806 	u32 cmd;
56807 };
56808 
56809 struct trace_event_data_offsets_block_rq {
56810 	u32 cmd;
56811 };
56812 
56813 struct trace_event_data_offsets_block_bio_complete {};
56814 
56815 struct trace_event_data_offsets_block_bio {};
56816 
56817 struct trace_event_data_offsets_block_plug {};
56818 
56819 struct trace_event_data_offsets_block_unplug {};
56820 
56821 struct trace_event_data_offsets_block_split {};
56822 
56823 struct trace_event_data_offsets_block_bio_remap {};
56824 
56825 struct trace_event_data_offsets_block_rq_remap {};
56826 
56827 typedef void (*btf_trace_block_touch_buffer)(void *, struct buffer_head *);
56828 
56829 typedef void (*btf_trace_block_dirty_buffer)(void *, struct buffer_head *);
56830 
56831 typedef void (*btf_trace_block_rq_requeue)(void *, struct request *);
56832 
56833 typedef void (*btf_trace_block_rq_complete)(void *, struct request *, blk_status_t, unsigned int);
56834 
56835 typedef void (*btf_trace_block_rq_insert)(void *, struct request *);
56836 
56837 typedef void (*btf_trace_block_rq_issue)(void *, struct request *);
56838 
56839 typedef void (*btf_trace_block_rq_merge)(void *, struct request *);
56840 
56841 typedef void (*btf_trace_block_bio_complete)(void *, struct request_queue *, struct bio *);
56842 
56843 typedef void (*btf_trace_block_bio_bounce)(void *, struct bio *);
56844 
56845 typedef void (*btf_trace_block_bio_backmerge)(void *, struct bio *);
56846 
56847 typedef void (*btf_trace_block_bio_frontmerge)(void *, struct bio *);
56848 
56849 typedef void (*btf_trace_block_bio_queue)(void *, struct bio *);
56850 
56851 typedef void (*btf_trace_block_getrq)(void *, struct bio *);
56852 
56853 typedef void (*btf_trace_block_plug)(void *, struct request_queue *);
56854 
56855 typedef void (*btf_trace_block_unplug)(void *, struct request_queue *, unsigned int, bool);
56856 
56857 typedef void (*btf_trace_block_split)(void *, struct bio *, unsigned int);
56858 
56859 typedef void (*btf_trace_block_bio_remap)(void *, struct bio *, dev_t, sector_t);
56860 
56861 typedef void (*btf_trace_block_rq_remap)(void *, struct request *, dev_t, sector_t);
56862 
56863 enum blkg_rwstat_type {
56864 	BLKG_RWSTAT_READ = 0,
56865 	BLKG_RWSTAT_WRITE = 1,
56866 	BLKG_RWSTAT_SYNC = 2,
56867 	BLKG_RWSTAT_ASYNC = 3,
56868 	BLKG_RWSTAT_DISCARD = 4,
56869 	BLKG_RWSTAT_NR = 5,
56870 	BLKG_RWSTAT_TOTAL = 5,
56871 };
56872 
56873 struct blkg_rwstat {
56874 	struct percpu_counter cpu_cnt[5];
56875 	atomic64_t aux_cnt[5];
56876 };
56877 
56878 struct throtl_grp;
56879 
56880 struct throtl_qnode {
56881 	struct list_head node;
56882 	struct bio_list bios;
56883 	struct throtl_grp *tg;
56884 };
56885 
56886 struct throtl_service_queue {
56887 	struct throtl_service_queue *parent_sq;
56888 	struct list_head queued[2];
56889 	unsigned int nr_queued[2];
56890 	struct rb_root_cached pending_tree;
56891 	unsigned int nr_pending;
56892 	long unsigned int first_pending_disptime;
56893 	struct timer_list pending_timer;
56894 };
56895 
56896 struct throtl_grp {
56897 	struct blkg_policy_data pd;
56898 	struct rb_node rb_node;
56899 	struct throtl_data *td;
56900 	struct throtl_service_queue service_queue;
56901 	struct throtl_qnode qnode_on_self[2];
56902 	struct throtl_qnode qnode_on_parent[2];
56903 	long unsigned int disptime;
56904 	unsigned int flags;
56905 	bool has_rules[2];
56906 	uint64_t bps[4];
56907 	uint64_t bps_conf[4];
56908 	unsigned int iops[4];
56909 	unsigned int iops_conf[4];
56910 	uint64_t bytes_disp[2];
56911 	unsigned int io_disp[2];
56912 	long unsigned int last_low_overflow_time[2];
56913 	uint64_t last_bytes_disp[2];
56914 	unsigned int last_io_disp[2];
56915 	long unsigned int last_check_time;
56916 	long unsigned int latency_target;
56917 	long unsigned int latency_target_conf;
56918 	long unsigned int slice_start[2];
56919 	long unsigned int slice_end[2];
56920 	long unsigned int last_finish_time;
56921 	long unsigned int checked_last_finish_time;
56922 	long unsigned int avg_idletime;
56923 	long unsigned int idletime_threshold;
56924 	long unsigned int idletime_threshold_conf;
56925 	unsigned int bio_cnt;
56926 	unsigned int bad_bio_cnt;
56927 	long unsigned int bio_cnt_reset_time;
56928 	atomic_t io_split_cnt[2];
56929 	atomic_t last_io_split_cnt[2];
56930 	struct blkg_rwstat stat_bytes;
56931 	struct blkg_rwstat stat_ios;
56932 };
56933 
56934 enum {
56935 	LIMIT_LOW = 0,
56936 	LIMIT_MAX = 1,
56937 	LIMIT_CNT = 2,
56938 };
56939 
56940 struct queue_sysfs_entry {
56941 	struct attribute attr;
56942 	ssize_t (*show)(struct request_queue *, char *);
56943 	ssize_t (*store)(struct request_queue *, const char *, size_t);
56944 };
56945 
56946 enum {
56947 	BLK_MQ_NO_TAG = 4294967295,
56948 	BLK_MQ_TAG_MIN = 1,
56949 	BLK_MQ_TAG_MAX = 4294967294,
56950 };
56951 
56952 enum {
56953 	REQ_FSEQ_PREFLUSH = 1,
56954 	REQ_FSEQ_DATA = 2,
56955 	REQ_FSEQ_POSTFLUSH = 4,
56956 	REQ_FSEQ_DONE = 8,
56957 	REQ_FSEQ_ACTIONS = 7,
56958 	FLUSH_PENDING_TIMEOUT = 5000,
56959 };
56960 
56961 struct rq_map_data {
56962 	struct page **pages;
56963 	int page_order;
56964 	int nr_entries;
56965 	long unsigned int offset;
56966 	int null_mapped;
56967 	int from_user;
56968 };
56969 
56970 struct bio_map_data {
56971 	bool is_our_pages: 1;
56972 	bool is_null_mapped: 1;
56973 	struct iov_iter iter;
56974 	struct iovec iov[0];
56975 };
56976 
56977 struct req_iterator {
56978 	struct bvec_iter iter;
56979 	struct bio *bio;
56980 };
56981 
56982 enum bio_merge_status {
56983 	BIO_MERGE_OK = 0,
56984 	BIO_MERGE_NONE = 1,
56985 	BIO_MERGE_FAILED = 2,
56986 };
56987 
56988 typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *);
56989 
56990 enum {
56991 	BLK_MQ_UNIQUE_TAG_BITS = 16,
56992 	BLK_MQ_UNIQUE_TAG_MASK = 65535,
56993 };
56994 
56995 struct mq_inflight {
56996 	struct block_device *part;
56997 	unsigned int inflight[2];
56998 };
56999 
57000 struct flush_busy_ctx_data {
57001 	struct blk_mq_hw_ctx *hctx;
57002 	struct list_head *list;
57003 };
57004 
57005 struct dispatch_rq_data {
57006 	struct blk_mq_hw_ctx *hctx;
57007 	struct request *rq;
57008 };
57009 
57010 enum prep_dispatch {
57011 	PREP_DISPATCH_OK = 0,
57012 	PREP_DISPATCH_NO_TAG = 1,
57013 	PREP_DISPATCH_NO_BUDGET = 2,
57014 };
57015 
57016 struct rq_iter_data {
57017 	struct blk_mq_hw_ctx *hctx;
57018 	bool has_rq;
57019 };
57020 
57021 struct blk_mq_qe_pair {
57022 	struct list_head node;
57023 	struct request_queue *q;
57024 	struct elevator_type *type;
57025 };
57026 
57027 struct sbq_wait {
57028 	struct sbitmap_queue *sbq;
57029 	struct wait_queue_entry wait;
57030 };
57031 
57032 typedef bool busy_tag_iter_fn(struct request *, void *, bool);
57033 
57034 struct bt_iter_data {
57035 	struct blk_mq_hw_ctx *hctx;
57036 	struct request_queue *q;
57037 	busy_tag_iter_fn *fn;
57038 	void *data;
57039 	bool reserved;
57040 };
57041 
57042 struct bt_tags_iter_data {
57043 	struct blk_mq_tags *tags;
57044 	busy_tag_iter_fn *fn;
57045 	void *data;
57046 	unsigned int flags;
57047 };
57048 
57049 struct blk_queue_stats {
57050 	struct list_head callbacks;
57051 	spinlock_t lock;
57052 	int accounting;
57053 };
57054 
57055 struct blk_mq_hw_ctx_sysfs_entry {
57056 	struct attribute attr;
57057 	ssize_t (*show)(struct blk_mq_hw_ctx *, char *);
57058 	ssize_t (*store)(struct blk_mq_hw_ctx *, const char *, size_t);
57059 };
57060 
57061 struct hd_geometry {
57062 	unsigned char heads;
57063 	unsigned char sectors;
57064 	short unsigned int cylinders;
57065 	long unsigned int start;
57066 };
57067 
57068 struct blkpg_ioctl_arg {
57069 	int op;
57070 	int flags;
57071 	int datalen;
57072 	void *data;
57073 };
57074 
57075 struct blkpg_partition {
57076 	long long int start;
57077 	long long int length;
57078 	int pno;
57079 	char devname[64];
57080 	char volname[64];
57081 };
57082 
57083 struct pr_reservation {
57084 	__u64 key;
57085 	__u32 type;
57086 	__u32 flags;
57087 };
57088 
57089 struct pr_registration {
57090 	__u64 old_key;
57091 	__u64 new_key;
57092 	__u32 flags;
57093 	__u32 __pad;
57094 };
57095 
57096 struct pr_preempt {
57097 	__u64 old_key;
57098 	__u64 new_key;
57099 	__u32 type;
57100 	__u32 flags;
57101 };
57102 
57103 struct pr_clear {
57104 	__u64 key;
57105 	__u32 flags;
57106 	__u32 __pad;
57107 };
57108 
57109 struct klist_node;
57110 
57111 struct klist {
57112 	spinlock_t k_lock;
57113 	struct list_head k_list;
57114 	void (*get)(struct klist_node *);
57115 	void (*put)(struct klist_node *);
57116 };
57117 
57118 struct klist_node {
57119 	void *n_klist;
57120 	struct list_head n_node;
57121 	struct kref n_ref;
57122 };
57123 
57124 struct klist_iter {
57125 	struct klist *i_klist;
57126 	struct klist_node *i_cur;
57127 };
57128 
57129 struct class_dev_iter {
57130 	struct klist_iter ki;
57131 	const struct device_type *type;
57132 };
57133 
57134 enum {
57135 	GENHD_FL_REMOVABLE = 1,
57136 	GENHD_FL_HIDDEN = 2,
57137 	GENHD_FL_NO_PART = 4,
57138 };
57139 
57140 struct badblocks {
57141 	struct device *dev;
57142 	int count;
57143 	int unacked_exist;
57144 	int shift;
57145 	u64 *page;
57146 	int changed;
57147 	seqlock_t lock;
57148 	sector_t sector;
57149 	sector_t size;
57150 };
57151 
57152 struct blk_major_name {
57153 	struct blk_major_name *next;
57154 	int major;
57155 	char name[16];
57156 	void (*probe)(dev_t);
57157 };
57158 
57159 enum {
57160 	IOPRIO_WHO_PROCESS = 1,
57161 	IOPRIO_WHO_PGRP = 2,
57162 	IOPRIO_WHO_USER = 3,
57163 };
57164 
57165 struct parsed_partitions {
57166 	struct gendisk *disk;
57167 	char name[32];
57168 	struct {
57169 		sector_t from;
57170 		sector_t size;
57171 		int flags;
57172 		bool has_info;
57173 		struct partition_meta_info info;
57174 	} *parts;
57175 	int next;
57176 	int limit;
57177 	bool access_beyond_eod;
57178 	char *pp_buf;
57179 };
57180 
57181 typedef struct {
57182 	struct page *v;
57183 } Sector;
57184 
57185 struct RigidDiskBlock {
57186 	__u32 rdb_ID;
57187 	__be32 rdb_SummedLongs;
57188 	__s32 rdb_ChkSum;
57189 	__u32 rdb_HostID;
57190 	__be32 rdb_BlockBytes;
57191 	__u32 rdb_Flags;
57192 	__u32 rdb_BadBlockList;
57193 	__be32 rdb_PartitionList;
57194 	__u32 rdb_FileSysHeaderList;
57195 	__u32 rdb_DriveInit;
57196 	__u32 rdb_Reserved1[6];
57197 	__u32 rdb_Cylinders;
57198 	__u32 rdb_Sectors;
57199 	__u32 rdb_Heads;
57200 	__u32 rdb_Interleave;
57201 	__u32 rdb_Park;
57202 	__u32 rdb_Reserved2[3];
57203 	__u32 rdb_WritePreComp;
57204 	__u32 rdb_ReducedWrite;
57205 	__u32 rdb_StepRate;
57206 	__u32 rdb_Reserved3[5];
57207 	__u32 rdb_RDBBlocksLo;
57208 	__u32 rdb_RDBBlocksHi;
57209 	__u32 rdb_LoCylinder;
57210 	__u32 rdb_HiCylinder;
57211 	__u32 rdb_CylBlocks;
57212 	__u32 rdb_AutoParkSeconds;
57213 	__u32 rdb_HighRDSKBlock;
57214 	__u32 rdb_Reserved4;
57215 	char rdb_DiskVendor[8];
57216 	char rdb_DiskProduct[16];
57217 	char rdb_DiskRevision[4];
57218 	char rdb_ControllerVendor[8];
57219 	char rdb_ControllerProduct[16];
57220 	char rdb_ControllerRevision[4];
57221 	__u32 rdb_Reserved5[10];
57222 };
57223 
57224 struct PartitionBlock {
57225 	__be32 pb_ID;
57226 	__be32 pb_SummedLongs;
57227 	__s32 pb_ChkSum;
57228 	__u32 pb_HostID;
57229 	__be32 pb_Next;
57230 	__u32 pb_Flags;
57231 	__u32 pb_Reserved1[2];
57232 	__u32 pb_DevFlags;
57233 	__u8 pb_DriveName[32];
57234 	__u32 pb_Reserved2[15];
57235 	__be32 pb_Environment[17];
57236 	__u32 pb_EReserved[15];
57237 };
57238 
57239 struct mac_partition {
57240 	__be16 signature;
57241 	__be16 res1;
57242 	__be32 map_count;
57243 	__be32 start_block;
57244 	__be32 block_count;
57245 	char name[32];
57246 	char type[32];
57247 	__be32 data_start;
57248 	__be32 data_count;
57249 	__be32 status;
57250 	__be32 boot_start;
57251 	__be32 boot_size;
57252 	__be32 boot_load;
57253 	__be32 boot_load2;
57254 	__be32 boot_entry;
57255 	__be32 boot_entry2;
57256 	__be32 boot_cksum;
57257 	char processor[16];
57258 };
57259 
57260 struct mac_driver_desc {
57261 	__be16 signature;
57262 	__be16 block_size;
57263 	__be32 block_count;
57264 };
57265 
57266 struct fat_boot_sector {
57267 	__u8 ignored[3];
57268 	__u8 system_id[8];
57269 	__u8 sector_size[2];
57270 	__u8 sec_per_clus;
57271 	__le16 reserved;
57272 	__u8 fats;
57273 	__u8 dir_entries[2];
57274 	__u8 sectors[2];
57275 	__u8 media;
57276 	__le16 fat_length;
57277 	__le16 secs_track;
57278 	__le16 heads;
57279 	__le32 hidden;
57280 	__le32 total_sect;
57281 	union {
57282 		struct {
57283 			__u8 drive_number;
57284 			__u8 state;
57285 			__u8 signature;
57286 			__u8 vol_id[4];
57287 			__u8 vol_label[11];
57288 			__u8 fs_type[8];
57289 		} fat16;
57290 		struct {
57291 			__le32 length;
57292 			__le16 flags;
57293 			__u8 version[2];
57294 			__le32 root_cluster;
57295 			__le16 info_sector;
57296 			__le16 backup_boot;
57297 			__le16 reserved2[6];
57298 			__u8 drive_number;
57299 			__u8 state;
57300 			__u8 signature;
57301 			__u8 vol_id[4];
57302 			__u8 vol_label[11];
57303 			__u8 fs_type[8];
57304 		} fat32;
57305 	};
57306 };
57307 
57308 struct msdos_partition {
57309 	u8 boot_ind;
57310 	u8 head;
57311 	u8 sector;
57312 	u8 cyl;
57313 	u8 sys_ind;
57314 	u8 end_head;
57315 	u8 end_sector;
57316 	u8 end_cyl;
57317 	__le32 start_sect;
57318 	__le32 nr_sects;
57319 };
57320 
57321 enum msdos_sys_ind {
57322 	DOS_EXTENDED_PARTITION = 5,
57323 	LINUX_EXTENDED_PARTITION = 133,
57324 	WIN98_EXTENDED_PARTITION = 15,
57325 	LINUX_DATA_PARTITION = 131,
57326 	LINUX_LVM_PARTITION = 142,
57327 	LINUX_RAID_PARTITION = 253,
57328 	SOLARIS_X86_PARTITION = 130,
57329 	NEW_SOLARIS_X86_PARTITION = 191,
57330 	DM6_AUX1PARTITION = 81,
57331 	DM6_AUX3PARTITION = 83,
57332 	DM6_PARTITION = 84,
57333 	EZD_PARTITION = 85,
57334 	FREEBSD_PARTITION = 165,
57335 	OPENBSD_PARTITION = 166,
57336 	NETBSD_PARTITION = 169,
57337 	BSDI_PARTITION = 183,
57338 	MINIX_PARTITION = 129,
57339 	UNIXWARE_PARTITION = 99,
57340 };
57341 
57342 struct solaris_x86_slice {
57343 	__le16 s_tag;
57344 	__le16 s_flag;
57345 	__le32 s_start;
57346 	__le32 s_size;
57347 };
57348 
57349 struct solaris_x86_vtoc {
57350 	unsigned int v_bootinfo[3];
57351 	__le32 v_sanity;
57352 	__le32 v_version;
57353 	char v_volume[8];
57354 	__le16 v_sectorsz;
57355 	__le16 v_nparts;
57356 	unsigned int v_reserved[10];
57357 	struct solaris_x86_slice v_slice[16];
57358 	unsigned int timestamp[16];
57359 	char v_asciilabel[128];
57360 };
57361 
57362 struct bsd_partition {
57363 	__le32 p_size;
57364 	__le32 p_offset;
57365 	__le32 p_fsize;
57366 	__u8 p_fstype;
57367 	__u8 p_frag;
57368 	__le16 p_cpg;
57369 };
57370 
57371 struct bsd_disklabel {
57372 	__le32 d_magic;
57373 	__s16 d_type;
57374 	__s16 d_subtype;
57375 	char d_typename[16];
57376 	char d_packname[16];
57377 	__u32 d_secsize;
57378 	__u32 d_nsectors;
57379 	__u32 d_ntracks;
57380 	__u32 d_ncylinders;
57381 	__u32 d_secpercyl;
57382 	__u32 d_secperunit;
57383 	__u16 d_sparespertrack;
57384 	__u16 d_sparespercyl;
57385 	__u32 d_acylinders;
57386 	__u16 d_rpm;
57387 	__u16 d_interleave;
57388 	__u16 d_trackskew;
57389 	__u16 d_cylskew;
57390 	__u32 d_headswitch;
57391 	__u32 d_trkseek;
57392 	__u32 d_flags;
57393 	__u32 d_drivedata[5];
57394 	__u32 d_spare[5];
57395 	__le32 d_magic2;
57396 	__le16 d_checksum;
57397 	__le16 d_npartitions;
57398 	__le32 d_bbsize;
57399 	__le32 d_sbsize;
57400 	struct bsd_partition d_partitions[16];
57401 };
57402 
57403 struct unixware_slice {
57404 	__le16 s_label;
57405 	__le16 s_flags;
57406 	__le32 start_sect;
57407 	__le32 nr_sects;
57408 };
57409 
57410 struct unixware_vtoc {
57411 	__le32 v_magic;
57412 	__le32 v_version;
57413 	char v_name[8];
57414 	__le16 v_nslices;
57415 	__le16 v_unknown1;
57416 	__le32 v_reserved[10];
57417 	struct unixware_slice v_slice[16];
57418 };
57419 
57420 struct unixware_disklabel {
57421 	__le32 d_type;
57422 	__le32 d_magic;
57423 	__le32 d_version;
57424 	char d_serial[12];
57425 	__le32 d_ncylinders;
57426 	__le32 d_ntracks;
57427 	__le32 d_nsectors;
57428 	__le32 d_secsize;
57429 	__le32 d_part_start;
57430 	__le32 d_unknown1[12];
57431 	__le32 d_alt_tbl;
57432 	__le32 d_alt_len;
57433 	__le32 d_phys_cyl;
57434 	__le32 d_phys_trk;
57435 	__le32 d_phys_sec;
57436 	__le32 d_phys_bytes;
57437 	__le32 d_unknown2;
57438 	__le32 d_unknown3;
57439 	__le32 d_pad[8];
57440 	struct unixware_vtoc vtoc;
57441 };
57442 
57443 struct d_partition {
57444 	__le32 p_size;
57445 	__le32 p_offset;
57446 	__le32 p_fsize;
57447 	u8 p_fstype;
57448 	u8 p_frag;
57449 	__le16 p_cpg;
57450 };
57451 
57452 struct disklabel {
57453 	__le32 d_magic;
57454 	__le16 d_type;
57455 	__le16 d_subtype;
57456 	u8 d_typename[16];
57457 	u8 d_packname[16];
57458 	__le32 d_secsize;
57459 	__le32 d_nsectors;
57460 	__le32 d_ntracks;
57461 	__le32 d_ncylinders;
57462 	__le32 d_secpercyl;
57463 	__le32 d_secprtunit;
57464 	__le16 d_sparespertrack;
57465 	__le16 d_sparespercyl;
57466 	__le32 d_acylinders;
57467 	__le16 d_rpm;
57468 	__le16 d_interleave;
57469 	__le16 d_trackskew;
57470 	__le16 d_cylskew;
57471 	__le32 d_headswitch;
57472 	__le32 d_trkseek;
57473 	__le32 d_flags;
57474 	__le32 d_drivedata[5];
57475 	__le32 d_spare[5];
57476 	__le32 d_magic2;
57477 	__le16 d_checksum;
57478 	__le16 d_npartitions;
57479 	__le32 d_bbsize;
57480 	__le32 d_sbsize;
57481 	struct d_partition d_partitions[18];
57482 };
57483 
57484 enum {
57485 	LINUX_RAID_PARTITION___2 = 253,
57486 };
57487 
57488 struct sgi_volume {
57489 	s8 name[8];
57490 	__be32 block_num;
57491 	__be32 num_bytes;
57492 };
57493 
57494 struct sgi_partition {
57495 	__be32 num_blocks;
57496 	__be32 first_block;
57497 	__be32 type;
57498 };
57499 
57500 struct sgi_disklabel {
57501 	__be32 magic_mushroom;
57502 	__be16 root_part_num;
57503 	__be16 swap_part_num;
57504 	s8 boot_file[16];
57505 	u8 _unused0[48];
57506 	struct sgi_volume volume[15];
57507 	struct sgi_partition partitions[16];
57508 	__be32 csum;
57509 	__be32 _unused1;
57510 };
57511 
57512 enum {
57513 	SUN_WHOLE_DISK = 5,
57514 	LINUX_RAID_PARTITION___3 = 253,
57515 };
57516 
57517 struct sun_info {
57518 	__be16 id;
57519 	__be16 flags;
57520 };
57521 
57522 struct sun_vtoc {
57523 	__be32 version;
57524 	char volume[8];
57525 	__be16 nparts;
57526 	struct sun_info infos[8];
57527 	__be16 padding;
57528 	__be32 bootinfo[3];
57529 	__be32 sanity;
57530 	__be32 reserved[10];
57531 	__be32 timestamp[8];
57532 };
57533 
57534 struct sun_partition {
57535 	__be32 start_cylinder;
57536 	__be32 num_sectors;
57537 };
57538 
57539 struct sun_disklabel {
57540 	unsigned char info[128];
57541 	struct sun_vtoc vtoc;
57542 	__be32 write_reinstruct;
57543 	__be32 read_reinstruct;
57544 	unsigned char spare[148];
57545 	__be16 rspeed;
57546 	__be16 pcylcount;
57547 	__be16 sparecyl;
57548 	__be16 obs1;
57549 	__be16 obs2;
57550 	__be16 ilfact;
57551 	__be16 ncyl;
57552 	__be16 nacyl;
57553 	__be16 ntrks;
57554 	__be16 nsect;
57555 	__be16 obs3;
57556 	__be16 obs4;
57557 	struct sun_partition partitions[8];
57558 	__be16 magic;
57559 	__be16 csum;
57560 };
57561 
57562 struct _gpt_header {
57563 	__le64 signature;
57564 	__le32 revision;
57565 	__le32 header_size;
57566 	__le32 header_crc32;
57567 	__le32 reserved1;
57568 	__le64 my_lba;
57569 	__le64 alternate_lba;
57570 	__le64 first_usable_lba;
57571 	__le64 last_usable_lba;
57572 	efi_guid_t disk_guid;
57573 	__le64 partition_entry_lba;
57574 	__le32 num_partition_entries;
57575 	__le32 sizeof_partition_entry;
57576 	__le32 partition_entry_array_crc32;
57577 } __attribute__((packed));
57578 
57579 typedef struct _gpt_header gpt_header;
57580 
57581 struct _gpt_entry_attributes {
57582 	u64 required_to_function: 1;
57583 	u64 reserved: 47;
57584 	u64 type_guid_specific: 16;
57585 };
57586 
57587 typedef struct _gpt_entry_attributes gpt_entry_attributes;
57588 
57589 struct _gpt_entry {
57590 	efi_guid_t partition_type_guid;
57591 	efi_guid_t unique_partition_guid;
57592 	__le64 starting_lba;
57593 	__le64 ending_lba;
57594 	gpt_entry_attributes attributes;
57595 	__le16 partition_name[36];
57596 };
57597 
57598 typedef struct _gpt_entry gpt_entry;
57599 
57600 struct _gpt_mbr_record {
57601 	u8 boot_indicator;
57602 	u8 start_head;
57603 	u8 start_sector;
57604 	u8 start_track;
57605 	u8 os_type;
57606 	u8 end_head;
57607 	u8 end_sector;
57608 	u8 end_track;
57609 	__le32 starting_lba;
57610 	__le32 size_in_lba;
57611 };
57612 
57613 typedef struct _gpt_mbr_record gpt_mbr_record;
57614 
57615 struct _legacy_mbr {
57616 	u8 boot_code[440];
57617 	__le32 unique_mbr_signature;
57618 	__le16 unknown;
57619 	gpt_mbr_record partition_record[4];
57620 	__le16 signature;
57621 } __attribute__((packed));
57622 
57623 typedef struct _legacy_mbr legacy_mbr;
57624 
57625 struct d_partition___2 {
57626 	__le32 p_res;
57627 	u8 p_fstype;
57628 	u8 p_res2[3];
57629 	__le32 p_offset;
57630 	__le32 p_size;
57631 };
57632 
57633 struct disklabel___2 {
57634 	u8 d_reserved[270];
57635 	struct d_partition___2 d_partitions[2];
57636 	u8 d_blank[208];
57637 	__le16 d_magic;
57638 } __attribute__((packed));
57639 
57640 struct rq_wait {
57641 	wait_queue_head_t wait;
57642 	atomic_t inflight;
57643 };
57644 
57645 struct rq_depth {
57646 	unsigned int max_depth;
57647 	int scale_step;
57648 	bool scaled_max;
57649 	unsigned int queue_depth;
57650 	unsigned int default_depth;
57651 };
57652 
57653 typedef bool acquire_inflight_cb_t(struct rq_wait *, void *);
57654 
57655 typedef void cleanup_cb_t(struct rq_wait *, void *);
57656 
57657 struct rq_qos_wait_data {
57658 	struct wait_queue_entry wq;
57659 	struct task_struct *task;
57660 	struct rq_wait *rqw;
57661 	acquire_inflight_cb_t *cb;
57662 	void *private_data;
57663 	bool got_token;
57664 };
57665 
57666 struct disk_events {
57667 	struct list_head node;
57668 	struct gendisk *disk;
57669 	spinlock_t lock;
57670 	struct mutex block_mutex;
57671 	int block;
57672 	unsigned int pending;
57673 	unsigned int clearing;
57674 	long int poll_msecs;
57675 	struct delayed_work dwork;
57676 };
57677 
57678 struct blk_ia_range_sysfs_entry {
57679 	struct attribute attr;
57680 	ssize_t (*show)(struct blk_independent_access_range *, char *);
57681 };
57682 
57683 struct sg_io_v4 {
57684 	__s32 guard;
57685 	__u32 protocol;
57686 	__u32 subprotocol;
57687 	__u32 request_len;
57688 	__u64 request;
57689 	__u64 request_tag;
57690 	__u32 request_attr;
57691 	__u32 request_priority;
57692 	__u32 request_extra;
57693 	__u32 max_response_len;
57694 	__u64 response;
57695 	__u32 dout_iovec_count;
57696 	__u32 dout_xfer_len;
57697 	__u32 din_iovec_count;
57698 	__u32 din_xfer_len;
57699 	__u64 dout_xferp;
57700 	__u64 din_xferp;
57701 	__u32 timeout;
57702 	__u32 flags;
57703 	__u64 usr_ptr;
57704 	__u32 spare_in;
57705 	__u32 driver_status;
57706 	__u32 transport_status;
57707 	__u32 device_status;
57708 	__u32 retry_delay;
57709 	__u32 info;
57710 	__u32 duration;
57711 	__u32 response_len;
57712 	__s32 din_resid;
57713 	__s32 dout_resid;
57714 	__u64 generated_tag;
57715 	__u32 spare_out;
57716 	__u32 padding;
57717 };
57718 
57719 typedef int bsg_sg_io_fn(struct request_queue *, struct sg_io_v4 *, fmode_t, unsigned int);
57720 
57721 struct bsg_device {
57722 	struct request_queue *queue;
57723 	struct device device;
57724 	struct cdev cdev;
57725 	int max_queue;
57726 	unsigned int timeout;
57727 	unsigned int reserved_size;
57728 	bsg_sg_io_fn *sg_io_fn;
57729 };
57730 
57731 struct blk_integrity_profile___2;
57732 
57733 struct bsg_job;
57734 
57735 typedef int bsg_job_fn(struct bsg_job *);
57736 
57737 struct bsg_buffer {
57738 	unsigned int payload_len;
57739 	int sg_cnt;
57740 	struct scatterlist *sg_list;
57741 };
57742 
57743 struct bsg_job {
57744 	struct device *dev;
57745 	struct kref kref;
57746 	unsigned int timeout;
57747 	void *request;
57748 	void *reply;
57749 	unsigned int request_len;
57750 	unsigned int reply_len;
57751 	struct bsg_buffer request_payload;
57752 	struct bsg_buffer reply_payload;
57753 	int result;
57754 	unsigned int reply_payload_rcv_len;
57755 	struct request *bidi_rq;
57756 	struct bio *bidi_bio;
57757 	void *dd_data;
57758 };
57759 
57760 typedef enum blk_eh_timer_return bsg_timeout_fn(struct request *);
57761 
57762 enum scsi_device_event {
57763 	SDEV_EVT_MEDIA_CHANGE = 1,
57764 	SDEV_EVT_INQUIRY_CHANGE_REPORTED = 2,
57765 	SDEV_EVT_CAPACITY_CHANGE_REPORTED = 3,
57766 	SDEV_EVT_SOFT_THRESHOLD_REACHED_REPORTED = 4,
57767 	SDEV_EVT_MODE_PARAMETER_CHANGE_REPORTED = 5,
57768 	SDEV_EVT_LUN_CHANGE_REPORTED = 6,
57769 	SDEV_EVT_ALUA_STATE_CHANGE_REPORTED = 7,
57770 	SDEV_EVT_POWER_ON_RESET_OCCURRED = 8,
57771 	SDEV_EVT_FIRST = 1,
57772 	SDEV_EVT_LAST = 8,
57773 	SDEV_EVT_MAXBITS = 9,
57774 };
57775 
57776 struct bsg_device___2;
57777 
57778 struct bsg_set {
57779 	struct blk_mq_tag_set tag_set;
57780 	struct bsg_device___2 *bd;
57781 	bsg_job_fn *job_fn;
57782 	bsg_timeout_fn *timeout_fn;
57783 };
57784 
57785 struct blkg_conf_ctx {
57786 	struct block_device *bdev;
57787 	struct blkcg_gq *blkg;
57788 	char *body;
57789 };
57790 
57791 struct blkg_rwstat_sample {
57792 	u64 cnt[5];
57793 };
57794 
57795 struct latency_bucket {
57796 	long unsigned int total_latency;
57797 	int samples;
57798 };
57799 
57800 struct avg_latency_bucket {
57801 	long unsigned int latency;
57802 	bool valid;
57803 };
57804 
57805 struct throtl_data {
57806 	struct throtl_service_queue service_queue;
57807 	struct request_queue *queue;
57808 	unsigned int nr_queued[2];
57809 	unsigned int throtl_slice;
57810 	struct work_struct dispatch_work;
57811 	unsigned int limit_index;
57812 	bool limit_valid[2];
57813 	long unsigned int low_upgrade_time;
57814 	long unsigned int low_downgrade_time;
57815 	unsigned int scale;
57816 	struct latency_bucket tmp_buckets[18];
57817 	struct avg_latency_bucket avg_buckets[18];
57818 	struct latency_bucket *latency_buckets[2];
57819 	long unsigned int last_calculate_time;
57820 	long unsigned int filtered_latency;
57821 	bool track_bio_latency;
57822 };
57823 
57824 enum tg_state_flags {
57825 	THROTL_TG_PENDING = 1,
57826 	THROTL_TG_WAS_EMPTY = 2,
57827 };
57828 
57829 struct blk_iolatency {
57830 	struct rq_qos rqos;
57831 	struct timer_list timer;
57832 	atomic_t enabled;
57833 };
57834 
57835 struct iolatency_grp;
57836 
57837 struct child_latency_info {
57838 	spinlock_t lock;
57839 	u64 last_scale_event;
57840 	u64 scale_lat;
57841 	u64 nr_samples;
57842 	struct iolatency_grp *scale_grp;
57843 	atomic_t scale_cookie;
57844 };
57845 
57846 struct percentile_stats {
57847 	u64 total;
57848 	u64 missed;
57849 };
57850 
57851 struct latency_stat {
57852 	union {
57853 		struct percentile_stats ps;
57854 		struct blk_rq_stat rqs;
57855 	};
57856 };
57857 
57858 struct iolatency_grp {
57859 	struct blkg_policy_data pd;
57860 	struct latency_stat *stats;
57861 	struct latency_stat cur_stat;
57862 	struct blk_iolatency *blkiolat;
57863 	struct rq_depth rq_depth;
57864 	struct rq_wait rq_wait;
57865 	atomic64_t window_start;
57866 	atomic_t scale_cookie;
57867 	u64 min_lat_nsec;
57868 	u64 cur_win_nsec;
57869 	u64 lat_avg;
57870 	u64 nr_samples;
57871 	bool ssd;
57872 	struct child_latency_info child_lat;
57873 };
57874 
57875 enum dd_data_dir {
57876 	DD_READ = 0,
57877 	DD_WRITE = 1,
57878 };
57879 
57880 enum {
57881 	DD_DIR_COUNT = 2,
57882 };
57883 
57884 enum dd_prio {
57885 	DD_RT_PRIO = 0,
57886 	DD_BE_PRIO = 1,
57887 	DD_IDLE_PRIO = 2,
57888 	DD_PRIO_MAX = 2,
57889 };
57890 
57891 enum {
57892 	DD_PRIO_COUNT = 3,
57893 };
57894 
57895 struct io_stats_per_prio {
57896 	uint32_t inserted;
57897 	uint32_t merged;
57898 	uint32_t dispatched;
57899 	atomic_t completed;
57900 };
57901 
57902 struct dd_per_prio {
57903 	struct list_head dispatch;
57904 	struct rb_root sort_list[2];
57905 	struct list_head fifo_list[2];
57906 	struct request *next_rq[2];
57907 	struct io_stats_per_prio stats;
57908 };
57909 
57910 struct deadline_data {
57911 	struct dd_per_prio per_prio[3];
57912 	enum dd_data_dir last_dir;
57913 	unsigned int batching;
57914 	unsigned int starved;
57915 	int fifo_expire[2];
57916 	int fifo_batch;
57917 	int writes_starved;
57918 	int front_merges;
57919 	u32 async_depth;
57920 	int prio_aging_expire;
57921 	spinlock_t lock;
57922 	spinlock_t zone_lock;
57923 };
57924 
57925 struct trace_event_raw_kyber_latency {
57926 	struct trace_entry ent;
57927 	dev_t dev;
57928 	char domain[16];
57929 	char type[8];
57930 	u8 percentile;
57931 	u8 numerator;
57932 	u8 denominator;
57933 	unsigned int samples;
57934 	char __data[0];
57935 };
57936 
57937 struct trace_event_raw_kyber_adjust {
57938 	struct trace_entry ent;
57939 	dev_t dev;
57940 	char domain[16];
57941 	unsigned int depth;
57942 	char __data[0];
57943 };
57944 
57945 struct trace_event_raw_kyber_throttled {
57946 	struct trace_entry ent;
57947 	dev_t dev;
57948 	char domain[16];
57949 	char __data[0];
57950 };
57951 
57952 struct trace_event_data_offsets_kyber_latency {};
57953 
57954 struct trace_event_data_offsets_kyber_adjust {};
57955 
57956 struct trace_event_data_offsets_kyber_throttled {};
57957 
57958 typedef void (*btf_trace_kyber_latency)(void *, dev_t, const char *, const char *, unsigned int, unsigned int, unsigned int, unsigned int);
57959 
57960 typedef void (*btf_trace_kyber_adjust)(void *, dev_t, const char *, unsigned int);
57961 
57962 typedef void (*btf_trace_kyber_throttled)(void *, dev_t, const char *);
57963 
57964 enum {
57965 	KYBER_READ = 0,
57966 	KYBER_WRITE = 1,
57967 	KYBER_DISCARD = 2,
57968 	KYBER_OTHER = 3,
57969 	KYBER_NUM_DOMAINS = 4,
57970 };
57971 
57972 enum {
57973 	KYBER_ASYNC_PERCENT = 75,
57974 };
57975 
57976 enum {
57977 	KYBER_LATENCY_SHIFT = 2,
57978 	KYBER_GOOD_BUCKETS = 4,
57979 	KYBER_LATENCY_BUCKETS = 8,
57980 };
57981 
57982 enum {
57983 	KYBER_TOTAL_LATENCY = 0,
57984 	KYBER_IO_LATENCY = 1,
57985 };
57986 
57987 struct kyber_cpu_latency {
57988 	atomic_t buckets[48];
57989 };
57990 
57991 struct kyber_ctx_queue {
57992 	spinlock_t lock;
57993 	struct list_head rq_list[4];
57994 };
57995 
57996 struct kyber_queue_data {
57997 	struct request_queue *q;
57998 	dev_t dev;
57999 	struct sbitmap_queue domain_tokens[4];
58000 	unsigned int async_depth;
58001 	struct kyber_cpu_latency *cpu_latency;
58002 	struct timer_list timer;
58003 	unsigned int latency_buckets[48];
58004 	long unsigned int latency_timeout[3];
58005 	int domain_p99[3];
58006 	u64 latency_targets[3];
58007 };
58008 
58009 struct kyber_hctx_data {
58010 	spinlock_t lock;
58011 	struct list_head rqs[4];
58012 	unsigned int cur_domain;
58013 	unsigned int batching;
58014 	struct kyber_ctx_queue *kcqs;
58015 	struct sbitmap kcq_map[4];
58016 	struct sbq_wait domain_wait[4];
58017 	struct sbq_wait_state *domain_ws[4];
58018 	atomic_t wait_index[4];
58019 };
58020 
58021 struct flush_kcq_data {
58022 	struct kyber_hctx_data *khd;
58023 	unsigned int sched_domain;
58024 	struct list_head *list;
58025 };
58026 
58027 struct virtio_device_id {
58028 	__u32 device;
58029 	__u32 vendor;
58030 };
58031 
58032 struct virtio_device;
58033 
58034 struct virtqueue {
58035 	struct list_head list;
58036 	void (*callback)(struct virtqueue *);
58037 	const char *name;
58038 	struct virtio_device *vdev;
58039 	unsigned int index;
58040 	unsigned int num_free;
58041 	void *priv;
58042 };
58043 
58044 struct vringh_config_ops;
58045 
58046 struct virtio_config_ops;
58047 
58048 struct virtio_device {
58049 	int index;
58050 	bool failed;
58051 	bool config_enabled;
58052 	bool config_change_pending;
58053 	spinlock_t config_lock;
58054 	spinlock_t vqs_list_lock;
58055 	struct device dev;
58056 	struct virtio_device_id id;
58057 	const struct virtio_config_ops *config;
58058 	const struct vringh_config_ops *vringh_config;
58059 	struct list_head vqs;
58060 	u64 features;
58061 	void *priv;
58062 };
58063 
58064 typedef void vq_callback_t(struct virtqueue *);
58065 
58066 struct virtio_shm_region;
58067 
58068 struct virtio_config_ops {
58069 	void (*enable_cbs)(struct virtio_device *);
58070 	void (*get)(struct virtio_device *, unsigned int, void *, unsigned int);
58071 	void (*set)(struct virtio_device *, unsigned int, const void *, unsigned int);
58072 	u32 (*generation)(struct virtio_device *);
58073 	u8 (*get_status)(struct virtio_device *);
58074 	void (*set_status)(struct virtio_device *, u8);
58075 	void (*reset)(struct virtio_device *);
58076 	int (*find_vqs)(struct virtio_device *, unsigned int, struct virtqueue **, vq_callback_t **, const char * const *, const bool *, struct irq_affinity *);
58077 	void (*del_vqs)(struct virtio_device *);
58078 	u64 (*get_features)(struct virtio_device *);
58079 	int (*finalize_features)(struct virtio_device *);
58080 	const char * (*bus_name)(struct virtio_device *);
58081 	int (*set_vq_affinity)(struct virtqueue *, const struct cpumask *);
58082 	const struct cpumask * (*get_vq_affinity)(struct virtio_device *, int);
58083 	bool (*get_shm_region)(struct virtio_device *, struct virtio_shm_region *, u8);
58084 };
58085 
58086 struct virtio_shm_region {
58087 	u64 addr;
58088 	u64 len;
58089 };
58090 
58091 struct show_busy_params {
58092 	struct seq_file *m;
58093 	struct blk_mq_hw_ctx *hctx;
58094 };
58095 
58096 typedef void (*swap_func_t)(void *, void *, int);
58097 
58098 typedef int (*cmp_r_func_t)(const void *, const void *, const void *);
58099 
58100 struct random_ready_callback {
58101 	struct list_head list;
58102 	void (*func)(struct random_ready_callback *);
58103 	struct module *owner;
58104 };
58105 
58106 struct siprand_state {
58107 	long unsigned int v0;
58108 	long unsigned int v1;
58109 	long unsigned int v2;
58110 	long unsigned int v3;
58111 };
58112 
58113 typedef __kernel_long_t __kernel_ptrdiff_t;
58114 
58115 typedef __kernel_ptrdiff_t ptrdiff_t;
58116 
58117 struct region {
58118 	unsigned int start;
58119 	unsigned int off;
58120 	unsigned int group_len;
58121 	unsigned int end;
58122 	unsigned int nbits;
58123 };
58124 
58125 enum {
58126 	REG_OP_ISFREE = 0,
58127 	REG_OP_ALLOC = 1,
58128 	REG_OP_RELEASE = 2,
58129 };
58130 
58131 struct sg_append_table {
58132 	struct sg_table sgt;
58133 	struct scatterlist *prv;
58134 	unsigned int total_nents;
58135 };
58136 
58137 typedef struct scatterlist *sg_alloc_fn(unsigned int, gfp_t);
58138 
58139 typedef void sg_free_fn(struct scatterlist *, unsigned int);
58140 
58141 struct sg_page_iter {
58142 	struct scatterlist *sg;
58143 	unsigned int sg_pgoffset;
58144 	unsigned int __nents;
58145 	int __pg_advance;
58146 };
58147 
58148 struct sg_dma_page_iter {
58149 	struct sg_page_iter base;
58150 };
58151 
58152 struct sg_mapping_iter {
58153 	struct page *page;
58154 	void *addr;
58155 	size_t length;
58156 	size_t consumed;
58157 	struct sg_page_iter piter;
58158 	unsigned int __offset;
58159 	unsigned int __remaining;
58160 	unsigned int __flags;
58161 };
58162 
58163 typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *);
58164 
58165 struct csum_state {
58166 	__wsum csum;
58167 	size_t off;
58168 };
58169 
58170 typedef s32 compat_ssize_t;
58171 
58172 struct compat_iovec {
58173 	compat_uptr_t iov_base;
58174 	compat_size_t iov_len;
58175 };
58176 
58177 struct rhashtable_walker {
58178 	struct list_head list;
58179 	struct bucket_table *tbl;
58180 };
58181 
58182 struct rhashtable_iter {
58183 	struct rhashtable *ht;
58184 	struct rhash_head *p;
58185 	struct rhlist_head *list;
58186 	struct rhashtable_walker walker;
58187 	unsigned int slot;
58188 	unsigned int skip;
58189 	bool end_of_table;
58190 };
58191 
58192 union nested_table {
58193 	union nested_table *table;
58194 	struct rhash_lock_head *bucket;
58195 };
58196 
58197 struct once_work {
58198 	struct work_struct work;
58199 	struct static_key_true *key;
58200 	struct module *module;
58201 };
58202 
58203 struct genradix_iter {
58204 	size_t offset;
58205 	size_t pos;
58206 };
58207 
58208 struct genradix_node {
58209 	union {
58210 		struct genradix_node *children[512];
58211 		u8 data[4096];
58212 	};
58213 };
58214 
58215 struct strarray {
58216 	char **array;
58217 	size_t n;
58218 };
58219 
58220 struct reciprocal_value_adv {
58221 	u32 m;
58222 	u8 sh;
58223 	u8 exp;
58224 	bool is_wide_m;
58225 };
58226 
58227 enum blake2s_lengths {
58228 	BLAKE2S_BLOCK_SIZE = 64,
58229 	BLAKE2S_HASH_SIZE = 32,
58230 	BLAKE2S_KEY_SIZE = 32,
58231 	BLAKE2S_128_HASH_SIZE = 16,
58232 	BLAKE2S_160_HASH_SIZE = 20,
58233 	BLAKE2S_224_HASH_SIZE = 28,
58234 	BLAKE2S_256_HASH_SIZE = 32,
58235 };
58236 
58237 struct blake2s_state {
58238 	u32 h[8];
58239 	u32 t[2];
58240 	u32 f[2];
58241 	u8 buf[64];
58242 	unsigned int buflen;
58243 	unsigned int outlen;
58244 };
58245 
58246 typedef void (*blake2s_compress_t)(struct blake2s_state *, const u8 *, size_t, u32);
58247 
58248 enum blake2s_iv {
58249 	BLAKE2S_IV0 = 1779033703,
58250 	BLAKE2S_IV1 = 3144134277,
58251 	BLAKE2S_IV2 = 1013904242,
58252 	BLAKE2S_IV3 = 2773480762,
58253 	BLAKE2S_IV4 = 1359893119,
58254 	BLAKE2S_IV5 = 2600822924,
58255 	BLAKE2S_IV6 = 528734635,
58256 	BLAKE2S_IV7 = 1541459225,
58257 };
58258 
58259 enum devm_ioremap_type {
58260 	DEVM_IOREMAP = 0,
58261 	DEVM_IOREMAP_UC = 1,
58262 	DEVM_IOREMAP_WC = 2,
58263 	DEVM_IOREMAP_NP = 3,
58264 };
58265 
58266 struct pcim_iomap_devres {
58267 	void *table[6];
58268 };
58269 
58270 struct arch_io_reserve_memtype_wc_devres {
58271 	resource_size_t start;
58272 	resource_size_t size;
58273 };
58274 
58275 enum assoc_array_walk_status {
58276 	assoc_array_walk_tree_empty = 0,
58277 	assoc_array_walk_found_terminal_node = 1,
58278 	assoc_array_walk_found_wrong_shortcut = 2,
58279 };
58280 
58281 struct assoc_array_walk_result {
58282 	struct {
58283 		struct assoc_array_node *node;
58284 		int level;
58285 		int slot;
58286 	} terminal_node;
58287 	struct {
58288 		struct assoc_array_shortcut *shortcut;
58289 		int level;
58290 		int sc_level;
58291 		long unsigned int sc_segments;
58292 		long unsigned int dissimilarity;
58293 	} wrong_shortcut;
58294 };
58295 
58296 struct assoc_array_delete_collapse_context {
58297 	struct assoc_array_node *node;
58298 	const void *skip_leaf;
58299 	int slot;
58300 };
58301 
58302 struct xxh32_state {
58303 	uint32_t total_len_32;
58304 	uint32_t large_len;
58305 	uint32_t v1;
58306 	uint32_t v2;
58307 	uint32_t v3;
58308 	uint32_t v4;
58309 	uint32_t mem32[4];
58310 	uint32_t memsize;
58311 };
58312 
58313 struct gen_pool_chunk {
58314 	struct list_head next_chunk;
58315 	atomic_long_t avail;
58316 	phys_addr_t phys_addr;
58317 	void *owner;
58318 	long unsigned int start_addr;
58319 	long unsigned int end_addr;
58320 	long unsigned int bits[0];
58321 };
58322 
58323 struct genpool_data_align {
58324 	int align;
58325 };
58326 
58327 struct genpool_data_fixed {
58328 	long unsigned int offset;
58329 };
58330 
58331 typedef unsigned char Byte;
58332 
58333 typedef long unsigned int uLong;
58334 
58335 struct internal_state;
58336 
58337 struct z_stream_s {
58338 	const Byte *next_in;
58339 	uLong avail_in;
58340 	uLong total_in;
58341 	Byte *next_out;
58342 	uLong avail_out;
58343 	uLong total_out;
58344 	char *msg;
58345 	struct internal_state *state;
58346 	void *workspace;
58347 	int data_type;
58348 	uLong adler;
58349 	uLong reserved;
58350 };
58351 
58352 typedef struct z_stream_s z_stream;
58353 
58354 typedef z_stream *z_streamp;
58355 
58356 typedef struct {
58357 	unsigned char op;
58358 	unsigned char bits;
58359 	short unsigned int val;
58360 } code;
58361 
58362 typedef enum {
58363 	HEAD = 0,
58364 	FLAGS = 1,
58365 	TIME = 2,
58366 	OS = 3,
58367 	EXLEN = 4,
58368 	EXTRA = 5,
58369 	NAME = 6,
58370 	COMMENT = 7,
58371 	HCRC = 8,
58372 	DICTID = 9,
58373 	DICT = 10,
58374 	TYPE = 11,
58375 	TYPEDO = 12,
58376 	STORED = 13,
58377 	COPY = 14,
58378 	TABLE = 15,
58379 	LENLENS = 16,
58380 	CODELENS = 17,
58381 	LEN = 18,
58382 	LENEXT = 19,
58383 	DIST = 20,
58384 	DISTEXT = 21,
58385 	MATCH = 22,
58386 	LIT = 23,
58387 	CHECK = 24,
58388 	LENGTH = 25,
58389 	DONE = 26,
58390 	BAD = 27,
58391 	MEM = 28,
58392 	SYNC = 29,
58393 } inflate_mode;
58394 
58395 struct inflate_state {
58396 	inflate_mode mode;
58397 	int last;
58398 	int wrap;
58399 	int havedict;
58400 	int flags;
58401 	unsigned int dmax;
58402 	long unsigned int check;
58403 	long unsigned int total;
58404 	unsigned int wbits;
58405 	unsigned int wsize;
58406 	unsigned int whave;
58407 	unsigned int write;
58408 	unsigned char *window;
58409 	long unsigned int hold;
58410 	unsigned int bits;
58411 	unsigned int length;
58412 	unsigned int offset;
58413 	unsigned int extra;
58414 	const code *lencode;
58415 	const code *distcode;
58416 	unsigned int lenbits;
58417 	unsigned int distbits;
58418 	unsigned int ncode;
58419 	unsigned int nlen;
58420 	unsigned int ndist;
58421 	unsigned int have;
58422 	code *next;
58423 	short unsigned int lens[320];
58424 	short unsigned int work[288];
58425 	code codes[2048];
58426 };
58427 
58428 union uu {
58429 	short unsigned int us;
58430 	unsigned char b[2];
58431 };
58432 
58433 typedef unsigned int uInt;
58434 
58435 struct inflate_workspace {
58436 	struct inflate_state inflate_state;
58437 	unsigned char working_window[32768];
58438 };
58439 
58440 typedef enum {
58441 	CODES = 0,
58442 	LENS = 1,
58443 	DISTS = 2,
58444 } codetype;
58445 
58446 typedef struct {
58447 	const uint8_t *externalDict;
58448 	size_t extDictSize;
58449 	const uint8_t *prefixEnd;
58450 	size_t prefixSize;
58451 } LZ4_streamDecode_t_internal;
58452 
58453 typedef union {
58454 	long long unsigned int table[4];
58455 	LZ4_streamDecode_t_internal internal_donotuse;
58456 } LZ4_streamDecode_t;
58457 
58458 typedef uint8_t BYTE;
58459 
58460 typedef uint16_t U16;
58461 
58462 typedef uint32_t U32;
58463 
58464 typedef uint64_t U64;
58465 
58466 typedef uintptr_t uptrval;
58467 
58468 typedef enum {
58469 	noDict = 0,
58470 	withPrefix64k = 1,
58471 	usingExtDict = 2,
58472 } dict_directive;
58473 
58474 typedef enum {
58475 	endOnOutputSize = 0,
58476 	endOnInputSize = 1,
58477 } endCondition_directive;
58478 
58479 typedef enum {
58480 	decode_full_block = 0,
58481 	partial_decode = 1,
58482 } earlyEnd_directive;
58483 
58484 typedef enum {
58485 	ZSTD_error_no_error = 0,
58486 	ZSTD_error_GENERIC = 1,
58487 	ZSTD_error_prefix_unknown = 10,
58488 	ZSTD_error_version_unsupported = 12,
58489 	ZSTD_error_frameParameter_unsupported = 14,
58490 	ZSTD_error_frameParameter_windowTooLarge = 16,
58491 	ZSTD_error_corruption_detected = 20,
58492 	ZSTD_error_checksum_wrong = 22,
58493 	ZSTD_error_dictionary_corrupted = 30,
58494 	ZSTD_error_dictionary_wrong = 32,
58495 	ZSTD_error_dictionaryCreation_failed = 34,
58496 	ZSTD_error_parameter_unsupported = 40,
58497 	ZSTD_error_parameter_outOfBound = 42,
58498 	ZSTD_error_tableLog_tooLarge = 44,
58499 	ZSTD_error_maxSymbolValue_tooLarge = 46,
58500 	ZSTD_error_maxSymbolValue_tooSmall = 48,
58501 	ZSTD_error_stage_wrong = 60,
58502 	ZSTD_error_init_missing = 62,
58503 	ZSTD_error_memory_allocation = 64,
58504 	ZSTD_error_workSpace_tooSmall = 66,
58505 	ZSTD_error_dstSize_tooSmall = 70,
58506 	ZSTD_error_srcSize_wrong = 72,
58507 	ZSTD_error_dstBuffer_null = 74,
58508 	ZSTD_error_frameIndex_tooLarge = 100,
58509 	ZSTD_error_seekableIO = 102,
58510 	ZSTD_error_dstBuffer_wrong = 104,
58511 	ZSTD_error_srcBuffer_wrong = 105,
58512 	ZSTD_error_maxCode = 120,
58513 } ZSTD_ErrorCode;
58514 
58515 struct ZSTD_DCtx_s;
58516 
58517 typedef struct ZSTD_DCtx_s ZSTD_DCtx;
58518 
58519 struct ZSTD_inBuffer_s {
58520 	const void *src;
58521 	size_t size;
58522 	size_t pos;
58523 };
58524 
58525 typedef struct ZSTD_inBuffer_s ZSTD_inBuffer;
58526 
58527 struct ZSTD_outBuffer_s {
58528 	void *dst;
58529 	size_t size;
58530 	size_t pos;
58531 };
58532 
58533 typedef struct ZSTD_outBuffer_s ZSTD_outBuffer;
58534 
58535 typedef ZSTD_DCtx ZSTD_DStream;
58536 
58537 typedef void * (*ZSTD_allocFunction)(void *, size_t);
58538 
58539 typedef void (*ZSTD_freeFunction)(void *, void *);
58540 
58541 typedef struct {
58542 	ZSTD_allocFunction customAlloc;
58543 	ZSTD_freeFunction customFree;
58544 	void *opaque;
58545 } ZSTD_customMem;
58546 
58547 typedef enum {
58548 	ZSTD_frame = 0,
58549 	ZSTD_skippableFrame = 1,
58550 } ZSTD_frameType_e;
58551 
58552 typedef struct {
58553 	long long unsigned int frameContentSize;
58554 	long long unsigned int windowSize;
58555 	unsigned int blockSizeMax;
58556 	ZSTD_frameType_e frameType;
58557 	unsigned int headerSize;
58558 	unsigned int dictID;
58559 	unsigned int checksumFlag;
58560 } ZSTD_frameHeader;
58561 
58562 typedef ZSTD_ErrorCode zstd_error_code;
58563 
58564 typedef ZSTD_DCtx zstd_dctx;
58565 
58566 typedef ZSTD_inBuffer zstd_in_buffer;
58567 
58568 typedef ZSTD_outBuffer zstd_out_buffer;
58569 
58570 typedef ZSTD_DStream zstd_dstream;
58571 
58572 typedef ZSTD_frameHeader zstd_frame_header;
58573 
58574 typedef ZSTD_ErrorCode ERR_enum;
58575 
58576 typedef s16 int16_t;
58577 
58578 typedef int16_t S16;
58579 
58580 typedef struct {
58581 	size_t bitContainer;
58582 	unsigned int bitsConsumed;
58583 	const char *ptr;
58584 	const char *start;
58585 	const char *limitPtr;
58586 } BIT_DStream_t;
58587 
58588 typedef enum {
58589 	BIT_DStream_unfinished = 0,
58590 	BIT_DStream_endOfBuffer = 1,
58591 	BIT_DStream_completed = 2,
58592 	BIT_DStream_overflow = 3,
58593 } BIT_DStream_status;
58594 
58595 typedef unsigned int FSE_DTable;
58596 
58597 typedef struct {
58598 	size_t state;
58599 	const void *table;
58600 } FSE_DState_t;
58601 
58602 typedef struct {
58603 	U16 tableLog;
58604 	U16 fastMode;
58605 } FSE_DTableHeader;
58606 
58607 typedef struct {
58608 	short unsigned int newState;
58609 	unsigned char symbol;
58610 	unsigned char nbBits;
58611 } FSE_decode_t;
58612 
58613 typedef struct {
58614 	short int ncount[256];
58615 	FSE_DTable dtable[1];
58616 } FSE_DecompressWksp;
58617 
58618 typedef U32 HUF_DTable;
58619 
58620 typedef struct {
58621 	BYTE maxTableLog;
58622 	BYTE tableType;
58623 	BYTE tableLog;
58624 	BYTE reserved;
58625 } DTableDesc;
58626 
58627 typedef struct {
58628 	BYTE byte;
58629 	BYTE nbBits;
58630 } HUF_DEltX1;
58631 
58632 typedef struct {
58633 	U32 rankVal[16];
58634 	U32 rankStart[16];
58635 	U32 statsWksp[218];
58636 	BYTE symbols[256];
58637 	BYTE huffWeight[256];
58638 } HUF_ReadDTableX1_Workspace;
58639 
58640 typedef struct {
58641 	U16 sequence;
58642 	BYTE nbBits;
58643 	BYTE length;
58644 } HUF_DEltX2;
58645 
58646 typedef struct {
58647 	BYTE symbol;
58648 	BYTE weight;
58649 } sortedSymbol_t;
58650 
58651 typedef U32 rankValCol_t[13];
58652 
58653 typedef struct {
58654 	U32 rankVal[156];
58655 	U32 rankStats[13];
58656 	U32 rankStart0[14];
58657 	sortedSymbol_t sortedSymbol[256];
58658 	BYTE weightList[256];
58659 	U32 calleeWksp[218];
58660 } HUF_ReadDTableX2_Workspace;
58661 
58662 typedef struct {
58663 	U32 tableTime;
58664 	U32 decode256Time;
58665 } algo_time_t;
58666 
58667 typedef struct {
58668 	U16 nextState;
58669 	BYTE nbAdditionalBits;
58670 	BYTE nbBits;
58671 	U32 baseValue;
58672 } ZSTD_seqSymbol;
58673 
58674 typedef struct {
58675 	ZSTD_seqSymbol LLTable[513];
58676 	ZSTD_seqSymbol OFTable[257];
58677 	ZSTD_seqSymbol MLTable[513];
58678 	HUF_DTable hufTable[4097];
58679 	U32 rep[3];
58680 	U32 workspace[157];
58681 } ZSTD_entropyDTables_t;
58682 
58683 typedef enum {
58684 	bt_raw = 0,
58685 	bt_rle = 1,
58686 	bt_compressed = 2,
58687 	bt_reserved = 3,
58688 } blockType_e;
58689 
58690 typedef enum {
58691 	ZSTDds_getFrameHeaderSize = 0,
58692 	ZSTDds_decodeFrameHeader = 1,
58693 	ZSTDds_decodeBlockHeader = 2,
58694 	ZSTDds_decompressBlock = 3,
58695 	ZSTDds_decompressLastBlock = 4,
58696 	ZSTDds_checkChecksum = 5,
58697 	ZSTDds_decodeSkippableHeader = 6,
58698 	ZSTDds_skipFrame = 7,
58699 } ZSTD_dStage;
58700 
58701 typedef enum {
58702 	ZSTD_f_zstd1 = 0,
58703 	ZSTD_f_zstd1_magicless = 1,
58704 } ZSTD_format_e;
58705 
58706 typedef enum {
58707 	ZSTD_d_validateChecksum = 0,
58708 	ZSTD_d_ignoreChecksum = 1,
58709 } ZSTD_forceIgnoreChecksum_e;
58710 
58711 typedef enum {
58712 	ZSTD_use_indefinitely = 4294967295,
58713 	ZSTD_dont_use = 0,
58714 	ZSTD_use_once = 1,
58715 } ZSTD_dictUses_e;
58716 
58717 struct ZSTD_DDict_s;
58718 
58719 typedef struct ZSTD_DDict_s ZSTD_DDict;
58720 
58721 typedef struct {
58722 	const ZSTD_DDict **ddictPtrTable;
58723 	size_t ddictPtrTableSize;
58724 	size_t ddictPtrCount;
58725 } ZSTD_DDictHashSet;
58726 
58727 typedef enum {
58728 	ZSTD_rmd_refSingleDDict = 0,
58729 	ZSTD_rmd_refMultipleDDicts = 1,
58730 } ZSTD_refMultipleDDicts_e;
58731 
58732 typedef enum {
58733 	zdss_init = 0,
58734 	zdss_loadHeader = 1,
58735 	zdss_read = 2,
58736 	zdss_load = 3,
58737 	zdss_flush = 4,
58738 } ZSTD_dStreamStage;
58739 
58740 typedef enum {
58741 	ZSTD_bm_buffered = 0,
58742 	ZSTD_bm_stable = 1,
58743 } ZSTD_bufferMode_e;
58744 
58745 struct ZSTD_DCtx_s___2 {
58746 	const ZSTD_seqSymbol *LLTptr;
58747 	const ZSTD_seqSymbol *MLTptr;
58748 	const ZSTD_seqSymbol *OFTptr;
58749 	const HUF_DTable *HUFptr;
58750 	ZSTD_entropyDTables_t entropy;
58751 	U32 workspace[640];
58752 	const void *previousDstEnd;
58753 	const void *prefixStart;
58754 	const void *virtualStart;
58755 	const void *dictEnd;
58756 	size_t expected;
58757 	ZSTD_frameHeader fParams;
58758 	U64 processedCSize;
58759 	U64 decodedSize;
58760 	blockType_e bType;
58761 	ZSTD_dStage stage;
58762 	U32 litEntropy;
58763 	U32 fseEntropy;
58764 	struct xxh64_state xxhState;
58765 	size_t headerSize;
58766 	ZSTD_format_e format;
58767 	ZSTD_forceIgnoreChecksum_e forceIgnoreChecksum;
58768 	U32 validateChecksum;
58769 	const BYTE *litPtr;
58770 	ZSTD_customMem customMem;
58771 	size_t litSize;
58772 	size_t rleSize;
58773 	size_t staticSize;
58774 	int bmi2;
58775 	ZSTD_DDict *ddictLocal;
58776 	const ZSTD_DDict *ddict;
58777 	U32 dictID;
58778 	int ddictIsCold;
58779 	ZSTD_dictUses_e dictUses;
58780 	ZSTD_DDictHashSet *ddictSet;
58781 	ZSTD_refMultipleDDicts_e refMultipleDDicts;
58782 	ZSTD_dStreamStage streamStage;
58783 	char *inBuff;
58784 	size_t inBuffSize;
58785 	size_t inPos;
58786 	size_t maxWindowSize;
58787 	char *outBuff;
58788 	size_t outBuffSize;
58789 	size_t outStart;
58790 	size_t outEnd;
58791 	size_t lhSize;
58792 	void *legacyContext;
58793 	U32 previousLegacyVersion;
58794 	U32 legacyVersion;
58795 	U32 hostageByte;
58796 	int noForwardProgress;
58797 	ZSTD_bufferMode_e outBufferMode;
58798 	ZSTD_outBuffer expectedOutBuffer;
58799 	BYTE litBuffer[131104];
58800 	BYTE headerBuffer[18];
58801 	size_t oversizedDuration;
58802 };
58803 
58804 typedef struct ZSTD_DCtx_s___2 ZSTD_DCtx___2;
58805 
58806 struct ZSTD_DDict_s {
58807 	void *dictBuffer;
58808 	const void *dictContent;
58809 	size_t dictSize;
58810 	ZSTD_entropyDTables_t entropy;
58811 	U32 dictID;
58812 	U32 entropyPresent;
58813 	ZSTD_customMem cMem;
58814 };
58815 
58816 typedef enum {
58817 	ZSTD_dct_auto = 0,
58818 	ZSTD_dct_rawContent = 1,
58819 	ZSTD_dct_fullDict = 2,
58820 } ZSTD_dictContentType_e;
58821 
58822 typedef enum {
58823 	ZSTD_dlm_byCopy = 0,
58824 	ZSTD_dlm_byRef = 1,
58825 } ZSTD_dictLoadMethod_e;
58826 
58827 typedef struct {
58828 	U32 f1c;
58829 	U32 f1d;
58830 	U32 f7b;
58831 	U32 f7c;
58832 } ZSTD_cpuid_t;
58833 
58834 typedef struct {
58835 	size_t error;
58836 	int lowerBound;
58837 	int upperBound;
58838 } ZSTD_bounds;
58839 
58840 typedef enum {
58841 	ZSTD_reset_session_only = 1,
58842 	ZSTD_reset_parameters = 2,
58843 	ZSTD_reset_session_and_parameters = 3,
58844 } ZSTD_ResetDirective;
58845 
58846 typedef enum {
58847 	ZSTD_d_windowLogMax = 100,
58848 	ZSTD_d_experimentalParam1 = 1000,
58849 	ZSTD_d_experimentalParam2 = 1001,
58850 	ZSTD_d_experimentalParam3 = 1002,
58851 	ZSTD_d_experimentalParam4 = 1003,
58852 } ZSTD_dParameter;
58853 
58854 typedef ZSTD_DCtx___2 ZSTD_DStream___2;
58855 
58856 typedef enum {
58857 	ZSTDnit_frameHeader = 0,
58858 	ZSTDnit_blockHeader = 1,
58859 	ZSTDnit_block = 2,
58860 	ZSTDnit_lastBlock = 3,
58861 	ZSTDnit_checksum = 4,
58862 	ZSTDnit_skippableFrame = 5,
58863 } ZSTD_nextInputType_e;
58864 
58865 typedef struct {
58866 	size_t compressedSize;
58867 	long long unsigned int decompressedBound;
58868 } ZSTD_frameSizeInfo;
58869 
58870 typedef struct {
58871 	blockType_e blockType;
58872 	U32 lastBlock;
58873 	U32 origSize;
58874 } blockProperties_t;
58875 
58876 typedef enum {
58877 	set_basic = 0,
58878 	set_rle = 1,
58879 	set_compressed = 2,
58880 	set_repeat = 3,
58881 } symbolEncodingType_e;
58882 
58883 typedef enum {
58884 	ZSTD_no_overlap = 0,
58885 	ZSTD_overlap_src_before_dst = 1,
58886 } ZSTD_overlap_e;
58887 
58888 typedef struct {
58889 	U32 fastMode;
58890 	U32 tableLog;
58891 } ZSTD_seqSymbol_header;
58892 
58893 typedef struct {
58894 	size_t litLength;
58895 	size_t matchLength;
58896 	size_t offset;
58897 	const BYTE *match;
58898 } seq_t;
58899 
58900 typedef struct {
58901 	size_t state;
58902 	const ZSTD_seqSymbol *table;
58903 } ZSTD_fseState;
58904 
58905 typedef struct {
58906 	BIT_DStream_t DStream;
58907 	ZSTD_fseState stateLL;
58908 	ZSTD_fseState stateOffb;
58909 	ZSTD_fseState stateML;
58910 	size_t prevOffset[3];
58911 	const BYTE *prefixStart;
58912 	const BYTE *dictEnd;
58913 	size_t pos;
58914 } seqState_t;
58915 
58916 typedef enum {
58917 	ZSTD_lo_isRegularOffset = 0,
58918 	ZSTD_lo_isLongOffset = 1,
58919 } ZSTD_longOffset_e;
58920 
58921 typedef enum {
58922 	ZSTD_p_noPrefetch = 0,
58923 	ZSTD_p_prefetch = 1,
58924 } ZSTD_prefetch_e;
58925 
58926 enum xz_mode {
58927 	XZ_SINGLE = 0,
58928 	XZ_PREALLOC = 1,
58929 	XZ_DYNALLOC = 2,
58930 };
58931 
58932 enum xz_ret {
58933 	XZ_OK = 0,
58934 	XZ_STREAM_END = 1,
58935 	XZ_UNSUPPORTED_CHECK = 2,
58936 	XZ_MEM_ERROR = 3,
58937 	XZ_MEMLIMIT_ERROR = 4,
58938 	XZ_FORMAT_ERROR = 5,
58939 	XZ_OPTIONS_ERROR = 6,
58940 	XZ_DATA_ERROR = 7,
58941 	XZ_BUF_ERROR = 8,
58942 };
58943 
58944 struct xz_buf {
58945 	const uint8_t *in;
58946 	size_t in_pos;
58947 	size_t in_size;
58948 	uint8_t *out;
58949 	size_t out_pos;
58950 	size_t out_size;
58951 };
58952 
58953 typedef uint64_t vli_type;
58954 
58955 enum xz_check {
58956 	XZ_CHECK_NONE = 0,
58957 	XZ_CHECK_CRC32 = 1,
58958 	XZ_CHECK_CRC64 = 4,
58959 	XZ_CHECK_SHA256 = 10,
58960 };
58961 
58962 struct xz_dec_hash {
58963 	vli_type unpadded;
58964 	vli_type uncompressed;
58965 	uint32_t crc32;
58966 };
58967 
58968 struct xz_dec_lzma2;
58969 
58970 struct xz_dec_bcj;
58971 
58972 struct xz_dec {
58973 	enum {
58974 		SEQ_STREAM_HEADER = 0,
58975 		SEQ_BLOCK_START = 1,
58976 		SEQ_BLOCK_HEADER = 2,
58977 		SEQ_BLOCK_UNCOMPRESS = 3,
58978 		SEQ_BLOCK_PADDING = 4,
58979 		SEQ_BLOCK_CHECK = 5,
58980 		SEQ_INDEX = 6,
58981 		SEQ_INDEX_PADDING = 7,
58982 		SEQ_INDEX_CRC32 = 8,
58983 		SEQ_STREAM_FOOTER = 9,
58984 	} sequence;
58985 	uint32_t pos;
58986 	vli_type vli;
58987 	size_t in_start;
58988 	size_t out_start;
58989 	uint32_t crc32;
58990 	enum xz_check check_type;
58991 	enum xz_mode mode;
58992 	bool allow_buf_error;
58993 	struct {
58994 		vli_type compressed;
58995 		vli_type uncompressed;
58996 		uint32_t size;
58997 	} block_header;
58998 	struct {
58999 		vli_type compressed;
59000 		vli_type uncompressed;
59001 		vli_type count;
59002 		struct xz_dec_hash hash;
59003 	} block;
59004 	struct {
59005 		enum {
59006 			SEQ_INDEX_COUNT = 0,
59007 			SEQ_INDEX_UNPADDED = 1,
59008 			SEQ_INDEX_UNCOMPRESSED = 2,
59009 		} sequence;
59010 		vli_type size;
59011 		vli_type count;
59012 		struct xz_dec_hash hash;
59013 	} index;
59014 	struct {
59015 		size_t pos;
59016 		size_t size;
59017 		uint8_t buf[1024];
59018 	} temp;
59019 	struct xz_dec_lzma2 *lzma2;
59020 	struct xz_dec_bcj *bcj;
59021 	bool bcj_active;
59022 };
59023 
59024 enum lzma_state {
59025 	STATE_LIT_LIT = 0,
59026 	STATE_MATCH_LIT_LIT = 1,
59027 	STATE_REP_LIT_LIT = 2,
59028 	STATE_SHORTREP_LIT_LIT = 3,
59029 	STATE_MATCH_LIT = 4,
59030 	STATE_REP_LIT = 5,
59031 	STATE_SHORTREP_LIT = 6,
59032 	STATE_LIT_MATCH = 7,
59033 	STATE_LIT_LONGREP = 8,
59034 	STATE_LIT_SHORTREP = 9,
59035 	STATE_NONLIT_MATCH = 10,
59036 	STATE_NONLIT_REP = 11,
59037 };
59038 
59039 struct dictionary {
59040 	uint8_t *buf;
59041 	size_t start;
59042 	size_t pos;
59043 	size_t full;
59044 	size_t limit;
59045 	size_t end;
59046 	uint32_t size;
59047 	uint32_t size_max;
59048 	uint32_t allocated;
59049 	enum xz_mode mode;
59050 };
59051 
59052 struct rc_dec {
59053 	uint32_t range;
59054 	uint32_t code;
59055 	uint32_t init_bytes_left;
59056 	const uint8_t *in;
59057 	size_t in_pos;
59058 	size_t in_limit;
59059 };
59060 
59061 struct lzma_len_dec {
59062 	uint16_t choice;
59063 	uint16_t choice2;
59064 	uint16_t low[128];
59065 	uint16_t mid[128];
59066 	uint16_t high[256];
59067 };
59068 
59069 struct lzma_dec {
59070 	uint32_t rep0;
59071 	uint32_t rep1;
59072 	uint32_t rep2;
59073 	uint32_t rep3;
59074 	enum lzma_state state;
59075 	uint32_t len;
59076 	uint32_t lc;
59077 	uint32_t literal_pos_mask;
59078 	uint32_t pos_mask;
59079 	uint16_t is_match[192];
59080 	uint16_t is_rep[12];
59081 	uint16_t is_rep0[12];
59082 	uint16_t is_rep1[12];
59083 	uint16_t is_rep2[12];
59084 	uint16_t is_rep0_long[192];
59085 	uint16_t dist_slot[256];
59086 	uint16_t dist_special[114];
59087 	uint16_t dist_align[16];
59088 	struct lzma_len_dec match_len_dec;
59089 	struct lzma_len_dec rep_len_dec;
59090 	uint16_t literal[12288];
59091 };
59092 
59093 enum lzma2_seq {
59094 	SEQ_CONTROL = 0,
59095 	SEQ_UNCOMPRESSED_1 = 1,
59096 	SEQ_UNCOMPRESSED_2 = 2,
59097 	SEQ_COMPRESSED_0 = 3,
59098 	SEQ_COMPRESSED_1 = 4,
59099 	SEQ_PROPERTIES = 5,
59100 	SEQ_LZMA_PREPARE = 6,
59101 	SEQ_LZMA_RUN = 7,
59102 	SEQ_COPY = 8,
59103 };
59104 
59105 struct lzma2_dec {
59106 	enum lzma2_seq sequence;
59107 	enum lzma2_seq next_sequence;
59108 	uint32_t uncompressed;
59109 	uint32_t compressed;
59110 	bool need_dict_reset;
59111 	bool need_props;
59112 };
59113 
59114 struct xz_dec_lzma2___2 {
59115 	struct rc_dec rc;
59116 	struct dictionary dict;
59117 	struct lzma2_dec lzma2;
59118 	struct lzma_dec lzma;
59119 	struct {
59120 		uint32_t size;
59121 		uint8_t buf[63];
59122 	} temp;
59123 };
59124 
59125 struct xz_dec_bcj___2 {
59126 	enum {
59127 		BCJ_X86 = 4,
59128 		BCJ_POWERPC = 5,
59129 		BCJ_IA64 = 6,
59130 		BCJ_ARM = 7,
59131 		BCJ_ARMTHUMB = 8,
59132 		BCJ_SPARC = 9,
59133 	} type;
59134 	enum xz_ret ret;
59135 	bool single_call;
59136 	uint32_t pos;
59137 	uint32_t x86_prev_mask;
59138 	uint8_t *out;
59139 	size_t out_pos;
59140 	size_t out_size;
59141 	struct {
59142 		size_t filtered;
59143 		size_t size;
59144 		uint8_t buf[16];
59145 	} temp;
59146 };
59147 
59148 struct ei_entry {
59149 	struct list_head list;
59150 	long unsigned int start_addr;
59151 	long unsigned int end_addr;
59152 	int etype;
59153 	void *priv;
59154 };
59155 
59156 struct nla_bitfield32 {
59157 	__u32 value;
59158 	__u32 selector;
59159 };
59160 
59161 enum nla_policy_validation {
59162 	NLA_VALIDATE_NONE = 0,
59163 	NLA_VALIDATE_RANGE = 1,
59164 	NLA_VALIDATE_RANGE_WARN_TOO_LONG = 2,
59165 	NLA_VALIDATE_MIN = 3,
59166 	NLA_VALIDATE_MAX = 4,
59167 	NLA_VALIDATE_MASK = 5,
59168 	NLA_VALIDATE_RANGE_PTR = 6,
59169 	NLA_VALIDATE_FUNCTION = 7,
59170 };
59171 
59172 enum netlink_validation {
59173 	NL_VALIDATE_LIBERAL = 0,
59174 	NL_VALIDATE_TRAILING = 1,
59175 	NL_VALIDATE_MAXTYPE = 2,
59176 	NL_VALIDATE_UNSPEC = 4,
59177 	NL_VALIDATE_STRICT_ATTRS = 8,
59178 	NL_VALIDATE_NESTED = 16,
59179 };
59180 
59181 struct cpu_rmap {
59182 	struct kref refcount;
59183 	u16 size;
59184 	u16 used;
59185 	void **obj;
59186 	struct {
59187 		u16 index;
59188 		u16 dist;
59189 	} near[0];
59190 };
59191 
59192 struct irq_glue {
59193 	struct irq_affinity_notify notify;
59194 	struct cpu_rmap *rmap;
59195 	u16 index;
59196 };
59197 
59198 typedef mpi_limb_t *mpi_ptr_t;
59199 
59200 typedef int mpi_size_t;
59201 
59202 typedef mpi_limb_t UWtype;
59203 
59204 typedef unsigned int UHWtype;
59205 
59206 enum gcry_mpi_constants {
59207 	MPI_C_ZERO = 0,
59208 	MPI_C_ONE = 1,
59209 	MPI_C_TWO = 2,
59210 	MPI_C_THREE = 3,
59211 	MPI_C_FOUR = 4,
59212 	MPI_C_EIGHT = 5,
59213 };
59214 
59215 struct barrett_ctx_s;
59216 
59217 typedef struct barrett_ctx_s *mpi_barrett_t;
59218 
59219 struct gcry_mpi_point {
59220 	MPI x;
59221 	MPI y;
59222 	MPI z;
59223 };
59224 
59225 typedef struct gcry_mpi_point *MPI_POINT;
59226 
59227 enum gcry_mpi_ec_models {
59228 	MPI_EC_WEIERSTRASS = 0,
59229 	MPI_EC_MONTGOMERY = 1,
59230 	MPI_EC_EDWARDS = 2,
59231 };
59232 
59233 enum ecc_dialects {
59234 	ECC_DIALECT_STANDARD = 0,
59235 	ECC_DIALECT_ED25519 = 1,
59236 	ECC_DIALECT_SAFECURVE = 2,
59237 };
59238 
59239 struct mpi_ec_ctx {
59240 	enum gcry_mpi_ec_models model;
59241 	enum ecc_dialects dialect;
59242 	int flags;
59243 	unsigned int nbits;
59244 	MPI p;
59245 	MPI a;
59246 	MPI b;
59247 	MPI_POINT G;
59248 	MPI n;
59249 	unsigned int h;
59250 	MPI_POINT Q;
59251 	MPI d;
59252 	const char *name;
59253 	struct {
59254 		struct {
59255 			unsigned int a_is_pminus3: 1;
59256 			unsigned int two_inv_p: 1;
59257 		} valid;
59258 		int a_is_pminus3;
59259 		MPI two_inv_p;
59260 		mpi_barrett_t p_barrett;
59261 		MPI scratch[11];
59262 	} t;
59263 	void (*addm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
59264 	void (*subm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
59265 	void (*mulm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
59266 	void (*pow2)(MPI, const MPI, struct mpi_ec_ctx *);
59267 	void (*mul2)(MPI, MPI, struct mpi_ec_ctx *);
59268 };
59269 
59270 struct field_table {
59271 	const char *p;
59272 	void (*addm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
59273 	void (*subm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
59274 	void (*mulm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
59275 	void (*mul2)(MPI, MPI, struct mpi_ec_ctx *);
59276 	void (*pow2)(MPI, const MPI, struct mpi_ec_ctx *);
59277 };
59278 
59279 enum gcry_mpi_format {
59280 	GCRYMPI_FMT_NONE = 0,
59281 	GCRYMPI_FMT_STD = 1,
59282 	GCRYMPI_FMT_PGP = 2,
59283 	GCRYMPI_FMT_SSH = 3,
59284 	GCRYMPI_FMT_HEX = 4,
59285 	GCRYMPI_FMT_USG = 5,
59286 	GCRYMPI_FMT_OPAQUE = 8,
59287 };
59288 
59289 struct barrett_ctx_s___2;
59290 
59291 typedef struct barrett_ctx_s___2 *mpi_barrett_t___2;
59292 
59293 struct barrett_ctx_s___2 {
59294 	MPI m;
59295 	int m_copied;
59296 	int k;
59297 	MPI y;
59298 	MPI r1;
59299 	MPI r2;
59300 	MPI r3;
59301 };
59302 
59303 struct karatsuba_ctx {
59304 	struct karatsuba_ctx *next;
59305 	mpi_ptr_t tspace;
59306 	mpi_size_t tspace_size;
59307 	mpi_ptr_t tp;
59308 	mpi_size_t tp_size;
59309 };
59310 
59311 typedef long int mpi_limb_signed_t;
59312 
59313 struct sg_pool {
59314 	size_t size;
59315 	char *name;
59316 	struct kmem_cache *slab;
59317 	mempool_t *pool;
59318 };
59319 
59320 struct irq_poll;
59321 
59322 typedef int irq_poll_fn(struct irq_poll *, int);
59323 
59324 struct irq_poll {
59325 	struct list_head list;
59326 	long unsigned int state;
59327 	int weight;
59328 	irq_poll_fn *poll;
59329 };
59330 
59331 enum {
59332 	IRQ_POLL_F_SCHED = 0,
59333 	IRQ_POLL_F_DISABLE = 1,
59334 };
59335 
59336 typedef u32 depot_stack_handle_t;
59337 
59338 union handle_parts {
59339 	depot_stack_handle_t handle;
59340 	struct {
59341 		u32 slabindex: 21;
59342 		u32 offset: 10;
59343 		u32 valid: 1;
59344 	};
59345 };
59346 
59347 struct stack_record {
59348 	struct stack_record *next;
59349 	u32 hash;
59350 	u32 size;
59351 	union handle_parts handle;
59352 	long unsigned int entries[0];
59353 };
59354 
59355 struct font_desc {
59356 	int idx;
59357 	const char *name;
59358 	unsigned int width;
59359 	unsigned int height;
59360 	unsigned int charcount;
59361 	const void *data;
59362 	int pref;
59363 };
59364 
59365 struct font_data {
59366 	unsigned int extra[4];
59367 	const unsigned char data[0];
59368 };
59369 
59370 typedef u16 ucs2_char_t;
59371 
59372 struct msr {
59373 	union {
59374 		struct {
59375 			u32 l;
59376 			u32 h;
59377 		};
59378 		u64 q;
59379 	};
59380 };
59381 
59382 struct msr_info {
59383 	u32 msr_no;
59384 	struct msr reg;
59385 	struct msr *msrs;
59386 	int err;
59387 };
59388 
59389 struct msr_regs_info {
59390 	u32 *regs;
59391 	int err;
59392 };
59393 
59394 struct msr_info_completion {
59395 	struct msr_info msr;
59396 	struct completion done;
59397 };
59398 
59399 struct trace_event_raw_msr_trace_class {
59400 	struct trace_entry ent;
59401 	unsigned int msr;
59402 	u64 val;
59403 	int failed;
59404 	char __data[0];
59405 };
59406 
59407 struct trace_event_data_offsets_msr_trace_class {};
59408 
59409 typedef void (*btf_trace_read_msr)(void *, unsigned int, u64, int);
59410 
59411 typedef void (*btf_trace_write_msr)(void *, unsigned int, u64, int);
59412 
59413 typedef void (*btf_trace_rdpmc)(void *, unsigned int, u64, int);
59414 
59415 typedef __u32 Elf32_Addr;
59416 
59417 typedef __u16 Elf32_Half;
59418 
59419 typedef __u32 Elf32_Off;
59420 
59421 struct elf32_hdr {
59422 	unsigned char e_ident[16];
59423 	Elf32_Half e_type;
59424 	Elf32_Half e_machine;
59425 	Elf32_Word e_version;
59426 	Elf32_Addr e_entry;
59427 	Elf32_Off e_phoff;
59428 	Elf32_Off e_shoff;
59429 	Elf32_Word e_flags;
59430 	Elf32_Half e_ehsize;
59431 	Elf32_Half e_phentsize;
59432 	Elf32_Half e_phnum;
59433 	Elf32_Half e_shentsize;
59434 	Elf32_Half e_shnum;
59435 	Elf32_Half e_shstrndx;
59436 };
59437 
59438 typedef struct elf32_hdr Elf32_Ehdr;
59439 
59440 struct elf32_phdr {
59441 	Elf32_Word p_type;
59442 	Elf32_Off p_offset;
59443 	Elf32_Addr p_vaddr;
59444 	Elf32_Addr p_paddr;
59445 	Elf32_Word p_filesz;
59446 	Elf32_Word p_memsz;
59447 	Elf32_Word p_flags;
59448 	Elf32_Word p_align;
59449 };
59450 
59451 typedef struct elf32_phdr Elf32_Phdr;
59452 
59453 typedef struct elf64_phdr Elf64_Phdr;
59454 
59455 typedef struct elf32_note Elf32_Nhdr;
59456 
59457 struct compress_format {
59458 	unsigned char magic[2];
59459 	const char *name;
59460 	decompress_fn decompressor;
59461 };
59462 
59463 struct group_data {
59464 	int limit[21];
59465 	int base[20];
59466 	int permute[258];
59467 	int minLen;
59468 	int maxLen;
59469 };
59470 
59471 struct bunzip_data {
59472 	int writeCopies;
59473 	int writePos;
59474 	int writeRunCountdown;
59475 	int writeCount;
59476 	int writeCurrent;
59477 	long int (*fill)(void *, long unsigned int);
59478 	long int inbufCount;
59479 	long int inbufPos;
59480 	unsigned char *inbuf;
59481 	unsigned int inbufBitCount;
59482 	unsigned int inbufBits;
59483 	unsigned int crc32Table[256];
59484 	unsigned int headerCRC;
59485 	unsigned int totalCRC;
59486 	unsigned int writeCRC;
59487 	unsigned int *dbuf;
59488 	unsigned int dbufSize;
59489 	unsigned char selectors[32768];
59490 	struct group_data groups[6];
59491 	int io_error;
59492 	int byteCount[256];
59493 	unsigned char symToByte[256];
59494 	unsigned char mtfSymbol[256];
59495 };
59496 
59497 struct rc {
59498 	long int (*fill)(void *, long unsigned int);
59499 	uint8_t *ptr;
59500 	uint8_t *buffer;
59501 	uint8_t *buffer_end;
59502 	long int buffer_size;
59503 	uint32_t code;
59504 	uint32_t range;
59505 	uint32_t bound;
59506 	void (*error)(char *);
59507 };
59508 
59509 struct lzma_header {
59510 	uint8_t pos;
59511 	uint32_t dict_size;
59512 	uint64_t dst_size;
59513 } __attribute__((packed));
59514 
59515 struct writer {
59516 	uint8_t *buffer;
59517 	uint8_t previous_byte;
59518 	size_t buffer_pos;
59519 	int bufsize;
59520 	size_t global_pos;
59521 	long int (*flush)(void *, long unsigned int);
59522 	struct lzma_header *header;
59523 };
59524 
59525 struct cstate {
59526 	int state;
59527 	uint32_t rep0;
59528 	uint32_t rep1;
59529 	uint32_t rep2;
59530 	uint32_t rep3;
59531 };
59532 
59533 struct xz_dec___2;
59534 
59535 struct cpio_data {
59536 	void *data;
59537 	size_t size;
59538 	char name[18];
59539 };
59540 
59541 enum cpio_fields {
59542 	C_MAGIC = 0,
59543 	C_INO = 1,
59544 	C_MODE = 2,
59545 	C_UID = 3,
59546 	C_GID = 4,
59547 	C_NLINK = 5,
59548 	C_MTIME = 6,
59549 	C_FILESIZE = 7,
59550 	C_MAJ = 8,
59551 	C_MIN = 9,
59552 	C_RMAJ = 10,
59553 	C_RMIN = 11,
59554 	C_NAMESIZE = 12,
59555 	C_CHKSUM = 13,
59556 	C_NFIELDS = 14,
59557 };
59558 
59559 struct fprop_local_single {
59560 	long unsigned int events;
59561 	unsigned int period;
59562 	raw_spinlock_t lock;
59563 };
59564 
59565 struct ida_bitmap {
59566 	long unsigned int bitmap[16];
59567 };
59568 
59569 struct klist_waiter {
59570 	struct list_head list;
59571 	struct klist_node *node;
59572 	struct task_struct *process;
59573 	int woken;
59574 };
59575 
59576 struct uevent_sock {
59577 	struct list_head list;
59578 	struct sock *sk;
59579 };
59580 
59581 enum {
59582 	LOGIC_PIO_INDIRECT = 0,
59583 	LOGIC_PIO_CPU_MMIO = 1,
59584 };
59585 
59586 struct logic_pio_host_ops;
59587 
59588 struct logic_pio_hwaddr {
59589 	struct list_head list;
59590 	struct fwnode_handle *fwnode;
59591 	resource_size_t hw_start;
59592 	resource_size_t io_start;
59593 	resource_size_t size;
59594 	long unsigned int flags;
59595 	void *hostdata;
59596 	const struct logic_pio_host_ops *ops;
59597 };
59598 
59599 struct logic_pio_host_ops {
59600 	u32 (*in)(void *, long unsigned int, size_t);
59601 	void (*out)(void *, long unsigned int, u32, size_t);
59602 	u32 (*ins)(void *, long unsigned int, void *, size_t, unsigned int);
59603 	void (*outs)(void *, long unsigned int, const void *, size_t, unsigned int);
59604 };
59605 
59606 typedef struct {
59607 	long unsigned int key[2];
59608 } hsiphash_key_t;
59609 
59610 struct clk_hw;
59611 
59612 struct clk_rate_request {
59613 	long unsigned int rate;
59614 	long unsigned int min_rate;
59615 	long unsigned int max_rate;
59616 	long unsigned int best_parent_rate;
59617 	struct clk_hw *best_parent_hw;
59618 };
59619 
59620 struct clk_core;
59621 
59622 struct clk_init_data;
59623 
59624 struct clk_hw {
59625 	struct clk_core *core;
59626 	struct clk *clk;
59627 	const struct clk_init_data *init;
59628 };
59629 
59630 struct clk_duty {
59631 	unsigned int num;
59632 	unsigned int den;
59633 };
59634 
59635 struct clk_ops {
59636 	int (*prepare)(struct clk_hw *);
59637 	void (*unprepare)(struct clk_hw *);
59638 	int (*is_prepared)(struct clk_hw *);
59639 	void (*unprepare_unused)(struct clk_hw *);
59640 	int (*enable)(struct clk_hw *);
59641 	void (*disable)(struct clk_hw *);
59642 	int (*is_enabled)(struct clk_hw *);
59643 	void (*disable_unused)(struct clk_hw *);
59644 	int (*save_context)(struct clk_hw *);
59645 	void (*restore_context)(struct clk_hw *);
59646 	long unsigned int (*recalc_rate)(struct clk_hw *, long unsigned int);
59647 	long int (*round_rate)(struct clk_hw *, long unsigned int, long unsigned int *);
59648 	int (*determine_rate)(struct clk_hw *, struct clk_rate_request *);
59649 	int (*set_parent)(struct clk_hw *, u8);
59650 	u8 (*get_parent)(struct clk_hw *);
59651 	int (*set_rate)(struct clk_hw *, long unsigned int, long unsigned int);
59652 	int (*set_rate_and_parent)(struct clk_hw *, long unsigned int, long unsigned int, u8);
59653 	long unsigned int (*recalc_accuracy)(struct clk_hw *, long unsigned int);
59654 	int (*get_phase)(struct clk_hw *);
59655 	int (*set_phase)(struct clk_hw *, int);
59656 	int (*get_duty_cycle)(struct clk_hw *, struct clk_duty *);
59657 	int (*set_duty_cycle)(struct clk_hw *, struct clk_duty *);
59658 	int (*init)(struct clk_hw *);
59659 	void (*terminate)(struct clk_hw *);
59660 	void (*debug_init)(struct clk_hw *, struct dentry *);
59661 };
59662 
59663 struct clk_parent_data {
59664 	const struct clk_hw *hw;
59665 	const char *fw_name;
59666 	const char *name;
59667 	int index;
59668 };
59669 
59670 struct clk_init_data {
59671 	const char *name;
59672 	const struct clk_ops *ops;
59673 	const char * const *parent_names;
59674 	const struct clk_parent_data *parent_data;
59675 	const struct clk_hw **parent_hws;
59676 	u8 num_parents;
59677 	long unsigned int flags;
59678 };
59679 
59680 enum format_type {
59681 	FORMAT_TYPE_NONE = 0,
59682 	FORMAT_TYPE_WIDTH = 1,
59683 	FORMAT_TYPE_PRECISION = 2,
59684 	FORMAT_TYPE_CHAR = 3,
59685 	FORMAT_TYPE_STR = 4,
59686 	FORMAT_TYPE_PTR = 5,
59687 	FORMAT_TYPE_PERCENT_CHAR = 6,
59688 	FORMAT_TYPE_INVALID = 7,
59689 	FORMAT_TYPE_LONG_LONG = 8,
59690 	FORMAT_TYPE_ULONG = 9,
59691 	FORMAT_TYPE_LONG = 10,
59692 	FORMAT_TYPE_UBYTE = 11,
59693 	FORMAT_TYPE_BYTE = 12,
59694 	FORMAT_TYPE_USHORT = 13,
59695 	FORMAT_TYPE_SHORT = 14,
59696 	FORMAT_TYPE_UINT = 15,
59697 	FORMAT_TYPE_INT = 16,
59698 	FORMAT_TYPE_SIZE_T = 17,
59699 	FORMAT_TYPE_PTRDIFF = 18,
59700 };
59701 
59702 struct printf_spec {
59703 	unsigned int type: 8;
59704 	int field_width: 24;
59705 	unsigned int flags: 8;
59706 	unsigned int base: 8;
59707 	int precision: 16;
59708 };
59709 
59710 struct page_flags_fields {
59711 	int width;
59712 	int shift;
59713 	int mask;
59714 	const struct printf_spec *spec;
59715 	const char *name;
59716 };
59717 
59718 struct minmax_sample {
59719 	u32 t;
59720 	u32 v;
59721 };
59722 
59723 struct minmax {
59724 	struct minmax_sample s[3];
59725 };
59726 
59727 enum {
59728 	st_wordstart = 0,
59729 	st_wordcmp = 1,
59730 	st_wordskip = 2,
59731 	st_bufcpy = 3,
59732 };
59733 
59734 enum {
59735 	st_wordstart___2 = 0,
59736 	st_wordcmp___2 = 1,
59737 	st_wordskip___2 = 2,
59738 };
59739 
59740 struct in6_addr___2;
59741 
59742 enum mmio_type {
59743 	MMIO_DECODE_FAILED = 0,
59744 	MMIO_WRITE = 1,
59745 	MMIO_WRITE_IMM = 2,
59746 	MMIO_READ = 3,
59747 	MMIO_READ_ZERO_EXTEND = 4,
59748 	MMIO_READ_SIGN_EXTEND = 5,
59749 	MMIO_MOVS = 6,
59750 };
59751 
59752 enum reg_type {
59753 	REG_TYPE_RM = 0,
59754 	REG_TYPE_REG = 1,
59755 	REG_TYPE_INDEX = 2,
59756 	REG_TYPE_BASE = 3,
59757 };
59758 
59759 enum device_link_state {
59760 	DL_STATE_NONE = 4294967295,
59761 	DL_STATE_DORMANT = 0,
59762 	DL_STATE_AVAILABLE = 1,
59763 	DL_STATE_CONSUMER_PROBE = 2,
59764 	DL_STATE_ACTIVE = 3,
59765 	DL_STATE_SUPPLIER_UNBIND = 4,
59766 };
59767 
59768 struct device_link {
59769 	struct device *supplier;
59770 	struct list_head s_node;
59771 	struct device *consumer;
59772 	struct list_head c_node;
59773 	struct device link_dev;
59774 	enum device_link_state status;
59775 	u32 flags;
59776 	refcount_t rpm_active;
59777 	struct kref kref;
59778 	struct work_struct rm_work;
59779 	bool supplier_preactivated;
59780 };
59781 
59782 struct regulator;
59783 
59784 struct phy_configure_opts_dp {
59785 	unsigned int link_rate;
59786 	unsigned int lanes;
59787 	unsigned int voltage[4];
59788 	unsigned int pre[4];
59789 	u8 ssc: 1;
59790 	u8 set_rate: 1;
59791 	u8 set_lanes: 1;
59792 	u8 set_voltages: 1;
59793 };
59794 
59795 struct phy_configure_opts_mipi_dphy {
59796 	unsigned int clk_miss;
59797 	unsigned int clk_post;
59798 	unsigned int clk_pre;
59799 	unsigned int clk_prepare;
59800 	unsigned int clk_settle;
59801 	unsigned int clk_term_en;
59802 	unsigned int clk_trail;
59803 	unsigned int clk_zero;
59804 	unsigned int d_term_en;
59805 	unsigned int eot;
59806 	unsigned int hs_exit;
59807 	unsigned int hs_prepare;
59808 	unsigned int hs_settle;
59809 	unsigned int hs_skip;
59810 	unsigned int hs_trail;
59811 	unsigned int hs_zero;
59812 	unsigned int init;
59813 	unsigned int lpx;
59814 	unsigned int ta_get;
59815 	unsigned int ta_go;
59816 	unsigned int ta_sure;
59817 	unsigned int wakeup;
59818 	long unsigned int hs_clk_rate;
59819 	long unsigned int lp_clk_rate;
59820 	unsigned char lanes;
59821 };
59822 
59823 enum phy_mode {
59824 	PHY_MODE_INVALID = 0,
59825 	PHY_MODE_USB_HOST = 1,
59826 	PHY_MODE_USB_HOST_LS = 2,
59827 	PHY_MODE_USB_HOST_FS = 3,
59828 	PHY_MODE_USB_HOST_HS = 4,
59829 	PHY_MODE_USB_HOST_SS = 5,
59830 	PHY_MODE_USB_DEVICE = 6,
59831 	PHY_MODE_USB_DEVICE_LS = 7,
59832 	PHY_MODE_USB_DEVICE_FS = 8,
59833 	PHY_MODE_USB_DEVICE_HS = 9,
59834 	PHY_MODE_USB_DEVICE_SS = 10,
59835 	PHY_MODE_USB_OTG = 11,
59836 	PHY_MODE_UFS_HS_A = 12,
59837 	PHY_MODE_UFS_HS_B = 13,
59838 	PHY_MODE_PCIE = 14,
59839 	PHY_MODE_ETHERNET = 15,
59840 	PHY_MODE_MIPI_DPHY = 16,
59841 	PHY_MODE_SATA = 17,
59842 	PHY_MODE_LVDS = 18,
59843 	PHY_MODE_DP = 19,
59844 };
59845 
59846 enum phy_media {
59847 	PHY_MEDIA_DEFAULT = 0,
59848 	PHY_MEDIA_SR = 1,
59849 	PHY_MEDIA_DAC = 2,
59850 };
59851 
59852 union phy_configure_opts {
59853 	struct phy_configure_opts_mipi_dphy mipi_dphy;
59854 	struct phy_configure_opts_dp dp;
59855 };
59856 
59857 struct phy;
59858 
59859 struct phy_ops {
59860 	int (*init)(struct phy *);
59861 	int (*exit)(struct phy *);
59862 	int (*power_on)(struct phy *);
59863 	int (*power_off)(struct phy *);
59864 	int (*set_mode)(struct phy *, enum phy_mode, int);
59865 	int (*set_media)(struct phy *, enum phy_media);
59866 	int (*set_speed)(struct phy *, int);
59867 	int (*configure)(struct phy *, union phy_configure_opts *);
59868 	int (*validate)(struct phy *, enum phy_mode, int, union phy_configure_opts *);
59869 	int (*reset)(struct phy *);
59870 	int (*calibrate)(struct phy *);
59871 	void (*release)(struct phy *);
59872 	struct module *owner;
59873 };
59874 
59875 struct phy_attrs {
59876 	u32 bus_width;
59877 	u32 max_link_rate;
59878 	enum phy_mode mode;
59879 };
59880 
59881 struct phy {
59882 	struct device dev;
59883 	int id;
59884 	const struct phy_ops *ops;
59885 	struct mutex mutex;
59886 	int init_count;
59887 	int power_count;
59888 	struct phy_attrs attrs;
59889 	struct regulator *pwr;
59890 };
59891 
59892 struct phy_provider {
59893 	struct device *dev;
59894 	struct device_node *children;
59895 	struct module *owner;
59896 	struct list_head list;
59897 	struct phy * (*of_xlate)(struct device *, struct of_phandle_args *);
59898 };
59899 
59900 struct phy_lookup {
59901 	struct list_head node;
59902 	const char *dev_id;
59903 	const char *con_id;
59904 	struct phy *phy;
59905 };
59906 
59907 enum {
59908 	pci_channel_io_normal = 1,
59909 	pci_channel_io_frozen = 2,
59910 	pci_channel_io_perm_failure = 3,
59911 };
59912 
59913 struct pci_sriov {
59914 	int pos;
59915 	int nres;
59916 	u32 cap;
59917 	u16 ctrl;
59918 	u16 total_VFs;
59919 	u16 initial_VFs;
59920 	u16 num_VFs;
59921 	u16 offset;
59922 	u16 stride;
59923 	u16 vf_device;
59924 	u32 pgsz;
59925 	u8 link;
59926 	u8 max_VF_buses;
59927 	u16 driver_max_VFs;
59928 	struct pci_dev *dev;
59929 	struct pci_dev *self;
59930 	u32 class;
59931 	u8 hdr_type;
59932 	u16 subsystem_vendor;
59933 	u16 subsystem_device;
59934 	resource_size_t barsz[6];
59935 	bool drivers_autoprobe;
59936 };
59937 
59938 struct rcec_ea {
59939 	u8 nextbusn;
59940 	u8 lastbusn;
59941 	u32 bitmap;
59942 };
59943 
59944 struct pci_bus_resource {
59945 	struct list_head list;
59946 	struct resource *res;
59947 	unsigned int flags;
59948 };
59949 
59950 typedef u64 pci_bus_addr_t;
59951 
59952 struct pci_bus_region {
59953 	pci_bus_addr_t start;
59954 	pci_bus_addr_t end;
59955 };
59956 
59957 enum pci_fixup_pass {
59958 	pci_fixup_early = 0,
59959 	pci_fixup_header = 1,
59960 	pci_fixup_final = 2,
59961 	pci_fixup_enable = 3,
59962 	pci_fixup_resume = 4,
59963 	pci_fixup_suspend = 5,
59964 	pci_fixup_resume_early = 6,
59965 	pci_fixup_suspend_late = 7,
59966 };
59967 
59968 struct hotplug_slot_ops;
59969 
59970 struct hotplug_slot {
59971 	const struct hotplug_slot_ops *ops;
59972 	struct list_head slot_list;
59973 	struct pci_slot *pci_slot;
59974 	struct module *owner;
59975 	const char *mod_name;
59976 };
59977 
59978 enum pci_dev_flags {
59979 	PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG = 1,
59980 	PCI_DEV_FLAGS_NO_D3 = 2,
59981 	PCI_DEV_FLAGS_ASSIGNED = 4,
59982 	PCI_DEV_FLAGS_ACS_ENABLED_QUIRK = 8,
59983 	PCI_DEV_FLAG_PCIE_BRIDGE_ALIAS = 32,
59984 	PCI_DEV_FLAGS_NO_BUS_RESET = 64,
59985 	PCI_DEV_FLAGS_NO_PM_RESET = 128,
59986 	PCI_DEV_FLAGS_VPD_REF_F0 = 256,
59987 	PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT = 512,
59988 	PCI_DEV_FLAGS_NO_FLR_RESET = 1024,
59989 	PCI_DEV_FLAGS_NO_RELAXED_ORDERING = 2048,
59990 	PCI_DEV_FLAGS_HAS_MSI_MASKING = 4096,
59991 };
59992 
59993 enum pci_bus_flags {
59994 	PCI_BUS_FLAGS_NO_MSI = 1,
59995 	PCI_BUS_FLAGS_NO_MMRBC = 2,
59996 	PCI_BUS_FLAGS_NO_AERSID = 4,
59997 	PCI_BUS_FLAGS_NO_EXTCFG = 8,
59998 };
59999 
60000 enum pci_bus_speed {
60001 	PCI_SPEED_33MHz = 0,
60002 	PCI_SPEED_66MHz = 1,
60003 	PCI_SPEED_66MHz_PCIX = 2,
60004 	PCI_SPEED_100MHz_PCIX = 3,
60005 	PCI_SPEED_133MHz_PCIX = 4,
60006 	PCI_SPEED_66MHz_PCIX_ECC = 5,
60007 	PCI_SPEED_100MHz_PCIX_ECC = 6,
60008 	PCI_SPEED_133MHz_PCIX_ECC = 7,
60009 	PCI_SPEED_66MHz_PCIX_266 = 9,
60010 	PCI_SPEED_100MHz_PCIX_266 = 10,
60011 	PCI_SPEED_133MHz_PCIX_266 = 11,
60012 	AGP_UNKNOWN = 12,
60013 	AGP_1X = 13,
60014 	AGP_2X = 14,
60015 	AGP_4X = 15,
60016 	AGP_8X = 16,
60017 	PCI_SPEED_66MHz_PCIX_533 = 17,
60018 	PCI_SPEED_100MHz_PCIX_533 = 18,
60019 	PCI_SPEED_133MHz_PCIX_533 = 19,
60020 	PCIE_SPEED_2_5GT = 20,
60021 	PCIE_SPEED_5_0GT = 21,
60022 	PCIE_SPEED_8_0GT = 22,
60023 	PCIE_SPEED_16_0GT = 23,
60024 	PCIE_SPEED_32_0GT = 24,
60025 	PCIE_SPEED_64_0GT = 25,
60026 	PCI_SPEED_UNKNOWN = 255,
60027 };
60028 
60029 struct pci_host_bridge {
60030 	struct device dev;
60031 	struct pci_bus *bus;
60032 	struct pci_ops *ops;
60033 	struct pci_ops *child_ops;
60034 	void *sysdata;
60035 	int busnr;
60036 	int domain_nr;
60037 	struct list_head windows;
60038 	struct list_head dma_ranges;
60039 	u8 (*swizzle_irq)(struct pci_dev *, u8 *);
60040 	int (*map_irq)(const struct pci_dev *, u8, u8);
60041 	void (*release_fn)(struct pci_host_bridge *);
60042 	void *release_data;
60043 	unsigned int ignore_reset_delay: 1;
60044 	unsigned int no_ext_tags: 1;
60045 	unsigned int native_aer: 1;
60046 	unsigned int native_pcie_hotplug: 1;
60047 	unsigned int native_shpc_hotplug: 1;
60048 	unsigned int native_pme: 1;
60049 	unsigned int native_ltr: 1;
60050 	unsigned int native_dpc: 1;
60051 	unsigned int preserve_config: 1;
60052 	unsigned int size_windows: 1;
60053 	unsigned int msi_domain: 1;
60054 	resource_size_t (*align_resource)(struct pci_dev *, const struct resource *, resource_size_t, resource_size_t, resource_size_t);
60055 	long: 64;
60056 	long: 64;
60057 	long: 64;
60058 	long: 64;
60059 	long: 64;
60060 	long: 64;
60061 	long: 64;
60062 	long unsigned int private[0];
60063 };
60064 
60065 enum {
60066 	PCI_REASSIGN_ALL_RSRC = 1,
60067 	PCI_REASSIGN_ALL_BUS = 2,
60068 	PCI_PROBE_ONLY = 4,
60069 	PCI_CAN_SKIP_ISA_ALIGN = 8,
60070 	PCI_ENABLE_PROC_DOMAINS = 16,
60071 	PCI_COMPAT_DOMAIN_0 = 32,
60072 	PCI_SCAN_ALL_PCIE_DEVS = 64,
60073 };
60074 
60075 struct acpi_device_status {
60076 	u32 present: 1;
60077 	u32 enabled: 1;
60078 	u32 show_in_ui: 1;
60079 	u32 functional: 1;
60080 	u32 battery_present: 1;
60081 	u32 reserved: 27;
60082 };
60083 
60084 struct acpi_device_flags {
60085 	u32 dynamic_status: 1;
60086 	u32 removable: 1;
60087 	u32 ejectable: 1;
60088 	u32 power_manageable: 1;
60089 	u32 match_driver: 1;
60090 	u32 initialized: 1;
60091 	u32 visited: 1;
60092 	u32 hotplug_notify: 1;
60093 	u32 is_dock_station: 1;
60094 	u32 of_compatible_ok: 1;
60095 	u32 coherent_dma: 1;
60096 	u32 cca_seen: 1;
60097 	u32 enumeration_by_parent: 1;
60098 	u32 honor_deps: 1;
60099 	u32 reserved: 18;
60100 };
60101 
60102 typedef char acpi_bus_id[8];
60103 
60104 struct acpi_pnp_type {
60105 	u32 hardware_id: 1;
60106 	u32 bus_address: 1;
60107 	u32 platform_id: 1;
60108 	u32 reserved: 29;
60109 };
60110 
60111 typedef u64 acpi_bus_address;
60112 
60113 typedef char acpi_device_name[40];
60114 
60115 typedef char acpi_device_class[20];
60116 
60117 union acpi_object;
60118 
60119 struct acpi_device_pnp {
60120 	acpi_bus_id bus_id;
60121 	int instance_no;
60122 	struct acpi_pnp_type type;
60123 	acpi_bus_address bus_address;
60124 	char *unique_id;
60125 	struct list_head ids;
60126 	acpi_device_name device_name;
60127 	acpi_device_class device_class;
60128 	union acpi_object *str_obj;
60129 };
60130 
60131 struct acpi_device_power_flags {
60132 	u32 explicit_get: 1;
60133 	u32 power_resources: 1;
60134 	u32 inrush_current: 1;
60135 	u32 power_removed: 1;
60136 	u32 ignore_parent: 1;
60137 	u32 dsw_present: 1;
60138 	u32 reserved: 26;
60139 };
60140 
60141 struct acpi_device_power_state {
60142 	struct {
60143 		u8 valid: 1;
60144 		u8 explicit_set: 1;
60145 		u8 reserved: 6;
60146 	} flags;
60147 	int power;
60148 	int latency;
60149 	struct list_head resources;
60150 };
60151 
60152 struct acpi_device_power {
60153 	int state;
60154 	struct acpi_device_power_flags flags;
60155 	struct acpi_device_power_state states[5];
60156 	u8 state_for_enumeration;
60157 };
60158 
60159 struct acpi_device_wakeup_flags {
60160 	u8 valid: 1;
60161 	u8 notifier_present: 1;
60162 };
60163 
60164 struct acpi_device_wakeup_context {
60165 	void (*func)(struct acpi_device_wakeup_context *);
60166 	struct device *dev;
60167 };
60168 
60169 struct acpi_device_wakeup {
60170 	acpi_handle gpe_device;
60171 	u64 gpe_number;
60172 	u64 sleep_state;
60173 	struct list_head resources;
60174 	struct acpi_device_wakeup_flags flags;
60175 	struct acpi_device_wakeup_context context;
60176 	struct wakeup_source *ws;
60177 	int prepare_count;
60178 	int enable_count;
60179 };
60180 
60181 struct acpi_device_perf_flags {
60182 	u8 reserved: 8;
60183 };
60184 
60185 struct acpi_device_perf_state;
60186 
60187 struct acpi_device_perf {
60188 	int state;
60189 	struct acpi_device_perf_flags flags;
60190 	int state_count;
60191 	struct acpi_device_perf_state *states;
60192 };
60193 
60194 struct acpi_device_dir {
60195 	struct proc_dir_entry *entry;
60196 };
60197 
60198 struct acpi_device_data {
60199 	const union acpi_object *pointer;
60200 	struct list_head properties;
60201 	const union acpi_object *of_compatible;
60202 	struct list_head subnodes;
60203 };
60204 
60205 struct acpi_scan_handler;
60206 
60207 struct acpi_hotplug_context;
60208 
60209 struct acpi_driver;
60210 
60211 struct acpi_gpio_mapping;
60212 
60213 struct acpi_device {
60214 	u32 pld_crc;
60215 	int device_type;
60216 	acpi_handle handle;
60217 	struct fwnode_handle fwnode;
60218 	struct acpi_device *parent;
60219 	struct list_head children;
60220 	struct list_head node;
60221 	struct list_head wakeup_list;
60222 	struct list_head del_list;
60223 	struct acpi_device_status status;
60224 	struct acpi_device_flags flags;
60225 	struct acpi_device_pnp pnp;
60226 	struct acpi_device_power power;
60227 	struct acpi_device_wakeup wakeup;
60228 	struct acpi_device_perf performance;
60229 	struct acpi_device_dir dir;
60230 	struct acpi_device_data data;
60231 	struct acpi_scan_handler *handler;
60232 	struct acpi_hotplug_context *hp;
60233 	struct acpi_driver *driver;
60234 	const struct acpi_gpio_mapping *driver_gpios;
60235 	void *driver_data;
60236 	struct device dev;
60237 	unsigned int physical_node_count;
60238 	unsigned int dep_unmet;
60239 	struct list_head physical_node_list;
60240 	struct mutex physical_node_lock;
60241 	void (*remove)(struct acpi_device *);
60242 };
60243 
60244 struct hotplug_slot_ops {
60245 	int (*enable_slot)(struct hotplug_slot *);
60246 	int (*disable_slot)(struct hotplug_slot *);
60247 	int (*set_attention_status)(struct hotplug_slot *, u8);
60248 	int (*hardware_test)(struct hotplug_slot *, u32);
60249 	int (*get_power_status)(struct hotplug_slot *, u8 *);
60250 	int (*get_attention_status)(struct hotplug_slot *, u8 *);
60251 	int (*get_latch_status)(struct hotplug_slot *, u8 *);
60252 	int (*get_adapter_status)(struct hotplug_slot *, u8 *);
60253 	int (*reset_slot)(struct hotplug_slot *, bool);
60254 };
60255 
60256 typedef u64 acpi_io_address;
60257 
60258 typedef u32 acpi_object_type;
60259 
60260 union acpi_object {
60261 	acpi_object_type type;
60262 	struct {
60263 		acpi_object_type type;
60264 		u64 value;
60265 	} integer;
60266 	struct {
60267 		acpi_object_type type;
60268 		u32 length;
60269 		char *pointer;
60270 	} string;
60271 	struct {
60272 		acpi_object_type type;
60273 		u32 length;
60274 		u8 *pointer;
60275 	} buffer;
60276 	struct {
60277 		acpi_object_type type;
60278 		u32 count;
60279 		union acpi_object *elements;
60280 	} package;
60281 	struct {
60282 		acpi_object_type type;
60283 		acpi_object_type actual_type;
60284 		acpi_handle handle;
60285 	} reference;
60286 	struct {
60287 		acpi_object_type type;
60288 		u32 proc_id;
60289 		acpi_io_address pblk_address;
60290 		u32 pblk_length;
60291 	} processor;
60292 	struct {
60293 		acpi_object_type type;
60294 		u32 system_level;
60295 		u32 resource_order;
60296 	} power_resource;
60297 };
60298 
60299 struct acpi_hotplug_profile {
60300 	struct kobject kobj;
60301 	int (*scan_dependent)(struct acpi_device *);
60302 	void (*notify_online)(struct acpi_device *);
60303 	bool enabled: 1;
60304 	bool demand_offline: 1;
60305 };
60306 
60307 struct acpi_scan_handler {
60308 	const struct acpi_device_id *ids;
60309 	struct list_head list_node;
60310 	bool (*match)(const char *, const struct acpi_device_id **);
60311 	int (*attach)(struct acpi_device *, const struct acpi_device_id *);
60312 	void (*detach)(struct acpi_device *);
60313 	void (*bind)(struct device *);
60314 	void (*unbind)(struct device *);
60315 	struct acpi_hotplug_profile hotplug;
60316 };
60317 
60318 struct acpi_hotplug_context {
60319 	struct acpi_device *self;
60320 	int (*notify)(struct acpi_device *, u32);
60321 	void (*uevent)(struct acpi_device *, u32);
60322 	void (*fixup)(struct acpi_device *);
60323 };
60324 
60325 typedef int (*acpi_op_add)(struct acpi_device *);
60326 
60327 typedef int (*acpi_op_remove)(struct acpi_device *);
60328 
60329 typedef void (*acpi_op_notify)(struct acpi_device *, u32);
60330 
60331 struct acpi_device_ops {
60332 	acpi_op_add add;
60333 	acpi_op_remove remove;
60334 	acpi_op_notify notify;
60335 };
60336 
60337 struct acpi_driver {
60338 	char name[80];
60339 	char class[80];
60340 	const struct acpi_device_id *ids;
60341 	unsigned int flags;
60342 	struct acpi_device_ops ops;
60343 	struct device_driver drv;
60344 	struct module *owner;
60345 };
60346 
60347 struct acpi_device_perf_state {
60348 	struct {
60349 		u8 valid: 1;
60350 		u8 reserved: 7;
60351 	} flags;
60352 	u8 power;
60353 	u8 performance;
60354 	int latency;
60355 };
60356 
60357 struct acpi_gpio_params;
60358 
60359 struct acpi_gpio_mapping {
60360 	const char *name;
60361 	const struct acpi_gpio_params *data;
60362 	unsigned int size;
60363 	unsigned int quirks;
60364 };
60365 
60366 enum pci_bar_type {
60367 	pci_bar_unknown = 0,
60368 	pci_bar_io = 1,
60369 	pci_bar_mem32 = 2,
60370 	pci_bar_mem64 = 3,
60371 };
60372 
60373 struct pci_domain_busn_res {
60374 	struct list_head list;
60375 	struct resource res;
60376 	int domain_nr;
60377 };
60378 
60379 struct bus_attribute {
60380 	struct attribute attr;
60381 	ssize_t (*show)(struct bus_type *, char *);
60382 	ssize_t (*store)(struct bus_type *, const char *, size_t);
60383 };
60384 
60385 enum pcie_reset_state {
60386 	pcie_deassert_reset = 1,
60387 	pcie_warm_reset = 2,
60388 	pcie_hot_reset = 3,
60389 };
60390 
60391 enum pcie_link_width {
60392 	PCIE_LNK_WIDTH_RESRV = 0,
60393 	PCIE_LNK_X1 = 1,
60394 	PCIE_LNK_X2 = 2,
60395 	PCIE_LNK_X4 = 4,
60396 	PCIE_LNK_X8 = 8,
60397 	PCIE_LNK_X12 = 12,
60398 	PCIE_LNK_X16 = 16,
60399 	PCIE_LNK_X32 = 32,
60400 	PCIE_LNK_WIDTH_UNKNOWN = 255,
60401 };
60402 
60403 typedef int (*arch_set_vga_state_t)(struct pci_dev *, bool, unsigned int, u32);
60404 
60405 struct pci_cap_saved_data {
60406 	u16 cap_nr;
60407 	bool cap_extended;
60408 	unsigned int size;
60409 	u32 data[0];
60410 };
60411 
60412 struct pci_cap_saved_state {
60413 	struct hlist_node next;
60414 	struct pci_cap_saved_data cap;
60415 };
60416 
60417 struct pci_reset_fn_method {
60418 	int (*reset_fn)(struct pci_dev *, bool);
60419 	char *name;
60420 };
60421 
60422 struct pci_pme_device {
60423 	struct list_head list;
60424 	struct pci_dev *dev;
60425 };
60426 
60427 struct pci_saved_state {
60428 	u32 config_space[16];
60429 	struct pci_cap_saved_data cap[0];
60430 };
60431 
60432 struct pci_devres {
60433 	unsigned int enabled: 1;
60434 	unsigned int pinned: 1;
60435 	unsigned int orig_intx: 1;
60436 	unsigned int restore_intx: 1;
60437 	unsigned int mwi: 1;
60438 	u32 region_mask;
60439 };
60440 
60441 struct driver_attribute {
60442 	struct attribute attr;
60443 	ssize_t (*show)(struct device_driver *, char *);
60444 	ssize_t (*store)(struct device_driver *, const char *, size_t);
60445 };
60446 
60447 enum dev_dma_attr {
60448 	DEV_DMA_NOT_SUPPORTED = 0,
60449 	DEV_DMA_NON_COHERENT = 1,
60450 	DEV_DMA_COHERENT = 2,
60451 };
60452 
60453 struct pcie_device {
60454 	int irq;
60455 	struct pci_dev *port;
60456 	u32 service;
60457 	void *priv_data;
60458 	struct device device;
60459 };
60460 
60461 struct pcie_port_service_driver {
60462 	const char *name;
60463 	int (*probe)(struct pcie_device *);
60464 	void (*remove)(struct pcie_device *);
60465 	int (*suspend)(struct pcie_device *);
60466 	int (*resume_noirq)(struct pcie_device *);
60467 	int (*resume)(struct pcie_device *);
60468 	int (*runtime_suspend)(struct pcie_device *);
60469 	int (*runtime_resume)(struct pcie_device *);
60470 	int (*slot_reset)(struct pcie_device *);
60471 	int port_type;
60472 	u32 service;
60473 	struct device_driver driver;
60474 };
60475 
60476 struct pci_dynid {
60477 	struct list_head node;
60478 	struct pci_device_id id;
60479 };
60480 
60481 struct drv_dev_and_id {
60482 	struct pci_driver *drv;
60483 	struct pci_dev *dev;
60484 	const struct pci_device_id *id;
60485 };
60486 
60487 enum pci_mmap_state {
60488 	pci_mmap_io = 0,
60489 	pci_mmap_mem = 1,
60490 };
60491 
60492 enum pci_mmap_api {
60493 	PCI_MMAP_SYSFS = 0,
60494 	PCI_MMAP_PROCFS = 1,
60495 };
60496 
60497 struct pci_dev_resource {
60498 	struct list_head list;
60499 	struct resource *res;
60500 	struct pci_dev *dev;
60501 	resource_size_t start;
60502 	resource_size_t end;
60503 	resource_size_t add_size;
60504 	resource_size_t min_align;
60505 	long unsigned int flags;
60506 };
60507 
60508 enum release_type {
60509 	leaf_only = 0,
60510 	whole_subtree = 1,
60511 };
60512 
60513 enum enable_type {
60514 	undefined = 4294967295,
60515 	user_disabled = 0,
60516 	auto_disabled = 1,
60517 	user_enabled = 2,
60518 	auto_enabled = 3,
60519 };
60520 
60521 struct msix_entry {
60522 	u32 vector;
60523 	u16 entry;
60524 };
60525 
60526 struct portdrv_service_data {
60527 	struct pcie_port_service_driver *drv;
60528 	struct device *dev;
60529 	u32 service;
60530 };
60531 
60532 typedef int (*pcie_callback_t)(struct pcie_device *);
60533 
60534 enum pci_ers_result {
60535 	PCI_ERS_RESULT_NONE = 1,
60536 	PCI_ERS_RESULT_CAN_RECOVER = 2,
60537 	PCI_ERS_RESULT_NEED_RESET = 3,
60538 	PCI_ERS_RESULT_DISCONNECT = 4,
60539 	PCI_ERS_RESULT_RECOVERED = 5,
60540 	PCI_ERS_RESULT_NO_AER_DRIVER = 6,
60541 };
60542 
60543 struct walk_rcec_data {
60544 	struct pci_dev *rcec;
60545 	int (*user_callback)(struct pci_dev *, void *);
60546 	void *user_data;
60547 };
60548 
60549 struct pcie_link_state {
60550 	struct pci_dev *pdev;
60551 	struct pci_dev *downstream;
60552 	struct pcie_link_state *root;
60553 	struct pcie_link_state *parent;
60554 	struct list_head sibling;
60555 	u32 aspm_support: 7;
60556 	u32 aspm_enabled: 7;
60557 	u32 aspm_capable: 7;
60558 	u32 aspm_default: 7;
60559 	char: 4;
60560 	u32 aspm_disable: 7;
60561 	u32 clkpm_capable: 1;
60562 	u32 clkpm_enabled: 1;
60563 	u32 clkpm_default: 1;
60564 	u32 clkpm_disable: 1;
60565 };
60566 
60567 struct pci_filp_private {
60568 	enum pci_mmap_state mmap_state;
60569 	int write_combine;
60570 };
60571 
60572 struct pci_slot_attribute {
60573 	struct attribute attr;
60574 	ssize_t (*show)(struct pci_slot *, char *);
60575 	ssize_t (*store)(struct pci_slot *, const char *, size_t);
60576 };
60577 
60578 typedef u64 acpi_size;
60579 
60580 struct acpi_buffer {
60581 	acpi_size length;
60582 	void *pointer;
60583 };
60584 
60585 struct acpi_pci_root {
60586 	struct acpi_device *device;
60587 	struct pci_bus *bus;
60588 	u16 segment;
60589 	struct resource secondary;
60590 	u32 osc_support_set;
60591 	u32 osc_control_set;
60592 	phys_addr_t mcfg_addr;
60593 };
60594 
60595 enum pm_qos_flags_status {
60596 	PM_QOS_FLAGS_UNDEFINED = 4294967295,
60597 	PM_QOS_FLAGS_NONE = 0,
60598 	PM_QOS_FLAGS_SOME = 1,
60599 	PM_QOS_FLAGS_ALL = 2,
60600 };
60601 
60602 struct hpx_type0 {
60603 	u32 revision;
60604 	u8 cache_line_size;
60605 	u8 latency_timer;
60606 	u8 enable_serr;
60607 	u8 enable_perr;
60608 };
60609 
60610 struct hpx_type1 {
60611 	u32 revision;
60612 	u8 max_mem_read;
60613 	u8 avg_max_split;
60614 	u16 tot_max_split;
60615 };
60616 
60617 struct hpx_type2 {
60618 	u32 revision;
60619 	u32 unc_err_mask_and;
60620 	u32 unc_err_mask_or;
60621 	u32 unc_err_sever_and;
60622 	u32 unc_err_sever_or;
60623 	u32 cor_err_mask_and;
60624 	u32 cor_err_mask_or;
60625 	u32 adv_err_cap_and;
60626 	u32 adv_err_cap_or;
60627 	u16 pci_exp_devctl_and;
60628 	u16 pci_exp_devctl_or;
60629 	u16 pci_exp_lnkctl_and;
60630 	u16 pci_exp_lnkctl_or;
60631 	u32 sec_unc_err_sever_and;
60632 	u32 sec_unc_err_sever_or;
60633 	u32 sec_unc_err_mask_and;
60634 	u32 sec_unc_err_mask_or;
60635 };
60636 
60637 struct hpx_type3 {
60638 	u16 device_type;
60639 	u16 function_type;
60640 	u16 config_space_location;
60641 	u16 pci_exp_cap_id;
60642 	u16 pci_exp_cap_ver;
60643 	u16 pci_exp_vendor_id;
60644 	u16 dvsec_id;
60645 	u16 dvsec_rev;
60646 	u16 match_offset;
60647 	u32 match_mask_and;
60648 	u32 match_value;
60649 	u16 reg_offset;
60650 	u32 reg_mask_and;
60651 	u32 reg_mask_or;
60652 };
60653 
60654 enum hpx_type3_dev_type {
60655 	HPX_TYPE_ENDPOINT = 1,
60656 	HPX_TYPE_LEG_END = 2,
60657 	HPX_TYPE_RC_END = 4,
60658 	HPX_TYPE_RC_EC = 8,
60659 	HPX_TYPE_ROOT_PORT = 16,
60660 	HPX_TYPE_UPSTREAM = 32,
60661 	HPX_TYPE_DOWNSTREAM = 64,
60662 	HPX_TYPE_PCI_BRIDGE = 128,
60663 	HPX_TYPE_PCIE_BRIDGE = 256,
60664 };
60665 
60666 enum hpx_type3_fn_type {
60667 	HPX_FN_NORMAL = 1,
60668 	HPX_FN_SRIOV_PHYS = 2,
60669 	HPX_FN_SRIOV_VIRT = 4,
60670 };
60671 
60672 enum hpx_type3_cfg_loc {
60673 	HPX_CFG_PCICFG = 0,
60674 	HPX_CFG_PCIE_CAP = 1,
60675 	HPX_CFG_PCIE_CAP_EXT = 2,
60676 	HPX_CFG_VEND_CAP = 3,
60677 	HPX_CFG_DVSEC = 4,
60678 	HPX_CFG_MAX = 5,
60679 };
60680 
60681 enum pci_irq_reroute_variant {
60682 	INTEL_IRQ_REROUTE_VARIANT = 1,
60683 	MAX_IRQ_REROUTE_VARIANTS = 3,
60684 };
60685 
60686 struct pci_fixup {
60687 	u16 vendor;
60688 	u16 device;
60689 	u32 class;
60690 	unsigned int class_shift;
60691 	int hook_offset;
60692 };
60693 
60694 enum {
60695 	NVME_REG_CAP = 0,
60696 	NVME_REG_VS = 8,
60697 	NVME_REG_INTMS = 12,
60698 	NVME_REG_INTMC = 16,
60699 	NVME_REG_CC = 20,
60700 	NVME_REG_CSTS = 28,
60701 	NVME_REG_NSSR = 32,
60702 	NVME_REG_AQA = 36,
60703 	NVME_REG_ASQ = 40,
60704 	NVME_REG_ACQ = 48,
60705 	NVME_REG_CMBLOC = 56,
60706 	NVME_REG_CMBSZ = 60,
60707 	NVME_REG_BPINFO = 64,
60708 	NVME_REG_BPRSEL = 68,
60709 	NVME_REG_BPMBL = 72,
60710 	NVME_REG_CMBMSC = 80,
60711 	NVME_REG_PMRCAP = 3584,
60712 	NVME_REG_PMRCTL = 3588,
60713 	NVME_REG_PMRSTS = 3592,
60714 	NVME_REG_PMREBS = 3596,
60715 	NVME_REG_PMRSWTP = 3600,
60716 	NVME_REG_DBS = 4096,
60717 };
60718 
60719 enum {
60720 	NVME_CC_ENABLE = 1,
60721 	NVME_CC_EN_SHIFT = 0,
60722 	NVME_CC_CSS_SHIFT = 4,
60723 	NVME_CC_MPS_SHIFT = 7,
60724 	NVME_CC_AMS_SHIFT = 11,
60725 	NVME_CC_SHN_SHIFT = 14,
60726 	NVME_CC_IOSQES_SHIFT = 16,
60727 	NVME_CC_IOCQES_SHIFT = 20,
60728 	NVME_CC_CSS_NVM = 0,
60729 	NVME_CC_CSS_CSI = 96,
60730 	NVME_CC_CSS_MASK = 112,
60731 	NVME_CC_AMS_RR = 0,
60732 	NVME_CC_AMS_WRRU = 2048,
60733 	NVME_CC_AMS_VS = 14336,
60734 	NVME_CC_SHN_NONE = 0,
60735 	NVME_CC_SHN_NORMAL = 16384,
60736 	NVME_CC_SHN_ABRUPT = 32768,
60737 	NVME_CC_SHN_MASK = 49152,
60738 	NVME_CC_IOSQES = 393216,
60739 	NVME_CC_IOCQES = 4194304,
60740 	NVME_CAP_CSS_NVM = 1,
60741 	NVME_CAP_CSS_CSI = 64,
60742 	NVME_CSTS_RDY = 1,
60743 	NVME_CSTS_CFS = 2,
60744 	NVME_CSTS_NSSRO = 16,
60745 	NVME_CSTS_PP = 32,
60746 	NVME_CSTS_SHST_NORMAL = 0,
60747 	NVME_CSTS_SHST_OCCUR = 4,
60748 	NVME_CSTS_SHST_CMPLT = 8,
60749 	NVME_CSTS_SHST_MASK = 12,
60750 	NVME_CMBMSC_CRE = 1,
60751 	NVME_CMBMSC_CMSE = 2,
60752 };
60753 
60754 enum {
60755 	NVME_AEN_BIT_NS_ATTR = 8,
60756 	NVME_AEN_BIT_FW_ACT = 9,
60757 	NVME_AEN_BIT_ANA_CHANGE = 11,
60758 	NVME_AEN_BIT_DISC_CHANGE = 31,
60759 };
60760 
60761 enum {
60762 	SWITCHTEC_GAS_MRPC_OFFSET = 0,
60763 	SWITCHTEC_GAS_TOP_CFG_OFFSET = 4096,
60764 	SWITCHTEC_GAS_SW_EVENT_OFFSET = 6144,
60765 	SWITCHTEC_GAS_SYS_INFO_OFFSET = 8192,
60766 	SWITCHTEC_GAS_FLASH_INFO_OFFSET = 8704,
60767 	SWITCHTEC_GAS_PART_CFG_OFFSET = 16384,
60768 	SWITCHTEC_GAS_NTB_OFFSET = 65536,
60769 	SWITCHTEC_GAS_PFF_CSR_OFFSET = 1261568,
60770 };
60771 
60772 enum {
60773 	SWITCHTEC_NTB_REG_INFO_OFFSET = 0,
60774 	SWITCHTEC_NTB_REG_CTRL_OFFSET = 16384,
60775 	SWITCHTEC_NTB_REG_DBMSG_OFFSET = 409600,
60776 };
60777 
60778 struct nt_partition_info {
60779 	u32 xlink_enabled;
60780 	u32 target_part_low;
60781 	u32 target_part_high;
60782 	u32 reserved;
60783 };
60784 
60785 struct ntb_info_regs {
60786 	u8 partition_count;
60787 	u8 partition_id;
60788 	u16 reserved1;
60789 	u64 ep_map;
60790 	u16 requester_id;
60791 	u16 reserved2;
60792 	u32 reserved3[4];
60793 	struct nt_partition_info ntp_info[48];
60794 } __attribute__((packed));
60795 
60796 struct ntb_ctrl_regs {
60797 	u32 partition_status;
60798 	u32 partition_op;
60799 	u32 partition_ctrl;
60800 	u32 bar_setup;
60801 	u32 bar_error;
60802 	u16 lut_table_entries;
60803 	u16 lut_table_offset;
60804 	u32 lut_error;
60805 	u16 req_id_table_size;
60806 	u16 req_id_table_offset;
60807 	u32 req_id_error;
60808 	u32 reserved1[7];
60809 	struct {
60810 		u32 ctl;
60811 		u32 win_size;
60812 		u64 xlate_addr;
60813 	} bar_entry[6];
60814 	struct {
60815 		u32 win_size;
60816 		u32 reserved[3];
60817 	} bar_ext_entry[6];
60818 	u32 reserved2[192];
60819 	u32 req_id_table[512];
60820 	u32 reserved3[256];
60821 	u64 lut_entry[512];
60822 };
60823 
60824 struct pci_dev_reset_methods {
60825 	u16 vendor;
60826 	u16 device;
60827 	int (*reset)(struct pci_dev *, bool);
60828 };
60829 
60830 struct pci_dev_acs_enabled {
60831 	u16 vendor;
60832 	u16 device;
60833 	int (*acs_enabled)(struct pci_dev *, u16);
60834 };
60835 
60836 struct pci_dev_acs_ops {
60837 	u16 vendor;
60838 	u16 device;
60839 	int (*enable_acs)(struct pci_dev *);
60840 	int (*disable_acs_redir)(struct pci_dev *);
60841 };
60842 
60843 enum dmi_device_type {
60844 	DMI_DEV_TYPE_ANY = 0,
60845 	DMI_DEV_TYPE_OTHER = 1,
60846 	DMI_DEV_TYPE_UNKNOWN = 2,
60847 	DMI_DEV_TYPE_VIDEO = 3,
60848 	DMI_DEV_TYPE_SCSI = 4,
60849 	DMI_DEV_TYPE_ETHERNET = 5,
60850 	DMI_DEV_TYPE_TOKENRING = 6,
60851 	DMI_DEV_TYPE_SOUND = 7,
60852 	DMI_DEV_TYPE_PATA = 8,
60853 	DMI_DEV_TYPE_SATA = 9,
60854 	DMI_DEV_TYPE_SAS = 10,
60855 	DMI_DEV_TYPE_IPMI = 4294967295,
60856 	DMI_DEV_TYPE_OEM_STRING = 4294967294,
60857 	DMI_DEV_TYPE_DEV_ONBOARD = 4294967293,
60858 	DMI_DEV_TYPE_DEV_SLOT = 4294967292,
60859 };
60860 
60861 struct dmi_device {
60862 	struct list_head list;
60863 	int type;
60864 	const char *name;
60865 	void *device_data;
60866 };
60867 
60868 struct dmi_dev_onboard {
60869 	struct dmi_device dev;
60870 	int instance;
60871 	int segment;
60872 	int bus;
60873 	int devfn;
60874 };
60875 
60876 enum smbios_attr_enum {
60877 	SMBIOS_ATTR_NONE = 0,
60878 	SMBIOS_ATTR_LABEL_SHOW = 1,
60879 	SMBIOS_ATTR_INSTANCE_SHOW = 2,
60880 };
60881 
60882 enum acpi_attr_enum {
60883 	ACPI_ATTR_LABEL_SHOW = 0,
60884 	ACPI_ATTR_INDEX_SHOW = 1,
60885 };
60886 
60887 struct vgastate {
60888 	void *vgabase;
60889 	long unsigned int membase;
60890 	__u32 memsize;
60891 	__u32 flags;
60892 	__u32 depth;
60893 	__u32 num_attr;
60894 	__u32 num_crtc;
60895 	__u32 num_gfx;
60896 	__u32 num_seq;
60897 	void *vidstate;
60898 };
60899 
60900 struct linux_logo {
60901 	int type;
60902 	unsigned int width;
60903 	unsigned int height;
60904 	unsigned int clutsize;
60905 	const unsigned char *clut;
60906 	const unsigned char *data;
60907 };
60908 
60909 struct fb_fix_screeninfo {
60910 	char id[16];
60911 	long unsigned int smem_start;
60912 	__u32 smem_len;
60913 	__u32 type;
60914 	__u32 type_aux;
60915 	__u32 visual;
60916 	__u16 xpanstep;
60917 	__u16 ypanstep;
60918 	__u16 ywrapstep;
60919 	__u32 line_length;
60920 	long unsigned int mmio_start;
60921 	__u32 mmio_len;
60922 	__u32 accel;
60923 	__u16 capabilities;
60924 	__u16 reserved[2];
60925 };
60926 
60927 struct fb_bitfield {
60928 	__u32 offset;
60929 	__u32 length;
60930 	__u32 msb_right;
60931 };
60932 
60933 struct fb_var_screeninfo {
60934 	__u32 xres;
60935 	__u32 yres;
60936 	__u32 xres_virtual;
60937 	__u32 yres_virtual;
60938 	__u32 xoffset;
60939 	__u32 yoffset;
60940 	__u32 bits_per_pixel;
60941 	__u32 grayscale;
60942 	struct fb_bitfield red;
60943 	struct fb_bitfield green;
60944 	struct fb_bitfield blue;
60945 	struct fb_bitfield transp;
60946 	__u32 nonstd;
60947 	__u32 activate;
60948 	__u32 height;
60949 	__u32 width;
60950 	__u32 accel_flags;
60951 	__u32 pixclock;
60952 	__u32 left_margin;
60953 	__u32 right_margin;
60954 	__u32 upper_margin;
60955 	__u32 lower_margin;
60956 	__u32 hsync_len;
60957 	__u32 vsync_len;
60958 	__u32 sync;
60959 	__u32 vmode;
60960 	__u32 rotate;
60961 	__u32 colorspace;
60962 	__u32 reserved[4];
60963 };
60964 
60965 struct fb_cmap {
60966 	__u32 start;
60967 	__u32 len;
60968 	__u16 *red;
60969 	__u16 *green;
60970 	__u16 *blue;
60971 	__u16 *transp;
60972 };
60973 
60974 enum {
60975 	FB_BLANK_UNBLANK = 0,
60976 	FB_BLANK_NORMAL = 1,
60977 	FB_BLANK_VSYNC_SUSPEND = 2,
60978 	FB_BLANK_HSYNC_SUSPEND = 3,
60979 	FB_BLANK_POWERDOWN = 4,
60980 };
60981 
60982 struct fb_copyarea {
60983 	__u32 dx;
60984 	__u32 dy;
60985 	__u32 width;
60986 	__u32 height;
60987 	__u32 sx;
60988 	__u32 sy;
60989 };
60990 
60991 struct fb_fillrect {
60992 	__u32 dx;
60993 	__u32 dy;
60994 	__u32 width;
60995 	__u32 height;
60996 	__u32 color;
60997 	__u32 rop;
60998 };
60999 
61000 struct fb_image {
61001 	__u32 dx;
61002 	__u32 dy;
61003 	__u32 width;
61004 	__u32 height;
61005 	__u32 fg_color;
61006 	__u32 bg_color;
61007 	__u8 depth;
61008 	const char *data;
61009 	struct fb_cmap cmap;
61010 };
61011 
61012 struct fbcurpos {
61013 	__u16 x;
61014 	__u16 y;
61015 };
61016 
61017 struct fb_cursor {
61018 	__u16 set;
61019 	__u16 enable;
61020 	__u16 rop;
61021 	const char *mask;
61022 	struct fbcurpos hot;
61023 	struct fb_image image;
61024 };
61025 
61026 struct fb_chroma {
61027 	__u32 redx;
61028 	__u32 greenx;
61029 	__u32 bluex;
61030 	__u32 whitex;
61031 	__u32 redy;
61032 	__u32 greeny;
61033 	__u32 bluey;
61034 	__u32 whitey;
61035 };
61036 
61037 struct fb_videomode;
61038 
61039 struct fb_monspecs {
61040 	struct fb_chroma chroma;
61041 	struct fb_videomode *modedb;
61042 	__u8 manufacturer[4];
61043 	__u8 monitor[14];
61044 	__u8 serial_no[14];
61045 	__u8 ascii[14];
61046 	__u32 modedb_len;
61047 	__u32 model;
61048 	__u32 serial;
61049 	__u32 year;
61050 	__u32 week;
61051 	__u32 hfmin;
61052 	__u32 hfmax;
61053 	__u32 dclkmin;
61054 	__u32 dclkmax;
61055 	__u16 input;
61056 	__u16 dpms;
61057 	__u16 signal;
61058 	__u16 vfmin;
61059 	__u16 vfmax;
61060 	__u16 gamma;
61061 	__u16 gtf: 1;
61062 	__u16 misc;
61063 	__u8 version;
61064 	__u8 revision;
61065 	__u8 max_x;
61066 	__u8 max_y;
61067 };
61068 
61069 struct fb_videomode {
61070 	const char *name;
61071 	u32 refresh;
61072 	u32 xres;
61073 	u32 yres;
61074 	u32 pixclock;
61075 	u32 left_margin;
61076 	u32 right_margin;
61077 	u32 upper_margin;
61078 	u32 lower_margin;
61079 	u32 hsync_len;
61080 	u32 vsync_len;
61081 	u32 sync;
61082 	u32 vmode;
61083 	u32 flag;
61084 };
61085 
61086 struct fb_info;
61087 
61088 struct fb_event {
61089 	struct fb_info *info;
61090 	void *data;
61091 };
61092 
61093 struct fb_pixmap {
61094 	u8 *addr;
61095 	u32 size;
61096 	u32 offset;
61097 	u32 buf_align;
61098 	u32 scan_align;
61099 	u32 access_align;
61100 	u32 flags;
61101 	u32 blit_x;
61102 	u32 blit_y;
61103 	void (*writeio)(struct fb_info *, void *, void *, unsigned int);
61104 	void (*readio)(struct fb_info *, void *, void *, unsigned int);
61105 };
61106 
61107 struct fb_ops;
61108 
61109 struct fb_tile_ops;
61110 
61111 struct apertures_struct;
61112 
61113 struct fb_info {
61114 	refcount_t count;
61115 	int node;
61116 	int flags;
61117 	int fbcon_rotate_hint;
61118 	struct mutex lock;
61119 	struct mutex mm_lock;
61120 	struct fb_var_screeninfo var;
61121 	struct fb_fix_screeninfo fix;
61122 	struct fb_monspecs monspecs;
61123 	struct work_struct queue;
61124 	struct fb_pixmap pixmap;
61125 	struct fb_pixmap sprite;
61126 	struct fb_cmap cmap;
61127 	struct list_head modelist;
61128 	struct fb_videomode *mode;
61129 	const struct fb_ops *fbops;
61130 	struct device *device;
61131 	struct device *dev;
61132 	int class_flag;
61133 	struct fb_tile_ops *tileops;
61134 	union {
61135 		char *screen_base;
61136 		char *screen_buffer;
61137 	};
61138 	long unsigned int screen_size;
61139 	void *pseudo_palette;
61140 	u32 state;
61141 	void *fbcon_par;
61142 	void *par;
61143 	struct apertures_struct *apertures;
61144 	bool skip_vt_switch;
61145 };
61146 
61147 struct fb_blit_caps {
61148 	u32 x;
61149 	u32 y;
61150 	u32 len;
61151 	u32 flags;
61152 };
61153 
61154 struct fb_ops {
61155 	struct module *owner;
61156 	int (*fb_open)(struct fb_info *, int);
61157 	int (*fb_release)(struct fb_info *, int);
61158 	ssize_t (*fb_read)(struct fb_info *, char *, size_t, loff_t *);
61159 	ssize_t (*fb_write)(struct fb_info *, const char *, size_t, loff_t *);
61160 	int (*fb_check_var)(struct fb_var_screeninfo *, struct fb_info *);
61161 	int (*fb_set_par)(struct fb_info *);
61162 	int (*fb_setcolreg)(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, struct fb_info *);
61163 	int (*fb_setcmap)(struct fb_cmap *, struct fb_info *);
61164 	int (*fb_blank)(int, struct fb_info *);
61165 	int (*fb_pan_display)(struct fb_var_screeninfo *, struct fb_info *);
61166 	void (*fb_fillrect)(struct fb_info *, const struct fb_fillrect *);
61167 	void (*fb_copyarea)(struct fb_info *, const struct fb_copyarea *);
61168 	void (*fb_imageblit)(struct fb_info *, const struct fb_image *);
61169 	int (*fb_cursor)(struct fb_info *, struct fb_cursor *);
61170 	int (*fb_sync)(struct fb_info *);
61171 	int (*fb_ioctl)(struct fb_info *, unsigned int, long unsigned int);
61172 	int (*fb_compat_ioctl)(struct fb_info *, unsigned int, long unsigned int);
61173 	int (*fb_mmap)(struct fb_info *, struct vm_area_struct *);
61174 	void (*fb_get_caps)(struct fb_info *, struct fb_blit_caps *, struct fb_var_screeninfo *);
61175 	void (*fb_destroy)(struct fb_info *);
61176 	int (*fb_debug_enter)(struct fb_info *);
61177 	int (*fb_debug_leave)(struct fb_info *);
61178 };
61179 
61180 struct fb_tilemap {
61181 	__u32 width;
61182 	__u32 height;
61183 	__u32 depth;
61184 	__u32 length;
61185 	const __u8 *data;
61186 };
61187 
61188 struct fb_tilerect {
61189 	__u32 sx;
61190 	__u32 sy;
61191 	__u32 width;
61192 	__u32 height;
61193 	__u32 index;
61194 	__u32 fg;
61195 	__u32 bg;
61196 	__u32 rop;
61197 };
61198 
61199 struct fb_tilearea {
61200 	__u32 sx;
61201 	__u32 sy;
61202 	__u32 dx;
61203 	__u32 dy;
61204 	__u32 width;
61205 	__u32 height;
61206 };
61207 
61208 struct fb_tileblit {
61209 	__u32 sx;
61210 	__u32 sy;
61211 	__u32 width;
61212 	__u32 height;
61213 	__u32 fg;
61214 	__u32 bg;
61215 	__u32 length;
61216 	__u32 *indices;
61217 };
61218 
61219 struct fb_tilecursor {
61220 	__u32 sx;
61221 	__u32 sy;
61222 	__u32 mode;
61223 	__u32 shape;
61224 	__u32 fg;
61225 	__u32 bg;
61226 };
61227 
61228 struct fb_tile_ops {
61229 	void (*fb_settile)(struct fb_info *, struct fb_tilemap *);
61230 	void (*fb_tilecopy)(struct fb_info *, struct fb_tilearea *);
61231 	void (*fb_tilefill)(struct fb_info *, struct fb_tilerect *);
61232 	void (*fb_tileblit)(struct fb_info *, struct fb_tileblit *);
61233 	void (*fb_tilecursor)(struct fb_info *, struct fb_tilecursor *);
61234 	int (*fb_get_tilemax)(struct fb_info *);
61235 };
61236 
61237 struct aperture {
61238 	resource_size_t base;
61239 	resource_size_t size;
61240 };
61241 
61242 struct apertures_struct {
61243 	unsigned int count;
61244 	struct aperture ranges[0];
61245 };
61246 
61247 struct dmt_videomode {
61248 	u32 dmt_id;
61249 	u32 std_2byte_code;
61250 	u32 cvt_3byte_code;
61251 	const struct fb_videomode *mode;
61252 };
61253 
61254 enum backlight_update_reason {
61255 	BACKLIGHT_UPDATE_HOTKEY = 0,
61256 	BACKLIGHT_UPDATE_SYSFS = 1,
61257 };
61258 
61259 enum backlight_type {
61260 	BACKLIGHT_RAW = 1,
61261 	BACKLIGHT_PLATFORM = 2,
61262 	BACKLIGHT_FIRMWARE = 3,
61263 	BACKLIGHT_TYPE_MAX = 4,
61264 };
61265 
61266 enum backlight_notification {
61267 	BACKLIGHT_REGISTERED = 0,
61268 	BACKLIGHT_UNREGISTERED = 1,
61269 };
61270 
61271 enum backlight_scale {
61272 	BACKLIGHT_SCALE_UNKNOWN = 0,
61273 	BACKLIGHT_SCALE_LINEAR = 1,
61274 	BACKLIGHT_SCALE_NON_LINEAR = 2,
61275 };
61276 
61277 struct backlight_device;
61278 
61279 struct backlight_ops {
61280 	unsigned int options;
61281 	int (*update_status)(struct backlight_device *);
61282 	int (*get_brightness)(struct backlight_device *);
61283 	int (*check_fb)(struct backlight_device *, struct fb_info *);
61284 };
61285 
61286 struct backlight_properties {
61287 	int brightness;
61288 	int max_brightness;
61289 	int power;
61290 	int fb_blank;
61291 	enum backlight_type type;
61292 	unsigned int state;
61293 	enum backlight_scale scale;
61294 };
61295 
61296 struct backlight_device {
61297 	struct backlight_properties props;
61298 	struct mutex update_lock;
61299 	struct mutex ops_lock;
61300 	const struct backlight_ops *ops;
61301 	struct notifier_block fb_notif;
61302 	struct list_head entry;
61303 	struct device dev;
61304 	bool fb_bl_on[32];
61305 	int use_count;
61306 };
61307 
61308 struct fb_cmap_user {
61309 	__u32 start;
61310 	__u32 len;
61311 	__u16 *red;
61312 	__u16 *green;
61313 	__u16 *blue;
61314 	__u16 *transp;
61315 };
61316 
61317 struct fb_modelist {
61318 	struct list_head list;
61319 	struct fb_videomode mode;
61320 };
61321 
61322 struct logo_data {
61323 	int depth;
61324 	int needs_directpalette;
61325 	int needs_truepalette;
61326 	int needs_cmapreset;
61327 	const struct linux_logo *logo;
61328 };
61329 
61330 struct broken_edid {
61331 	u8 manufacturer[4];
61332 	u32 model;
61333 	u32 fix;
61334 };
61335 
61336 struct __fb_timings {
61337 	u32 dclk;
61338 	u32 hfreq;
61339 	u32 vfreq;
61340 	u32 hactive;
61341 	u32 vactive;
61342 	u32 hblank;
61343 	u32 vblank;
61344 	u32 htotal;
61345 	u32 vtotal;
61346 };
61347 
61348 struct fb_cvt_data {
61349 	u32 xres;
61350 	u32 yres;
61351 	u32 refresh;
61352 	u32 f_refresh;
61353 	u32 pixclock;
61354 	u32 hperiod;
61355 	u32 hblank;
61356 	u32 hfreq;
61357 	u32 htotal;
61358 	u32 vtotal;
61359 	u32 vsync;
61360 	u32 hsync;
61361 	u32 h_front_porch;
61362 	u32 h_back_porch;
61363 	u32 v_front_porch;
61364 	u32 v_back_porch;
61365 	u32 h_margin;
61366 	u32 v_margin;
61367 	u32 interlace;
61368 	u32 aspect_ratio;
61369 	u32 active_pixels;
61370 	u32 flags;
61371 	u32 status;
61372 };
61373 
61374 typedef unsigned char u_char;
61375 
61376 typedef short unsigned int u_short;
61377 
61378 struct fb_con2fbmap {
61379 	__u32 console;
61380 	__u32 framebuffer;
61381 };
61382 
61383 struct fbcon_display {
61384 	const u_char *fontdata;
61385 	int userfont;
61386 	u_short inverse;
61387 	short int yscroll;
61388 	int vrows;
61389 	int cursor_shape;
61390 	int con_rotate;
61391 	u32 xres_virtual;
61392 	u32 yres_virtual;
61393 	u32 height;
61394 	u32 width;
61395 	u32 bits_per_pixel;
61396 	u32 grayscale;
61397 	u32 nonstd;
61398 	u32 accel_flags;
61399 	u32 rotate;
61400 	struct fb_bitfield red;
61401 	struct fb_bitfield green;
61402 	struct fb_bitfield blue;
61403 	struct fb_bitfield transp;
61404 	const struct fb_videomode *mode;
61405 };
61406 
61407 struct fbcon_ops {
61408 	void (*clear)(struct vc_data *, struct fb_info *, int, int, int, int);
61409 	void (*putcs)(struct vc_data *, struct fb_info *, const short unsigned int *, int, int, int, int, int);
61410 	void (*clear_margins)(struct vc_data *, struct fb_info *, int, int);
61411 	void (*cursor)(struct vc_data *, struct fb_info *, int, int, int);
61412 	int (*update_start)(struct fb_info *);
61413 	int (*rotate_font)(struct fb_info *, struct vc_data *);
61414 	struct fb_var_screeninfo var;
61415 	struct timer_list cursor_timer;
61416 	struct fb_cursor cursor_state;
61417 	struct fbcon_display *p;
61418 	struct fb_info *info;
61419 	int currcon;
61420 	int cur_blink_jiffies;
61421 	int cursor_flash;
61422 	int cursor_reset;
61423 	int blank_state;
61424 	int graphics;
61425 	int save_graphics;
61426 	int flags;
61427 	int rotate;
61428 	int cur_rotate;
61429 	char *cursor_data;
61430 	u8 *fontbuffer;
61431 	u8 *fontdata;
61432 	u8 *cursor_src;
61433 	u32 cursor_size;
61434 	u32 fd_size;
61435 };
61436 
61437 enum {
61438 	FBCON_LOGO_CANSHOW = 4294967295,
61439 	FBCON_LOGO_DRAW = 4294967294,
61440 	FBCON_LOGO_DONTSHOW = 4294967293,
61441 };
61442 
61443 struct vesafb_par {
61444 	u32 pseudo_palette[256];
61445 	int wc_cookie;
61446 	struct resource *region;
61447 };
61448 
61449 typedef u16 acpi_owner_id;
61450 
61451 union acpi_name_union {
61452 	u32 integer;
61453 	char ascii[4];
61454 };
61455 
61456 struct acpi_table_desc {
61457 	acpi_physical_address address;
61458 	struct acpi_table_header *pointer;
61459 	u32 length;
61460 	union acpi_name_union signature;
61461 	acpi_owner_id owner_id;
61462 	u8 flags;
61463 	u16 validation_count;
61464 };
61465 
61466 enum acpi_cedt_type {
61467 	ACPI_CEDT_TYPE_CHBS = 0,
61468 	ACPI_CEDT_TYPE_CFMWS = 1,
61469 	ACPI_CEDT_TYPE_RESERVED = 2,
61470 };
61471 
61472 struct acpi_madt_io_sapic {
61473 	struct acpi_subtable_header header;
61474 	u8 id;
61475 	u8 reserved;
61476 	u32 global_irq_base;
61477 	u64 address;
61478 };
61479 
61480 struct acpi_madt_interrupt_source {
61481 	struct acpi_subtable_header header;
61482 	u16 inti_flags;
61483 	u8 type;
61484 	u8 id;
61485 	u8 eid;
61486 	u8 io_sapic_vector;
61487 	u32 global_irq;
61488 	u32 flags;
61489 };
61490 
61491 struct acpi_madt_generic_interrupt {
61492 	struct acpi_subtable_header header;
61493 	u16 reserved;
61494 	u32 cpu_interface_number;
61495 	u32 uid;
61496 	u32 flags;
61497 	u32 parking_version;
61498 	u32 performance_interrupt;
61499 	u64 parked_address;
61500 	u64 base_address;
61501 	u64 gicv_base_address;
61502 	u64 gich_base_address;
61503 	u32 vgic_interrupt;
61504 	u64 gicr_base_address;
61505 	u64 arm_mpidr;
61506 	u8 efficiency_class;
61507 	u8 reserved2[1];
61508 	u16 spe_interrupt;
61509 } __attribute__((packed));
61510 
61511 struct acpi_madt_generic_distributor {
61512 	struct acpi_subtable_header header;
61513 	u16 reserved;
61514 	u32 gic_id;
61515 	u64 base_address;
61516 	u32 global_irq_base;
61517 	u8 version;
61518 	u8 reserved2[3];
61519 };
61520 
61521 typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *);
61522 
61523 enum acpi_ec_event_state {
61524 	EC_EVENT_READY = 0,
61525 	EC_EVENT_IN_PROGRESS = 1,
61526 	EC_EVENT_COMPLETE = 2,
61527 };
61528 
61529 struct transaction;
61530 
61531 struct acpi_ec {
61532 	acpi_handle handle;
61533 	int gpe;
61534 	int irq;
61535 	long unsigned int command_addr;
61536 	long unsigned int data_addr;
61537 	bool global_lock;
61538 	long unsigned int flags;
61539 	long unsigned int reference_count;
61540 	struct mutex mutex;
61541 	wait_queue_head_t wait;
61542 	struct list_head list;
61543 	struct transaction *curr;
61544 	spinlock_t lock;
61545 	struct work_struct work;
61546 	long unsigned int timestamp;
61547 	enum acpi_ec_event_state event_state;
61548 	unsigned int events_to_process;
61549 	unsigned int events_in_progress;
61550 	unsigned int queries_in_progress;
61551 	bool busy_polling;
61552 	unsigned int polling_guard;
61553 };
61554 
61555 enum acpi_subtable_type {
61556 	ACPI_SUBTABLE_COMMON = 0,
61557 	ACPI_SUBTABLE_HMAT = 1,
61558 	ACPI_SUBTABLE_PRMT = 2,
61559 	ACPI_SUBTABLE_CEDT = 3,
61560 };
61561 
61562 struct acpi_subtable_entry {
61563 	union acpi_subtable_headers *hdr;
61564 	enum acpi_subtable_type type;
61565 };
61566 
61567 enum acpi_predicate {
61568 	all_versions = 0,
61569 	less_than_or_equal = 1,
61570 	equal = 2,
61571 	greater_than_or_equal = 3,
61572 };
61573 
61574 struct acpi_platform_list {
61575 	char oem_id[7];
61576 	char oem_table_id[9];
61577 	u32 oem_revision;
61578 	char *table;
61579 	enum acpi_predicate pred;
61580 	char *reason;
61581 	u32 data;
61582 };
61583 
61584 typedef char *acpi_string;
61585 
61586 struct acpi_osi_entry {
61587 	char string[64];
61588 	bool enable;
61589 };
61590 
61591 struct acpi_osi_config {
61592 	u8 default_disabling;
61593 	unsigned int linux_enable: 1;
61594 	unsigned int linux_dmi: 1;
61595 	unsigned int linux_cmdline: 1;
61596 	unsigned int darwin_enable: 1;
61597 	unsigned int darwin_dmi: 1;
61598 	unsigned int darwin_cmdline: 1;
61599 };
61600 
61601 typedef u32 acpi_name;
61602 
61603 typedef u8 acpi_adr_space_type;
61604 
61605 struct acpi_predefined_names {
61606 	const char *name;
61607 	u8 type;
61608 	char *val;
61609 };
61610 
61611 typedef u32 (*acpi_osd_handler)(void *);
61612 
61613 typedef void (*acpi_osd_exec_callback)(void *);
61614 
61615 typedef u32 (*acpi_sci_handler)(void *);
61616 
61617 typedef void (*acpi_gbl_event_handler)(u32, acpi_handle, u32, void *);
61618 
61619 typedef u32 (*acpi_event_handler)(void *);
61620 
61621 typedef u32 (*acpi_gpe_handler)(acpi_handle, u32, void *);
61622 
61623 typedef void (*acpi_notify_handler)(acpi_handle, u32, void *);
61624 
61625 typedef void (*acpi_object_handler)(acpi_handle, void *);
61626 
61627 typedef acpi_status (*acpi_init_handler)(acpi_handle, u32);
61628 
61629 typedef acpi_status (*acpi_exception_handler)(acpi_status, acpi_name, u16, u32, void *);
61630 
61631 typedef acpi_status (*acpi_table_handler)(u32, void *, void *);
61632 
61633 typedef acpi_status (*acpi_adr_space_handler)(u32, acpi_physical_address, u32, u64 *, void *, void *);
61634 
61635 typedef acpi_status (*acpi_adr_space_setup)(acpi_handle, u32, void *, void **);
61636 
61637 typedef u32 (*acpi_interface_handler)(acpi_string, u32);
61638 
61639 struct acpi_pci_id {
61640 	u16 segment;
61641 	u16 bus;
61642 	u16 device;
61643 	u16 function;
61644 };
61645 
61646 struct acpi_mem_mapping {
61647 	acpi_physical_address physical_address;
61648 	u8 *logical_address;
61649 	acpi_size length;
61650 	struct acpi_mem_mapping *next_mm;
61651 };
61652 
61653 struct acpi_mem_space_context {
61654 	u32 length;
61655 	acpi_physical_address address;
61656 	struct acpi_mem_mapping *cur_mm;
61657 	struct acpi_mem_mapping *first_mm;
61658 };
61659 
61660 struct acpi_table_facs {
61661 	char signature[4];
61662 	u32 length;
61663 	u32 hardware_signature;
61664 	u32 firmware_waking_vector;
61665 	u32 global_lock;
61666 	u32 flags;
61667 	u64 xfirmware_waking_vector;
61668 	u8 version;
61669 	u8 reserved[3];
61670 	u32 ospm_flags;
61671 	u8 reserved1[24];
61672 };
61673 
61674 typedef enum {
61675 	OSL_GLOBAL_LOCK_HANDLER = 0,
61676 	OSL_NOTIFY_HANDLER = 1,
61677 	OSL_GPE_HANDLER = 2,
61678 	OSL_DEBUGGER_MAIN_THREAD = 3,
61679 	OSL_DEBUGGER_EXEC_THREAD = 4,
61680 	OSL_EC_POLL_HANDLER = 5,
61681 	OSL_EC_BURST_HANDLER = 6,
61682 } acpi_execute_type;
61683 
61684 struct acpi_gpio_params {
61685 	unsigned int crs_entry_index;
61686 	unsigned int line_index;
61687 	bool active_low;
61688 };
61689 
61690 struct acpi_rw_lock {
61691 	void *writer_mutex;
61692 	void *reader_mutex;
61693 	u32 num_readers;
61694 };
61695 
61696 struct acpi_mutex_info {
61697 	void *mutex;
61698 	u32 use_count;
61699 	u64 thread_id;
61700 };
61701 
61702 union acpi_operand_object;
61703 
61704 struct acpi_namespace_node {
61705 	union acpi_operand_object *object;
61706 	u8 descriptor_type;
61707 	u8 type;
61708 	u16 flags;
61709 	union acpi_name_union name;
61710 	struct acpi_namespace_node *parent;
61711 	struct acpi_namespace_node *child;
61712 	struct acpi_namespace_node *peer;
61713 	acpi_owner_id owner_id;
61714 };
61715 
61716 struct acpi_object_common {
61717 	union acpi_operand_object *next_object;
61718 	u8 descriptor_type;
61719 	u8 type;
61720 	u16 reference_count;
61721 	u8 flags;
61722 };
61723 
61724 struct acpi_object_integer {
61725 	union acpi_operand_object *next_object;
61726 	u8 descriptor_type;
61727 	u8 type;
61728 	u16 reference_count;
61729 	u8 flags;
61730 	u8 fill[3];
61731 	u64 value;
61732 };
61733 
61734 struct acpi_object_string {
61735 	union acpi_operand_object *next_object;
61736 	u8 descriptor_type;
61737 	u8 type;
61738 	u16 reference_count;
61739 	u8 flags;
61740 	char *pointer;
61741 	u32 length;
61742 };
61743 
61744 struct acpi_object_buffer {
61745 	union acpi_operand_object *next_object;
61746 	u8 descriptor_type;
61747 	u8 type;
61748 	u16 reference_count;
61749 	u8 flags;
61750 	u8 *pointer;
61751 	u32 length;
61752 	u32 aml_length;
61753 	u8 *aml_start;
61754 	struct acpi_namespace_node *node;
61755 };
61756 
61757 struct acpi_object_package {
61758 	union acpi_operand_object *next_object;
61759 	u8 descriptor_type;
61760 	u8 type;
61761 	u16 reference_count;
61762 	u8 flags;
61763 	struct acpi_namespace_node *node;
61764 	union acpi_operand_object **elements;
61765 	u8 *aml_start;
61766 	u32 aml_length;
61767 	u32 count;
61768 };
61769 
61770 struct acpi_object_event {
61771 	union acpi_operand_object *next_object;
61772 	u8 descriptor_type;
61773 	u8 type;
61774 	u16 reference_count;
61775 	u8 flags;
61776 	void *os_semaphore;
61777 };
61778 
61779 struct acpi_walk_state;
61780 
61781 typedef acpi_status (*acpi_internal_method)(struct acpi_walk_state *);
61782 
61783 struct acpi_object_method {
61784 	union acpi_operand_object *next_object;
61785 	u8 descriptor_type;
61786 	u8 type;
61787 	u16 reference_count;
61788 	u8 flags;
61789 	u8 info_flags;
61790 	u8 param_count;
61791 	u8 sync_level;
61792 	union acpi_operand_object *mutex;
61793 	union acpi_operand_object *node;
61794 	u8 *aml_start;
61795 	union {
61796 		acpi_internal_method implementation;
61797 		union acpi_operand_object *handler;
61798 	} dispatch;
61799 	u32 aml_length;
61800 	acpi_owner_id owner_id;
61801 	u8 thread_count;
61802 };
61803 
61804 struct acpi_thread_state;
61805 
61806 struct acpi_object_mutex {
61807 	union acpi_operand_object *next_object;
61808 	u8 descriptor_type;
61809 	u8 type;
61810 	u16 reference_count;
61811 	u8 flags;
61812 	u8 sync_level;
61813 	u16 acquisition_depth;
61814 	void *os_mutex;
61815 	u64 thread_id;
61816 	struct acpi_thread_state *owner_thread;
61817 	union acpi_operand_object *prev;
61818 	union acpi_operand_object *next;
61819 	struct acpi_namespace_node *node;
61820 	u8 original_sync_level;
61821 };
61822 
61823 struct acpi_object_region {
61824 	union acpi_operand_object *next_object;
61825 	u8 descriptor_type;
61826 	u8 type;
61827 	u16 reference_count;
61828 	u8 flags;
61829 	u8 space_id;
61830 	struct acpi_namespace_node *node;
61831 	union acpi_operand_object *handler;
61832 	union acpi_operand_object *next;
61833 	acpi_physical_address address;
61834 	u32 length;
61835 	void *pointer;
61836 };
61837 
61838 struct acpi_object_notify_common {
61839 	union acpi_operand_object *next_object;
61840 	u8 descriptor_type;
61841 	u8 type;
61842 	u16 reference_count;
61843 	u8 flags;
61844 	union acpi_operand_object *notify_list[2];
61845 	union acpi_operand_object *handler;
61846 };
61847 
61848 struct acpi_gpe_block_info;
61849 
61850 struct acpi_object_device {
61851 	union acpi_operand_object *next_object;
61852 	u8 descriptor_type;
61853 	u8 type;
61854 	u16 reference_count;
61855 	u8 flags;
61856 	union acpi_operand_object *notify_list[2];
61857 	union acpi_operand_object *handler;
61858 	struct acpi_gpe_block_info *gpe_block;
61859 };
61860 
61861 struct acpi_object_power_resource {
61862 	union acpi_operand_object *next_object;
61863 	u8 descriptor_type;
61864 	u8 type;
61865 	u16 reference_count;
61866 	u8 flags;
61867 	union acpi_operand_object *notify_list[2];
61868 	union acpi_operand_object *handler;
61869 	u32 system_level;
61870 	u32 resource_order;
61871 };
61872 
61873 struct acpi_object_processor {
61874 	union acpi_operand_object *next_object;
61875 	u8 descriptor_type;
61876 	u8 type;
61877 	u16 reference_count;
61878 	u8 flags;
61879 	u8 proc_id;
61880 	u8 length;
61881 	union acpi_operand_object *notify_list[2];
61882 	union acpi_operand_object *handler;
61883 	acpi_io_address address;
61884 };
61885 
61886 struct acpi_object_thermal_zone {
61887 	union acpi_operand_object *next_object;
61888 	u8 descriptor_type;
61889 	u8 type;
61890 	u16 reference_count;
61891 	u8 flags;
61892 	union acpi_operand_object *notify_list[2];
61893 	union acpi_operand_object *handler;
61894 };
61895 
61896 struct acpi_object_field_common {
61897 	union acpi_operand_object *next_object;
61898 	u8 descriptor_type;
61899 	u8 type;
61900 	u16 reference_count;
61901 	u8 flags;
61902 	u8 field_flags;
61903 	u8 attribute;
61904 	u8 access_byte_width;
61905 	struct acpi_namespace_node *node;
61906 	u32 bit_length;
61907 	u32 base_byte_offset;
61908 	u32 value;
61909 	u8 start_field_bit_offset;
61910 	u8 access_length;
61911 	union acpi_operand_object *region_obj;
61912 };
61913 
61914 struct acpi_object_region_field {
61915 	union acpi_operand_object *next_object;
61916 	u8 descriptor_type;
61917 	u8 type;
61918 	u16 reference_count;
61919 	u8 flags;
61920 	u8 field_flags;
61921 	u8 attribute;
61922 	u8 access_byte_width;
61923 	struct acpi_namespace_node *node;
61924 	u32 bit_length;
61925 	u32 base_byte_offset;
61926 	u32 value;
61927 	u8 start_field_bit_offset;
61928 	u8 access_length;
61929 	u16 resource_length;
61930 	union acpi_operand_object *region_obj;
61931 	u8 *resource_buffer;
61932 	u16 pin_number_index;
61933 	u8 *internal_pcc_buffer;
61934 };
61935 
61936 struct acpi_object_buffer_field {
61937 	union acpi_operand_object *next_object;
61938 	u8 descriptor_type;
61939 	u8 type;
61940 	u16 reference_count;
61941 	u8 flags;
61942 	u8 field_flags;
61943 	u8 attribute;
61944 	u8 access_byte_width;
61945 	struct acpi_namespace_node *node;
61946 	u32 bit_length;
61947 	u32 base_byte_offset;
61948 	u32 value;
61949 	u8 start_field_bit_offset;
61950 	u8 access_length;
61951 	u8 is_create_field;
61952 	union acpi_operand_object *buffer_obj;
61953 };
61954 
61955 struct acpi_object_bank_field {
61956 	union acpi_operand_object *next_object;
61957 	u8 descriptor_type;
61958 	u8 type;
61959 	u16 reference_count;
61960 	u8 flags;
61961 	u8 field_flags;
61962 	u8 attribute;
61963 	u8 access_byte_width;
61964 	struct acpi_namespace_node *node;
61965 	u32 bit_length;
61966 	u32 base_byte_offset;
61967 	u32 value;
61968 	u8 start_field_bit_offset;
61969 	u8 access_length;
61970 	union acpi_operand_object *region_obj;
61971 	union acpi_operand_object *bank_obj;
61972 };
61973 
61974 struct acpi_object_index_field {
61975 	union acpi_operand_object *next_object;
61976 	u8 descriptor_type;
61977 	u8 type;
61978 	u16 reference_count;
61979 	u8 flags;
61980 	u8 field_flags;
61981 	u8 attribute;
61982 	u8 access_byte_width;
61983 	struct acpi_namespace_node *node;
61984 	u32 bit_length;
61985 	u32 base_byte_offset;
61986 	u32 value;
61987 	u8 start_field_bit_offset;
61988 	u8 access_length;
61989 	union acpi_operand_object *index_obj;
61990 	union acpi_operand_object *data_obj;
61991 };
61992 
61993 struct acpi_object_notify_handler {
61994 	union acpi_operand_object *next_object;
61995 	u8 descriptor_type;
61996 	u8 type;
61997 	u16 reference_count;
61998 	u8 flags;
61999 	struct acpi_namespace_node *node;
62000 	u32 handler_type;
62001 	acpi_notify_handler handler;
62002 	void *context;
62003 	union acpi_operand_object *next[2];
62004 };
62005 
62006 struct acpi_object_addr_handler {
62007 	union acpi_operand_object *next_object;
62008 	u8 descriptor_type;
62009 	u8 type;
62010 	u16 reference_count;
62011 	u8 flags;
62012 	u8 space_id;
62013 	u8 handler_flags;
62014 	acpi_adr_space_handler handler;
62015 	struct acpi_namespace_node *node;
62016 	void *context;
62017 	void *context_mutex;
62018 	acpi_adr_space_setup setup;
62019 	union acpi_operand_object *region_list;
62020 	union acpi_operand_object *next;
62021 };
62022 
62023 struct acpi_object_reference {
62024 	union acpi_operand_object *next_object;
62025 	u8 descriptor_type;
62026 	u8 type;
62027 	u16 reference_count;
62028 	u8 flags;
62029 	u8 class;
62030 	u8 target_type;
62031 	u8 resolved;
62032 	void *object;
62033 	struct acpi_namespace_node *node;
62034 	union acpi_operand_object **where;
62035 	u8 *index_pointer;
62036 	u8 *aml;
62037 	u32 value;
62038 };
62039 
62040 struct acpi_object_extra {
62041 	union acpi_operand_object *next_object;
62042 	u8 descriptor_type;
62043 	u8 type;
62044 	u16 reference_count;
62045 	u8 flags;
62046 	struct acpi_namespace_node *method_REG;
62047 	struct acpi_namespace_node *scope_node;
62048 	void *region_context;
62049 	u8 *aml_start;
62050 	u32 aml_length;
62051 };
62052 
62053 struct acpi_object_data {
62054 	union acpi_operand_object *next_object;
62055 	u8 descriptor_type;
62056 	u8 type;
62057 	u16 reference_count;
62058 	u8 flags;
62059 	acpi_object_handler handler;
62060 	void *pointer;
62061 };
62062 
62063 struct acpi_object_cache_list {
62064 	union acpi_operand_object *next_object;
62065 	u8 descriptor_type;
62066 	u8 type;
62067 	u16 reference_count;
62068 	u8 flags;
62069 	union acpi_operand_object *next;
62070 };
62071 
62072 union acpi_operand_object {
62073 	struct acpi_object_common common;
62074 	struct acpi_object_integer integer;
62075 	struct acpi_object_string string;
62076 	struct acpi_object_buffer buffer;
62077 	struct acpi_object_package package;
62078 	struct acpi_object_event event;
62079 	struct acpi_object_method method;
62080 	struct acpi_object_mutex mutex;
62081 	struct acpi_object_region region;
62082 	struct acpi_object_notify_common common_notify;
62083 	struct acpi_object_device device;
62084 	struct acpi_object_power_resource power_resource;
62085 	struct acpi_object_processor processor;
62086 	struct acpi_object_thermal_zone thermal_zone;
62087 	struct acpi_object_field_common common_field;
62088 	struct acpi_object_region_field field;
62089 	struct acpi_object_buffer_field buffer_field;
62090 	struct acpi_object_bank_field bank_field;
62091 	struct acpi_object_index_field index_field;
62092 	struct acpi_object_notify_handler notify;
62093 	struct acpi_object_addr_handler address_space;
62094 	struct acpi_object_reference reference;
62095 	struct acpi_object_extra extra;
62096 	struct acpi_object_data data;
62097 	struct acpi_object_cache_list cache;
62098 	struct acpi_namespace_node node;
62099 };
62100 
62101 struct acpi_table_list {
62102 	struct acpi_table_desc *tables;
62103 	u32 current_table_count;
62104 	u32 max_table_count;
62105 	u8 flags;
62106 };
62107 
62108 union acpi_parse_object;
62109 
62110 union acpi_generic_state;
62111 
62112 struct acpi_parse_state {
62113 	u8 *aml_start;
62114 	u8 *aml;
62115 	u8 *aml_end;
62116 	u8 *pkg_start;
62117 	u8 *pkg_end;
62118 	union acpi_parse_object *start_op;
62119 	struct acpi_namespace_node *start_node;
62120 	union acpi_generic_state *scope;
62121 	union acpi_parse_object *start_scope;
62122 	u32 aml_size;
62123 };
62124 
62125 typedef acpi_status (*acpi_parse_downwards)(struct acpi_walk_state *, union acpi_parse_object **);
62126 
62127 typedef acpi_status (*acpi_parse_upwards)(struct acpi_walk_state *);
62128 
62129 struct acpi_opcode_info;
62130 
62131 struct acpi_walk_state {
62132 	struct acpi_walk_state *next;
62133 	u8 descriptor_type;
62134 	u8 walk_type;
62135 	u16 opcode;
62136 	u8 next_op_info;
62137 	u8 num_operands;
62138 	u8 operand_index;
62139 	acpi_owner_id owner_id;
62140 	u8 last_predicate;
62141 	u8 current_result;
62142 	u8 return_used;
62143 	u8 scope_depth;
62144 	u8 pass_number;
62145 	u8 namespace_override;
62146 	u8 result_size;
62147 	u8 result_count;
62148 	u8 *aml;
62149 	u32 arg_types;
62150 	u32 method_breakpoint;
62151 	u32 user_breakpoint;
62152 	u32 parse_flags;
62153 	struct acpi_parse_state parser_state;
62154 	u32 prev_arg_types;
62155 	u32 arg_count;
62156 	u16 method_nesting_depth;
62157 	u8 method_is_nested;
62158 	struct acpi_namespace_node arguments[7];
62159 	struct acpi_namespace_node local_variables[8];
62160 	union acpi_operand_object *operands[9];
62161 	union acpi_operand_object **params;
62162 	u8 *aml_last_while;
62163 	union acpi_operand_object **caller_return_desc;
62164 	union acpi_generic_state *control_state;
62165 	struct acpi_namespace_node *deferred_node;
62166 	union acpi_operand_object *implicit_return_obj;
62167 	struct acpi_namespace_node *method_call_node;
62168 	union acpi_parse_object *method_call_op;
62169 	union acpi_operand_object *method_desc;
62170 	struct acpi_namespace_node *method_node;
62171 	char *method_pathname;
62172 	union acpi_parse_object *op;
62173 	const struct acpi_opcode_info *op_info;
62174 	union acpi_parse_object *origin;
62175 	union acpi_operand_object *result_obj;
62176 	union acpi_generic_state *results;
62177 	union acpi_operand_object *return_desc;
62178 	union acpi_generic_state *scope_info;
62179 	union acpi_parse_object *prev_op;
62180 	union acpi_parse_object *next_op;
62181 	struct acpi_thread_state *thread;
62182 	acpi_parse_downwards descending_callback;
62183 	acpi_parse_upwards ascending_callback;
62184 };
62185 
62186 struct acpi_sci_handler_info {
62187 	struct acpi_sci_handler_info *next;
62188 	acpi_sci_handler address;
62189 	void *context;
62190 };
62191 
62192 struct acpi_gpe_handler_info {
62193 	acpi_gpe_handler address;
62194 	void *context;
62195 	struct acpi_namespace_node *method_node;
62196 	u8 original_flags;
62197 	u8 originally_enabled;
62198 };
62199 
62200 struct acpi_gpe_notify_info {
62201 	struct acpi_namespace_node *device_node;
62202 	struct acpi_gpe_notify_info *next;
62203 };
62204 
62205 union acpi_gpe_dispatch_info {
62206 	struct acpi_namespace_node *method_node;
62207 	struct acpi_gpe_handler_info *handler;
62208 	struct acpi_gpe_notify_info *notify_list;
62209 };
62210 
62211 struct acpi_gpe_register_info;
62212 
62213 struct acpi_gpe_event_info {
62214 	union acpi_gpe_dispatch_info dispatch;
62215 	struct acpi_gpe_register_info *register_info;
62216 	u8 flags;
62217 	u8 gpe_number;
62218 	u8 runtime_count;
62219 	u8 disable_for_dispatch;
62220 };
62221 
62222 struct acpi_gpe_address {
62223 	u8 space_id;
62224 	u64 address;
62225 };
62226 
62227 struct acpi_gpe_register_info {
62228 	struct acpi_gpe_address status_address;
62229 	struct acpi_gpe_address enable_address;
62230 	u16 base_gpe_number;
62231 	u8 enable_for_wake;
62232 	u8 enable_for_run;
62233 	u8 mask_for_run;
62234 	u8 enable_mask;
62235 };
62236 
62237 struct acpi_gpe_xrupt_info;
62238 
62239 struct acpi_gpe_block_info {
62240 	struct acpi_namespace_node *node;
62241 	struct acpi_gpe_block_info *previous;
62242 	struct acpi_gpe_block_info *next;
62243 	struct acpi_gpe_xrupt_info *xrupt_block;
62244 	struct acpi_gpe_register_info *register_info;
62245 	struct acpi_gpe_event_info *event_info;
62246 	u64 address;
62247 	u32 register_count;
62248 	u16 gpe_count;
62249 	u16 block_base_number;
62250 	u8 space_id;
62251 	u8 initialized;
62252 };
62253 
62254 struct acpi_gpe_xrupt_info {
62255 	struct acpi_gpe_xrupt_info *previous;
62256 	struct acpi_gpe_xrupt_info *next;
62257 	struct acpi_gpe_block_info *gpe_block_list_head;
62258 	u32 interrupt_number;
62259 };
62260 
62261 struct acpi_fixed_event_handler {
62262 	acpi_event_handler handler;
62263 	void *context;
62264 };
62265 
62266 struct acpi_fixed_event_info {
62267 	u8 status_register_id;
62268 	u8 enable_register_id;
62269 	u16 status_bit_mask;
62270 	u16 enable_bit_mask;
62271 };
62272 
62273 struct acpi_common_state {
62274 	void *next;
62275 	u8 descriptor_type;
62276 	u8 flags;
62277 	u16 value;
62278 	u16 state;
62279 };
62280 
62281 struct acpi_update_state {
62282 	void *next;
62283 	u8 descriptor_type;
62284 	u8 flags;
62285 	u16 value;
62286 	u16 state;
62287 	union acpi_operand_object *object;
62288 };
62289 
62290 struct acpi_pkg_state {
62291 	void *next;
62292 	u8 descriptor_type;
62293 	u8 flags;
62294 	u16 value;
62295 	u16 state;
62296 	u32 index;
62297 	union acpi_operand_object *source_object;
62298 	union acpi_operand_object *dest_object;
62299 	struct acpi_walk_state *walk_state;
62300 	void *this_target_obj;
62301 	u32 num_packages;
62302 };
62303 
62304 struct acpi_control_state {
62305 	void *next;
62306 	u8 descriptor_type;
62307 	u8 flags;
62308 	u16 value;
62309 	u16 state;
62310 	u16 opcode;
62311 	union acpi_parse_object *predicate_op;
62312 	u8 *aml_predicate_start;
62313 	u8 *package_end;
62314 	u64 loop_timeout;
62315 };
62316 
62317 union acpi_parse_value {
62318 	u64 integer;
62319 	u32 size;
62320 	char *string;
62321 	u8 *buffer;
62322 	char *name;
62323 	union acpi_parse_object *arg;
62324 };
62325 
62326 struct acpi_parse_obj_common {
62327 	union acpi_parse_object *parent;
62328 	u8 descriptor_type;
62329 	u8 flags;
62330 	u16 aml_opcode;
62331 	u8 *aml;
62332 	union acpi_parse_object *next;
62333 	struct acpi_namespace_node *node;
62334 	union acpi_parse_value value;
62335 	u8 arg_list_length;
62336 };
62337 
62338 struct acpi_parse_obj_named {
62339 	union acpi_parse_object *parent;
62340 	u8 descriptor_type;
62341 	u8 flags;
62342 	u16 aml_opcode;
62343 	u8 *aml;
62344 	union acpi_parse_object *next;
62345 	struct acpi_namespace_node *node;
62346 	union acpi_parse_value value;
62347 	u8 arg_list_length;
62348 	char *path;
62349 	u8 *data;
62350 	u32 length;
62351 	u32 name;
62352 };
62353 
62354 struct acpi_parse_obj_asl {
62355 	union acpi_parse_object *parent;
62356 	u8 descriptor_type;
62357 	u8 flags;
62358 	u16 aml_opcode;
62359 	u8 *aml;
62360 	union acpi_parse_object *next;
62361 	struct acpi_namespace_node *node;
62362 	union acpi_parse_value value;
62363 	u8 arg_list_length;
62364 	union acpi_parse_object *child;
62365 	union acpi_parse_object *parent_method;
62366 	char *filename;
62367 	u8 file_changed;
62368 	char *parent_filename;
62369 	char *external_name;
62370 	char *namepath;
62371 	char name_seg[4];
62372 	u32 extra_value;
62373 	u32 column;
62374 	u32 line_number;
62375 	u32 logical_line_number;
62376 	u32 logical_byte_offset;
62377 	u32 end_line;
62378 	u32 end_logical_line;
62379 	u32 acpi_btype;
62380 	u32 aml_length;
62381 	u32 aml_subtree_length;
62382 	u32 final_aml_length;
62383 	u32 final_aml_offset;
62384 	u32 compile_flags;
62385 	u16 parse_opcode;
62386 	u8 aml_opcode_length;
62387 	u8 aml_pkg_len_bytes;
62388 	u8 extra;
62389 	char parse_op_name[20];
62390 };
62391 
62392 union acpi_parse_object {
62393 	struct acpi_parse_obj_common common;
62394 	struct acpi_parse_obj_named named;
62395 	struct acpi_parse_obj_asl asl;
62396 };
62397 
62398 struct acpi_scope_state {
62399 	void *next;
62400 	u8 descriptor_type;
62401 	u8 flags;
62402 	u16 value;
62403 	u16 state;
62404 	struct acpi_namespace_node *node;
62405 };
62406 
62407 struct acpi_pscope_state {
62408 	void *next;
62409 	u8 descriptor_type;
62410 	u8 flags;
62411 	u16 value;
62412 	u16 state;
62413 	u32 arg_count;
62414 	union acpi_parse_object *op;
62415 	u8 *arg_end;
62416 	u8 *pkg_end;
62417 	u32 arg_list;
62418 };
62419 
62420 struct acpi_thread_state {
62421 	void *next;
62422 	u8 descriptor_type;
62423 	u8 flags;
62424 	u16 value;
62425 	u16 state;
62426 	u8 current_sync_level;
62427 	struct acpi_walk_state *walk_state_list;
62428 	union acpi_operand_object *acquired_mutex_list;
62429 	u64 thread_id;
62430 };
62431 
62432 struct acpi_result_values {
62433 	void *next;
62434 	u8 descriptor_type;
62435 	u8 flags;
62436 	u16 value;
62437 	u16 state;
62438 	union acpi_operand_object *obj_desc[8];
62439 };
62440 
62441 struct acpi_global_notify_handler {
62442 	acpi_notify_handler handler;
62443 	void *context;
62444 };
62445 
62446 struct acpi_notify_info {
62447 	void *next;
62448 	u8 descriptor_type;
62449 	u8 flags;
62450 	u16 value;
62451 	u16 state;
62452 	u8 handler_list_id;
62453 	struct acpi_namespace_node *node;
62454 	union acpi_operand_object *handler_list_head;
62455 	struct acpi_global_notify_handler *global;
62456 };
62457 
62458 union acpi_generic_state {
62459 	struct acpi_common_state common;
62460 	struct acpi_control_state control;
62461 	struct acpi_update_state update;
62462 	struct acpi_scope_state scope;
62463 	struct acpi_pscope_state parse_scope;
62464 	struct acpi_pkg_state pkg;
62465 	struct acpi_thread_state thread;
62466 	struct acpi_result_values results;
62467 	struct acpi_notify_info notify;
62468 };
62469 
62470 struct acpi_address_range {
62471 	struct acpi_address_range *next;
62472 	struct acpi_namespace_node *region_node;
62473 	acpi_physical_address start_address;
62474 	acpi_physical_address end_address;
62475 };
62476 
62477 struct acpi_opcode_info {
62478 	u32 parse_args;
62479 	u32 runtime_args;
62480 	u16 flags;
62481 	u8 object_type;
62482 	u8 class;
62483 	u8 type;
62484 };
62485 
62486 struct acpi_comment_node {
62487 	char *comment;
62488 	struct acpi_comment_node *next;
62489 };
62490 
62491 struct acpi_bit_register_info {
62492 	u8 parent_register;
62493 	u8 bit_position;
62494 	u16 access_bit_mask;
62495 };
62496 
62497 struct acpi_interface_info {
62498 	char *name;
62499 	struct acpi_interface_info *next;
62500 	u8 flags;
62501 	u8 value;
62502 };
62503 
62504 struct acpi_os_dpc {
62505 	acpi_osd_exec_callback function;
62506 	void *context;
62507 	struct work_struct work;
62508 };
62509 
62510 struct acpi_ioremap {
62511 	struct list_head list;
62512 	void *virt;
62513 	acpi_physical_address phys;
62514 	acpi_size size;
62515 	union {
62516 		long unsigned int refcount;
62517 		struct rcu_work rwork;
62518 	} track;
62519 };
62520 
62521 struct acpi_hp_work {
62522 	struct work_struct work;
62523 	struct acpi_device *adev;
62524 	u32 src;
62525 };
62526 
62527 struct acpi_object_list {
62528 	u32 count;
62529 	union acpi_object *pointer;
62530 };
62531 
62532 struct acpi_pld_info {
62533 	u8 revision;
62534 	u8 ignore_color;
62535 	u8 red;
62536 	u8 green;
62537 	u8 blue;
62538 	u16 width;
62539 	u16 height;
62540 	u8 user_visible;
62541 	u8 dock;
62542 	u8 lid;
62543 	u8 panel;
62544 	u8 vertical_position;
62545 	u8 horizontal_position;
62546 	u8 shape;
62547 	u8 group_orientation;
62548 	u8 group_token;
62549 	u8 group_position;
62550 	u8 bay;
62551 	u8 ejectable;
62552 	u8 ospm_eject_required;
62553 	u8 cabinet_number;
62554 	u8 card_cage_number;
62555 	u8 reference;
62556 	u8 rotation;
62557 	u8 order;
62558 	u8 reserved;
62559 	u16 vertical_offset;
62560 	u16 horizontal_offset;
62561 };
62562 
62563 struct acpi_handle_list {
62564 	u32 count;
62565 	acpi_handle handles[10];
62566 };
62567 
62568 struct acpi_device_bus_id {
62569 	const char *bus_id;
62570 	struct ida instance_ida;
62571 	struct list_head node;
62572 };
62573 
62574 struct acpi_dev_match_info {
62575 	struct acpi_device_id hid[2];
62576 	const char *uid;
62577 	s64 hrv;
62578 };
62579 
62580 struct nvs_region {
62581 	__u64 phys_start;
62582 	__u64 size;
62583 	struct list_head node;
62584 };
62585 
62586 struct acpi_wakeup_handler {
62587 	struct list_head list_node;
62588 	bool (*wakeup)(void *);
62589 	void *context;
62590 };
62591 
62592 struct acpi_hardware_id {
62593 	struct list_head list;
62594 	const char *id;
62595 };
62596 
62597 struct acpi_data_node {
62598 	const char *name;
62599 	acpi_handle handle;
62600 	struct fwnode_handle fwnode;
62601 	struct fwnode_handle *parent;
62602 	struct acpi_device_data data;
62603 	struct list_head sibling;
62604 	struct kobject kobj;
62605 	struct completion kobj_done;
62606 };
62607 
62608 struct acpi_data_node_attr {
62609 	struct attribute attr;
62610 	ssize_t (*show)(struct acpi_data_node *, char *);
62611 	ssize_t (*store)(struct acpi_data_node *, const char *, size_t);
62612 };
62613 
62614 enum acpi_bus_device_type {
62615 	ACPI_BUS_TYPE_DEVICE = 0,
62616 	ACPI_BUS_TYPE_POWER = 1,
62617 	ACPI_BUS_TYPE_PROCESSOR = 2,
62618 	ACPI_BUS_TYPE_THERMAL = 3,
62619 	ACPI_BUS_TYPE_POWER_BUTTON = 4,
62620 	ACPI_BUS_TYPE_SLEEP_BUTTON = 5,
62621 	ACPI_BUS_TYPE_ECDT_EC = 6,
62622 	ACPI_BUS_DEVICE_TYPE_COUNT = 7,
62623 };
62624 
62625 struct acpi_device_physical_node {
62626 	unsigned int node_id;
62627 	struct list_head node;
62628 	struct device *dev;
62629 	bool put_online: 1;
62630 };
62631 
62632 struct acpi_osc_context {
62633 	char *uuid_str;
62634 	int rev;
62635 	struct acpi_buffer cap;
62636 	struct acpi_buffer ret;
62637 };
62638 
62639 struct acpi_bus_type {
62640 	struct list_head list;
62641 	const char *name;
62642 	bool (*match)(struct device *);
62643 	struct acpi_device * (*find_companion)(struct device *);
62644 	void (*setup)(struct device *);
62645 };
62646 
62647 struct acpi_pnp_device_id {
62648 	u32 length;
62649 	char *string;
62650 };
62651 
62652 struct acpi_pnp_device_id_list {
62653 	u32 count;
62654 	u32 list_size;
62655 	struct acpi_pnp_device_id ids[0];
62656 };
62657 
62658 struct acpi_device_info {
62659 	u32 info_size;
62660 	u32 name;
62661 	acpi_object_type type;
62662 	u8 param_count;
62663 	u16 valid;
62664 	u8 flags;
62665 	u8 highest_dstates[4];
62666 	u8 lowest_dstates[5];
62667 	u64 address;
62668 	struct acpi_pnp_device_id hardware_id;
62669 	struct acpi_pnp_device_id unique_id;
62670 	struct acpi_pnp_device_id class_code;
62671 	struct acpi_pnp_device_id_list compatible_id_list;
62672 };
62673 
62674 struct acpi_table_spcr {
62675 	struct acpi_table_header header;
62676 	u8 interface_type;
62677 	u8 reserved[3];
62678 	struct acpi_generic_address serial_port;
62679 	u8 interrupt_type;
62680 	u8 pc_interrupt;
62681 	u32 interrupt;
62682 	u8 baud_rate;
62683 	u8 parity;
62684 	u8 stop_bits;
62685 	u8 flow_control;
62686 	u8 terminal_type;
62687 	u8 reserved1;
62688 	u16 pci_device_id;
62689 	u16 pci_vendor_id;
62690 	u8 pci_bus;
62691 	u8 pci_device;
62692 	u8 pci_function;
62693 	u32 pci_flags;
62694 	u8 pci_segment;
62695 	u32 reserved2;
62696 } __attribute__((packed));
62697 
62698 struct acpi_table_stao {
62699 	struct acpi_table_header header;
62700 	u8 ignore_uart;
62701 } __attribute__((packed));
62702 
62703 struct acpi_resource_irq {
62704 	u8 descriptor_length;
62705 	u8 triggering;
62706 	u8 polarity;
62707 	u8 shareable;
62708 	u8 wake_capable;
62709 	u8 interrupt_count;
62710 	u8 interrupts[1];
62711 };
62712 
62713 struct acpi_resource_dma {
62714 	u8 type;
62715 	u8 bus_master;
62716 	u8 transfer;
62717 	u8 channel_count;
62718 	u8 channels[1];
62719 };
62720 
62721 struct acpi_resource_start_dependent {
62722 	u8 descriptor_length;
62723 	u8 compatibility_priority;
62724 	u8 performance_robustness;
62725 };
62726 
62727 struct acpi_resource_io {
62728 	u8 io_decode;
62729 	u8 alignment;
62730 	u8 address_length;
62731 	u16 minimum;
62732 	u16 maximum;
62733 } __attribute__((packed));
62734 
62735 struct acpi_resource_fixed_io {
62736 	u16 address;
62737 	u8 address_length;
62738 } __attribute__((packed));
62739 
62740 struct acpi_resource_fixed_dma {
62741 	u16 request_lines;
62742 	u16 channels;
62743 	u8 width;
62744 } __attribute__((packed));
62745 
62746 struct acpi_resource_vendor {
62747 	u16 byte_length;
62748 	u8 byte_data[1];
62749 } __attribute__((packed));
62750 
62751 struct acpi_resource_vendor_typed {
62752 	u16 byte_length;
62753 	u8 uuid_subtype;
62754 	u8 uuid[16];
62755 	u8 byte_data[1];
62756 };
62757 
62758 struct acpi_resource_end_tag {
62759 	u8 checksum;
62760 };
62761 
62762 struct acpi_resource_memory24 {
62763 	u8 write_protect;
62764 	u16 minimum;
62765 	u16 maximum;
62766 	u16 alignment;
62767 	u16 address_length;
62768 } __attribute__((packed));
62769 
62770 struct acpi_resource_memory32 {
62771 	u8 write_protect;
62772 	u32 minimum;
62773 	u32 maximum;
62774 	u32 alignment;
62775 	u32 address_length;
62776 } __attribute__((packed));
62777 
62778 struct acpi_resource_fixed_memory32 {
62779 	u8 write_protect;
62780 	u32 address;
62781 	u32 address_length;
62782 } __attribute__((packed));
62783 
62784 struct acpi_memory_attribute {
62785 	u8 write_protect;
62786 	u8 caching;
62787 	u8 range_type;
62788 	u8 translation;
62789 };
62790 
62791 struct acpi_io_attribute {
62792 	u8 range_type;
62793 	u8 translation;
62794 	u8 translation_type;
62795 	u8 reserved1;
62796 };
62797 
62798 union acpi_resource_attribute {
62799 	struct acpi_memory_attribute mem;
62800 	struct acpi_io_attribute io;
62801 	u8 type_specific;
62802 };
62803 
62804 struct acpi_resource_label {
62805 	u16 string_length;
62806 	char *string_ptr;
62807 } __attribute__((packed));
62808 
62809 struct acpi_resource_source {
62810 	u8 index;
62811 	u16 string_length;
62812 	char *string_ptr;
62813 } __attribute__((packed));
62814 
62815 struct acpi_address16_attribute {
62816 	u16 granularity;
62817 	u16 minimum;
62818 	u16 maximum;
62819 	u16 translation_offset;
62820 	u16 address_length;
62821 };
62822 
62823 struct acpi_address32_attribute {
62824 	u32 granularity;
62825 	u32 minimum;
62826 	u32 maximum;
62827 	u32 translation_offset;
62828 	u32 address_length;
62829 };
62830 
62831 struct acpi_address64_attribute {
62832 	u64 granularity;
62833 	u64 minimum;
62834 	u64 maximum;
62835 	u64 translation_offset;
62836 	u64 address_length;
62837 };
62838 
62839 struct acpi_resource_address {
62840 	u8 resource_type;
62841 	u8 producer_consumer;
62842 	u8 decode;
62843 	u8 min_address_fixed;
62844 	u8 max_address_fixed;
62845 	union acpi_resource_attribute info;
62846 };
62847 
62848 struct acpi_resource_address16 {
62849 	u8 resource_type;
62850 	u8 producer_consumer;
62851 	u8 decode;
62852 	u8 min_address_fixed;
62853 	u8 max_address_fixed;
62854 	union acpi_resource_attribute info;
62855 	struct acpi_address16_attribute address;
62856 	struct acpi_resource_source resource_source;
62857 } __attribute__((packed));
62858 
62859 struct acpi_resource_address32 {
62860 	u8 resource_type;
62861 	u8 producer_consumer;
62862 	u8 decode;
62863 	u8 min_address_fixed;
62864 	u8 max_address_fixed;
62865 	union acpi_resource_attribute info;
62866 	struct acpi_address32_attribute address;
62867 	struct acpi_resource_source resource_source;
62868 } __attribute__((packed));
62869 
62870 struct acpi_resource_address64 {
62871 	u8 resource_type;
62872 	u8 producer_consumer;
62873 	u8 decode;
62874 	u8 min_address_fixed;
62875 	u8 max_address_fixed;
62876 	union acpi_resource_attribute info;
62877 	struct acpi_address64_attribute address;
62878 	struct acpi_resource_source resource_source;
62879 } __attribute__((packed));
62880 
62881 struct acpi_resource_extended_address64 {
62882 	u8 resource_type;
62883 	u8 producer_consumer;
62884 	u8 decode;
62885 	u8 min_address_fixed;
62886 	u8 max_address_fixed;
62887 	union acpi_resource_attribute info;
62888 	u8 revision_ID;
62889 	struct acpi_address64_attribute address;
62890 	u64 type_specific;
62891 } __attribute__((packed));
62892 
62893 struct acpi_resource_extended_irq {
62894 	u8 producer_consumer;
62895 	u8 triggering;
62896 	u8 polarity;
62897 	u8 shareable;
62898 	u8 wake_capable;
62899 	u8 interrupt_count;
62900 	struct acpi_resource_source resource_source;
62901 	u32 interrupts[1];
62902 } __attribute__((packed));
62903 
62904 struct acpi_resource_generic_register {
62905 	u8 space_id;
62906 	u8 bit_width;
62907 	u8 bit_offset;
62908 	u8 access_size;
62909 	u64 address;
62910 } __attribute__((packed));
62911 
62912 struct acpi_resource_gpio {
62913 	u8 revision_id;
62914 	u8 connection_type;
62915 	u8 producer_consumer;
62916 	u8 pin_config;
62917 	u8 shareable;
62918 	u8 wake_capable;
62919 	u8 io_restriction;
62920 	u8 triggering;
62921 	u8 polarity;
62922 	u16 drive_strength;
62923 	u16 debounce_timeout;
62924 	u16 pin_table_length;
62925 	u16 vendor_length;
62926 	struct acpi_resource_source resource_source;
62927 	u16 *pin_table;
62928 	u8 *vendor_data;
62929 } __attribute__((packed));
62930 
62931 struct acpi_resource_common_serialbus {
62932 	u8 revision_id;
62933 	u8 type;
62934 	u8 producer_consumer;
62935 	u8 slave_mode;
62936 	u8 connection_sharing;
62937 	u8 type_revision_id;
62938 	u16 type_data_length;
62939 	u16 vendor_length;
62940 	struct acpi_resource_source resource_source;
62941 	u8 *vendor_data;
62942 } __attribute__((packed));
62943 
62944 struct acpi_resource_i2c_serialbus {
62945 	u8 revision_id;
62946 	u8 type;
62947 	u8 producer_consumer;
62948 	u8 slave_mode;
62949 	u8 connection_sharing;
62950 	u8 type_revision_id;
62951 	u16 type_data_length;
62952 	u16 vendor_length;
62953 	struct acpi_resource_source resource_source;
62954 	u8 *vendor_data;
62955 	u8 access_mode;
62956 	u16 slave_address;
62957 	u32 connection_speed;
62958 } __attribute__((packed));
62959 
62960 struct acpi_resource_spi_serialbus {
62961 	u8 revision_id;
62962 	u8 type;
62963 	u8 producer_consumer;
62964 	u8 slave_mode;
62965 	u8 connection_sharing;
62966 	u8 type_revision_id;
62967 	u16 type_data_length;
62968 	u16 vendor_length;
62969 	struct acpi_resource_source resource_source;
62970 	u8 *vendor_data;
62971 	u8 wire_mode;
62972 	u8 device_polarity;
62973 	u8 data_bit_length;
62974 	u8 clock_phase;
62975 	u8 clock_polarity;
62976 	u16 device_selection;
62977 	u32 connection_speed;
62978 } __attribute__((packed));
62979 
62980 struct acpi_resource_uart_serialbus {
62981 	u8 revision_id;
62982 	u8 type;
62983 	u8 producer_consumer;
62984 	u8 slave_mode;
62985 	u8 connection_sharing;
62986 	u8 type_revision_id;
62987 	u16 type_data_length;
62988 	u16 vendor_length;
62989 	struct acpi_resource_source resource_source;
62990 	u8 *vendor_data;
62991 	u8 endian;
62992 	u8 data_bits;
62993 	u8 stop_bits;
62994 	u8 flow_control;
62995 	u8 parity;
62996 	u8 lines_enabled;
62997 	u16 rx_fifo_size;
62998 	u16 tx_fifo_size;
62999 	u32 default_baud_rate;
63000 } __attribute__((packed));
63001 
63002 struct acpi_resource_csi2_serialbus {
63003 	u8 revision_id;
63004 	u8 type;
63005 	u8 producer_consumer;
63006 	u8 slave_mode;
63007 	u8 connection_sharing;
63008 	u8 type_revision_id;
63009 	u16 type_data_length;
63010 	u16 vendor_length;
63011 	struct acpi_resource_source resource_source;
63012 	u8 *vendor_data;
63013 	u8 local_port_instance;
63014 	u8 phy_type;
63015 } __attribute__((packed));
63016 
63017 struct acpi_resource_pin_function {
63018 	u8 revision_id;
63019 	u8 pin_config;
63020 	u8 shareable;
63021 	u16 function_number;
63022 	u16 pin_table_length;
63023 	u16 vendor_length;
63024 	struct acpi_resource_source resource_source;
63025 	u16 *pin_table;
63026 	u8 *vendor_data;
63027 } __attribute__((packed));
63028 
63029 struct acpi_resource_pin_config {
63030 	u8 revision_id;
63031 	u8 producer_consumer;
63032 	u8 shareable;
63033 	u8 pin_config_type;
63034 	u32 pin_config_value;
63035 	u16 pin_table_length;
63036 	u16 vendor_length;
63037 	struct acpi_resource_source resource_source;
63038 	u16 *pin_table;
63039 	u8 *vendor_data;
63040 } __attribute__((packed));
63041 
63042 struct acpi_resource_pin_group {
63043 	u8 revision_id;
63044 	u8 producer_consumer;
63045 	u16 pin_table_length;
63046 	u16 vendor_length;
63047 	u16 *pin_table;
63048 	struct acpi_resource_label resource_label;
63049 	u8 *vendor_data;
63050 } __attribute__((packed));
63051 
63052 struct acpi_resource_pin_group_function {
63053 	u8 revision_id;
63054 	u8 producer_consumer;
63055 	u8 shareable;
63056 	u16 function_number;
63057 	u16 vendor_length;
63058 	struct acpi_resource_source resource_source;
63059 	struct acpi_resource_label resource_source_label;
63060 	u8 *vendor_data;
63061 } __attribute__((packed));
63062 
63063 struct acpi_resource_pin_group_config {
63064 	u8 revision_id;
63065 	u8 producer_consumer;
63066 	u8 shareable;
63067 	u8 pin_config_type;
63068 	u32 pin_config_value;
63069 	u16 vendor_length;
63070 	struct acpi_resource_source resource_source;
63071 	struct acpi_resource_label resource_source_label;
63072 	u8 *vendor_data;
63073 } __attribute__((packed));
63074 
63075 union acpi_resource_data {
63076 	struct acpi_resource_irq irq;
63077 	struct acpi_resource_dma dma;
63078 	struct acpi_resource_start_dependent start_dpf;
63079 	struct acpi_resource_io io;
63080 	struct acpi_resource_fixed_io fixed_io;
63081 	struct acpi_resource_fixed_dma fixed_dma;
63082 	struct acpi_resource_vendor vendor;
63083 	struct acpi_resource_vendor_typed vendor_typed;
63084 	struct acpi_resource_end_tag end_tag;
63085 	struct acpi_resource_memory24 memory24;
63086 	struct acpi_resource_memory32 memory32;
63087 	struct acpi_resource_fixed_memory32 fixed_memory32;
63088 	struct acpi_resource_address16 address16;
63089 	struct acpi_resource_address32 address32;
63090 	struct acpi_resource_address64 address64;
63091 	struct acpi_resource_extended_address64 ext_address64;
63092 	struct acpi_resource_extended_irq extended_irq;
63093 	struct acpi_resource_generic_register generic_reg;
63094 	struct acpi_resource_gpio gpio;
63095 	struct acpi_resource_i2c_serialbus i2c_serial_bus;
63096 	struct acpi_resource_spi_serialbus spi_serial_bus;
63097 	struct acpi_resource_uart_serialbus uart_serial_bus;
63098 	struct acpi_resource_csi2_serialbus csi2_serial_bus;
63099 	struct acpi_resource_common_serialbus common_serial_bus;
63100 	struct acpi_resource_pin_function pin_function;
63101 	struct acpi_resource_pin_config pin_config;
63102 	struct acpi_resource_pin_group pin_group;
63103 	struct acpi_resource_pin_group_function pin_group_function;
63104 	struct acpi_resource_pin_group_config pin_group_config;
63105 	struct acpi_resource_address address;
63106 };
63107 
63108 struct acpi_resource {
63109 	u32 type;
63110 	u32 length;
63111 	union acpi_resource_data data;
63112 } __attribute__((packed));
63113 
63114 struct acpi_dep_data {
63115 	struct list_head node;
63116 	acpi_handle supplier;
63117 	acpi_handle consumer;
63118 	bool honor_dep;
63119 };
63120 
63121 enum acpi_reconfig_event {
63122 	ACPI_RECONFIG_DEVICE_ADD = 0,
63123 	ACPI_RECONFIG_DEVICE_REMOVE = 1,
63124 };
63125 
63126 struct acpi_probe_entry;
63127 
63128 typedef bool (*acpi_probe_entry_validate_subtbl)(struct acpi_subtable_header *, struct acpi_probe_entry *);
63129 
63130 struct acpi_probe_entry {
63131 	__u8 id[5];
63132 	__u8 type;
63133 	acpi_probe_entry_validate_subtbl subtable_valid;
63134 	union {
63135 		acpi_tbl_table_handler probe_table;
63136 		acpi_tbl_entry_handler probe_subtbl;
63137 	};
63138 	kernel_ulong_t driver_data;
63139 };
63140 
63141 struct acpi_scan_clear_dep_work {
63142 	struct work_struct work;
63143 	struct acpi_device *adev;
63144 };
63145 
63146 struct resource_win {
63147 	struct resource res;
63148 	resource_size_t offset;
63149 };
63150 
63151 struct irq_override_cmp {
63152 	const struct dmi_system_id *system;
63153 	unsigned char irq;
63154 	unsigned char triggering;
63155 	unsigned char polarity;
63156 	unsigned char shareable;
63157 };
63158 
63159 struct res_proc_context {
63160 	struct list_head *list;
63161 	int (*preproc)(struct acpi_resource *, void *);
63162 	void *preproc_data;
63163 	int count;
63164 	int error;
63165 };
63166 
63167 typedef u32 acpi_event_status;
63168 
63169 struct acpi_table_ecdt {
63170 	struct acpi_table_header header;
63171 	struct acpi_generic_address control;
63172 	struct acpi_generic_address data;
63173 	u32 uid;
63174 	u8 gpe;
63175 	u8 id[1];
63176 } __attribute__((packed));
63177 
63178 struct transaction {
63179 	const u8 *wdata;
63180 	u8 *rdata;
63181 	short unsigned int irq_count;
63182 	u8 command;
63183 	u8 wi;
63184 	u8 ri;
63185 	u8 wlen;
63186 	u8 rlen;
63187 	u8 flags;
63188 };
63189 
63190 typedef int (*acpi_ec_query_func)(void *);
63191 
63192 enum ec_command {
63193 	ACPI_EC_COMMAND_READ = 128,
63194 	ACPI_EC_COMMAND_WRITE = 129,
63195 	ACPI_EC_BURST_ENABLE = 130,
63196 	ACPI_EC_BURST_DISABLE = 131,
63197 	ACPI_EC_COMMAND_QUERY = 132,
63198 };
63199 
63200 enum {
63201 	EC_FLAGS_QUERY_ENABLED = 0,
63202 	EC_FLAGS_EVENT_HANDLER_INSTALLED = 1,
63203 	EC_FLAGS_EC_HANDLER_INSTALLED = 2,
63204 	EC_FLAGS_QUERY_METHODS_INSTALLED = 3,
63205 	EC_FLAGS_STARTED = 4,
63206 	EC_FLAGS_STOPPED = 5,
63207 	EC_FLAGS_EVENTS_MASKED = 6,
63208 };
63209 
63210 struct acpi_ec_query_handler {
63211 	struct list_head node;
63212 	acpi_ec_query_func func;
63213 	acpi_handle handle;
63214 	void *data;
63215 	u8 query_bit;
63216 	struct kref kref;
63217 };
63218 
63219 struct acpi_ec_query {
63220 	struct transaction transaction;
63221 	struct work_struct work;
63222 	struct acpi_ec_query_handler *handler;
63223 	struct acpi_ec *ec;
63224 };
63225 
63226 struct acpi_pci_root_ops;
63227 
63228 struct acpi_pci_root_info {
63229 	struct acpi_pci_root *root;
63230 	struct acpi_device *bridge;
63231 	struct acpi_pci_root_ops *ops;
63232 	struct list_head resources;
63233 	char name[16];
63234 };
63235 
63236 struct acpi_pci_root_ops {
63237 	struct pci_ops *pci_ops;
63238 	int (*init_info)(struct acpi_pci_root_info *);
63239 	void (*release_info)(struct acpi_pci_root_info *);
63240 	int (*prepare_resources)(struct acpi_pci_root_info *);
63241 };
63242 
63243 struct pci_osc_bit_struct {
63244 	u32 bit;
63245 	char *desc;
63246 };
63247 
63248 struct acpi_handle_node {
63249 	struct list_head node;
63250 	acpi_handle handle;
63251 };
63252 
63253 struct acpi_pci_link_irq {
63254 	u32 active;
63255 	u8 triggering;
63256 	u8 polarity;
63257 	u8 resource_type;
63258 	u8 possible_count;
63259 	u32 possible[16];
63260 	u8 initialized: 1;
63261 	u8 reserved: 7;
63262 };
63263 
63264 struct acpi_pci_link {
63265 	struct list_head list;
63266 	struct acpi_device *device;
63267 	struct acpi_pci_link_irq irq;
63268 	int refcnt;
63269 };
63270 
63271 struct acpi_pci_routing_table {
63272 	u32 length;
63273 	u32 pin;
63274 	u64 address;
63275 	u32 source_index;
63276 	char source[4];
63277 };
63278 
63279 struct acpi_prt_entry {
63280 	struct acpi_pci_id id;
63281 	u8 pin;
63282 	acpi_handle link;
63283 	u32 index;
63284 };
63285 
63286 struct prt_quirk {
63287 	const struct dmi_system_id *system;
63288 	unsigned int segment;
63289 	unsigned int bus;
63290 	unsigned int device;
63291 	unsigned char pin;
63292 	const char *source;
63293 	const char *actual_source;
63294 };
63295 
63296 struct apd_private_data;
63297 
63298 struct apd_device_desc {
63299 	unsigned int fixed_clk_rate;
63300 	struct property_entry *properties;
63301 	int (*setup)(struct apd_private_data *);
63302 };
63303 
63304 struct apd_private_data {
63305 	struct clk *clk;
63306 	struct acpi_device *adev;
63307 	const struct apd_device_desc *dev_desc;
63308 };
63309 
63310 struct acpi_power_dependent_device {
63311 	struct device *dev;
63312 	struct list_head node;
63313 };
63314 
63315 struct acpi_power_resource {
63316 	struct acpi_device device;
63317 	struct list_head list_node;
63318 	u32 system_level;
63319 	u32 order;
63320 	unsigned int ref_count;
63321 	u8 state;
63322 	struct mutex resource_lock;
63323 	struct list_head dependents;
63324 };
63325 
63326 struct acpi_power_resource_entry {
63327 	struct list_head node;
63328 	struct acpi_power_resource *resource;
63329 };
63330 
63331 struct acpi_bus_event {
63332 	struct list_head node;
63333 	acpi_device_class device_class;
63334 	acpi_bus_id bus_id;
63335 	u32 type;
63336 	u32 data;
63337 };
63338 
63339 struct acpi_genl_event {
63340 	acpi_device_class device_class;
63341 	char bus_id[15];
63342 	u32 type;
63343 	u32 data;
63344 };
63345 
63346 enum {
63347 	ACPI_GENL_ATTR_UNSPEC = 0,
63348 	ACPI_GENL_ATTR_EVENT = 1,
63349 	__ACPI_GENL_ATTR_MAX = 2,
63350 };
63351 
63352 enum {
63353 	ACPI_GENL_CMD_UNSPEC = 0,
63354 	ACPI_GENL_CMD_EVENT = 1,
63355 	__ACPI_GENL_CMD_MAX = 2,
63356 };
63357 
63358 struct acpi_ged_device {
63359 	struct device *dev;
63360 	struct list_head event_list;
63361 };
63362 
63363 struct acpi_ged_event {
63364 	struct list_head node;
63365 	struct device *dev;
63366 	unsigned int gsi;
63367 	unsigned int irq;
63368 	acpi_handle handle;
63369 };
63370 
63371 struct acpi_table_bert {
63372 	struct acpi_table_header header;
63373 	u32 region_length;
63374 	u64 address;
63375 };
63376 
63377 struct acpi_table_attr {
63378 	struct bin_attribute attr;
63379 	char name[4];
63380 	int instance;
63381 	char filename[8];
63382 	struct list_head node;
63383 };
63384 
63385 struct acpi_data_attr {
63386 	struct bin_attribute attr;
63387 	u64 addr;
63388 };
63389 
63390 struct acpi_data_obj {
63391 	char *name;
63392 	int (*fn)(void *, struct acpi_data_attr *);
63393 };
63394 
63395 struct event_counter {
63396 	u32 count;
63397 	u32 flags;
63398 };
63399 
63400 struct acpi_device_properties {
63401 	const guid_t *guid;
63402 	const union acpi_object *properties;
63403 	struct list_head list;
63404 };
63405 
63406 struct override_status_id {
63407 	struct acpi_device_id hid[2];
63408 	struct x86_cpu_id cpu_ids[2];
63409 	struct dmi_system_id dmi_ids[2];
63410 	const char *uid;
63411 	const char *path;
63412 	long long unsigned int status;
63413 };
63414 
63415 struct acpi_lpat {
63416 	int temp;
63417 	int raw;
63418 };
63419 
63420 struct acpi_lpat_conversion_table {
63421 	struct acpi_lpat *lpat;
63422 	int lpat_count;
63423 };
63424 
63425 struct acpi_table_lpit {
63426 	struct acpi_table_header header;
63427 };
63428 
63429 struct acpi_lpit_header {
63430 	u32 type;
63431 	u32 length;
63432 	u16 unique_id;
63433 	u16 reserved;
63434 	u32 flags;
63435 };
63436 
63437 struct acpi_lpit_native {
63438 	struct acpi_lpit_header header;
63439 	struct acpi_generic_address entry_trigger;
63440 	u32 residency;
63441 	u32 latency;
63442 	struct acpi_generic_address residency_counter;
63443 	u64 counter_frequency;
63444 } __attribute__((packed));
63445 
63446 struct lpit_residency_info {
63447 	struct acpi_generic_address gaddr;
63448 	u64 frequency;
63449 	void *iomem_addr;
63450 };
63451 
63452 typedef u64 acpi_integer;
63453 
63454 struct acpi_prmt_module_info {
63455 	u16 revision;
63456 	u16 length;
63457 	u8 module_guid[16];
63458 	u16 major_rev;
63459 	u16 minor_rev;
63460 	u16 handler_info_count;
63461 	u32 handler_info_offset;
63462 	u64 mmio_list_pointer;
63463 } __attribute__((packed));
63464 
63465 struct acpi_prmt_handler_info {
63466 	u16 revision;
63467 	u16 length;
63468 	u8 handler_guid[16];
63469 	u64 handler_address;
63470 	u64 static_data_buffer_address;
63471 	u64 acpi_param_buffer_address;
63472 } __attribute__((packed));
63473 
63474 struct prm_mmio_addr_range {
63475 	u64 phys_addr;
63476 	u64 virt_addr;
63477 	u32 length;
63478 } __attribute__((packed));
63479 
63480 struct prm_mmio_info {
63481 	u64 mmio_count;
63482 	struct prm_mmio_addr_range addr_ranges[0];
63483 };
63484 
63485 struct prm_buffer {
63486 	u8 prm_status;
63487 	u64 efi_status;
63488 	u8 prm_cmd;
63489 	guid_t handler_guid;
63490 } __attribute__((packed));
63491 
63492 struct prm_context_buffer {
63493 	char signature[4];
63494 	u16 revision;
63495 	u16 reserved;
63496 	guid_t identifier;
63497 	u64 static_data_buffer;
63498 	struct prm_mmio_info *mmio_ranges;
63499 };
63500 
63501 struct prm_handler_info {
63502 	guid_t guid;
63503 	u64 handler_addr;
63504 	u64 static_data_buffer_addr;
63505 	u64 acpi_param_buffer_addr;
63506 	struct list_head handler_list;
63507 };
63508 
63509 struct prm_module_info {
63510 	guid_t guid;
63511 	u16 major_rev;
63512 	u16 minor_rev;
63513 	u16 handler_count;
63514 	struct prm_mmio_info *mmio_info;
63515 	bool updatable;
63516 	struct list_head module_list;
63517 	struct prm_handler_info handlers[0];
63518 };
63519 
63520 struct acpi_pcc_info {
63521 	u8 subspace_id;
63522 	u16 length;
63523 	u8 *internal_buffer;
63524 };
63525 
63526 struct mbox_chan;
63527 
63528 struct mbox_chan_ops {
63529 	int (*send_data)(struct mbox_chan *, void *);
63530 	int (*flush)(struct mbox_chan *, long unsigned int);
63531 	int (*startup)(struct mbox_chan *);
63532 	void (*shutdown)(struct mbox_chan *);
63533 	bool (*last_tx_done)(struct mbox_chan *);
63534 	bool (*peek_data)(struct mbox_chan *);
63535 };
63536 
63537 struct mbox_controller;
63538 
63539 struct mbox_client;
63540 
63541 struct mbox_chan {
63542 	struct mbox_controller *mbox;
63543 	unsigned int txdone_method;
63544 	struct mbox_client *cl;
63545 	struct completion tx_complete;
63546 	void *active_req;
63547 	unsigned int msg_count;
63548 	unsigned int msg_free;
63549 	void *msg_data[20];
63550 	spinlock_t lock;
63551 	void *con_priv;
63552 };
63553 
63554 struct mbox_controller {
63555 	struct device *dev;
63556 	const struct mbox_chan_ops *ops;
63557 	struct mbox_chan *chans;
63558 	int num_chans;
63559 	bool txdone_irq;
63560 	bool txdone_poll;
63561 	unsigned int txpoll_period;
63562 	struct mbox_chan * (*of_xlate)(struct mbox_controller *, const struct of_phandle_args *);
63563 	struct hrtimer poll_hrt;
63564 	struct list_head node;
63565 };
63566 
63567 struct mbox_client {
63568 	struct device *dev;
63569 	bool tx_block;
63570 	long unsigned int tx_tout;
63571 	bool knows_txdone;
63572 	void (*rx_callback)(struct mbox_client *, void *);
63573 	void (*tx_prepare)(struct mbox_client *, void *);
63574 	void (*tx_done)(struct mbox_client *, void *, int);
63575 };
63576 
63577 struct pcc_mbox_chan {
63578 	struct mbox_chan *mchan;
63579 	u64 shmem_base_addr;
63580 	u64 shmem_size;
63581 	u32 latency;
63582 	u32 max_access_rate;
63583 	u16 min_turnaround_time;
63584 };
63585 
63586 struct pcc_data {
63587 	struct pcc_mbox_chan *pcc_chan;
63588 	void *pcc_comm_addr;
63589 	struct completion done;
63590 	struct mbox_client cl;
63591 	struct acpi_pcc_info ctx;
63592 };
63593 
63594 enum {
63595 	ACPI_REFCLASS_LOCAL = 0,
63596 	ACPI_REFCLASS_ARG = 1,
63597 	ACPI_REFCLASS_REFOF = 2,
63598 	ACPI_REFCLASS_INDEX = 3,
63599 	ACPI_REFCLASS_TABLE = 4,
63600 	ACPI_REFCLASS_NAME = 5,
63601 	ACPI_REFCLASS_DEBUG = 6,
63602 	ACPI_REFCLASS_MAX = 6,
63603 };
63604 
63605 struct acpi_common_descriptor {
63606 	void *common_pointer;
63607 	u8 descriptor_type;
63608 };
63609 
63610 union acpi_descriptor {
63611 	struct acpi_common_descriptor common;
63612 	union acpi_operand_object object;
63613 	struct acpi_namespace_node node;
63614 	union acpi_parse_object op;
63615 };
63616 
63617 struct acpi_create_field_info {
63618 	struct acpi_namespace_node *region_node;
63619 	struct acpi_namespace_node *field_node;
63620 	struct acpi_namespace_node *register_node;
63621 	struct acpi_namespace_node *data_register_node;
63622 	struct acpi_namespace_node *connection_node;
63623 	u8 *resource_buffer;
63624 	u32 bank_value;
63625 	u32 field_bit_position;
63626 	u32 field_bit_length;
63627 	u16 resource_length;
63628 	u16 pin_number_index;
63629 	u8 field_flags;
63630 	u8 attribute;
63631 	u8 field_type;
63632 	u8 access_length;
63633 };
63634 
63635 struct acpi_init_walk_info {
63636 	u32 table_index;
63637 	u32 object_count;
63638 	u32 method_count;
63639 	u32 serial_method_count;
63640 	u32 non_serial_method_count;
63641 	u32 serialized_method_count;
63642 	u32 device_count;
63643 	u32 op_region_count;
63644 	u32 field_count;
63645 	u32 buffer_count;
63646 	u32 package_count;
63647 	u32 op_region_init;
63648 	u32 field_init;
63649 	u32 buffer_init;
63650 	u32 package_init;
63651 	acpi_owner_id owner_id;
63652 };
63653 
63654 struct acpi_name_info {
63655 	char name[4];
63656 	u16 argument_list;
63657 	u8 expected_btypes;
63658 } __attribute__((packed));
63659 
63660 struct acpi_package_info {
63661 	u8 type;
63662 	u8 object_type1;
63663 	u8 count1;
63664 	u8 object_type2;
63665 	u8 count2;
63666 	u16 reserved;
63667 } __attribute__((packed));
63668 
63669 struct acpi_package_info2 {
63670 	u8 type;
63671 	u8 count;
63672 	u8 object_type[4];
63673 	u8 reserved;
63674 };
63675 
63676 struct acpi_package_info3 {
63677 	u8 type;
63678 	u8 count;
63679 	u8 object_type[2];
63680 	u8 tail_object_type;
63681 	u16 reserved;
63682 } __attribute__((packed));
63683 
63684 struct acpi_package_info4 {
63685 	u8 type;
63686 	u8 object_type1;
63687 	u8 count1;
63688 	u8 sub_object_types;
63689 	u8 pkg_count;
63690 	u16 reserved;
63691 } __attribute__((packed));
63692 
63693 union acpi_predefined_info {
63694 	struct acpi_name_info info;
63695 	struct acpi_package_info ret_info;
63696 	struct acpi_package_info2 ret_info2;
63697 	struct acpi_package_info3 ret_info3;
63698 	struct acpi_package_info4 ret_info4;
63699 };
63700 
63701 struct acpi_evaluate_info {
63702 	struct acpi_namespace_node *prefix_node;
63703 	const char *relative_pathname;
63704 	union acpi_operand_object **parameters;
63705 	struct acpi_namespace_node *node;
63706 	union acpi_operand_object *obj_desc;
63707 	char *full_pathname;
63708 	const union acpi_predefined_info *predefined;
63709 	union acpi_operand_object *return_object;
63710 	union acpi_operand_object *parent_package;
63711 	u32 return_flags;
63712 	u32 return_btype;
63713 	u16 param_count;
63714 	u16 node_flags;
63715 	u8 pass_number;
63716 	u8 return_object_type;
63717 	u8 flags;
63718 };
63719 
63720 enum {
63721 	AML_FIELD_ACCESS_ANY = 0,
63722 	AML_FIELD_ACCESS_BYTE = 1,
63723 	AML_FIELD_ACCESS_WORD = 2,
63724 	AML_FIELD_ACCESS_DWORD = 3,
63725 	AML_FIELD_ACCESS_QWORD = 4,
63726 	AML_FIELD_ACCESS_BUFFER = 5,
63727 };
63728 
63729 typedef enum {
63730 	ACPI_IMODE_LOAD_PASS1 = 1,
63731 	ACPI_IMODE_LOAD_PASS2 = 2,
63732 	ACPI_IMODE_EXECUTE = 3,
63733 } acpi_interpreter_mode;
63734 
63735 typedef acpi_status (*acpi_execute_op)(struct acpi_walk_state *);
63736 
63737 struct acpi_gpe_walk_info {
63738 	struct acpi_namespace_node *gpe_device;
63739 	struct acpi_gpe_block_info *gpe_block;
63740 	u16 count;
63741 	acpi_owner_id owner_id;
63742 	u8 execute_by_owner_id;
63743 };
63744 
63745 struct acpi_gpe_device_info {
63746 	u32 index;
63747 	u32 next_block_base_index;
63748 	acpi_status status;
63749 	struct acpi_namespace_node *gpe_device;
63750 };
63751 
63752 typedef acpi_status (*acpi_gpe_callback)(struct acpi_gpe_xrupt_info *, struct acpi_gpe_block_info *, void *);
63753 
63754 struct acpi_connection_info {
63755 	u8 *connection;
63756 	u16 length;
63757 	u8 access_length;
63758 };
63759 
63760 struct acpi_reg_walk_info {
63761 	u32 function;
63762 	u32 reg_run_count;
63763 	acpi_adr_space_type space_id;
63764 };
63765 
63766 struct acpi_data_table_space_context {
63767 	void *pointer;
63768 };
63769 
63770 enum {
63771 	AML_FIELD_UPDATE_PRESERVE = 0,
63772 	AML_FIELD_UPDATE_WRITE_AS_ONES = 32,
63773 	AML_FIELD_UPDATE_WRITE_AS_ZEROS = 64,
63774 };
63775 
63776 struct acpi_signal_fatal_info {
63777 	u32 type;
63778 	u32 code;
63779 	u32 argument;
63780 };
63781 
63782 enum {
63783 	MATCH_MTR = 0,
63784 	MATCH_MEQ = 1,
63785 	MATCH_MLE = 2,
63786 	MATCH_MLT = 3,
63787 	MATCH_MGE = 4,
63788 	MATCH_MGT = 5,
63789 };
63790 
63791 enum {
63792 	AML_FIELD_ATTRIB_QUICK = 2,
63793 	AML_FIELD_ATTRIB_SEND_RECEIVE = 4,
63794 	AML_FIELD_ATTRIB_BYTE = 6,
63795 	AML_FIELD_ATTRIB_WORD = 8,
63796 	AML_FIELD_ATTRIB_BLOCK = 10,
63797 	AML_FIELD_ATTRIB_BYTES = 11,
63798 	AML_FIELD_ATTRIB_PROCESS_CALL = 12,
63799 	AML_FIELD_ATTRIB_BLOCK_PROCESS_CALL = 13,
63800 	AML_FIELD_ATTRIB_RAW_BYTES = 14,
63801 	AML_FIELD_ATTRIB_RAW_PROCESS_BYTES = 15,
63802 };
63803 
63804 typedef enum {
63805 	ACPI_TRACE_AML_METHOD = 0,
63806 	ACPI_TRACE_AML_OPCODE = 1,
63807 	ACPI_TRACE_AML_REGION = 2,
63808 } acpi_trace_event_type;
63809 
63810 struct acpi_gpe_block_status_context {
63811 	struct acpi_gpe_register_info *gpe_skip_register_info;
63812 	u8 gpe_skip_mask;
63813 	u8 retval;
63814 };
63815 
63816 struct acpi_port_info {
63817 	char *name;
63818 	u16 start;
63819 	u16 end;
63820 	u8 osi_dependency;
63821 };
63822 
63823 struct acpi_pci_device {
63824 	acpi_handle device;
63825 	struct acpi_pci_device *next;
63826 };
63827 
63828 struct acpi_device_walk_info {
63829 	struct acpi_table_desc *table_desc;
63830 	struct acpi_evaluate_info *evaluate_info;
63831 	u32 device_count;
63832 	u32 num_STA;
63833 	u32 num_INI;
63834 };
63835 
63836 enum acpi_return_package_types {
63837 	ACPI_PTYPE1_FIXED = 1,
63838 	ACPI_PTYPE1_VAR = 2,
63839 	ACPI_PTYPE1_OPTION = 3,
63840 	ACPI_PTYPE2 = 4,
63841 	ACPI_PTYPE2_COUNT = 5,
63842 	ACPI_PTYPE2_PKG_COUNT = 6,
63843 	ACPI_PTYPE2_FIXED = 7,
63844 	ACPI_PTYPE2_MIN = 8,
63845 	ACPI_PTYPE2_REV_FIXED = 9,
63846 	ACPI_PTYPE2_FIX_VAR = 10,
63847 	ACPI_PTYPE2_VAR_VAR = 11,
63848 	ACPI_PTYPE2_UUID_PAIR = 12,
63849 	ACPI_PTYPE_CUSTOM = 13,
63850 };
63851 
63852 typedef acpi_status (*acpi_object_converter)(struct acpi_namespace_node *, union acpi_operand_object *, union acpi_operand_object **);
63853 
63854 struct acpi_simple_repair_info {
63855 	char name[4];
63856 	u32 unexpected_btypes;
63857 	u32 package_index;
63858 	acpi_object_converter object_converter;
63859 };
63860 
63861 typedef acpi_status (*acpi_repair_function)(struct acpi_evaluate_info *, union acpi_operand_object **);
63862 
63863 struct acpi_repair_info {
63864 	char name[4];
63865 	acpi_repair_function repair_function;
63866 };
63867 
63868 struct acpi_namestring_info {
63869 	const char *external_name;
63870 	const char *next_external_char;
63871 	char *internal_name;
63872 	u32 length;
63873 	u32 num_segments;
63874 	u32 num_carats;
63875 	u8 fully_qualified;
63876 };
63877 
63878 typedef acpi_status (*acpi_walk_callback)(acpi_handle, u32, void *, void **);
63879 
63880 struct acpi_get_devices_info {
63881 	acpi_walk_callback user_function;
63882 	void *context;
63883 	const char *hid;
63884 };
63885 
63886 struct aml_resource_small_header {
63887 	u8 descriptor_type;
63888 };
63889 
63890 struct aml_resource_irq {
63891 	u8 descriptor_type;
63892 	u16 irq_mask;
63893 	u8 flags;
63894 } __attribute__((packed));
63895 
63896 struct aml_resource_dma {
63897 	u8 descriptor_type;
63898 	u8 dma_channel_mask;
63899 	u8 flags;
63900 };
63901 
63902 struct aml_resource_start_dependent {
63903 	u8 descriptor_type;
63904 	u8 flags;
63905 };
63906 
63907 struct aml_resource_end_dependent {
63908 	u8 descriptor_type;
63909 };
63910 
63911 struct aml_resource_io {
63912 	u8 descriptor_type;
63913 	u8 flags;
63914 	u16 minimum;
63915 	u16 maximum;
63916 	u8 alignment;
63917 	u8 address_length;
63918 };
63919 
63920 struct aml_resource_fixed_io {
63921 	u8 descriptor_type;
63922 	u16 address;
63923 	u8 address_length;
63924 } __attribute__((packed));
63925 
63926 struct aml_resource_vendor_small {
63927 	u8 descriptor_type;
63928 };
63929 
63930 struct aml_resource_end_tag {
63931 	u8 descriptor_type;
63932 	u8 checksum;
63933 };
63934 
63935 struct aml_resource_fixed_dma {
63936 	u8 descriptor_type;
63937 	u16 request_lines;
63938 	u16 channels;
63939 	u8 width;
63940 } __attribute__((packed));
63941 
63942 struct aml_resource_large_header {
63943 	u8 descriptor_type;
63944 	u16 resource_length;
63945 } __attribute__((packed));
63946 
63947 struct aml_resource_memory24 {
63948 	u8 descriptor_type;
63949 	u16 resource_length;
63950 	u8 flags;
63951 	u16 minimum;
63952 	u16 maximum;
63953 	u16 alignment;
63954 	u16 address_length;
63955 } __attribute__((packed));
63956 
63957 struct aml_resource_vendor_large {
63958 	u8 descriptor_type;
63959 	u16 resource_length;
63960 } __attribute__((packed));
63961 
63962 struct aml_resource_memory32 {
63963 	u8 descriptor_type;
63964 	u16 resource_length;
63965 	u8 flags;
63966 	u32 minimum;
63967 	u32 maximum;
63968 	u32 alignment;
63969 	u32 address_length;
63970 } __attribute__((packed));
63971 
63972 struct aml_resource_fixed_memory32 {
63973 	u8 descriptor_type;
63974 	u16 resource_length;
63975 	u8 flags;
63976 	u32 address;
63977 	u32 address_length;
63978 } __attribute__((packed));
63979 
63980 struct aml_resource_address {
63981 	u8 descriptor_type;
63982 	u16 resource_length;
63983 	u8 resource_type;
63984 	u8 flags;
63985 	u8 specific_flags;
63986 } __attribute__((packed));
63987 
63988 struct aml_resource_extended_address64 {
63989 	u8 descriptor_type;
63990 	u16 resource_length;
63991 	u8 resource_type;
63992 	u8 flags;
63993 	u8 specific_flags;
63994 	u8 revision_ID;
63995 	u8 reserved;
63996 	u64 granularity;
63997 	u64 minimum;
63998 	u64 maximum;
63999 	u64 translation_offset;
64000 	u64 address_length;
64001 	u64 type_specific;
64002 } __attribute__((packed));
64003 
64004 struct aml_resource_address64 {
64005 	u8 descriptor_type;
64006 	u16 resource_length;
64007 	u8 resource_type;
64008 	u8 flags;
64009 	u8 specific_flags;
64010 	u64 granularity;
64011 	u64 minimum;
64012 	u64 maximum;
64013 	u64 translation_offset;
64014 	u64 address_length;
64015 } __attribute__((packed));
64016 
64017 struct aml_resource_address32 {
64018 	u8 descriptor_type;
64019 	u16 resource_length;
64020 	u8 resource_type;
64021 	u8 flags;
64022 	u8 specific_flags;
64023 	u32 granularity;
64024 	u32 minimum;
64025 	u32 maximum;
64026 	u32 translation_offset;
64027 	u32 address_length;
64028 } __attribute__((packed));
64029 
64030 struct aml_resource_address16 {
64031 	u8 descriptor_type;
64032 	u16 resource_length;
64033 	u8 resource_type;
64034 	u8 flags;
64035 	u8 specific_flags;
64036 	u16 granularity;
64037 	u16 minimum;
64038 	u16 maximum;
64039 	u16 translation_offset;
64040 	u16 address_length;
64041 } __attribute__((packed));
64042 
64043 struct aml_resource_extended_irq {
64044 	u8 descriptor_type;
64045 	u16 resource_length;
64046 	u8 flags;
64047 	u8 interrupt_count;
64048 	u32 interrupts[1];
64049 } __attribute__((packed));
64050 
64051 struct aml_resource_generic_register {
64052 	u8 descriptor_type;
64053 	u16 resource_length;
64054 	u8 address_space_id;
64055 	u8 bit_width;
64056 	u8 bit_offset;
64057 	u8 access_size;
64058 	u64 address;
64059 } __attribute__((packed));
64060 
64061 struct aml_resource_gpio {
64062 	u8 descriptor_type;
64063 	u16 resource_length;
64064 	u8 revision_id;
64065 	u8 connection_type;
64066 	u16 flags;
64067 	u16 int_flags;
64068 	u8 pin_config;
64069 	u16 drive_strength;
64070 	u16 debounce_timeout;
64071 	u16 pin_table_offset;
64072 	u8 res_source_index;
64073 	u16 res_source_offset;
64074 	u16 vendor_offset;
64075 	u16 vendor_length;
64076 } __attribute__((packed));
64077 
64078 struct aml_resource_common_serialbus {
64079 	u8 descriptor_type;
64080 	u16 resource_length;
64081 	u8 revision_id;
64082 	u8 res_source_index;
64083 	u8 type;
64084 	u8 flags;
64085 	u16 type_specific_flags;
64086 	u8 type_revision_id;
64087 	u16 type_data_length;
64088 } __attribute__((packed));
64089 
64090 struct aml_resource_csi2_serialbus {
64091 	u8 descriptor_type;
64092 	u16 resource_length;
64093 	u8 revision_id;
64094 	u8 res_source_index;
64095 	u8 type;
64096 	u8 flags;
64097 	u16 type_specific_flags;
64098 	u8 type_revision_id;
64099 	u16 type_data_length;
64100 } __attribute__((packed));
64101 
64102 struct aml_resource_i2c_serialbus {
64103 	u8 descriptor_type;
64104 	u16 resource_length;
64105 	u8 revision_id;
64106 	u8 res_source_index;
64107 	u8 type;
64108 	u8 flags;
64109 	u16 type_specific_flags;
64110 	u8 type_revision_id;
64111 	u16 type_data_length;
64112 	u32 connection_speed;
64113 	u16 slave_address;
64114 } __attribute__((packed));
64115 
64116 struct aml_resource_spi_serialbus {
64117 	u8 descriptor_type;
64118 	u16 resource_length;
64119 	u8 revision_id;
64120 	u8 res_source_index;
64121 	u8 type;
64122 	u8 flags;
64123 	u16 type_specific_flags;
64124 	u8 type_revision_id;
64125 	u16 type_data_length;
64126 	u32 connection_speed;
64127 	u8 data_bit_length;
64128 	u8 clock_phase;
64129 	u8 clock_polarity;
64130 	u16 device_selection;
64131 } __attribute__((packed));
64132 
64133 struct aml_resource_uart_serialbus {
64134 	u8 descriptor_type;
64135 	u16 resource_length;
64136 	u8 revision_id;
64137 	u8 res_source_index;
64138 	u8 type;
64139 	u8 flags;
64140 	u16 type_specific_flags;
64141 	u8 type_revision_id;
64142 	u16 type_data_length;
64143 	u32 default_baud_rate;
64144 	u16 rx_fifo_size;
64145 	u16 tx_fifo_size;
64146 	u8 parity;
64147 	u8 lines_enabled;
64148 } __attribute__((packed));
64149 
64150 struct aml_resource_pin_function {
64151 	u8 descriptor_type;
64152 	u16 resource_length;
64153 	u8 revision_id;
64154 	u16 flags;
64155 	u8 pin_config;
64156 	u16 function_number;
64157 	u16 pin_table_offset;
64158 	u8 res_source_index;
64159 	u16 res_source_offset;
64160 	u16 vendor_offset;
64161 	u16 vendor_length;
64162 } __attribute__((packed));
64163 
64164 struct aml_resource_pin_config {
64165 	u8 descriptor_type;
64166 	u16 resource_length;
64167 	u8 revision_id;
64168 	u16 flags;
64169 	u8 pin_config_type;
64170 	u32 pin_config_value;
64171 	u16 pin_table_offset;
64172 	u8 res_source_index;
64173 	u16 res_source_offset;
64174 	u16 vendor_offset;
64175 	u16 vendor_length;
64176 } __attribute__((packed));
64177 
64178 struct aml_resource_pin_group {
64179 	u8 descriptor_type;
64180 	u16 resource_length;
64181 	u8 revision_id;
64182 	u16 flags;
64183 	u16 pin_table_offset;
64184 	u16 label_offset;
64185 	u16 vendor_offset;
64186 	u16 vendor_length;
64187 } __attribute__((packed));
64188 
64189 struct aml_resource_pin_group_function {
64190 	u8 descriptor_type;
64191 	u16 resource_length;
64192 	u8 revision_id;
64193 	u16 flags;
64194 	u16 function_number;
64195 	u8 res_source_index;
64196 	u16 res_source_offset;
64197 	u16 res_source_label_offset;
64198 	u16 vendor_offset;
64199 	u16 vendor_length;
64200 } __attribute__((packed));
64201 
64202 struct aml_resource_pin_group_config {
64203 	u8 descriptor_type;
64204 	u16 resource_length;
64205 	u8 revision_id;
64206 	u16 flags;
64207 	u8 pin_config_type;
64208 	u32 pin_config_value;
64209 	u8 res_source_index;
64210 	u16 res_source_offset;
64211 	u16 res_source_label_offset;
64212 	u16 vendor_offset;
64213 	u16 vendor_length;
64214 } __attribute__((packed));
64215 
64216 union aml_resource {
64217 	u8 descriptor_type;
64218 	struct aml_resource_small_header small_header;
64219 	struct aml_resource_large_header large_header;
64220 	struct aml_resource_irq irq;
64221 	struct aml_resource_dma dma;
64222 	struct aml_resource_start_dependent start_dpf;
64223 	struct aml_resource_end_dependent end_dpf;
64224 	struct aml_resource_io io;
64225 	struct aml_resource_fixed_io fixed_io;
64226 	struct aml_resource_fixed_dma fixed_dma;
64227 	struct aml_resource_vendor_small vendor_small;
64228 	struct aml_resource_end_tag end_tag;
64229 	struct aml_resource_memory24 memory24;
64230 	struct aml_resource_generic_register generic_reg;
64231 	struct aml_resource_vendor_large vendor_large;
64232 	struct aml_resource_memory32 memory32;
64233 	struct aml_resource_fixed_memory32 fixed_memory32;
64234 	struct aml_resource_address16 address16;
64235 	struct aml_resource_address32 address32;
64236 	struct aml_resource_address64 address64;
64237 	struct aml_resource_extended_address64 ext_address64;
64238 	struct aml_resource_extended_irq extended_irq;
64239 	struct aml_resource_gpio gpio;
64240 	struct aml_resource_i2c_serialbus i2c_serial_bus;
64241 	struct aml_resource_spi_serialbus spi_serial_bus;
64242 	struct aml_resource_uart_serialbus uart_serial_bus;
64243 	struct aml_resource_csi2_serialbus csi2_serial_bus;
64244 	struct aml_resource_common_serialbus common_serial_bus;
64245 	struct aml_resource_pin_function pin_function;
64246 	struct aml_resource_pin_config pin_config;
64247 	struct aml_resource_pin_group pin_group;
64248 	struct aml_resource_pin_group_function pin_group_function;
64249 	struct aml_resource_pin_group_config pin_group_config;
64250 	struct aml_resource_address address;
64251 	u32 dword_item;
64252 	u16 word_item;
64253 	u8 byte_item;
64254 };
64255 
64256 struct acpi_rsconvert_info {
64257 	u8 opcode;
64258 	u8 resource_offset;
64259 	u8 aml_offset;
64260 	u8 value;
64261 };
64262 
64263 enum {
64264 	ACPI_RSC_INITGET = 0,
64265 	ACPI_RSC_INITSET = 1,
64266 	ACPI_RSC_FLAGINIT = 2,
64267 	ACPI_RSC_1BITFLAG = 3,
64268 	ACPI_RSC_2BITFLAG = 4,
64269 	ACPI_RSC_3BITFLAG = 5,
64270 	ACPI_RSC_6BITFLAG = 6,
64271 	ACPI_RSC_ADDRESS = 7,
64272 	ACPI_RSC_BITMASK = 8,
64273 	ACPI_RSC_BITMASK16 = 9,
64274 	ACPI_RSC_COUNT = 10,
64275 	ACPI_RSC_COUNT16 = 11,
64276 	ACPI_RSC_COUNT_GPIO_PIN = 12,
64277 	ACPI_RSC_COUNT_GPIO_RES = 13,
64278 	ACPI_RSC_COUNT_GPIO_VEN = 14,
64279 	ACPI_RSC_COUNT_SERIAL_RES = 15,
64280 	ACPI_RSC_COUNT_SERIAL_VEN = 16,
64281 	ACPI_RSC_DATA8 = 17,
64282 	ACPI_RSC_EXIT_EQ = 18,
64283 	ACPI_RSC_EXIT_LE = 19,
64284 	ACPI_RSC_EXIT_NE = 20,
64285 	ACPI_RSC_LENGTH = 21,
64286 	ACPI_RSC_MOVE_GPIO_PIN = 22,
64287 	ACPI_RSC_MOVE_GPIO_RES = 23,
64288 	ACPI_RSC_MOVE_SERIAL_RES = 24,
64289 	ACPI_RSC_MOVE_SERIAL_VEN = 25,
64290 	ACPI_RSC_MOVE8 = 26,
64291 	ACPI_RSC_MOVE16 = 27,
64292 	ACPI_RSC_MOVE32 = 28,
64293 	ACPI_RSC_MOVE64 = 29,
64294 	ACPI_RSC_SET8 = 30,
64295 	ACPI_RSC_SOURCE = 31,
64296 	ACPI_RSC_SOURCEX = 32,
64297 };
64298 
64299 typedef u16 acpi_rs_length;
64300 
64301 typedef u32 acpi_rsdesc_size;
64302 
64303 struct acpi_vendor_uuid {
64304 	u8 subtype;
64305 	u8 data[16];
64306 };
64307 
64308 typedef acpi_status (*acpi_walk_resource_callback)(struct acpi_resource *, void *);
64309 
64310 struct acpi_vendor_walk_info {
64311 	struct acpi_vendor_uuid *uuid;
64312 	struct acpi_buffer *buffer;
64313 	acpi_status status;
64314 };
64315 
64316 struct acpi_fadt_info {
64317 	const char *name;
64318 	u16 address64;
64319 	u16 address32;
64320 	u16 length;
64321 	u8 default_length;
64322 	u8 flags;
64323 };
64324 
64325 struct acpi_fadt_pm_info {
64326 	struct acpi_generic_address *target;
64327 	u16 source;
64328 	u8 register_num;
64329 };
64330 
64331 struct acpi_table_rsdp {
64332 	char signature[8];
64333 	u8 checksum;
64334 	char oem_id[6];
64335 	u8 revision;
64336 	u32 rsdt_physical_address;
64337 	u32 length;
64338 	u64 xsdt_physical_address;
64339 	u8 extended_checksum;
64340 	u8 reserved[3];
64341 } __attribute__((packed));
64342 
64343 struct acpi_pkg_info {
64344 	u8 *free_space;
64345 	acpi_size length;
64346 	u32 object_space;
64347 	u32 num_packages;
64348 };
64349 
64350 struct acpi_exception_info {
64351 	char *name;
64352 };
64353 
64354 typedef acpi_status (*acpi_pkg_callback)(u8, union acpi_operand_object *, union acpi_generic_state *, void *);
64355 
64356 typedef u32 acpi_mutex_handle;
64357 
64358 typedef acpi_status (*acpi_walk_aml_callback)(u8 *, u32, u32, u8, void **);
64359 
64360 struct acpi_lpi_states_array {
64361 	unsigned int size;
64362 	unsigned int composite_states_size;
64363 	struct acpi_lpi_state *entries;
64364 	struct acpi_lpi_state *composite_states[8];
64365 };
64366 
64367 struct throttling_tstate {
64368 	unsigned int cpu;
64369 	int target_state;
64370 };
64371 
64372 struct acpi_processor_throttling_arg {
64373 	struct acpi_processor *pr;
64374 	int target_state;
64375 	bool force;
64376 };
64377 
64378 struct container_dev {
64379 	struct device dev;
64380 	int (*offline)(struct container_dev *);
64381 };
64382 
64383 struct acpi_cedt_cfmws {
64384 	struct acpi_cedt_header header;
64385 	u32 reserved1;
64386 	u64 base_hpa;
64387 	u64 window_size;
64388 	u8 interleave_ways;
64389 	u8 interleave_arithmetic;
64390 	u16 reserved2;
64391 	u32 granularity;
64392 	u16 restrictions;
64393 	u16 qtg_id;
64394 	u32 interleave_targets[0];
64395 } __attribute__((packed));
64396 
64397 struct acpi_table_slit {
64398 	struct acpi_table_header header;
64399 	u64 locality_count;
64400 	u8 entry[1];
64401 } __attribute__((packed));
64402 
64403 struct acpi_table_srat {
64404 	struct acpi_table_header header;
64405 	u32 table_revision;
64406 	u64 reserved;
64407 };
64408 
64409 enum acpi_srat_type {
64410 	ACPI_SRAT_TYPE_CPU_AFFINITY = 0,
64411 	ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1,
64412 	ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2,
64413 	ACPI_SRAT_TYPE_GICC_AFFINITY = 3,
64414 	ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4,
64415 	ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5,
64416 	ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY = 6,
64417 	ACPI_SRAT_TYPE_RESERVED = 7,
64418 };
64419 
64420 struct acpi_srat_mem_affinity {
64421 	struct acpi_subtable_header header;
64422 	u32 proximity_domain;
64423 	u16 reserved;
64424 	u64 base_address;
64425 	u64 length;
64426 	u32 reserved1;
64427 	u32 flags;
64428 	u64 reserved2;
64429 } __attribute__((packed));
64430 
64431 struct acpi_srat_gicc_affinity {
64432 	struct acpi_subtable_header header;
64433 	u32 proximity_domain;
64434 	u32 acpi_processor_uid;
64435 	u32 flags;
64436 	u32 clock_domain;
64437 } __attribute__((packed));
64438 
64439 struct acpi_srat_generic_affinity {
64440 	struct acpi_subtable_header header;
64441 	u8 reserved;
64442 	u8 device_handle_type;
64443 	u32 proximity_domain;
64444 	u8 device_handle[16];
64445 	u32 flags;
64446 	u32 reserved1;
64447 };
64448 
64449 struct acpi_pci_ioapic {
64450 	acpi_handle root_handle;
64451 	acpi_handle handle;
64452 	u32 gsi_base;
64453 	struct resource res;
64454 	struct pci_dev *pdev;
64455 	struct list_head list;
64456 };
64457 
64458 struct acpi_pcct_shared_memory {
64459 	u32 signature;
64460 	u16 command;
64461 	u16 status;
64462 };
64463 
64464 struct cpc_register_resource {
64465 	acpi_object_type type;
64466 	u64 *sys_mem_vaddr;
64467 	union {
64468 		struct cpc_reg reg;
64469 		u64 int_value;
64470 	} cpc_entry;
64471 };
64472 
64473 struct cpc_desc {
64474 	int num_entries;
64475 	int version;
64476 	int cpu_id;
64477 	int write_cmd_status;
64478 	int write_cmd_id;
64479 	struct cpc_register_resource cpc_regs[21];
64480 	struct acpi_psd_package domain_info;
64481 	struct kobject kobj;
64482 };
64483 
64484 enum cppc_regs {
64485 	HIGHEST_PERF = 0,
64486 	NOMINAL_PERF = 1,
64487 	LOW_NON_LINEAR_PERF = 2,
64488 	LOWEST_PERF = 3,
64489 	GUARANTEED_PERF = 4,
64490 	DESIRED_PERF = 5,
64491 	MIN_PERF = 6,
64492 	MAX_PERF = 7,
64493 	PERF_REDUC_TOLERANCE = 8,
64494 	TIME_WINDOW = 9,
64495 	CTR_WRAP_TIME = 10,
64496 	REFERENCE_CTR = 11,
64497 	DELIVERED_CTR = 12,
64498 	PERF_LIMITED = 13,
64499 	ENABLE = 14,
64500 	AUTO_SEL_ENABLE = 15,
64501 	AUTO_ACT_WINDOW = 16,
64502 	ENERGY_PERF = 17,
64503 	REFERENCE_PERF = 18,
64504 	LOWEST_FREQ = 19,
64505 	NOMINAL_FREQ = 20,
64506 };
64507 
64508 struct cppc_perf_ctrls {
64509 	u32 max_perf;
64510 	u32 min_perf;
64511 	u32 desired_perf;
64512 };
64513 
64514 struct cppc_perf_fb_ctrs {
64515 	u64 reference;
64516 	u64 delivered;
64517 	u64 reference_perf;
64518 	u64 wraparound_time;
64519 };
64520 
64521 struct cppc_cpudata {
64522 	struct list_head node;
64523 	struct cppc_perf_caps perf_caps;
64524 	struct cppc_perf_ctrls perf_ctrls;
64525 	struct cppc_perf_fb_ctrs perf_fb_ctrs;
64526 	unsigned int shared_type;
64527 	cpumask_var_t shared_cpu_map;
64528 };
64529 
64530 struct cppc_pcc_data {
64531 	struct pcc_mbox_chan *pcc_channel;
64532 	void *pcc_comm_addr;
64533 	bool pcc_channel_acquired;
64534 	unsigned int deadline_us;
64535 	unsigned int pcc_mpar;
64536 	unsigned int pcc_mrtt;
64537 	unsigned int pcc_nominal;
64538 	bool pending_pcc_write_cmd;
64539 	bool platform_owns_pcc;
64540 	unsigned int pcc_write_cnt;
64541 	struct rw_semaphore pcc_lock;
64542 	wait_queue_head_t pcc_write_wait_q;
64543 	ktime_t last_cmd_cmpl_time;
64544 	ktime_t last_mpar_reset;
64545 	int mpar_count;
64546 	int refcount;
64547 };
64548 
64549 struct pnp_resource {
64550 	struct list_head list;
64551 	struct resource res;
64552 };
64553 
64554 struct pnp_port {
64555 	resource_size_t min;
64556 	resource_size_t max;
64557 	resource_size_t align;
64558 	resource_size_t size;
64559 	unsigned char flags;
64560 };
64561 
64562 typedef struct {
64563 	long unsigned int bits[4];
64564 } pnp_irq_mask_t;
64565 
64566 struct pnp_irq {
64567 	pnp_irq_mask_t map;
64568 	unsigned char flags;
64569 };
64570 
64571 struct pnp_dma {
64572 	unsigned char map;
64573 	unsigned char flags;
64574 };
64575 
64576 struct pnp_mem {
64577 	resource_size_t min;
64578 	resource_size_t max;
64579 	resource_size_t align;
64580 	resource_size_t size;
64581 	unsigned char flags;
64582 };
64583 
64584 struct pnp_option {
64585 	struct list_head list;
64586 	unsigned int flags;
64587 	long unsigned int type;
64588 	union {
64589 		struct pnp_port port;
64590 		struct pnp_irq irq;
64591 		struct pnp_dma dma;
64592 		struct pnp_mem mem;
64593 	} u;
64594 };
64595 
64596 struct pnp_info_buffer {
64597 	char *buffer;
64598 	char *curr;
64599 	long unsigned int size;
64600 	long unsigned int len;
64601 	int stop;
64602 	int error;
64603 };
64604 
64605 typedef struct pnp_info_buffer pnp_info_buffer_t;
64606 
64607 struct pnp_fixup {
64608 	char id[7];
64609 	void (*quirk_function)(struct pnp_dev *);
64610 };
64611 
64612 struct acpipnp_parse_option_s {
64613 	struct pnp_dev *dev;
64614 	unsigned int option_flags;
64615 };
64616 
64617 struct clk_bulk_data {
64618 	const char *id;
64619 	struct clk *clk;
64620 };
64621 
64622 struct clk_bulk_devres {
64623 	struct clk_bulk_data *clks;
64624 	int num_clks;
64625 };
64626 
64627 struct clk_lookup {
64628 	struct list_head node;
64629 	const char *dev_id;
64630 	const char *con_id;
64631 	struct clk *clk;
64632 	struct clk_hw *clk_hw;
64633 };
64634 
64635 struct clk_lookup_alloc {
64636 	struct clk_lookup cl;
64637 	char dev_id[20];
64638 	char con_id[16];
64639 };
64640 
64641 struct clk_notifier {
64642 	struct clk *clk;
64643 	struct srcu_notifier_head notifier_head;
64644 	struct list_head node;
64645 };
64646 
64647 struct clk {
64648 	struct clk_core *core;
64649 	struct device *dev;
64650 	const char *dev_id;
64651 	const char *con_id;
64652 	long unsigned int min_rate;
64653 	long unsigned int max_rate;
64654 	unsigned int exclusive_count;
64655 	struct hlist_node clks_node;
64656 };
64657 
64658 struct clk_notifier_data {
64659 	struct clk *clk;
64660 	long unsigned int old_rate;
64661 	long unsigned int new_rate;
64662 };
64663 
64664 struct clk_parent_map;
64665 
64666 struct clk_core {
64667 	const char *name;
64668 	const struct clk_ops *ops;
64669 	struct clk_hw *hw;
64670 	struct module *owner;
64671 	struct device *dev;
64672 	struct device_node *of_node;
64673 	struct clk_core *parent;
64674 	struct clk_parent_map *parents;
64675 	u8 num_parents;
64676 	u8 new_parent_index;
64677 	long unsigned int rate;
64678 	long unsigned int req_rate;
64679 	long unsigned int new_rate;
64680 	struct clk_core *new_parent;
64681 	struct clk_core *new_child;
64682 	long unsigned int flags;
64683 	bool orphan;
64684 	bool rpm_enabled;
64685 	unsigned int enable_count;
64686 	unsigned int prepare_count;
64687 	unsigned int protect_count;
64688 	long unsigned int min_rate;
64689 	long unsigned int max_rate;
64690 	long unsigned int accuracy;
64691 	int phase;
64692 	struct clk_duty duty;
64693 	struct hlist_head children;
64694 	struct hlist_node child_node;
64695 	struct hlist_head clks;
64696 	unsigned int notifier_count;
64697 	struct dentry *dentry;
64698 	struct hlist_node debug_node;
64699 	struct kref ref;
64700 };
64701 
64702 struct clk_parent_map {
64703 	const struct clk_hw *hw;
64704 	struct clk_core *core;
64705 	const char *fw_name;
64706 	const char *name;
64707 	int index;
64708 };
64709 
64710 struct trace_event_raw_clk {
64711 	struct trace_entry ent;
64712 	u32 __data_loc_name;
64713 	char __data[0];
64714 };
64715 
64716 struct trace_event_raw_clk_rate {
64717 	struct trace_entry ent;
64718 	u32 __data_loc_name;
64719 	long unsigned int rate;
64720 	char __data[0];
64721 };
64722 
64723 struct trace_event_raw_clk_rate_range {
64724 	struct trace_entry ent;
64725 	u32 __data_loc_name;
64726 	long unsigned int min;
64727 	long unsigned int max;
64728 	char __data[0];
64729 };
64730 
64731 struct trace_event_raw_clk_parent {
64732 	struct trace_entry ent;
64733 	u32 __data_loc_name;
64734 	u32 __data_loc_pname;
64735 	char __data[0];
64736 };
64737 
64738 struct trace_event_raw_clk_phase {
64739 	struct trace_entry ent;
64740 	u32 __data_loc_name;
64741 	int phase;
64742 	char __data[0];
64743 };
64744 
64745 struct trace_event_raw_clk_duty_cycle {
64746 	struct trace_entry ent;
64747 	u32 __data_loc_name;
64748 	unsigned int num;
64749 	unsigned int den;
64750 	char __data[0];
64751 };
64752 
64753 struct trace_event_data_offsets_clk {
64754 	u32 name;
64755 };
64756 
64757 struct trace_event_data_offsets_clk_rate {
64758 	u32 name;
64759 };
64760 
64761 struct trace_event_data_offsets_clk_rate_range {
64762 	u32 name;
64763 };
64764 
64765 struct trace_event_data_offsets_clk_parent {
64766 	u32 name;
64767 	u32 pname;
64768 };
64769 
64770 struct trace_event_data_offsets_clk_phase {
64771 	u32 name;
64772 };
64773 
64774 struct trace_event_data_offsets_clk_duty_cycle {
64775 	u32 name;
64776 };
64777 
64778 typedef void (*btf_trace_clk_enable)(void *, struct clk_core *);
64779 
64780 typedef void (*btf_trace_clk_enable_complete)(void *, struct clk_core *);
64781 
64782 typedef void (*btf_trace_clk_disable)(void *, struct clk_core *);
64783 
64784 typedef void (*btf_trace_clk_disable_complete)(void *, struct clk_core *);
64785 
64786 typedef void (*btf_trace_clk_prepare)(void *, struct clk_core *);
64787 
64788 typedef void (*btf_trace_clk_prepare_complete)(void *, struct clk_core *);
64789 
64790 typedef void (*btf_trace_clk_unprepare)(void *, struct clk_core *);
64791 
64792 typedef void (*btf_trace_clk_unprepare_complete)(void *, struct clk_core *);
64793 
64794 typedef void (*btf_trace_clk_set_rate)(void *, struct clk_core *, long unsigned int);
64795 
64796 typedef void (*btf_trace_clk_set_rate_complete)(void *, struct clk_core *, long unsigned int);
64797 
64798 typedef void (*btf_trace_clk_set_min_rate)(void *, struct clk_core *, long unsigned int);
64799 
64800 typedef void (*btf_trace_clk_set_max_rate)(void *, struct clk_core *, long unsigned int);
64801 
64802 typedef void (*btf_trace_clk_set_rate_range)(void *, struct clk_core *, long unsigned int, long unsigned int);
64803 
64804 typedef void (*btf_trace_clk_set_parent)(void *, struct clk_core *, struct clk_core *);
64805 
64806 typedef void (*btf_trace_clk_set_parent_complete)(void *, struct clk_core *, struct clk_core *);
64807 
64808 typedef void (*btf_trace_clk_set_phase)(void *, struct clk_core *, int);
64809 
64810 typedef void (*btf_trace_clk_set_phase_complete)(void *, struct clk_core *, int);
64811 
64812 typedef void (*btf_trace_clk_set_duty_cycle)(void *, struct clk_core *, struct clk_duty *);
64813 
64814 typedef void (*btf_trace_clk_set_duty_cycle_complete)(void *, struct clk_core *, struct clk_duty *);
64815 
64816 struct clk_notifier_devres {
64817 	struct clk *clk;
64818 	struct notifier_block *nb;
64819 };
64820 
64821 struct clk_div_table {
64822 	unsigned int val;
64823 	unsigned int div;
64824 };
64825 
64826 struct clk_divider {
64827 	struct clk_hw hw;
64828 	void *reg;
64829 	u8 shift;
64830 	u8 width;
64831 	u8 flags;
64832 	const struct clk_div_table *table;
64833 	spinlock_t *lock;
64834 };
64835 
64836 struct clk_fixed_factor {
64837 	struct clk_hw hw;
64838 	unsigned int mult;
64839 	unsigned int div;
64840 };
64841 
64842 struct clk_fixed_rate {
64843 	struct clk_hw hw;
64844 	long unsigned int fixed_rate;
64845 	long unsigned int fixed_accuracy;
64846 	long unsigned int flags;
64847 };
64848 
64849 struct clk_gate {
64850 	struct clk_hw hw;
64851 	void *reg;
64852 	u8 bit_idx;
64853 	u8 flags;
64854 	spinlock_t *lock;
64855 };
64856 
64857 struct clk_multiplier {
64858 	struct clk_hw hw;
64859 	void *reg;
64860 	u8 shift;
64861 	u8 width;
64862 	u8 flags;
64863 	spinlock_t *lock;
64864 };
64865 
64866 struct clk_mux {
64867 	struct clk_hw hw;
64868 	void *reg;
64869 	u32 *table;
64870 	u32 mask;
64871 	u8 shift;
64872 	u8 flags;
64873 	spinlock_t *lock;
64874 };
64875 
64876 struct clk_composite {
64877 	struct clk_hw hw;
64878 	struct clk_ops ops;
64879 	struct clk_hw *mux_hw;
64880 	struct clk_hw *rate_hw;
64881 	struct clk_hw *gate_hw;
64882 	const struct clk_ops *mux_ops;
64883 	const struct clk_ops *rate_ops;
64884 	const struct clk_ops *gate_ops;
64885 };
64886 
64887 struct clk_fractional_divider {
64888 	struct clk_hw hw;
64889 	void *reg;
64890 	u8 mshift;
64891 	u8 mwidth;
64892 	u32 mmask;
64893 	u8 nshift;
64894 	u8 nwidth;
64895 	u32 nmask;
64896 	u8 flags;
64897 	void (*approximation)(struct clk_hw *, long unsigned int, long unsigned int *, long unsigned int *, long unsigned int *);
64898 	spinlock_t *lock;
64899 };
64900 
64901 enum gpiod_flags {
64902 	GPIOD_ASIS = 0,
64903 	GPIOD_IN = 1,
64904 	GPIOD_OUT_LOW = 3,
64905 	GPIOD_OUT_HIGH = 7,
64906 	GPIOD_OUT_LOW_OPEN_DRAIN = 11,
64907 	GPIOD_OUT_HIGH_OPEN_DRAIN = 15,
64908 };
64909 
64910 struct clk_gpio {
64911 	struct clk_hw hw;
64912 	struct gpio_desc *gpiod;
64913 };
64914 
64915 struct pmc_clk {
64916 	const char *name;
64917 	long unsigned int freq;
64918 	const char *parent_name;
64919 };
64920 
64921 struct pmc_clk_data {
64922 	void *base;
64923 	const struct pmc_clk *clks;
64924 	bool critical;
64925 };
64926 
64927 struct clk_plt_fixed {
64928 	struct clk_hw *clk;
64929 	struct clk_lookup *lookup;
64930 };
64931 
64932 struct clk_plt {
64933 	struct clk_hw hw;
64934 	void *reg;
64935 	struct clk_lookup *lookup;
64936 	spinlock_t lock;
64937 };
64938 
64939 struct clk_plt_data {
64940 	struct clk_plt_fixed **parents;
64941 	u8 nparents;
64942 	struct clk_plt *clks[6];
64943 	struct clk_lookup *mclk_lookup;
64944 	struct clk_lookup *ether_clk_lookup;
64945 };
64946 
64947 struct virtio_driver {
64948 	struct device_driver driver;
64949 	const struct virtio_device_id *id_table;
64950 	const unsigned int *feature_table;
64951 	unsigned int feature_table_size;
64952 	const unsigned int *feature_table_legacy;
64953 	unsigned int feature_table_size_legacy;
64954 	int (*validate)(struct virtio_device *);
64955 	int (*probe)(struct virtio_device *);
64956 	void (*scan)(struct virtio_device *);
64957 	void (*remove)(struct virtio_device *);
64958 	void (*config_changed)(struct virtio_device *);
64959 };
64960 
64961 typedef __u16 __virtio16;
64962 
64963 typedef __u32 __virtio32;
64964 
64965 typedef __u64 __virtio64;
64966 
64967 struct vring_desc {
64968 	__virtio64 addr;
64969 	__virtio32 len;
64970 	__virtio16 flags;
64971 	__virtio16 next;
64972 };
64973 
64974 struct vring_avail {
64975 	__virtio16 flags;
64976 	__virtio16 idx;
64977 	__virtio16 ring[0];
64978 };
64979 
64980 struct vring_used_elem {
64981 	__virtio32 id;
64982 	__virtio32 len;
64983 };
64984 
64985 typedef struct vring_used_elem vring_used_elem_t;
64986 
64987 struct vring_used {
64988 	__virtio16 flags;
64989 	__virtio16 idx;
64990 	vring_used_elem_t ring[0];
64991 };
64992 
64993 typedef struct vring_desc vring_desc_t;
64994 
64995 typedef struct vring_avail vring_avail_t;
64996 
64997 typedef struct vring_used vring_used_t;
64998 
64999 struct vring {
65000 	unsigned int num;
65001 	vring_desc_t *desc;
65002 	vring_avail_t *avail;
65003 	vring_used_t *used;
65004 };
65005 
65006 struct vring_packed_desc_event {
65007 	__le16 off_wrap;
65008 	__le16 flags;
65009 };
65010 
65011 struct vring_packed_desc {
65012 	__le64 addr;
65013 	__le32 len;
65014 	__le16 id;
65015 	__le16 flags;
65016 };
65017 
65018 struct vring_desc_state_split {
65019 	void *data;
65020 	struct vring_desc *indir_desc;
65021 };
65022 
65023 struct vring_desc_state_packed {
65024 	void *data;
65025 	struct vring_packed_desc *indir_desc;
65026 	u16 num;
65027 	u16 last;
65028 };
65029 
65030 struct vring_desc_extra {
65031 	dma_addr_t addr;
65032 	u32 len;
65033 	u16 flags;
65034 	u16 next;
65035 };
65036 
65037 struct vring_virtqueue {
65038 	struct virtqueue vq;
65039 	bool packed_ring;
65040 	bool use_dma_api;
65041 	bool weak_barriers;
65042 	bool broken;
65043 	bool indirect;
65044 	bool event;
65045 	unsigned int free_head;
65046 	unsigned int num_added;
65047 	u16 last_used_idx;
65048 	bool event_triggered;
65049 	union {
65050 		struct {
65051 			struct vring vring;
65052 			u16 avail_flags_shadow;
65053 			u16 avail_idx_shadow;
65054 			struct vring_desc_state_split *desc_state;
65055 			struct vring_desc_extra *desc_extra;
65056 			dma_addr_t queue_dma_addr;
65057 			size_t queue_size_in_bytes;
65058 		} split;
65059 		struct {
65060 			struct {
65061 				unsigned int num;
65062 				struct vring_packed_desc *desc;
65063 				struct vring_packed_desc_event *driver;
65064 				struct vring_packed_desc_event *device;
65065 			} vring;
65066 			bool avail_wrap_counter;
65067 			bool used_wrap_counter;
65068 			u16 avail_used_flags;
65069 			u16 next_avail_idx;
65070 			u16 event_flags_shadow;
65071 			struct vring_desc_state_packed *desc_state;
65072 			struct vring_desc_extra *desc_extra;
65073 			dma_addr_t ring_dma_addr;
65074 			dma_addr_t driver_event_dma_addr;
65075 			dma_addr_t device_event_dma_addr;
65076 			size_t ring_size_in_bytes;
65077 			size_t event_size_in_bytes;
65078 		} packed;
65079 	};
65080 	bool (*notify)(struct virtqueue *);
65081 	bool we_own_ring;
65082 };
65083 
65084 struct virtio_pci_common_cfg {
65085 	__le32 device_feature_select;
65086 	__le32 device_feature;
65087 	__le32 guest_feature_select;
65088 	__le32 guest_feature;
65089 	__le16 msix_config;
65090 	__le16 num_queues;
65091 	__u8 device_status;
65092 	__u8 config_generation;
65093 	__le16 queue_select;
65094 	__le16 queue_size;
65095 	__le16 queue_msix_vector;
65096 	__le16 queue_enable;
65097 	__le16 queue_notify_off;
65098 	__le32 queue_desc_lo;
65099 	__le32 queue_desc_hi;
65100 	__le32 queue_avail_lo;
65101 	__le32 queue_avail_hi;
65102 	__le32 queue_used_lo;
65103 	__le32 queue_used_hi;
65104 };
65105 
65106 struct virtio_pci_modern_device {
65107 	struct pci_dev *pci_dev;
65108 	struct virtio_pci_common_cfg *common;
65109 	void *device;
65110 	void *notify_base;
65111 	resource_size_t notify_pa;
65112 	u8 *isr;
65113 	size_t notify_len;
65114 	size_t device_len;
65115 	int notify_map_cap;
65116 	u32 notify_offset_multiplier;
65117 	int modern_bars;
65118 	struct virtio_device_id id;
65119 };
65120 
65121 struct virtio_pci_legacy_device {
65122 	struct pci_dev *pci_dev;
65123 	u8 *isr;
65124 	void *ioaddr;
65125 	struct virtio_device_id id;
65126 };
65127 
65128 struct virtio_pci_vq_info {
65129 	struct virtqueue *vq;
65130 	struct list_head node;
65131 	unsigned int msix_vector;
65132 };
65133 
65134 struct virtio_pci_device {
65135 	struct virtio_device vdev;
65136 	struct pci_dev *pci_dev;
65137 	struct virtio_pci_legacy_device ldev;
65138 	struct virtio_pci_modern_device mdev;
65139 	bool is_legacy;
65140 	u8 *isr;
65141 	spinlock_t lock;
65142 	struct list_head virtqueues;
65143 	struct virtio_pci_vq_info **vqs;
65144 	int msix_enabled;
65145 	int intx_enabled;
65146 	bool intx_soft_enabled;
65147 	cpumask_var_t *msix_affinity_masks;
65148 	char (*msix_names)[256];
65149 	unsigned int msix_vectors;
65150 	unsigned int msix_used_vectors;
65151 	bool per_vq_vectors;
65152 	struct virtqueue * (*setup_vq)(struct virtio_pci_device *, struct virtio_pci_vq_info *, unsigned int, void (*)(struct virtqueue *), const char *, bool, u16);
65153 	void (*del_vq)(struct virtio_pci_vq_info *);
65154 	u16 (*config_vector)(struct virtio_pci_device *, u16);
65155 };
65156 
65157 enum {
65158 	VP_MSIX_CONFIG_VECTOR = 0,
65159 	VP_MSIX_VQ_VECTOR = 1,
65160 };
65161 
65162 struct virtio_balloon_config {
65163 	__le32 num_pages;
65164 	__le32 actual;
65165 	union {
65166 		__le32 free_page_hint_cmd_id;
65167 		__le32 free_page_report_cmd_id;
65168 	};
65169 	__le32 poison_val;
65170 };
65171 
65172 struct virtio_balloon_stat {
65173 	__virtio16 tag;
65174 	__virtio64 val;
65175 } __attribute__((packed));
65176 
65177 enum virtio_balloon_vq {
65178 	VIRTIO_BALLOON_VQ_INFLATE = 0,
65179 	VIRTIO_BALLOON_VQ_DEFLATE = 1,
65180 	VIRTIO_BALLOON_VQ_STATS = 2,
65181 	VIRTIO_BALLOON_VQ_FREE_PAGE = 3,
65182 	VIRTIO_BALLOON_VQ_REPORTING = 4,
65183 	VIRTIO_BALLOON_VQ_MAX = 5,
65184 };
65185 
65186 enum virtio_balloon_config_read {
65187 	VIRTIO_BALLOON_CONFIG_READ_CMD_ID = 0,
65188 };
65189 
65190 struct virtio_balloon {
65191 	struct virtio_device *vdev;
65192 	struct virtqueue *inflate_vq;
65193 	struct virtqueue *deflate_vq;
65194 	struct virtqueue *stats_vq;
65195 	struct virtqueue *free_page_vq;
65196 	struct workqueue_struct *balloon_wq;
65197 	struct work_struct report_free_page_work;
65198 	struct work_struct update_balloon_stats_work;
65199 	struct work_struct update_balloon_size_work;
65200 	spinlock_t stop_update_lock;
65201 	bool stop_update;
65202 	long: 56;
65203 	long unsigned int config_read_bitmap;
65204 	struct list_head free_page_list;
65205 	spinlock_t free_page_list_lock;
65206 	long unsigned int num_free_page_blocks;
65207 	u32 cmd_id_received_cache;
65208 	__virtio32 cmd_id_active;
65209 	__virtio32 cmd_id_stop;
65210 	int: 32;
65211 	wait_queue_head_t acked;
65212 	unsigned int num_pages;
65213 	int: 32;
65214 	struct balloon_dev_info vb_dev_info;
65215 	struct mutex balloon_lock;
65216 	unsigned int num_pfns;
65217 	__virtio32 pfns[256];
65218 	struct virtio_balloon_stat stats[10];
65219 	struct shrinker shrinker;
65220 	struct notifier_block oom_nb;
65221 	struct virtqueue *reporting_vq;
65222 	struct page_reporting_dev_info pr_dev_info;
65223 } __attribute__((packed));
65224 
65225 struct n_tty_data {
65226 	size_t read_head;
65227 	size_t commit_head;
65228 	size_t canon_head;
65229 	size_t echo_head;
65230 	size_t echo_commit;
65231 	size_t echo_mark;
65232 	long unsigned int char_map[4];
65233 	long unsigned int overrun_time;
65234 	int num_overrun;
65235 	bool no_room;
65236 	unsigned char lnext: 1;
65237 	unsigned char erasing: 1;
65238 	unsigned char raw: 1;
65239 	unsigned char real_raw: 1;
65240 	unsigned char icanon: 1;
65241 	unsigned char push: 1;
65242 	char read_buf[4096];
65243 	long unsigned int read_flags[64];
65244 	unsigned char echo_buf[4096];
65245 	size_t read_tail;
65246 	size_t line_start;
65247 	unsigned int column;
65248 	unsigned int canon_column;
65249 	size_t echo_tail;
65250 	struct mutex atomic_read_lock;
65251 	struct mutex output_lock;
65252 };
65253 
65254 enum {
65255 	ERASE = 0,
65256 	WERASE = 1,
65257 	KILL = 2,
65258 };
65259 
65260 struct termios {
65261 	tcflag_t c_iflag;
65262 	tcflag_t c_oflag;
65263 	tcflag_t c_cflag;
65264 	tcflag_t c_lflag;
65265 	cc_t c_line;
65266 	cc_t c_cc[19];
65267 };
65268 
65269 struct termios2 {
65270 	tcflag_t c_iflag;
65271 	tcflag_t c_oflag;
65272 	tcflag_t c_cflag;
65273 	tcflag_t c_lflag;
65274 	cc_t c_line;
65275 	cc_t c_cc[19];
65276 	speed_t c_ispeed;
65277 	speed_t c_ospeed;
65278 };
65279 
65280 struct termio {
65281 	short unsigned int c_iflag;
65282 	short unsigned int c_oflag;
65283 	short unsigned int c_cflag;
65284 	short unsigned int c_lflag;
65285 	unsigned char c_line;
65286 	unsigned char c_cc[8];
65287 };
65288 
65289 enum {
65290 	LDISC_SEM_NORMAL = 0,
65291 	LDISC_SEM_OTHER = 1,
65292 };
65293 
65294 enum {
65295 	TTY_LOCK_NORMAL = 0,
65296 	TTY_LOCK_SLAVE = 1,
65297 };
65298 
65299 struct ldsem_waiter {
65300 	struct list_head list;
65301 	struct task_struct *task;
65302 };
65303 
65304 struct pts_fs_info___2;
65305 
65306 struct tty_audit_buf {
65307 	struct mutex mutex;
65308 	dev_t dev;
65309 	unsigned int icanon: 1;
65310 	size_t valid;
65311 	unsigned char *data;
65312 };
65313 
65314 struct input_id {
65315 	__u16 bustype;
65316 	__u16 vendor;
65317 	__u16 product;
65318 	__u16 version;
65319 };
65320 
65321 struct input_absinfo {
65322 	__s32 value;
65323 	__s32 minimum;
65324 	__s32 maximum;
65325 	__s32 fuzz;
65326 	__s32 flat;
65327 	__s32 resolution;
65328 };
65329 
65330 struct input_keymap_entry {
65331 	__u8 flags;
65332 	__u8 len;
65333 	__u16 index;
65334 	__u32 keycode;
65335 	__u8 scancode[32];
65336 };
65337 
65338 struct ff_replay {
65339 	__u16 length;
65340 	__u16 delay;
65341 };
65342 
65343 struct ff_trigger {
65344 	__u16 button;
65345 	__u16 interval;
65346 };
65347 
65348 struct ff_envelope {
65349 	__u16 attack_length;
65350 	__u16 attack_level;
65351 	__u16 fade_length;
65352 	__u16 fade_level;
65353 };
65354 
65355 struct ff_constant_effect {
65356 	__s16 level;
65357 	struct ff_envelope envelope;
65358 };
65359 
65360 struct ff_ramp_effect {
65361 	__s16 start_level;
65362 	__s16 end_level;
65363 	struct ff_envelope envelope;
65364 };
65365 
65366 struct ff_condition_effect {
65367 	__u16 right_saturation;
65368 	__u16 left_saturation;
65369 	__s16 right_coeff;
65370 	__s16 left_coeff;
65371 	__u16 deadband;
65372 	__s16 center;
65373 };
65374 
65375 struct ff_periodic_effect {
65376 	__u16 waveform;
65377 	__u16 period;
65378 	__s16 magnitude;
65379 	__s16 offset;
65380 	__u16 phase;
65381 	struct ff_envelope envelope;
65382 	__u32 custom_len;
65383 	__s16 *custom_data;
65384 };
65385 
65386 struct ff_rumble_effect {
65387 	__u16 strong_magnitude;
65388 	__u16 weak_magnitude;
65389 };
65390 
65391 struct ff_effect {
65392 	__u16 type;
65393 	__s16 id;
65394 	__u16 direction;
65395 	struct ff_trigger trigger;
65396 	struct ff_replay replay;
65397 	union {
65398 		struct ff_constant_effect constant;
65399 		struct ff_ramp_effect ramp;
65400 		struct ff_periodic_effect periodic;
65401 		struct ff_condition_effect condition[2];
65402 		struct ff_rumble_effect rumble;
65403 	} u;
65404 };
65405 
65406 struct input_device_id {
65407 	kernel_ulong_t flags;
65408 	__u16 bustype;
65409 	__u16 vendor;
65410 	__u16 product;
65411 	__u16 version;
65412 	kernel_ulong_t evbit[1];
65413 	kernel_ulong_t keybit[12];
65414 	kernel_ulong_t relbit[1];
65415 	kernel_ulong_t absbit[1];
65416 	kernel_ulong_t mscbit[1];
65417 	kernel_ulong_t ledbit[1];
65418 	kernel_ulong_t sndbit[1];
65419 	kernel_ulong_t ffbit[2];
65420 	kernel_ulong_t swbit[1];
65421 	kernel_ulong_t propbit[1];
65422 	kernel_ulong_t driver_info;
65423 };
65424 
65425 struct input_value {
65426 	__u16 type;
65427 	__u16 code;
65428 	__s32 value;
65429 };
65430 
65431 enum input_clock_type {
65432 	INPUT_CLK_REAL = 0,
65433 	INPUT_CLK_MONO = 1,
65434 	INPUT_CLK_BOOT = 2,
65435 	INPUT_CLK_MAX = 3,
65436 };
65437 
65438 struct ff_device;
65439 
65440 struct input_dev_poller;
65441 
65442 struct input_mt;
65443 
65444 struct input_handle;
65445 
65446 struct input_dev {
65447 	const char *name;
65448 	const char *phys;
65449 	const char *uniq;
65450 	struct input_id id;
65451 	long unsigned int propbit[1];
65452 	long unsigned int evbit[1];
65453 	long unsigned int keybit[12];
65454 	long unsigned int relbit[1];
65455 	long unsigned int absbit[1];
65456 	long unsigned int mscbit[1];
65457 	long unsigned int ledbit[1];
65458 	long unsigned int sndbit[1];
65459 	long unsigned int ffbit[2];
65460 	long unsigned int swbit[1];
65461 	unsigned int hint_events_per_packet;
65462 	unsigned int keycodemax;
65463 	unsigned int keycodesize;
65464 	void *keycode;
65465 	int (*setkeycode)(struct input_dev *, const struct input_keymap_entry *, unsigned int *);
65466 	int (*getkeycode)(struct input_dev *, struct input_keymap_entry *);
65467 	struct ff_device *ff;
65468 	struct input_dev_poller *poller;
65469 	unsigned int repeat_key;
65470 	struct timer_list timer;
65471 	int rep[2];
65472 	struct input_mt *mt;
65473 	struct input_absinfo *absinfo;
65474 	long unsigned int key[12];
65475 	long unsigned int led[1];
65476 	long unsigned int snd[1];
65477 	long unsigned int sw[1];
65478 	int (*open)(struct input_dev *);
65479 	void (*close)(struct input_dev *);
65480 	int (*flush)(struct input_dev *, struct file *);
65481 	int (*event)(struct input_dev *, unsigned int, unsigned int, int);
65482 	struct input_handle *grab;
65483 	spinlock_t event_lock;
65484 	struct mutex mutex;
65485 	unsigned int users;
65486 	bool going_away;
65487 	struct device dev;
65488 	struct list_head h_list;
65489 	struct list_head node;
65490 	unsigned int num_vals;
65491 	unsigned int max_vals;
65492 	struct input_value *vals;
65493 	bool devres_managed;
65494 	ktime_t timestamp[3];
65495 	bool inhibited;
65496 };
65497 
65498 struct ff_device {
65499 	int (*upload)(struct input_dev *, struct ff_effect *, struct ff_effect *);
65500 	int (*erase)(struct input_dev *, int);
65501 	int (*playback)(struct input_dev *, int, int);
65502 	void (*set_gain)(struct input_dev *, u16);
65503 	void (*set_autocenter)(struct input_dev *, u16);
65504 	void (*destroy)(struct ff_device *);
65505 	void *private;
65506 	long unsigned int ffbit[2];
65507 	struct mutex mutex;
65508 	int max_effects;
65509 	struct ff_effect *effects;
65510 	struct file *effect_owners[0];
65511 };
65512 
65513 struct input_handler;
65514 
65515 struct input_handle {
65516 	void *private;
65517 	int open;
65518 	const char *name;
65519 	struct input_dev *dev;
65520 	struct input_handler *handler;
65521 	struct list_head d_node;
65522 	struct list_head h_node;
65523 };
65524 
65525 struct input_handler {
65526 	void *private;
65527 	void (*event)(struct input_handle *, unsigned int, unsigned int, int);
65528 	void (*events)(struct input_handle *, const struct input_value *, unsigned int);
65529 	bool (*filter)(struct input_handle *, unsigned int, unsigned int, int);
65530 	bool (*match)(struct input_handler *, struct input_dev *);
65531 	int (*connect)(struct input_handler *, struct input_dev *, const struct input_device_id *);
65532 	void (*disconnect)(struct input_handle *);
65533 	void (*start)(struct input_handle *);
65534 	bool legacy_minors;
65535 	int minor;
65536 	const char *name;
65537 	const struct input_device_id *id_table;
65538 	struct list_head h_list;
65539 	struct list_head node;
65540 };
65541 
65542 struct sysrq_state {
65543 	struct input_handle handle;
65544 	struct work_struct reinject_work;
65545 	long unsigned int key_down[12];
65546 	unsigned int alt;
65547 	unsigned int alt_use;
65548 	unsigned int shift;
65549 	unsigned int shift_use;
65550 	bool active;
65551 	bool need_reinject;
65552 	bool reinjecting;
65553 	bool reset_canceled;
65554 	bool reset_requested;
65555 	long unsigned int reset_keybit[12];
65556 	int reset_seq_len;
65557 	int reset_seq_cnt;
65558 	int reset_seq_version;
65559 	struct timer_list keyreset_timer;
65560 };
65561 
65562 struct unipair {
65563 	short unsigned int unicode;
65564 	short unsigned int fontpos;
65565 };
65566 
65567 struct unimapdesc {
65568 	short unsigned int entry_ct;
65569 	struct unipair *entries;
65570 };
65571 
65572 struct kbdiacruc {
65573 	unsigned int diacr;
65574 	unsigned int base;
65575 	unsigned int result;
65576 };
65577 
65578 struct kbd_repeat {
65579 	int delay;
65580 	int period;
65581 };
65582 
65583 struct console_font_op {
65584 	unsigned int op;
65585 	unsigned int flags;
65586 	unsigned int width;
65587 	unsigned int height;
65588 	unsigned int charcount;
65589 	unsigned char *data;
65590 };
65591 
65592 struct vt_stat {
65593 	short unsigned int v_active;
65594 	short unsigned int v_signal;
65595 	short unsigned int v_state;
65596 };
65597 
65598 struct vt_sizes {
65599 	short unsigned int v_rows;
65600 	short unsigned int v_cols;
65601 	short unsigned int v_scrollsize;
65602 };
65603 
65604 struct vt_consize {
65605 	short unsigned int v_rows;
65606 	short unsigned int v_cols;
65607 	short unsigned int v_vlin;
65608 	short unsigned int v_clin;
65609 	short unsigned int v_vcol;
65610 	short unsigned int v_ccol;
65611 };
65612 
65613 struct vt_event {
65614 	unsigned int event;
65615 	unsigned int oldev;
65616 	unsigned int newev;
65617 	unsigned int pad[4];
65618 };
65619 
65620 struct vt_setactivate {
65621 	unsigned int console;
65622 	struct vt_mode mode;
65623 };
65624 
65625 struct vt_event_wait {
65626 	struct list_head list;
65627 	struct vt_event event;
65628 	int done;
65629 };
65630 
65631 struct vt_notifier_param {
65632 	struct vc_data *vc;
65633 	unsigned int c;
65634 };
65635 
65636 struct vcs_poll_data {
65637 	struct notifier_block notifier;
65638 	unsigned int cons_num;
65639 	int event;
65640 	wait_queue_head_t waitq;
65641 	struct fasync_struct *fasync;
65642 };
65643 
65644 struct tiocl_selection {
65645 	short unsigned int xs;
65646 	short unsigned int ys;
65647 	short unsigned int xe;
65648 	short unsigned int ye;
65649 	short unsigned int sel_mode;
65650 };
65651 
65652 struct vc_selection {
65653 	struct mutex lock;
65654 	struct vc_data *cons;
65655 	char *buffer;
65656 	unsigned int buf_len;
65657 	volatile int start;
65658 	int end;
65659 };
65660 
65661 struct kbentry {
65662 	unsigned char kb_table;
65663 	unsigned char kb_index;
65664 	short unsigned int kb_value;
65665 };
65666 
65667 struct kbsentry {
65668 	unsigned char kb_func;
65669 	unsigned char kb_string[512];
65670 };
65671 
65672 struct kbdiacr {
65673 	unsigned char diacr;
65674 	unsigned char base;
65675 	unsigned char result;
65676 };
65677 
65678 struct kbdiacrs {
65679 	unsigned int kb_cnt;
65680 	struct kbdiacr kbdiacr[256];
65681 };
65682 
65683 struct kbdiacrsuc {
65684 	unsigned int kb_cnt;
65685 	struct kbdiacruc kbdiacruc[256];
65686 };
65687 
65688 struct kbkeycode {
65689 	unsigned int scancode;
65690 	unsigned int keycode;
65691 };
65692 
65693 struct keyboard_notifier_param {
65694 	struct vc_data *vc;
65695 	int down;
65696 	int shift;
65697 	int ledstate;
65698 	unsigned int value;
65699 };
65700 
65701 struct kbd_struct {
65702 	unsigned char lockstate;
65703 	unsigned char slockstate;
65704 	unsigned char ledmode: 1;
65705 	unsigned char ledflagstate: 4;
65706 	char: 3;
65707 	unsigned char default_ledflagstate: 4;
65708 	unsigned char kbdmode: 3;
65709 	char: 1;
65710 	unsigned char modeflags: 5;
65711 };
65712 
65713 typedef void k_handler_fn(struct vc_data *, unsigned char, char);
65714 
65715 typedef void fn_handler_fn(struct vc_data *);
65716 
65717 struct getset_keycode_data {
65718 	struct input_keymap_entry ke;
65719 	int error;
65720 };
65721 
65722 struct uni_pagedir {
65723 	u16 **uni_pgdir[32];
65724 	long unsigned int refcount;
65725 	long unsigned int sum;
65726 	unsigned char *inverse_translations[4];
65727 	u16 *inverse_trans_unicode;
65728 };
65729 
65730 typedef uint32_t char32_t;
65731 
65732 struct uni_screen {
65733 	char32_t *lines[0];
65734 };
65735 
65736 struct con_driver {
65737 	const struct consw *con;
65738 	const char *desc;
65739 	struct device *dev;
65740 	int node;
65741 	int first;
65742 	int last;
65743 	int flag;
65744 };
65745 
65746 enum {
65747 	blank_off = 0,
65748 	blank_normal_wait = 1,
65749 	blank_vesa_wait = 2,
65750 };
65751 
65752 enum {
65753 	EPecma = 0,
65754 	EPdec = 1,
65755 	EPeq = 2,
65756 	EPgt = 3,
65757 	EPlt = 4,
65758 };
65759 
65760 struct rgb {
65761 	u8 r;
65762 	u8 g;
65763 	u8 b;
65764 };
65765 
65766 enum {
65767 	ESnormal = 0,
65768 	ESesc = 1,
65769 	ESsquare = 2,
65770 	ESgetpars = 3,
65771 	ESfunckey = 4,
65772 	EShash = 5,
65773 	ESsetG0 = 6,
65774 	ESsetG1 = 7,
65775 	ESpercent = 8,
65776 	EScsiignore = 9,
65777 	ESnonstd = 10,
65778 	ESpalette = 11,
65779 	ESosc = 12,
65780 	ESapc = 13,
65781 	ESpm = 14,
65782 	ESdcs = 15,
65783 };
65784 
65785 struct interval {
65786 	uint32_t first;
65787 	uint32_t last;
65788 };
65789 
65790 struct vc_draw_region {
65791 	long unsigned int from;
65792 	long unsigned int to;
65793 	int x;
65794 };
65795 
65796 struct hv_ops;
65797 
65798 struct hvc_struct {
65799 	struct tty_port port;
65800 	spinlock_t lock;
65801 	int index;
65802 	int do_wakeup;
65803 	char *outbuf;
65804 	int outbuf_size;
65805 	int n_outbuf;
65806 	uint32_t vtermno;
65807 	const struct hv_ops *ops;
65808 	int irq_requested;
65809 	int data;
65810 	struct winsize ws;
65811 	struct work_struct tty_resize;
65812 	struct list_head next;
65813 	long unsigned int flags;
65814 };
65815 
65816 struct hv_ops {
65817 	int (*get_chars)(uint32_t, char *, int);
65818 	int (*put_chars)(uint32_t, const char *, int);
65819 	int (*flush)(uint32_t, bool);
65820 	int (*notifier_add)(struct hvc_struct *, int);
65821 	void (*notifier_del)(struct hvc_struct *, int);
65822 	void (*notifier_hangup)(struct hvc_struct *, int);
65823 	int (*tiocmget)(struct hvc_struct *);
65824 	int (*tiocmset)(struct hvc_struct *, unsigned int, unsigned int);
65825 	void (*dtr_rts)(struct hvc_struct *, int);
65826 };
65827 
65828 struct uart_driver {
65829 	struct module *owner;
65830 	const char *driver_name;
65831 	const char *dev_name;
65832 	int major;
65833 	int minor;
65834 	int nr;
65835 	struct console *cons;
65836 	struct uart_state *state;
65837 	struct tty_driver *tty_driver;
65838 };
65839 
65840 struct uart_match {
65841 	struct uart_port *port;
65842 	struct uart_driver *driver;
65843 };
65844 
65845 enum hwparam_type {
65846 	hwparam_ioport = 0,
65847 	hwparam_iomem = 1,
65848 	hwparam_ioport_or_iomem = 2,
65849 	hwparam_irq = 3,
65850 	hwparam_dma = 4,
65851 	hwparam_dma_addr = 5,
65852 	hwparam_other = 6,
65853 };
65854 
65855 struct plat_serial8250_port {
65856 	long unsigned int iobase;
65857 	void *membase;
65858 	resource_size_t mapbase;
65859 	unsigned int irq;
65860 	long unsigned int irqflags;
65861 	unsigned int uartclk;
65862 	void *private_data;
65863 	unsigned char regshift;
65864 	unsigned char iotype;
65865 	unsigned char hub6;
65866 	unsigned char has_sysrq;
65867 	upf_t flags;
65868 	unsigned int type;
65869 	unsigned int (*serial_in)(struct uart_port *, int);
65870 	void (*serial_out)(struct uart_port *, int, int);
65871 	void (*set_termios)(struct uart_port *, struct ktermios *, struct ktermios *);
65872 	void (*set_ldisc)(struct uart_port *, struct ktermios *);
65873 	unsigned int (*get_mctrl)(struct uart_port *);
65874 	int (*handle_irq)(struct uart_port *);
65875 	void (*pm)(struct uart_port *, unsigned int, unsigned int);
65876 	void (*handle_break)(struct uart_port *);
65877 };
65878 
65879 enum {
65880 	PLAT8250_DEV_LEGACY = 4294967295,
65881 	PLAT8250_DEV_PLATFORM = 0,
65882 	PLAT8250_DEV_PLATFORM1 = 1,
65883 	PLAT8250_DEV_PLATFORM2 = 2,
65884 	PLAT8250_DEV_FOURPORT = 3,
65885 	PLAT8250_DEV_ACCENT = 4,
65886 	PLAT8250_DEV_BOCA = 5,
65887 	PLAT8250_DEV_EXAR_ST16C554 = 6,
65888 	PLAT8250_DEV_HUB6 = 7,
65889 	PLAT8250_DEV_AU1X00 = 8,
65890 	PLAT8250_DEV_SM501 = 9,
65891 };
65892 
65893 struct uart_8250_port;
65894 
65895 struct uart_8250_ops {
65896 	int (*setup_irq)(struct uart_8250_port *);
65897 	void (*release_irq)(struct uart_8250_port *);
65898 };
65899 
65900 struct mctrl_gpios;
65901 
65902 struct uart_8250_dma;
65903 
65904 struct uart_8250_em485;
65905 
65906 struct uart_8250_port {
65907 	struct uart_port port;
65908 	struct timer_list timer;
65909 	struct list_head list;
65910 	u32 capabilities;
65911 	short unsigned int bugs;
65912 	bool fifo_bug;
65913 	unsigned int tx_loadsz;
65914 	unsigned char acr;
65915 	unsigned char fcr;
65916 	unsigned char ier;
65917 	unsigned char lcr;
65918 	unsigned char mcr;
65919 	unsigned char cur_iotype;
65920 	unsigned int rpm_tx_active;
65921 	unsigned char canary;
65922 	unsigned char probe;
65923 	struct mctrl_gpios *gpios;
65924 	unsigned char lsr_saved_flags;
65925 	unsigned char msr_saved_flags;
65926 	struct uart_8250_dma *dma;
65927 	const struct uart_8250_ops *ops;
65928 	int (*dl_read)(struct uart_8250_port *);
65929 	void (*dl_write)(struct uart_8250_port *, int);
65930 	struct uart_8250_em485 *em485;
65931 	void (*rs485_start_tx)(struct uart_8250_port *);
65932 	void (*rs485_stop_tx)(struct uart_8250_port *);
65933 	struct delayed_work overrun_backoff;
65934 	u32 overrun_backoff_time_ms;
65935 };
65936 
65937 struct uart_8250_em485 {
65938 	struct hrtimer start_tx_timer;
65939 	struct hrtimer stop_tx_timer;
65940 	struct hrtimer *active_timer;
65941 	struct uart_8250_port *port;
65942 	unsigned int tx_stopped: 1;
65943 };
65944 
65945 struct dma_chan___2;
65946 
65947 typedef bool (*dma_filter_fn)(struct dma_chan___2 *, void *);
65948 
65949 enum dma_transfer_direction {
65950 	DMA_MEM_TO_MEM = 0,
65951 	DMA_MEM_TO_DEV = 1,
65952 	DMA_DEV_TO_MEM = 2,
65953 	DMA_DEV_TO_DEV = 3,
65954 	DMA_TRANS_NONE = 4,
65955 };
65956 
65957 enum dma_slave_buswidth {
65958 	DMA_SLAVE_BUSWIDTH_UNDEFINED = 0,
65959 	DMA_SLAVE_BUSWIDTH_1_BYTE = 1,
65960 	DMA_SLAVE_BUSWIDTH_2_BYTES = 2,
65961 	DMA_SLAVE_BUSWIDTH_3_BYTES = 3,
65962 	DMA_SLAVE_BUSWIDTH_4_BYTES = 4,
65963 	DMA_SLAVE_BUSWIDTH_8_BYTES = 8,
65964 	DMA_SLAVE_BUSWIDTH_16_BYTES = 16,
65965 	DMA_SLAVE_BUSWIDTH_32_BYTES = 32,
65966 	DMA_SLAVE_BUSWIDTH_64_BYTES = 64,
65967 	DMA_SLAVE_BUSWIDTH_128_BYTES = 128,
65968 };
65969 
65970 struct dma_slave_config {
65971 	enum dma_transfer_direction direction;
65972 	phys_addr_t src_addr;
65973 	phys_addr_t dst_addr;
65974 	enum dma_slave_buswidth src_addr_width;
65975 	enum dma_slave_buswidth dst_addr_width;
65976 	u32 src_maxburst;
65977 	u32 dst_maxburst;
65978 	u32 src_port_window_size;
65979 	u32 dst_port_window_size;
65980 	bool device_fc;
65981 	void *peripheral_config;
65982 	size_t peripheral_size;
65983 };
65984 
65985 typedef s32 dma_cookie_t;
65986 
65987 struct uart_8250_dma {
65988 	int (*tx_dma)(struct uart_8250_port *);
65989 	int (*rx_dma)(struct uart_8250_port *);
65990 	dma_filter_fn fn;
65991 	void *rx_param;
65992 	void *tx_param;
65993 	struct dma_slave_config rxconf;
65994 	struct dma_slave_config txconf;
65995 	struct dma_chan___2 *rxchan;
65996 	struct dma_chan___2 *txchan;
65997 	phys_addr_t rx_dma_addr;
65998 	phys_addr_t tx_dma_addr;
65999 	dma_addr_t rx_addr;
66000 	dma_addr_t tx_addr;
66001 	dma_cookie_t rx_cookie;
66002 	dma_cookie_t tx_cookie;
66003 	void *rx_buf;
66004 	size_t rx_size;
66005 	size_t tx_size;
66006 	unsigned char tx_running;
66007 	unsigned char tx_err;
66008 	unsigned char rx_running;
66009 };
66010 
66011 enum dma_status {
66012 	DMA_COMPLETE = 0,
66013 	DMA_IN_PROGRESS = 1,
66014 	DMA_PAUSED = 2,
66015 	DMA_ERROR = 3,
66016 	DMA_OUT_OF_ORDER = 4,
66017 };
66018 
66019 enum dma_transaction_type {
66020 	DMA_MEMCPY = 0,
66021 	DMA_MEMCPY_SG = 1,
66022 	DMA_XOR = 2,
66023 	DMA_PQ = 3,
66024 	DMA_XOR_VAL = 4,
66025 	DMA_PQ_VAL = 5,
66026 	DMA_MEMSET = 6,
66027 	DMA_MEMSET_SG = 7,
66028 	DMA_INTERRUPT = 8,
66029 	DMA_PRIVATE = 9,
66030 	DMA_ASYNC_TX = 10,
66031 	DMA_SLAVE = 11,
66032 	DMA_CYCLIC = 12,
66033 	DMA_INTERLEAVE = 13,
66034 	DMA_COMPLETION_NO_ORDER = 14,
66035 	DMA_REPEAT = 15,
66036 	DMA_LOAD_EOT = 16,
66037 	DMA_TX_TYPE_END = 17,
66038 };
66039 
66040 struct data_chunk {
66041 	size_t size;
66042 	size_t icg;
66043 	size_t dst_icg;
66044 	size_t src_icg;
66045 };
66046 
66047 struct dma_interleaved_template {
66048 	dma_addr_t src_start;
66049 	dma_addr_t dst_start;
66050 	enum dma_transfer_direction dir;
66051 	bool src_inc;
66052 	bool dst_inc;
66053 	bool src_sgl;
66054 	bool dst_sgl;
66055 	size_t numf;
66056 	size_t frame_size;
66057 	struct data_chunk sgl[0];
66058 };
66059 
66060 enum dma_ctrl_flags {
66061 	DMA_PREP_INTERRUPT = 1,
66062 	DMA_CTRL_ACK = 2,
66063 	DMA_PREP_PQ_DISABLE_P = 4,
66064 	DMA_PREP_PQ_DISABLE_Q = 8,
66065 	DMA_PREP_CONTINUE = 16,
66066 	DMA_PREP_FENCE = 32,
66067 	DMA_CTRL_REUSE = 64,
66068 	DMA_PREP_CMD = 128,
66069 	DMA_PREP_REPEAT = 256,
66070 	DMA_PREP_LOAD_EOT = 512,
66071 };
66072 
66073 enum sum_check_bits {
66074 	SUM_CHECK_P = 0,
66075 	SUM_CHECK_Q = 1,
66076 };
66077 
66078 enum sum_check_flags {
66079 	SUM_CHECK_P_RESULT = 1,
66080 	SUM_CHECK_Q_RESULT = 2,
66081 };
66082 
66083 typedef struct {
66084 	long unsigned int bits[1];
66085 } dma_cap_mask_t;
66086 
66087 enum dma_desc_metadata_mode {
66088 	DESC_METADATA_NONE = 0,
66089 	DESC_METADATA_CLIENT = 1,
66090 	DESC_METADATA_ENGINE = 2,
66091 };
66092 
66093 struct dma_chan_percpu {
66094 	long unsigned int memcpy_count;
66095 	long unsigned int bytes_transferred;
66096 };
66097 
66098 struct dma_router {
66099 	struct device *dev;
66100 	void (*route_free)(struct device *, void *);
66101 };
66102 
66103 struct dma_device;
66104 
66105 struct dma_chan_dev;
66106 
66107 struct dma_chan___2 {
66108 	struct dma_device *device;
66109 	struct device *slave;
66110 	dma_cookie_t cookie;
66111 	dma_cookie_t completed_cookie;
66112 	int chan_id;
66113 	struct dma_chan_dev *dev;
66114 	const char *name;
66115 	char *dbg_client_name;
66116 	struct list_head device_node;
66117 	struct dma_chan_percpu *local;
66118 	int client_count;
66119 	int table_count;
66120 	struct dma_router *router;
66121 	void *route_data;
66122 	void *private;
66123 };
66124 
66125 struct dma_slave_map;
66126 
66127 struct dma_filter {
66128 	dma_filter_fn fn;
66129 	int mapcnt;
66130 	const struct dma_slave_map *map;
66131 };
66132 
66133 enum dmaengine_alignment {
66134 	DMAENGINE_ALIGN_1_BYTE = 0,
66135 	DMAENGINE_ALIGN_2_BYTES = 1,
66136 	DMAENGINE_ALIGN_4_BYTES = 2,
66137 	DMAENGINE_ALIGN_8_BYTES = 3,
66138 	DMAENGINE_ALIGN_16_BYTES = 4,
66139 	DMAENGINE_ALIGN_32_BYTES = 5,
66140 	DMAENGINE_ALIGN_64_BYTES = 6,
66141 	DMAENGINE_ALIGN_128_BYTES = 7,
66142 	DMAENGINE_ALIGN_256_BYTES = 8,
66143 };
66144 
66145 enum dma_residue_granularity {
66146 	DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0,
66147 	DMA_RESIDUE_GRANULARITY_SEGMENT = 1,
66148 	DMA_RESIDUE_GRANULARITY_BURST = 2,
66149 };
66150 
66151 struct dma_async_tx_descriptor;
66152 
66153 struct dma_slave_caps;
66154 
66155 struct dma_tx_state;
66156 
66157 struct dma_device {
66158 	struct kref ref;
66159 	unsigned int chancnt;
66160 	unsigned int privatecnt;
66161 	struct list_head channels;
66162 	struct list_head global_node;
66163 	struct dma_filter filter;
66164 	dma_cap_mask_t cap_mask;
66165 	enum dma_desc_metadata_mode desc_metadata_modes;
66166 	short unsigned int max_xor;
66167 	short unsigned int max_pq;
66168 	enum dmaengine_alignment copy_align;
66169 	enum dmaengine_alignment xor_align;
66170 	enum dmaengine_alignment pq_align;
66171 	enum dmaengine_alignment fill_align;
66172 	int dev_id;
66173 	struct device *dev;
66174 	struct module *owner;
66175 	struct ida chan_ida;
66176 	struct mutex chan_mutex;
66177 	u32 src_addr_widths;
66178 	u32 dst_addr_widths;
66179 	u32 directions;
66180 	u32 min_burst;
66181 	u32 max_burst;
66182 	u32 max_sg_burst;
66183 	bool descriptor_reuse;
66184 	enum dma_residue_granularity residue_granularity;
66185 	int (*device_alloc_chan_resources)(struct dma_chan___2 *);
66186 	int (*device_router_config)(struct dma_chan___2 *);
66187 	void (*device_free_chan_resources)(struct dma_chan___2 *);
66188 	struct dma_async_tx_descriptor * (*device_prep_dma_memcpy)(struct dma_chan___2 *, dma_addr_t, dma_addr_t, size_t, long unsigned int);
66189 	struct dma_async_tx_descriptor * (*device_prep_dma_memcpy_sg)(struct dma_chan___2 *, struct scatterlist *, unsigned int, struct scatterlist *, unsigned int, long unsigned int);
66190 	struct dma_async_tx_descriptor * (*device_prep_dma_xor)(struct dma_chan___2 *, dma_addr_t, dma_addr_t *, unsigned int, size_t, long unsigned int);
66191 	struct dma_async_tx_descriptor * (*device_prep_dma_xor_val)(struct dma_chan___2 *, dma_addr_t *, unsigned int, size_t, enum sum_check_flags *, long unsigned int);
66192 	struct dma_async_tx_descriptor * (*device_prep_dma_pq)(struct dma_chan___2 *, dma_addr_t *, dma_addr_t *, unsigned int, const unsigned char *, size_t, long unsigned int);
66193 	struct dma_async_tx_descriptor * (*device_prep_dma_pq_val)(struct dma_chan___2 *, dma_addr_t *, dma_addr_t *, unsigned int, const unsigned char *, size_t, enum sum_check_flags *, long unsigned int);
66194 	struct dma_async_tx_descriptor * (*device_prep_dma_memset)(struct dma_chan___2 *, dma_addr_t, int, size_t, long unsigned int);
66195 	struct dma_async_tx_descriptor * (*device_prep_dma_memset_sg)(struct dma_chan___2 *, struct scatterlist *, unsigned int, int, long unsigned int);
66196 	struct dma_async_tx_descriptor * (*device_prep_dma_interrupt)(struct dma_chan___2 *, long unsigned int);
66197 	struct dma_async_tx_descriptor * (*device_prep_slave_sg)(struct dma_chan___2 *, struct scatterlist *, unsigned int, enum dma_transfer_direction, long unsigned int, void *);
66198 	struct dma_async_tx_descriptor * (*device_prep_dma_cyclic)(struct dma_chan___2 *, dma_addr_t, size_t, size_t, enum dma_transfer_direction, long unsigned int);
66199 	struct dma_async_tx_descriptor * (*device_prep_interleaved_dma)(struct dma_chan___2 *, struct dma_interleaved_template *, long unsigned int);
66200 	struct dma_async_tx_descriptor * (*device_prep_dma_imm_data)(struct dma_chan___2 *, dma_addr_t, u64, long unsigned int);
66201 	void (*device_caps)(struct dma_chan___2 *, struct dma_slave_caps *);
66202 	int (*device_config)(struct dma_chan___2 *, struct dma_slave_config *);
66203 	int (*device_pause)(struct dma_chan___2 *);
66204 	int (*device_resume)(struct dma_chan___2 *);
66205 	int (*device_terminate_all)(struct dma_chan___2 *);
66206 	void (*device_synchronize)(struct dma_chan___2 *);
66207 	enum dma_status (*device_tx_status)(struct dma_chan___2 *, dma_cookie_t, struct dma_tx_state *);
66208 	void (*device_issue_pending)(struct dma_chan___2 *);
66209 	void (*device_release)(struct dma_device *);
66210 	void (*dbg_summary_show)(struct seq_file *, struct dma_device *);
66211 	struct dentry *dbg_dev_root;
66212 };
66213 
66214 struct dma_chan_dev {
66215 	struct dma_chan___2 *chan;
66216 	struct device device;
66217 	int dev_id;
66218 	bool chan_dma_dev;
66219 };
66220 
66221 struct dma_slave_caps {
66222 	u32 src_addr_widths;
66223 	u32 dst_addr_widths;
66224 	u32 directions;
66225 	u32 min_burst;
66226 	u32 max_burst;
66227 	u32 max_sg_burst;
66228 	bool cmd_pause;
66229 	bool cmd_resume;
66230 	bool cmd_terminate;
66231 	enum dma_residue_granularity residue_granularity;
66232 	bool descriptor_reuse;
66233 };
66234 
66235 typedef void (*dma_async_tx_callback)(void *);
66236 
66237 enum dmaengine_tx_result {
66238 	DMA_TRANS_NOERROR = 0,
66239 	DMA_TRANS_READ_FAILED = 1,
66240 	DMA_TRANS_WRITE_FAILED = 2,
66241 	DMA_TRANS_ABORTED = 3,
66242 };
66243 
66244 struct dmaengine_result {
66245 	enum dmaengine_tx_result result;
66246 	u32 residue;
66247 };
66248 
66249 typedef void (*dma_async_tx_callback_result)(void *, const struct dmaengine_result *);
66250 
66251 struct dmaengine_unmap_data {
66252 	u8 map_cnt;
66253 	u8 to_cnt;
66254 	u8 from_cnt;
66255 	u8 bidi_cnt;
66256 	struct device *dev;
66257 	struct kref kref;
66258 	size_t len;
66259 	dma_addr_t addr[0];
66260 };
66261 
66262 struct dma_descriptor_metadata_ops {
66263 	int (*attach)(struct dma_async_tx_descriptor *, void *, size_t);
66264 	void * (*get_ptr)(struct dma_async_tx_descriptor *, size_t *, size_t *);
66265 	int (*set_len)(struct dma_async_tx_descriptor *, size_t);
66266 };
66267 
66268 struct dma_async_tx_descriptor {
66269 	dma_cookie_t cookie;
66270 	enum dma_ctrl_flags flags;
66271 	dma_addr_t phys;
66272 	struct dma_chan___2 *chan;
66273 	dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor *);
66274 	int (*desc_free)(struct dma_async_tx_descriptor *);
66275 	dma_async_tx_callback callback;
66276 	dma_async_tx_callback_result callback_result;
66277 	void *callback_param;
66278 	struct dmaengine_unmap_data *unmap;
66279 	enum dma_desc_metadata_mode desc_metadata_mode;
66280 	struct dma_descriptor_metadata_ops *metadata_ops;
66281 };
66282 
66283 struct dma_tx_state {
66284 	dma_cookie_t last;
66285 	dma_cookie_t used;
66286 	u32 residue;
66287 	u32 in_flight_bytes;
66288 };
66289 
66290 struct dma_slave_map {
66291 	const char *devname;
66292 	const char *slave;
66293 	void *param;
66294 };
66295 
66296 struct old_serial_port {
66297 	unsigned int uart;
66298 	unsigned int baud_base;
66299 	unsigned int port;
66300 	unsigned int irq;
66301 	upf_t flags;
66302 	unsigned char io_type;
66303 	unsigned char *iomem_base;
66304 	short unsigned int iomem_reg_shift;
66305 };
66306 
66307 struct irq_info {
66308 	struct hlist_node node;
66309 	int irq;
66310 	spinlock_t lock;
66311 	struct list_head *head;
66312 };
66313 
66314 struct serial8250_config {
66315 	const char *name;
66316 	short unsigned int fifo_size;
66317 	short unsigned int tx_loadsz;
66318 	unsigned char fcr;
66319 	unsigned char rxtrig_bytes[4];
66320 	unsigned int flags;
66321 };
66322 
66323 struct pciserial_board {
66324 	unsigned int flags;
66325 	unsigned int num_ports;
66326 	unsigned int base_baud;
66327 	unsigned int uart_offset;
66328 	unsigned int reg_shift;
66329 	unsigned int first_offset;
66330 };
66331 
66332 struct serial_private;
66333 
66334 struct pci_serial_quirk {
66335 	u32 vendor;
66336 	u32 device;
66337 	u32 subvendor;
66338 	u32 subdevice;
66339 	int (*probe)(struct pci_dev *);
66340 	int (*init)(struct pci_dev *);
66341 	int (*setup)(struct serial_private *, const struct pciserial_board *, struct uart_8250_port *, int);
66342 	void (*exit)(struct pci_dev *);
66343 };
66344 
66345 struct serial_private {
66346 	struct pci_dev *dev;
66347 	unsigned int nr;
66348 	struct pci_serial_quirk *quirk;
66349 	const struct pciserial_board *board;
66350 	int line[0];
66351 };
66352 
66353 struct f815xxa_data {
66354 	spinlock_t lock;
66355 	int idx;
66356 };
66357 
66358 struct timedia_struct {
66359 	int num;
66360 	const short unsigned int *ids;
66361 };
66362 
66363 enum pci_board_num_t {
66364 	pbn_default = 0,
66365 	pbn_b0_1_115200 = 1,
66366 	pbn_b0_2_115200 = 2,
66367 	pbn_b0_4_115200 = 3,
66368 	pbn_b0_5_115200 = 4,
66369 	pbn_b0_8_115200 = 5,
66370 	pbn_b0_1_921600 = 6,
66371 	pbn_b0_2_921600 = 7,
66372 	pbn_b0_4_921600 = 8,
66373 	pbn_b0_2_1130000 = 9,
66374 	pbn_b0_4_1152000 = 10,
66375 	pbn_b0_4_1250000 = 11,
66376 	pbn_b0_2_1843200 = 12,
66377 	pbn_b0_4_1843200 = 13,
66378 	pbn_b0_1_3906250 = 14,
66379 	pbn_b0_bt_1_115200 = 15,
66380 	pbn_b0_bt_2_115200 = 16,
66381 	pbn_b0_bt_4_115200 = 17,
66382 	pbn_b0_bt_8_115200 = 18,
66383 	pbn_b0_bt_1_460800 = 19,
66384 	pbn_b0_bt_2_460800 = 20,
66385 	pbn_b0_bt_4_460800 = 21,
66386 	pbn_b0_bt_1_921600 = 22,
66387 	pbn_b0_bt_2_921600 = 23,
66388 	pbn_b0_bt_4_921600 = 24,
66389 	pbn_b0_bt_8_921600 = 25,
66390 	pbn_b1_1_115200 = 26,
66391 	pbn_b1_2_115200 = 27,
66392 	pbn_b1_4_115200 = 28,
66393 	pbn_b1_8_115200 = 29,
66394 	pbn_b1_16_115200 = 30,
66395 	pbn_b1_1_921600 = 31,
66396 	pbn_b1_2_921600 = 32,
66397 	pbn_b1_4_921600 = 33,
66398 	pbn_b1_8_921600 = 34,
66399 	pbn_b1_2_1250000 = 35,
66400 	pbn_b1_bt_1_115200 = 36,
66401 	pbn_b1_bt_2_115200 = 37,
66402 	pbn_b1_bt_4_115200 = 38,
66403 	pbn_b1_bt_2_921600 = 39,
66404 	pbn_b1_1_1382400 = 40,
66405 	pbn_b1_2_1382400 = 41,
66406 	pbn_b1_4_1382400 = 42,
66407 	pbn_b1_8_1382400 = 43,
66408 	pbn_b2_1_115200 = 44,
66409 	pbn_b2_2_115200 = 45,
66410 	pbn_b2_4_115200 = 46,
66411 	pbn_b2_8_115200 = 47,
66412 	pbn_b2_1_460800 = 48,
66413 	pbn_b2_4_460800 = 49,
66414 	pbn_b2_8_460800 = 50,
66415 	pbn_b2_16_460800 = 51,
66416 	pbn_b2_1_921600 = 52,
66417 	pbn_b2_4_921600 = 53,
66418 	pbn_b2_8_921600 = 54,
66419 	pbn_b2_8_1152000 = 55,
66420 	pbn_b2_bt_1_115200 = 56,
66421 	pbn_b2_bt_2_115200 = 57,
66422 	pbn_b2_bt_4_115200 = 58,
66423 	pbn_b2_bt_2_921600 = 59,
66424 	pbn_b2_bt_4_921600 = 60,
66425 	pbn_b3_2_115200 = 61,
66426 	pbn_b3_4_115200 = 62,
66427 	pbn_b3_8_115200 = 63,
66428 	pbn_b4_bt_2_921600 = 64,
66429 	pbn_b4_bt_4_921600 = 65,
66430 	pbn_b4_bt_8_921600 = 66,
66431 	pbn_panacom = 67,
66432 	pbn_panacom2 = 68,
66433 	pbn_panacom4 = 69,
66434 	pbn_plx_romulus = 70,
66435 	pbn_endrun_2_4000000 = 71,
66436 	pbn_oxsemi = 72,
66437 	pbn_oxsemi_1_3906250 = 73,
66438 	pbn_oxsemi_2_3906250 = 74,
66439 	pbn_oxsemi_4_3906250 = 75,
66440 	pbn_oxsemi_8_3906250 = 76,
66441 	pbn_intel_i960 = 77,
66442 	pbn_sgi_ioc3 = 78,
66443 	pbn_computone_4 = 79,
66444 	pbn_computone_6 = 80,
66445 	pbn_computone_8 = 81,
66446 	pbn_sbsxrsio = 82,
66447 	pbn_pasemi_1682M = 83,
66448 	pbn_ni8430_2 = 84,
66449 	pbn_ni8430_4 = 85,
66450 	pbn_ni8430_8 = 86,
66451 	pbn_ni8430_16 = 87,
66452 	pbn_ADDIDATA_PCIe_1_3906250 = 88,
66453 	pbn_ADDIDATA_PCIe_2_3906250 = 89,
66454 	pbn_ADDIDATA_PCIe_4_3906250 = 90,
66455 	pbn_ADDIDATA_PCIe_8_3906250 = 91,
66456 	pbn_ce4100_1_115200 = 92,
66457 	pbn_omegapci = 93,
66458 	pbn_NETMOS9900_2s_115200 = 94,
66459 	pbn_brcm_trumanage = 95,
66460 	pbn_fintek_4 = 96,
66461 	pbn_fintek_8 = 97,
66462 	pbn_fintek_12 = 98,
66463 	pbn_fintek_F81504A = 99,
66464 	pbn_fintek_F81508A = 100,
66465 	pbn_fintek_F81512A = 101,
66466 	pbn_wch382_2 = 102,
66467 	pbn_wch384_4 = 103,
66468 	pbn_wch384_8 = 104,
66469 	pbn_sunix_pci_1s = 105,
66470 	pbn_sunix_pci_2s = 106,
66471 	pbn_sunix_pci_4s = 107,
66472 	pbn_sunix_pci_8s = 108,
66473 	pbn_sunix_pci_16s = 109,
66474 	pbn_titan_1_4000000 = 110,
66475 	pbn_titan_2_4000000 = 111,
66476 	pbn_titan_4_4000000 = 112,
66477 	pbn_titan_8_4000000 = 113,
66478 	pbn_moxa8250_2p = 114,
66479 	pbn_moxa8250_4p = 115,
66480 	pbn_moxa8250_8p = 116,
66481 };
66482 
66483 struct software_node {
66484 	const char *name;
66485 	const struct software_node *parent;
66486 	const struct property_entry *properties;
66487 };
66488 
66489 struct exar8250_platform {
66490 	int (*rs485_config)(struct uart_port *, struct serial_rs485 *);
66491 	int (*register_gpio)(struct pci_dev *, struct uart_8250_port *);
66492 	void (*unregister_gpio)(struct uart_8250_port *);
66493 };
66494 
66495 struct exar8250;
66496 
66497 struct exar8250_board {
66498 	unsigned int num_ports;
66499 	unsigned int reg_shift;
66500 	int (*setup)(struct exar8250 *, struct pci_dev *, struct uart_8250_port *, int);
66501 	void (*exit)(struct pci_dev *);
66502 };
66503 
66504 struct exar8250 {
66505 	unsigned int nr;
66506 	struct exar8250_board *board;
66507 	void *virt;
66508 	int line[0];
66509 };
66510 
66511 struct pericom8250 {
66512 	void *virt;
66513 	unsigned int nr;
66514 	int line[0];
66515 };
66516 
66517 struct memdev {
66518 	const char *name;
66519 	umode_t mode;
66520 	const struct file_operations *fops;
66521 	fmode_t fmode;
66522 };
66523 
66524 struct timer_rand_state {
66525 	cycles_t last_time;
66526 	long int last_delta;
66527 	long int last_delta2;
66528 };
66529 
66530 enum chacha_constants {
66531 	CHACHA_CONSTANT_EXPA = 1634760805,
66532 	CHACHA_CONSTANT_ND_3 = 857760878,
66533 	CHACHA_CONSTANT_2_BY = 2036477234,
66534 	CHACHA_CONSTANT_TE_K = 1797285236,
66535 };
66536 
66537 struct trace_event_raw_add_device_randomness {
66538 	struct trace_entry ent;
66539 	int bytes;
66540 	long unsigned int IP;
66541 	char __data[0];
66542 };
66543 
66544 struct trace_event_raw_random__mix_pool_bytes {
66545 	struct trace_entry ent;
66546 	int bytes;
66547 	long unsigned int IP;
66548 	char __data[0];
66549 };
66550 
66551 struct trace_event_raw_credit_entropy_bits {
66552 	struct trace_entry ent;
66553 	int bits;
66554 	int entropy_count;
66555 	long unsigned int IP;
66556 	char __data[0];
66557 };
66558 
66559 struct trace_event_raw_debit_entropy {
66560 	struct trace_entry ent;
66561 	int debit_bits;
66562 	char __data[0];
66563 };
66564 
66565 struct trace_event_raw_add_input_randomness {
66566 	struct trace_entry ent;
66567 	int input_bits;
66568 	char __data[0];
66569 };
66570 
66571 struct trace_event_raw_add_disk_randomness {
66572 	struct trace_entry ent;
66573 	dev_t dev;
66574 	int input_bits;
66575 	char __data[0];
66576 };
66577 
66578 struct trace_event_raw_random__get_random_bytes {
66579 	struct trace_entry ent;
66580 	int nbytes;
66581 	long unsigned int IP;
66582 	char __data[0];
66583 };
66584 
66585 struct trace_event_raw_random__extract_entropy {
66586 	struct trace_entry ent;
66587 	int nbytes;
66588 	int entropy_count;
66589 	long unsigned int IP;
66590 	char __data[0];
66591 };
66592 
66593 struct trace_event_raw_urandom_read {
66594 	struct trace_entry ent;
66595 	int got_bits;
66596 	int pool_left;
66597 	int input_left;
66598 	char __data[0];
66599 };
66600 
66601 struct trace_event_raw_prandom_u32 {
66602 	struct trace_entry ent;
66603 	unsigned int ret;
66604 	char __data[0];
66605 };
66606 
66607 struct trace_event_data_offsets_add_device_randomness {};
66608 
66609 struct trace_event_data_offsets_random__mix_pool_bytes {};
66610 
66611 struct trace_event_data_offsets_credit_entropy_bits {};
66612 
66613 struct trace_event_data_offsets_debit_entropy {};
66614 
66615 struct trace_event_data_offsets_add_input_randomness {};
66616 
66617 struct trace_event_data_offsets_add_disk_randomness {};
66618 
66619 struct trace_event_data_offsets_random__get_random_bytes {};
66620 
66621 struct trace_event_data_offsets_random__extract_entropy {};
66622 
66623 struct trace_event_data_offsets_urandom_read {};
66624 
66625 struct trace_event_data_offsets_prandom_u32 {};
66626 
66627 typedef void (*btf_trace_add_device_randomness)(void *, int, long unsigned int);
66628 
66629 typedef void (*btf_trace_mix_pool_bytes)(void *, int, long unsigned int);
66630 
66631 typedef void (*btf_trace_mix_pool_bytes_nolock)(void *, int, long unsigned int);
66632 
66633 typedef void (*btf_trace_credit_entropy_bits)(void *, int, int, long unsigned int);
66634 
66635 typedef void (*btf_trace_debit_entropy)(void *, int);
66636 
66637 typedef void (*btf_trace_add_input_randomness)(void *, int);
66638 
66639 typedef void (*btf_trace_add_disk_randomness)(void *, dev_t, int);
66640 
66641 typedef void (*btf_trace_get_random_bytes)(void *, int, long unsigned int);
66642 
66643 typedef void (*btf_trace_get_random_bytes_arch)(void *, int, long unsigned int);
66644 
66645 typedef void (*btf_trace_extract_entropy)(void *, int, int, long unsigned int);
66646 
66647 typedef void (*btf_trace_urandom_read)(void *, int, int, int);
66648 
66649 typedef void (*btf_trace_prandom_u32)(void *, unsigned int);
66650 
66651 enum poolinfo {
66652 	POOL_WORDS = 128,
66653 	POOL_WORDMASK = 127,
66654 	POOL_BYTES = 512,
66655 	POOL_BITS = 4096,
66656 	POOL_BITSHIFT = 12,
66657 	POOL_ENTROPY_SHIFT = 3,
66658 	POOL_FRACBITS = 32768,
66659 	POOL_TAP1 = 104,
66660 	POOL_TAP2 = 76,
66661 	POOL_TAP3 = 51,
66662 	POOL_TAP4 = 25,
66663 	POOL_TAP5 = 1,
66664 	EXTRACT_SIZE = 16,
66665 };
66666 
66667 struct crng_state {
66668 	u32 state[16];
66669 	long unsigned int init_time;
66670 	spinlock_t lock;
66671 };
66672 
66673 struct fast_pool {
66674 	u32 pool[4];
66675 	long unsigned int last;
66676 	u16 reg_idx;
66677 	u8 count;
66678 };
66679 
66680 struct batched_entropy {
66681 	union {
66682 		u64 entropy_u64[8];
66683 		u32 entropy_u32[16];
66684 	};
66685 	unsigned int position;
66686 	spinlock_t batch_lock;
66687 };
66688 
66689 struct virtio_console_config {
66690 	__virtio16 cols;
66691 	__virtio16 rows;
66692 	__virtio32 max_nr_ports;
66693 	__virtio32 emerg_wr;
66694 };
66695 
66696 struct virtio_console_control {
66697 	__virtio32 id;
66698 	__virtio16 event;
66699 	__virtio16 value;
66700 };
66701 
66702 struct ports_driver_data {
66703 	struct class *class;
66704 	struct dentry *debugfs_dir;
66705 	struct list_head portdevs;
66706 	unsigned int next_vtermno;
66707 	struct list_head consoles;
66708 };
66709 
66710 struct console___2 {
66711 	struct list_head list;
66712 	struct hvc_struct *hvc;
66713 	struct winsize ws;
66714 	u32 vtermno;
66715 };
66716 
66717 struct port_buffer {
66718 	char *buf;
66719 	size_t size;
66720 	size_t len;
66721 	size_t offset;
66722 	dma_addr_t dma;
66723 	struct device *dev;
66724 	struct list_head list;
66725 	unsigned int sgpages;
66726 	struct scatterlist sg[0];
66727 };
66728 
66729 struct ports_device {
66730 	struct list_head list;
66731 	struct work_struct control_work;
66732 	struct work_struct config_work;
66733 	struct list_head ports;
66734 	spinlock_t ports_lock;
66735 	spinlock_t c_ivq_lock;
66736 	spinlock_t c_ovq_lock;
66737 	u32 max_nr_ports;
66738 	struct virtio_device *vdev;
66739 	struct virtqueue *c_ivq;
66740 	struct virtqueue *c_ovq;
66741 	struct virtio_console_control cpkt;
66742 	struct virtqueue **in_vqs;
66743 	struct virtqueue **out_vqs;
66744 	int chr_major;
66745 };
66746 
66747 struct port_stats {
66748 	long unsigned int bytes_sent;
66749 	long unsigned int bytes_received;
66750 	long unsigned int bytes_discarded;
66751 };
66752 
66753 struct port {
66754 	struct list_head list;
66755 	struct ports_device *portdev;
66756 	struct port_buffer *inbuf;
66757 	spinlock_t inbuf_lock;
66758 	spinlock_t outvq_lock;
66759 	struct virtqueue *in_vq;
66760 	struct virtqueue *out_vq;
66761 	struct dentry *debugfs_file;
66762 	struct port_stats stats;
66763 	struct console___2 cons;
66764 	struct cdev *cdev;
66765 	struct device *dev;
66766 	struct kref kref;
66767 	wait_queue_head_t waitqueue;
66768 	char *name;
66769 	struct fasync_struct *async_queue;
66770 	u32 id;
66771 	bool outvq_full;
66772 	bool host_connected;
66773 	bool guest_connected;
66774 };
66775 
66776 struct sg_list {
66777 	unsigned int n;
66778 	unsigned int size;
66779 	size_t len;
66780 	struct scatterlist *sg;
66781 };
66782 
66783 struct hpet_info {
66784 	long unsigned int hi_ireqfreq;
66785 	long unsigned int hi_flags;
66786 	short unsigned int hi_hpet;
66787 	short unsigned int hi_timer;
66788 };
66789 
66790 struct hpet_timer {
66791 	u64 hpet_config;
66792 	union {
66793 		u64 _hpet_hc64;
66794 		u32 _hpet_hc32;
66795 		long unsigned int _hpet_compare;
66796 	} _u1;
66797 	u64 hpet_fsb[2];
66798 };
66799 
66800 struct hpet {
66801 	u64 hpet_cap;
66802 	u64 res0;
66803 	u64 hpet_config;
66804 	u64 res1;
66805 	u64 hpet_isr;
66806 	u64 res2[25];
66807 	union {
66808 		u64 _hpet_mc64;
66809 		u32 _hpet_mc32;
66810 		long unsigned int _hpet_mc;
66811 	} _u0;
66812 	u64 res3;
66813 	struct hpet_timer hpet_timers[1];
66814 };
66815 
66816 struct hpets;
66817 
66818 struct hpet_dev {
66819 	struct hpets *hd_hpets;
66820 	struct hpet *hd_hpet;
66821 	struct hpet_timer *hd_timer;
66822 	long unsigned int hd_ireqfreq;
66823 	long unsigned int hd_irqdata;
66824 	wait_queue_head_t hd_waitqueue;
66825 	struct fasync_struct *hd_async_queue;
66826 	unsigned int hd_flags;
66827 	unsigned int hd_irq;
66828 	unsigned int hd_hdwirq;
66829 	char hd_name[7];
66830 };
66831 
66832 struct hpets {
66833 	struct hpets *hp_next;
66834 	struct hpet *hp_hpet;
66835 	long unsigned int hp_hpet_phys;
66836 	struct clocksource *hp_clocksource;
66837 	long long unsigned int hp_tick_freq;
66838 	long unsigned int hp_delta;
66839 	unsigned int hp_ntimer;
66840 	unsigned int hp_which;
66841 	struct hpet_dev hp_dev[0];
66842 };
66843 
66844 struct agp_bridge_data___2;
66845 
66846 struct agp_memory {
66847 	struct agp_memory *next;
66848 	struct agp_memory *prev;
66849 	struct agp_bridge_data___2 *bridge;
66850 	struct page **pages;
66851 	size_t page_count;
66852 	int key;
66853 	int num_scratch_pages;
66854 	off_t pg_start;
66855 	u32 type;
66856 	u32 physical;
66857 	bool is_bound;
66858 	bool is_flushed;
66859 	struct list_head mapped_list;
66860 	struct scatterlist *sg_list;
66861 	int num_sg;
66862 };
66863 
66864 struct agp_bridge_driver;
66865 
66866 struct agp_bridge_data___2 {
66867 	const struct agp_version *version;
66868 	const struct agp_bridge_driver *driver;
66869 	const struct vm_operations_struct *vm_ops;
66870 	void *previous_size;
66871 	void *current_size;
66872 	void *dev_private_data;
66873 	struct pci_dev *dev;
66874 	u32 *gatt_table;
66875 	u32 *gatt_table_real;
66876 	long unsigned int scratch_page;
66877 	struct page *scratch_page_page;
66878 	dma_addr_t scratch_page_dma;
66879 	long unsigned int gart_bus_addr;
66880 	long unsigned int gatt_bus_addr;
66881 	u32 mode;
66882 	enum chipset_type type;
66883 	long unsigned int *key_list;
66884 	atomic_t current_memory_agp;
66885 	atomic_t agp_in_use;
66886 	int max_memory_agp;
66887 	int aperture_size_idx;
66888 	int capndx;
66889 	int flags;
66890 	char major_version;
66891 	char minor_version;
66892 	struct list_head list;
66893 	u32 apbase_config;
66894 	struct list_head mapped_list;
66895 	spinlock_t mapped_lock;
66896 };
66897 
66898 enum aper_size_type {
66899 	U8_APER_SIZE = 0,
66900 	U16_APER_SIZE = 1,
66901 	U32_APER_SIZE = 2,
66902 	LVL2_APER_SIZE = 3,
66903 	FIXED_APER_SIZE = 4,
66904 };
66905 
66906 struct gatt_mask {
66907 	long unsigned int mask;
66908 	u32 type;
66909 };
66910 
66911 struct aper_size_info_16 {
66912 	int size;
66913 	int num_entries;
66914 	int page_order;
66915 	u16 size_value;
66916 };
66917 
66918 struct agp_bridge_driver {
66919 	struct module *owner;
66920 	const void *aperture_sizes;
66921 	int num_aperture_sizes;
66922 	enum aper_size_type size_type;
66923 	bool cant_use_aperture;
66924 	bool needs_scratch_page;
66925 	const struct gatt_mask *masks;
66926 	int (*fetch_size)();
66927 	int (*configure)();
66928 	void (*agp_enable)(struct agp_bridge_data___2 *, u32);
66929 	void (*cleanup)();
66930 	void (*tlb_flush)(struct agp_memory *);
66931 	long unsigned int (*mask_memory)(struct agp_bridge_data___2 *, dma_addr_t, int);
66932 	void (*cache_flush)();
66933 	int (*create_gatt_table)(struct agp_bridge_data___2 *);
66934 	int (*free_gatt_table)(struct agp_bridge_data___2 *);
66935 	int (*insert_memory)(struct agp_memory *, off_t, int);
66936 	int (*remove_memory)(struct agp_memory *, off_t, int);
66937 	struct agp_memory * (*alloc_by_type)(size_t, int);
66938 	void (*free_by_type)(struct agp_memory *);
66939 	struct page * (*agp_alloc_page)(struct agp_bridge_data___2 *);
66940 	int (*agp_alloc_pages)(struct agp_bridge_data___2 *, struct agp_memory *, size_t);
66941 	void (*agp_destroy_page)(struct page *, int);
66942 	void (*agp_destroy_pages)(struct agp_memory *);
66943 	int (*agp_type_to_mask_type)(struct agp_bridge_data___2 *, int);
66944 };
66945 
66946 struct aper_size_info_8 {
66947 	int size;
66948 	int num_entries;
66949 	int page_order;
66950 	u8 size_value;
66951 };
66952 
66953 struct aper_size_info_32 {
66954 	int size;
66955 	int num_entries;
66956 	int page_order;
66957 	u32 size_value;
66958 };
66959 
66960 struct aper_size_info_lvl2 {
66961 	int size;
66962 	int num_entries;
66963 	u32 size_value;
66964 };
66965 
66966 struct aper_size_info_fixed {
66967 	int size;
66968 	int num_entries;
66969 	int page_order;
66970 };
66971 
66972 struct agp_3_5_dev {
66973 	struct list_head list;
66974 	u8 capndx;
66975 	u32 maxbw;
66976 	struct pci_dev *dev;
66977 };
66978 
66979 struct isoch_data {
66980 	u32 maxbw;
66981 	u32 n;
66982 	u32 y;
66983 	u32 l;
66984 	u32 rq;
66985 	struct agp_3_5_dev *dev;
66986 };
66987 
66988 struct intel_agp_driver_description {
66989 	unsigned int chip_id;
66990 	char *name;
66991 	const struct agp_bridge_driver *driver;
66992 };
66993 
66994 struct intel_gtt_driver {
66995 	unsigned int gen: 8;
66996 	unsigned int is_g33: 1;
66997 	unsigned int is_pineview: 1;
66998 	unsigned int is_ironlake: 1;
66999 	unsigned int has_pgtbl_enable: 1;
67000 	unsigned int dma_mask_size: 8;
67001 	int (*setup)();
67002 	void (*cleanup)();
67003 	void (*write_entry)(dma_addr_t, unsigned int, unsigned int);
67004 	bool (*check_flags)(unsigned int);
67005 	void (*chipset_flush)();
67006 };
67007 
67008 struct _intel_private {
67009 	const struct intel_gtt_driver *driver;
67010 	struct pci_dev *pcidev;
67011 	struct pci_dev *bridge_dev;
67012 	u8 *registers;
67013 	phys_addr_t gtt_phys_addr;
67014 	u32 PGETBL_save;
67015 	u32 *gtt;
67016 	bool clear_fake_agp;
67017 	int num_dcache_entries;
67018 	void *i9xx_flush_page;
67019 	char *i81x_gtt_table;
67020 	struct resource ifp_resource;
67021 	int resource_valid;
67022 	struct page *scratch_page;
67023 	phys_addr_t scratch_page_dma;
67024 	int refcount;
67025 	unsigned int needs_dmar: 1;
67026 	phys_addr_t gma_bus_addr;
67027 	resource_size_t stolen_size;
67028 	unsigned int gtt_total_entries;
67029 	unsigned int gtt_mappable_entries;
67030 };
67031 
67032 struct intel_gtt_driver_description {
67033 	unsigned int gmch_chip_id;
67034 	char *name;
67035 	const struct intel_gtt_driver *gtt_driver;
67036 };
67037 
67038 struct agp_device_ids {
67039 	short unsigned int device_id;
67040 	enum chipset_type chipset;
67041 	const char *chipset_name;
67042 	int (*chipset_setup)(struct pci_dev *);
67043 };
67044 
67045 enum tpm2_startup_types {
67046 	TPM2_SU_CLEAR = 0,
67047 	TPM2_SU_STATE = 1,
67048 };
67049 
67050 enum tpm_chip_flags {
67051 	TPM_CHIP_FLAG_TPM2 = 2,
67052 	TPM_CHIP_FLAG_IRQ = 4,
67053 	TPM_CHIP_FLAG_VIRTUAL = 8,
67054 	TPM_CHIP_FLAG_HAVE_TIMEOUTS = 16,
67055 	TPM_CHIP_FLAG_ALWAYS_POWERED = 32,
67056 	TPM_CHIP_FLAG_FIRMWARE_POWER_MANAGED = 64,
67057 	TPM_CHIP_FLAG_FIRMWARE_UPGRADE = 128,
67058 };
67059 
67060 enum tpm2_structures {
67061 	TPM2_ST_NO_SESSIONS = 32769,
67062 	TPM2_ST_SESSIONS = 32770,
67063 };
67064 
67065 enum tpm2_return_codes {
67066 	TPM2_RC_SUCCESS = 0,
67067 	TPM2_RC_HASH = 131,
67068 	TPM2_RC_HANDLE = 139,
67069 	TPM2_RC_INITIALIZE = 256,
67070 	TPM2_RC_FAILURE = 257,
67071 	TPM2_RC_DISABLED = 288,
67072 	TPM2_RC_UPGRADE = 301,
67073 	TPM2_RC_COMMAND_CODE = 323,
67074 	TPM2_RC_TESTING = 2314,
67075 	TPM2_RC_REFERENCE_H0 = 2320,
67076 	TPM2_RC_RETRY = 2338,
67077 };
67078 
67079 struct tpm_header {
67080 	__be16 tag;
67081 	__be32 length;
67082 	union {
67083 		__be32 ordinal;
67084 		__be32 return_code;
67085 	};
67086 } __attribute__((packed));
67087 
67088 struct file_priv {
67089 	struct tpm_chip *chip;
67090 	struct tpm_space *space;
67091 	struct mutex buffer_mutex;
67092 	struct timer_list user_read_timer;
67093 	struct work_struct timeout_work;
67094 	struct work_struct async_work;
67095 	wait_queue_head_t async_wait;
67096 	ssize_t response_length;
67097 	bool response_read;
67098 	bool command_enqueued;
67099 	u8 data_buffer[4096];
67100 };
67101 
67102 enum TPM_OPS_FLAGS {
67103 	TPM_OPS_AUTO_STARTUP = 1,
67104 };
67105 
67106 enum tpm2_timeouts {
67107 	TPM2_TIMEOUT_A = 750,
67108 	TPM2_TIMEOUT_B = 2000,
67109 	TPM2_TIMEOUT_C = 200,
67110 	TPM2_TIMEOUT_D = 30,
67111 	TPM2_DURATION_SHORT = 20,
67112 	TPM2_DURATION_MEDIUM = 750,
67113 	TPM2_DURATION_LONG = 2000,
67114 	TPM2_DURATION_LONG_LONG = 300000,
67115 	TPM2_DURATION_DEFAULT = 120000,
67116 };
67117 
67118 enum tpm2_command_codes {
67119 	TPM2_CC_FIRST = 287,
67120 	TPM2_CC_HIERARCHY_CONTROL = 289,
67121 	TPM2_CC_HIERARCHY_CHANGE_AUTH = 297,
67122 	TPM2_CC_CREATE_PRIMARY = 305,
67123 	TPM2_CC_SEQUENCE_COMPLETE = 318,
67124 	TPM2_CC_SELF_TEST = 323,
67125 	TPM2_CC_STARTUP = 324,
67126 	TPM2_CC_SHUTDOWN = 325,
67127 	TPM2_CC_NV_READ = 334,
67128 	TPM2_CC_CREATE = 339,
67129 	TPM2_CC_LOAD = 343,
67130 	TPM2_CC_SEQUENCE_UPDATE = 348,
67131 	TPM2_CC_UNSEAL = 350,
67132 	TPM2_CC_CONTEXT_LOAD = 353,
67133 	TPM2_CC_CONTEXT_SAVE = 354,
67134 	TPM2_CC_FLUSH_CONTEXT = 357,
67135 	TPM2_CC_VERIFY_SIGNATURE = 375,
67136 	TPM2_CC_GET_CAPABILITY = 378,
67137 	TPM2_CC_GET_RANDOM = 379,
67138 	TPM2_CC_PCR_READ = 382,
67139 	TPM2_CC_PCR_EXTEND = 386,
67140 	TPM2_CC_EVENT_SEQUENCE_COMPLETE = 389,
67141 	TPM2_CC_HASH_SEQUENCE_START = 390,
67142 	TPM2_CC_CREATE_LOADED = 401,
67143 	TPM2_CC_LAST = 403,
67144 };
67145 
67146 struct tpm_buf {
67147 	unsigned int flags;
67148 	u8 *data;
67149 };
67150 
67151 enum tpm_timeout {
67152 	TPM_TIMEOUT = 5,
67153 	TPM_TIMEOUT_RETRY = 100,
67154 	TPM_TIMEOUT_RANGE_US = 300,
67155 	TPM_TIMEOUT_POLL = 1,
67156 	TPM_TIMEOUT_USECS_MIN = 100,
67157 	TPM_TIMEOUT_USECS_MAX = 500,
67158 };
67159 
67160 enum tpm_buf_flags {
67161 	TPM_BUF_OVERFLOW = 1,
67162 };
67163 
67164 struct stclear_flags_t {
67165 	__be16 tag;
67166 	u8 deactivated;
67167 	u8 disableForceClear;
67168 	u8 physicalPresence;
67169 	u8 physicalPresenceLock;
67170 	u8 bGlobalLock;
67171 } __attribute__((packed));
67172 
67173 struct tpm1_version {
67174 	u8 major;
67175 	u8 minor;
67176 	u8 rev_major;
67177 	u8 rev_minor;
67178 };
67179 
67180 struct tpm1_version2 {
67181 	__be16 tag;
67182 	struct tpm1_version version;
67183 };
67184 
67185 struct timeout_t {
67186 	__be32 a;
67187 	__be32 b;
67188 	__be32 c;
67189 	__be32 d;
67190 };
67191 
67192 struct duration_t {
67193 	__be32 tpm_short;
67194 	__be32 tpm_medium;
67195 	__be32 tpm_long;
67196 };
67197 
67198 struct permanent_flags_t {
67199 	__be16 tag;
67200 	u8 disable;
67201 	u8 ownership;
67202 	u8 deactivated;
67203 	u8 readPubek;
67204 	u8 disableOwnerClear;
67205 	u8 allowMaintenance;
67206 	u8 physicalPresenceLifetimeLock;
67207 	u8 physicalPresenceHWEnable;
67208 	u8 physicalPresenceCMDEnable;
67209 	u8 CEKPUsed;
67210 	u8 TPMpost;
67211 	u8 TPMpostLock;
67212 	u8 FIPS;
67213 	u8 operator;
67214 	u8 enableRevokeEK;
67215 	u8 nvLocked;
67216 	u8 readSRKPub;
67217 	u8 tpmEstablished;
67218 	u8 maintenanceDone;
67219 	u8 disableFullDALogicInfo;
67220 };
67221 
67222 typedef union {
67223 	struct permanent_flags_t perm_flags;
67224 	struct stclear_flags_t stclear_flags;
67225 	__u8 owned;
67226 	__be32 num_pcrs;
67227 	struct tpm1_version version1;
67228 	struct tpm1_version2 version2;
67229 	__be32 manufacturer_id;
67230 	struct timeout_t timeout;
67231 	struct duration_t duration;
67232 } cap_t;
67233 
67234 enum tpm_capabilities {
67235 	TPM_CAP_FLAG = 4,
67236 	TPM_CAP_PROP = 5,
67237 	TPM_CAP_VERSION_1_1 = 6,
67238 	TPM_CAP_VERSION_1_2 = 26,
67239 };
67240 
67241 enum tpm_sub_capabilities {
67242 	TPM_CAP_PROP_PCR = 257,
67243 	TPM_CAP_PROP_MANUFACTURER = 259,
67244 	TPM_CAP_FLAG_PERM = 264,
67245 	TPM_CAP_FLAG_VOL = 265,
67246 	TPM_CAP_PROP_OWNER = 273,
67247 	TPM_CAP_PROP_TIS_TIMEOUT = 277,
67248 	TPM_CAP_PROP_TIS_DURATION = 288,
67249 };
67250 
67251 struct tpm1_get_random_out {
67252 	__be32 rng_data_len;
67253 	u8 rng_data[128];
67254 };
67255 
67256 enum tpm2_const {
67257 	TPM2_PLATFORM_PCR = 24,
67258 	TPM2_PCR_SELECT_MIN = 3,
67259 };
67260 
67261 enum tpm2_permanent_handles {
67262 	TPM2_RS_PW = 1073741833,
67263 };
67264 
67265 enum tpm2_capabilities {
67266 	TPM2_CAP_HANDLES = 1,
67267 	TPM2_CAP_COMMANDS = 2,
67268 	TPM2_CAP_PCRS = 5,
67269 	TPM2_CAP_TPM_PROPERTIES = 6,
67270 };
67271 
67272 enum tpm2_properties {
67273 	TPM_PT_TOTAL_COMMANDS = 297,
67274 };
67275 
67276 enum tpm2_cc_attrs {
67277 	TPM2_CC_ATTR_CHANDLES = 25,
67278 	TPM2_CC_ATTR_RHANDLE = 28,
67279 };
67280 
67281 struct tpm2_hash {
67282 	unsigned int crypto_id;
67283 	unsigned int tpm_id;
67284 };
67285 
67286 struct tpm2_pcr_read_out {
67287 	__be32 update_cnt;
67288 	__be32 pcr_selects_cnt;
67289 	__be16 hash_alg;
67290 	u8 pcr_select_size;
67291 	u8 pcr_select[3];
67292 	__be32 digests_cnt;
67293 	__be16 digest_size;
67294 	u8 digest[0];
67295 } __attribute__((packed));
67296 
67297 struct tpm2_null_auth_area {
67298 	__be32 handle;
67299 	__be16 nonce_size;
67300 	u8 attributes;
67301 	__be16 auth_size;
67302 } __attribute__((packed));
67303 
67304 struct tpm2_get_random_out {
67305 	__be16 size;
67306 	u8 buffer[128];
67307 };
67308 
67309 struct tpm2_get_cap_out {
67310 	u8 more_data;
67311 	__be32 subcap_id;
67312 	__be32 property_cnt;
67313 	__be32 property_id;
67314 	__be32 value;
67315 } __attribute__((packed));
67316 
67317 struct tpm2_pcr_selection {
67318 	__be16 hash_alg;
67319 	u8 size_of_select;
67320 	u8 pcr_select[3];
67321 };
67322 
67323 struct tpmrm_priv {
67324 	struct file_priv priv;
67325 	struct tpm_space space;
67326 };
67327 
67328 enum tpm2_handle_types {
67329 	TPM2_HT_HMAC_SESSION = 33554432,
67330 	TPM2_HT_POLICY_SESSION = 50331648,
67331 	TPM2_HT_TRANSIENT = 2147483648,
67332 };
67333 
67334 struct tpm2_context {
67335 	__be64 sequence;
67336 	__be32 saved_handle;
67337 	__be32 hierarchy;
67338 	__be16 blob_size;
67339 } __attribute__((packed));
67340 
67341 struct tpm2_cap_handles {
67342 	u8 more_data;
67343 	__be32 capability;
67344 	__be32 count;
67345 	__be32 handles[0];
67346 } __attribute__((packed));
67347 
67348 struct tpm_readpubek_out {
67349 	u8 algorithm[4];
67350 	u8 encscheme[2];
67351 	u8 sigscheme[2];
67352 	__be32 paramsize;
67353 	u8 parameters[12];
67354 	__be32 keysize;
67355 	u8 modulus[256];
67356 	u8 checksum[20];
67357 };
67358 
67359 struct tpm_pcr_attr {
67360 	int alg_id;
67361 	int pcr;
67362 	struct device_attribute attr;
67363 };
67364 
67365 struct tcpa_event {
67366 	u32 pcr_index;
67367 	u32 event_type;
67368 	u8 pcr_value[20];
67369 	u32 event_size;
67370 	u8 event_data[0];
67371 };
67372 
67373 enum tcpa_event_types {
67374 	PREBOOT = 0,
67375 	POST_CODE = 1,
67376 	UNUSED = 2,
67377 	NO_ACTION = 3,
67378 	SEPARATOR = 4,
67379 	ACTION = 5,
67380 	EVENT_TAG = 6,
67381 	SCRTM_CONTENTS = 7,
67382 	SCRTM_VERSION = 8,
67383 	CPU_MICROCODE = 9,
67384 	PLATFORM_CONFIG_FLAGS = 10,
67385 	TABLE_OF_DEVICES = 11,
67386 	COMPACT_HASH = 12,
67387 	IPL = 13,
67388 	IPL_PARTITION_DATA = 14,
67389 	NONHOST_CODE = 15,
67390 	NONHOST_CONFIG = 16,
67391 	NONHOST_INFO = 17,
67392 };
67393 
67394 struct tcpa_pc_event {
67395 	u32 event_id;
67396 	u32 event_size;
67397 	u8 event_data[0];
67398 };
67399 
67400 enum tcpa_pc_event_ids {
67401 	SMBIOS = 1,
67402 	BIS_CERT = 2,
67403 	POST_BIOS_ROM = 3,
67404 	ESCD = 4,
67405 	CMOS = 5,
67406 	NVRAM = 6,
67407 	OPTION_ROM_EXEC = 7,
67408 	OPTION_ROM_CONFIG = 8,
67409 	OPTION_ROM_MICROCODE = 10,
67410 	S_CRTM_VERSION = 11,
67411 	S_CRTM_CONTENTS = 12,
67412 	POST_CONTENTS = 13,
67413 	HOST_TABLE_OF_DEVICES = 14,
67414 };
67415 
67416 struct tcg_efi_specid_event_algs {
67417 	u16 alg_id;
67418 	u16 digest_size;
67419 };
67420 
67421 struct tcg_efi_specid_event_head {
67422 	u8 signature[16];
67423 	u32 platform_class;
67424 	u8 spec_version_minor;
67425 	u8 spec_version_major;
67426 	u8 spec_errata;
67427 	u8 uintnsize;
67428 	u32 num_algs;
67429 	struct tcg_efi_specid_event_algs digest_sizes[0];
67430 };
67431 
67432 struct tcg_pcr_event {
67433 	u32 pcr_idx;
67434 	u32 event_type;
67435 	u8 digest[20];
67436 	u32 event_size;
67437 	u8 event[0];
67438 };
67439 
67440 struct tcg_event_field {
67441 	u32 event_size;
67442 	u8 event[0];
67443 };
67444 
67445 struct tcg_pcr_event2_head {
67446 	u32 pcr_idx;
67447 	u32 event_type;
67448 	u32 count;
67449 	struct tpm_digest digests[0];
67450 };
67451 
67452 struct acpi_table_tpm2 {
67453 	struct acpi_table_header header;
67454 	u16 platform_class;
67455 	u16 reserved;
67456 	u64 control_address;
67457 	u32 start_method;
67458 } __attribute__((packed));
67459 
67460 struct acpi_tpm2_phy {
67461 	u8 start_method_specific[12];
67462 	u32 log_area_minimum_length;
67463 	u64 log_area_start_address;
67464 };
67465 
67466 enum bios_platform_class {
67467 	BIOS_CLIENT = 0,
67468 	BIOS_SERVER = 1,
67469 };
67470 
67471 struct client_hdr {
67472 	u32 log_max_len;
67473 	u64 log_start_addr;
67474 } __attribute__((packed));
67475 
67476 struct server_hdr {
67477 	u16 reserved;
67478 	u64 log_max_len;
67479 	u64 log_start_addr;
67480 } __attribute__((packed));
67481 
67482 struct acpi_tcpa {
67483 	struct acpi_table_header hdr;
67484 	u16 platform_class;
67485 	union {
67486 		struct client_hdr client;
67487 		struct server_hdr server;
67488 	};
67489 } __attribute__((packed));
67490 
67491 struct linux_efi_tpm_eventlog {
67492 	u32 size;
67493 	u32 final_events_preboot_size;
67494 	u8 version;
67495 	u8 log[0];
67496 };
67497 
67498 struct efi_tcg2_final_events_table {
67499 	u64 version;
67500 	u64 nr_events;
67501 	u8 events[0];
67502 };
67503 
67504 enum tis_access {
67505 	TPM_ACCESS_VALID = 128,
67506 	TPM_ACCESS_ACTIVE_LOCALITY = 32,
67507 	TPM_ACCESS_REQUEST_PENDING = 4,
67508 	TPM_ACCESS_REQUEST_USE = 2,
67509 };
67510 
67511 enum tis_status {
67512 	TPM_STS_VALID = 128,
67513 	TPM_STS_COMMAND_READY = 64,
67514 	TPM_STS_GO = 32,
67515 	TPM_STS_DATA_AVAIL = 16,
67516 	TPM_STS_DATA_EXPECT = 8,
67517 	TPM_STS_READ_ZERO = 35,
67518 };
67519 
67520 enum tis_int_flags {
67521 	TPM_GLOBAL_INT_ENABLE = 2147483648,
67522 	TPM_INTF_BURST_COUNT_STATIC = 256,
67523 	TPM_INTF_CMD_READY_INT = 128,
67524 	TPM_INTF_INT_EDGE_FALLING = 64,
67525 	TPM_INTF_INT_EDGE_RISING = 32,
67526 	TPM_INTF_INT_LEVEL_LOW = 16,
67527 	TPM_INTF_INT_LEVEL_HIGH = 8,
67528 	TPM_INTF_LOCALITY_CHANGE_INT = 4,
67529 	TPM_INTF_STS_VALID_INT = 2,
67530 	TPM_INTF_DATA_AVAIL_INT = 1,
67531 };
67532 
67533 enum tis_defaults {
67534 	TIS_MEM_LEN = 20480,
67535 	TIS_SHORT_TIMEOUT = 750,
67536 	TIS_LONG_TIMEOUT = 2000,
67537 	TIS_TIMEOUT_MIN_ATML = 14700,
67538 	TIS_TIMEOUT_MAX_ATML = 15000,
67539 };
67540 
67541 enum tpm_tis_flags {
67542 	TPM_TIS_ITPM_WORKAROUND = 1,
67543 	TPM_TIS_INVALID_STATUS = 2,
67544 };
67545 
67546 struct tpm_tis_phy_ops;
67547 
67548 struct tpm_tis_data {
67549 	u16 manufacturer_id;
67550 	int locality;
67551 	int irq;
67552 	bool irq_tested;
67553 	long unsigned int flags;
67554 	void *ilb_base_addr;
67555 	u16 clkrun_enabled;
67556 	wait_queue_head_t int_queue;
67557 	wait_queue_head_t read_queue;
67558 	const struct tpm_tis_phy_ops *phy_ops;
67559 	short unsigned int rng_quality;
67560 	unsigned int timeout_min;
67561 	unsigned int timeout_max;
67562 };
67563 
67564 struct tpm_tis_phy_ops {
67565 	int (*read_bytes)(struct tpm_tis_data *, u32, u16, u8 *);
67566 	int (*write_bytes)(struct tpm_tis_data *, u32, u16, const u8 *);
67567 	int (*read16)(struct tpm_tis_data *, u32, u16 *);
67568 	int (*read32)(struct tpm_tis_data *, u32, u32 *);
67569 	int (*write32)(struct tpm_tis_data *, u32, u32);
67570 };
67571 
67572 struct tis_vendor_durations_override {
67573 	u32 did_vid;
67574 	struct tpm1_version version;
67575 	long unsigned int durations[3];
67576 };
67577 
67578 struct tis_vendor_timeout_override {
67579 	u32 did_vid;
67580 	long unsigned int timeout_us[4];
67581 };
67582 
67583 struct tpm_info {
67584 	struct resource res;
67585 	int irq;
67586 };
67587 
67588 struct tpm_tis_tcg_phy {
67589 	struct tpm_tis_data priv;
67590 	void *iobase;
67591 };
67592 
67593 enum crb_defaults {
67594 	CRB_ACPI_START_REVISION_ID = 1,
67595 	CRB_ACPI_START_INDEX = 1,
67596 };
67597 
67598 enum crb_loc_ctrl {
67599 	CRB_LOC_CTRL_REQUEST_ACCESS = 1,
67600 	CRB_LOC_CTRL_RELINQUISH = 2,
67601 };
67602 
67603 enum crb_loc_state {
67604 	CRB_LOC_STATE_LOC_ASSIGNED = 2,
67605 	CRB_LOC_STATE_TPM_REG_VALID_STS = 128,
67606 };
67607 
67608 enum crb_ctrl_req {
67609 	CRB_CTRL_REQ_CMD_READY = 1,
67610 	CRB_CTRL_REQ_GO_IDLE = 2,
67611 };
67612 
67613 enum crb_ctrl_sts {
67614 	CRB_CTRL_STS_ERROR = 1,
67615 	CRB_CTRL_STS_TPM_IDLE = 2,
67616 };
67617 
67618 enum crb_start {
67619 	CRB_START_INVOKE = 1,
67620 };
67621 
67622 enum crb_cancel {
67623 	CRB_CANCEL_INVOKE = 1,
67624 };
67625 
67626 struct crb_regs_head {
67627 	u32 loc_state;
67628 	u32 reserved1;
67629 	u32 loc_ctrl;
67630 	u32 loc_sts;
67631 	u8 reserved2[32];
67632 	u64 intf_id;
67633 	u64 ctrl_ext;
67634 };
67635 
67636 struct crb_regs_tail {
67637 	u32 ctrl_req;
67638 	u32 ctrl_sts;
67639 	u32 ctrl_cancel;
67640 	u32 ctrl_start;
67641 	u32 ctrl_int_enable;
67642 	u32 ctrl_int_sts;
67643 	u32 ctrl_cmd_size;
67644 	u32 ctrl_cmd_pa_low;
67645 	u32 ctrl_cmd_pa_high;
67646 	u32 ctrl_rsp_size;
67647 	u64 ctrl_rsp_pa;
67648 };
67649 
67650 enum crb_status {
67651 	CRB_DRV_STS_COMPLETE = 1,
67652 };
67653 
67654 struct crb_priv {
67655 	u32 sm;
67656 	const char *hid;
67657 	struct crb_regs_head *regs_h;
67658 	struct crb_regs_tail *regs_t;
67659 	u8 *cmd;
67660 	u8 *rsp;
67661 	u32 cmd_size;
67662 	u32 smc_func_id;
67663 };
67664 
67665 struct tpm2_crb_smc {
67666 	u32 interrupt;
67667 	u8 interrupt_flags;
67668 	u8 op_flags;
67669 	u16 reserved2;
67670 	u32 smc_func_id;
67671 };
67672 
67673 struct vga_device {
67674 	struct list_head list;
67675 	struct pci_dev *pdev;
67676 	unsigned int decodes;
67677 	unsigned int owns;
67678 	unsigned int locks;
67679 	unsigned int io_lock_cnt;
67680 	unsigned int mem_lock_cnt;
67681 	unsigned int io_norm_cnt;
67682 	unsigned int mem_norm_cnt;
67683 	bool bridge_has_one_vga;
67684 	unsigned int (*set_decode)(struct pci_dev *, bool);
67685 };
67686 
67687 struct vga_arb_user_card {
67688 	struct pci_dev *pdev;
67689 	unsigned int mem_cnt;
67690 	unsigned int io_cnt;
67691 };
67692 
67693 struct vga_arb_private {
67694 	struct list_head list;
67695 	struct pci_dev *target;
67696 	struct vga_arb_user_card cards[16];
67697 	spinlock_t lock;
67698 };
67699 
67700 struct component_ops {
67701 	int (*bind)(struct device *, struct device *, void *);
67702 	void (*unbind)(struct device *, struct device *, void *);
67703 };
67704 
67705 struct component_master_ops {
67706 	int (*bind)(struct device *);
67707 	void (*unbind)(struct device *);
67708 };
67709 
67710 struct component;
67711 
67712 struct component_match_array {
67713 	void *data;
67714 	int (*compare)(struct device *, void *);
67715 	int (*compare_typed)(struct device *, int, void *);
67716 	void (*release)(struct device *, void *);
67717 	struct component *component;
67718 	bool duplicate;
67719 };
67720 
67721 struct master;
67722 
67723 struct component {
67724 	struct list_head node;
67725 	struct master *master;
67726 	bool bound;
67727 	const struct component_ops *ops;
67728 	int subcomponent;
67729 	struct device *dev;
67730 };
67731 
67732 struct component_match {
67733 	size_t alloc;
67734 	size_t num;
67735 	struct component_match_array *compare;
67736 };
67737 
67738 struct master {
67739 	struct list_head node;
67740 	bool bound;
67741 	const struct component_master_ops *ops;
67742 	struct device *parent;
67743 	struct component_match *match;
67744 };
67745 
67746 struct fwnode_link {
67747 	struct fwnode_handle *supplier;
67748 	struct list_head s_hook;
67749 	struct fwnode_handle *consumer;
67750 	struct list_head c_hook;
67751 };
67752 
67753 enum dpm_order {
67754 	DPM_ORDER_NONE = 0,
67755 	DPM_ORDER_DEV_AFTER_PARENT = 1,
67756 	DPM_ORDER_PARENT_BEFORE_DEV = 2,
67757 	DPM_ORDER_DEV_LAST = 3,
67758 };
67759 
67760 struct subsys_private {
67761 	struct kset subsys;
67762 	struct kset *devices_kset;
67763 	struct list_head interfaces;
67764 	struct mutex mutex;
67765 	struct kset *drivers_kset;
67766 	struct klist klist_devices;
67767 	struct klist klist_drivers;
67768 	struct blocking_notifier_head bus_notifier;
67769 	unsigned int drivers_autoprobe: 1;
67770 	struct bus_type *bus;
67771 	struct kset glue_dirs;
67772 	struct class *class;
67773 };
67774 
67775 struct class_interface {
67776 	struct list_head node;
67777 	struct class *class;
67778 	int (*add_dev)(struct device *, struct class_interface *);
67779 	void (*remove_dev)(struct device *, struct class_interface *);
67780 };
67781 
67782 struct driver_private {
67783 	struct kobject kobj;
67784 	struct klist klist_devices;
67785 	struct klist_node knode_bus;
67786 	struct module_kobject *mkobj;
67787 	struct device_driver *driver;
67788 };
67789 
67790 struct device_private {
67791 	struct klist klist_children;
67792 	struct klist_node knode_parent;
67793 	struct klist_node knode_driver;
67794 	struct klist_node knode_bus;
67795 	struct klist_node knode_class;
67796 	struct list_head deferred_probe;
67797 	struct device_driver *async_driver;
67798 	char *deferred_probe_reason;
67799 	struct device *device;
67800 	u8 dead: 1;
67801 };
67802 
67803 union device_attr_group_devres {
67804 	const struct attribute_group *group;
67805 	const struct attribute_group **groups;
67806 };
67807 
67808 struct class_dir {
67809 	struct kobject kobj;
67810 	struct class *class;
67811 };
67812 
67813 struct root_device {
67814 	struct device dev;
67815 	struct module *owner;
67816 };
67817 
67818 struct subsys_dev_iter {
67819 	struct klist_iter ki;
67820 	const struct device_type *type;
67821 };
67822 
67823 struct subsys_interface {
67824 	const char *name;
67825 	struct bus_type *subsys;
67826 	struct list_head node;
67827 	int (*add_dev)(struct device *, struct subsys_interface *);
67828 	void (*remove_dev)(struct device *, struct subsys_interface *);
67829 };
67830 
67831 struct device_attach_data {
67832 	struct device *dev;
67833 	bool check_async;
67834 	bool want_async;
67835 	bool have_async;
67836 };
67837 
67838 struct class_attribute {
67839 	struct attribute attr;
67840 	ssize_t (*show)(struct class *, struct class_attribute *, char *);
67841 	ssize_t (*store)(struct class *, struct class_attribute *, const char *, size_t);
67842 };
67843 
67844 struct class_attribute_string {
67845 	struct class_attribute attr;
67846 	char *str;
67847 };
67848 
67849 struct class_compat {
67850 	struct kobject *kobj;
67851 };
67852 
67853 struct irq_affinity_devres {
67854 	unsigned int count;
67855 	unsigned int irq[0];
67856 };
67857 
67858 struct platform_object {
67859 	struct platform_device pdev;
67860 	char name[0];
67861 };
67862 
67863 struct cpu_attr {
67864 	struct device_attribute attr;
67865 	const struct cpumask * const map;
67866 };
67867 
67868 typedef struct kobject *kobj_probe_t(dev_t, int *, void *);
67869 
67870 struct probe {
67871 	struct probe *next;
67872 	dev_t dev;
67873 	long unsigned int range;
67874 	struct module *owner;
67875 	kobj_probe_t *get;
67876 	int (*lock)(dev_t, void *);
67877 	void *data;
67878 };
67879 
67880 struct kobj_map___2 {
67881 	struct probe *probes[255];
67882 	struct mutex *lock;
67883 };
67884 
67885 typedef void (*dr_release_t)(struct device *, void *);
67886 
67887 typedef int (*dr_match_t)(struct device *, void *, void *);
67888 
67889 struct devres_node {
67890 	struct list_head entry;
67891 	dr_release_t release;
67892 	const char *name;
67893 	size_t size;
67894 };
67895 
67896 struct devres {
67897 	struct devres_node node;
67898 	u8 data[0];
67899 };
67900 
67901 struct devres_group {
67902 	struct devres_node node[2];
67903 	void *id;
67904 	int color;
67905 };
67906 
67907 struct action_devres {
67908 	void *data;
67909 	void (*action)(void *);
67910 };
67911 
67912 struct pages_devres {
67913 	long unsigned int addr;
67914 	unsigned int order;
67915 };
67916 
67917 struct attribute_container {
67918 	struct list_head node;
67919 	struct klist containers;
67920 	struct class *class;
67921 	const struct attribute_group *grp;
67922 	struct device_attribute **attrs;
67923 	int (*match)(struct attribute_container *, struct device *);
67924 	long unsigned int flags;
67925 };
67926 
67927 struct internal_container {
67928 	struct klist_node node;
67929 	struct attribute_container *cont;
67930 	struct device classdev;
67931 };
67932 
67933 struct transport_container;
67934 
67935 struct transport_class {
67936 	struct class class;
67937 	int (*setup)(struct transport_container *, struct device *, struct device *);
67938 	int (*configure)(struct transport_container *, struct device *, struct device *);
67939 	int (*remove)(struct transport_container *, struct device *, struct device *);
67940 };
67941 
67942 struct transport_container {
67943 	struct attribute_container ac;
67944 	const struct attribute_group *statistics;
67945 };
67946 
67947 struct anon_transport_class {
67948 	struct transport_class tclass;
67949 	struct attribute_container container;
67950 };
67951 
67952 typedef void * (*devcon_match_fn_t)(struct fwnode_handle *, const char *, void *);
67953 
67954 struct reset_control;
67955 
67956 struct mii_bus;
67957 
67958 struct mdio_device {
67959 	struct device dev;
67960 	struct mii_bus *bus;
67961 	char modalias[32];
67962 	int (*bus_match)(struct device *, struct device_driver *);
67963 	void (*device_free)(struct mdio_device *);
67964 	void (*device_remove)(struct mdio_device *);
67965 	int addr;
67966 	int flags;
67967 	struct gpio_desc *reset_gpio;
67968 	struct reset_control *reset_ctrl;
67969 	unsigned int reset_assert_delay;
67970 	unsigned int reset_deassert_delay;
67971 };
67972 
67973 struct phy_c45_device_ids {
67974 	u32 devices_in_package;
67975 	u32 mmds_present;
67976 	u32 device_ids[32];
67977 };
67978 
67979 enum phy_state {
67980 	PHY_DOWN = 0,
67981 	PHY_READY = 1,
67982 	PHY_HALTED = 2,
67983 	PHY_UP = 3,
67984 	PHY_RUNNING = 4,
67985 	PHY_NOLINK = 5,
67986 	PHY_CABLETEST = 6,
67987 };
67988 
67989 typedef enum {
67990 	PHY_INTERFACE_MODE_NA = 0,
67991 	PHY_INTERFACE_MODE_INTERNAL = 1,
67992 	PHY_INTERFACE_MODE_MII = 2,
67993 	PHY_INTERFACE_MODE_GMII = 3,
67994 	PHY_INTERFACE_MODE_SGMII = 4,
67995 	PHY_INTERFACE_MODE_TBI = 5,
67996 	PHY_INTERFACE_MODE_REVMII = 6,
67997 	PHY_INTERFACE_MODE_RMII = 7,
67998 	PHY_INTERFACE_MODE_REVRMII = 8,
67999 	PHY_INTERFACE_MODE_RGMII = 9,
68000 	PHY_INTERFACE_MODE_RGMII_ID = 10,
68001 	PHY_INTERFACE_MODE_RGMII_RXID = 11,
68002 	PHY_INTERFACE_MODE_RGMII_TXID = 12,
68003 	PHY_INTERFACE_MODE_RTBI = 13,
68004 	PHY_INTERFACE_MODE_SMII = 14,
68005 	PHY_INTERFACE_MODE_XGMII = 15,
68006 	PHY_INTERFACE_MODE_XLGMII = 16,
68007 	PHY_INTERFACE_MODE_MOCA = 17,
68008 	PHY_INTERFACE_MODE_QSGMII = 18,
68009 	PHY_INTERFACE_MODE_TRGMII = 19,
68010 	PHY_INTERFACE_MODE_100BASEX = 20,
68011 	PHY_INTERFACE_MODE_1000BASEX = 21,
68012 	PHY_INTERFACE_MODE_2500BASEX = 22,
68013 	PHY_INTERFACE_MODE_5GBASER = 23,
68014 	PHY_INTERFACE_MODE_RXAUI = 24,
68015 	PHY_INTERFACE_MODE_XAUI = 25,
68016 	PHY_INTERFACE_MODE_10GBASER = 26,
68017 	PHY_INTERFACE_MODE_25GBASER = 27,
68018 	PHY_INTERFACE_MODE_USXGMII = 28,
68019 	PHY_INTERFACE_MODE_10GKR = 29,
68020 	PHY_INTERFACE_MODE_MAX = 30,
68021 } phy_interface_t;
68022 
68023 struct phylink;
68024 
68025 struct phy_driver;
68026 
68027 struct phy_package_shared;
68028 
68029 struct mii_timestamper;
68030 
68031 struct phy_device {
68032 	struct mdio_device mdio;
68033 	struct phy_driver *drv;
68034 	u32 phy_id;
68035 	struct phy_c45_device_ids c45_ids;
68036 	unsigned int is_c45: 1;
68037 	unsigned int is_internal: 1;
68038 	unsigned int is_pseudo_fixed_link: 1;
68039 	unsigned int is_gigabit_capable: 1;
68040 	unsigned int has_fixups: 1;
68041 	unsigned int suspended: 1;
68042 	unsigned int suspended_by_mdio_bus: 1;
68043 	unsigned int sysfs_links: 1;
68044 	unsigned int loopback_enabled: 1;
68045 	unsigned int downshifted_rate: 1;
68046 	unsigned int is_on_sfp_module: 1;
68047 	unsigned int mac_managed_pm: 1;
68048 	unsigned int autoneg: 1;
68049 	unsigned int link: 1;
68050 	unsigned int autoneg_complete: 1;
68051 	unsigned int interrupts: 1;
68052 	enum phy_state state;
68053 	u32 dev_flags;
68054 	phy_interface_t interface;
68055 	int speed;
68056 	int duplex;
68057 	int port;
68058 	int pause;
68059 	int asym_pause;
68060 	u8 master_slave_get;
68061 	u8 master_slave_set;
68062 	u8 master_slave_state;
68063 	long unsigned int supported[2];
68064 	long unsigned int advertising[2];
68065 	long unsigned int lp_advertising[2];
68066 	long unsigned int adv_old[2];
68067 	u32 eee_broken_modes;
68068 	int irq;
68069 	void *priv;
68070 	struct phy_package_shared *shared;
68071 	struct sk_buff *skb;
68072 	void *ehdr;
68073 	struct nlattr *nest;
68074 	struct delayed_work state_queue;
68075 	struct mutex lock;
68076 	bool sfp_bus_attached;
68077 	struct sfp_bus *sfp_bus;
68078 	struct phylink *phylink;
68079 	struct net_device *attached_dev;
68080 	struct mii_timestamper *mii_ts;
68081 	u8 mdix;
68082 	u8 mdix_ctrl;
68083 	void (*phy_link_change)(struct phy_device *, bool);
68084 	void (*adjust_link)(struct net_device *);
68085 };
68086 
68087 struct phy_tdr_config {
68088 	u32 first;
68089 	u32 last;
68090 	u32 step;
68091 	s8 pair;
68092 };
68093 
68094 struct mdio_bus_stats {
68095 	u64_stats_t transfers;
68096 	u64_stats_t errors;
68097 	u64_stats_t writes;
68098 	u64_stats_t reads;
68099 	struct u64_stats_sync syncp;
68100 };
68101 
68102 struct mii_bus {
68103 	struct module *owner;
68104 	const char *name;
68105 	char id[61];
68106 	void *priv;
68107 	int (*read)(struct mii_bus *, int, int);
68108 	int (*write)(struct mii_bus *, int, int, u16);
68109 	int (*reset)(struct mii_bus *);
68110 	struct mdio_bus_stats stats[32];
68111 	struct mutex mdio_lock;
68112 	struct device *parent;
68113 	enum {
68114 		MDIOBUS_ALLOCATED = 1,
68115 		MDIOBUS_REGISTERED = 2,
68116 		MDIOBUS_UNREGISTERED = 3,
68117 		MDIOBUS_RELEASED = 4,
68118 	} state;
68119 	struct device dev;
68120 	struct mdio_device *mdio_map[32];
68121 	u32 phy_mask;
68122 	u32 phy_ignore_ta_mask;
68123 	int irq[32];
68124 	int reset_delay_us;
68125 	int reset_post_delay_us;
68126 	struct gpio_desc *reset_gpiod;
68127 	enum {
68128 		MDIOBUS_NO_CAP = 0,
68129 		MDIOBUS_C22 = 1,
68130 		MDIOBUS_C45 = 2,
68131 		MDIOBUS_C22_C45 = 3,
68132 	} probe_capabilities;
68133 	struct mutex shared_lock;
68134 	struct phy_package_shared *shared[32];
68135 };
68136 
68137 struct mdio_driver_common {
68138 	struct device_driver driver;
68139 	int flags;
68140 };
68141 
68142 struct mii_timestamper {
68143 	bool (*rxtstamp)(struct mii_timestamper *, struct sk_buff *, int);
68144 	void (*txtstamp)(struct mii_timestamper *, struct sk_buff *, int);
68145 	int (*hwtstamp)(struct mii_timestamper *, struct ifreq *);
68146 	void (*link_state)(struct mii_timestamper *, struct phy_device *);
68147 	int (*ts_info)(struct mii_timestamper *, struct ethtool_ts_info *);
68148 	struct device *device;
68149 };
68150 
68151 struct phy_package_shared {
68152 	int addr;
68153 	refcount_t refcnt;
68154 	long unsigned int flags;
68155 	size_t priv_size;
68156 	void *priv;
68157 };
68158 
68159 struct phy_driver {
68160 	struct mdio_driver_common mdiodrv;
68161 	u32 phy_id;
68162 	char *name;
68163 	u32 phy_id_mask;
68164 	const long unsigned int * const features;
68165 	u32 flags;
68166 	const void *driver_data;
68167 	int (*soft_reset)(struct phy_device *);
68168 	int (*config_init)(struct phy_device *);
68169 	int (*probe)(struct phy_device *);
68170 	int (*get_features)(struct phy_device *);
68171 	int (*suspend)(struct phy_device *);
68172 	int (*resume)(struct phy_device *);
68173 	int (*config_aneg)(struct phy_device *);
68174 	int (*aneg_done)(struct phy_device *);
68175 	int (*read_status)(struct phy_device *);
68176 	int (*config_intr)(struct phy_device *);
68177 	irqreturn_t (*handle_interrupt)(struct phy_device *);
68178 	void (*remove)(struct phy_device *);
68179 	int (*match_phy_device)(struct phy_device *);
68180 	int (*set_wol)(struct phy_device *, struct ethtool_wolinfo *);
68181 	void (*get_wol)(struct phy_device *, struct ethtool_wolinfo *);
68182 	void (*link_change_notify)(struct phy_device *);
68183 	int (*read_mmd)(struct phy_device *, int, u16);
68184 	int (*write_mmd)(struct phy_device *, int, u16, u16);
68185 	int (*read_page)(struct phy_device *);
68186 	int (*write_page)(struct phy_device *, int);
68187 	int (*module_info)(struct phy_device *, struct ethtool_modinfo *);
68188 	int (*module_eeprom)(struct phy_device *, struct ethtool_eeprom *, u8 *);
68189 	int (*cable_test_start)(struct phy_device *);
68190 	int (*cable_test_tdr_start)(struct phy_device *, const struct phy_tdr_config *);
68191 	int (*cable_test_get_status)(struct phy_device *, bool *);
68192 	int (*get_sset_count)(struct phy_device *);
68193 	void (*get_strings)(struct phy_device *, u8 *);
68194 	void (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *);
68195 	int (*get_tunable)(struct phy_device *, struct ethtool_tunable *, void *);
68196 	int (*set_tunable)(struct phy_device *, struct ethtool_tunable *, const void *);
68197 	int (*set_loopback)(struct phy_device *, bool);
68198 	int (*get_sqi)(struct phy_device *);
68199 	int (*get_sqi_max)(struct phy_device *);
68200 };
68201 
68202 struct software_node_ref_args {
68203 	const struct software_node *node;
68204 	unsigned int nargs;
68205 	u64 args[8];
68206 };
68207 
68208 struct swnode {
68209 	struct kobject kobj;
68210 	struct fwnode_handle fwnode;
68211 	const struct software_node *node;
68212 	int id;
68213 	struct ida child_ids;
68214 	struct list_head entry;
68215 	struct list_head children;
68216 	struct swnode *parent;
68217 	unsigned int allocated: 1;
68218 	unsigned int managed: 1;
68219 };
68220 
68221 struct req {
68222 	struct req *next;
68223 	struct completion done;
68224 	int err;
68225 	const char *name;
68226 	umode_t mode;
68227 	kuid_t uid;
68228 	kgid_t gid;
68229 	struct device *dev;
68230 };
68231 
68232 struct pm_clk_notifier_block {
68233 	struct notifier_block nb;
68234 	struct dev_pm_domain *pm_domain;
68235 	char *con_ids[0];
68236 };
68237 
68238 struct firmware_fallback_config {
68239 	unsigned int force_sysfs_fallback;
68240 	unsigned int ignore_sysfs_fallback;
68241 	int old_timeout;
68242 	int loading_timeout;
68243 };
68244 
68245 struct firmware {
68246 	size_t size;
68247 	const u8 *data;
68248 	void *priv;
68249 };
68250 
68251 enum fw_opt {
68252 	FW_OPT_UEVENT = 1,
68253 	FW_OPT_NOWAIT = 2,
68254 	FW_OPT_USERHELPER = 4,
68255 	FW_OPT_NO_WARN = 8,
68256 	FW_OPT_NOCACHE = 16,
68257 	FW_OPT_NOFALLBACK_SYSFS = 32,
68258 	FW_OPT_FALLBACK_PLATFORM = 64,
68259 	FW_OPT_PARTIAL = 128,
68260 };
68261 
68262 enum fw_status {
68263 	FW_STATUS_UNKNOWN = 0,
68264 	FW_STATUS_LOADING = 1,
68265 	FW_STATUS_DONE = 2,
68266 	FW_STATUS_ABORTED = 3,
68267 };
68268 
68269 struct fw_state {
68270 	struct completion completion;
68271 	enum fw_status status;
68272 };
68273 
68274 struct firmware_cache;
68275 
68276 struct fw_priv {
68277 	struct kref ref;
68278 	struct list_head list;
68279 	struct firmware_cache *fwc;
68280 	struct fw_state fw_st;
68281 	void *data;
68282 	size_t size;
68283 	size_t allocated_size;
68284 	size_t offset;
68285 	u32 opt_flags;
68286 	bool is_paged_buf;
68287 	struct page **pages;
68288 	int nr_pages;
68289 	int page_array_size;
68290 	bool need_uevent;
68291 	struct list_head pending_list;
68292 	const char *fw_name;
68293 };
68294 
68295 struct firmware_cache {
68296 	spinlock_t lock;
68297 	struct list_head head;
68298 	int state;
68299 };
68300 
68301 struct firmware_work {
68302 	struct work_struct work;
68303 	struct module *module;
68304 	const char *name;
68305 	struct device *device;
68306 	void *context;
68307 	void (*cont)(const struct firmware *, void *);
68308 	u32 opt_flags;
68309 };
68310 
68311 struct fw_sysfs {
68312 	bool nowait;
68313 	struct device dev;
68314 	struct fw_priv *fw_priv;
68315 	struct firmware *fw;
68316 };
68317 
68318 struct builtin_fw {
68319 	char *name;
68320 	void *data;
68321 	long unsigned int size;
68322 };
68323 
68324 typedef void (*node_registration_func_t)(struct node *);
68325 
68326 struct node_access_nodes {
68327 	struct device dev;
68328 	struct list_head list_node;
68329 	unsigned int access;
68330 };
68331 
68332 struct node_attr {
68333 	struct device_attribute attr;
68334 	enum node_states state;
68335 };
68336 
68337 typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *);
68338 
68339 struct platform_msi_priv_data {
68340 	struct device *dev;
68341 	void *host_data;
68342 	msi_alloc_info_t arg;
68343 	irq_write_msi_msg_t write_msg;
68344 	int devid;
68345 };
68346 
68347 struct trace_event_raw_devres {
68348 	struct trace_entry ent;
68349 	u32 __data_loc_devname;
68350 	struct device *dev;
68351 	const char *op;
68352 	void *node;
68353 	const char *name;
68354 	size_t size;
68355 	char __data[0];
68356 };
68357 
68358 struct trace_event_data_offsets_devres {
68359 	u32 devname;
68360 };
68361 
68362 typedef void (*btf_trace_devres_log)(void *, struct device *, const char *, void *, const char *, size_t);
68363 
68364 struct brd_device {
68365 	int brd_number;
68366 	struct gendisk *brd_disk;
68367 	struct list_head brd_list;
68368 	spinlock_t brd_lock;
68369 	struct xarray brd_pages;
68370 	u64 brd_nr_pages;
68371 };
68372 
68373 typedef long unsigned int __kernel_old_dev_t;
68374 
68375 enum {
68376 	LO_FLAGS_READ_ONLY = 1,
68377 	LO_FLAGS_AUTOCLEAR = 4,
68378 	LO_FLAGS_PARTSCAN = 8,
68379 	LO_FLAGS_DIRECT_IO = 16,
68380 };
68381 
68382 struct loop_info {
68383 	int lo_number;
68384 	__kernel_old_dev_t lo_device;
68385 	long unsigned int lo_inode;
68386 	__kernel_old_dev_t lo_rdevice;
68387 	int lo_offset;
68388 	int lo_encrypt_type;
68389 	int lo_encrypt_key_size;
68390 	int lo_flags;
68391 	char lo_name[64];
68392 	unsigned char lo_encrypt_key[32];
68393 	long unsigned int lo_init[2];
68394 	char reserved[4];
68395 };
68396 
68397 struct loop_info64 {
68398 	__u64 lo_device;
68399 	__u64 lo_inode;
68400 	__u64 lo_rdevice;
68401 	__u64 lo_offset;
68402 	__u64 lo_sizelimit;
68403 	__u32 lo_number;
68404 	__u32 lo_encrypt_type;
68405 	__u32 lo_encrypt_key_size;
68406 	__u32 lo_flags;
68407 	__u8 lo_file_name[64];
68408 	__u8 lo_crypt_name[64];
68409 	__u8 lo_encrypt_key[32];
68410 	__u64 lo_init[2];
68411 };
68412 
68413 struct loop_config {
68414 	__u32 fd;
68415 	__u32 block_size;
68416 	struct loop_info64 info;
68417 	__u64 __reserved[8];
68418 };
68419 
68420 enum {
68421 	Lo_unbound = 0,
68422 	Lo_bound = 1,
68423 	Lo_rundown = 2,
68424 	Lo_deleting = 3,
68425 };
68426 
68427 struct loop_device {
68428 	int lo_number;
68429 	atomic_t lo_refcnt;
68430 	loff_t lo_offset;
68431 	loff_t lo_sizelimit;
68432 	int lo_flags;
68433 	char lo_file_name[64];
68434 	struct file *lo_backing_file;
68435 	struct block_device *lo_device;
68436 	gfp_t old_gfp_mask;
68437 	spinlock_t lo_lock;
68438 	int lo_state;
68439 	spinlock_t lo_work_lock;
68440 	struct workqueue_struct *workqueue;
68441 	struct work_struct rootcg_work;
68442 	struct list_head rootcg_cmd_list;
68443 	struct list_head idle_worker_list;
68444 	struct rb_root worker_tree;
68445 	struct timer_list timer;
68446 	bool use_dio;
68447 	bool sysfs_inited;
68448 	struct request_queue *lo_queue;
68449 	struct blk_mq_tag_set tag_set;
68450 	struct gendisk *lo_disk;
68451 	struct mutex lo_mutex;
68452 	bool idr_visible;
68453 	struct work_struct rundown_work;
68454 };
68455 
68456 struct loop_cmd {
68457 	struct list_head list_entry;
68458 	bool use_aio;
68459 	atomic_t ref;
68460 	long int ret;
68461 	struct kiocb iocb;
68462 	struct bio_vec *bvec;
68463 	struct cgroup_subsys_state *blkcg_css;
68464 	struct cgroup_subsys_state *memcg_css;
68465 };
68466 
68467 struct loop_worker {
68468 	struct rb_node rb_node;
68469 	struct work_struct work;
68470 	struct list_head cmd_list;
68471 	struct list_head idle_list;
68472 	struct loop_device *lo;
68473 	struct cgroup_subsys_state *blkcg_css;
68474 	long unsigned int last_ran_at;
68475 };
68476 
68477 struct virtio_blk_geometry {
68478 	__virtio16 cylinders;
68479 	__u8 heads;
68480 	__u8 sectors;
68481 };
68482 
68483 struct virtio_blk_config {
68484 	__virtio64 capacity;
68485 	__virtio32 size_max;
68486 	__virtio32 seg_max;
68487 	struct virtio_blk_geometry geometry;
68488 	__virtio32 blk_size;
68489 	__u8 physical_block_exp;
68490 	__u8 alignment_offset;
68491 	__virtio16 min_io_size;
68492 	__virtio32 opt_io_size;
68493 	__u8 wce;
68494 	__u8 unused;
68495 	__virtio16 num_queues;
68496 	__virtio32 max_discard_sectors;
68497 	__virtio32 max_discard_seg;
68498 	__virtio32 discard_sector_alignment;
68499 	__virtio32 max_write_zeroes_sectors;
68500 	__virtio32 max_write_zeroes_seg;
68501 	__u8 write_zeroes_may_unmap;
68502 	__u8 unused1[3];
68503 } __attribute__((packed));
68504 
68505 struct virtio_blk_outhdr {
68506 	__virtio32 type;
68507 	__virtio32 ioprio;
68508 	__virtio64 sector;
68509 };
68510 
68511 struct virtio_blk_discard_write_zeroes {
68512 	__le64 sector;
68513 	__le32 num_sectors;
68514 	__le32 flags;
68515 };
68516 
68517 struct virtio_blk_vq {
68518 	struct virtqueue *vq;
68519 	spinlock_t lock;
68520 	char name[16];
68521 	long: 64;
68522 	long: 64;
68523 	long: 64;
68524 	long: 64;
68525 	long: 64;
68526 };
68527 
68528 struct virtio_blk {
68529 	struct mutex vdev_mutex;
68530 	struct virtio_device *vdev;
68531 	struct gendisk *disk;
68532 	struct blk_mq_tag_set tag_set;
68533 	struct work_struct config_work;
68534 	refcount_t refs;
68535 	unsigned int sg_elems;
68536 	int index;
68537 	int num_vqs;
68538 	struct virtio_blk_vq *vqs;
68539 };
68540 
68541 struct virtblk_req {
68542 	struct virtio_blk_outhdr out_hdr;
68543 	u8 status;
68544 	struct sg_table sg_table;
68545 	struct scatterlist sg[0];
68546 };
68547 
68548 struct seqcount_ww_mutex {
68549 	seqcount_t seqcount;
68550 	struct ww_mutex *lock;
68551 };
68552 
68553 typedef struct seqcount_ww_mutex seqcount_ww_mutex_t;
68554 
68555 struct dma_buf_map {
68556 	union {
68557 		void *vaddr_iomem;
68558 		void *vaddr;
68559 	};
68560 	bool is_iomem;
68561 };
68562 
68563 struct dma_fence_ops;
68564 
68565 struct dma_fence {
68566 	spinlock_t *lock;
68567 	const struct dma_fence_ops *ops;
68568 	union {
68569 		struct list_head cb_list;
68570 		ktime_t timestamp;
68571 		struct callback_head rcu;
68572 	};
68573 	u64 context;
68574 	u64 seqno;
68575 	long unsigned int flags;
68576 	struct kref refcount;
68577 	int error;
68578 };
68579 
68580 struct dma_fence_ops {
68581 	bool use_64bit_seqno;
68582 	const char * (*get_driver_name)(struct dma_fence *);
68583 	const char * (*get_timeline_name)(struct dma_fence *);
68584 	bool (*enable_signaling)(struct dma_fence *);
68585 	bool (*signaled)(struct dma_fence *);
68586 	long int (*wait)(struct dma_fence *, bool, long int);
68587 	void (*release)(struct dma_fence *);
68588 	void (*fence_value_str)(struct dma_fence *, char *, int);
68589 	void (*timeline_value_str)(struct dma_fence *, char *, int);
68590 };
68591 
68592 struct dma_fence_cb;
68593 
68594 typedef void (*dma_fence_func_t)(struct dma_fence *, struct dma_fence_cb *);
68595 
68596 struct dma_fence_cb {
68597 	struct list_head node;
68598 	dma_fence_func_t func;
68599 };
68600 
68601 struct dma_buf;
68602 
68603 struct dma_buf_attachment;
68604 
68605 struct dma_buf_ops {
68606 	bool cache_sgt_mapping;
68607 	int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
68608 	void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
68609 	int (*pin)(struct dma_buf_attachment *);
68610 	void (*unpin)(struct dma_buf_attachment *);
68611 	struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
68612 	void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
68613 	void (*release)(struct dma_buf *);
68614 	int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
68615 	int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
68616 	int (*mmap)(struct dma_buf *, struct vm_area_struct *);
68617 	int (*vmap)(struct dma_buf *, struct dma_buf_map *);
68618 	void (*vunmap)(struct dma_buf *, struct dma_buf_map *);
68619 };
68620 
68621 struct dma_buf_poll_cb_t {
68622 	struct dma_fence_cb cb;
68623 	wait_queue_head_t *poll;
68624 	__poll_t active;
68625 };
68626 
68627 struct dma_resv;
68628 
68629 struct dma_buf {
68630 	size_t size;
68631 	struct file *file;
68632 	struct list_head attachments;
68633 	const struct dma_buf_ops *ops;
68634 	struct mutex lock;
68635 	unsigned int vmapping_counter;
68636 	struct dma_buf_map vmap_ptr;
68637 	const char *exp_name;
68638 	const char *name;
68639 	spinlock_t name_lock;
68640 	struct module *owner;
68641 	struct list_head list_node;
68642 	void *priv;
68643 	struct dma_resv *resv;
68644 	wait_queue_head_t poll;
68645 	struct dma_buf_poll_cb_t cb_in;
68646 	struct dma_buf_poll_cb_t cb_out;
68647 };
68648 
68649 struct dma_buf_attach_ops;
68650 
68651 struct dma_buf_attachment {
68652 	struct dma_buf *dmabuf;
68653 	struct device *dev;
68654 	struct list_head node;
68655 	struct sg_table *sgt;
68656 	enum dma_data_direction dir;
68657 	bool peer2peer;
68658 	const struct dma_buf_attach_ops *importer_ops;
68659 	void *importer_priv;
68660 	void *priv;
68661 };
68662 
68663 struct dma_resv_list;
68664 
68665 struct dma_resv {
68666 	struct ww_mutex lock;
68667 	seqcount_ww_mutex_t seq;
68668 	struct dma_fence *fence_excl;
68669 	struct dma_resv_list *fence;
68670 };
68671 
68672 struct dma_buf_attach_ops {
68673 	bool allow_peer2peer;
68674 	void (*move_notify)(struct dma_buf_attachment *);
68675 };
68676 
68677 struct dma_buf_export_info {
68678 	const char *exp_name;
68679 	struct module *owner;
68680 	const struct dma_buf_ops *ops;
68681 	size_t size;
68682 	int flags;
68683 	struct dma_resv *resv;
68684 	void *priv;
68685 };
68686 
68687 struct dma_resv_list {
68688 	struct callback_head rcu;
68689 	u32 shared_count;
68690 	u32 shared_max;
68691 	struct dma_fence *shared[0];
68692 };
68693 
68694 struct dma_resv_iter {
68695 	struct dma_resv *obj;
68696 	bool all_fences;
68697 	struct dma_fence *fence;
68698 	unsigned int seq;
68699 	unsigned int index;
68700 	struct dma_resv_list *fences;
68701 	unsigned int shared_count;
68702 	bool is_restarted;
68703 };
68704 
68705 struct dma_buf_sync {
68706 	__u64 flags;
68707 };
68708 
68709 struct dma_buf_list {
68710 	struct list_head head;
68711 	struct mutex lock;
68712 };
68713 
68714 enum dma_fence_flag_bits {
68715 	DMA_FENCE_FLAG_SIGNALED_BIT = 0,
68716 	DMA_FENCE_FLAG_TIMESTAMP_BIT = 1,
68717 	DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT = 2,
68718 	DMA_FENCE_FLAG_USER_BITS = 3,
68719 };
68720 
68721 struct trace_event_raw_dma_fence {
68722 	struct trace_entry ent;
68723 	u32 __data_loc_driver;
68724 	u32 __data_loc_timeline;
68725 	unsigned int context;
68726 	unsigned int seqno;
68727 	char __data[0];
68728 };
68729 
68730 struct trace_event_data_offsets_dma_fence {
68731 	u32 driver;
68732 	u32 timeline;
68733 };
68734 
68735 typedef void (*btf_trace_dma_fence_emit)(void *, struct dma_fence *);
68736 
68737 typedef void (*btf_trace_dma_fence_init)(void *, struct dma_fence *);
68738 
68739 typedef void (*btf_trace_dma_fence_destroy)(void *, struct dma_fence *);
68740 
68741 typedef void (*btf_trace_dma_fence_enable_signal)(void *, struct dma_fence *);
68742 
68743 typedef void (*btf_trace_dma_fence_signaled)(void *, struct dma_fence *);
68744 
68745 typedef void (*btf_trace_dma_fence_wait_start)(void *, struct dma_fence *);
68746 
68747 typedef void (*btf_trace_dma_fence_wait_end)(void *, struct dma_fence *);
68748 
68749 struct default_wait_cb {
68750 	struct dma_fence_cb base;
68751 	struct task_struct *task;
68752 };
68753 
68754 struct dma_fence_array;
68755 
68756 struct dma_fence_array_cb {
68757 	struct dma_fence_cb cb;
68758 	struct dma_fence_array *array;
68759 };
68760 
68761 struct dma_fence_array {
68762 	struct dma_fence base;
68763 	spinlock_t lock;
68764 	unsigned int num_fences;
68765 	atomic_t num_pending;
68766 	struct dma_fence **fences;
68767 	struct irq_work work;
68768 };
68769 
68770 struct dma_fence_chain {
68771 	struct dma_fence base;
68772 	struct dma_fence *prev;
68773 	u64 prev_seqno;
68774 	struct dma_fence *fence;
68775 	union {
68776 		struct dma_fence_cb cb;
68777 		struct irq_work work;
68778 	};
68779 	spinlock_t lock;
68780 };
68781 
68782 struct sync_file {
68783 	struct file *file;
68784 	char user_name[32];
68785 	struct list_head sync_file_list;
68786 	wait_queue_head_t wq;
68787 	long unsigned int flags;
68788 	struct dma_fence *fence;
68789 	struct dma_fence_cb cb;
68790 };
68791 
68792 struct sync_merge_data {
68793 	char name[32];
68794 	__s32 fd2;
68795 	__s32 fence;
68796 	__u32 flags;
68797 	__u32 pad;
68798 };
68799 
68800 struct sync_fence_info {
68801 	char obj_name[32];
68802 	char driver_name[32];
68803 	__s32 status;
68804 	__u32 flags;
68805 	__u64 timestamp_ns;
68806 };
68807 
68808 struct sync_file_info {
68809 	char name[32];
68810 	__s32 status;
68811 	__u32 flags;
68812 	__u32 num_fences;
68813 	__u32 pad;
68814 	__u64 sync_fence_info;
68815 };
68816 
68817 enum {
68818 	NETIF_F_SG_BIT = 0,
68819 	NETIF_F_IP_CSUM_BIT = 1,
68820 	__UNUSED_NETIF_F_1 = 2,
68821 	NETIF_F_HW_CSUM_BIT = 3,
68822 	NETIF_F_IPV6_CSUM_BIT = 4,
68823 	NETIF_F_HIGHDMA_BIT = 5,
68824 	NETIF_F_FRAGLIST_BIT = 6,
68825 	NETIF_F_HW_VLAN_CTAG_TX_BIT = 7,
68826 	NETIF_F_HW_VLAN_CTAG_RX_BIT = 8,
68827 	NETIF_F_HW_VLAN_CTAG_FILTER_BIT = 9,
68828 	NETIF_F_VLAN_CHALLENGED_BIT = 10,
68829 	NETIF_F_GSO_BIT = 11,
68830 	NETIF_F_LLTX_BIT = 12,
68831 	NETIF_F_NETNS_LOCAL_BIT = 13,
68832 	NETIF_F_GRO_BIT = 14,
68833 	NETIF_F_LRO_BIT = 15,
68834 	NETIF_F_GSO_SHIFT = 16,
68835 	NETIF_F_TSO_BIT = 16,
68836 	NETIF_F_GSO_ROBUST_BIT = 17,
68837 	NETIF_F_TSO_ECN_BIT = 18,
68838 	NETIF_F_TSO_MANGLEID_BIT = 19,
68839 	NETIF_F_TSO6_BIT = 20,
68840 	NETIF_F_FSO_BIT = 21,
68841 	NETIF_F_GSO_GRE_BIT = 22,
68842 	NETIF_F_GSO_GRE_CSUM_BIT = 23,
68843 	NETIF_F_GSO_IPXIP4_BIT = 24,
68844 	NETIF_F_GSO_IPXIP6_BIT = 25,
68845 	NETIF_F_GSO_UDP_TUNNEL_BIT = 26,
68846 	NETIF_F_GSO_UDP_TUNNEL_CSUM_BIT = 27,
68847 	NETIF_F_GSO_PARTIAL_BIT = 28,
68848 	NETIF_F_GSO_TUNNEL_REMCSUM_BIT = 29,
68849 	NETIF_F_GSO_SCTP_BIT = 30,
68850 	NETIF_F_GSO_ESP_BIT = 31,
68851 	NETIF_F_GSO_UDP_BIT = 32,
68852 	NETIF_F_GSO_UDP_L4_BIT = 33,
68853 	NETIF_F_GSO_FRAGLIST_BIT = 34,
68854 	NETIF_F_GSO_LAST = 34,
68855 	NETIF_F_FCOE_CRC_BIT = 35,
68856 	NETIF_F_SCTP_CRC_BIT = 36,
68857 	NETIF_F_FCOE_MTU_BIT = 37,
68858 	NETIF_F_NTUPLE_BIT = 38,
68859 	NETIF_F_RXHASH_BIT = 39,
68860 	NETIF_F_RXCSUM_BIT = 40,
68861 	NETIF_F_NOCACHE_COPY_BIT = 41,
68862 	NETIF_F_LOOPBACK_BIT = 42,
68863 	NETIF_F_RXFCS_BIT = 43,
68864 	NETIF_F_RXALL_BIT = 44,
68865 	NETIF_F_HW_VLAN_STAG_TX_BIT = 45,
68866 	NETIF_F_HW_VLAN_STAG_RX_BIT = 46,
68867 	NETIF_F_HW_VLAN_STAG_FILTER_BIT = 47,
68868 	NETIF_F_HW_L2FW_DOFFLOAD_BIT = 48,
68869 	NETIF_F_HW_TC_BIT = 49,
68870 	NETIF_F_HW_ESP_BIT = 50,
68871 	NETIF_F_HW_ESP_TX_CSUM_BIT = 51,
68872 	NETIF_F_RX_UDP_TUNNEL_PORT_BIT = 52,
68873 	NETIF_F_HW_TLS_TX_BIT = 53,
68874 	NETIF_F_HW_TLS_RX_BIT = 54,
68875 	NETIF_F_GRO_HW_BIT = 55,
68876 	NETIF_F_HW_TLS_RECORD_BIT = 56,
68877 	NETIF_F_GRO_FRAGLIST_BIT = 57,
68878 	NETIF_F_HW_MACSEC_BIT = 58,
68879 	NETIF_F_GRO_UDP_FWD_BIT = 59,
68880 	NETIF_F_HW_HSR_TAG_INS_BIT = 60,
68881 	NETIF_F_HW_HSR_TAG_RM_BIT = 61,
68882 	NETIF_F_HW_HSR_FWD_BIT = 62,
68883 	NETIF_F_HW_HSR_DUP_BIT = 63,
68884 	NETDEV_FEATURE_COUNT = 64,
68885 };
68886 
68887 struct flow_dissector_key_control {
68888 	u16 thoff;
68889 	u16 addr_type;
68890 	u32 flags;
68891 };
68892 
68893 struct flow_dissector_key_basic {
68894 	__be16 n_proto;
68895 	u8 ip_proto;
68896 	u8 padding;
68897 };
68898 
68899 struct flow_dissector_key_tags {
68900 	u32 flow_label;
68901 };
68902 
68903 struct flow_dissector_key_vlan {
68904 	union {
68905 		struct {
68906 			u16 vlan_id: 12;
68907 			u16 vlan_dei: 1;
68908 			u16 vlan_priority: 3;
68909 		};
68910 		__be16 vlan_tci;
68911 	};
68912 	__be16 vlan_tpid;
68913 };
68914 
68915 struct flow_dissector_key_keyid {
68916 	__be32 keyid;
68917 };
68918 
68919 struct flow_dissector_key_ipv4_addrs {
68920 	__be32 src;
68921 	__be32 dst;
68922 };
68923 
68924 struct flow_dissector_key_ipv6_addrs {
68925 	struct in6_addr src;
68926 	struct in6_addr dst;
68927 };
68928 
68929 struct flow_dissector_key_tipc {
68930 	__be32 key;
68931 };
68932 
68933 struct flow_dissector_key_addrs {
68934 	union {
68935 		struct flow_dissector_key_ipv4_addrs v4addrs;
68936 		struct flow_dissector_key_ipv6_addrs v6addrs;
68937 		struct flow_dissector_key_tipc tipckey;
68938 	};
68939 };
68940 
68941 struct flow_dissector_key_ports {
68942 	union {
68943 		__be32 ports;
68944 		struct {
68945 			__be16 src;
68946 			__be16 dst;
68947 		};
68948 	};
68949 };
68950 
68951 struct flow_dissector_key_icmp {
68952 	struct {
68953 		u8 type;
68954 		u8 code;
68955 	};
68956 	u16 id;
68957 };
68958 
68959 struct flow_dissector_key {
68960 	enum flow_dissector_key_id key_id;
68961 	size_t offset;
68962 };
68963 
68964 struct flow_keys {
68965 	struct flow_dissector_key_control control;
68966 	struct flow_dissector_key_basic basic;
68967 	struct flow_dissector_key_tags tags;
68968 	struct flow_dissector_key_vlan vlan;
68969 	struct flow_dissector_key_vlan cvlan;
68970 	struct flow_dissector_key_keyid keyid;
68971 	struct flow_dissector_key_ports ports;
68972 	struct flow_dissector_key_icmp icmp;
68973 	struct flow_dissector_key_addrs addrs;
68974 	int: 32;
68975 };
68976 
68977 typedef struct bio_vec skb_frag_t;
68978 
68979 struct skb_shared_hwtstamps {
68980 	ktime_t hwtstamp;
68981 };
68982 
68983 struct skb_shared_info {
68984 	__u8 flags;
68985 	__u8 meta_len;
68986 	__u8 nr_frags;
68987 	__u8 tx_flags;
68988 	short unsigned int gso_size;
68989 	short unsigned int gso_segs;
68990 	struct sk_buff *frag_list;
68991 	struct skb_shared_hwtstamps hwtstamps;
68992 	unsigned int gso_type;
68993 	u32 tskey;
68994 	atomic_t dataref;
68995 	unsigned int xdp_frags_size;
68996 	void *destructor_arg;
68997 	skb_frag_t frags[17];
68998 };
68999 
69000 struct ipv4_devconf {
69001 	void *sysctl;
69002 	int data[33];
69003 	long unsigned int state[1];
69004 };
69005 
69006 struct rt6key {
69007 	struct in6_addr addr;
69008 	int plen;
69009 };
69010 
69011 struct rtable;
69012 
69013 struct fnhe_hash_bucket;
69014 
69015 struct fib_nh_common {
69016 	struct net_device *nhc_dev;
69017 	netdevice_tracker nhc_dev_tracker;
69018 	int nhc_oif;
69019 	unsigned char nhc_scope;
69020 	u8 nhc_family;
69021 	u8 nhc_gw_family;
69022 	unsigned char nhc_flags;
69023 	struct lwtunnel_state *nhc_lwtstate;
69024 	union {
69025 		__be32 ipv4;
69026 		struct in6_addr ipv6;
69027 	} nhc_gw;
69028 	int nhc_weight;
69029 	atomic_t nhc_upper_bound;
69030 	struct rtable **nhc_pcpu_rth_output;
69031 	struct rtable *nhc_rth_input;
69032 	struct fnhe_hash_bucket *nhc_exceptions;
69033 };
69034 
69035 struct rt6_exception_bucket;
69036 
69037 struct fib6_nh {
69038 	struct fib_nh_common nh_common;
69039 	long unsigned int last_probe;
69040 	struct rt6_info **rt6i_pcpu;
69041 	struct rt6_exception_bucket *rt6i_exception_bucket;
69042 };
69043 
69044 struct fib6_node;
69045 
69046 struct nexthop;
69047 
69048 struct fib6_info {
69049 	struct fib6_table *fib6_table;
69050 	struct fib6_info *fib6_next;
69051 	struct fib6_node *fib6_node;
69052 	union {
69053 		struct list_head fib6_siblings;
69054 		struct list_head nh_list;
69055 	};
69056 	unsigned int fib6_nsiblings;
69057 	refcount_t fib6_ref;
69058 	long unsigned int expires;
69059 	struct dst_metrics *fib6_metrics;
69060 	struct rt6key fib6_dst;
69061 	u32 fib6_flags;
69062 	struct rt6key fib6_src;
69063 	struct rt6key fib6_prefsrc;
69064 	u32 fib6_metric;
69065 	u8 fib6_protocol;
69066 	u8 fib6_type;
69067 	u8 should_flush: 1;
69068 	u8 dst_nocount: 1;
69069 	u8 dst_nopolicy: 1;
69070 	u8 fib6_destroying: 1;
69071 	u8 offload: 1;
69072 	u8 trap: 1;
69073 	u8 offload_failed: 1;
69074 	u8 unused: 1;
69075 	struct callback_head rcu;
69076 	struct nexthop *nh;
69077 	struct fib6_nh fib6_nh[0];
69078 };
69079 
69080 struct uncached_list;
69081 
69082 struct rt6_info {
69083 	struct dst_entry dst;
69084 	struct fib6_info *from;
69085 	int sernum;
69086 	struct rt6key rt6i_dst;
69087 	struct rt6key rt6i_src;
69088 	struct in6_addr rt6i_gateway;
69089 	struct inet6_dev *rt6i_idev;
69090 	u32 rt6i_flags;
69091 	struct list_head rt6i_uncached;
69092 	struct uncached_list *rt6i_uncached_list;
69093 	short unsigned int rt6i_nfheader_len;
69094 };
69095 
69096 struct rt6_statistics {
69097 	__u32 fib_nodes;
69098 	__u32 fib_route_nodes;
69099 	__u32 fib_rt_entries;
69100 	__u32 fib_rt_cache;
69101 	__u32 fib_discarded_routes;
69102 	atomic_t fib_rt_alloc;
69103 	atomic_t fib_rt_uncache;
69104 };
69105 
69106 struct fib6_node {
69107 	struct fib6_node *parent;
69108 	struct fib6_node *left;
69109 	struct fib6_node *right;
69110 	struct fib6_node *subtree;
69111 	struct fib6_info *leaf;
69112 	__u16 fn_bit;
69113 	__u16 fn_flags;
69114 	int fn_sernum;
69115 	struct fib6_info *rr_ptr;
69116 	struct callback_head rcu;
69117 };
69118 
69119 struct fib6_table {
69120 	struct hlist_node tb6_hlist;
69121 	u32 tb6_id;
69122 	spinlock_t tb6_lock;
69123 	struct fib6_node tb6_root;
69124 	struct inet_peer_base tb6_peers;
69125 	unsigned int flags;
69126 	unsigned int fib_seq;
69127 };
69128 
69129 struct ip_mreqn {
69130 	struct in_addr imr_multiaddr;
69131 	struct in_addr imr_address;
69132 	int imr_ifindex;
69133 };
69134 
69135 typedef union {
69136 	__be32 a4;
69137 	__be32 a6[4];
69138 	struct in6_addr in6;
69139 } xfrm_address_t;
69140 
69141 struct xfrm_id {
69142 	xfrm_address_t daddr;
69143 	__be32 spi;
69144 	__u8 proto;
69145 };
69146 
69147 struct xfrm_sec_ctx {
69148 	__u8 ctx_doi;
69149 	__u8 ctx_alg;
69150 	__u16 ctx_len;
69151 	__u32 ctx_sid;
69152 	char ctx_str[0];
69153 };
69154 
69155 struct xfrm_selector {
69156 	xfrm_address_t daddr;
69157 	xfrm_address_t saddr;
69158 	__be16 dport;
69159 	__be16 dport_mask;
69160 	__be16 sport;
69161 	__be16 sport_mask;
69162 	__u16 family;
69163 	__u8 prefixlen_d;
69164 	__u8 prefixlen_s;
69165 	__u8 proto;
69166 	int ifindex;
69167 	__kernel_uid32_t user;
69168 };
69169 
69170 struct xfrm_lifetime_cfg {
69171 	__u64 soft_byte_limit;
69172 	__u64 hard_byte_limit;
69173 	__u64 soft_packet_limit;
69174 	__u64 hard_packet_limit;
69175 	__u64 soft_add_expires_seconds;
69176 	__u64 hard_add_expires_seconds;
69177 	__u64 soft_use_expires_seconds;
69178 	__u64 hard_use_expires_seconds;
69179 };
69180 
69181 struct xfrm_lifetime_cur {
69182 	__u64 bytes;
69183 	__u64 packets;
69184 	__u64 add_time;
69185 	__u64 use_time;
69186 };
69187 
69188 struct xfrm_replay_state {
69189 	__u32 oseq;
69190 	__u32 seq;
69191 	__u32 bitmap;
69192 };
69193 
69194 struct xfrm_replay_state_esn {
69195 	unsigned int bmp_len;
69196 	__u32 oseq;
69197 	__u32 seq;
69198 	__u32 oseq_hi;
69199 	__u32 seq_hi;
69200 	__u32 replay_window;
69201 	__u32 bmp[0];
69202 };
69203 
69204 struct xfrm_algo {
69205 	char alg_name[64];
69206 	unsigned int alg_key_len;
69207 	char alg_key[0];
69208 };
69209 
69210 struct xfrm_algo_auth {
69211 	char alg_name[64];
69212 	unsigned int alg_key_len;
69213 	unsigned int alg_trunc_len;
69214 	char alg_key[0];
69215 };
69216 
69217 struct xfrm_algo_aead {
69218 	char alg_name[64];
69219 	unsigned int alg_key_len;
69220 	unsigned int alg_icv_len;
69221 	char alg_key[0];
69222 };
69223 
69224 struct xfrm_stats {
69225 	__u32 replay_window;
69226 	__u32 replay;
69227 	__u32 integrity_failed;
69228 };
69229 
69230 enum {
69231 	XFRM_POLICY_TYPE_MAIN = 0,
69232 	XFRM_POLICY_TYPE_SUB = 1,
69233 	XFRM_POLICY_TYPE_MAX = 2,
69234 	XFRM_POLICY_TYPE_ANY = 255,
69235 };
69236 
69237 struct xfrm_encap_tmpl {
69238 	__u16 encap_type;
69239 	__be16 encap_sport;
69240 	__be16 encap_dport;
69241 	xfrm_address_t encap_oa;
69242 };
69243 
69244 enum xfrm_attr_type_t {
69245 	XFRMA_UNSPEC = 0,
69246 	XFRMA_ALG_AUTH = 1,
69247 	XFRMA_ALG_CRYPT = 2,
69248 	XFRMA_ALG_COMP = 3,
69249 	XFRMA_ENCAP = 4,
69250 	XFRMA_TMPL = 5,
69251 	XFRMA_SA = 6,
69252 	XFRMA_POLICY = 7,
69253 	XFRMA_SEC_CTX = 8,
69254 	XFRMA_LTIME_VAL = 9,
69255 	XFRMA_REPLAY_VAL = 10,
69256 	XFRMA_REPLAY_THRESH = 11,
69257 	XFRMA_ETIMER_THRESH = 12,
69258 	XFRMA_SRCADDR = 13,
69259 	XFRMA_COADDR = 14,
69260 	XFRMA_LASTUSED = 15,
69261 	XFRMA_POLICY_TYPE = 16,
69262 	XFRMA_MIGRATE = 17,
69263 	XFRMA_ALG_AEAD = 18,
69264 	XFRMA_KMADDRESS = 19,
69265 	XFRMA_ALG_AUTH_TRUNC = 20,
69266 	XFRMA_MARK = 21,
69267 	XFRMA_TFCPAD = 22,
69268 	XFRMA_REPLAY_ESN_VAL = 23,
69269 	XFRMA_SA_EXTRA_FLAGS = 24,
69270 	XFRMA_PROTO = 25,
69271 	XFRMA_ADDRESS_FILTER = 26,
69272 	XFRMA_PAD = 27,
69273 	XFRMA_OFFLOAD_DEV = 28,
69274 	XFRMA_SET_MARK = 29,
69275 	XFRMA_SET_MARK_MASK = 30,
69276 	XFRMA_IF_ID = 31,
69277 	XFRMA_MTIMER_THRESH = 32,
69278 	__XFRMA_MAX = 33,
69279 };
69280 
69281 struct xfrm_mark {
69282 	__u32 v;
69283 	__u32 m;
69284 };
69285 
69286 struct xfrm_address_filter {
69287 	xfrm_address_t saddr;
69288 	xfrm_address_t daddr;
69289 	__u16 family;
69290 	__u8 splen;
69291 	__u8 dplen;
69292 };
69293 
69294 struct ifbond {
69295 	__s32 bond_mode;
69296 	__s32 num_slaves;
69297 	__s32 miimon;
69298 };
69299 
69300 typedef struct ifbond ifbond;
69301 
69302 struct ifslave {
69303 	__s32 slave_id;
69304 	char slave_name[16];
69305 	__s8 link;
69306 	__s8 state;
69307 	__u32 link_failure_count;
69308 };
69309 
69310 typedef struct ifslave ifslave;
69311 
69312 struct ad_info {
69313 	__u16 aggregator_id;
69314 	__u16 ports;
69315 	__u16 actor_key;
69316 	__u16 partner_key;
69317 	__u8 partner_system[6];
69318 };
69319 
69320 enum netdev_state_t {
69321 	__LINK_STATE_START = 0,
69322 	__LINK_STATE_PRESENT = 1,
69323 	__LINK_STATE_NOCARRIER = 2,
69324 	__LINK_STATE_LINKWATCH_PENDING = 3,
69325 	__LINK_STATE_DORMANT = 4,
69326 	__LINK_STATE_TESTING = 5,
69327 };
69328 
69329 struct in_ifaddr;
69330 
69331 struct ip_mc_list;
69332 
69333 struct in_device {
69334 	struct net_device *dev;
69335 	netdevice_tracker dev_tracker;
69336 	refcount_t refcnt;
69337 	int dead;
69338 	struct in_ifaddr *ifa_list;
69339 	struct ip_mc_list *mc_list;
69340 	struct ip_mc_list **mc_hash;
69341 	int mc_count;
69342 	spinlock_t mc_tomb_lock;
69343 	struct ip_mc_list *mc_tomb;
69344 	long unsigned int mr_v1_seen;
69345 	long unsigned int mr_v2_seen;
69346 	long unsigned int mr_maxdelay;
69347 	long unsigned int mr_qi;
69348 	long unsigned int mr_qri;
69349 	unsigned char mr_qrv;
69350 	unsigned char mr_gq_running;
69351 	u32 mr_ifc_count;
69352 	struct timer_list mr_gq_timer;
69353 	struct timer_list mr_ifc_timer;
69354 	struct neigh_parms *arp_parms;
69355 	struct ipv4_devconf cnf;
69356 	struct callback_head callback_head;
69357 };
69358 
69359 enum netdev_lag_tx_type {
69360 	NETDEV_LAG_TX_TYPE_UNKNOWN = 0,
69361 	NETDEV_LAG_TX_TYPE_RANDOM = 1,
69362 	NETDEV_LAG_TX_TYPE_BROADCAST = 2,
69363 	NETDEV_LAG_TX_TYPE_ROUNDROBIN = 3,
69364 	NETDEV_LAG_TX_TYPE_ACTIVEBACKUP = 4,
69365 	NETDEV_LAG_TX_TYPE_HASH = 5,
69366 };
69367 
69368 enum netdev_lag_hash {
69369 	NETDEV_LAG_HASH_NONE = 0,
69370 	NETDEV_LAG_HASH_L2 = 1,
69371 	NETDEV_LAG_HASH_L34 = 2,
69372 	NETDEV_LAG_HASH_L23 = 3,
69373 	NETDEV_LAG_HASH_E23 = 4,
69374 	NETDEV_LAG_HASH_E34 = 5,
69375 	NETDEV_LAG_HASH_VLAN_SRCMAC = 6,
69376 	NETDEV_LAG_HASH_UNKNOWN = 7,
69377 };
69378 
69379 struct netdev_lag_upper_info {
69380 	enum netdev_lag_tx_type tx_type;
69381 	enum netdev_lag_hash hash_type;
69382 };
69383 
69384 struct netdev_lag_lower_state_info {
69385 	u8 link_up: 1;
69386 	u8 tx_enabled: 1;
69387 };
69388 
69389 enum skb_free_reason {
69390 	SKB_REASON_CONSUMED = 0,
69391 	SKB_REASON_DROPPED = 1,
69392 };
69393 
69394 struct netdev_nested_priv {
69395 	unsigned char flags;
69396 	void *data;
69397 };
69398 
69399 struct netdev_bonding_info {
69400 	ifslave slave;
69401 	ifbond master;
69402 };
69403 
69404 enum rt_scope_t {
69405 	RT_SCOPE_UNIVERSE = 0,
69406 	RT_SCOPE_SITE = 200,
69407 	RT_SCOPE_LINK = 253,
69408 	RT_SCOPE_HOST = 254,
69409 	RT_SCOPE_NOWHERE = 255,
69410 };
69411 
69412 struct vlan_ethhdr {
69413 	unsigned char h_dest[6];
69414 	unsigned char h_source[6];
69415 	__be16 h_vlan_proto;
69416 	__be16 h_vlan_TCI;
69417 	__be16 h_vlan_encapsulated_proto;
69418 };
69419 
69420 struct qdisc_walker {
69421 	int stop;
69422 	int skip;
69423 	int count;
69424 	int (*fn)(struct Qdisc *, long unsigned int, struct qdisc_walker *);
69425 };
69426 
69427 enum {
69428 	IPV4_DEVCONF_FORWARDING = 1,
69429 	IPV4_DEVCONF_MC_FORWARDING = 2,
69430 	IPV4_DEVCONF_PROXY_ARP = 3,
69431 	IPV4_DEVCONF_ACCEPT_REDIRECTS = 4,
69432 	IPV4_DEVCONF_SECURE_REDIRECTS = 5,
69433 	IPV4_DEVCONF_SEND_REDIRECTS = 6,
69434 	IPV4_DEVCONF_SHARED_MEDIA = 7,
69435 	IPV4_DEVCONF_RP_FILTER = 8,
69436 	IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE = 9,
69437 	IPV4_DEVCONF_BOOTP_RELAY = 10,
69438 	IPV4_DEVCONF_LOG_MARTIANS = 11,
69439 	IPV4_DEVCONF_TAG = 12,
69440 	IPV4_DEVCONF_ARPFILTER = 13,
69441 	IPV4_DEVCONF_MEDIUM_ID = 14,
69442 	IPV4_DEVCONF_NOXFRM = 15,
69443 	IPV4_DEVCONF_NOPOLICY = 16,
69444 	IPV4_DEVCONF_FORCE_IGMP_VERSION = 17,
69445 	IPV4_DEVCONF_ARP_ANNOUNCE = 18,
69446 	IPV4_DEVCONF_ARP_IGNORE = 19,
69447 	IPV4_DEVCONF_PROMOTE_SECONDARIES = 20,
69448 	IPV4_DEVCONF_ARP_ACCEPT = 21,
69449 	IPV4_DEVCONF_ARP_NOTIFY = 22,
69450 	IPV4_DEVCONF_ACCEPT_LOCAL = 23,
69451 	IPV4_DEVCONF_SRC_VMARK = 24,
69452 	IPV4_DEVCONF_PROXY_ARP_PVLAN = 25,
69453 	IPV4_DEVCONF_ROUTE_LOCALNET = 26,
69454 	IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL = 27,
69455 	IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL = 28,
69456 	IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 29,
69457 	IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 30,
69458 	IPV4_DEVCONF_DROP_GRATUITOUS_ARP = 31,
69459 	IPV4_DEVCONF_BC_FORWARDING = 32,
69460 	IPV4_DEVCONF_ARP_EVICT_NOCARRIER = 33,
69461 	__IPV4_DEVCONF_MAX = 34,
69462 };
69463 
69464 struct xfrm_state_walk {
69465 	struct list_head all;
69466 	u8 state;
69467 	u8 dying;
69468 	u8 proto;
69469 	u32 seq;
69470 	struct xfrm_address_filter *filter;
69471 };
69472 
69473 enum xfrm_replay_mode {
69474 	XFRM_REPLAY_MODE_LEGACY = 0,
69475 	XFRM_REPLAY_MODE_BMP = 1,
69476 	XFRM_REPLAY_MODE_ESN = 2,
69477 };
69478 
69479 struct xfrm_state_offload {
69480 	struct net_device *dev;
69481 	netdevice_tracker dev_tracker;
69482 	struct net_device *real_dev;
69483 	long unsigned int offload_handle;
69484 	unsigned int num_exthdrs;
69485 	u8 flags;
69486 };
69487 
69488 struct xfrm_mode {
69489 	u8 encap;
69490 	u8 family;
69491 	u8 flags;
69492 };
69493 
69494 struct xfrm_type;
69495 
69496 struct xfrm_type_offload;
69497 
69498 struct xfrm_state {
69499 	possible_net_t xs_net;
69500 	union {
69501 		struct hlist_node gclist;
69502 		struct hlist_node bydst;
69503 	};
69504 	struct hlist_node bysrc;
69505 	struct hlist_node byspi;
69506 	struct hlist_node byseq;
69507 	refcount_t refcnt;
69508 	spinlock_t lock;
69509 	struct xfrm_id id;
69510 	struct xfrm_selector sel;
69511 	struct xfrm_mark mark;
69512 	u32 if_id;
69513 	u32 tfcpad;
69514 	u32 genid;
69515 	struct xfrm_state_walk km;
69516 	struct {
69517 		u32 reqid;
69518 		u8 mode;
69519 		u8 replay_window;
69520 		u8 aalgo;
69521 		u8 ealgo;
69522 		u8 calgo;
69523 		u8 flags;
69524 		u16 family;
69525 		xfrm_address_t saddr;
69526 		int header_len;
69527 		int trailer_len;
69528 		u32 extra_flags;
69529 		struct xfrm_mark smark;
69530 	} props;
69531 	struct xfrm_lifetime_cfg lft;
69532 	struct xfrm_algo_auth *aalg;
69533 	struct xfrm_algo *ealg;
69534 	struct xfrm_algo *calg;
69535 	struct xfrm_algo_aead *aead;
69536 	const char *geniv;
69537 	__be16 new_mapping_sport;
69538 	u32 new_mapping;
69539 	u32 mapping_maxage;
69540 	struct xfrm_encap_tmpl *encap;
69541 	struct sock *encap_sk;
69542 	xfrm_address_t *coaddr;
69543 	struct xfrm_state *tunnel;
69544 	atomic_t tunnel_users;
69545 	struct xfrm_replay_state replay;
69546 	struct xfrm_replay_state_esn *replay_esn;
69547 	struct xfrm_replay_state preplay;
69548 	struct xfrm_replay_state_esn *preplay_esn;
69549 	enum xfrm_replay_mode repl_mode;
69550 	u32 xflags;
69551 	u32 replay_maxage;
69552 	u32 replay_maxdiff;
69553 	struct timer_list rtimer;
69554 	struct xfrm_stats stats;
69555 	struct xfrm_lifetime_cur curlft;
69556 	struct hrtimer mtimer;
69557 	struct xfrm_state_offload xso;
69558 	long int saved_tmo;
69559 	time64_t lastused;
69560 	struct page_frag xfrag;
69561 	const struct xfrm_type *type;
69562 	struct xfrm_mode inner_mode;
69563 	struct xfrm_mode inner_mode_iaf;
69564 	struct xfrm_mode outer_mode;
69565 	const struct xfrm_type_offload *type_offload;
69566 	struct xfrm_sec_ctx *security;
69567 	void *data;
69568 };
69569 
69570 enum {
69571 	SOF_TIMESTAMPING_TX_HARDWARE = 1,
69572 	SOF_TIMESTAMPING_TX_SOFTWARE = 2,
69573 	SOF_TIMESTAMPING_RX_HARDWARE = 4,
69574 	SOF_TIMESTAMPING_RX_SOFTWARE = 8,
69575 	SOF_TIMESTAMPING_SOFTWARE = 16,
69576 	SOF_TIMESTAMPING_SYS_HARDWARE = 32,
69577 	SOF_TIMESTAMPING_RAW_HARDWARE = 64,
69578 	SOF_TIMESTAMPING_OPT_ID = 128,
69579 	SOF_TIMESTAMPING_TX_SCHED = 256,
69580 	SOF_TIMESTAMPING_TX_ACK = 512,
69581 	SOF_TIMESTAMPING_OPT_CMSG = 1024,
69582 	SOF_TIMESTAMPING_OPT_TSONLY = 2048,
69583 	SOF_TIMESTAMPING_OPT_STATS = 4096,
69584 	SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
69585 	SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
69586 	SOF_TIMESTAMPING_BIND_PHC = 32768,
69587 	SOF_TIMESTAMPING_LAST = 32768,
69588 	SOF_TIMESTAMPING_MASK = 65535,
69589 };
69590 
69591 struct hwtstamp_config {
69592 	int flags;
69593 	int tx_type;
69594 	int rx_filter;
69595 };
69596 
69597 enum hwtstamp_flags {
69598 	HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
69599 	HWTSTAMP_FLAG_LAST = 1,
69600 	HWTSTAMP_FLAG_MASK = 1,
69601 };
69602 
69603 struct xfrm_policy_walk_entry {
69604 	struct list_head all;
69605 	u8 dead;
69606 };
69607 
69608 struct xfrm_policy_queue {
69609 	struct sk_buff_head hold_queue;
69610 	struct timer_list hold_timer;
69611 	long unsigned int timeout;
69612 };
69613 
69614 struct xfrm_tmpl {
69615 	struct xfrm_id id;
69616 	xfrm_address_t saddr;
69617 	short unsigned int encap_family;
69618 	u32 reqid;
69619 	u8 mode;
69620 	u8 share;
69621 	u8 optional;
69622 	u8 allalgs;
69623 	u32 aalgos;
69624 	u32 ealgos;
69625 	u32 calgos;
69626 };
69627 
69628 struct xfrm_policy {
69629 	possible_net_t xp_net;
69630 	struct hlist_node bydst;
69631 	struct hlist_node byidx;
69632 	rwlock_t lock;
69633 	refcount_t refcnt;
69634 	u32 pos;
69635 	struct timer_list timer;
69636 	atomic_t genid;
69637 	u32 priority;
69638 	u32 index;
69639 	u32 if_id;
69640 	struct xfrm_mark mark;
69641 	struct xfrm_selector selector;
69642 	struct xfrm_lifetime_cfg lft;
69643 	struct xfrm_lifetime_cur curlft;
69644 	struct xfrm_policy_walk_entry walk;
69645 	struct xfrm_policy_queue polq;
69646 	bool bydst_reinsert;
69647 	u8 type;
69648 	u8 action;
69649 	u8 flags;
69650 	u8 xfrm_nr;
69651 	u16 family;
69652 	struct xfrm_sec_ctx *security;
69653 	struct xfrm_tmpl xfrm_vec[6];
69654 	struct hlist_node bydst_inexact_list;
69655 	struct callback_head rcu;
69656 };
69657 
69658 struct ip_sf_socklist;
69659 
69660 struct ip_mc_socklist {
69661 	struct ip_mc_socklist *next_rcu;
69662 	struct ip_mreqn multi;
69663 	unsigned int sfmode;
69664 	struct ip_sf_socklist *sflist;
69665 	struct callback_head rcu;
69666 };
69667 
69668 struct fib6_config {
69669 	u32 fc_table;
69670 	u32 fc_metric;
69671 	int fc_dst_len;
69672 	int fc_src_len;
69673 	int fc_ifindex;
69674 	u32 fc_flags;
69675 	u32 fc_protocol;
69676 	u16 fc_type;
69677 	u16 fc_delete_all_nh: 1;
69678 	u16 fc_ignore_dev_down: 1;
69679 	u16 __unused: 14;
69680 	u32 fc_nh_id;
69681 	struct in6_addr fc_dst;
69682 	struct in6_addr fc_src;
69683 	struct in6_addr fc_prefsrc;
69684 	struct in6_addr fc_gateway;
69685 	long unsigned int fc_expires;
69686 	struct nlattr *fc_mx;
69687 	int fc_mx_len;
69688 	int fc_mp_len;
69689 	struct nlattr *fc_mp;
69690 	struct nl_info fc_nlinfo;
69691 	struct nlattr *fc_encap;
69692 	u16 fc_encap_type;
69693 	bool fc_is_fdb;
69694 };
69695 
69696 struct arphdr {
69697 	__be16 ar_hrd;
69698 	__be16 ar_pro;
69699 	unsigned char ar_hln;
69700 	unsigned char ar_pln;
69701 	__be16 ar_op;
69702 };
69703 
69704 struct fib_nh_exception {
69705 	struct fib_nh_exception *fnhe_next;
69706 	int fnhe_genid;
69707 	__be32 fnhe_daddr;
69708 	u32 fnhe_pmtu;
69709 	bool fnhe_mtu_locked;
69710 	__be32 fnhe_gw;
69711 	long unsigned int fnhe_expires;
69712 	struct rtable *fnhe_rth_input;
69713 	struct rtable *fnhe_rth_output;
69714 	long unsigned int fnhe_stamp;
69715 	struct callback_head rcu;
69716 };
69717 
69718 struct rtable {
69719 	struct dst_entry dst;
69720 	int rt_genid;
69721 	unsigned int rt_flags;
69722 	__u16 rt_type;
69723 	__u8 rt_is_input;
69724 	__u8 rt_uses_gateway;
69725 	int rt_iif;
69726 	u8 rt_gw_family;
69727 	union {
69728 		__be32 rt_gw4;
69729 		struct in6_addr rt_gw6;
69730 	};
69731 	u32 rt_mtu_locked: 1;
69732 	u32 rt_pmtu: 31;
69733 	struct list_head rt_uncached;
69734 	struct uncached_list *rt_uncached_list;
69735 };
69736 
69737 struct fnhe_hash_bucket {
69738 	struct fib_nh_exception *chain;
69739 };
69740 
69741 struct in_ifaddr {
69742 	struct hlist_node hash;
69743 	struct in_ifaddr *ifa_next;
69744 	struct in_device *ifa_dev;
69745 	struct callback_head callback_head;
69746 	__be32 ifa_local;
69747 	__be32 ifa_address;
69748 	__be32 ifa_mask;
69749 	__u32 ifa_rt_priority;
69750 	__be32 ifa_broadcast;
69751 	unsigned char ifa_scope;
69752 	unsigned char ifa_prefixlen;
69753 	__u32 ifa_flags;
69754 	char ifa_label[16];
69755 	__u32 ifa_valid_lft;
69756 	__u32 ifa_preferred_lft;
69757 	long unsigned int ifa_cstamp;
69758 	long unsigned int ifa_tstamp;
69759 };
69760 
69761 struct ip_sf_list;
69762 
69763 struct ip_mc_list {
69764 	struct in_device *interface;
69765 	__be32 multiaddr;
69766 	unsigned int sfmode;
69767 	struct ip_sf_list *sources;
69768 	struct ip_sf_list *tomb;
69769 	long unsigned int sfcount[2];
69770 	union {
69771 		struct ip_mc_list *next;
69772 		struct ip_mc_list *next_rcu;
69773 	};
69774 	struct ip_mc_list *next_hash;
69775 	struct timer_list timer;
69776 	int users;
69777 	refcount_t refcnt;
69778 	spinlock_t lock;
69779 	char tm_running;
69780 	char reporter;
69781 	char unsolicit_count;
69782 	char loaded;
69783 	unsigned char gsquery;
69784 	unsigned char crcount;
69785 	struct callback_head rcu;
69786 };
69787 
69788 struct ip_sf_socklist {
69789 	unsigned int sl_max;
69790 	unsigned int sl_count;
69791 	struct callback_head rcu;
69792 	__be32 sl_addr[0];
69793 };
69794 
69795 struct ip_sf_list {
69796 	struct ip_sf_list *sf_next;
69797 	long unsigned int sf_count[2];
69798 	__be32 sf_inaddr;
69799 	unsigned char sf_gsresp;
69800 	unsigned char sf_oldin;
69801 	unsigned char sf_crcount;
69802 };
69803 
69804 struct mii_ioctl_data {
69805 	__u16 phy_id;
69806 	__u16 reg_num;
69807 	__u16 val_in;
69808 	__u16 val_out;
69809 };
69810 
69811 struct rt6_exception_bucket {
69812 	struct hlist_head chain;
69813 	int depth;
69814 };
69815 
69816 struct xfrm_type {
69817 	struct module *owner;
69818 	u8 proto;
69819 	u8 flags;
69820 	int (*init_state)(struct xfrm_state *);
69821 	void (*destructor)(struct xfrm_state *);
69822 	int (*input)(struct xfrm_state *, struct sk_buff *);
69823 	int (*output)(struct xfrm_state *, struct sk_buff *);
69824 	int (*reject)(struct xfrm_state *, struct sk_buff *, const struct flowi *);
69825 };
69826 
69827 struct xfrm_type_offload {
69828 	struct module *owner;
69829 	u8 proto;
69830 	void (*encap)(struct xfrm_state *, struct sk_buff *);
69831 	int (*input_tail)(struct xfrm_state *, struct sk_buff *);
69832 	int (*xmit)(struct xfrm_state *, struct sk_buff *, netdev_features_t);
69833 };
69834 
69835 struct mac_addr {
69836 	u8 mac_addr_value[6];
69837 };
69838 
69839 enum {
69840 	BOND_AD_STABLE = 0,
69841 	BOND_AD_BANDWIDTH = 1,
69842 	BOND_AD_COUNT = 2,
69843 };
69844 
69845 typedef enum {
69846 	AD_RX_DUMMY = 0,
69847 	AD_RX_INITIALIZE = 1,
69848 	AD_RX_PORT_DISABLED = 2,
69849 	AD_RX_LACP_DISABLED = 3,
69850 	AD_RX_EXPIRED = 4,
69851 	AD_RX_DEFAULTED = 5,
69852 	AD_RX_CURRENT = 6,
69853 } rx_states_t;
69854 
69855 typedef enum {
69856 	AD_PERIODIC_DUMMY = 0,
69857 	AD_NO_PERIODIC = 1,
69858 	AD_FAST_PERIODIC = 2,
69859 	AD_SLOW_PERIODIC = 3,
69860 	AD_PERIODIC_TX = 4,
69861 } periodic_states_t;
69862 
69863 typedef enum {
69864 	AD_MUX_DUMMY = 0,
69865 	AD_MUX_DETACHED = 1,
69866 	AD_MUX_WAITING = 2,
69867 	AD_MUX_ATTACHED = 3,
69868 	AD_MUX_COLLECTING_DISTRIBUTING = 4,
69869 } mux_states_t;
69870 
69871 typedef enum {
69872 	AD_TX_DUMMY = 0,
69873 	AD_TRANSMIT = 1,
69874 } tx_states_t;
69875 
69876 typedef enum {
69877 	AD_CHURN_MONITOR = 0,
69878 	AD_CHURN = 1,
69879 	AD_NO_CHURN = 2,
69880 } churn_state_t;
69881 
69882 struct lacpdu {
69883 	u8 subtype;
69884 	u8 version_number;
69885 	u8 tlv_type_actor_info;
69886 	u8 actor_information_length;
69887 	__be16 actor_system_priority;
69888 	struct mac_addr actor_system;
69889 	__be16 actor_key;
69890 	__be16 actor_port_priority;
69891 	__be16 actor_port;
69892 	u8 actor_state;
69893 	u8 reserved_3_1[3];
69894 	u8 tlv_type_partner_info;
69895 	u8 partner_information_length;
69896 	__be16 partner_system_priority;
69897 	struct mac_addr partner_system;
69898 	__be16 partner_key;
69899 	__be16 partner_port_priority;
69900 	__be16 partner_port;
69901 	u8 partner_state;
69902 	u8 reserved_3_2[3];
69903 	u8 tlv_type_collector_info;
69904 	u8 collector_information_length;
69905 	__be16 collector_max_delay;
69906 	u8 reserved_12[12];
69907 	u8 tlv_type_terminator;
69908 	u8 terminator_length;
69909 	u8 reserved_50[50];
69910 };
69911 
69912 struct bond_3ad_stats {
69913 	atomic64_t lacpdu_rx;
69914 	atomic64_t lacpdu_tx;
69915 	atomic64_t lacpdu_unknown_rx;
69916 	atomic64_t lacpdu_illegal_rx;
69917 	atomic64_t marker_rx;
69918 	atomic64_t marker_tx;
69919 	atomic64_t marker_resp_rx;
69920 	atomic64_t marker_resp_tx;
69921 	atomic64_t marker_unknown_rx;
69922 };
69923 
69924 struct port___2;
69925 
69926 struct slave;
69927 
69928 struct aggregator {
69929 	struct mac_addr aggregator_mac_address;
69930 	u16 aggregator_identifier;
69931 	bool is_individual;
69932 	u16 actor_admin_aggregator_key;
69933 	u16 actor_oper_aggregator_key;
69934 	struct mac_addr partner_system;
69935 	u16 partner_system_priority;
69936 	u16 partner_oper_aggregator_key;
69937 	u16 receive_state;
69938 	u16 transmit_state;
69939 	struct port___2 *lag_ports;
69940 	struct slave *slave;
69941 	u16 is_active;
69942 	u16 num_of_ports;
69943 };
69944 
69945 struct port_params {
69946 	struct mac_addr system;
69947 	u16 system_priority;
69948 	u16 key;
69949 	u16 port_number;
69950 	u16 port_priority;
69951 	u16 port_state;
69952 };
69953 
69954 struct port___2 {
69955 	u16 actor_port_number;
69956 	u16 actor_port_priority;
69957 	struct mac_addr actor_system;
69958 	u16 actor_system_priority;
69959 	u16 actor_port_aggregator_identifier;
69960 	bool ntt;
69961 	u16 actor_admin_port_key;
69962 	u16 actor_oper_port_key;
69963 	u8 actor_admin_port_state;
69964 	u8 actor_oper_port_state;
69965 	struct port_params partner_admin;
69966 	struct port_params partner_oper;
69967 	bool is_enabled;
69968 	u16 sm_vars;
69969 	rx_states_t sm_rx_state;
69970 	u16 sm_rx_timer_counter;
69971 	periodic_states_t sm_periodic_state;
69972 	u16 sm_periodic_timer_counter;
69973 	mux_states_t sm_mux_state;
69974 	u16 sm_mux_timer_counter;
69975 	tx_states_t sm_tx_state;
69976 	u16 sm_tx_timer_counter;
69977 	u16 sm_churn_actor_timer_counter;
69978 	u16 sm_churn_partner_timer_counter;
69979 	u32 churn_actor_count;
69980 	u32 churn_partner_count;
69981 	churn_state_t sm_churn_actor_state;
69982 	churn_state_t sm_churn_partner_state;
69983 	struct slave *slave;
69984 	struct aggregator *aggregator;
69985 	struct port___2 *next_port_in_aggregator;
69986 	u32 transaction_id;
69987 	struct lacpdu lacpdu;
69988 };
69989 
69990 struct tlb_slave_info {
69991 	u32 head;
69992 	u32 load;
69993 };
69994 
69995 struct bonding;
69996 
69997 struct ad_slave_info;
69998 
69999 struct slave {
70000 	struct net_device *dev;
70001 	struct bonding *bond;
70002 	int delay;
70003 	long unsigned int last_link_up;
70004 	long unsigned int last_rx;
70005 	long unsigned int target_last_arp_rx[16];
70006 	s8 link;
70007 	s8 link_new_state;
70008 	u8 backup: 1;
70009 	u8 inactive: 1;
70010 	u8 should_notify: 1;
70011 	u8 should_notify_link: 1;
70012 	u8 duplex;
70013 	u32 original_mtu;
70014 	u32 link_failure_count;
70015 	u32 speed;
70016 	u16 queue_id;
70017 	u8 perm_hwaddr[32];
70018 	struct ad_slave_info *ad_info;
70019 	struct tlb_slave_info tlb_info;
70020 	struct delayed_work notify_work;
70021 	struct kobject kobj;
70022 	struct rtnl_link_stats64 slave_stats;
70023 };
70024 
70025 struct ad_system {
70026 	u16 sys_priority;
70027 	struct mac_addr sys_mac_addr;
70028 };
70029 
70030 struct ad_bond_info {
70031 	struct ad_system system;
70032 	struct bond_3ad_stats stats;
70033 	u32 agg_select_timer;
70034 	u16 aggregator_identifier;
70035 };
70036 
70037 struct ad_slave_info {
70038 	struct aggregator aggregator;
70039 	struct port___2 port;
70040 	struct bond_3ad_stats stats;
70041 	u16 id;
70042 };
70043 
70044 struct tlb_client_info {
70045 	struct slave *tx_slave;
70046 	u32 tx_bytes;
70047 	u32 load_history;
70048 	u32 next;
70049 	u32 prev;
70050 };
70051 
70052 struct rlb_client_info {
70053 	__be32 ip_src;
70054 	__be32 ip_dst;
70055 	u8 mac_src[6];
70056 	u8 mac_dst[6];
70057 	u32 used_next;
70058 	u32 used_prev;
70059 	u32 src_next;
70060 	u32 src_prev;
70061 	u32 src_first;
70062 	u8 assigned;
70063 	u8 ntt;
70064 	struct slave *slave;
70065 	short unsigned int vlan_id;
70066 };
70067 
70068 struct alb_bond_info {
70069 	struct tlb_client_info *tx_hashtbl;
70070 	u32 unbalanced_load;
70071 	atomic_t tx_rebalance_counter;
70072 	int lp_counter;
70073 	int rlb_enabled;
70074 	struct rlb_client_info *rx_hashtbl;
70075 	u32 rx_hashtbl_used_head;
70076 	u8 rx_ntt;
70077 	struct slave *rx_slave;
70078 	u8 primary_is_promisc;
70079 	u32 rlb_promisc_timeout_counter;
70080 	u32 rlb_update_delay_counter;
70081 	u32 rlb_update_retry_counter;
70082 	u8 rlb_rebalance;
70083 };
70084 
70085 enum {
70086 	BOND_OPT_MODE = 0,
70087 	BOND_OPT_PACKETS_PER_SLAVE = 1,
70088 	BOND_OPT_XMIT_HASH = 2,
70089 	BOND_OPT_ARP_VALIDATE = 3,
70090 	BOND_OPT_ARP_ALL_TARGETS = 4,
70091 	BOND_OPT_FAIL_OVER_MAC = 5,
70092 	BOND_OPT_ARP_INTERVAL = 6,
70093 	BOND_OPT_ARP_TARGETS = 7,
70094 	BOND_OPT_DOWNDELAY = 8,
70095 	BOND_OPT_UPDELAY = 9,
70096 	BOND_OPT_LACP_RATE = 10,
70097 	BOND_OPT_MINLINKS = 11,
70098 	BOND_OPT_AD_SELECT = 12,
70099 	BOND_OPT_NUM_PEER_NOTIF = 13,
70100 	BOND_OPT_MIIMON = 14,
70101 	BOND_OPT_PRIMARY = 15,
70102 	BOND_OPT_PRIMARY_RESELECT = 16,
70103 	BOND_OPT_USE_CARRIER = 17,
70104 	BOND_OPT_ACTIVE_SLAVE = 18,
70105 	BOND_OPT_QUEUE_ID = 19,
70106 	BOND_OPT_ALL_SLAVES_ACTIVE = 20,
70107 	BOND_OPT_RESEND_IGMP = 21,
70108 	BOND_OPT_LP_INTERVAL = 22,
70109 	BOND_OPT_SLAVES = 23,
70110 	BOND_OPT_TLB_DYNAMIC_LB = 24,
70111 	BOND_OPT_AD_ACTOR_SYS_PRIO = 25,
70112 	BOND_OPT_AD_ACTOR_SYSTEM = 26,
70113 	BOND_OPT_AD_USER_PORT_KEY = 27,
70114 	BOND_OPT_NUM_PEER_NOTIF_ALIAS = 28,
70115 	BOND_OPT_PEER_NOTIF_DELAY = 29,
70116 	BOND_OPT_LACP_ACTIVE = 30,
70117 	BOND_OPT_MISSED_MAX = 31,
70118 	BOND_OPT_LAST = 32,
70119 };
70120 
70121 struct bond_opt_value {
70122 	char *string;
70123 	u64 value;
70124 	u32 flags;
70125 };
70126 
70127 struct bond_params {
70128 	int mode;
70129 	int xmit_policy;
70130 	int miimon;
70131 	u8 num_peer_notif;
70132 	u8 missed_max;
70133 	int arp_interval;
70134 	int arp_validate;
70135 	int arp_all_targets;
70136 	int use_carrier;
70137 	int fail_over_mac;
70138 	int updelay;
70139 	int downdelay;
70140 	int peer_notif_delay;
70141 	int lacp_active;
70142 	int lacp_fast;
70143 	unsigned int min_links;
70144 	int ad_select;
70145 	char primary[16];
70146 	int primary_reselect;
70147 	__be32 arp_targets[16];
70148 	int tx_queues;
70149 	int all_slaves_active;
70150 	int resend_igmp;
70151 	int lp_interval;
70152 	int packets_per_slave;
70153 	int tlb_dynamic_lb;
70154 	struct reciprocal_value reciprocal_packets_per_slave;
70155 	u16 ad_actor_sys_prio;
70156 	u16 ad_user_port_key;
70157 	u8 ad_actor_system[8];
70158 };
70159 
70160 struct bond_up_slave;
70161 
70162 struct bonding {
70163 	struct net_device *dev;
70164 	struct slave *curr_active_slave;
70165 	struct slave *current_arp_slave;
70166 	struct slave *primary_slave;
70167 	struct bond_up_slave *usable_slaves;
70168 	struct bond_up_slave *all_slaves;
70169 	bool force_primary;
70170 	s32 slave_cnt;
70171 	int (*recv_probe)(const struct sk_buff *, struct bonding *, struct slave *);
70172 	spinlock_t mode_lock;
70173 	spinlock_t stats_lock;
70174 	u8 send_peer_notif;
70175 	u8 igmp_retrans;
70176 	struct proc_dir_entry *proc_entry;
70177 	char proc_file_name[16];
70178 	struct list_head bond_list;
70179 	u32 *rr_tx_counter;
70180 	struct ad_bond_info ad_info;
70181 	struct alb_bond_info alb_info;
70182 	struct bond_params params;
70183 	struct workqueue_struct *wq;
70184 	struct delayed_work mii_work;
70185 	struct delayed_work arp_work;
70186 	struct delayed_work alb_work;
70187 	struct delayed_work ad_work;
70188 	struct delayed_work mcast_work;
70189 	struct delayed_work slave_arr_work;
70190 	struct dentry *debug_dir;
70191 	struct rtnl_link_stats64 bond_stats;
70192 	struct bpf_prog *xdp_prog;
70193 };
70194 
70195 struct bond_up_slave {
70196 	unsigned int count;
70197 	struct callback_head rcu;
70198 	struct slave *arr[0];
70199 };
70200 
70201 struct bond_vlan_tag {
70202 	__be16 vlan_proto;
70203 	short unsigned int vlan_id;
70204 };
70205 
70206 struct bond_net {
70207 	struct net *net;
70208 	struct list_head dev_list;
70209 	struct proc_dir_entry *proc_dir;
70210 	struct class_attribute class_attr_bonding_masters;
70211 };
70212 
70213 enum {
70214 	BOND_3AD_STAT_LACPDU_RX = 0,
70215 	BOND_3AD_STAT_LACPDU_TX = 1,
70216 	BOND_3AD_STAT_LACPDU_UNKNOWN_RX = 2,
70217 	BOND_3AD_STAT_LACPDU_ILLEGAL_RX = 3,
70218 	BOND_3AD_STAT_MARKER_RX = 4,
70219 	BOND_3AD_STAT_MARKER_TX = 5,
70220 	BOND_3AD_STAT_MARKER_RESP_RX = 6,
70221 	BOND_3AD_STAT_MARKER_RESP_TX = 7,
70222 	BOND_3AD_STAT_MARKER_UNKNOWN_RX = 8,
70223 	BOND_3AD_STAT_PAD = 9,
70224 	__BOND_3AD_STAT_MAX = 10,
70225 };
70226 
70227 enum {
70228 	AD_TYPE_LACPDU = 1,
70229 	AD_TYPE_MARKER = 2,
70230 };
70231 
70232 enum {
70233 	AD_MARKER_INFORMATION_SUBTYPE = 1,
70234 	AD_MARKER_RESPONSE_SUBTYPE = 2,
70235 };
70236 
70237 enum {
70238 	AD_CURRENT_WHILE_TIMER = 0,
70239 	AD_ACTOR_CHURN_TIMER = 1,
70240 	AD_PERIODIC_TIMER = 2,
70241 	AD_PARTNER_CHURN_TIMER = 3,
70242 	AD_WAIT_WHILE_TIMER = 4,
70243 };
70244 
70245 struct lacpdu_header {
70246 	struct ethhdr hdr;
70247 	struct lacpdu lacpdu;
70248 };
70249 
70250 struct bond_marker {
70251 	u8 subtype;
70252 	u8 version_number;
70253 	u8 tlv_type;
70254 	u8 marker_length;
70255 	u16 requester_port;
70256 	struct mac_addr requester_system;
70257 	u32 requester_transaction_id;
70258 	u16 pad;
70259 	u8 tlv_type_terminator;
70260 	u8 terminator_length;
70261 	u8 reserved_90[90];
70262 } __attribute__((packed));
70263 
70264 struct bond_marker_header {
70265 	struct ethhdr hdr;
70266 	struct bond_marker marker;
70267 } __attribute__((packed));
70268 
70269 enum ad_link_speed_type {
70270 	AD_LINK_SPEED_1MBPS = 1,
70271 	AD_LINK_SPEED_10MBPS = 2,
70272 	AD_LINK_SPEED_100MBPS = 3,
70273 	AD_LINK_SPEED_1000MBPS = 4,
70274 	AD_LINK_SPEED_2500MBPS = 5,
70275 	AD_LINK_SPEED_5000MBPS = 6,
70276 	AD_LINK_SPEED_10000MBPS = 7,
70277 	AD_LINK_SPEED_14000MBPS = 8,
70278 	AD_LINK_SPEED_20000MBPS = 9,
70279 	AD_LINK_SPEED_25000MBPS = 10,
70280 	AD_LINK_SPEED_40000MBPS = 11,
70281 	AD_LINK_SPEED_50000MBPS = 12,
70282 	AD_LINK_SPEED_56000MBPS = 13,
70283 	AD_LINK_SPEED_100000MBPS = 14,
70284 	AD_LINK_SPEED_200000MBPS = 15,
70285 	AD_LINK_SPEED_400000MBPS = 16,
70286 };
70287 
70288 struct netdev_hw_addr {
70289 	struct list_head list;
70290 	struct rb_node node;
70291 	unsigned char addr[32];
70292 	unsigned char type;
70293 	bool global_use;
70294 	int sync_cnt;
70295 	int refcount;
70296 	int synced;
70297 	struct callback_head callback_head;
70298 };
70299 
70300 struct learning_pkt {
70301 	u8 mac_dst[6];
70302 	u8 mac_src[6];
70303 	__be16 type;
70304 	u8 padding[46];
70305 };
70306 
70307 struct arp_pkt {
70308 	__be16 hw_addr_space;
70309 	__be16 prot_addr_space;
70310 	u8 hw_addr_len;
70311 	u8 prot_addr_len;
70312 	__be16 op_code;
70313 	u8 mac_src[6];
70314 	__be32 ip_src;
70315 	u8 mac_dst[6];
70316 	__be32 ip_dst;
70317 } __attribute__((packed));
70318 
70319 struct alb_walk_data {
70320 	struct bonding *bond;
70321 	struct slave *slave;
70322 	const u8 *mac_addr;
70323 	bool strict_match;
70324 };
70325 
70326 struct bond_option {
70327 	int id;
70328 	const char *name;
70329 	const char *desc;
70330 	u32 flags;
70331 	long unsigned int unsuppmodes;
70332 	const struct bond_opt_value *values;
70333 	int (*set)(struct bonding *, const struct bond_opt_value *);
70334 };
70335 
70336 struct slave_attribute {
70337 	struct attribute attr;
70338 	ssize_t (*show)(struct slave *, char *);
70339 };
70340 
70341 enum {
70342 	IFLA_UNSPEC = 0,
70343 	IFLA_ADDRESS = 1,
70344 	IFLA_BROADCAST = 2,
70345 	IFLA_IFNAME = 3,
70346 	IFLA_MTU = 4,
70347 	IFLA_LINK = 5,
70348 	IFLA_QDISC = 6,
70349 	IFLA_STATS = 7,
70350 	IFLA_COST = 8,
70351 	IFLA_PRIORITY = 9,
70352 	IFLA_MASTER = 10,
70353 	IFLA_WIRELESS = 11,
70354 	IFLA_PROTINFO = 12,
70355 	IFLA_TXQLEN = 13,
70356 	IFLA_MAP = 14,
70357 	IFLA_WEIGHT = 15,
70358 	IFLA_OPERSTATE = 16,
70359 	IFLA_LINKMODE = 17,
70360 	IFLA_LINKINFO = 18,
70361 	IFLA_NET_NS_PID = 19,
70362 	IFLA_IFALIAS = 20,
70363 	IFLA_NUM_VF = 21,
70364 	IFLA_VFINFO_LIST = 22,
70365 	IFLA_STATS64 = 23,
70366 	IFLA_VF_PORTS = 24,
70367 	IFLA_PORT_SELF = 25,
70368 	IFLA_AF_SPEC = 26,
70369 	IFLA_GROUP = 27,
70370 	IFLA_NET_NS_FD = 28,
70371 	IFLA_EXT_MASK = 29,
70372 	IFLA_PROMISCUITY = 30,
70373 	IFLA_NUM_TX_QUEUES = 31,
70374 	IFLA_NUM_RX_QUEUES = 32,
70375 	IFLA_CARRIER = 33,
70376 	IFLA_PHYS_PORT_ID = 34,
70377 	IFLA_CARRIER_CHANGES = 35,
70378 	IFLA_PHYS_SWITCH_ID = 36,
70379 	IFLA_LINK_NETNSID = 37,
70380 	IFLA_PHYS_PORT_NAME = 38,
70381 	IFLA_PROTO_DOWN = 39,
70382 	IFLA_GSO_MAX_SEGS = 40,
70383 	IFLA_GSO_MAX_SIZE = 41,
70384 	IFLA_PAD = 42,
70385 	IFLA_XDP = 43,
70386 	IFLA_EVENT = 44,
70387 	IFLA_NEW_NETNSID = 45,
70388 	IFLA_IF_NETNSID = 46,
70389 	IFLA_TARGET_NETNSID = 46,
70390 	IFLA_CARRIER_UP_COUNT = 47,
70391 	IFLA_CARRIER_DOWN_COUNT = 48,
70392 	IFLA_NEW_IFINDEX = 49,
70393 	IFLA_MIN_MTU = 50,
70394 	IFLA_MAX_MTU = 51,
70395 	IFLA_PROP_LIST = 52,
70396 	IFLA_ALT_IFNAME = 53,
70397 	IFLA_PERM_ADDRESS = 54,
70398 	IFLA_PROTO_DOWN_REASON = 55,
70399 	IFLA_PARENT_DEV_NAME = 56,
70400 	IFLA_PARENT_DEV_BUS_NAME = 57,
70401 	IFLA_GRO_MAX_SIZE = 58,
70402 	__IFLA_MAX = 59,
70403 };
70404 
70405 enum {
70406 	IFLA_BOND_UNSPEC = 0,
70407 	IFLA_BOND_MODE = 1,
70408 	IFLA_BOND_ACTIVE_SLAVE = 2,
70409 	IFLA_BOND_MIIMON = 3,
70410 	IFLA_BOND_UPDELAY = 4,
70411 	IFLA_BOND_DOWNDELAY = 5,
70412 	IFLA_BOND_USE_CARRIER = 6,
70413 	IFLA_BOND_ARP_INTERVAL = 7,
70414 	IFLA_BOND_ARP_IP_TARGET = 8,
70415 	IFLA_BOND_ARP_VALIDATE = 9,
70416 	IFLA_BOND_ARP_ALL_TARGETS = 10,
70417 	IFLA_BOND_PRIMARY = 11,
70418 	IFLA_BOND_PRIMARY_RESELECT = 12,
70419 	IFLA_BOND_FAIL_OVER_MAC = 13,
70420 	IFLA_BOND_XMIT_HASH_POLICY = 14,
70421 	IFLA_BOND_RESEND_IGMP = 15,
70422 	IFLA_BOND_NUM_PEER_NOTIF = 16,
70423 	IFLA_BOND_ALL_SLAVES_ACTIVE = 17,
70424 	IFLA_BOND_MIN_LINKS = 18,
70425 	IFLA_BOND_LP_INTERVAL = 19,
70426 	IFLA_BOND_PACKETS_PER_SLAVE = 20,
70427 	IFLA_BOND_AD_LACP_RATE = 21,
70428 	IFLA_BOND_AD_SELECT = 22,
70429 	IFLA_BOND_AD_INFO = 23,
70430 	IFLA_BOND_AD_ACTOR_SYS_PRIO = 24,
70431 	IFLA_BOND_AD_USER_PORT_KEY = 25,
70432 	IFLA_BOND_AD_ACTOR_SYSTEM = 26,
70433 	IFLA_BOND_TLB_DYNAMIC_LB = 27,
70434 	IFLA_BOND_PEER_NOTIF_DELAY = 28,
70435 	IFLA_BOND_AD_LACP_ACTIVE = 29,
70436 	IFLA_BOND_MISSED_MAX = 30,
70437 	__IFLA_BOND_MAX = 31,
70438 };
70439 
70440 enum {
70441 	IFLA_BOND_AD_INFO_UNSPEC = 0,
70442 	IFLA_BOND_AD_INFO_AGGREGATOR = 1,
70443 	IFLA_BOND_AD_INFO_NUM_PORTS = 2,
70444 	IFLA_BOND_AD_INFO_ACTOR_KEY = 3,
70445 	IFLA_BOND_AD_INFO_PARTNER_KEY = 4,
70446 	IFLA_BOND_AD_INFO_PARTNER_MAC = 5,
70447 	__IFLA_BOND_AD_INFO_MAX = 6,
70448 };
70449 
70450 enum {
70451 	IFLA_BOND_SLAVE_UNSPEC = 0,
70452 	IFLA_BOND_SLAVE_STATE = 1,
70453 	IFLA_BOND_SLAVE_MII_STATUS = 2,
70454 	IFLA_BOND_SLAVE_LINK_FAILURE_COUNT = 3,
70455 	IFLA_BOND_SLAVE_PERM_HWADDR = 4,
70456 	IFLA_BOND_SLAVE_QUEUE_ID = 5,
70457 	IFLA_BOND_SLAVE_AD_AGGREGATOR_ID = 6,
70458 	IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE = 7,
70459 	IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 8,
70460 	__IFLA_BOND_SLAVE_MAX = 9,
70461 };
70462 
70463 enum {
70464 	IFLA_STATS_UNSPEC = 0,
70465 	IFLA_STATS_LINK_64 = 1,
70466 	IFLA_STATS_LINK_XSTATS = 2,
70467 	IFLA_STATS_LINK_XSTATS_SLAVE = 3,
70468 	IFLA_STATS_LINK_OFFLOAD_XSTATS = 4,
70469 	IFLA_STATS_AF_SPEC = 5,
70470 	__IFLA_STATS_MAX = 6,
70471 };
70472 
70473 enum {
70474 	LINK_XSTATS_TYPE_UNSPEC = 0,
70475 	LINK_XSTATS_TYPE_BRIDGE = 1,
70476 	LINK_XSTATS_TYPE_BOND = 2,
70477 	__LINK_XSTATS_TYPE_MAX = 3,
70478 };
70479 
70480 enum {
70481 	BOND_XSTATS_UNSPEC = 0,
70482 	BOND_XSTATS_3AD = 1,
70483 	__BOND_XSTATS_MAX = 2,
70484 };
70485 
70486 enum {
70487 	BOND_OPTFLAG_NOSLAVES = 1,
70488 	BOND_OPTFLAG_IFDOWN = 2,
70489 	BOND_OPTFLAG_RAWVAL = 4,
70490 };
70491 
70492 enum {
70493 	BOND_VALFLAG_DEFAULT = 1,
70494 	BOND_VALFLAG_MIN = 2,
70495 	BOND_VALFLAG_MAX = 4,
70496 };
70497 
70498 enum {
70499 	SKBTX_HW_TSTAMP = 1,
70500 	SKBTX_SW_TSTAMP = 2,
70501 	SKBTX_IN_PROGRESS = 4,
70502 	SKBTX_WIFI_STATUS = 16,
70503 	SKBTX_SCHED_TSTAMP = 64,
70504 };
70505 
70506 struct flow_keys_basic {
70507 	struct flow_dissector_key_control control;
70508 	struct flow_dissector_key_basic basic;
70509 };
70510 
70511 enum {
70512 	SKBFL_ZEROCOPY_ENABLE = 1,
70513 	SKBFL_SHARED_FRAG = 2,
70514 	SKBFL_PURE_ZEROCOPY = 4,
70515 };
70516 
70517 struct mmpin {
70518 	struct user_struct *user;
70519 	unsigned int num_pg;
70520 };
70521 
70522 struct ubuf_info {
70523 	void (*callback)(struct sk_buff *, struct ubuf_info *, bool);
70524 	union {
70525 		struct {
70526 			long unsigned int desc;
70527 			void *ctx;
70528 		};
70529 		struct {
70530 			u32 id;
70531 			u16 len;
70532 			u16 zerocopy: 1;
70533 			u32 bytelen;
70534 		};
70535 	};
70536 	refcount_t refcnt;
70537 	u8 flags;
70538 	struct mmpin mmp;
70539 };
70540 
70541 enum {
70542 	SKB_GSO_TCPV4 = 1,
70543 	SKB_GSO_DODGY = 2,
70544 	SKB_GSO_TCP_ECN = 4,
70545 	SKB_GSO_TCP_FIXEDID = 8,
70546 	SKB_GSO_TCPV6 = 16,
70547 	SKB_GSO_FCOE = 32,
70548 	SKB_GSO_GRE = 64,
70549 	SKB_GSO_GRE_CSUM = 128,
70550 	SKB_GSO_IPXIP4 = 256,
70551 	SKB_GSO_IPXIP6 = 512,
70552 	SKB_GSO_UDP_TUNNEL = 1024,
70553 	SKB_GSO_UDP_TUNNEL_CSUM = 2048,
70554 	SKB_GSO_PARTIAL = 4096,
70555 	SKB_GSO_TUNNEL_REMCSUM = 8192,
70556 	SKB_GSO_SCTP = 16384,
70557 	SKB_GSO_ESP = 32768,
70558 	SKB_GSO_UDP = 65536,
70559 	SKB_GSO_UDP_L4 = 131072,
70560 	SKB_GSO_FRAGLIST = 262144,
70561 };
70562 
70563 enum {
70564 	IFLA_TUN_UNSPEC = 0,
70565 	IFLA_TUN_OWNER = 1,
70566 	IFLA_TUN_GROUP = 2,
70567 	IFLA_TUN_TYPE = 3,
70568 	IFLA_TUN_PI = 4,
70569 	IFLA_TUN_VNET_HDR = 5,
70570 	IFLA_TUN_PERSIST = 6,
70571 	IFLA_TUN_MULTI_QUEUE = 7,
70572 	IFLA_TUN_NUM_QUEUES = 8,
70573 	IFLA_TUN_NUM_DISABLED_QUEUES = 9,
70574 	__IFLA_TUN_MAX = 10,
70575 };
70576 
70577 enum {
70578 	NAPI_STATE_SCHED = 0,
70579 	NAPI_STATE_MISSED = 1,
70580 	NAPI_STATE_DISABLE = 2,
70581 	NAPI_STATE_NPSVC = 3,
70582 	NAPI_STATE_LISTED = 4,
70583 	NAPI_STATE_NO_BUSY_POLL = 5,
70584 	NAPI_STATE_IN_BUSY_POLL = 6,
70585 	NAPI_STATE_PREFER_BUSY_POLL = 7,
70586 	NAPI_STATE_THREADED = 8,
70587 	NAPI_STATE_SCHED_THREADED = 9,
70588 };
70589 
70590 enum netdev_queue_state_t {
70591 	__QUEUE_STATE_DRV_XOFF = 0,
70592 	__QUEUE_STATE_STACK_XOFF = 1,
70593 	__QUEUE_STATE_FROZEN = 2,
70594 };
70595 
70596 struct ip_tunnel_parm {
70597 	char name[16];
70598 	int link;
70599 	__be16 i_flags;
70600 	__be16 o_flags;
70601 	__be32 i_key;
70602 	__be32 o_key;
70603 	struct iphdr iph;
70604 };
70605 
70606 struct wpan_phy;
70607 
70608 struct wpan_dev_header_ops;
70609 
70610 struct wpan_dev {
70611 	struct wpan_phy *wpan_phy;
70612 	int iftype;
70613 	struct list_head list;
70614 	struct net_device *netdev;
70615 	const struct wpan_dev_header_ops *header_ops;
70616 	struct net_device *lowpan_dev;
70617 	u32 identifier;
70618 	__le16 pan_id;
70619 	__le16 short_addr;
70620 	__le64 extended_addr;
70621 	atomic_t bsn;
70622 	atomic_t dsn;
70623 	u8 min_be;
70624 	u8 max_be;
70625 	u8 csma_retries;
70626 	s8 frame_retries;
70627 	bool lbt;
70628 	bool promiscuous_mode;
70629 	bool ackreq;
70630 };
70631 
70632 enum {
70633 	NETIF_MSG_DRV_BIT = 0,
70634 	NETIF_MSG_PROBE_BIT = 1,
70635 	NETIF_MSG_LINK_BIT = 2,
70636 	NETIF_MSG_TIMER_BIT = 3,
70637 	NETIF_MSG_IFDOWN_BIT = 4,
70638 	NETIF_MSG_IFUP_BIT = 5,
70639 	NETIF_MSG_RX_ERR_BIT = 6,
70640 	NETIF_MSG_TX_ERR_BIT = 7,
70641 	NETIF_MSG_TX_QUEUED_BIT = 8,
70642 	NETIF_MSG_INTR_BIT = 9,
70643 	NETIF_MSG_TX_DONE_BIT = 10,
70644 	NETIF_MSG_RX_STATUS_BIT = 11,
70645 	NETIF_MSG_PKTDATA_BIT = 12,
70646 	NETIF_MSG_HW_BIT = 13,
70647 	NETIF_MSG_WOL_BIT = 14,
70648 	NETIF_MSG_CLASS_COUNT = 15,
70649 };
70650 
70651 struct tun_pi {
70652 	__u16 flags;
70653 	__be16 proto;
70654 };
70655 
70656 struct tun_filter {
70657 	__u16 flags;
70658 	__u16 count;
70659 	__u8 addr[0];
70660 };
70661 
70662 struct virtio_net_hdr {
70663 	__u8 flags;
70664 	__u8 gso_type;
70665 	__virtio16 hdr_len;
70666 	__virtio16 gso_size;
70667 	__virtio16 csum_start;
70668 	__virtio16 csum_offset;
70669 };
70670 
70671 struct tun_msg_ctl {
70672 	short unsigned int type;
70673 	short unsigned int num;
70674 	void *ptr;
70675 };
70676 
70677 struct tun_xdp_hdr {
70678 	int buflen;
70679 	struct virtio_net_hdr gso;
70680 };
70681 
70682 struct fib_info;
70683 
70684 struct fib_nh {
70685 	struct fib_nh_common nh_common;
70686 	struct hlist_node nh_hash;
70687 	struct fib_info *nh_parent;
70688 	__be32 nh_saddr;
70689 	int nh_saddr_genid;
70690 };
70691 
70692 struct fib_info {
70693 	struct hlist_node fib_hash;
70694 	struct hlist_node fib_lhash;
70695 	struct list_head nh_list;
70696 	struct net *fib_net;
70697 	refcount_t fib_treeref;
70698 	refcount_t fib_clntref;
70699 	unsigned int fib_flags;
70700 	unsigned char fib_dead;
70701 	unsigned char fib_protocol;
70702 	unsigned char fib_scope;
70703 	unsigned char fib_type;
70704 	__be32 fib_prefsrc;
70705 	u32 fib_tb_id;
70706 	u32 fib_priority;
70707 	struct dst_metrics *fib_metrics;
70708 	int fib_nhs;
70709 	bool fib_nh_is_v6;
70710 	bool nh_updated;
70711 	struct nexthop *nh;
70712 	struct callback_head rcu;
70713 	struct fib_nh fib_nh[0];
70714 };
70715 
70716 struct nh_info;
70717 
70718 struct nh_group;
70719 
70720 struct nexthop {
70721 	struct rb_node rb_node;
70722 	struct list_head fi_list;
70723 	struct list_head f6i_list;
70724 	struct list_head fdb_list;
70725 	struct list_head grp_list;
70726 	struct net *net;
70727 	u32 id;
70728 	u8 protocol;
70729 	u8 nh_flags;
70730 	bool is_group;
70731 	refcount_t refcnt;
70732 	struct callback_head rcu;
70733 	union {
70734 		struct nh_info *nh_info;
70735 		struct nh_group *nh_grp;
70736 	};
70737 };
70738 
70739 struct nh_info {
70740 	struct hlist_node dev_hash;
70741 	struct nexthop *nh_parent;
70742 	u8 family;
70743 	bool reject_nh;
70744 	bool fdb_nh;
70745 	union {
70746 		struct fib_nh_common fib_nhc;
70747 		struct fib_nh fib_nh;
70748 		struct fib6_nh fib6_nh;
70749 	};
70750 };
70751 
70752 struct nh_grp_entry;
70753 
70754 struct nh_res_bucket {
70755 	struct nh_grp_entry *nh_entry;
70756 	atomic_long_t used_time;
70757 	long unsigned int migrated_time;
70758 	bool occupied;
70759 	u8 nh_flags;
70760 };
70761 
70762 struct nh_grp_entry {
70763 	struct nexthop *nh;
70764 	u8 weight;
70765 	union {
70766 		struct {
70767 			atomic_t upper_bound;
70768 		} hthr;
70769 		struct {
70770 			struct list_head uw_nh_entry;
70771 			u16 count_buckets;
70772 			u16 wants_buckets;
70773 		} res;
70774 	};
70775 	struct list_head nh_list;
70776 	struct nexthop *nh_parent;
70777 };
70778 
70779 struct nh_res_table {
70780 	struct net *net;
70781 	u32 nhg_id;
70782 	struct delayed_work upkeep_dw;
70783 	struct list_head uw_nh_entries;
70784 	long unsigned int unbalanced_since;
70785 	u32 idle_timer;
70786 	u32 unbalanced_timer;
70787 	u16 num_nh_buckets;
70788 	struct nh_res_bucket nh_buckets[0];
70789 };
70790 
70791 struct nh_group {
70792 	struct nh_group *spare;
70793 	u16 num_nh;
70794 	bool is_multipath;
70795 	bool hash_threshold;
70796 	bool resilient;
70797 	bool fdb_nh;
70798 	bool has_v4;
70799 	struct nh_res_table *res_table;
70800 	struct nh_grp_entry nh_entries[0];
70801 };
70802 
70803 struct ip_tunnel_encap {
70804 	u16 type;
70805 	u16 flags;
70806 	__be16 sport;
70807 	__be16 dport;
70808 };
70809 
70810 struct ip_tunnel_encap_ops {
70811 	size_t (*encap_hlen)(struct ip_tunnel_encap *);
70812 	int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi4 *);
70813 	int (*err_handler)(struct sk_buff *, u32);
70814 };
70815 
70816 typedef struct {
70817 	char ax25_call[7];
70818 } ax25_address;
70819 
70820 enum {
70821 	AX25_VALUES_IPDEFMODE = 0,
70822 	AX25_VALUES_AXDEFMODE = 1,
70823 	AX25_VALUES_BACKOFF = 2,
70824 	AX25_VALUES_CONMODE = 3,
70825 	AX25_VALUES_WINDOW = 4,
70826 	AX25_VALUES_EWINDOW = 5,
70827 	AX25_VALUES_T1 = 6,
70828 	AX25_VALUES_T2 = 7,
70829 	AX25_VALUES_T3 = 8,
70830 	AX25_VALUES_IDLE = 9,
70831 	AX25_VALUES_N2 = 10,
70832 	AX25_VALUES_PACLEN = 11,
70833 	AX25_VALUES_PROTOCOL = 12,
70834 	AX25_VALUES_DS_TIMEOUT = 13,
70835 	AX25_MAX_VALUES = 14,
70836 };
70837 
70838 typedef struct {
70839 	ax25_address calls[8];
70840 	unsigned char repeated[8];
70841 	unsigned char ndigi;
70842 	signed char lastrepeat;
70843 } ax25_digi;
70844 
70845 struct ax25_dev {
70846 	struct ax25_dev *next;
70847 	struct net_device *dev;
70848 	netdevice_tracker dev_tracker;
70849 	struct net_device *forward;
70850 	struct ctl_table_header *sysheader;
70851 	int values[14];
70852 };
70853 
70854 typedef struct ax25_dev ax25_dev;
70855 
70856 struct ax25_cb {
70857 	struct hlist_node ax25_node;
70858 	ax25_address source_addr;
70859 	ax25_address dest_addr;
70860 	ax25_digi *digipeat;
70861 	ax25_dev *ax25_dev;
70862 	unsigned char iamdigi;
70863 	unsigned char state;
70864 	unsigned char modulus;
70865 	unsigned char pidincl;
70866 	short unsigned int vs;
70867 	short unsigned int vr;
70868 	short unsigned int va;
70869 	unsigned char condition;
70870 	unsigned char backoff;
70871 	unsigned char n2;
70872 	unsigned char n2count;
70873 	struct timer_list t1timer;
70874 	struct timer_list t2timer;
70875 	struct timer_list t3timer;
70876 	struct timer_list idletimer;
70877 	long unsigned int t1;
70878 	long unsigned int t2;
70879 	long unsigned int t3;
70880 	long unsigned int idle;
70881 	long unsigned int rtt;
70882 	short unsigned int paclen;
70883 	short unsigned int fragno;
70884 	short unsigned int fraglen;
70885 	struct sk_buff_head write_queue;
70886 	struct sk_buff_head reseq_queue;
70887 	struct sk_buff_head ack_queue;
70888 	struct sk_buff_head frag_queue;
70889 	unsigned char window;
70890 	struct timer_list timer;
70891 	struct timer_list dtimer;
70892 	struct sock *sk;
70893 	refcount_t refcount;
70894 };
70895 
70896 typedef struct ax25_cb ax25_cb;
70897 
70898 struct rose_neigh {
70899 	struct rose_neigh *next;
70900 	ax25_address callsign;
70901 	ax25_digi *digipeat;
70902 	ax25_cb *ax25;
70903 	struct net_device *dev;
70904 	short unsigned int count;
70905 	short unsigned int use;
70906 	unsigned int number;
70907 	char restarted;
70908 	char dce_mode;
70909 	char loopback;
70910 	struct sk_buff_head queue;
70911 	struct timer_list t0timer;
70912 	struct timer_list ftimer;
70913 };
70914 
70915 enum nl802154_cca_modes {
70916 	__NL802154_CCA_INVALID = 0,
70917 	NL802154_CCA_ENERGY = 1,
70918 	NL802154_CCA_CARRIER = 2,
70919 	NL802154_CCA_ENERGY_CARRIER = 3,
70920 	NL802154_CCA_ALOHA = 4,
70921 	NL802154_CCA_UWB_SHR = 5,
70922 	NL802154_CCA_UWB_MULTIPLEXED = 6,
70923 	__NL802154_CCA_ATTR_AFTER_LAST = 7,
70924 	NL802154_CCA_ATTR_MAX = 6,
70925 };
70926 
70927 enum nl802154_cca_opts {
70928 	NL802154_CCA_OPT_ENERGY_CARRIER_AND = 0,
70929 	NL802154_CCA_OPT_ENERGY_CARRIER_OR = 1,
70930 	__NL802154_CCA_OPT_ATTR_AFTER_LAST = 2,
70931 	NL802154_CCA_OPT_ATTR_MAX = 1,
70932 };
70933 
70934 enum nl802154_supported_bool_states {
70935 	NL802154_SUPPORTED_BOOL_FALSE = 0,
70936 	NL802154_SUPPORTED_BOOL_TRUE = 1,
70937 	__NL802154_SUPPORTED_BOOL_INVALD = 2,
70938 	NL802154_SUPPORTED_BOOL_BOTH = 3,
70939 	__NL802154_SUPPORTED_BOOL_AFTER_LAST = 4,
70940 	NL802154_SUPPORTED_BOOL_MAX = 3,
70941 };
70942 
70943 struct wpan_phy_supported {
70944 	u32 channels[32];
70945 	u32 cca_modes;
70946 	u32 cca_opts;
70947 	u32 iftypes;
70948 	enum nl802154_supported_bool_states lbt;
70949 	u8 min_minbe;
70950 	u8 max_minbe;
70951 	u8 min_maxbe;
70952 	u8 max_maxbe;
70953 	u8 min_csma_backoffs;
70954 	u8 max_csma_backoffs;
70955 	s8 min_frame_retries;
70956 	s8 max_frame_retries;
70957 	size_t tx_powers_size;
70958 	size_t cca_ed_levels_size;
70959 	const s32 *tx_powers;
70960 	const s32 *cca_ed_levels;
70961 };
70962 
70963 struct wpan_phy_cca {
70964 	enum nl802154_cca_modes mode;
70965 	enum nl802154_cca_opts opt;
70966 };
70967 
70968 struct wpan_phy {
70969 	const void *privid;
70970 	u32 flags;
70971 	u8 current_channel;
70972 	u8 current_page;
70973 	struct wpan_phy_supported supported;
70974 	s32 transmit_power;
70975 	struct wpan_phy_cca cca;
70976 	__le64 perm_extended_addr;
70977 	s32 cca_ed_level;
70978 	u8 symbol_duration;
70979 	u16 lifs_period;
70980 	u16 sifs_period;
70981 	struct device dev;
70982 	possible_net_t _net;
70983 	long: 64;
70984 	long: 64;
70985 	long: 64;
70986 	char priv[0];
70987 };
70988 
70989 struct ieee802154_addr {
70990 	u8 mode;
70991 	__le16 pan_id;
70992 	union {
70993 		__le16 short_addr;
70994 		__le64 extended_addr;
70995 	};
70996 };
70997 
70998 struct wpan_dev_header_ops {
70999 	int (*create)(struct sk_buff *, struct net_device *, const struct ieee802154_addr *, const struct ieee802154_addr *, unsigned int);
71000 };
71001 
71002 struct tap_filter {
71003 	unsigned int count;
71004 	u32 mask[2];
71005 	unsigned char addr[48];
71006 };
71007 
71008 struct tun_struct;
71009 
71010 struct tun_file {
71011 	struct sock sk;
71012 	long: 64;
71013 	struct socket socket;
71014 	struct tun_struct *tun;
71015 	struct fasync_struct *fasync;
71016 	unsigned int flags;
71017 	union {
71018 		u16 queue_index;
71019 		unsigned int ifindex;
71020 	};
71021 	struct napi_struct napi;
71022 	bool napi_enabled;
71023 	bool napi_frags_enabled;
71024 	struct mutex napi_mutex;
71025 	struct list_head next;
71026 	struct tun_struct *detached;
71027 	long: 64;
71028 	long: 64;
71029 	long: 64;
71030 	long: 64;
71031 	long: 64;
71032 	long: 64;
71033 	struct ptr_ring tx_ring;
71034 	struct xdp_rxq_info xdp_rxq;
71035 };
71036 
71037 struct tun_prog;
71038 
71039 struct tun_struct {
71040 	struct tun_file *tfiles[256];
71041 	unsigned int numqueues;
71042 	unsigned int flags;
71043 	kuid_t owner;
71044 	kgid_t group;
71045 	struct net_device *dev;
71046 	netdev_features_t set_features;
71047 	int align;
71048 	int vnet_hdr_sz;
71049 	int sndbuf;
71050 	struct tap_filter txflt;
71051 	struct sock_fprog fprog;
71052 	bool filter_attached;
71053 	u32 msg_enable;
71054 	spinlock_t lock;
71055 	struct hlist_head flows[1024];
71056 	struct timer_list flow_gc_timer;
71057 	long unsigned int ageing_time;
71058 	unsigned int numdisabled;
71059 	struct list_head disabled;
71060 	void *security;
71061 	u32 flow_count;
71062 	u32 rx_batched;
71063 	atomic_long_t rx_frame_errors;
71064 	struct bpf_prog *xdp_prog;
71065 	struct tun_prog *steering_prog;
71066 	struct tun_prog *filter_prog;
71067 	struct ethtool_link_ksettings link_ksettings;
71068 	struct file *file;
71069 	struct ifreq *ifr;
71070 };
71071 
71072 struct tun_page {
71073 	struct page *page;
71074 	int count;
71075 };
71076 
71077 struct tun_flow_entry {
71078 	struct hlist_node hash_link;
71079 	struct callback_head rcu;
71080 	struct tun_struct *tun;
71081 	u32 rxhash;
71082 	u32 rps_rxhash;
71083 	int queue_index;
71084 	long: 32;
71085 	long: 64;
71086 	long unsigned int updated;
71087 	long: 64;
71088 	long: 64;
71089 	long: 64;
71090 	long: 64;
71091 	long: 64;
71092 	long: 64;
71093 	long: 64;
71094 };
71095 
71096 struct tun_prog {
71097 	struct callback_head rcu;
71098 	struct bpf_prog *prog;
71099 };
71100 
71101 struct veth {
71102 	__be16 h_vlan_proto;
71103 	__be16 h_vlan_TCI;
71104 };
71105 
71106 enum ethtool_stringset {
71107 	ETH_SS_TEST = 0,
71108 	ETH_SS_STATS = 1,
71109 	ETH_SS_PRIV_FLAGS = 2,
71110 	ETH_SS_NTUPLE_FILTERS = 3,
71111 	ETH_SS_FEATURES = 4,
71112 	ETH_SS_RSS_HASH_FUNCS = 5,
71113 	ETH_SS_TUNABLES = 6,
71114 	ETH_SS_PHY_STATS = 7,
71115 	ETH_SS_PHY_TUNABLES = 8,
71116 	ETH_SS_LINK_MODES = 9,
71117 	ETH_SS_MSG_CLASSES = 10,
71118 	ETH_SS_WOL_MODES = 11,
71119 	ETH_SS_SOF_TIMESTAMPING = 12,
71120 	ETH_SS_TS_TX_TYPES = 13,
71121 	ETH_SS_TS_RX_FILTERS = 14,
71122 	ETH_SS_UDP_TUNNEL_TYPES = 15,
71123 	ETH_SS_STATS_STD = 16,
71124 	ETH_SS_STATS_ETH_PHY = 17,
71125 	ETH_SS_STATS_ETH_MAC = 18,
71126 	ETH_SS_STATS_ETH_CTRL = 19,
71127 	ETH_SS_STATS_RMON = 20,
71128 	ETH_SS_COUNT = 21,
71129 };
71130 
71131 struct ifinfomsg {
71132 	unsigned char ifi_family;
71133 	unsigned char __ifi_pad;
71134 	short unsigned int ifi_type;
71135 	int ifi_index;
71136 	unsigned int ifi_flags;
71137 	unsigned int ifi_change;
71138 };
71139 
71140 enum {
71141 	VETH_INFO_UNSPEC = 0,
71142 	VETH_INFO_PEER = 1,
71143 	__VETH_INFO_MAX = 2,
71144 };
71145 
71146 struct veth_stats {
71147 	u64 rx_drops;
71148 	u64 xdp_packets;
71149 	u64 xdp_bytes;
71150 	u64 xdp_redirect;
71151 	u64 xdp_drops;
71152 	u64 xdp_tx;
71153 	u64 xdp_tx_err;
71154 	u64 peer_tq_xdp_xmit;
71155 	u64 peer_tq_xdp_xmit_err;
71156 };
71157 
71158 struct veth_rq_stats {
71159 	struct veth_stats vs;
71160 	struct u64_stats_sync syncp;
71161 };
71162 
71163 struct veth_rq {
71164 	struct napi_struct xdp_napi;
71165 	struct napi_struct *napi;
71166 	struct net_device *dev;
71167 	struct bpf_prog *xdp_prog;
71168 	struct xdp_mem_info xdp_mem;
71169 	struct veth_rq_stats stats;
71170 	bool rx_notify_masked;
71171 	long: 56;
71172 	long: 64;
71173 	struct ptr_ring xdp_ring;
71174 	struct xdp_rxq_info xdp_rxq;
71175 };
71176 
71177 struct veth_priv {
71178 	struct net_device *peer;
71179 	atomic64_t dropped;
71180 	struct bpf_prog *_xdp_prog;
71181 	struct veth_rq *rq;
71182 	unsigned int requested_headroom;
71183 };
71184 
71185 struct veth_xdp_tx_bq {
71186 	struct xdp_frame *q[16];
71187 	unsigned int count;
71188 };
71189 
71190 struct veth_q_stat_desc {
71191 	char desc[32];
71192 	size_t offset;
71193 };
71194 
71195 struct rx_queue_attribute {
71196 	struct attribute attr;
71197 	ssize_t (*show)(struct netdev_rx_queue *, char *);
71198 	ssize_t (*store)(struct netdev_rx_queue *, const char *, size_t);
71199 };
71200 
71201 enum xps_map_type {
71202 	XPS_CPUS = 0,
71203 	XPS_RXQS = 1,
71204 	XPS_MAPS_MAX = 2,
71205 };
71206 
71207 struct virtio_net_config {
71208 	__u8 mac[6];
71209 	__virtio16 status;
71210 	__virtio16 max_virtqueue_pairs;
71211 	__virtio16 mtu;
71212 	__le32 speed;
71213 	__u8 duplex;
71214 	__u8 rss_max_key_size;
71215 	__le16 rss_max_indirection_table_length;
71216 	__le32 supported_hash_types;
71217 };
71218 
71219 struct virtio_net_hdr_mrg_rxbuf {
71220 	struct virtio_net_hdr hdr;
71221 	__virtio16 num_buffers;
71222 };
71223 
71224 struct virtio_net_ctrl_hdr {
71225 	__u8 class;
71226 	__u8 cmd;
71227 };
71228 
71229 typedef __u8 virtio_net_ctrl_ack;
71230 
71231 struct virtio_net_ctrl_mac {
71232 	__virtio32 entries;
71233 	__u8 macs[0];
71234 };
71235 
71236 struct virtio_net_ctrl_mq {
71237 	__virtio16 virtqueue_pairs;
71238 };
71239 
71240 struct failover_ops {
71241 	int (*slave_pre_register)(struct net_device *, struct net_device *);
71242 	int (*slave_register)(struct net_device *, struct net_device *);
71243 	int (*slave_pre_unregister)(struct net_device *, struct net_device *);
71244 	int (*slave_unregister)(struct net_device *, struct net_device *);
71245 	int (*slave_link_change)(struct net_device *, struct net_device *);
71246 	int (*slave_name_change)(struct net_device *, struct net_device *);
71247 	rx_handler_result_t (*slave_handle_frame)(struct sk_buff **);
71248 };
71249 
71250 struct failover {
71251 	struct list_head list;
71252 	struct net_device *failover_dev;
71253 	netdevice_tracker dev_tracker;
71254 	struct failover_ops *ops;
71255 };
71256 
71257 struct ewma_pkt_len {
71258 	long unsigned int internal;
71259 };
71260 
71261 struct virtnet_stat_desc {
71262 	char desc[32];
71263 	size_t offset;
71264 };
71265 
71266 struct virtnet_sq_stats {
71267 	struct u64_stats_sync syncp;
71268 	u64 packets;
71269 	u64 bytes;
71270 	u64 xdp_tx;
71271 	u64 xdp_tx_drops;
71272 	u64 kicks;
71273 	u64 tx_timeouts;
71274 };
71275 
71276 struct virtnet_rq_stats {
71277 	struct u64_stats_sync syncp;
71278 	u64 packets;
71279 	u64 bytes;
71280 	u64 drops;
71281 	u64 xdp_packets;
71282 	u64 xdp_tx;
71283 	u64 xdp_redirects;
71284 	u64 xdp_drops;
71285 	u64 kicks;
71286 };
71287 
71288 struct send_queue {
71289 	struct virtqueue *vq;
71290 	struct scatterlist sg[19];
71291 	char name[40];
71292 	struct virtnet_sq_stats stats;
71293 	struct napi_struct napi;
71294 };
71295 
71296 struct receive_queue {
71297 	struct virtqueue *vq;
71298 	struct napi_struct napi;
71299 	struct bpf_prog *xdp_prog;
71300 	struct virtnet_rq_stats stats;
71301 	struct page *pages;
71302 	struct ewma_pkt_len mrg_avg_pkt_len;
71303 	struct page_frag alloc_frag;
71304 	struct scatterlist sg[19];
71305 	unsigned int min_buf_len;
71306 	char name[40];
71307 	long: 32;
71308 	long: 64;
71309 	long: 64;
71310 	long: 64;
71311 	long: 64;
71312 	long: 64;
71313 	long: 64;
71314 	long: 64;
71315 	struct xdp_rxq_info xdp_rxq;
71316 };
71317 
71318 struct control_buf {
71319 	struct virtio_net_ctrl_hdr hdr;
71320 	virtio_net_ctrl_ack status;
71321 	struct virtio_net_ctrl_mq mq;
71322 	u8 promisc;
71323 	u8 allmulti;
71324 	__virtio16 vid;
71325 	__virtio64 offloads;
71326 };
71327 
71328 struct virtnet_info {
71329 	struct virtio_device *vdev;
71330 	struct virtqueue *cvq;
71331 	struct net_device *dev;
71332 	struct send_queue *sq;
71333 	struct receive_queue *rq;
71334 	unsigned int status;
71335 	u16 max_queue_pairs;
71336 	u16 curr_queue_pairs;
71337 	u16 xdp_queue_pairs;
71338 	bool xdp_enabled;
71339 	bool big_packets;
71340 	bool mergeable_rx_bufs;
71341 	bool has_cvq;
71342 	bool any_header_sg;
71343 	u8 hdr_len;
71344 	struct delayed_work refill;
71345 	struct work_struct config_work;
71346 	bool affinity_hint_set;
71347 	struct hlist_node node;
71348 	struct hlist_node node_dead;
71349 	struct control_buf *ctrl;
71350 	u8 duplex;
71351 	u32 speed;
71352 	long unsigned int guest_offloads;
71353 	long unsigned int guest_offloads_capable;
71354 	struct failover *failover;
71355 };
71356 
71357 struct icmpv6_echo {
71358 	__be16 identifier;
71359 	__be16 sequence;
71360 };
71361 
71362 struct icmpv6_nd_advt {
71363 	__u32 reserved: 5;
71364 	__u32 override: 1;
71365 	__u32 solicited: 1;
71366 	__u32 router: 1;
71367 	__u32 reserved2: 24;
71368 };
71369 
71370 struct icmpv6_nd_ra {
71371 	__u8 hop_limit;
71372 	__u8 reserved: 3;
71373 	__u8 router_pref: 2;
71374 	__u8 home_agent: 1;
71375 	__u8 other: 1;
71376 	__u8 managed: 1;
71377 	__be16 rt_lifetime;
71378 };
71379 
71380 struct icmp6hdr {
71381 	__u8 icmp6_type;
71382 	__u8 icmp6_code;
71383 	__sum16 icmp6_cksum;
71384 	union {
71385 		__be32 un_data32[1];
71386 		__be16 un_data16[2];
71387 		__u8 un_data8[4];
71388 		struct icmpv6_echo u_echo;
71389 		struct icmpv6_nd_advt u_nd_advt;
71390 		struct icmpv6_nd_ra u_nd_ra;
71391 	} icmp6_dataun;
71392 };
71393 
71394 enum {
71395 	NDA_UNSPEC = 0,
71396 	NDA_DST = 1,
71397 	NDA_LLADDR = 2,
71398 	NDA_CACHEINFO = 3,
71399 	NDA_PROBES = 4,
71400 	NDA_VLAN = 5,
71401 	NDA_PORT = 6,
71402 	NDA_VNI = 7,
71403 	NDA_IFINDEX = 8,
71404 	NDA_MASTER = 9,
71405 	NDA_LINK_NETNSID = 10,
71406 	NDA_SRC_VNI = 11,
71407 	NDA_PROTOCOL = 12,
71408 	NDA_NH_ID = 13,
71409 	NDA_FDB_EXT_ATTRS = 14,
71410 	NDA_FLAGS_EXT = 15,
71411 	__NDA_MAX = 16,
71412 };
71413 
71414 struct nda_cacheinfo {
71415 	__u32 ndm_confirmed;
71416 	__u32 ndm_used;
71417 	__u32 ndm_updated;
71418 	__u32 ndm_refcnt;
71419 };
71420 
71421 enum {
71422 	IFLA_VXLAN_UNSPEC = 0,
71423 	IFLA_VXLAN_ID = 1,
71424 	IFLA_VXLAN_GROUP = 2,
71425 	IFLA_VXLAN_LINK = 3,
71426 	IFLA_VXLAN_LOCAL = 4,
71427 	IFLA_VXLAN_TTL = 5,
71428 	IFLA_VXLAN_TOS = 6,
71429 	IFLA_VXLAN_LEARNING = 7,
71430 	IFLA_VXLAN_AGEING = 8,
71431 	IFLA_VXLAN_LIMIT = 9,
71432 	IFLA_VXLAN_PORT_RANGE = 10,
71433 	IFLA_VXLAN_PROXY = 11,
71434 	IFLA_VXLAN_RSC = 12,
71435 	IFLA_VXLAN_L2MISS = 13,
71436 	IFLA_VXLAN_L3MISS = 14,
71437 	IFLA_VXLAN_PORT = 15,
71438 	IFLA_VXLAN_GROUP6 = 16,
71439 	IFLA_VXLAN_LOCAL6 = 17,
71440 	IFLA_VXLAN_UDP_CSUM = 18,
71441 	IFLA_VXLAN_UDP_ZERO_CSUM6_TX = 19,
71442 	IFLA_VXLAN_UDP_ZERO_CSUM6_RX = 20,
71443 	IFLA_VXLAN_REMCSUM_TX = 21,
71444 	IFLA_VXLAN_REMCSUM_RX = 22,
71445 	IFLA_VXLAN_GBP = 23,
71446 	IFLA_VXLAN_REMCSUM_NOPARTIAL = 24,
71447 	IFLA_VXLAN_COLLECT_METADATA = 25,
71448 	IFLA_VXLAN_LABEL = 26,
71449 	IFLA_VXLAN_GPE = 27,
71450 	IFLA_VXLAN_TTL_INHERIT = 28,
71451 	IFLA_VXLAN_DF = 29,
71452 	__IFLA_VXLAN_MAX = 30,
71453 };
71454 
71455 struct ifla_vxlan_port_range {
71456 	__be16 low;
71457 	__be16 high;
71458 };
71459 
71460 enum ifla_vxlan_df {
71461 	VXLAN_DF_UNSET = 0,
71462 	VXLAN_DF_SET = 1,
71463 	VXLAN_DF_INHERIT = 2,
71464 	__VXLAN_DF_END = 3,
71465 	VXLAN_DF_MAX = 2,
71466 };
71467 
71468 enum {
71469 	RTN_UNSPEC = 0,
71470 	RTN_UNICAST = 1,
71471 	RTN_LOCAL = 2,
71472 	RTN_BROADCAST = 3,
71473 	RTN_ANYCAST = 4,
71474 	RTN_MULTICAST = 5,
71475 	RTN_BLACKHOLE = 6,
71476 	RTN_UNREACHABLE = 7,
71477 	RTN_PROHIBIT = 8,
71478 	RTN_THROW = 9,
71479 	RTN_NAT = 10,
71480 	RTN_XRESOLVE = 11,
71481 	__RTN_MAX = 12,
71482 };
71483 
71484 enum rtnetlink_groups {
71485 	RTNLGRP_NONE = 0,
71486 	RTNLGRP_LINK = 1,
71487 	RTNLGRP_NOTIFY = 2,
71488 	RTNLGRP_NEIGH = 3,
71489 	RTNLGRP_TC = 4,
71490 	RTNLGRP_IPV4_IFADDR = 5,
71491 	RTNLGRP_IPV4_MROUTE = 6,
71492 	RTNLGRP_IPV4_ROUTE = 7,
71493 	RTNLGRP_IPV4_RULE = 8,
71494 	RTNLGRP_IPV6_IFADDR = 9,
71495 	RTNLGRP_IPV6_MROUTE = 10,
71496 	RTNLGRP_IPV6_ROUTE = 11,
71497 	RTNLGRP_IPV6_IFINFO = 12,
71498 	RTNLGRP_DECnet_IFADDR = 13,
71499 	RTNLGRP_NOP2 = 14,
71500 	RTNLGRP_DECnet_ROUTE = 15,
71501 	RTNLGRP_DECnet_RULE = 16,
71502 	RTNLGRP_NOP4 = 17,
71503 	RTNLGRP_IPV6_PREFIX = 18,
71504 	RTNLGRP_IPV6_RULE = 19,
71505 	RTNLGRP_ND_USEROPT = 20,
71506 	RTNLGRP_PHONET_IFADDR = 21,
71507 	RTNLGRP_PHONET_ROUTE = 22,
71508 	RTNLGRP_DCB = 23,
71509 	RTNLGRP_IPV4_NETCONF = 24,
71510 	RTNLGRP_IPV6_NETCONF = 25,
71511 	RTNLGRP_MDB = 26,
71512 	RTNLGRP_MPLS_ROUTE = 27,
71513 	RTNLGRP_NSID = 28,
71514 	RTNLGRP_MPLS_NETCONF = 29,
71515 	RTNLGRP_IPV4_MROUTE_R = 30,
71516 	RTNLGRP_IPV6_MROUTE_R = 31,
71517 	RTNLGRP_NEXTHOP = 32,
71518 	RTNLGRP_BRVLAN = 33,
71519 	RTNLGRP_MCTP_IFADDR = 34,
71520 	__RTNLGRP_MAX = 35,
71521 };
71522 
71523 struct udp_hslot;
71524 
71525 struct udp_table {
71526 	struct udp_hslot *hash;
71527 	struct udp_hslot *hash2;
71528 	unsigned int mask;
71529 	unsigned int log;
71530 };
71531 
71532 struct udp_sock {
71533 	struct inet_sock inet;
71534 	int pending;
71535 	unsigned int corkflag;
71536 	__u8 encap_type;
71537 	unsigned char no_check6_tx: 1;
71538 	unsigned char no_check6_rx: 1;
71539 	unsigned char encap_enabled: 1;
71540 	unsigned char gro_enabled: 1;
71541 	unsigned char accept_udp_l4: 1;
71542 	unsigned char accept_udp_fraglist: 1;
71543 	__u16 len;
71544 	__u16 gso_size;
71545 	__u16 pcslen;
71546 	__u16 pcrlen;
71547 	__u8 pcflag;
71548 	__u8 unused[3];
71549 	int (*encap_rcv)(struct sock *, struct sk_buff *);
71550 	int (*encap_err_lookup)(struct sock *, struct sk_buff *);
71551 	void (*encap_destroy)(struct sock *);
71552 	struct sk_buff * (*gro_receive)(struct sock *, struct list_head *, struct sk_buff *);
71553 	int (*gro_complete)(struct sock *, struct sk_buff *, int);
71554 	struct sk_buff_head reader_queue;
71555 	int forward_deficit;
71556 	long: 32;
71557 	long: 64;
71558 	long: 64;
71559 	long: 64;
71560 	long: 64;
71561 };
71562 
71563 struct nd_msg {
71564 	struct icmp6hdr icmph;
71565 	struct in6_addr target;
71566 	__u8 opt[0];
71567 };
71568 
71569 enum lwtunnel_encap_types {
71570 	LWTUNNEL_ENCAP_NONE = 0,
71571 	LWTUNNEL_ENCAP_MPLS = 1,
71572 	LWTUNNEL_ENCAP_IP = 2,
71573 	LWTUNNEL_ENCAP_ILA = 3,
71574 	LWTUNNEL_ENCAP_IP6 = 4,
71575 	LWTUNNEL_ENCAP_SEG6 = 5,
71576 	LWTUNNEL_ENCAP_BPF = 6,
71577 	LWTUNNEL_ENCAP_SEG6_LOCAL = 7,
71578 	LWTUNNEL_ENCAP_RPL = 8,
71579 	LWTUNNEL_ENCAP_IOAM6 = 9,
71580 	__LWTUNNEL_ENCAP_MAX = 10,
71581 };
71582 
71583 struct udp_hslot {
71584 	struct hlist_head head;
71585 	int count;
71586 	spinlock_t lock;
71587 };
71588 
71589 struct napi_gro_cb {
71590 	void *frag0;
71591 	unsigned int frag0_len;
71592 	int data_offset;
71593 	u16 flush;
71594 	u16 flush_id;
71595 	u16 count;
71596 	u16 gro_remcsum_start;
71597 	long unsigned int age;
71598 	u16 proto;
71599 	u8 same_flow: 1;
71600 	u8 encap_mark: 1;
71601 	u8 csum_valid: 1;
71602 	u8 csum_cnt: 3;
71603 	u8 free: 2;
71604 	u8 is_ipv6: 1;
71605 	u8 is_fou: 1;
71606 	u8 is_atomic: 1;
71607 	u8 recursion_counter: 4;
71608 	u8 is_flist: 1;
71609 	__wsum csum;
71610 	struct sk_buff *last;
71611 };
71612 
71613 typedef struct sk_buff * (*gro_receive_t)(struct list_head *, struct sk_buff *);
71614 
71615 struct gro_remcsum {
71616 	int offset;
71617 	__wsum delta;
71618 };
71619 
71620 struct vlan_hdr {
71621 	__be16 h_vlan_TCI;
71622 	__be16 h_vlan_encapsulated_proto;
71623 };
71624 
71625 enum {
71626 	INET_ECN_NOT_ECT = 0,
71627 	INET_ECN_ECT_1 = 1,
71628 	INET_ECN_ECT_0 = 2,
71629 	INET_ECN_CE = 3,
71630 	INET_ECN_MASK = 3,
71631 };
71632 
71633 struct gro_cell;
71634 
71635 struct gro_cells {
71636 	struct gro_cell *cells;
71637 };
71638 
71639 struct dst_cache_pcpu;
71640 
71641 struct dst_cache {
71642 	struct dst_cache_pcpu *cache;
71643 	long unsigned int reset_ts;
71644 };
71645 
71646 enum nexthop_event_type {
71647 	NEXTHOP_EVENT_DEL = 0,
71648 	NEXTHOP_EVENT_REPLACE = 1,
71649 	NEXTHOP_EVENT_RES_TABLE_PRE_REPLACE = 2,
71650 	NEXTHOP_EVENT_BUCKET_REPLACE = 3,
71651 };
71652 
71653 enum nh_notifier_info_type {
71654 	NH_NOTIFIER_INFO_TYPE_SINGLE = 0,
71655 	NH_NOTIFIER_INFO_TYPE_GRP = 1,
71656 	NH_NOTIFIER_INFO_TYPE_RES_TABLE = 2,
71657 	NH_NOTIFIER_INFO_TYPE_RES_BUCKET = 3,
71658 };
71659 
71660 struct nh_notifier_single_info {
71661 	struct net_device *dev;
71662 	u8 gw_family;
71663 	union {
71664 		__be32 ipv4;
71665 		struct in6_addr ipv6;
71666 	};
71667 	u8 is_reject: 1;
71668 	u8 is_fdb: 1;
71669 	u8 has_encap: 1;
71670 };
71671 
71672 struct nh_notifier_grp_entry_info {
71673 	u8 weight;
71674 	u32 id;
71675 	struct nh_notifier_single_info nh;
71676 };
71677 
71678 struct nh_notifier_grp_info {
71679 	u16 num_nh;
71680 	bool is_fdb;
71681 	struct nh_notifier_grp_entry_info nh_entries[0];
71682 };
71683 
71684 struct nh_notifier_res_bucket_info {
71685 	u16 bucket_index;
71686 	unsigned int idle_timer_ms;
71687 	bool force;
71688 	struct nh_notifier_single_info old_nh;
71689 	struct nh_notifier_single_info new_nh;
71690 };
71691 
71692 struct nh_notifier_res_table_info {
71693 	u16 num_nh_buckets;
71694 	struct nh_notifier_single_info nhs[0];
71695 };
71696 
71697 struct nh_notifier_info {
71698 	struct net *net;
71699 	struct netlink_ext_ack *extack;
71700 	u32 id;
71701 	enum nh_notifier_info_type type;
71702 	union {
71703 		struct nh_notifier_single_info *nh;
71704 		struct nh_notifier_grp_info *nh_grp;
71705 		struct nh_notifier_res_table_info *nh_res_table;
71706 		struct nh_notifier_res_bucket_info *nh_res_bucket;
71707 	};
71708 };
71709 
71710 struct ip_tunnel_key {
71711 	__be64 tun_id;
71712 	union {
71713 		struct {
71714 			__be32 src;
71715 			__be32 dst;
71716 		} ipv4;
71717 		struct {
71718 			struct in6_addr src;
71719 			struct in6_addr dst;
71720 		} ipv6;
71721 	} u;
71722 	__be16 tun_flags;
71723 	u8 tos;
71724 	u8 ttl;
71725 	__be32 label;
71726 	__be16 tp_src;
71727 	__be16 tp_dst;
71728 };
71729 
71730 struct ip_tunnel_info {
71731 	struct ip_tunnel_key key;
71732 	struct dst_cache dst_cache;
71733 	u8 options_len;
71734 	u8 mode;
71735 };
71736 
71737 struct udp_port_cfg {
71738 	u8 family;
71739 	union {
71740 		struct in_addr local_ip;
71741 		struct in6_addr local_ip6;
71742 	};
71743 	union {
71744 		struct in_addr peer_ip;
71745 		struct in6_addr peer_ip6;
71746 	};
71747 	__be16 local_udp_port;
71748 	__be16 peer_udp_port;
71749 	int bind_ifindex;
71750 	unsigned int use_udp_checksums: 1;
71751 	unsigned int use_udp6_tx_checksums: 1;
71752 	unsigned int use_udp6_rx_checksums: 1;
71753 	unsigned int ipv6_v6only: 1;
71754 };
71755 
71756 typedef int (*udp_tunnel_encap_rcv_t)(struct sock *, struct sk_buff *);
71757 
71758 typedef int (*udp_tunnel_encap_err_lookup_t)(struct sock *, struct sk_buff *);
71759 
71760 typedef void (*udp_tunnel_encap_destroy_t)(struct sock *);
71761 
71762 typedef struct sk_buff * (*udp_tunnel_gro_receive_t)(struct sock *, struct list_head *, struct sk_buff *);
71763 
71764 typedef int (*udp_tunnel_gro_complete_t)(struct sock *, struct sk_buff *, int);
71765 
71766 struct udp_tunnel_sock_cfg {
71767 	void *sk_user_data;
71768 	__u8 encap_type;
71769 	udp_tunnel_encap_rcv_t encap_rcv;
71770 	udp_tunnel_encap_err_lookup_t encap_err_lookup;
71771 	udp_tunnel_encap_destroy_t encap_destroy;
71772 	udp_tunnel_gro_receive_t gro_receive;
71773 	udp_tunnel_gro_complete_t gro_complete;
71774 };
71775 
71776 enum udp_parsable_tunnel_type {
71777 	UDP_TUNNEL_TYPE_VXLAN = 1,
71778 	UDP_TUNNEL_TYPE_GENEVE = 2,
71779 	UDP_TUNNEL_TYPE_VXLAN_GPE = 4,
71780 };
71781 
71782 struct udp_tunnel_info {
71783 	short unsigned int type;
71784 	sa_family_t sa_family;
71785 	__be16 port;
71786 	u8 hw_priv;
71787 };
71788 
71789 struct udp_tunnel_nic_shared {
71790 	struct udp_tunnel_nic *udp_tunnel_nic_info;
71791 	struct list_head devices;
71792 };
71793 
71794 struct udp_tunnel_nic_ops {
71795 	void (*get_port)(struct net_device *, unsigned int, unsigned int, struct udp_tunnel_info *);
71796 	void (*set_port_priv)(struct net_device *, unsigned int, unsigned int, u8);
71797 	void (*add_port)(struct net_device *, struct udp_tunnel_info *);
71798 	void (*del_port)(struct net_device *, struct udp_tunnel_info *);
71799 	void (*reset_ntf)(struct net_device *);
71800 	size_t (*dump_size)(struct net_device *, unsigned int);
71801 	int (*dump_write)(struct net_device *, unsigned int, struct sk_buff *);
71802 };
71803 
71804 enum metadata_type {
71805 	METADATA_IP_TUNNEL = 0,
71806 	METADATA_HW_PORT_MUX = 1,
71807 };
71808 
71809 struct hw_port_info {
71810 	struct net_device *lower_dev;
71811 	u32 port_id;
71812 };
71813 
71814 struct metadata_dst {
71815 	struct dst_entry dst;
71816 	enum metadata_type type;
71817 	union {
71818 		struct ip_tunnel_info tun_info;
71819 		struct hw_port_info port_info;
71820 	} u;
71821 };
71822 
71823 enum switchdev_notifier_type {
71824 	SWITCHDEV_FDB_ADD_TO_BRIDGE = 1,
71825 	SWITCHDEV_FDB_DEL_TO_BRIDGE = 2,
71826 	SWITCHDEV_FDB_ADD_TO_DEVICE = 3,
71827 	SWITCHDEV_FDB_DEL_TO_DEVICE = 4,
71828 	SWITCHDEV_FDB_OFFLOADED = 5,
71829 	SWITCHDEV_FDB_FLUSH_TO_BRIDGE = 6,
71830 	SWITCHDEV_PORT_OBJ_ADD = 7,
71831 	SWITCHDEV_PORT_OBJ_DEL = 8,
71832 	SWITCHDEV_PORT_ATTR_SET = 9,
71833 	SWITCHDEV_VXLAN_FDB_ADD_TO_BRIDGE = 10,
71834 	SWITCHDEV_VXLAN_FDB_DEL_TO_BRIDGE = 11,
71835 	SWITCHDEV_VXLAN_FDB_ADD_TO_DEVICE = 12,
71836 	SWITCHDEV_VXLAN_FDB_DEL_TO_DEVICE = 13,
71837 	SWITCHDEV_VXLAN_FDB_OFFLOADED = 14,
71838 	SWITCHDEV_BRPORT_OFFLOADED = 15,
71839 	SWITCHDEV_BRPORT_UNOFFLOADED = 16,
71840 };
71841 
71842 struct switchdev_notifier_info {
71843 	struct net_device *dev;
71844 	struct netlink_ext_ack *extack;
71845 	const void *ctx;
71846 };
71847 
71848 struct vxlanhdr {
71849 	__be32 vx_flags;
71850 	__be32 vx_vni;
71851 };
71852 
71853 struct vxlanhdr_gbp {
71854 	u8 vx_flags;
71855 	u8 reserved_flags1: 3;
71856 	u8 policy_applied: 1;
71857 	u8 reserved_flags2: 2;
71858 	u8 dont_learn: 1;
71859 	u8 reserved_flags3: 1;
71860 	__be16 policy_id;
71861 	__be32 vx_vni;
71862 };
71863 
71864 struct vxlanhdr_gpe {
71865 	u8 oam_flag: 1;
71866 	u8 reserved_flags1: 1;
71867 	u8 np_applied: 1;
71868 	u8 instance_applied: 1;
71869 	u8 version: 2;
71870 	u8 reserved_flags2: 2;
71871 	u8 reserved_flags3;
71872 	u8 reserved_flags4;
71873 	u8 next_protocol;
71874 	__be32 vx_vni;
71875 };
71876 
71877 struct vxlan_metadata {
71878 	u32 gbp;
71879 };
71880 
71881 struct vxlan_sock {
71882 	struct hlist_node hlist;
71883 	struct socket *sock;
71884 	struct hlist_head vni_list[1024];
71885 	refcount_t refcnt;
71886 	u32 flags;
71887 };
71888 
71889 union vxlan_addr {
71890 	struct sockaddr_in sin;
71891 	struct sockaddr_in6 sin6;
71892 	struct sockaddr sa;
71893 };
71894 
71895 struct vxlan_rdst {
71896 	union vxlan_addr remote_ip;
71897 	__be16 remote_port;
71898 	u8 offloaded: 1;
71899 	__be32 remote_vni;
71900 	u32 remote_ifindex;
71901 	struct net_device *remote_dev;
71902 	struct list_head list;
71903 	struct callback_head rcu;
71904 	struct dst_cache dst_cache;
71905 };
71906 
71907 struct vxlan_config {
71908 	union vxlan_addr remote_ip;
71909 	union vxlan_addr saddr;
71910 	__be32 vni;
71911 	int remote_ifindex;
71912 	int mtu;
71913 	__be16 dst_port;
71914 	u16 port_min;
71915 	u16 port_max;
71916 	u8 tos;
71917 	u8 ttl;
71918 	__be32 label;
71919 	u32 flags;
71920 	long unsigned int age_interval;
71921 	unsigned int addrmax;
71922 	bool no_share;
71923 	enum ifla_vxlan_df df;
71924 };
71925 
71926 struct vxlan_dev;
71927 
71928 struct vxlan_dev_node {
71929 	struct hlist_node hlist;
71930 	struct vxlan_dev *vxlan;
71931 };
71932 
71933 struct vxlan_dev {
71934 	struct vxlan_dev_node hlist4;
71935 	struct vxlan_dev_node hlist6;
71936 	struct list_head next;
71937 	struct vxlan_sock *vn4_sock;
71938 	struct vxlan_sock *vn6_sock;
71939 	struct net_device *dev;
71940 	struct net *net;
71941 	struct vxlan_rdst default_dst;
71942 	struct timer_list age_timer;
71943 	spinlock_t hash_lock[256];
71944 	unsigned int addrcnt;
71945 	struct gro_cells gro_cells;
71946 	struct vxlan_config cfg;
71947 	struct hlist_head fdb_head[256];
71948 };
71949 
71950 struct switchdev_notifier_vxlan_fdb_info {
71951 	struct switchdev_notifier_info info;
71952 	union vxlan_addr remote_ip;
71953 	__be16 remote_port;
71954 	__be32 remote_vni;
71955 	u32 remote_ifindex;
71956 	u8 eth_addr[6];
71957 	__be32 vni;
71958 	bool offloaded;
71959 	bool added_by_user;
71960 };
71961 
71962 struct ip6_tnl_encap_ops {
71963 	size_t (*encap_hlen)(struct ip_tunnel_encap *);
71964 	int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi6 *);
71965 	int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32);
71966 };
71967 
71968 struct vxlan_net {
71969 	struct list_head vxlan_list;
71970 	struct hlist_head sock_list[256];
71971 	spinlock_t sock_lock;
71972 	struct notifier_block nexthop_notifier_block;
71973 };
71974 
71975 struct vxlan_fdb {
71976 	struct hlist_node hlist;
71977 	struct callback_head rcu;
71978 	long unsigned int updated;
71979 	long unsigned int used;
71980 	struct list_head remotes;
71981 	u8 eth_addr[6];
71982 	u16 state;
71983 	__be32 vni;
71984 	u16 flags;
71985 	struct list_head nh_list;
71986 	struct nexthop *nh;
71987 	struct vxlan_dev *vdev;
71988 };
71989 
71990 struct xdp_attachment_info {
71991 	struct bpf_prog *prog;
71992 	u32 flags;
71993 };
71994 
71995 enum {
71996 	IFLA_VF_LINK_STATE_AUTO = 0,
71997 	IFLA_VF_LINK_STATE_ENABLE = 1,
71998 	IFLA_VF_LINK_STATE_DISABLE = 2,
71999 	__IFLA_VF_LINK_STATE_MAX = 3,
72000 };
72001 
72002 enum devlink_port_type {
72003 	DEVLINK_PORT_TYPE_NOTSET = 0,
72004 	DEVLINK_PORT_TYPE_AUTO = 1,
72005 	DEVLINK_PORT_TYPE_ETH = 2,
72006 	DEVLINK_PORT_TYPE_IB = 3,
72007 };
72008 
72009 enum devlink_port_flavour {
72010 	DEVLINK_PORT_FLAVOUR_PHYSICAL = 0,
72011 	DEVLINK_PORT_FLAVOUR_CPU = 1,
72012 	DEVLINK_PORT_FLAVOUR_DSA = 2,
72013 	DEVLINK_PORT_FLAVOUR_PCI_PF = 3,
72014 	DEVLINK_PORT_FLAVOUR_PCI_VF = 4,
72015 	DEVLINK_PORT_FLAVOUR_VIRTUAL = 5,
72016 	DEVLINK_PORT_FLAVOUR_UNUSED = 6,
72017 	DEVLINK_PORT_FLAVOUR_PCI_SF = 7,
72018 };
72019 
72020 struct devlink_port_phys_attrs {
72021 	u32 port_number;
72022 	u32 split_subport_number;
72023 };
72024 
72025 struct devlink_port_pci_pf_attrs {
72026 	u32 controller;
72027 	u16 pf;
72028 	u8 external: 1;
72029 };
72030 
72031 struct devlink_port_pci_vf_attrs {
72032 	u32 controller;
72033 	u16 pf;
72034 	u16 vf;
72035 	u8 external: 1;
72036 };
72037 
72038 struct devlink_port_pci_sf_attrs {
72039 	u32 controller;
72040 	u32 sf;
72041 	u16 pf;
72042 	u8 external: 1;
72043 };
72044 
72045 struct devlink_port_attrs {
72046 	u8 split: 1;
72047 	u8 splittable: 1;
72048 	u32 lanes;
72049 	enum devlink_port_flavour flavour;
72050 	struct netdev_phys_item_id switch_id;
72051 	union {
72052 		struct devlink_port_phys_attrs phys;
72053 		struct devlink_port_pci_pf_attrs pci_pf;
72054 		struct devlink_port_pci_vf_attrs pci_vf;
72055 		struct devlink_port_pci_sf_attrs pci_sf;
72056 	};
72057 };
72058 
72059 struct devlink;
72060 
72061 struct devlink_rate;
72062 
72063 struct devlink_port {
72064 	struct list_head list;
72065 	struct list_head param_list;
72066 	struct list_head region_list;
72067 	struct devlink *devlink;
72068 	unsigned int index;
72069 	spinlock_t type_lock;
72070 	enum devlink_port_type type;
72071 	enum devlink_port_type desired_type;
72072 	void *type_dev;
72073 	struct devlink_port_attrs attrs;
72074 	u8 attrs_set: 1;
72075 	u8 switch_port: 1;
72076 	struct delayed_work type_warn_dw;
72077 	struct list_head reporter_list;
72078 	struct mutex reporters_lock;
72079 	struct devlink_rate *devlink_rate;
72080 };
72081 
72082 struct flow_action_cookie {
72083 	u32 cookie_len;
72084 	u8 cookie[0];
72085 };
72086 
72087 struct tcf_walker {
72088 	int stop;
72089 	int skip;
72090 	int count;
72091 	bool nonempty;
72092 	long unsigned int cookie;
72093 	int (*fn)(struct tcf_proto *, void *, struct tcf_walker *);
72094 };
72095 
72096 enum devlink_eswitch_mode {
72097 	DEVLINK_ESWITCH_MODE_LEGACY = 0,
72098 	DEVLINK_ESWITCH_MODE_SWITCHDEV = 1,
72099 };
72100 
72101 enum devlink_rate_type {
72102 	DEVLINK_RATE_TYPE_LEAF = 0,
72103 	DEVLINK_RATE_TYPE_NODE = 1,
72104 };
72105 
72106 enum devlink_dpipe_field_mapping_type {
72107 	DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0,
72108 	DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 1,
72109 };
72110 
72111 struct devlink_rate {
72112 	struct list_head list;
72113 	enum devlink_rate_type type;
72114 	struct devlink *devlink;
72115 	void *priv;
72116 	u64 tx_share;
72117 	u64 tx_max;
72118 	struct devlink_rate *parent;
72119 	union {
72120 		struct devlink_port *devlink_port;
72121 		struct {
72122 			char *name;
72123 			refcount_t refcnt;
72124 		};
72125 	};
72126 };
72127 
72128 struct devlink_dpipe_field {
72129 	const char *name;
72130 	unsigned int id;
72131 	unsigned int bitwidth;
72132 	enum devlink_dpipe_field_mapping_type mapping_type;
72133 };
72134 
72135 struct devlink_dpipe_header {
72136 	const char *name;
72137 	unsigned int id;
72138 	struct devlink_dpipe_field *fields;
72139 	unsigned int fields_count;
72140 	bool global;
72141 };
72142 
72143 struct nsim_sa {
72144 	struct xfrm_state *xs;
72145 	__be32 ipaddr[4];
72146 	u32 key[4];
72147 	u32 salt;
72148 	bool used;
72149 	bool crypt;
72150 	bool rx;
72151 };
72152 
72153 struct nsim_ipsec {
72154 	struct nsim_sa sa[33];
72155 	struct dentry *pfile;
72156 	u32 count;
72157 	u32 tx;
72158 	u32 ok;
72159 };
72160 
72161 struct nsim_ethtool_pauseparam {
72162 	bool rx;
72163 	bool tx;
72164 	bool report_stats_rx;
72165 	bool report_stats_tx;
72166 };
72167 
72168 struct nsim_ethtool {
72169 	u32 get_err;
72170 	u32 set_err;
72171 	u32 channels;
72172 	struct nsim_ethtool_pauseparam pauseparam;
72173 	struct ethtool_coalesce coalesce;
72174 	struct ethtool_ringparam ring;
72175 	struct ethtool_fecparam fec;
72176 };
72177 
72178 struct nsim_dev;
72179 
72180 struct nsim_dev_port;
72181 
72182 struct nsim_bus_dev;
72183 
72184 struct netdevsim {
72185 	struct net_device *netdev;
72186 	struct nsim_dev *nsim_dev;
72187 	struct nsim_dev_port *nsim_dev_port;
72188 	u64 tx_packets;
72189 	u64 tx_bytes;
72190 	struct u64_stats_sync syncp;
72191 	struct nsim_bus_dev *nsim_bus_dev;
72192 	struct bpf_prog *bpf_offloaded;
72193 	u32 bpf_offloaded_id;
72194 	struct xdp_attachment_info xdp;
72195 	struct xdp_attachment_info xdp_hw;
72196 	bool bpf_tc_accept;
72197 	bool bpf_tc_non_bound_accept;
72198 	bool bpf_xdpdrv_accept;
72199 	bool bpf_xdpoffload_accept;
72200 	bool bpf_map_accept;
72201 	struct nsim_ipsec ipsec;
72202 	struct {
72203 		u32 inject_error;
72204 		u32 sleep;
72205 		u32 __ports[8];
72206 		u32 (*ports)[4];
72207 		struct debugfs_u32_array dfs_ports[2];
72208 	} udp_ports;
72209 	struct nsim_ethtool ethtool;
72210 };
72211 
72212 struct devlink_region;
72213 
72214 struct devlink_health_reporter;
72215 
72216 struct nsim_dev_health {
72217 	struct devlink_health_reporter *empty_reporter;
72218 	struct devlink_health_reporter *dummy_reporter;
72219 	struct dentry *ddir;
72220 	char *recovered_break_msg;
72221 	u32 binary_len;
72222 	bool fail_recover;
72223 };
72224 
72225 struct nsim_dev_psample;
72226 
72227 struct nsim_fib_data;
72228 
72229 struct nsim_trap_data;
72230 
72231 struct nsim_vf_config;
72232 
72233 struct nsim_dev {
72234 	struct nsim_bus_dev *nsim_bus_dev;
72235 	struct nsim_fib_data *fib_data;
72236 	struct nsim_trap_data *trap_data;
72237 	struct dentry *ddir;
72238 	struct dentry *ports_ddir;
72239 	struct dentry *take_snapshot;
72240 	struct dentry *nodes_ddir;
72241 	struct mutex vfs_lock;
72242 	struct nsim_vf_config *vfconfigs;
72243 	struct bpf_offload_dev *bpf_dev;
72244 	bool bpf_bind_accept;
72245 	bool bpf_bind_verifier_accept;
72246 	u32 bpf_bind_verifier_delay;
72247 	struct dentry *ddir_bpf_bound_progs;
72248 	u32 prog_id_gen;
72249 	struct list_head bpf_bound_progs;
72250 	struct list_head bpf_bound_maps;
72251 	struct netdev_phys_item_id switch_id;
72252 	struct list_head port_list;
72253 	struct mutex port_list_lock;
72254 	bool fw_update_status;
72255 	u32 fw_update_overwrite_mask;
72256 	u32 max_macs;
72257 	bool test1;
72258 	bool dont_allow_reload;
72259 	bool fail_reload;
72260 	struct devlink_region *dummy_region;
72261 	struct nsim_dev_health health;
72262 	struct flow_action_cookie *fa_cookie;
72263 	spinlock_t fa_cookie_lock;
72264 	bool fail_trap_group_set;
72265 	bool fail_trap_policer_set;
72266 	bool fail_trap_policer_counter_get;
72267 	bool fail_trap_drop_counter_get;
72268 	struct {
72269 		struct udp_tunnel_nic_shared utn_shared;
72270 		u32 __ports[8];
72271 		bool sync_all;
72272 		bool open_only;
72273 		bool ipv4_only;
72274 		bool shared;
72275 		bool static_iana_vxlan;
72276 		u32 sleep;
72277 	} udp_ports;
72278 	struct nsim_dev_psample *psample;
72279 	u16 esw_mode;
72280 };
72281 
72282 enum nsim_dev_port_type {
72283 	NSIM_DEV_PORT_TYPE_PF = 0,
72284 	NSIM_DEV_PORT_TYPE_VF = 1,
72285 };
72286 
72287 struct nsim_dev_port {
72288 	struct list_head list;
72289 	struct devlink_port devlink_port;
72290 	unsigned int port_index;
72291 	enum nsim_dev_port_type port_type;
72292 	struct dentry *ddir;
72293 	struct dentry *rate_parent;
72294 	char *parent_name;
72295 	struct netdevsim *ns;
72296 };
72297 
72298 struct nsim_bus_dev {
72299 	struct device dev;
72300 	struct list_head list;
72301 	unsigned int port_count;
72302 	unsigned int num_queues;
72303 	struct net *initial_net;
72304 	unsigned int max_vfs;
72305 	unsigned int num_vfs;
72306 	struct mutex nsim_bus_reload_lock;
72307 	bool in_reload;
72308 	bool init;
72309 };
72310 
72311 struct nsim_vf_config {
72312 	int link_state;
72313 	u16 min_tx_rate;
72314 	u16 max_tx_rate;
72315 	u16 vlan;
72316 	__be16 vlan_proto;
72317 	u16 qos;
72318 	u8 vf_mac[6];
72319 	bool spoofchk_enabled;
72320 	bool trusted;
72321 	bool rss_query_enabled;
72322 };
72323 
72324 enum devlink_sb_pool_type {
72325 	DEVLINK_SB_POOL_TYPE_INGRESS = 0,
72326 	DEVLINK_SB_POOL_TYPE_EGRESS = 1,
72327 };
72328 
72329 enum devlink_sb_threshold_type {
72330 	DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0,
72331 	DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 1,
72332 };
72333 
72334 enum devlink_eswitch_encap_mode {
72335 	DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0,
72336 	DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 1,
72337 };
72338 
72339 enum devlink_param_cmode {
72340 	DEVLINK_PARAM_CMODE_RUNTIME = 0,
72341 	DEVLINK_PARAM_CMODE_DRIVERINIT = 1,
72342 	DEVLINK_PARAM_CMODE_PERMANENT = 2,
72343 	__DEVLINK_PARAM_CMODE_MAX = 3,
72344 	DEVLINK_PARAM_CMODE_MAX = 2,
72345 };
72346 
72347 enum devlink_trap_action {
72348 	DEVLINK_TRAP_ACTION_DROP = 0,
72349 	DEVLINK_TRAP_ACTION_TRAP = 1,
72350 	DEVLINK_TRAP_ACTION_MIRROR = 2,
72351 };
72352 
72353 enum devlink_trap_type {
72354 	DEVLINK_TRAP_TYPE_DROP = 0,
72355 	DEVLINK_TRAP_TYPE_EXCEPTION = 1,
72356 	DEVLINK_TRAP_TYPE_CONTROL = 2,
72357 };
72358 
72359 enum devlink_reload_action {
72360 	DEVLINK_RELOAD_ACTION_UNSPEC = 0,
72361 	DEVLINK_RELOAD_ACTION_DRIVER_REINIT = 1,
72362 	DEVLINK_RELOAD_ACTION_FW_ACTIVATE = 2,
72363 	__DEVLINK_RELOAD_ACTION_MAX = 3,
72364 	DEVLINK_RELOAD_ACTION_MAX = 2,
72365 };
72366 
72367 enum devlink_reload_limit {
72368 	DEVLINK_RELOAD_LIMIT_UNSPEC = 0,
72369 	DEVLINK_RELOAD_LIMIT_NO_RESET = 1,
72370 	__DEVLINK_RELOAD_LIMIT_MAX = 2,
72371 	DEVLINK_RELOAD_LIMIT_MAX = 1,
72372 };
72373 
72374 enum devlink_resource_unit {
72375 	DEVLINK_RESOURCE_UNIT_ENTRY = 0,
72376 };
72377 
72378 enum devlink_port_fn_state {
72379 	DEVLINK_PORT_FN_STATE_INACTIVE = 0,
72380 	DEVLINK_PORT_FN_STATE_ACTIVE = 1,
72381 };
72382 
72383 enum devlink_port_fn_opstate {
72384 	DEVLINK_PORT_FN_OPSTATE_DETACHED = 0,
72385 	DEVLINK_PORT_FN_OPSTATE_ATTACHED = 1,
72386 };
72387 
72388 struct devlink_port_new_attrs {
72389 	enum devlink_port_flavour flavour;
72390 	unsigned int port_index;
72391 	u32 controller;
72392 	u32 sfnum;
72393 	u16 pfnum;
72394 	u8 port_index_valid: 1;
72395 	u8 controller_valid: 1;
72396 	u8 sfnum_valid: 1;
72397 };
72398 
72399 struct devlink_sb_pool_info {
72400 	enum devlink_sb_pool_type pool_type;
72401 	u32 size;
72402 	enum devlink_sb_threshold_type threshold_type;
72403 	u32 cell_size;
72404 };
72405 
72406 struct devlink_resource_size_params {
72407 	u64 size_min;
72408 	u64 size_max;
72409 	u64 size_granularity;
72410 	enum devlink_resource_unit unit;
72411 };
72412 
72413 enum devlink_param_type {
72414 	DEVLINK_PARAM_TYPE_U8 = 0,
72415 	DEVLINK_PARAM_TYPE_U16 = 1,
72416 	DEVLINK_PARAM_TYPE_U32 = 2,
72417 	DEVLINK_PARAM_TYPE_STRING = 3,
72418 	DEVLINK_PARAM_TYPE_BOOL = 4,
72419 };
72420 
72421 union devlink_param_value {
72422 	u8 vu8;
72423 	u16 vu16;
72424 	u32 vu32;
72425 	char vstr[32];
72426 	bool vbool;
72427 };
72428 
72429 struct devlink_param_gset_ctx {
72430 	union devlink_param_value val;
72431 	enum devlink_param_cmode cmode;
72432 };
72433 
72434 struct devlink_param {
72435 	u32 id;
72436 	const char *name;
72437 	bool generic;
72438 	enum devlink_param_type type;
72439 	long unsigned int supported_cmodes;
72440 	int (*get)(struct devlink *, u32, struct devlink_param_gset_ctx *);
72441 	int (*set)(struct devlink *, u32, struct devlink_param_gset_ctx *);
72442 	int (*validate)(struct devlink *, u32, union devlink_param_value, struct netlink_ext_ack *);
72443 };
72444 
72445 enum devlink_param_generic_id {
72446 	DEVLINK_PARAM_GENERIC_ID_INT_ERR_RESET = 0,
72447 	DEVLINK_PARAM_GENERIC_ID_MAX_MACS = 1,
72448 	DEVLINK_PARAM_GENERIC_ID_ENABLE_SRIOV = 2,
72449 	DEVLINK_PARAM_GENERIC_ID_REGION_SNAPSHOT = 3,
72450 	DEVLINK_PARAM_GENERIC_ID_IGNORE_ARI = 4,
72451 	DEVLINK_PARAM_GENERIC_ID_MSIX_VEC_PER_PF_MAX = 5,
72452 	DEVLINK_PARAM_GENERIC_ID_MSIX_VEC_PER_PF_MIN = 6,
72453 	DEVLINK_PARAM_GENERIC_ID_FW_LOAD_POLICY = 7,
72454 	DEVLINK_PARAM_GENERIC_ID_RESET_DEV_ON_DRV_PROBE = 8,
72455 	DEVLINK_PARAM_GENERIC_ID_ENABLE_ROCE = 9,
72456 	DEVLINK_PARAM_GENERIC_ID_ENABLE_REMOTE_DEV_RESET = 10,
72457 	DEVLINK_PARAM_GENERIC_ID_ENABLE_ETH = 11,
72458 	DEVLINK_PARAM_GENERIC_ID_ENABLE_RDMA = 12,
72459 	DEVLINK_PARAM_GENERIC_ID_ENABLE_VNET = 13,
72460 	DEVLINK_PARAM_GENERIC_ID_ENABLE_IWARP = 14,
72461 	DEVLINK_PARAM_GENERIC_ID_IO_EQ_SIZE = 15,
72462 	DEVLINK_PARAM_GENERIC_ID_EVENT_EQ_SIZE = 16,
72463 	__DEVLINK_PARAM_GENERIC_ID_MAX = 17,
72464 	DEVLINK_PARAM_GENERIC_ID_MAX = 16,
72465 };
72466 
72467 struct devlink_flash_update_params {
72468 	const struct firmware *fw;
72469 	const char *component;
72470 	u32 overwrite_mask;
72471 };
72472 
72473 struct devlink_region_ops {
72474 	const char *name;
72475 	void (*destructor)(const void *);
72476 	int (*snapshot)(struct devlink *, const struct devlink_region_ops *, struct netlink_ext_ack *, u8 **);
72477 	void *priv;
72478 };
72479 
72480 struct devlink_trap_policer {
72481 	u32 id;
72482 	u64 init_rate;
72483 	u64 init_burst;
72484 	u64 max_rate;
72485 	u64 min_rate;
72486 	u64 max_burst;
72487 	u64 min_burst;
72488 };
72489 
72490 struct devlink_trap_group {
72491 	const char *name;
72492 	u16 id;
72493 	bool generic;
72494 	u32 init_policer_id;
72495 };
72496 
72497 struct devlink_trap {
72498 	enum devlink_trap_type type;
72499 	enum devlink_trap_action init_action;
72500 	bool generic;
72501 	u16 id;
72502 	const char *name;
72503 	u16 init_group_id;
72504 	u32 metadata_cap;
72505 };
72506 
72507 enum devlink_trap_generic_id {
72508 	DEVLINK_TRAP_GENERIC_ID_SMAC_MC = 0,
72509 	DEVLINK_TRAP_GENERIC_ID_VLAN_TAG_MISMATCH = 1,
72510 	DEVLINK_TRAP_GENERIC_ID_INGRESS_VLAN_FILTER = 2,
72511 	DEVLINK_TRAP_GENERIC_ID_INGRESS_STP_FILTER = 3,
72512 	DEVLINK_TRAP_GENERIC_ID_EMPTY_TX_LIST = 4,
72513 	DEVLINK_TRAP_GENERIC_ID_PORT_LOOPBACK_FILTER = 5,
72514 	DEVLINK_TRAP_GENERIC_ID_BLACKHOLE_ROUTE = 6,
72515 	DEVLINK_TRAP_GENERIC_ID_TTL_ERROR = 7,
72516 	DEVLINK_TRAP_GENERIC_ID_TAIL_DROP = 8,
72517 	DEVLINK_TRAP_GENERIC_ID_NON_IP_PACKET = 9,
72518 	DEVLINK_TRAP_GENERIC_ID_UC_DIP_MC_DMAC = 10,
72519 	DEVLINK_TRAP_GENERIC_ID_DIP_LB = 11,
72520 	DEVLINK_TRAP_GENERIC_ID_SIP_MC = 12,
72521 	DEVLINK_TRAP_GENERIC_ID_SIP_LB = 13,
72522 	DEVLINK_TRAP_GENERIC_ID_CORRUPTED_IP_HDR = 14,
72523 	DEVLINK_TRAP_GENERIC_ID_IPV4_SIP_BC = 15,
72524 	DEVLINK_TRAP_GENERIC_ID_IPV6_MC_DIP_RESERVED_SCOPE = 16,
72525 	DEVLINK_TRAP_GENERIC_ID_IPV6_MC_DIP_INTERFACE_LOCAL_SCOPE = 17,
72526 	DEVLINK_TRAP_GENERIC_ID_MTU_ERROR = 18,
72527 	DEVLINK_TRAP_GENERIC_ID_UNRESOLVED_NEIGH = 19,
72528 	DEVLINK_TRAP_GENERIC_ID_RPF = 20,
72529 	DEVLINK_TRAP_GENERIC_ID_REJECT_ROUTE = 21,
72530 	DEVLINK_TRAP_GENERIC_ID_IPV4_LPM_UNICAST_MISS = 22,
72531 	DEVLINK_TRAP_GENERIC_ID_IPV6_LPM_UNICAST_MISS = 23,
72532 	DEVLINK_TRAP_GENERIC_ID_NON_ROUTABLE = 24,
72533 	DEVLINK_TRAP_GENERIC_ID_DECAP_ERROR = 25,
72534 	DEVLINK_TRAP_GENERIC_ID_OVERLAY_SMAC_MC = 26,
72535 	DEVLINK_TRAP_GENERIC_ID_INGRESS_FLOW_ACTION_DROP = 27,
72536 	DEVLINK_TRAP_GENERIC_ID_EGRESS_FLOW_ACTION_DROP = 28,
72537 	DEVLINK_TRAP_GENERIC_ID_STP = 29,
72538 	DEVLINK_TRAP_GENERIC_ID_LACP = 30,
72539 	DEVLINK_TRAP_GENERIC_ID_LLDP = 31,
72540 	DEVLINK_TRAP_GENERIC_ID_IGMP_QUERY = 32,
72541 	DEVLINK_TRAP_GENERIC_ID_IGMP_V1_REPORT = 33,
72542 	DEVLINK_TRAP_GENERIC_ID_IGMP_V2_REPORT = 34,
72543 	DEVLINK_TRAP_GENERIC_ID_IGMP_V3_REPORT = 35,
72544 	DEVLINK_TRAP_GENERIC_ID_IGMP_V2_LEAVE = 36,
72545 	DEVLINK_TRAP_GENERIC_ID_MLD_QUERY = 37,
72546 	DEVLINK_TRAP_GENERIC_ID_MLD_V1_REPORT = 38,
72547 	DEVLINK_TRAP_GENERIC_ID_MLD_V2_REPORT = 39,
72548 	DEVLINK_TRAP_GENERIC_ID_MLD_V1_DONE = 40,
72549 	DEVLINK_TRAP_GENERIC_ID_IPV4_DHCP = 41,
72550 	DEVLINK_TRAP_GENERIC_ID_IPV6_DHCP = 42,
72551 	DEVLINK_TRAP_GENERIC_ID_ARP_REQUEST = 43,
72552 	DEVLINK_TRAP_GENERIC_ID_ARP_RESPONSE = 44,
72553 	DEVLINK_TRAP_GENERIC_ID_ARP_OVERLAY = 45,
72554 	DEVLINK_TRAP_GENERIC_ID_IPV6_NEIGH_SOLICIT = 46,
72555 	DEVLINK_TRAP_GENERIC_ID_IPV6_NEIGH_ADVERT = 47,
72556 	DEVLINK_TRAP_GENERIC_ID_IPV4_BFD = 48,
72557 	DEVLINK_TRAP_GENERIC_ID_IPV6_BFD = 49,
72558 	DEVLINK_TRAP_GENERIC_ID_IPV4_OSPF = 50,
72559 	DEVLINK_TRAP_GENERIC_ID_IPV6_OSPF = 51,
72560 	DEVLINK_TRAP_GENERIC_ID_IPV4_BGP = 52,
72561 	DEVLINK_TRAP_GENERIC_ID_IPV6_BGP = 53,
72562 	DEVLINK_TRAP_GENERIC_ID_IPV4_VRRP = 54,
72563 	DEVLINK_TRAP_GENERIC_ID_IPV6_VRRP = 55,
72564 	DEVLINK_TRAP_GENERIC_ID_IPV4_PIM = 56,
72565 	DEVLINK_TRAP_GENERIC_ID_IPV6_PIM = 57,
72566 	DEVLINK_TRAP_GENERIC_ID_UC_LB = 58,
72567 	DEVLINK_TRAP_GENERIC_ID_LOCAL_ROUTE = 59,
72568 	DEVLINK_TRAP_GENERIC_ID_EXTERNAL_ROUTE = 60,
72569 	DEVLINK_TRAP_GENERIC_ID_IPV6_UC_DIP_LINK_LOCAL_SCOPE = 61,
72570 	DEVLINK_TRAP_GENERIC_ID_IPV6_DIP_ALL_NODES = 62,
72571 	DEVLINK_TRAP_GENERIC_ID_IPV6_DIP_ALL_ROUTERS = 63,
72572 	DEVLINK_TRAP_GENERIC_ID_IPV6_ROUTER_SOLICIT = 64,
72573 	DEVLINK_TRAP_GENERIC_ID_IPV6_ROUTER_ADVERT = 65,
72574 	DEVLINK_TRAP_GENERIC_ID_IPV6_REDIRECT = 66,
72575 	DEVLINK_TRAP_GENERIC_ID_IPV4_ROUTER_ALERT = 67,
72576 	DEVLINK_TRAP_GENERIC_ID_IPV6_ROUTER_ALERT = 68,
72577 	DEVLINK_TRAP_GENERIC_ID_PTP_EVENT = 69,
72578 	DEVLINK_TRAP_GENERIC_ID_PTP_GENERAL = 70,
72579 	DEVLINK_TRAP_GENERIC_ID_FLOW_ACTION_SAMPLE = 71,
72580 	DEVLINK_TRAP_GENERIC_ID_FLOW_ACTION_TRAP = 72,
72581 	DEVLINK_TRAP_GENERIC_ID_EARLY_DROP = 73,
72582 	DEVLINK_TRAP_GENERIC_ID_VXLAN_PARSING = 74,
72583 	DEVLINK_TRAP_GENERIC_ID_LLC_SNAP_PARSING = 75,
72584 	DEVLINK_TRAP_GENERIC_ID_VLAN_PARSING = 76,
72585 	DEVLINK_TRAP_GENERIC_ID_PPPOE_PPP_PARSING = 77,
72586 	DEVLINK_TRAP_GENERIC_ID_MPLS_PARSING = 78,
72587 	DEVLINK_TRAP_GENERIC_ID_ARP_PARSING = 79,
72588 	DEVLINK_TRAP_GENERIC_ID_IP_1_PARSING = 80,
72589 	DEVLINK_TRAP_GENERIC_ID_IP_N_PARSING = 81,
72590 	DEVLINK_TRAP_GENERIC_ID_GRE_PARSING = 82,
72591 	DEVLINK_TRAP_GENERIC_ID_UDP_PARSING = 83,
72592 	DEVLINK_TRAP_GENERIC_ID_TCP_PARSING = 84,
72593 	DEVLINK_TRAP_GENERIC_ID_IPSEC_PARSING = 85,
72594 	DEVLINK_TRAP_GENERIC_ID_SCTP_PARSING = 86,
72595 	DEVLINK_TRAP_GENERIC_ID_DCCP_PARSING = 87,
72596 	DEVLINK_TRAP_GENERIC_ID_GTP_PARSING = 88,
72597 	DEVLINK_TRAP_GENERIC_ID_ESP_PARSING = 89,
72598 	DEVLINK_TRAP_GENERIC_ID_BLACKHOLE_NEXTHOP = 90,
72599 	DEVLINK_TRAP_GENERIC_ID_DMAC_FILTER = 91,
72600 	__DEVLINK_TRAP_GENERIC_ID_MAX = 92,
72601 	DEVLINK_TRAP_GENERIC_ID_MAX = 91,
72602 };
72603 
72604 enum devlink_trap_group_generic_id {
72605 	DEVLINK_TRAP_GROUP_GENERIC_ID_L2_DROPS = 0,
72606 	DEVLINK_TRAP_GROUP_GENERIC_ID_L3_DROPS = 1,
72607 	DEVLINK_TRAP_GROUP_GENERIC_ID_L3_EXCEPTIONS = 2,
72608 	DEVLINK_TRAP_GROUP_GENERIC_ID_BUFFER_DROPS = 3,
72609 	DEVLINK_TRAP_GROUP_GENERIC_ID_TUNNEL_DROPS = 4,
72610 	DEVLINK_TRAP_GROUP_GENERIC_ID_ACL_DROPS = 5,
72611 	DEVLINK_TRAP_GROUP_GENERIC_ID_STP = 6,
72612 	DEVLINK_TRAP_GROUP_GENERIC_ID_LACP = 7,
72613 	DEVLINK_TRAP_GROUP_GENERIC_ID_LLDP = 8,
72614 	DEVLINK_TRAP_GROUP_GENERIC_ID_MC_SNOOPING = 9,
72615 	DEVLINK_TRAP_GROUP_GENERIC_ID_DHCP = 10,
72616 	DEVLINK_TRAP_GROUP_GENERIC_ID_NEIGH_DISCOVERY = 11,
72617 	DEVLINK_TRAP_GROUP_GENERIC_ID_BFD = 12,
72618 	DEVLINK_TRAP_GROUP_GENERIC_ID_OSPF = 13,
72619 	DEVLINK_TRAP_GROUP_GENERIC_ID_BGP = 14,
72620 	DEVLINK_TRAP_GROUP_GENERIC_ID_VRRP = 15,
72621 	DEVLINK_TRAP_GROUP_GENERIC_ID_PIM = 16,
72622 	DEVLINK_TRAP_GROUP_GENERIC_ID_UC_LB = 17,
72623 	DEVLINK_TRAP_GROUP_GENERIC_ID_LOCAL_DELIVERY = 18,
72624 	DEVLINK_TRAP_GROUP_GENERIC_ID_EXTERNAL_DELIVERY = 19,
72625 	DEVLINK_TRAP_GROUP_GENERIC_ID_IPV6 = 20,
72626 	DEVLINK_TRAP_GROUP_GENERIC_ID_PTP_EVENT = 21,
72627 	DEVLINK_TRAP_GROUP_GENERIC_ID_PTP_GENERAL = 22,
72628 	DEVLINK_TRAP_GROUP_GENERIC_ID_ACL_SAMPLE = 23,
72629 	DEVLINK_TRAP_GROUP_GENERIC_ID_ACL_TRAP = 24,
72630 	DEVLINK_TRAP_GROUP_GENERIC_ID_PARSER_ERROR_DROPS = 25,
72631 	__DEVLINK_TRAP_GROUP_GENERIC_ID_MAX = 26,
72632 	DEVLINK_TRAP_GROUP_GENERIC_ID_MAX = 25,
72633 };
72634 
72635 enum {
72636 	DEVLINK_F_RELOAD = 1,
72637 };
72638 
72639 struct devlink_info_req;
72640 
72641 struct devlink_ops {
72642 	u32 supported_flash_update_params;
72643 	long unsigned int reload_actions;
72644 	long unsigned int reload_limits;
72645 	int (*reload_down)(struct devlink *, bool, enum devlink_reload_action, enum devlink_reload_limit, struct netlink_ext_ack *);
72646 	int (*reload_up)(struct devlink *, enum devlink_reload_action, enum devlink_reload_limit, u32 *, struct netlink_ext_ack *);
72647 	int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
72648 	int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *);
72649 	int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *);
72650 	int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
72651 	int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
72652 	int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
72653 	int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
72654 	int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
72655 	int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
72656 	int (*sb_occ_snapshot)(struct devlink *, unsigned int);
72657 	int (*sb_occ_max_clear)(struct devlink *, unsigned int);
72658 	int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
72659 	int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
72660 	int (*eswitch_mode_get)(struct devlink *, u16 *);
72661 	int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
72662 	int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
72663 	int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
72664 	int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
72665 	int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
72666 	int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
72667 	int (*flash_update)(struct devlink *, struct devlink_flash_update_params *, struct netlink_ext_ack *);
72668 	int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
72669 	void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
72670 	int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action, struct netlink_ext_ack *);
72671 	int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
72672 	int (*trap_group_set)(struct devlink *, const struct devlink_trap_group *, const struct devlink_trap_policer *, struct netlink_ext_ack *);
72673 	int (*trap_group_action_set)(struct devlink *, const struct devlink_trap_group *, enum devlink_trap_action, struct netlink_ext_ack *);
72674 	int (*trap_drop_counter_get)(struct devlink *, const struct devlink_trap *, u64 *);
72675 	int (*trap_policer_init)(struct devlink *, const struct devlink_trap_policer *);
72676 	void (*trap_policer_fini)(struct devlink *, const struct devlink_trap_policer *);
72677 	int (*trap_policer_set)(struct devlink *, const struct devlink_trap_policer *, u64, u64, struct netlink_ext_ack *);
72678 	int (*trap_policer_counter_get)(struct devlink *, const struct devlink_trap_policer *, u64 *);
72679 	int (*port_function_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *);
72680 	int (*port_function_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *);
72681 	int (*port_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, unsigned int *);
72682 	int (*port_del)(struct devlink *, unsigned int, struct netlink_ext_ack *);
72683 	int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *);
72684 	int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *);
72685 	int (*rate_leaf_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
72686 	int (*rate_leaf_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
72687 	int (*rate_node_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
72688 	int (*rate_node_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
72689 	int (*rate_node_new)(struct devlink_rate *, void **, struct netlink_ext_ack *);
72690 	int (*rate_node_del)(struct devlink_rate *, void *, struct netlink_ext_ack *);
72691 	int (*rate_leaf_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *);
72692 	int (*rate_node_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *);
72693 };
72694 
72695 enum nsim_resource_id {
72696 	NSIM_RESOURCE_NONE = 0,
72697 	NSIM_RESOURCE_IPV4 = 1,
72698 	NSIM_RESOURCE_IPV4_FIB = 2,
72699 	NSIM_RESOURCE_IPV4_FIB_RULES = 3,
72700 	NSIM_RESOURCE_IPV6 = 4,
72701 	NSIM_RESOURCE_IPV6_FIB = 5,
72702 	NSIM_RESOURCE_IPV6_FIB_RULES = 6,
72703 	NSIM_RESOURCE_NEXTHOPS = 7,
72704 };
72705 
72706 struct nsim_trap_item;
72707 
72708 struct nsim_trap_data {
72709 	struct delayed_work trap_report_dw;
72710 	struct nsim_trap_item *trap_items_arr;
72711 	u64 *trap_policers_cnt_arr;
72712 	u64 trap_pkt_cnt;
72713 	struct nsim_dev *nsim_dev;
72714 	spinlock_t trap_lock;
72715 };
72716 
72717 enum nsim_devlink_param_id {
72718 	NSIM_DEVLINK_PARAM_ID_BASE = 16,
72719 	NSIM_DEVLINK_PARAM_ID_TEST1 = 17,
72720 };
72721 
72722 struct nsim_trap_item {
72723 	void *trap_ctx;
72724 	enum devlink_trap_action action;
72725 };
72726 
72727 enum {
72728 	NSIM_TRAP_ID_BASE = 91,
72729 	NSIM_TRAP_ID_FID_MISS = 92,
72730 };
72731 
72732 struct nsim_rate_node {
72733 	struct dentry *ddir;
72734 	struct dentry *rate_parent;
72735 	char *parent_name;
72736 	u16 tx_share;
72737 	u16 tx_max;
72738 };
72739 
72740 enum ethtool_fec_config_bits {
72741 	ETHTOOL_FEC_NONE_BIT = 0,
72742 	ETHTOOL_FEC_AUTO_BIT = 1,
72743 	ETHTOOL_FEC_OFF_BIT = 2,
72744 	ETHTOOL_FEC_RS_BIT = 3,
72745 	ETHTOOL_FEC_BASER_BIT = 4,
72746 	ETHTOOL_FEC_LLRS_BIT = 5,
72747 };
72748 
72749 struct fib_notifier_info {
72750 	int family;
72751 	struct netlink_ext_ack *extack;
72752 };
72753 
72754 enum fib_event_type {
72755 	FIB_EVENT_ENTRY_REPLACE = 0,
72756 	FIB_EVENT_ENTRY_APPEND = 1,
72757 	FIB_EVENT_ENTRY_ADD = 2,
72758 	FIB_EVENT_ENTRY_DEL = 3,
72759 	FIB_EVENT_RULE_ADD = 4,
72760 	FIB_EVENT_RULE_DEL = 5,
72761 	FIB_EVENT_NH_ADD = 6,
72762 	FIB_EVENT_NH_DEL = 7,
72763 	FIB_EVENT_VIF_ADD = 8,
72764 	FIB_EVENT_VIF_DEL = 9,
72765 };
72766 
72767 struct fib_rt_info {
72768 	struct fib_info *fi;
72769 	u32 tb_id;
72770 	__be32 dst;
72771 	int dst_len;
72772 	u8 tos;
72773 	u8 type;
72774 	u8 offload: 1;
72775 	u8 trap: 1;
72776 	u8 offload_failed: 1;
72777 	u8 unused: 5;
72778 };
72779 
72780 struct fib_entry_notifier_info {
72781 	struct fib_notifier_info info;
72782 	u32 dst;
72783 	int dst_len;
72784 	struct fib_info *fi;
72785 	u8 tos;
72786 	u8 type;
72787 	u32 tb_id;
72788 };
72789 
72790 struct fib6_entry_notifier_info {
72791 	struct fib_notifier_info info;
72792 	struct fib6_info *rt;
72793 	unsigned int nsiblings;
72794 };
72795 
72796 struct nsim_fib_entry {
72797 	u64 max;
72798 	atomic64_t num;
72799 };
72800 
72801 struct nsim_per_fib_data {
72802 	struct nsim_fib_entry fib;
72803 	struct nsim_fib_entry rules;
72804 };
72805 
72806 struct nsim_fib_data {
72807 	struct notifier_block fib_nb;
72808 	struct nsim_per_fib_data ipv4;
72809 	struct nsim_per_fib_data ipv6;
72810 	struct nsim_fib_entry nexthops;
72811 	struct rhashtable fib_rt_ht;
72812 	struct list_head fib_rt_list;
72813 	struct mutex fib_lock;
72814 	struct notifier_block nexthop_nb;
72815 	struct rhashtable nexthop_ht;
72816 	struct devlink *devlink;
72817 	struct work_struct fib_event_work;
72818 	struct list_head fib_event_queue;
72819 	spinlock_t fib_event_queue_lock;
72820 	struct mutex nh_lock;
72821 	struct dentry *ddir;
72822 	bool fail_route_offload;
72823 	bool fail_res_nexthop_group_replace;
72824 	bool fail_nexthop_bucket_replace;
72825 };
72826 
72827 struct nsim_fib_rt_key {
72828 	unsigned char addr[16];
72829 	unsigned char prefix_len;
72830 	int family;
72831 	u32 tb_id;
72832 };
72833 
72834 struct nsim_fib_rt {
72835 	struct nsim_fib_rt_key key;
72836 	struct rhash_head ht_node;
72837 	struct list_head list;
72838 };
72839 
72840 struct nsim_fib4_rt {
72841 	struct nsim_fib_rt common;
72842 	struct fib_info *fi;
72843 	u8 tos;
72844 	u8 type;
72845 };
72846 
72847 struct nsim_fib6_rt {
72848 	struct nsim_fib_rt common;
72849 	struct list_head nh_list;
72850 	unsigned int nhs;
72851 };
72852 
72853 struct nsim_fib6_rt_nh {
72854 	struct list_head list;
72855 	struct fib6_info *rt;
72856 };
72857 
72858 struct nsim_fib6_event {
72859 	struct fib6_info **rt_arr;
72860 	unsigned int nrt6;
72861 };
72862 
72863 struct nsim_fib_event {
72864 	struct list_head list;
72865 	union {
72866 		struct fib_entry_notifier_info fen_info;
72867 		struct nsim_fib6_event fib6_event;
72868 	};
72869 	struct nsim_fib_data *data;
72870 	long unsigned int event;
72871 	int family;
72872 };
72873 
72874 struct nsim_nexthop {
72875 	struct rhash_head ht_node;
72876 	u64 occ;
72877 	u32 id;
72878 	bool is_resilient;
72879 };
72880 
72881 struct devlink_fmsg;
72882 
72883 struct devlink_health_reporter_ops {
72884 	char *name;
72885 	int (*recover)(struct devlink_health_reporter *, void *, struct netlink_ext_ack *);
72886 	int (*dump)(struct devlink_health_reporter *, struct devlink_fmsg *, void *, struct netlink_ext_ack *);
72887 	int (*diagnose)(struct devlink_health_reporter *, struct devlink_fmsg *, struct netlink_ext_ack *);
72888 	int (*test)(struct devlink_health_reporter *, struct netlink_ext_ack *);
72889 };
72890 
72891 struct nsim_dev_dummy_reporter_ctx {
72892 	char *break_msg;
72893 };
72894 
72895 enum udp_tunnel_nic_info_flags {
72896 	UDP_TUNNEL_NIC_INFO_MAY_SLEEP = 1,
72897 	UDP_TUNNEL_NIC_INFO_OPEN_ONLY = 2,
72898 	UDP_TUNNEL_NIC_INFO_IPV4_ONLY = 4,
72899 	UDP_TUNNEL_NIC_INFO_STATIC_IANA_VXLAN = 8,
72900 };
72901 
72902 enum tca_id {
72903 	TCA_ID_UNSPEC = 0,
72904 	TCA_ID_POLICE = 1,
72905 	TCA_ID_GACT = 5,
72906 	TCA_ID_IPT = 6,
72907 	TCA_ID_PEDIT = 7,
72908 	TCA_ID_MIRRED = 8,
72909 	TCA_ID_NAT = 9,
72910 	TCA_ID_XT = 10,
72911 	TCA_ID_SKBEDIT = 11,
72912 	TCA_ID_VLAN = 12,
72913 	TCA_ID_BPF = 13,
72914 	TCA_ID_CONNMARK = 14,
72915 	TCA_ID_SKBMOD = 15,
72916 	TCA_ID_CSUM = 16,
72917 	TCA_ID_TUNNEL_KEY = 17,
72918 	TCA_ID_SIMP = 22,
72919 	TCA_ID_IFE = 25,
72920 	TCA_ID_SAMPLE = 26,
72921 	TCA_ID_CTINFO = 27,
72922 	TCA_ID_MPLS = 28,
72923 	TCA_ID_CT = 29,
72924 	TCA_ID_GATE = 30,
72925 	__TCA_ID_MAX = 255,
72926 };
72927 
72928 struct tcf_t {
72929 	__u64 install;
72930 	__u64 lastuse;
72931 	__u64 expires;
72932 	__u64 firstuse;
72933 };
72934 
72935 struct flow_cls_common_offload {
72936 	u32 chain_index;
72937 	__be16 protocol;
72938 	u32 prio;
72939 	struct netlink_ext_ack *extack;
72940 };
72941 
72942 struct tcf_idrinfo {
72943 	struct mutex lock;
72944 	struct idr action_idr;
72945 	struct net *net;
72946 };
72947 
72948 struct tc_action_ops;
72949 
72950 struct tc_cookie;
72951 
72952 struct tc_action {
72953 	const struct tc_action_ops *ops;
72954 	__u32 type;
72955 	struct tcf_idrinfo *idrinfo;
72956 	u32 tcfa_index;
72957 	refcount_t tcfa_refcnt;
72958 	atomic_t tcfa_bindcnt;
72959 	int tcfa_action;
72960 	struct tcf_t tcfa_tm;
72961 	long: 64;
72962 	struct gnet_stats_basic_sync tcfa_bstats;
72963 	struct gnet_stats_basic_sync tcfa_bstats_hw;
72964 	struct gnet_stats_queue tcfa_qstats;
72965 	struct net_rate_estimator *tcfa_rate_est;
72966 	spinlock_t tcfa_lock;
72967 	struct gnet_stats_basic_sync *cpu_bstats;
72968 	struct gnet_stats_basic_sync *cpu_bstats_hw;
72969 	struct gnet_stats_queue *cpu_qstats;
72970 	struct tc_cookie *act_cookie;
72971 	struct tcf_chain *goto_chain;
72972 	u32 tcfa_flags;
72973 	u8 hw_stats;
72974 	u8 used_hw_stats;
72975 	bool used_hw_stats_valid;
72976 	u32 in_hw_count;
72977 	long: 32;
72978 	long: 64;
72979 };
72980 
72981 typedef void (*tc_action_priv_destructor)(void *);
72982 
72983 struct psample_group;
72984 
72985 struct tc_action_ops {
72986 	struct list_head head;
72987 	char kind[16];
72988 	enum tca_id id;
72989 	size_t size;
72990 	struct module *owner;
72991 	int (*act)(struct sk_buff *, const struct tc_action *, struct tcf_result *);
72992 	int (*dump)(struct sk_buff *, struct tc_action *, int, int);
72993 	void (*cleanup)(struct tc_action *);
72994 	int (*lookup)(struct net *, struct tc_action **, u32);
72995 	int (*init)(struct net *, struct nlattr *, struct nlattr *, struct tc_action **, struct tcf_proto *, u32, struct netlink_ext_ack *);
72996 	int (*walk)(struct net *, struct sk_buff *, struct netlink_callback *, int, const struct tc_action_ops *, struct netlink_ext_ack *);
72997 	void (*stats_update)(struct tc_action *, u64, u64, u64, u64, bool);
72998 	size_t (*get_fill_size)(const struct tc_action *);
72999 	struct net_device * (*get_dev)(const struct tc_action *, tc_action_priv_destructor *);
73000 	struct psample_group * (*get_psample_group)(const struct tc_action *, tc_action_priv_destructor *);
73001 	int (*offload_act_setup)(struct tc_action *, void *, u32 *, bool);
73002 };
73003 
73004 struct tc_cookie {
73005 	u8 *data;
73006 	u32 len;
73007 	struct callback_head rcu;
73008 };
73009 
73010 struct tcf_exts {
73011 	__u32 type;
73012 	int nr_actions;
73013 	struct tc_action **actions;
73014 	struct net *net;
73015 	netns_tracker ns_tracker;
73016 	int action;
73017 	int police;
73018 };
73019 
73020 enum tc_clsbpf_command {
73021 	TC_CLSBPF_OFFLOAD = 0,
73022 	TC_CLSBPF_STATS = 1,
73023 };
73024 
73025 struct tc_cls_bpf_offload {
73026 	struct flow_cls_common_offload common;
73027 	enum tc_clsbpf_command command;
73028 	struct tcf_exts *exts;
73029 	struct bpf_prog *prog;
73030 	struct bpf_prog *oldprog;
73031 	const char *name;
73032 	bool exts_integrated;
73033 };
73034 
73035 struct nsim_bpf_bound_prog {
73036 	struct nsim_dev *nsim_dev;
73037 	struct bpf_prog *prog;
73038 	struct dentry *ddir;
73039 	const char *state;
73040 	bool is_loaded;
73041 	struct list_head l;
73042 };
73043 
73044 struct nsim_map_entry {
73045 	void *key;
73046 	void *value;
73047 };
73048 
73049 struct nsim_bpf_bound_map {
73050 	struct netdevsim *ns;
73051 	struct bpf_offloaded_map *map;
73052 	struct mutex mutex;
73053 	struct nsim_map_entry entry[2];
73054 	struct list_head l;
73055 };
73056 
73057 struct net_failover_info {
73058 	struct net_device *primary_dev;
73059 	struct net_device *standby_dev;
73060 	struct rtnl_link_stats64 primary_stats;
73061 	struct rtnl_link_stats64 standby_stats;
73062 	struct rtnl_link_stats64 failover_stats;
73063 	spinlock_t stats_lock;
73064 };
73065 
73066 struct serio_device_id {
73067 	__u8 type;
73068 	__u8 extra;
73069 	__u8 id;
73070 	__u8 proto;
73071 };
73072 
73073 struct serio_driver;
73074 
73075 struct serio {
73076 	void *port_data;
73077 	char name[32];
73078 	char phys[32];
73079 	char firmware_id[128];
73080 	bool manual_bind;
73081 	struct serio_device_id id;
73082 	spinlock_t lock;
73083 	int (*write)(struct serio *, unsigned char);
73084 	int (*open)(struct serio *);
73085 	void (*close)(struct serio *);
73086 	int (*start)(struct serio *);
73087 	void (*stop)(struct serio *);
73088 	struct serio *parent;
73089 	struct list_head child_node;
73090 	struct list_head children;
73091 	unsigned int depth;
73092 	struct serio_driver *drv;
73093 	struct mutex drv_mutex;
73094 	struct device dev;
73095 	struct list_head node;
73096 	struct mutex *ps2_cmd_mutex;
73097 };
73098 
73099 struct serio_driver {
73100 	const char *description;
73101 	const struct serio_device_id *id_table;
73102 	bool manual_bind;
73103 	void (*write_wakeup)(struct serio *);
73104 	irqreturn_t (*interrupt)(struct serio *, unsigned char, unsigned int);
73105 	int (*connect)(struct serio *, struct serio_driver *);
73106 	int (*reconnect)(struct serio *);
73107 	int (*fast_reconnect)(struct serio *);
73108 	void (*disconnect)(struct serio *);
73109 	void (*cleanup)(struct serio *);
73110 	struct device_driver driver;
73111 };
73112 
73113 enum serio_event_type {
73114 	SERIO_RESCAN_PORT = 0,
73115 	SERIO_RECONNECT_PORT = 1,
73116 	SERIO_RECONNECT_SUBTREE = 2,
73117 	SERIO_REGISTER_PORT = 3,
73118 	SERIO_ATTACH_DRIVER = 4,
73119 };
73120 
73121 struct serio_event {
73122 	enum serio_event_type type;
73123 	void *object;
73124 	struct module *owner;
73125 	struct list_head node;
73126 };
73127 
73128 enum i8042_controller_reset_mode {
73129 	I8042_RESET_NEVER = 0,
73130 	I8042_RESET_ALWAYS = 1,
73131 	I8042_RESET_ON_S2RAM = 2,
73132 };
73133 
73134 struct i8042_port {
73135 	struct serio *serio;
73136 	int irq;
73137 	bool exists;
73138 	bool driver_bound;
73139 	signed char mux;
73140 };
73141 
73142 struct serport {
73143 	struct tty_struct *tty;
73144 	wait_queue_head_t wait;
73145 	struct serio *serio;
73146 	struct serio_device_id id;
73147 	spinlock_t lock;
73148 	long unsigned int flags;
73149 };
73150 
73151 struct ps2dev {
73152 	struct serio *serio;
73153 	struct mutex cmd_mutex;
73154 	wait_queue_head_t wait;
73155 	long unsigned int flags;
73156 	u8 cmdbuf[8];
73157 	u8 cmdcnt;
73158 	u8 nak;
73159 };
73160 
73161 struct input_mt_slot {
73162 	int abs[14];
73163 	unsigned int frame;
73164 	unsigned int key;
73165 };
73166 
73167 struct input_mt {
73168 	int trkid;
73169 	int num_slots;
73170 	int slot;
73171 	unsigned int flags;
73172 	unsigned int frame;
73173 	int *red;
73174 	struct input_mt_slot slots[0];
73175 };
73176 
73177 union input_seq_state {
73178 	struct {
73179 		short unsigned int pos;
73180 		bool mutex_acquired;
73181 	};
73182 	void *p;
73183 };
73184 
73185 struct input_devres {
73186 	struct input_dev *input;
73187 };
73188 
73189 struct input_event {
73190 	__kernel_ulong_t __sec;
73191 	__kernel_ulong_t __usec;
73192 	__u16 type;
73193 	__u16 code;
73194 	__s32 value;
73195 };
73196 
73197 struct input_mt_pos {
73198 	s16 x;
73199 	s16 y;
73200 };
73201 
73202 struct input_dev_poller {
73203 	void (*poll)(struct input_dev *);
73204 	unsigned int poll_interval;
73205 	unsigned int poll_interval_max;
73206 	unsigned int poll_interval_min;
73207 	struct input_dev *input;
73208 	struct delayed_work work;
73209 };
73210 
73211 struct touchscreen_properties {
73212 	unsigned int max_x;
73213 	unsigned int max_y;
73214 	bool invert_x;
73215 	bool invert_y;
73216 	bool swap_x_y;
73217 };
73218 
73219 struct ml_effect_state {
73220 	struct ff_effect *effect;
73221 	long unsigned int flags;
73222 	int count;
73223 	long unsigned int play_at;
73224 	long unsigned int stop_at;
73225 	long unsigned int adj_at;
73226 };
73227 
73228 struct ml_device {
73229 	void *private;
73230 	struct ml_effect_state states[16];
73231 	int gain;
73232 	struct timer_list timer;
73233 	struct input_dev *dev;
73234 	int (*play_effect)(struct input_dev *, void *, struct ff_effect *);
73235 };
73236 
73237 struct input_mask {
73238 	__u32 type;
73239 	__u32 codes_size;
73240 	__u64 codes_ptr;
73241 };
73242 
73243 struct evdev_client;
73244 
73245 struct evdev {
73246 	int open;
73247 	struct input_handle handle;
73248 	struct evdev_client *grab;
73249 	struct list_head client_list;
73250 	spinlock_t client_lock;
73251 	struct mutex mutex;
73252 	struct device dev;
73253 	struct cdev cdev;
73254 	bool exist;
73255 };
73256 
73257 struct evdev_client {
73258 	unsigned int head;
73259 	unsigned int tail;
73260 	unsigned int packet_head;
73261 	spinlock_t buffer_lock;
73262 	wait_queue_head_t wait;
73263 	struct fasync_struct *fasync;
73264 	struct evdev *evdev;
73265 	struct list_head node;
73266 	enum input_clock_type clk_type;
73267 	bool revoked;
73268 	long unsigned int *evmasks[32];
73269 	unsigned int bufsize;
73270 	struct input_event buffer[0];
73271 };
73272 
73273 struct lirc_scancode {
73274 	__u64 timestamp;
73275 	__u16 flags;
73276 	__u16 rc_proto;
73277 	__u32 keycode;
73278 	__u64 scancode;
73279 };
73280 
73281 enum rc_proto {
73282 	RC_PROTO_UNKNOWN = 0,
73283 	RC_PROTO_OTHER = 1,
73284 	RC_PROTO_RC5 = 2,
73285 	RC_PROTO_RC5X_20 = 3,
73286 	RC_PROTO_RC5_SZ = 4,
73287 	RC_PROTO_JVC = 5,
73288 	RC_PROTO_SONY12 = 6,
73289 	RC_PROTO_SONY15 = 7,
73290 	RC_PROTO_SONY20 = 8,
73291 	RC_PROTO_NEC = 9,
73292 	RC_PROTO_NECX = 10,
73293 	RC_PROTO_NEC32 = 11,
73294 	RC_PROTO_SANYO = 12,
73295 	RC_PROTO_MCIR2_KBD = 13,
73296 	RC_PROTO_MCIR2_MSE = 14,
73297 	RC_PROTO_RC6_0 = 15,
73298 	RC_PROTO_RC6_6A_20 = 16,
73299 	RC_PROTO_RC6_6A_24 = 17,
73300 	RC_PROTO_RC6_6A_32 = 18,
73301 	RC_PROTO_RC6_MCE = 19,
73302 	RC_PROTO_SHARP = 20,
73303 	RC_PROTO_XMP = 21,
73304 	RC_PROTO_CEC = 22,
73305 	RC_PROTO_IMON = 23,
73306 	RC_PROTO_RCMM12 = 24,
73307 	RC_PROTO_RCMM24 = 25,
73308 	RC_PROTO_RCMM32 = 26,
73309 	RC_PROTO_XBOX_DVD = 27,
73310 	RC_PROTO_MAX = 27,
73311 };
73312 
73313 struct rc_map_table {
73314 	u64 scancode;
73315 	u32 keycode;
73316 };
73317 
73318 struct rc_map {
73319 	struct rc_map_table *scan;
73320 	unsigned int size;
73321 	unsigned int len;
73322 	unsigned int alloc;
73323 	enum rc_proto rc_proto;
73324 	const char *name;
73325 	spinlock_t lock;
73326 };
73327 
73328 struct rc_map_list {
73329 	struct list_head list;
73330 	struct rc_map map;
73331 };
73332 
73333 enum rc_driver_type {
73334 	RC_DRIVER_SCANCODE = 0,
73335 	RC_DRIVER_IR_RAW = 1,
73336 	RC_DRIVER_IR_RAW_TX = 2,
73337 };
73338 
73339 struct rc_scancode_filter {
73340 	u32 data;
73341 	u32 mask;
73342 };
73343 
73344 enum rc_filter_type {
73345 	RC_FILTER_NORMAL = 0,
73346 	RC_FILTER_WAKEUP = 1,
73347 	RC_FILTER_MAX = 2,
73348 };
73349 
73350 struct ir_raw_event_ctrl;
73351 
73352 struct rc_dev {
73353 	struct device dev;
73354 	bool managed_alloc;
73355 	const struct attribute_group *sysfs_groups[5];
73356 	const char *device_name;
73357 	const char *input_phys;
73358 	struct input_id input_id;
73359 	const char *driver_name;
73360 	const char *map_name;
73361 	struct rc_map rc_map;
73362 	struct mutex lock;
73363 	unsigned int minor;
73364 	struct ir_raw_event_ctrl *raw;
73365 	struct input_dev *input_dev;
73366 	enum rc_driver_type driver_type;
73367 	bool idle;
73368 	bool encode_wakeup;
73369 	u64 allowed_protocols;
73370 	u64 enabled_protocols;
73371 	u64 allowed_wakeup_protocols;
73372 	enum rc_proto wakeup_protocol;
73373 	struct rc_scancode_filter scancode_filter;
73374 	struct rc_scancode_filter scancode_wakeup_filter;
73375 	u32 scancode_mask;
73376 	u32 users;
73377 	void *priv;
73378 	spinlock_t keylock;
73379 	bool keypressed;
73380 	long unsigned int keyup_jiffies;
73381 	struct timer_list timer_keyup;
73382 	struct timer_list timer_repeat;
73383 	u32 last_keycode;
73384 	enum rc_proto last_protocol;
73385 	u64 last_scancode;
73386 	u8 last_toggle;
73387 	u32 timeout;
73388 	u32 min_timeout;
73389 	u32 max_timeout;
73390 	u32 rx_resolution;
73391 	u32 tx_resolution;
73392 	struct device lirc_dev;
73393 	struct cdev lirc_cdev;
73394 	ktime_t gap_start;
73395 	u64 gap_duration;
73396 	bool gap;
73397 	spinlock_t lirc_fh_lock;
73398 	struct list_head lirc_fh;
73399 	bool registered;
73400 	int (*change_protocol)(struct rc_dev *, u64 *);
73401 	int (*open)(struct rc_dev *);
73402 	void (*close)(struct rc_dev *);
73403 	int (*s_tx_mask)(struct rc_dev *, u32);
73404 	int (*s_tx_carrier)(struct rc_dev *, u32);
73405 	int (*s_tx_duty_cycle)(struct rc_dev *, u32);
73406 	int (*s_rx_carrier_range)(struct rc_dev *, u32, u32);
73407 	int (*tx_ir)(struct rc_dev *, unsigned int *, unsigned int);
73408 	void (*s_idle)(struct rc_dev *, bool);
73409 	int (*s_wideband_receiver)(struct rc_dev *, int);
73410 	int (*s_carrier_report)(struct rc_dev *, int);
73411 	int (*s_filter)(struct rc_dev *, struct rc_scancode_filter *);
73412 	int (*s_wakeup_filter)(struct rc_dev *, struct rc_scancode_filter *);
73413 	int (*s_timeout)(struct rc_dev *, unsigned int);
73414 };
73415 
73416 struct ir_raw_event {
73417 	union {
73418 		u32 duration;
73419 		u32 carrier;
73420 	};
73421 	u8 duty_cycle;
73422 	unsigned int pulse: 1;
73423 	unsigned int reset: 1;
73424 	unsigned int timeout: 1;
73425 	unsigned int carrier_report: 1;
73426 };
73427 
73428 struct ir_raw_event_ctrl {
73429 	struct list_head list;
73430 	struct task_struct *thread;
73431 	struct {
73432 		union {
73433 			struct __kfifo kfifo;
73434 			struct ir_raw_event *type;
73435 			const struct ir_raw_event *const_type;
73436 			char (*rectype)[0];
73437 			struct ir_raw_event *ptr;
73438 			const struct ir_raw_event *ptr_const;
73439 		};
73440 		struct ir_raw_event buf[512];
73441 	} kfifo;
73442 	ktime_t last_event;
73443 	struct rc_dev *dev;
73444 	spinlock_t edge_spinlock;
73445 	struct timer_list edge_handle;
73446 	struct ir_raw_event prev_ev;
73447 	struct ir_raw_event this_ev;
73448 	u32 bpf_sample;
73449 	struct bpf_prog_array *progs;
73450 };
73451 
73452 enum led_brightness {
73453 	LED_OFF = 0,
73454 	LED_ON = 1,
73455 	LED_HALF = 127,
73456 	LED_FULL = 255,
73457 };
73458 
73459 struct led_trigger {};
73460 
73461 struct rc_filter_attribute {
73462 	struct device_attribute attr;
73463 	enum rc_filter_type type;
73464 	bool mask;
73465 };
73466 
73467 struct ir_raw_handler {
73468 	struct list_head list;
73469 	u64 protocols;
73470 	int (*decode)(struct rc_dev *, struct ir_raw_event);
73471 	int (*encode)(enum rc_proto, u32, struct ir_raw_event *, unsigned int);
73472 	u32 carrier;
73473 	u32 min_timeout;
73474 	int (*raw_register)(struct rc_dev *);
73475 	int (*raw_unregister)(struct rc_dev *);
73476 };
73477 
73478 struct ir_raw_timings_manchester {
73479 	unsigned int leader_pulse;
73480 	unsigned int leader_space;
73481 	unsigned int clock;
73482 	unsigned int invert: 1;
73483 	unsigned int trailer_space;
73484 };
73485 
73486 struct ir_raw_timings_pd {
73487 	unsigned int header_pulse;
73488 	unsigned int header_space;
73489 	unsigned int bit_pulse;
73490 	unsigned int bit_space[2];
73491 	unsigned int trailer_pulse;
73492 	unsigned int trailer_space;
73493 	unsigned int msb_first: 1;
73494 };
73495 
73496 struct ir_raw_timings_pl {
73497 	unsigned int header_pulse;
73498 	unsigned int bit_space;
73499 	unsigned int bit_pulse[2];
73500 	unsigned int trailer_space;
73501 	unsigned int msb_first: 1;
73502 };
73503 
73504 struct lirc_fh {
73505 	struct list_head list;
73506 	struct rc_dev *rc;
73507 	int carrier_low;
73508 	struct {
73509 		union {
73510 			struct __kfifo kfifo;
73511 			unsigned int *type;
73512 			const unsigned int *const_type;
73513 			char (*rectype)[0];
73514 			unsigned int *ptr;
73515 			const unsigned int *ptr_const;
73516 		};
73517 		unsigned int buf[0];
73518 	} rawir;
73519 	struct {
73520 		union {
73521 			struct __kfifo kfifo;
73522 			struct lirc_scancode *type;
73523 			const struct lirc_scancode *const_type;
73524 			char (*rectype)[0];
73525 			struct lirc_scancode *ptr;
73526 			const struct lirc_scancode *ptr_const;
73527 		};
73528 		struct lirc_scancode buf[0];
73529 	} scancodes;
73530 	wait_queue_head_t wait_poll;
73531 	u8 send_mode;
73532 	u8 rec_mode;
73533 };
73534 
73535 typedef u64 (*btf_bpf_rc_repeat)(u32 *);
73536 
73537 typedef u64 (*btf_bpf_rc_keydown)(u32 *, u32, u64, u32);
73538 
73539 typedef u64 (*btf_bpf_rc_pointer_rel)(u32 *, s32, s32);
73540 
73541 struct loopback_dev {
73542 	struct rc_dev *dev;
73543 	u32 txmask;
73544 	u32 txcarrier;
73545 	u32 txduty;
73546 	bool idle;
73547 	bool wideband;
73548 	bool carrierreport;
73549 	u32 rxcarriermin;
73550 	u32 rxcarriermax;
73551 };
73552 
73553 struct pps_ktime {
73554 	__s64 sec;
73555 	__s32 nsec;
73556 	__u32 flags;
73557 };
73558 
73559 struct pps_kinfo {
73560 	__u32 assert_sequence;
73561 	__u32 clear_sequence;
73562 	struct pps_ktime assert_tu;
73563 	struct pps_ktime clear_tu;
73564 	int current_mode;
73565 };
73566 
73567 struct pps_kparams {
73568 	int api_version;
73569 	int mode;
73570 	struct pps_ktime assert_off_tu;
73571 	struct pps_ktime clear_off_tu;
73572 };
73573 
73574 struct pps_fdata {
73575 	struct pps_kinfo info;
73576 	struct pps_ktime timeout;
73577 };
73578 
73579 struct pps_bind_args {
73580 	int tsformat;
73581 	int edge;
73582 	int consumer;
73583 };
73584 
73585 struct pps_device;
73586 
73587 struct pps_source_info {
73588 	char name[32];
73589 	char path[32];
73590 	int mode;
73591 	void (*echo)(struct pps_device *, int, void *);
73592 	struct module *owner;
73593 	struct device *dev;
73594 };
73595 
73596 struct pps_device {
73597 	struct pps_source_info info;
73598 	struct pps_kparams params;
73599 	__u32 assert_sequence;
73600 	__u32 clear_sequence;
73601 	struct pps_ktime assert_tu;
73602 	struct pps_ktime clear_tu;
73603 	int current_mode;
73604 	unsigned int last_ev;
73605 	wait_queue_head_t queue;
73606 	unsigned int id;
73607 	const void *lookup_cookie;
73608 	struct cdev cdev;
73609 	struct device *dev;
73610 	struct fasync_struct *async_queue;
73611 	spinlock_t lock;
73612 };
73613 
73614 struct pps_event_time {
73615 	struct timespec64 ts_real;
73616 };
73617 
73618 struct ptp_clock_time {
73619 	__s64 sec;
73620 	__u32 nsec;
73621 	__u32 reserved;
73622 };
73623 
73624 struct ptp_extts_request {
73625 	unsigned int index;
73626 	unsigned int flags;
73627 	unsigned int rsv[2];
73628 };
73629 
73630 struct ptp_perout_request {
73631 	union {
73632 		struct ptp_clock_time start;
73633 		struct ptp_clock_time phase;
73634 	};
73635 	struct ptp_clock_time period;
73636 	unsigned int index;
73637 	unsigned int flags;
73638 	union {
73639 		struct ptp_clock_time on;
73640 		unsigned int rsv[4];
73641 	};
73642 };
73643 
73644 enum ptp_pin_function {
73645 	PTP_PF_NONE = 0,
73646 	PTP_PF_EXTTS = 1,
73647 	PTP_PF_PEROUT = 2,
73648 	PTP_PF_PHYSYNC = 3,
73649 };
73650 
73651 struct ptp_pin_desc {
73652 	char name[64];
73653 	unsigned int index;
73654 	unsigned int func;
73655 	unsigned int chan;
73656 	unsigned int rsv[5];
73657 };
73658 
73659 struct ptp_extts_event {
73660 	struct ptp_clock_time t;
73661 	unsigned int index;
73662 	unsigned int flags;
73663 	unsigned int rsv[2];
73664 };
73665 
73666 struct ptp_clock_request {
73667 	enum {
73668 		PTP_CLK_REQ_EXTTS = 0,
73669 		PTP_CLK_REQ_PEROUT = 1,
73670 		PTP_CLK_REQ_PPS = 2,
73671 	} type;
73672 	union {
73673 		struct ptp_extts_request extts;
73674 		struct ptp_perout_request perout;
73675 	};
73676 };
73677 
73678 struct ptp_system_timestamp {
73679 	struct timespec64 pre_ts;
73680 	struct timespec64 post_ts;
73681 };
73682 
73683 struct ptp_clock_info {
73684 	struct module *owner;
73685 	char name[32];
73686 	s32 max_adj;
73687 	int n_alarm;
73688 	int n_ext_ts;
73689 	int n_per_out;
73690 	int n_pins;
73691 	int pps;
73692 	struct ptp_pin_desc *pin_config;
73693 	int (*adjfine)(struct ptp_clock_info *, long int);
73694 	int (*adjfreq)(struct ptp_clock_info *, s32);
73695 	int (*adjphase)(struct ptp_clock_info *, s32);
73696 	int (*adjtime)(struct ptp_clock_info *, s64);
73697 	int (*gettime64)(struct ptp_clock_info *, struct timespec64 *);
73698 	int (*gettimex64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *);
73699 	int (*getcrosststamp)(struct ptp_clock_info *, struct system_device_crosststamp *);
73700 	int (*settime64)(struct ptp_clock_info *, const struct timespec64 *);
73701 	int (*enable)(struct ptp_clock_info *, struct ptp_clock_request *, int);
73702 	int (*verify)(struct ptp_clock_info *, unsigned int, enum ptp_pin_function, unsigned int);
73703 	long int (*do_aux_work)(struct ptp_clock_info *);
73704 };
73705 
73706 enum ptp_clock_events {
73707 	PTP_CLOCK_ALARM = 0,
73708 	PTP_CLOCK_EXTTS = 1,
73709 	PTP_CLOCK_PPS = 2,
73710 	PTP_CLOCK_PPSUSR = 3,
73711 };
73712 
73713 struct ptp_clock_event {
73714 	int type;
73715 	int index;
73716 	union {
73717 		u64 timestamp;
73718 		struct pps_event_time pps_times;
73719 	};
73720 };
73721 
73722 struct timestamp_event_queue {
73723 	struct ptp_extts_event buf[128];
73724 	int head;
73725 	int tail;
73726 	spinlock_t lock;
73727 };
73728 
73729 struct ptp_clock {
73730 	struct posix_clock clock;
73731 	struct device dev;
73732 	struct ptp_clock_info *info;
73733 	dev_t devid;
73734 	int index;
73735 	struct pps_device *pps_source;
73736 	long int dialed_frequency;
73737 	struct timestamp_event_queue tsevq;
73738 	struct mutex tsevq_mux;
73739 	struct mutex pincfg_mux;
73740 	wait_queue_head_t tsev_wq;
73741 	int defunct;
73742 	struct device_attribute *pin_dev_attr;
73743 	struct attribute **pin_attr;
73744 	struct attribute_group pin_attr_group;
73745 	const struct attribute_group *pin_attr_groups[2];
73746 	struct kthread_worker *kworker;
73747 	struct kthread_delayed_work aux_work;
73748 	unsigned int max_vclocks;
73749 	unsigned int n_vclocks;
73750 	int *vclock_index;
73751 	struct mutex n_vclocks_mux;
73752 	bool is_virtual_clock;
73753 };
73754 
73755 struct ptp_clock_caps {
73756 	int max_adj;
73757 	int n_alarm;
73758 	int n_ext_ts;
73759 	int n_per_out;
73760 	int pps;
73761 	int n_pins;
73762 	int cross_timestamping;
73763 	int adjust_phase;
73764 	int rsv[12];
73765 };
73766 
73767 struct ptp_sys_offset {
73768 	unsigned int n_samples;
73769 	unsigned int rsv[3];
73770 	struct ptp_clock_time ts[51];
73771 };
73772 
73773 struct ptp_sys_offset_extended {
73774 	unsigned int n_samples;
73775 	unsigned int rsv[3];
73776 	struct ptp_clock_time ts[75];
73777 };
73778 
73779 struct ptp_sys_offset_precise {
73780 	struct ptp_clock_time device;
73781 	struct ptp_clock_time sys_realtime;
73782 	struct ptp_clock_time sys_monoraw;
73783 	unsigned int rsv[4];
73784 };
73785 
73786 struct ptp_vclock {
73787 	struct ptp_clock *pclock;
73788 	struct ptp_clock_info info;
73789 	struct ptp_clock *clock;
73790 	struct cyclecounter cc;
73791 	struct timecounter tc;
73792 	spinlock_t lock;
73793 };
73794 
73795 enum {
73796 	POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0,
73797 	POWER_SUPPLY_TECHNOLOGY_NiMH = 1,
73798 	POWER_SUPPLY_TECHNOLOGY_LION = 2,
73799 	POWER_SUPPLY_TECHNOLOGY_LIPO = 3,
73800 	POWER_SUPPLY_TECHNOLOGY_LiFe = 4,
73801 	POWER_SUPPLY_TECHNOLOGY_NiCd = 5,
73802 	POWER_SUPPLY_TECHNOLOGY_LiMn = 6,
73803 };
73804 
73805 enum power_supply_property {
73806 	POWER_SUPPLY_PROP_STATUS = 0,
73807 	POWER_SUPPLY_PROP_CHARGE_TYPE = 1,
73808 	POWER_SUPPLY_PROP_HEALTH = 2,
73809 	POWER_SUPPLY_PROP_PRESENT = 3,
73810 	POWER_SUPPLY_PROP_ONLINE = 4,
73811 	POWER_SUPPLY_PROP_AUTHENTIC = 5,
73812 	POWER_SUPPLY_PROP_TECHNOLOGY = 6,
73813 	POWER_SUPPLY_PROP_CYCLE_COUNT = 7,
73814 	POWER_SUPPLY_PROP_VOLTAGE_MAX = 8,
73815 	POWER_SUPPLY_PROP_VOLTAGE_MIN = 9,
73816 	POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN = 10,
73817 	POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN = 11,
73818 	POWER_SUPPLY_PROP_VOLTAGE_NOW = 12,
73819 	POWER_SUPPLY_PROP_VOLTAGE_AVG = 13,
73820 	POWER_SUPPLY_PROP_VOLTAGE_OCV = 14,
73821 	POWER_SUPPLY_PROP_VOLTAGE_BOOT = 15,
73822 	POWER_SUPPLY_PROP_CURRENT_MAX = 16,
73823 	POWER_SUPPLY_PROP_CURRENT_NOW = 17,
73824 	POWER_SUPPLY_PROP_CURRENT_AVG = 18,
73825 	POWER_SUPPLY_PROP_CURRENT_BOOT = 19,
73826 	POWER_SUPPLY_PROP_POWER_NOW = 20,
73827 	POWER_SUPPLY_PROP_POWER_AVG = 21,
73828 	POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN = 22,
73829 	POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN = 23,
73830 	POWER_SUPPLY_PROP_CHARGE_FULL = 24,
73831 	POWER_SUPPLY_PROP_CHARGE_EMPTY = 25,
73832 	POWER_SUPPLY_PROP_CHARGE_NOW = 26,
73833 	POWER_SUPPLY_PROP_CHARGE_AVG = 27,
73834 	POWER_SUPPLY_PROP_CHARGE_COUNTER = 28,
73835 	POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT = 29,
73836 	POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX = 30,
73837 	POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE = 31,
73838 	POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX = 32,
73839 	POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT = 33,
73840 	POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT_MAX = 34,
73841 	POWER_SUPPLY_PROP_CHARGE_CONTROL_START_THRESHOLD = 35,
73842 	POWER_SUPPLY_PROP_CHARGE_CONTROL_END_THRESHOLD = 36,
73843 	POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR = 37,
73844 	POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT = 38,
73845 	POWER_SUPPLY_PROP_INPUT_VOLTAGE_LIMIT = 39,
73846 	POWER_SUPPLY_PROP_INPUT_POWER_LIMIT = 40,
73847 	POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN = 41,
73848 	POWER_SUPPLY_PROP_ENERGY_EMPTY_DESIGN = 42,
73849 	POWER_SUPPLY_PROP_ENERGY_FULL = 43,
73850 	POWER_SUPPLY_PROP_ENERGY_EMPTY = 44,
73851 	POWER_SUPPLY_PROP_ENERGY_NOW = 45,
73852 	POWER_SUPPLY_PROP_ENERGY_AVG = 46,
73853 	POWER_SUPPLY_PROP_CAPACITY = 47,
73854 	POWER_SUPPLY_PROP_CAPACITY_ALERT_MIN = 48,
73855 	POWER_SUPPLY_PROP_CAPACITY_ALERT_MAX = 49,
73856 	POWER_SUPPLY_PROP_CAPACITY_ERROR_MARGIN = 50,
73857 	POWER_SUPPLY_PROP_CAPACITY_LEVEL = 51,
73858 	POWER_SUPPLY_PROP_TEMP = 52,
73859 	POWER_SUPPLY_PROP_TEMP_MAX = 53,
73860 	POWER_SUPPLY_PROP_TEMP_MIN = 54,
73861 	POWER_SUPPLY_PROP_TEMP_ALERT_MIN = 55,
73862 	POWER_SUPPLY_PROP_TEMP_ALERT_MAX = 56,
73863 	POWER_SUPPLY_PROP_TEMP_AMBIENT = 57,
73864 	POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MIN = 58,
73865 	POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MAX = 59,
73866 	POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW = 60,
73867 	POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG = 61,
73868 	POWER_SUPPLY_PROP_TIME_TO_FULL_NOW = 62,
73869 	POWER_SUPPLY_PROP_TIME_TO_FULL_AVG = 63,
73870 	POWER_SUPPLY_PROP_TYPE = 64,
73871 	POWER_SUPPLY_PROP_USB_TYPE = 65,
73872 	POWER_SUPPLY_PROP_SCOPE = 66,
73873 	POWER_SUPPLY_PROP_PRECHARGE_CURRENT = 67,
73874 	POWER_SUPPLY_PROP_CHARGE_TERM_CURRENT = 68,
73875 	POWER_SUPPLY_PROP_CALIBRATE = 69,
73876 	POWER_SUPPLY_PROP_MANUFACTURE_YEAR = 70,
73877 	POWER_SUPPLY_PROP_MANUFACTURE_MONTH = 71,
73878 	POWER_SUPPLY_PROP_MANUFACTURE_DAY = 72,
73879 	POWER_SUPPLY_PROP_MODEL_NAME = 73,
73880 	POWER_SUPPLY_PROP_MANUFACTURER = 74,
73881 	POWER_SUPPLY_PROP_SERIAL_NUMBER = 75,
73882 };
73883 
73884 enum power_supply_type {
73885 	POWER_SUPPLY_TYPE_UNKNOWN = 0,
73886 	POWER_SUPPLY_TYPE_BATTERY = 1,
73887 	POWER_SUPPLY_TYPE_UPS = 2,
73888 	POWER_SUPPLY_TYPE_MAINS = 3,
73889 	POWER_SUPPLY_TYPE_USB = 4,
73890 	POWER_SUPPLY_TYPE_USB_DCP = 5,
73891 	POWER_SUPPLY_TYPE_USB_CDP = 6,
73892 	POWER_SUPPLY_TYPE_USB_ACA = 7,
73893 	POWER_SUPPLY_TYPE_USB_TYPE_C = 8,
73894 	POWER_SUPPLY_TYPE_USB_PD = 9,
73895 	POWER_SUPPLY_TYPE_USB_PD_DRP = 10,
73896 	POWER_SUPPLY_TYPE_APPLE_BRICK_ID = 11,
73897 	POWER_SUPPLY_TYPE_WIRELESS = 12,
73898 };
73899 
73900 enum power_supply_usb_type {
73901 	POWER_SUPPLY_USB_TYPE_UNKNOWN = 0,
73902 	POWER_SUPPLY_USB_TYPE_SDP = 1,
73903 	POWER_SUPPLY_USB_TYPE_DCP = 2,
73904 	POWER_SUPPLY_USB_TYPE_CDP = 3,
73905 	POWER_SUPPLY_USB_TYPE_ACA = 4,
73906 	POWER_SUPPLY_USB_TYPE_C = 5,
73907 	POWER_SUPPLY_USB_TYPE_PD = 6,
73908 	POWER_SUPPLY_USB_TYPE_PD_DRP = 7,
73909 	POWER_SUPPLY_USB_TYPE_PD_PPS = 8,
73910 	POWER_SUPPLY_USB_TYPE_APPLE_BRICK_ID = 9,
73911 };
73912 
73913 enum power_supply_notifier_events {
73914 	PSY_EVENT_PROP_CHANGED = 0,
73915 };
73916 
73917 union power_supply_propval {
73918 	int intval;
73919 	const char *strval;
73920 };
73921 
73922 struct power_supply_config {
73923 	struct device_node *of_node;
73924 	struct fwnode_handle *fwnode;
73925 	void *drv_data;
73926 	const struct attribute_group **attr_grp;
73927 	char **supplied_to;
73928 	size_t num_supplicants;
73929 };
73930 
73931 struct power_supply;
73932 
73933 struct power_supply_desc {
73934 	const char *name;
73935 	enum power_supply_type type;
73936 	const enum power_supply_usb_type *usb_types;
73937 	size_t num_usb_types;
73938 	const enum power_supply_property *properties;
73939 	size_t num_properties;
73940 	int (*get_property)(struct power_supply *, enum power_supply_property, union power_supply_propval *);
73941 	int (*set_property)(struct power_supply *, enum power_supply_property, const union power_supply_propval *);
73942 	int (*property_is_writeable)(struct power_supply *, enum power_supply_property);
73943 	void (*external_power_changed)(struct power_supply *);
73944 	void (*set_charged)(struct power_supply *);
73945 	bool no_thermal;
73946 	int use_for_apm;
73947 };
73948 
73949 struct thermal_zone_device;
73950 
73951 struct power_supply {
73952 	const struct power_supply_desc *desc;
73953 	char **supplied_to;
73954 	size_t num_supplicants;
73955 	char **supplied_from;
73956 	size_t num_supplies;
73957 	struct device_node *of_node;
73958 	void *drv_data;
73959 	struct device dev;
73960 	struct work_struct changed_work;
73961 	struct delayed_work deferred_register_work;
73962 	spinlock_t changed_lock;
73963 	bool changed;
73964 	bool initialized;
73965 	bool removing;
73966 	atomic_t use_cnt;
73967 	struct thermal_zone_device *tzd;
73968 	struct thermal_cooling_device *tcd;
73969 };
73970 
73971 enum thermal_device_mode {
73972 	THERMAL_DEVICE_DISABLED = 0,
73973 	THERMAL_DEVICE_ENABLED = 1,
73974 };
73975 
73976 enum thermal_notify_event {
73977 	THERMAL_EVENT_UNSPECIFIED = 0,
73978 	THERMAL_EVENT_TEMP_SAMPLE = 1,
73979 	THERMAL_TRIP_VIOLATED = 2,
73980 	THERMAL_TRIP_CHANGED = 3,
73981 	THERMAL_DEVICE_DOWN = 4,
73982 	THERMAL_DEVICE_UP = 5,
73983 	THERMAL_DEVICE_POWER_CAPABILITY_CHANGED = 6,
73984 	THERMAL_TABLE_CHANGED = 7,
73985 	THERMAL_EVENT_KEEP_ALIVE = 8,
73986 };
73987 
73988 struct thermal_attr;
73989 
73990 struct thermal_zone_device_ops;
73991 
73992 struct thermal_zone_params;
73993 
73994 struct thermal_governor;
73995 
73996 struct thermal_zone_device {
73997 	int id;
73998 	char type[20];
73999 	struct device device;
74000 	struct attribute_group trips_attribute_group;
74001 	struct thermal_attr *trip_temp_attrs;
74002 	struct thermal_attr *trip_type_attrs;
74003 	struct thermal_attr *trip_hyst_attrs;
74004 	enum thermal_device_mode mode;
74005 	void *devdata;
74006 	int trips;
74007 	long unsigned int trips_disabled;
74008 	long unsigned int passive_delay_jiffies;
74009 	long unsigned int polling_delay_jiffies;
74010 	int temperature;
74011 	int last_temperature;
74012 	int emul_temperature;
74013 	int passive;
74014 	int prev_low_trip;
74015 	int prev_high_trip;
74016 	atomic_t need_update;
74017 	struct thermal_zone_device_ops *ops;
74018 	struct thermal_zone_params *tzp;
74019 	struct thermal_governor *governor;
74020 	void *governor_data;
74021 	struct list_head thermal_instances;
74022 	struct ida ida;
74023 	struct mutex lock;
74024 	struct list_head node;
74025 	struct delayed_work poll_queue;
74026 	enum thermal_notify_event notify_event;
74027 };
74028 
74029 struct power_supply_battery_ocv_table {
74030 	int ocv;
74031 	int capacity;
74032 };
74033 
74034 struct power_supply_resistance_temp_table {
74035 	int temp;
74036 	int resistance;
74037 };
74038 
74039 struct power_supply_battery_info {
74040 	unsigned int technology;
74041 	int energy_full_design_uwh;
74042 	int charge_full_design_uah;
74043 	int voltage_min_design_uv;
74044 	int voltage_max_design_uv;
74045 	int tricklecharge_current_ua;
74046 	int precharge_current_ua;
74047 	int precharge_voltage_max_uv;
74048 	int charge_term_current_ua;
74049 	int charge_restart_voltage_uv;
74050 	int overvoltage_limit_uv;
74051 	int constant_charge_current_max_ua;
74052 	int constant_charge_voltage_max_uv;
74053 	int factory_internal_resistance_uohm;
74054 	int ocv_temp[20];
74055 	int temp_ambient_alert_min;
74056 	int temp_ambient_alert_max;
74057 	int temp_alert_min;
74058 	int temp_alert_max;
74059 	int temp_min;
74060 	int temp_max;
74061 	struct power_supply_battery_ocv_table *ocv_table[20];
74062 	int ocv_table_size[20];
74063 	struct power_supply_resistance_temp_table *resist_table;
74064 	int resist_table_size;
74065 };
74066 
74067 enum thermal_trip_type {
74068 	THERMAL_TRIP_ACTIVE = 0,
74069 	THERMAL_TRIP_PASSIVE = 1,
74070 	THERMAL_TRIP_HOT = 2,
74071 	THERMAL_TRIP_CRITICAL = 3,
74072 };
74073 
74074 enum thermal_trend {
74075 	THERMAL_TREND_STABLE = 0,
74076 	THERMAL_TREND_RAISING = 1,
74077 	THERMAL_TREND_DROPPING = 2,
74078 	THERMAL_TREND_RAISE_FULL = 3,
74079 	THERMAL_TREND_DROP_FULL = 4,
74080 };
74081 
74082 struct thermal_zone_device_ops {
74083 	int (*bind)(struct thermal_zone_device *, struct thermal_cooling_device *);
74084 	int (*unbind)(struct thermal_zone_device *, struct thermal_cooling_device *);
74085 	int (*get_temp)(struct thermal_zone_device *, int *);
74086 	int (*set_trips)(struct thermal_zone_device *, int, int);
74087 	int (*change_mode)(struct thermal_zone_device *, enum thermal_device_mode);
74088 	int (*get_trip_type)(struct thermal_zone_device *, int, enum thermal_trip_type *);
74089 	int (*get_trip_temp)(struct thermal_zone_device *, int, int *);
74090 	int (*set_trip_temp)(struct thermal_zone_device *, int, int);
74091 	int (*get_trip_hyst)(struct thermal_zone_device *, int, int *);
74092 	int (*set_trip_hyst)(struct thermal_zone_device *, int, int);
74093 	int (*get_crit_temp)(struct thermal_zone_device *, int *);
74094 	int (*set_emul_temp)(struct thermal_zone_device *, int);
74095 	int (*get_trend)(struct thermal_zone_device *, int, enum thermal_trend *);
74096 	void (*hot)(struct thermal_zone_device *);
74097 	void (*critical)(struct thermal_zone_device *);
74098 };
74099 
74100 struct thermal_bind_params;
74101 
74102 struct thermal_zone_params {
74103 	char governor_name[20];
74104 	bool no_hwmon;
74105 	int num_tbps;
74106 	struct thermal_bind_params *tbp;
74107 	u32 sustainable_power;
74108 	s32 k_po;
74109 	s32 k_pu;
74110 	s32 k_i;
74111 	s32 k_d;
74112 	s32 integral_cutoff;
74113 	int slope;
74114 	int offset;
74115 };
74116 
74117 struct thermal_governor {
74118 	char name[20];
74119 	int (*bind_to_tz)(struct thermal_zone_device *);
74120 	void (*unbind_from_tz)(struct thermal_zone_device *);
74121 	int (*throttle)(struct thermal_zone_device *, int);
74122 	struct list_head governor_list;
74123 };
74124 
74125 struct thermal_bind_params {
74126 	struct thermal_cooling_device *cdev;
74127 	int weight;
74128 	int trip_mask;
74129 	long unsigned int *binding_limits;
74130 	int (*match)(struct thermal_zone_device *, struct thermal_cooling_device *);
74131 };
74132 
74133 struct psy_am_i_supplied_data {
74134 	struct power_supply *psy;
74135 	unsigned int count;
74136 };
74137 
74138 enum {
74139 	POWER_SUPPLY_STATUS_UNKNOWN = 0,
74140 	POWER_SUPPLY_STATUS_CHARGING = 1,
74141 	POWER_SUPPLY_STATUS_DISCHARGING = 2,
74142 	POWER_SUPPLY_STATUS_NOT_CHARGING = 3,
74143 	POWER_SUPPLY_STATUS_FULL = 4,
74144 };
74145 
74146 enum {
74147 	POWER_SUPPLY_CHARGE_TYPE_UNKNOWN = 0,
74148 	POWER_SUPPLY_CHARGE_TYPE_NONE = 1,
74149 	POWER_SUPPLY_CHARGE_TYPE_TRICKLE = 2,
74150 	POWER_SUPPLY_CHARGE_TYPE_FAST = 3,
74151 	POWER_SUPPLY_CHARGE_TYPE_STANDARD = 4,
74152 	POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE = 5,
74153 	POWER_SUPPLY_CHARGE_TYPE_CUSTOM = 6,
74154 	POWER_SUPPLY_CHARGE_TYPE_LONGLIFE = 7,
74155 };
74156 
74157 enum {
74158 	POWER_SUPPLY_HEALTH_UNKNOWN = 0,
74159 	POWER_SUPPLY_HEALTH_GOOD = 1,
74160 	POWER_SUPPLY_HEALTH_OVERHEAT = 2,
74161 	POWER_SUPPLY_HEALTH_DEAD = 3,
74162 	POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4,
74163 	POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5,
74164 	POWER_SUPPLY_HEALTH_COLD = 6,
74165 	POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7,
74166 	POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8,
74167 	POWER_SUPPLY_HEALTH_OVERCURRENT = 9,
74168 	POWER_SUPPLY_HEALTH_CALIBRATION_REQUIRED = 10,
74169 	POWER_SUPPLY_HEALTH_WARM = 11,
74170 	POWER_SUPPLY_HEALTH_COOL = 12,
74171 	POWER_SUPPLY_HEALTH_HOT = 13,
74172 	POWER_SUPPLY_HEALTH_NO_BATTERY = 14,
74173 };
74174 
74175 enum {
74176 	POWER_SUPPLY_CAPACITY_LEVEL_UNKNOWN = 0,
74177 	POWER_SUPPLY_CAPACITY_LEVEL_CRITICAL = 1,
74178 	POWER_SUPPLY_CAPACITY_LEVEL_LOW = 2,
74179 	POWER_SUPPLY_CAPACITY_LEVEL_NORMAL = 3,
74180 	POWER_SUPPLY_CAPACITY_LEVEL_HIGH = 4,
74181 	POWER_SUPPLY_CAPACITY_LEVEL_FULL = 5,
74182 };
74183 
74184 enum {
74185 	POWER_SUPPLY_SCOPE_UNKNOWN = 0,
74186 	POWER_SUPPLY_SCOPE_SYSTEM = 1,
74187 	POWER_SUPPLY_SCOPE_DEVICE = 2,
74188 };
74189 
74190 enum power_supply_charge_behaviour {
74191 	POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO = 0,
74192 	POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE = 1,
74193 	POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE = 2,
74194 };
74195 
74196 struct power_supply_attr {
74197 	const char *prop_name;
74198 	char attr_name[31];
74199 	struct device_attribute dev_attr;
74200 	const char * const *text_values;
74201 	int text_values_len;
74202 };
74203 
74204 struct thermal_attr {
74205 	struct device_attribute attr;
74206 	char name[20];
74207 };
74208 
74209 struct trace_event_raw_thermal_temperature {
74210 	struct trace_entry ent;
74211 	u32 __data_loc_thermal_zone;
74212 	int id;
74213 	int temp_prev;
74214 	int temp;
74215 	char __data[0];
74216 };
74217 
74218 struct trace_event_raw_cdev_update {
74219 	struct trace_entry ent;
74220 	u32 __data_loc_type;
74221 	long unsigned int target;
74222 	char __data[0];
74223 };
74224 
74225 struct trace_event_raw_thermal_zone_trip {
74226 	struct trace_entry ent;
74227 	u32 __data_loc_thermal_zone;
74228 	int id;
74229 	int trip;
74230 	enum thermal_trip_type trip_type;
74231 	char __data[0];
74232 };
74233 
74234 struct trace_event_data_offsets_thermal_temperature {
74235 	u32 thermal_zone;
74236 };
74237 
74238 struct trace_event_data_offsets_cdev_update {
74239 	u32 type;
74240 };
74241 
74242 struct trace_event_data_offsets_thermal_zone_trip {
74243 	u32 thermal_zone;
74244 };
74245 
74246 typedef void (*btf_trace_thermal_temperature)(void *, struct thermal_zone_device *);
74247 
74248 typedef void (*btf_trace_cdev_update)(void *, struct thermal_cooling_device *, long unsigned int);
74249 
74250 typedef void (*btf_trace_thermal_zone_trip)(void *, struct thermal_zone_device *, int, enum thermal_trip_type);
74251 
74252 struct thermal_instance {
74253 	int id;
74254 	char name[20];
74255 	struct thermal_zone_device *tz;
74256 	struct thermal_cooling_device *cdev;
74257 	int trip;
74258 	bool initialized;
74259 	long unsigned int upper;
74260 	long unsigned int lower;
74261 	long unsigned int target;
74262 	char attr_name[20];
74263 	struct device_attribute attr;
74264 	char weight_attr_name[20];
74265 	struct device_attribute weight_attr;
74266 	struct list_head tz_node;
74267 	struct list_head cdev_node;
74268 	unsigned int weight;
74269 };
74270 
74271 struct powerclamp_worker_data {
74272 	struct kthread_worker *worker;
74273 	struct kthread_work balancing_work;
74274 	struct kthread_delayed_work idle_injection_work;
74275 	unsigned int cpu;
74276 	unsigned int count;
74277 	unsigned int guard;
74278 	unsigned int window_size_now;
74279 	unsigned int target_ratio;
74280 	unsigned int duration_jiffies;
74281 	bool clamping;
74282 };
74283 
74284 struct powerclamp_calibration_data {
74285 	long unsigned int confidence;
74286 	long unsigned int steady_comp;
74287 	long unsigned int dynamic_comp;
74288 };
74289 
74290 struct pkg_cstate_info {
74291 	bool skip;
74292 	int msr_index;
74293 	int cstate_id;
74294 };
74295 
74296 struct _thermal_state {
74297 	u64 next_check;
74298 	u64 last_interrupt_time;
74299 	struct delayed_work therm_work;
74300 	long unsigned int count;
74301 	long unsigned int last_count;
74302 	long unsigned int max_time_ms;
74303 	long unsigned int total_time_ms;
74304 	bool rate_control_active;
74305 	bool new_event;
74306 	u8 level;
74307 	u8 sample_index;
74308 	u8 sample_count;
74309 	u8 average;
74310 	u8 baseline_temp;
74311 	u8 temp_samples[3];
74312 };
74313 
74314 struct thermal_state {
74315 	struct _thermal_state core_throttle;
74316 	struct _thermal_state core_power_limit;
74317 	struct _thermal_state package_throttle;
74318 	struct _thermal_state package_power_limit;
74319 	struct _thermal_state core_thresh0;
74320 	struct _thermal_state core_thresh1;
74321 	struct _thermal_state pkg_thresh0;
74322 	struct _thermal_state pkg_thresh1;
74323 };
74324 
74325 struct cpufreq_policy_data {
74326 	struct cpufreq_cpuinfo cpuinfo;
74327 	struct cpufreq_frequency_table *freq_table;
74328 	unsigned int cpu;
74329 	unsigned int min;
74330 	unsigned int max;
74331 };
74332 
74333 struct cpufreq_driver {
74334 	char name[16];
74335 	u16 flags;
74336 	void *driver_data;
74337 	int (*init)(struct cpufreq_policy *);
74338 	int (*verify)(struct cpufreq_policy_data *);
74339 	int (*setpolicy)(struct cpufreq_policy *);
74340 	int (*target)(struct cpufreq_policy *, unsigned int, unsigned int);
74341 	int (*target_index)(struct cpufreq_policy *, unsigned int);
74342 	unsigned int (*fast_switch)(struct cpufreq_policy *, unsigned int);
74343 	void (*adjust_perf)(unsigned int, long unsigned int, long unsigned int, long unsigned int);
74344 	unsigned int (*get_intermediate)(struct cpufreq_policy *, unsigned int);
74345 	int (*target_intermediate)(struct cpufreq_policy *, unsigned int);
74346 	unsigned int (*get)(unsigned int);
74347 	void (*update_limits)(unsigned int);
74348 	int (*bios_limit)(int, unsigned int *);
74349 	int (*online)(struct cpufreq_policy *);
74350 	int (*offline)(struct cpufreq_policy *);
74351 	int (*exit)(struct cpufreq_policy *);
74352 	int (*suspend)(struct cpufreq_policy *);
74353 	int (*resume)(struct cpufreq_policy *);
74354 	struct freq_attr **attr;
74355 	bool boost_enabled;
74356 	int (*set_boost)(struct cpufreq_policy *, int);
74357 	void (*register_em)(struct cpufreq_policy *);
74358 };
74359 
74360 struct cpufreq_stats {
74361 	unsigned int total_trans;
74362 	long long unsigned int last_time;
74363 	unsigned int max_state;
74364 	unsigned int state_num;
74365 	unsigned int last_index;
74366 	u64 *time_in_state;
74367 	unsigned int *freq_table;
74368 	unsigned int *trans_table;
74369 	unsigned int reset_pending;
74370 	long long unsigned int reset_time;
74371 };
74372 
74373 enum {
74374 	OD_NORMAL_SAMPLE = 0,
74375 	OD_SUB_SAMPLE = 1,
74376 };
74377 
74378 struct dbs_data {
74379 	struct gov_attr_set attr_set;
74380 	void *tuners;
74381 	unsigned int ignore_nice_load;
74382 	unsigned int sampling_rate;
74383 	unsigned int sampling_down_factor;
74384 	unsigned int up_threshold;
74385 	unsigned int io_is_busy;
74386 };
74387 
74388 struct policy_dbs_info {
74389 	struct cpufreq_policy *policy;
74390 	struct mutex update_mutex;
74391 	u64 last_sample_time;
74392 	s64 sample_delay_ns;
74393 	atomic_t work_count;
74394 	struct irq_work irq_work;
74395 	struct work_struct work;
74396 	struct dbs_data *dbs_data;
74397 	struct list_head list;
74398 	unsigned int rate_mult;
74399 	unsigned int idle_periods;
74400 	bool is_shared;
74401 	bool work_in_progress;
74402 };
74403 
74404 struct dbs_governor {
74405 	struct cpufreq_governor gov;
74406 	struct kobj_type kobj_type;
74407 	struct dbs_data *gdbs_data;
74408 	unsigned int (*gov_dbs_update)(struct cpufreq_policy *);
74409 	struct policy_dbs_info * (*alloc)();
74410 	void (*free)(struct policy_dbs_info *);
74411 	int (*init)(struct dbs_data *);
74412 	void (*exit)(struct dbs_data *);
74413 	void (*start)(struct cpufreq_policy *);
74414 };
74415 
74416 struct od_ops {
74417 	unsigned int (*powersave_bias_target)(struct cpufreq_policy *, unsigned int, unsigned int);
74418 };
74419 
74420 struct od_policy_dbs_info {
74421 	struct policy_dbs_info policy_dbs;
74422 	unsigned int freq_lo;
74423 	unsigned int freq_lo_delay_us;
74424 	unsigned int freq_hi_delay_us;
74425 	unsigned int sample_type: 1;
74426 };
74427 
74428 struct od_dbs_tuners {
74429 	unsigned int powersave_bias;
74430 };
74431 
74432 struct cs_policy_dbs_info {
74433 	struct policy_dbs_info policy_dbs;
74434 	unsigned int down_skip;
74435 	unsigned int requested_freq;
74436 };
74437 
74438 struct cs_dbs_tuners {
74439 	unsigned int down_threshold;
74440 	unsigned int freq_step;
74441 };
74442 
74443 struct cpu_dbs_info {
74444 	u64 prev_cpu_idle;
74445 	u64 prev_update_time;
74446 	u64 prev_cpu_nice;
74447 	unsigned int prev_load;
74448 	struct update_util_data update_util;
74449 	struct policy_dbs_info *policy_dbs;
74450 };
74451 
74452 enum {
74453 	UNDEFINED_CAPABLE = 0,
74454 	SYSTEM_INTEL_MSR_CAPABLE = 1,
74455 	SYSTEM_AMD_MSR_CAPABLE = 2,
74456 	SYSTEM_IO_CAPABLE = 3,
74457 };
74458 
74459 struct acpi_cpufreq_data {
74460 	unsigned int resume;
74461 	unsigned int cpu_feature;
74462 	unsigned int acpi_perf_cpu;
74463 	cpumask_var_t freqdomain_cpus;
74464 	void (*cpu_freq_write)(struct acpi_pct_register *, u32);
74465 	u32 (*cpu_freq_read)(struct acpi_pct_register *);
74466 };
74467 
74468 struct drv_cmd {
74469 	struct acpi_pct_register *reg;
74470 	u32 val;
74471 	union {
74472 		void (*write)(struct acpi_pct_register *, u32);
74473 		u32 (*read)(struct acpi_pct_register *);
74474 	} func;
74475 };
74476 
74477 struct powernow_k8_data {
74478 	unsigned int cpu;
74479 	u32 numps;
74480 	u32 batps;
74481 	u32 rvo;
74482 	u32 irt;
74483 	u32 vidmvs;
74484 	u32 vstable;
74485 	u32 plllock;
74486 	u32 exttype;
74487 	u32 currvid;
74488 	u32 currfid;
74489 	struct cpufreq_frequency_table *powernow_table;
74490 	struct acpi_processor_performance acpi_data;
74491 	struct cpumask *available_cores;
74492 };
74493 
74494 struct psb_s {
74495 	u8 signature[10];
74496 	u8 tableversion;
74497 	u8 flags1;
74498 	u16 vstable;
74499 	u8 flags2;
74500 	u8 num_tables;
74501 	u32 cpuid;
74502 	u8 plllocktime;
74503 	u8 maxfid;
74504 	u8 maxvid;
74505 	u8 numps;
74506 };
74507 
74508 struct pst_s {
74509 	u8 fid;
74510 	u8 vid;
74511 };
74512 
74513 struct powernowk8_target_arg {
74514 	struct cpufreq_policy *pol;
74515 	unsigned int newstate;
74516 };
74517 
74518 struct init_on_cpu {
74519 	struct powernow_k8_data *data;
74520 	int rc;
74521 };
74522 
74523 enum acpi_preferred_pm_profiles {
74524 	PM_UNSPECIFIED = 0,
74525 	PM_DESKTOP = 1,
74526 	PM_MOBILE = 2,
74527 	PM_WORKSTATION = 3,
74528 	PM_ENTERPRISE_SERVER = 4,
74529 	PM_SOHO_SERVER = 5,
74530 	PM_APPLIANCE_PC = 6,
74531 	PM_PERFORMANCE_SERVER = 7,
74532 	PM_TABLET = 8,
74533 };
74534 
74535 struct sample {
74536 	int32_t core_avg_perf;
74537 	int32_t busy_scaled;
74538 	u64 aperf;
74539 	u64 mperf;
74540 	u64 tsc;
74541 	u64 time;
74542 };
74543 
74544 struct pstate_data {
74545 	int current_pstate;
74546 	int min_pstate;
74547 	int max_pstate;
74548 	int max_pstate_physical;
74549 	int perf_ctl_scaling;
74550 	int scaling;
74551 	int turbo_pstate;
74552 	unsigned int min_freq;
74553 	unsigned int max_freq;
74554 	unsigned int turbo_freq;
74555 };
74556 
74557 struct vid_data {
74558 	int min;
74559 	int max;
74560 	int turbo;
74561 	int32_t ratio;
74562 };
74563 
74564 struct global_params {
74565 	bool no_turbo;
74566 	bool turbo_disabled;
74567 	bool turbo_disabled_mf;
74568 	int max_perf_pct;
74569 	int min_perf_pct;
74570 };
74571 
74572 struct cpudata {
74573 	int cpu;
74574 	unsigned int policy;
74575 	struct update_util_data update_util;
74576 	bool update_util_set;
74577 	struct pstate_data pstate;
74578 	struct vid_data vid;
74579 	u64 last_update;
74580 	u64 last_sample_time;
74581 	u64 aperf_mperf_shift;
74582 	u64 prev_aperf;
74583 	u64 prev_mperf;
74584 	u64 prev_tsc;
74585 	u64 prev_cummulative_iowait;
74586 	struct sample sample;
74587 	int32_t min_perf_ratio;
74588 	int32_t max_perf_ratio;
74589 	struct acpi_processor_performance acpi_perf_data;
74590 	bool valid_pss_table;
74591 	unsigned int iowait_boost;
74592 	s16 epp_powersave;
74593 	s16 epp_policy;
74594 	s16 epp_default;
74595 	s16 epp_cached;
74596 	u64 hwp_req_cached;
74597 	u64 hwp_cap_cached;
74598 	u64 last_io_update;
74599 	unsigned int sched_flags;
74600 	u32 hwp_boost_min;
74601 	bool suspended;
74602 	struct delayed_work hwp_notify_work;
74603 };
74604 
74605 struct pstate_funcs {
74606 	int (*get_max)();
74607 	int (*get_max_physical)();
74608 	int (*get_min)();
74609 	int (*get_turbo)();
74610 	int (*get_scaling)();
74611 	int (*get_cpu_scaling)(int);
74612 	int (*get_aperf_mperf_shift)();
74613 	u64 (*get_val)(struct cpudata *, int);
74614 	void (*get_vid)(struct cpudata *);
74615 };
74616 
74617 enum energy_perf_value_index {
74618 	EPP_INDEX_DEFAULT = 0,
74619 	EPP_INDEX_PERFORMANCE = 1,
74620 	EPP_INDEX_BALANCE_PERFORMANCE = 2,
74621 	EPP_INDEX_BALANCE_POWERSAVE = 3,
74622 	EPP_INDEX_POWERSAVE = 4,
74623 };
74624 
74625 enum {
74626 	PSS = 0,
74627 	PPC = 1,
74628 };
74629 
74630 struct cpuidle_governor {
74631 	char name[16];
74632 	struct list_head governor_list;
74633 	unsigned int rating;
74634 	int (*enable)(struct cpuidle_driver___2 *, struct cpuidle_device *);
74635 	void (*disable)(struct cpuidle_driver___2 *, struct cpuidle_device *);
74636 	int (*select)(struct cpuidle_driver___2 *, struct cpuidle_device *, bool *);
74637 	void (*reflect)(struct cpuidle_device *, int);
74638 };
74639 
74640 struct cpuidle_state_kobj {
74641 	struct cpuidle_state *state;
74642 	struct cpuidle_state_usage *state_usage;
74643 	struct completion kobj_unregister;
74644 	struct kobject kobj;
74645 	struct cpuidle_device *device;
74646 };
74647 
74648 struct cpuidle_device_kobj {
74649 	struct cpuidle_device *dev;
74650 	struct completion kobj_unregister;
74651 	struct kobject kobj;
74652 };
74653 
74654 struct cpuidle_attr {
74655 	struct attribute attr;
74656 	ssize_t (*show)(struct cpuidle_device *, char *);
74657 	ssize_t (*store)(struct cpuidle_device *, const char *, size_t);
74658 };
74659 
74660 struct cpuidle_state_attr {
74661 	struct attribute attr;
74662 	ssize_t (*show)(struct cpuidle_state *, struct cpuidle_state_usage *, char *);
74663 	ssize_t (*store)(struct cpuidle_state *, struct cpuidle_state_usage *, const char *, size_t);
74664 };
74665 
74666 struct ladder_device_state {
74667 	struct {
74668 		u32 promotion_count;
74669 		u32 demotion_count;
74670 		u64 promotion_time_ns;
74671 		u64 demotion_time_ns;
74672 	} threshold;
74673 	struct {
74674 		int promotion_count;
74675 		int demotion_count;
74676 	} stats;
74677 };
74678 
74679 struct ladder_device {
74680 	struct ladder_device_state states[10];
74681 };
74682 
74683 struct menu_device {
74684 	int needs_update;
74685 	int tick_wakeup;
74686 	u64 next_timer_ns;
74687 	unsigned int bucket;
74688 	unsigned int correction_factor[12];
74689 	unsigned int intervals[8];
74690 	int interval_ptr;
74691 };
74692 
74693 enum dmi_entry_type {
74694 	DMI_ENTRY_BIOS = 0,
74695 	DMI_ENTRY_SYSTEM = 1,
74696 	DMI_ENTRY_BASEBOARD = 2,
74697 	DMI_ENTRY_CHASSIS = 3,
74698 	DMI_ENTRY_PROCESSOR = 4,
74699 	DMI_ENTRY_MEM_CONTROLLER = 5,
74700 	DMI_ENTRY_MEM_MODULE = 6,
74701 	DMI_ENTRY_CACHE = 7,
74702 	DMI_ENTRY_PORT_CONNECTOR = 8,
74703 	DMI_ENTRY_SYSTEM_SLOT = 9,
74704 	DMI_ENTRY_ONBOARD_DEVICE = 10,
74705 	DMI_ENTRY_OEMSTRINGS = 11,
74706 	DMI_ENTRY_SYSCONF = 12,
74707 	DMI_ENTRY_BIOS_LANG = 13,
74708 	DMI_ENTRY_GROUP_ASSOC = 14,
74709 	DMI_ENTRY_SYSTEM_EVENT_LOG = 15,
74710 	DMI_ENTRY_PHYS_MEM_ARRAY = 16,
74711 	DMI_ENTRY_MEM_DEVICE = 17,
74712 	DMI_ENTRY_32_MEM_ERROR = 18,
74713 	DMI_ENTRY_MEM_ARRAY_MAPPED_ADDR = 19,
74714 	DMI_ENTRY_MEM_DEV_MAPPED_ADDR = 20,
74715 	DMI_ENTRY_BUILTIN_POINTING_DEV = 21,
74716 	DMI_ENTRY_PORTABLE_BATTERY = 22,
74717 	DMI_ENTRY_SYSTEM_RESET = 23,
74718 	DMI_ENTRY_HW_SECURITY = 24,
74719 	DMI_ENTRY_SYSTEM_POWER_CONTROLS = 25,
74720 	DMI_ENTRY_VOLTAGE_PROBE = 26,
74721 	DMI_ENTRY_COOLING_DEV = 27,
74722 	DMI_ENTRY_TEMP_PROBE = 28,
74723 	DMI_ENTRY_ELECTRICAL_CURRENT_PROBE = 29,
74724 	DMI_ENTRY_OOB_REMOTE_ACCESS = 30,
74725 	DMI_ENTRY_BIS_ENTRY = 31,
74726 	DMI_ENTRY_SYSTEM_BOOT = 32,
74727 	DMI_ENTRY_MGMT_DEV = 33,
74728 	DMI_ENTRY_MGMT_DEV_COMPONENT = 34,
74729 	DMI_ENTRY_MGMT_DEV_THRES = 35,
74730 	DMI_ENTRY_MEM_CHANNEL = 36,
74731 	DMI_ENTRY_IPMI_DEV = 37,
74732 	DMI_ENTRY_SYS_POWER_SUPPLY = 38,
74733 	DMI_ENTRY_ADDITIONAL = 39,
74734 	DMI_ENTRY_ONBOARD_DEV_EXT = 40,
74735 	DMI_ENTRY_MGMT_CONTROLLER_HOST = 41,
74736 	DMI_ENTRY_INACTIVE = 126,
74737 	DMI_ENTRY_END_OF_TABLE = 127,
74738 };
74739 
74740 struct dmi_header {
74741 	u8 type;
74742 	u8 length;
74743 	u16 handle;
74744 };
74745 
74746 struct dmi_memdev_info {
74747 	const char *device;
74748 	const char *bank;
74749 	u64 size;
74750 	u16 handle;
74751 	u8 type;
74752 };
74753 
74754 struct dmi_device_attribute {
74755 	struct device_attribute dev_attr;
74756 	int field;
74757 };
74758 
74759 struct mafield {
74760 	const char *prefix;
74761 	int field;
74762 };
74763 
74764 struct firmware_map_entry {
74765 	u64 start;
74766 	u64 end;
74767 	const char *type;
74768 	struct list_head list;
74769 	struct kobject kobj;
74770 };
74771 
74772 struct memmap_attribute {
74773 	struct attribute attr;
74774 	ssize_t (*show)(struct firmware_map_entry *, char *);
74775 };
74776 
74777 struct simplefb_platform_data {
74778 	u32 width;
74779 	u32 height;
74780 	u32 stride;
74781 	const char *format;
74782 };
74783 
74784 struct efifb_dmi_info {
74785 	char *optname;
74786 	long unsigned int base;
74787 	int stride;
74788 	int width;
74789 	int height;
74790 	int flags;
74791 };
74792 
74793 typedef efi_status_t efi_query_variable_store_t(u32, long unsigned int, bool);
74794 
74795 typedef struct {
74796 	efi_guid_t guid;
74797 	u32 table;
74798 } efi_config_table_32_t;
74799 
74800 typedef union {
74801 	struct {
74802 		efi_guid_t guid;
74803 		void *table;
74804 	};
74805 	efi_config_table_32_t mixed_mode;
74806 } efi_config_table_t;
74807 
74808 typedef struct {
74809 	u16 version;
74810 	u16 length;
74811 	u32 runtime_services_supported;
74812 } efi_rt_properties_table_t;
74813 
74814 struct efivar_operations {
74815 	efi_get_variable_t *get_variable;
74816 	efi_get_next_variable_t *get_next_variable;
74817 	efi_set_variable_t *set_variable;
74818 	efi_set_variable_t *set_variable_nonblocking;
74819 	efi_query_variable_store_t *query_variable_store;
74820 };
74821 
74822 struct efivars {
74823 	struct kset *kset;
74824 	struct kobject *kobject;
74825 	const struct efivar_operations *ops;
74826 };
74827 
74828 struct linux_efi_random_seed {
74829 	u32 size;
74830 	u8 bits[0];
74831 };
74832 
74833 struct linux_efi_memreserve {
74834 	int size;
74835 	atomic_t count;
74836 	phys_addr_t next;
74837 	struct {
74838 		phys_addr_t base;
74839 		phys_addr_t size;
74840 	} entry[0];
74841 };
74842 
74843 struct efi_generic_dev_path {
74844 	u8 type;
74845 	u8 sub_type;
74846 	u16 length;
74847 };
74848 
74849 struct efi_variable {
74850 	efi_char16_t VariableName[512];
74851 	efi_guid_t VendorGuid;
74852 	long unsigned int DataSize;
74853 	__u8 Data[1024];
74854 	efi_status_t Status;
74855 	__u32 Attributes;
74856 } __attribute__((packed));
74857 
74858 struct efivar_entry {
74859 	struct efi_variable var;
74860 	struct list_head list;
74861 	struct kobject kobj;
74862 	bool scanning;
74863 	bool deleting;
74864 };
74865 
74866 struct variable_validate {
74867 	efi_guid_t vendor;
74868 	char *name;
74869 	bool (*validate)(efi_char16_t *, int, u8 *, long unsigned int);
74870 };
74871 
74872 typedef struct {
74873 	u32 version;
74874 	u32 num_entries;
74875 	u32 desc_size;
74876 	u32 reserved;
74877 	efi_memory_desc_t entry[0];
74878 } efi_memory_attributes_table_t;
74879 
74880 typedef int (*efi_memattr_perm_setter)(struct mm_struct *, efi_memory_desc_t *);
74881 
74882 struct efi_system_resource_entry_v1 {
74883 	efi_guid_t fw_class;
74884 	u32 fw_type;
74885 	u32 fw_version;
74886 	u32 lowest_supported_fw_version;
74887 	u32 capsule_flags;
74888 	u32 last_attempt_version;
74889 	u32 last_attempt_status;
74890 };
74891 
74892 struct efi_system_resource_table {
74893 	u32 fw_resource_count;
74894 	u32 fw_resource_count_max;
74895 	u64 fw_resource_version;
74896 	u8 entries[0];
74897 };
74898 
74899 struct esre_entry {
74900 	union {
74901 		struct efi_system_resource_entry_v1 *esre1;
74902 	} esre;
74903 	struct kobject kobj;
74904 	struct list_head list;
74905 };
74906 
74907 struct esre_attribute {
74908 	struct attribute attr;
74909 	ssize_t (*show)(struct esre_entry *, char *);
74910 	ssize_t (*store)(struct esre_entry *, const char *, size_t);
74911 };
74912 
74913 struct efi_runtime_map_entry {
74914 	efi_memory_desc_t md;
74915 	struct kobject kobj;
74916 };
74917 
74918 struct map_attribute {
74919 	struct attribute attr;
74920 	ssize_t (*show)(struct efi_runtime_map_entry *, char *);
74921 };
74922 
74923 struct of_bus;
74924 
74925 struct of_pci_range_parser {
74926 	struct device_node *node;
74927 	struct of_bus *bus;
74928 	const __be32 *range;
74929 	const __be32 *end;
74930 	int na;
74931 	int ns;
74932 	int pna;
74933 	bool dma;
74934 };
74935 
74936 struct of_pci_range {
74937 	union {
74938 		u64 pci_addr;
74939 		u64 bus_addr;
74940 	};
74941 	u64 cpu_addr;
74942 	u64 size;
74943 	u32 flags;
74944 };
74945 
74946 enum {
74947 	M_I17 = 0,
74948 	M_I20 = 1,
74949 	M_I20_SR = 2,
74950 	M_I24 = 3,
74951 	M_I24_8_1 = 4,
74952 	M_I24_10_1 = 5,
74953 	M_I27_11_1 = 6,
74954 	M_MINI = 7,
74955 	M_MINI_3_1 = 8,
74956 	M_MINI_4_1 = 9,
74957 	M_MB = 10,
74958 	M_MB_2 = 11,
74959 	M_MB_3 = 12,
74960 	M_MB_5_1 = 13,
74961 	M_MB_6_1 = 14,
74962 	M_MB_7_1 = 15,
74963 	M_MB_SR = 16,
74964 	M_MBA = 17,
74965 	M_MBA_3 = 18,
74966 	M_MBP = 19,
74967 	M_MBP_2 = 20,
74968 	M_MBP_2_2 = 21,
74969 	M_MBP_SR = 22,
74970 	M_MBP_4 = 23,
74971 	M_MBP_5_1 = 24,
74972 	M_MBP_5_2 = 25,
74973 	M_MBP_5_3 = 26,
74974 	M_MBP_6_1 = 27,
74975 	M_MBP_6_2 = 28,
74976 	M_MBP_7_1 = 29,
74977 	M_MBP_8_2 = 30,
74978 	M_UNKNOWN = 31,
74979 };
74980 
74981 enum {
74982 	OVERRIDE_NONE = 0,
74983 	OVERRIDE_BASE = 1,
74984 	OVERRIDE_STRIDE = 2,
74985 	OVERRIDE_HEIGHT = 4,
74986 	OVERRIDE_WIDTH = 8,
74987 };
74988 
74989 struct hid_device_id {
74990 	__u16 bus;
74991 	__u16 group;
74992 	__u32 vendor;
74993 	__u32 product;
74994 	kernel_ulong_t driver_data;
74995 };
74996 
74997 struct hid_item {
74998 	unsigned int format;
74999 	__u8 size;
75000 	__u8 type;
75001 	__u8 tag;
75002 	union {
75003 		__u8 u8;
75004 		__s8 s8;
75005 		__u16 u16;
75006 		__s16 s16;
75007 		__u32 u32;
75008 		__s32 s32;
75009 		__u8 *longdata;
75010 	} data;
75011 };
75012 
75013 struct hid_global {
75014 	unsigned int usage_page;
75015 	__s32 logical_minimum;
75016 	__s32 logical_maximum;
75017 	__s32 physical_minimum;
75018 	__s32 physical_maximum;
75019 	__s32 unit_exponent;
75020 	unsigned int unit;
75021 	unsigned int report_id;
75022 	unsigned int report_size;
75023 	unsigned int report_count;
75024 };
75025 
75026 struct hid_local {
75027 	unsigned int usage[12288];
75028 	u8 usage_size[12288];
75029 	unsigned int collection_index[12288];
75030 	unsigned int usage_index;
75031 	unsigned int usage_minimum;
75032 	unsigned int delimiter_depth;
75033 	unsigned int delimiter_branch;
75034 };
75035 
75036 struct hid_collection {
75037 	int parent_idx;
75038 	unsigned int type;
75039 	unsigned int usage;
75040 	unsigned int level;
75041 };
75042 
75043 struct hid_usage {
75044 	unsigned int hid;
75045 	unsigned int collection_index;
75046 	unsigned int usage_index;
75047 	__s8 resolution_multiplier;
75048 	__s8 wheel_factor;
75049 	__u16 code;
75050 	__u8 type;
75051 	__s8 hat_min;
75052 	__s8 hat_max;
75053 	__s8 hat_dir;
75054 	__s16 wheel_accumulated;
75055 };
75056 
75057 struct hid_report;
75058 
75059 struct hid_input;
75060 
75061 struct hid_field {
75062 	unsigned int physical;
75063 	unsigned int logical;
75064 	unsigned int application;
75065 	struct hid_usage *usage;
75066 	unsigned int maxusage;
75067 	unsigned int flags;
75068 	unsigned int report_offset;
75069 	unsigned int report_size;
75070 	unsigned int report_count;
75071 	unsigned int report_type;
75072 	__s32 *value;
75073 	__s32 logical_minimum;
75074 	__s32 logical_maximum;
75075 	__s32 physical_minimum;
75076 	__s32 physical_maximum;
75077 	__s32 unit_exponent;
75078 	unsigned int unit;
75079 	struct hid_report *report;
75080 	unsigned int index;
75081 	struct hid_input *hidinput;
75082 	__u16 dpad;
75083 };
75084 
75085 struct hid_device;
75086 
75087 struct hid_report {
75088 	struct list_head list;
75089 	struct list_head hidinput_list;
75090 	unsigned int id;
75091 	unsigned int type;
75092 	unsigned int application;
75093 	struct hid_field *field[256];
75094 	unsigned int maxfield;
75095 	unsigned int size;
75096 	struct hid_device *device;
75097 };
75098 
75099 struct hid_input {
75100 	struct list_head list;
75101 	struct hid_report *report;
75102 	struct input_dev *input;
75103 	const char *name;
75104 	bool registered;
75105 	struct list_head reports;
75106 	unsigned int application;
75107 };
75108 
75109 enum hid_type {
75110 	HID_TYPE_OTHER = 0,
75111 	HID_TYPE_USBMOUSE = 1,
75112 	HID_TYPE_USBNONE = 2,
75113 };
75114 
75115 struct hid_report_enum {
75116 	unsigned int numbered;
75117 	struct list_head report_list;
75118 	struct hid_report *report_id_hash[256];
75119 };
75120 
75121 struct hid_driver;
75122 
75123 struct hid_ll_driver;
75124 
75125 struct hid_device {
75126 	__u8 *dev_rdesc;
75127 	unsigned int dev_rsize;
75128 	__u8 *rdesc;
75129 	unsigned int rsize;
75130 	struct hid_collection *collection;
75131 	unsigned int collection_size;
75132 	unsigned int maxcollection;
75133 	unsigned int maxapplication;
75134 	__u16 bus;
75135 	__u16 group;
75136 	__u32 vendor;
75137 	__u32 product;
75138 	__u32 version;
75139 	enum hid_type type;
75140 	unsigned int country;
75141 	struct hid_report_enum report_enum[3];
75142 	struct work_struct led_work;
75143 	struct semaphore driver_input_lock;
75144 	struct device dev;
75145 	struct hid_driver *driver;
75146 	struct hid_ll_driver *ll_driver;
75147 	struct mutex ll_open_lock;
75148 	unsigned int ll_open_count;
75149 	long unsigned int status;
75150 	unsigned int claimed;
75151 	unsigned int quirks;
75152 	bool io_started;
75153 	struct list_head inputs;
75154 	void *hiddev;
75155 	void *hidraw;
75156 	char name[128];
75157 	char phys[64];
75158 	char uniq[64];
75159 	void *driver_data;
75160 	int (*ff_init)(struct hid_device *);
75161 	int (*hiddev_connect)(struct hid_device *, unsigned int);
75162 	void (*hiddev_disconnect)(struct hid_device *);
75163 	void (*hiddev_hid_event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32);
75164 	void (*hiddev_report_event)(struct hid_device *, struct hid_report *);
75165 	short unsigned int debug;
75166 	struct dentry *debug_dir;
75167 	struct dentry *debug_rdesc;
75168 	struct dentry *debug_events;
75169 	struct list_head debug_list;
75170 	spinlock_t debug_list_lock;
75171 	wait_queue_head_t debug_wait;
75172 };
75173 
75174 struct hid_report_id;
75175 
75176 struct hid_usage_id;
75177 
75178 struct hid_driver {
75179 	char *name;
75180 	const struct hid_device_id *id_table;
75181 	struct list_head dyn_list;
75182 	spinlock_t dyn_lock;
75183 	bool (*match)(struct hid_device *, bool);
75184 	int (*probe)(struct hid_device *, const struct hid_device_id *);
75185 	void (*remove)(struct hid_device *);
75186 	const struct hid_report_id *report_table;
75187 	int (*raw_event)(struct hid_device *, struct hid_report *, u8 *, int);
75188 	const struct hid_usage_id *usage_table;
75189 	int (*event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32);
75190 	void (*report)(struct hid_device *, struct hid_report *);
75191 	__u8 * (*report_fixup)(struct hid_device *, __u8 *, unsigned int *);
75192 	int (*input_mapping)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, long unsigned int **, int *);
75193 	int (*input_mapped)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, long unsigned int **, int *);
75194 	int (*input_configured)(struct hid_device *, struct hid_input *);
75195 	void (*feature_mapping)(struct hid_device *, struct hid_field *, struct hid_usage *);
75196 	struct device_driver driver;
75197 };
75198 
75199 struct hid_ll_driver {
75200 	int (*start)(struct hid_device *);
75201 	void (*stop)(struct hid_device *);
75202 	int (*open)(struct hid_device *);
75203 	void (*close)(struct hid_device *);
75204 	int (*power)(struct hid_device *, int);
75205 	int (*parse)(struct hid_device *);
75206 	void (*request)(struct hid_device *, struct hid_report *, int);
75207 	int (*wait)(struct hid_device *);
75208 	int (*raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, unsigned char, int);
75209 	int (*output_report)(struct hid_device *, __u8 *, size_t);
75210 	int (*idle)(struct hid_device *, int, int, int);
75211 	bool (*may_wakeup)(struct hid_device *);
75212 };
75213 
75214 struct hid_parser {
75215 	struct hid_global global;
75216 	struct hid_global global_stack[4];
75217 	unsigned int global_stack_ptr;
75218 	struct hid_local local;
75219 	unsigned int *collection_stack;
75220 	unsigned int collection_stack_ptr;
75221 	unsigned int collection_stack_size;
75222 	struct hid_device *device;
75223 	unsigned int scan_flags;
75224 };
75225 
75226 struct hid_report_id {
75227 	__u32 report_type;
75228 };
75229 
75230 struct hid_usage_id {
75231 	__u32 usage_hid;
75232 	__u32 usage_type;
75233 	__u32 usage_code;
75234 };
75235 
75236 struct hiddev {
75237 	int minor;
75238 	int exist;
75239 	int open;
75240 	struct mutex existancelock;
75241 	wait_queue_head_t wait;
75242 	struct hid_device *hid;
75243 	struct list_head list;
75244 	spinlock_t list_lock;
75245 	bool initialized;
75246 };
75247 
75248 struct hidraw {
75249 	unsigned int minor;
75250 	int exist;
75251 	int open;
75252 	wait_queue_head_t wait;
75253 	struct hid_device *hid;
75254 	struct device *dev;
75255 	spinlock_t list_lock;
75256 	struct list_head list;
75257 };
75258 
75259 struct hid_dynid {
75260 	struct list_head list;
75261 	struct hid_device_id id;
75262 };
75263 
75264 typedef bool (*hid_usage_cmp_t)(struct hid_usage *, unsigned int, unsigned int);
75265 
75266 struct quirks_list_struct {
75267 	struct hid_device_id hid_bl_item;
75268 	struct list_head node;
75269 };
75270 
75271 struct hid_debug_list {
75272 	struct {
75273 		union {
75274 			struct __kfifo kfifo;
75275 			char *type;
75276 			const char *const_type;
75277 			char (*rectype)[0];
75278 			char *ptr;
75279 			const char *ptr_const;
75280 		};
75281 		char buf[0];
75282 	} hid_debug_fifo;
75283 	struct fasync_struct *fasync;
75284 	struct hid_device *hdev;
75285 	struct list_head node;
75286 	struct mutex read_mutex;
75287 };
75288 
75289 struct hid_usage_entry {
75290 	unsigned int page;
75291 	unsigned int usage;
75292 	const char *description;
75293 };
75294 
75295 struct a4tech_sc {
75296 	long unsigned int quirks;
75297 	unsigned int hw_wheel;
75298 	__s32 delayed_value;
75299 };
75300 
75301 struct apple_sc {
75302 	struct hid_device *hdev;
75303 	long unsigned int quirks;
75304 	unsigned int fn_on;
75305 	unsigned int fn_found;
75306 	long unsigned int pressed_numlock[12];
75307 	struct timer_list battery_timer;
75308 };
75309 
75310 struct apple_key_translation {
75311 	u16 from;
75312 	u16 to;
75313 	u8 flags;
75314 };
75315 
75316 struct ms_data {
75317 	long unsigned int quirks;
75318 	struct hid_device *hdev;
75319 	struct work_struct ff_worker;
75320 	__u8 strong;
75321 	__u8 weak;
75322 	void *output_report_dmabuf;
75323 };
75324 
75325 enum {
75326 	MAGNITUDE_STRONG = 2,
75327 	MAGNITUDE_WEAK = 3,
75328 	MAGNITUDE_NUM = 4,
75329 };
75330 
75331 struct xb1s_ff_report {
75332 	__u8 report_id;
75333 	__u8 enable;
75334 	__u8 magnitude[4];
75335 	__u8 duration_10ms;
75336 	__u8 start_delay_10ms;
75337 	__u8 loop_count;
75338 };
75339 
75340 struct zpff_device {
75341 	struct hid_report *report;
75342 };
75343 
75344 enum simatic_ipc_station_ids {
75345 	SIMATIC_IPC_INVALID_STATION_ID = 0,
75346 	SIMATIC_IPC_IPC227D = 1281,
75347 	SIMATIC_IPC_IPC427D = 1793,
75348 	SIMATIC_IPC_IPC227E = 2305,
75349 	SIMATIC_IPC_IPC277E = 2306,
75350 	SIMATIC_IPC_IPC427E = 2561,
75351 	SIMATIC_IPC_IPC477E = 2562,
75352 	SIMATIC_IPC_IPC127E = 3329,
75353 };
75354 
75355 struct pmc_bit_map {
75356 	const char *name;
75357 	u32 bit_mask;
75358 };
75359 
75360 struct pmc_reg_map {
75361 	const struct pmc_bit_map *d3_sts_0;
75362 	const struct pmc_bit_map *d3_sts_1;
75363 	const struct pmc_bit_map *func_dis;
75364 	const struct pmc_bit_map *func_dis_2;
75365 	const struct pmc_bit_map *pss;
75366 };
75367 
75368 struct pmc_data {
75369 	const struct pmc_reg_map *map;
75370 	const struct pmc_clk *clks;
75371 };
75372 
75373 struct pmc_dev {
75374 	u32 base_addr;
75375 	void *regmap;
75376 	const struct pmc_reg_map *map;
75377 	struct dentry *dbgfs_dir;
75378 	bool init;
75379 };
75380 
75381 struct acpi_table_pcct {
75382 	struct acpi_table_header header;
75383 	u32 flags;
75384 	u64 reserved;
75385 };
75386 
75387 enum acpi_pcct_type {
75388 	ACPI_PCCT_TYPE_GENERIC_SUBSPACE = 0,
75389 	ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE = 1,
75390 	ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE_TYPE2 = 2,
75391 	ACPI_PCCT_TYPE_EXT_PCC_MASTER_SUBSPACE = 3,
75392 	ACPI_PCCT_TYPE_EXT_PCC_SLAVE_SUBSPACE = 4,
75393 	ACPI_PCCT_TYPE_HW_REG_COMM_SUBSPACE = 5,
75394 	ACPI_PCCT_TYPE_RESERVED = 6,
75395 };
75396 
75397 struct acpi_pcct_subspace {
75398 	struct acpi_subtable_header header;
75399 	u8 reserved[6];
75400 	u64 base_address;
75401 	u64 length;
75402 	struct acpi_generic_address doorbell_register;
75403 	u64 preserve_mask;
75404 	u64 write_mask;
75405 	u32 latency;
75406 	u32 max_access_rate;
75407 	u16 min_turnaround_time;
75408 } __attribute__((packed));
75409 
75410 struct acpi_pcct_hw_reduced {
75411 	struct acpi_subtable_header header;
75412 	u32 platform_interrupt;
75413 	u8 flags;
75414 	u8 reserved;
75415 	u64 base_address;
75416 	u64 length;
75417 	struct acpi_generic_address doorbell_register;
75418 	u64 preserve_mask;
75419 	u64 write_mask;
75420 	u32 latency;
75421 	u32 max_access_rate;
75422 	u16 min_turnaround_time;
75423 } __attribute__((packed));
75424 
75425 struct acpi_pcct_hw_reduced_type2 {
75426 	struct acpi_subtable_header header;
75427 	u32 platform_interrupt;
75428 	u8 flags;
75429 	u8 reserved;
75430 	u64 base_address;
75431 	u64 length;
75432 	struct acpi_generic_address doorbell_register;
75433 	u64 preserve_mask;
75434 	u64 write_mask;
75435 	u32 latency;
75436 	u32 max_access_rate;
75437 	u16 min_turnaround_time;
75438 	struct acpi_generic_address platform_ack_register;
75439 	u64 ack_preserve_mask;
75440 	u64 ack_write_mask;
75441 } __attribute__((packed));
75442 
75443 struct acpi_pcct_ext_pcc_master {
75444 	struct acpi_subtable_header header;
75445 	u32 platform_interrupt;
75446 	u8 flags;
75447 	u8 reserved1;
75448 	u64 base_address;
75449 	u32 length;
75450 	struct acpi_generic_address doorbell_register;
75451 	u64 preserve_mask;
75452 	u64 write_mask;
75453 	u32 latency;
75454 	u32 max_access_rate;
75455 	u32 min_turnaround_time;
75456 	struct acpi_generic_address platform_ack_register;
75457 	u64 ack_preserve_mask;
75458 	u64 ack_set_mask;
75459 	u64 reserved2;
75460 	struct acpi_generic_address cmd_complete_register;
75461 	u64 cmd_complete_mask;
75462 	struct acpi_generic_address cmd_update_register;
75463 	u64 cmd_update_preserve_mask;
75464 	u64 cmd_update_set_mask;
75465 	struct acpi_generic_address error_status_register;
75466 	u64 error_status_mask;
75467 } __attribute__((packed));
75468 
75469 struct pcc_chan_reg {
75470 	void *vaddr;
75471 	struct acpi_generic_address *gas;
75472 	u64 preserve_mask;
75473 	u64 set_mask;
75474 	u64 status_mask;
75475 };
75476 
75477 struct pcc_chan_info {
75478 	struct pcc_mbox_chan chan;
75479 	struct pcc_chan_reg db;
75480 	struct pcc_chan_reg plat_irq_ack;
75481 	struct pcc_chan_reg cmd_complete;
75482 	struct pcc_chan_reg cmd_update;
75483 	struct pcc_chan_reg error;
75484 	int plat_irq;
75485 };
75486 
75487 struct cper_sec_proc_arm {
75488 	u32 validation_bits;
75489 	u16 err_info_num;
75490 	u16 context_info_num;
75491 	u32 section_length;
75492 	u8 affinity_level;
75493 	u8 reserved[3];
75494 	u64 mpidr;
75495 	u64 midr;
75496 	u32 running_state;
75497 	u32 psci_state;
75498 };
75499 
75500 enum hw_event_mc_err_type {
75501 	HW_EVENT_ERR_CORRECTED = 0,
75502 	HW_EVENT_ERR_UNCORRECTED = 1,
75503 	HW_EVENT_ERR_DEFERRED = 2,
75504 	HW_EVENT_ERR_FATAL = 3,
75505 	HW_EVENT_ERR_INFO = 4,
75506 };
75507 
75508 struct aer_header_log_regs {
75509 	unsigned int dw0;
75510 	unsigned int dw1;
75511 	unsigned int dw2;
75512 	unsigned int dw3;
75513 };
75514 
75515 struct trace_event_raw_mc_event {
75516 	struct trace_entry ent;
75517 	unsigned int error_type;
75518 	u32 __data_loc_msg;
75519 	u32 __data_loc_label;
75520 	u16 error_count;
75521 	u8 mc_index;
75522 	s8 top_layer;
75523 	s8 middle_layer;
75524 	s8 lower_layer;
75525 	long int address;
75526 	u8 grain_bits;
75527 	long int syndrome;
75528 	u32 __data_loc_driver_detail;
75529 	char __data[0];
75530 };
75531 
75532 struct trace_event_raw_arm_event {
75533 	struct trace_entry ent;
75534 	u64 mpidr;
75535 	u64 midr;
75536 	u32 running_state;
75537 	u32 psci_state;
75538 	u8 affinity;
75539 	char __data[0];
75540 };
75541 
75542 struct trace_event_raw_non_standard_event {
75543 	struct trace_entry ent;
75544 	char sec_type[16];
75545 	char fru_id[16];
75546 	u32 __data_loc_fru_text;
75547 	u8 sev;
75548 	u32 len;
75549 	u32 __data_loc_buf;
75550 	char __data[0];
75551 };
75552 
75553 struct trace_event_raw_aer_event {
75554 	struct trace_entry ent;
75555 	u32 __data_loc_dev_name;
75556 	u32 status;
75557 	u8 severity;
75558 	u8 tlp_header_valid;
75559 	u32 tlp_header[4];
75560 	char __data[0];
75561 };
75562 
75563 struct trace_event_raw_memory_failure_event {
75564 	struct trace_entry ent;
75565 	long unsigned int pfn;
75566 	int type;
75567 	int result;
75568 	char __data[0];
75569 };
75570 
75571 struct trace_event_data_offsets_mc_event {
75572 	u32 msg;
75573 	u32 label;
75574 	u32 driver_detail;
75575 };
75576 
75577 struct trace_event_data_offsets_arm_event {};
75578 
75579 struct trace_event_data_offsets_non_standard_event {
75580 	u32 fru_text;
75581 	u32 buf;
75582 };
75583 
75584 struct trace_event_data_offsets_aer_event {
75585 	u32 dev_name;
75586 };
75587 
75588 struct trace_event_data_offsets_memory_failure_event {};
75589 
75590 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 *);
75591 
75592 typedef void (*btf_trace_arm_event)(void *, const struct cper_sec_proc_arm *);
75593 
75594 typedef void (*btf_trace_non_standard_event)(void *, const guid_t *, const guid_t *, const char *, const u8, const u8 *, const u32);
75595 
75596 typedef void (*btf_trace_aer_event)(void *, const char *, const u32, const u8, const u8, struct aer_header_log_regs *);
75597 
75598 typedef void (*btf_trace_memory_failure_event)(void *, long unsigned int, int, int);
75599 
75600 struct nvmem_cell_info {
75601 	const char *name;
75602 	unsigned int offset;
75603 	unsigned int bytes;
75604 	unsigned int bit_offset;
75605 	unsigned int nbits;
75606 };
75607 
75608 struct nvmem_cell_lookup {
75609 	const char *nvmem_name;
75610 	const char *cell_name;
75611 	const char *dev_id;
75612 	const char *con_id;
75613 	struct list_head node;
75614 };
75615 
75616 enum {
75617 	NVMEM_ADD = 1,
75618 	NVMEM_REMOVE = 2,
75619 	NVMEM_CELL_ADD = 3,
75620 	NVMEM_CELL_REMOVE = 4,
75621 };
75622 
75623 typedef int (*nvmem_reg_read_t)(void *, unsigned int, void *, size_t);
75624 
75625 typedef int (*nvmem_reg_write_t)(void *, unsigned int, void *, size_t);
75626 
75627 typedef int (*nvmem_cell_post_process_t)(void *, const char *, unsigned int, void *, size_t);
75628 
75629 enum nvmem_type {
75630 	NVMEM_TYPE_UNKNOWN = 0,
75631 	NVMEM_TYPE_EEPROM = 1,
75632 	NVMEM_TYPE_OTP = 2,
75633 	NVMEM_TYPE_BATTERY_BACKED = 3,
75634 	NVMEM_TYPE_FRAM = 4,
75635 };
75636 
75637 struct nvmem_keepout {
75638 	unsigned int start;
75639 	unsigned int end;
75640 	unsigned char value;
75641 };
75642 
75643 struct nvmem_config {
75644 	struct device *dev;
75645 	const char *name;
75646 	int id;
75647 	struct module *owner;
75648 	struct gpio_desc *wp_gpio;
75649 	const struct nvmem_cell_info *cells;
75650 	int ncells;
75651 	const struct nvmem_keepout *keepout;
75652 	unsigned int nkeepout;
75653 	enum nvmem_type type;
75654 	bool read_only;
75655 	bool root_only;
75656 	struct device_node *of_node;
75657 	bool no_of_node;
75658 	nvmem_reg_read_t reg_read;
75659 	nvmem_reg_write_t reg_write;
75660 	nvmem_cell_post_process_t cell_post_process;
75661 	int size;
75662 	int word_size;
75663 	int stride;
75664 	void *priv;
75665 	bool compat;
75666 	struct device *base_dev;
75667 };
75668 
75669 struct nvmem_cell_table {
75670 	const char *nvmem_name;
75671 	const struct nvmem_cell_info *cells;
75672 	size_t ncells;
75673 	struct list_head node;
75674 };
75675 
75676 struct nvmem_device {
75677 	struct module *owner;
75678 	struct device dev;
75679 	int stride;
75680 	int word_size;
75681 	int id;
75682 	struct kref refcnt;
75683 	size_t size;
75684 	bool read_only;
75685 	bool root_only;
75686 	int flags;
75687 	enum nvmem_type type;
75688 	struct bin_attribute eeprom;
75689 	struct device *base_dev;
75690 	struct list_head cells;
75691 	const struct nvmem_keepout *keepout;
75692 	unsigned int nkeepout;
75693 	nvmem_reg_read_t reg_read;
75694 	nvmem_reg_write_t reg_write;
75695 	nvmem_cell_post_process_t cell_post_process;
75696 	struct gpio_desc *wp_gpio;
75697 	void *priv;
75698 };
75699 
75700 struct nvmem_cell_entry {
75701 	const char *name;
75702 	int offset;
75703 	int bytes;
75704 	int bit_offset;
75705 	int nbits;
75706 	struct device_node *np;
75707 	struct nvmem_device *nvmem;
75708 	struct list_head node;
75709 };
75710 
75711 struct nvmem_cell {
75712 	struct nvmem_cell_entry *entry;
75713 	const char *id;
75714 };
75715 
75716 struct net_device_devres {
75717 	struct net_device *ndev;
75718 };
75719 
75720 struct __kernel_old_timespec {
75721 	__kernel_old_time_t tv_sec;
75722 	long int tv_nsec;
75723 };
75724 
75725 struct __kernel_sock_timeval {
75726 	__s64 tv_sec;
75727 	__s64 tv_usec;
75728 };
75729 
75730 struct mmsghdr {
75731 	struct user_msghdr msg_hdr;
75732 	unsigned int msg_len;
75733 };
75734 
75735 struct scm_timestamping_internal {
75736 	struct timespec64 ts[3];
75737 };
75738 
75739 typedef u32 compat_caddr_t;
75740 
75741 struct compat_ifmap {
75742 	compat_ulong_t mem_start;
75743 	compat_ulong_t mem_end;
75744 	short unsigned int base_addr;
75745 	unsigned char irq;
75746 	unsigned char dma;
75747 	unsigned char port;
75748 };
75749 
75750 struct compat_if_settings {
75751 	unsigned int type;
75752 	unsigned int size;
75753 	compat_uptr_t ifs_ifsu;
75754 };
75755 
75756 struct compat_ifreq {
75757 	union {
75758 		char ifrn_name[16];
75759 	} ifr_ifrn;
75760 	union {
75761 		struct sockaddr ifru_addr;
75762 		struct sockaddr ifru_dstaddr;
75763 		struct sockaddr ifru_broadaddr;
75764 		struct sockaddr ifru_netmask;
75765 		struct sockaddr ifru_hwaddr;
75766 		short int ifru_flags;
75767 		compat_int_t ifru_ivalue;
75768 		compat_int_t ifru_mtu;
75769 		struct compat_ifmap ifru_map;
75770 		char ifru_slave[16];
75771 		char ifru_newname[16];
75772 		compat_caddr_t ifru_data;
75773 		struct compat_if_settings ifru_settings;
75774 	} ifr_ifru;
75775 };
75776 
75777 enum sock_shutdown_cmd {
75778 	SHUT_RD = 0,
75779 	SHUT_WR = 1,
75780 	SHUT_RDWR = 2,
75781 };
75782 
75783 struct compat_mmsghdr {
75784 	struct compat_msghdr msg_hdr;
75785 	compat_uint_t msg_len;
75786 };
75787 
75788 struct scm_ts_pktinfo {
75789 	__u32 if_index;
75790 	__u32 pkt_length;
75791 	__u32 reserved[2];
75792 };
75793 
75794 struct sock_skb_cb {
75795 	u32 dropcount;
75796 };
75797 
75798 struct sock_ee_data_rfc4884 {
75799 	__u16 len;
75800 	__u8 flags;
75801 	__u8 reserved;
75802 };
75803 
75804 struct sock_extended_err {
75805 	__u32 ee_errno;
75806 	__u8 ee_origin;
75807 	__u8 ee_type;
75808 	__u8 ee_code;
75809 	__u8 ee_pad;
75810 	__u32 ee_info;
75811 	union {
75812 		__u32 ee_data;
75813 		struct sock_ee_data_rfc4884 ee_rfc4884;
75814 	};
75815 };
75816 
75817 struct sock_exterr_skb {
75818 	union {
75819 		struct inet_skb_parm h4;
75820 		struct inet6_skb_parm h6;
75821 	} header;
75822 	struct sock_extended_err ee;
75823 	u16 addr_offset;
75824 	__be16 port;
75825 	u8 opt_stats: 1;
75826 	u8 unused: 7;
75827 };
75828 
75829 struct net_bridge;
75830 
75831 struct used_address {
75832 	struct __kernel_sockaddr_storage name;
75833 	unsigned int name_len;
75834 };
75835 
75836 struct linger {
75837 	int l_onoff;
75838 	int l_linger;
75839 };
75840 
75841 struct ucred {
75842 	__u32 pid;
75843 	__u32 uid;
75844 	__u32 gid;
75845 };
75846 
75847 struct offload_callbacks {
75848 	struct sk_buff * (*gso_segment)(struct sk_buff *, netdev_features_t);
75849 	struct sk_buff * (*gro_receive)(struct list_head *, struct sk_buff *);
75850 	int (*gro_complete)(struct sk_buff *, int);
75851 };
75852 
75853 struct so_timestamping {
75854 	int flags;
75855 	int bind_phc;
75856 };
75857 
75858 enum txtime_flags {
75859 	SOF_TXTIME_DEADLINE_MODE = 1,
75860 	SOF_TXTIME_REPORT_ERRORS = 2,
75861 	SOF_TXTIME_FLAGS_LAST = 2,
75862 	SOF_TXTIME_FLAGS_MASK = 3,
75863 };
75864 
75865 struct sock_txtime {
75866 	__kernel_clockid_t clockid;
75867 	__u32 flags;
75868 };
75869 
75870 enum sk_pacing {
75871 	SK_PACING_NONE = 0,
75872 	SK_PACING_NEEDED = 1,
75873 	SK_PACING_FQ = 2,
75874 };
75875 
75876 struct sockcm_cookie {
75877 	u64 transmit_time;
75878 	u32 mark;
75879 	u16 tsflags;
75880 };
75881 
75882 struct fastopen_queue {
75883 	struct request_sock *rskq_rst_head;
75884 	struct request_sock *rskq_rst_tail;
75885 	spinlock_t lock;
75886 	int qlen;
75887 	int max_qlen;
75888 	struct tcp_fastopen_context *ctx;
75889 };
75890 
75891 struct request_sock_queue {
75892 	spinlock_t rskq_lock;
75893 	u8 rskq_defer_accept;
75894 	u32 synflood_warned;
75895 	atomic_t qlen;
75896 	atomic_t young;
75897 	struct request_sock *rskq_accept_head;
75898 	struct request_sock *rskq_accept_tail;
75899 	struct fastopen_queue fastopenq;
75900 };
75901 
75902 struct inet_bind_bucket;
75903 
75904 struct tcp_ulp_ops;
75905 
75906 struct inet_connection_sock {
75907 	struct inet_sock icsk_inet;
75908 	struct request_sock_queue icsk_accept_queue;
75909 	struct inet_bind_bucket *icsk_bind_hash;
75910 	long unsigned int icsk_timeout;
75911 	struct timer_list icsk_retransmit_timer;
75912 	struct timer_list icsk_delack_timer;
75913 	__u32 icsk_rto;
75914 	__u32 icsk_rto_min;
75915 	__u32 icsk_delack_max;
75916 	__u32 icsk_pmtu_cookie;
75917 	const struct tcp_congestion_ops *icsk_ca_ops;
75918 	const struct inet_connection_sock_af_ops *icsk_af_ops;
75919 	const struct tcp_ulp_ops *icsk_ulp_ops;
75920 	void *icsk_ulp_data;
75921 	void (*icsk_clean_acked)(struct sock *, u32);
75922 	struct hlist_node icsk_listen_portaddr_node;
75923 	unsigned int (*icsk_sync_mss)(struct sock *, u32);
75924 	__u8 icsk_ca_state: 5;
75925 	__u8 icsk_ca_initialized: 1;
75926 	__u8 icsk_ca_setsockopt: 1;
75927 	__u8 icsk_ca_dst_locked: 1;
75928 	__u8 icsk_retransmits;
75929 	__u8 icsk_pending;
75930 	__u8 icsk_backoff;
75931 	__u8 icsk_syn_retries;
75932 	__u8 icsk_probes_out;
75933 	__u16 icsk_ext_hdr_len;
75934 	struct {
75935 		__u8 pending;
75936 		__u8 quick;
75937 		__u8 pingpong;
75938 		__u8 retry;
75939 		__u32 ato;
75940 		long unsigned int timeout;
75941 		__u32 lrcvtime;
75942 		__u16 last_seg_size;
75943 		__u16 rcv_mss;
75944 	} icsk_ack;
75945 	struct {
75946 		int search_high;
75947 		int search_low;
75948 		u32 probe_size: 31;
75949 		u32 enabled: 1;
75950 		u32 probe_timestamp;
75951 	} icsk_mtup;
75952 	u32 icsk_probes_tstamp;
75953 	u32 icsk_user_timeout;
75954 	u64 icsk_ca_priv[13];
75955 };
75956 
75957 struct inet_bind_bucket {
75958 	possible_net_t ib_net;
75959 	int l3mdev;
75960 	short unsigned int port;
75961 	signed char fastreuse;
75962 	signed char fastreuseport;
75963 	kuid_t fastuid;
75964 	struct in6_addr fast_v6_rcv_saddr;
75965 	__be32 fast_rcv_saddr;
75966 	short unsigned int fast_sk_family;
75967 	bool fast_ipv6_only;
75968 	struct hlist_node node;
75969 	struct hlist_head owners;
75970 };
75971 
75972 struct tcp_ulp_ops {
75973 	struct list_head list;
75974 	int (*init)(struct sock *);
75975 	void (*update)(struct sock *, struct proto *, void (*)(struct sock *));
75976 	void (*release)(struct sock *);
75977 	int (*get_info)(const struct sock *, struct sk_buff *);
75978 	size_t (*get_info_size)(const struct sock *);
75979 	void (*clone)(const struct request_sock *, struct sock *, const gfp_t);
75980 	char name[16];
75981 	struct module *owner;
75982 };
75983 
75984 struct tcp_sack_block {
75985 	u32 start_seq;
75986 	u32 end_seq;
75987 };
75988 
75989 struct tcp_options_received {
75990 	int ts_recent_stamp;
75991 	u32 ts_recent;
75992 	u32 rcv_tsval;
75993 	u32 rcv_tsecr;
75994 	u16 saw_tstamp: 1;
75995 	u16 tstamp_ok: 1;
75996 	u16 dsack: 1;
75997 	u16 wscale_ok: 1;
75998 	u16 sack_ok: 3;
75999 	u16 smc_ok: 1;
76000 	u16 snd_wscale: 4;
76001 	u16 rcv_wscale: 4;
76002 	u8 saw_unknown: 1;
76003 	u8 unused: 7;
76004 	u8 num_sacks;
76005 	u16 user_mss;
76006 	u16 mss_clamp;
76007 };
76008 
76009 struct tcp_rack {
76010 	u64 mstamp;
76011 	u32 rtt_us;
76012 	u32 end_seq;
76013 	u32 last_delivered;
76014 	u8 reo_wnd_steps;
76015 	u8 reo_wnd_persist: 5;
76016 	u8 dsack_seen: 1;
76017 	u8 advanced: 1;
76018 };
76019 
76020 struct tcp_sock_af_ops;
76021 
76022 struct tcp_md5sig_info;
76023 
76024 struct tcp_fastopen_request;
76025 
76026 struct tcp_sock {
76027 	struct inet_connection_sock inet_conn;
76028 	u16 tcp_header_len;
76029 	u16 gso_segs;
76030 	__be32 pred_flags;
76031 	u64 bytes_received;
76032 	u32 segs_in;
76033 	u32 data_segs_in;
76034 	u32 rcv_nxt;
76035 	u32 copied_seq;
76036 	u32 rcv_wup;
76037 	u32 snd_nxt;
76038 	u32 segs_out;
76039 	u32 data_segs_out;
76040 	u64 bytes_sent;
76041 	u64 bytes_acked;
76042 	u32 dsack_dups;
76043 	u32 snd_una;
76044 	u32 snd_sml;
76045 	u32 rcv_tstamp;
76046 	u32 lsndtime;
76047 	u32 last_oow_ack_time;
76048 	u32 compressed_ack_rcv_nxt;
76049 	u32 tsoffset;
76050 	struct list_head tsq_node;
76051 	struct list_head tsorted_sent_queue;
76052 	u32 snd_wl1;
76053 	u32 snd_wnd;
76054 	u32 max_window;
76055 	u32 mss_cache;
76056 	u32 window_clamp;
76057 	u32 rcv_ssthresh;
76058 	struct tcp_rack rack;
76059 	u16 advmss;
76060 	u8 compressed_ack;
76061 	u8 dup_ack_counter: 2;
76062 	u8 tlp_retrans: 1;
76063 	u8 unused: 5;
76064 	u32 chrono_start;
76065 	u32 chrono_stat[3];
76066 	u8 chrono_type: 2;
76067 	u8 rate_app_limited: 1;
76068 	u8 fastopen_connect: 1;
76069 	u8 fastopen_no_cookie: 1;
76070 	u8 is_sack_reneg: 1;
76071 	u8 fastopen_client_fail: 2;
76072 	u8 nonagle: 4;
76073 	u8 thin_lto: 1;
76074 	u8 recvmsg_inq: 1;
76075 	u8 repair: 1;
76076 	u8 frto: 1;
76077 	u8 repair_queue;
76078 	u8 save_syn: 2;
76079 	u8 syn_data: 1;
76080 	u8 syn_fastopen: 1;
76081 	u8 syn_fastopen_exp: 1;
76082 	u8 syn_fastopen_ch: 1;
76083 	u8 syn_data_acked: 1;
76084 	u8 is_cwnd_limited: 1;
76085 	u32 tlp_high_seq;
76086 	u32 tcp_tx_delay;
76087 	u64 tcp_wstamp_ns;
76088 	u64 tcp_clock_cache;
76089 	u64 tcp_mstamp;
76090 	u32 srtt_us;
76091 	u32 mdev_us;
76092 	u32 mdev_max_us;
76093 	u32 rttvar_us;
76094 	u32 rtt_seq;
76095 	struct minmax rtt_min;
76096 	u32 packets_out;
76097 	u32 retrans_out;
76098 	u32 max_packets_out;
76099 	u32 max_packets_seq;
76100 	u16 urg_data;
76101 	u8 ecn_flags;
76102 	u8 keepalive_probes;
76103 	u32 reordering;
76104 	u32 reord_seen;
76105 	u32 snd_up;
76106 	struct tcp_options_received rx_opt;
76107 	u32 snd_ssthresh;
76108 	u32 snd_cwnd;
76109 	u32 snd_cwnd_cnt;
76110 	u32 snd_cwnd_clamp;
76111 	u32 snd_cwnd_used;
76112 	u32 snd_cwnd_stamp;
76113 	u32 prior_cwnd;
76114 	u32 prr_delivered;
76115 	u32 prr_out;
76116 	u32 delivered;
76117 	u32 delivered_ce;
76118 	u32 lost;
76119 	u32 app_limited;
76120 	u64 first_tx_mstamp;
76121 	u64 delivered_mstamp;
76122 	u32 rate_delivered;
76123 	u32 rate_interval_us;
76124 	u32 rcv_wnd;
76125 	u32 write_seq;
76126 	u32 notsent_lowat;
76127 	u32 pushed_seq;
76128 	u32 lost_out;
76129 	u32 sacked_out;
76130 	struct hrtimer pacing_timer;
76131 	struct hrtimer compressed_ack_timer;
76132 	struct sk_buff *lost_skb_hint;
76133 	struct sk_buff *retransmit_skb_hint;
76134 	struct rb_root out_of_order_queue;
76135 	struct sk_buff *ooo_last_skb;
76136 	struct tcp_sack_block duplicate_sack[1];
76137 	struct tcp_sack_block selective_acks[4];
76138 	struct tcp_sack_block recv_sack_cache[4];
76139 	struct sk_buff *highest_sack;
76140 	int lost_cnt_hint;
76141 	u32 prior_ssthresh;
76142 	u32 high_seq;
76143 	u32 retrans_stamp;
76144 	u32 undo_marker;
76145 	int undo_retrans;
76146 	u64 bytes_retrans;
76147 	u32 total_retrans;
76148 	u32 urg_seq;
76149 	unsigned int keepalive_time;
76150 	unsigned int keepalive_intvl;
76151 	int linger2;
76152 	u8 bpf_sock_ops_cb_flags;
76153 	u16 timeout_rehash;
76154 	u32 rcv_ooopack;
76155 	u32 rcv_rtt_last_tsecr;
76156 	struct {
76157 		u32 rtt_us;
76158 		u32 seq;
76159 		u64 time;
76160 	} rcv_rtt_est;
76161 	struct {
76162 		u32 space;
76163 		u32 seq;
76164 		u64 time;
76165 	} rcvq_space;
76166 	struct {
76167 		u32 probe_seq_start;
76168 		u32 probe_seq_end;
76169 	} mtu_probe;
76170 	u32 mtu_info;
76171 	const struct tcp_sock_af_ops *af_specific;
76172 	struct tcp_md5sig_info *md5sig_info;
76173 	struct tcp_fastopen_request *fastopen_req;
76174 	struct request_sock *fastopen_rsk;
76175 	struct saved_syn *saved_syn;
76176 };
76177 
76178 struct tcp_sock_af_ops {
76179 	struct tcp_md5sig_key * (*md5_lookup)(const struct sock *, const struct sock *);
76180 	int (*calc_md5_hash)(char *, const struct tcp_md5sig_key *, const struct sock *, const struct sk_buff *);
76181 	int (*md5_parse)(struct sock *, int, sockptr_t, int);
76182 };
76183 
76184 struct tcp_md5sig_info {
76185 	struct hlist_head head;
76186 	struct callback_head rcu;
76187 };
76188 
76189 struct tcp_fastopen_request {
76190 	struct tcp_fastopen_cookie cookie;
76191 	struct msghdr *data;
76192 	size_t size;
76193 	int copied;
76194 	struct ubuf_info *uarg;
76195 };
76196 
76197 struct net_protocol {
76198 	int (*early_demux)(struct sk_buff *);
76199 	int (*early_demux_handler)(struct sk_buff *);
76200 	int (*handler)(struct sk_buff *);
76201 	int (*err_handler)(struct sk_buff *, u32);
76202 	unsigned int no_policy: 1;
76203 	unsigned int icmp_strict_tag_validation: 1;
76204 };
76205 
76206 struct inet6_protocol {
76207 	void (*early_demux)(struct sk_buff *);
76208 	void (*early_demux_handler)(struct sk_buff *);
76209 	int (*handler)(struct sk_buff *);
76210 	int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32);
76211 	unsigned int flags;
76212 };
76213 
76214 struct net_offload {
76215 	struct offload_callbacks callbacks;
76216 	unsigned int flags;
76217 };
76218 
76219 struct cgroup_cls_state {
76220 	struct cgroup_subsys_state css;
76221 	u32 classid;
76222 };
76223 
76224 enum {
76225 	SK_MEMINFO_RMEM_ALLOC = 0,
76226 	SK_MEMINFO_RCVBUF = 1,
76227 	SK_MEMINFO_WMEM_ALLOC = 2,
76228 	SK_MEMINFO_SNDBUF = 3,
76229 	SK_MEMINFO_FWD_ALLOC = 4,
76230 	SK_MEMINFO_WMEM_QUEUED = 5,
76231 	SK_MEMINFO_OPTMEM = 6,
76232 	SK_MEMINFO_BACKLOG = 7,
76233 	SK_MEMINFO_DROPS = 8,
76234 	SK_MEMINFO_VARS = 9,
76235 };
76236 
76237 enum sknetlink_groups {
76238 	SKNLGRP_NONE = 0,
76239 	SKNLGRP_INET_TCP_DESTROY = 1,
76240 	SKNLGRP_INET_UDP_DESTROY = 2,
76241 	SKNLGRP_INET6_TCP_DESTROY = 3,
76242 	SKNLGRP_INET6_UDP_DESTROY = 4,
76243 	__SKNLGRP_MAX = 5,
76244 };
76245 
76246 struct inet_request_sock {
76247 	struct request_sock req;
76248 	u16 snd_wscale: 4;
76249 	u16 rcv_wscale: 4;
76250 	u16 tstamp_ok: 1;
76251 	u16 sack_ok: 1;
76252 	u16 wscale_ok: 1;
76253 	u16 ecn_ok: 1;
76254 	u16 acked: 1;
76255 	u16 no_srccheck: 1;
76256 	u16 smc_ok: 1;
76257 	u32 ir_mark;
76258 	union {
76259 		struct ip_options_rcu *ireq_opt;
76260 		struct {
76261 			struct ipv6_txoptions *ipv6_opt;
76262 			struct sk_buff *pktopts;
76263 		};
76264 	};
76265 };
76266 
76267 struct tcp_request_sock {
76268 	struct inet_request_sock req;
76269 	const struct tcp_request_sock_ops *af_specific;
76270 	u64 snt_synack;
76271 	bool tfo_listener;
76272 	bool is_mptcp;
76273 	u32 txhash;
76274 	u32 rcv_isn;
76275 	u32 snt_isn;
76276 	u32 ts_off;
76277 	u32 last_oow_ack_time;
76278 	u32 rcv_nxt;
76279 	u8 syn_tos;
76280 };
76281 
76282 struct ts_state {
76283 	unsigned int offset;
76284 	char cb[48];
76285 };
76286 
76287 struct ts_config;
76288 
76289 struct ts_ops {
76290 	const char *name;
76291 	struct ts_config * (*init)(const void *, unsigned int, gfp_t, int);
76292 	unsigned int (*find)(struct ts_config *, struct ts_state *);
76293 	void (*destroy)(struct ts_config *);
76294 	void * (*get_pattern)(struct ts_config *);
76295 	unsigned int (*get_pattern_len)(struct ts_config *);
76296 	struct module *owner;
76297 	struct list_head list;
76298 };
76299 
76300 struct ts_config {
76301 	struct ts_ops *ops;
76302 	int flags;
76303 	unsigned int (*get_next_block)(unsigned int, const u8 **, struct ts_config *, struct ts_state *);
76304 	void (*finish)(struct ts_config *, struct ts_state *);
76305 };
76306 
76307 enum {
76308 	SKB_FCLONE_UNAVAILABLE = 0,
76309 	SKB_FCLONE_ORIG = 1,
76310 	SKB_FCLONE_CLONE = 2,
76311 };
76312 
76313 struct sk_buff_fclones {
76314 	struct sk_buff skb1;
76315 	struct sk_buff skb2;
76316 	refcount_t fclone_ref;
76317 };
76318 
76319 struct skb_seq_state {
76320 	__u32 lower_offset;
76321 	__u32 upper_offset;
76322 	__u32 frag_idx;
76323 	__u32 stepped_offset;
76324 	struct sk_buff *root_skb;
76325 	struct sk_buff *cur_skb;
76326 	__u8 *frag_data;
76327 	__u32 frag_off;
76328 };
76329 
76330 struct skb_gso_cb {
76331 	union {
76332 		int mac_offset;
76333 		int data_offset;
76334 	};
76335 	int encap_level;
76336 	__wsum csum;
76337 	__u16 csum_start;
76338 };
76339 
76340 struct ip_auth_hdr {
76341 	__u8 nexthdr;
76342 	__u8 hdrlen;
76343 	__be16 reserved;
76344 	__be32 spi;
76345 	__be32 seq_no;
76346 	__u8 auth_data[0];
76347 };
76348 
76349 struct frag_hdr {
76350 	__u8 nexthdr;
76351 	__u8 reserved;
76352 	__be16 frag_off;
76353 	__be32 identification;
76354 };
76355 
76356 enum {
76357 	SCM_TSTAMP_SND = 0,
76358 	SCM_TSTAMP_SCHED = 1,
76359 	SCM_TSTAMP_ACK = 2,
76360 };
76361 
76362 struct xfrm_offload {
76363 	struct {
76364 		__u32 low;
76365 		__u32 hi;
76366 	} seq;
76367 	__u32 flags;
76368 	__u32 status;
76369 	__u8 proto;
76370 	__u8 inner_ipproto;
76371 };
76372 
76373 struct sec_path {
76374 	int len;
76375 	int olen;
76376 	struct xfrm_state *xvec[6];
76377 	struct xfrm_offload ovec[1];
76378 };
76379 
76380 struct mpls_shim_hdr {
76381 	__be32 label_stack_entry;
76382 };
76383 
76384 struct napi_alloc_cache {
76385 	struct page_frag_cache page;
76386 	unsigned int skb_count;
76387 	void *skb_cache[64];
76388 };
76389 
76390 typedef int (*sendmsg_func)(struct sock *, struct msghdr *, struct kvec *, size_t, size_t);
76391 
76392 typedef int (*sendpage_func)(struct sock *, struct page *, int, size_t, int);
76393 
76394 struct ahash_request___2;
76395 
76396 struct scm_cookie {
76397 	struct pid *pid;
76398 	struct scm_fp_list *fp;
76399 	struct scm_creds creds;
76400 	u32 secid;
76401 };
76402 
76403 struct scm_timestamping {
76404 	struct __kernel_old_timespec ts[3];
76405 };
76406 
76407 struct scm_timestamping64 {
76408 	struct __kernel_timespec ts[3];
76409 };
76410 
76411 enum {
76412 	TCA_STATS_UNSPEC = 0,
76413 	TCA_STATS_BASIC = 1,
76414 	TCA_STATS_RATE_EST = 2,
76415 	TCA_STATS_QUEUE = 3,
76416 	TCA_STATS_APP = 4,
76417 	TCA_STATS_RATE_EST64 = 5,
76418 	TCA_STATS_PAD = 6,
76419 	TCA_STATS_BASIC_HW = 7,
76420 	TCA_STATS_PKT64 = 8,
76421 	__TCA_STATS_MAX = 9,
76422 };
76423 
76424 struct gnet_stats_basic {
76425 	__u64 bytes;
76426 	__u32 packets;
76427 };
76428 
76429 struct gnet_stats_rate_est {
76430 	__u32 bps;
76431 	__u32 pps;
76432 };
76433 
76434 struct gnet_stats_rate_est64 {
76435 	__u64 bps;
76436 	__u64 pps;
76437 };
76438 
76439 struct gnet_estimator {
76440 	signed char interval;
76441 	unsigned char ewma_log;
76442 };
76443 
76444 struct net_rate_estimator___2 {
76445 	struct gnet_stats_basic_sync *bstats;
76446 	spinlock_t *stats_lock;
76447 	bool running;
76448 	struct gnet_stats_basic_sync *cpu_bstats;
76449 	u8 ewma_log;
76450 	u8 intvl_log;
76451 	seqcount_t seq;
76452 	u64 last_packets;
76453 	u64 last_bytes;
76454 	u64 avpps;
76455 	u64 avbps;
76456 	long unsigned int next_jiffies;
76457 	struct timer_list timer;
76458 	struct callback_head rcu;
76459 };
76460 
76461 struct rtgenmsg {
76462 	unsigned char rtgen_family;
76463 };
76464 
76465 enum {
76466 	NETNSA_NONE = 0,
76467 	NETNSA_NSID = 1,
76468 	NETNSA_PID = 2,
76469 	NETNSA_FD = 3,
76470 	NETNSA_TARGET_NSID = 4,
76471 	NETNSA_CURRENT_NSID = 5,
76472 	__NETNSA_MAX = 6,
76473 };
76474 
76475 struct pcpu_gen_cookie {
76476 	local_t nesting;
76477 	u64 last;
76478 };
76479 
76480 struct gen_cookie {
76481 	struct pcpu_gen_cookie *local;
76482 	long: 64;
76483 	long: 64;
76484 	long: 64;
76485 	long: 64;
76486 	long: 64;
76487 	long: 64;
76488 	long: 64;
76489 	atomic64_t forward_last;
76490 	atomic64_t reverse_last;
76491 	long: 64;
76492 	long: 64;
76493 	long: 64;
76494 	long: 64;
76495 	long: 64;
76496 	long: 64;
76497 };
76498 
76499 enum rtnl_link_flags {
76500 	RTNL_FLAG_DOIT_UNLOCKED = 1,
76501 };
76502 
76503 struct net_fill_args {
76504 	u32 portid;
76505 	u32 seq;
76506 	int flags;
76507 	int cmd;
76508 	int nsid;
76509 	bool add_ref;
76510 	int ref_nsid;
76511 };
76512 
76513 struct rtnl_net_dump_cb {
76514 	struct net *tgt_net;
76515 	struct net *ref_net;
76516 	struct sk_buff *skb;
76517 	struct net_fill_args fillargs;
76518 	int idx;
76519 	int s_idx;
76520 };
76521 
76522 enum flow_dissect_ret {
76523 	FLOW_DISSECT_RET_OUT_GOOD = 0,
76524 	FLOW_DISSECT_RET_OUT_BAD = 1,
76525 	FLOW_DISSECT_RET_PROTO_AGAIN = 2,
76526 	FLOW_DISSECT_RET_IPPROTO_AGAIN = 3,
76527 	FLOW_DISSECT_RET_CONTINUE = 4,
76528 };
76529 
76530 struct flow_dissector_mpls_lse {
76531 	u32 mpls_ttl: 8;
76532 	u32 mpls_bos: 1;
76533 	u32 mpls_tc: 3;
76534 	u32 mpls_label: 20;
76535 };
76536 
76537 struct flow_dissector_key_mpls {
76538 	struct flow_dissector_mpls_lse ls[7];
76539 	u8 used_lses;
76540 };
76541 
76542 struct flow_dissector_key_enc_opts {
76543 	u8 data[255];
76544 	u8 len;
76545 	__be16 dst_opt_type;
76546 };
76547 
76548 struct flow_dissector_key_arp {
76549 	__u32 sip;
76550 	__u32 tip;
76551 	__u8 op;
76552 	unsigned char sha[6];
76553 	unsigned char tha[6];
76554 };
76555 
76556 struct flow_dissector_key_eth_addrs {
76557 	unsigned char dst[6];
76558 	unsigned char src[6];
76559 };
76560 
76561 struct flow_dissector_key_tcp {
76562 	__be16 flags;
76563 };
76564 
76565 struct flow_dissector_key_ip {
76566 	__u8 tos;
76567 	__u8 ttl;
76568 };
76569 
76570 struct flow_dissector_key_meta {
76571 	int ingress_ifindex;
76572 	u16 ingress_iftype;
76573 };
76574 
76575 struct flow_dissector_key_ct {
76576 	u16 ct_state;
76577 	u16 ct_zone;
76578 	u32 ct_mark;
76579 	u32 ct_labels[4];
76580 };
76581 
76582 struct flow_dissector_key_hash {
76583 	u32 hash;
76584 };
76585 
76586 struct flow_keys_digest {
76587 	u8 data[16];
76588 };
76589 
76590 enum {
76591 	TCA_FLOWER_KEY_CT_FLAGS_NEW = 1,
76592 	TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED = 2,
76593 	TCA_FLOWER_KEY_CT_FLAGS_RELATED = 4,
76594 	TCA_FLOWER_KEY_CT_FLAGS_TRACKED = 8,
76595 	TCA_FLOWER_KEY_CT_FLAGS_INVALID = 16,
76596 	TCA_FLOWER_KEY_CT_FLAGS_REPLY = 32,
76597 	__TCA_FLOWER_KEY_CT_FLAGS_MAX = 33,
76598 };
76599 
76600 union tcp_word_hdr {
76601 	struct tcphdr hdr;
76602 	__be32 words[5];
76603 };
76604 
76605 enum bpf_ret_code {
76606 	BPF_OK = 0,
76607 	BPF_DROP = 2,
76608 	BPF_REDIRECT = 7,
76609 	BPF_LWT_REROUTE = 128,
76610 };
76611 
76612 enum {
76613 	BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 1,
76614 	BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 2,
76615 	BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 4,
76616 };
76617 
76618 struct gre_base_hdr {
76619 	__be16 flags;
76620 	__be16 protocol;
76621 };
76622 
76623 struct gre_full_hdr {
76624 	struct gre_base_hdr fixed_header;
76625 	__be16 csum;
76626 	__be16 reserved1;
76627 	__be32 key;
76628 	__be32 seq;
76629 };
76630 
76631 struct pptp_gre_header {
76632 	struct gre_base_hdr gre_hd;
76633 	__be16 payload_len;
76634 	__be16 call_id;
76635 	__be32 seq;
76636 	__be32 ack;
76637 };
76638 
76639 struct tipc_basic_hdr {
76640 	__be32 w[4];
76641 };
76642 
76643 struct icmphdr {
76644 	__u8 type;
76645 	__u8 code;
76646 	__sum16 checksum;
76647 	union {
76648 		struct {
76649 			__be16 id;
76650 			__be16 sequence;
76651 		} echo;
76652 		__be32 gateway;
76653 		struct {
76654 			__be16 __unused;
76655 			__be16 mtu;
76656 		} frag;
76657 		__u8 reserved[4];
76658 	} un;
76659 };
76660 
76661 enum l2tp_debug_flags {
76662 	L2TP_MSG_DEBUG = 1,
76663 	L2TP_MSG_CONTROL = 2,
76664 	L2TP_MSG_SEQ = 4,
76665 	L2TP_MSG_DATA = 8,
76666 };
76667 
76668 struct pppoe_tag {
76669 	__be16 tag_type;
76670 	__be16 tag_len;
76671 	char tag_data[0];
76672 };
76673 
76674 struct pppoe_hdr {
76675 	__u8 type: 4;
76676 	__u8 ver: 4;
76677 	__u8 code;
76678 	__be16 sid;
76679 	__be16 length;
76680 	struct pppoe_tag tag[0];
76681 };
76682 
76683 struct mpls_label {
76684 	__be32 entry;
76685 };
76686 
76687 struct clock_identity {
76688 	u8 id[8];
76689 };
76690 
76691 struct port_identity {
76692 	struct clock_identity clock_identity;
76693 	__be16 port_number;
76694 };
76695 
76696 struct ptp_header {
76697 	u8 tsmt;
76698 	u8 ver;
76699 	__be16 message_length;
76700 	u8 domain_number;
76701 	u8 reserved1;
76702 	u8 flag_field[2];
76703 	__be64 correction;
76704 	__be32 reserved2;
76705 	struct port_identity source_port_identity;
76706 	__be16 sequence_id;
76707 	u8 control;
76708 	u8 log_message_interval;
76709 } __attribute__((packed));
76710 
76711 enum batadv_packettype {
76712 	BATADV_IV_OGM = 0,
76713 	BATADV_BCAST = 1,
76714 	BATADV_CODED = 2,
76715 	BATADV_ELP = 3,
76716 	BATADV_OGM2 = 4,
76717 	BATADV_UNICAST = 64,
76718 	BATADV_UNICAST_FRAG = 65,
76719 	BATADV_UNICAST_4ADDR = 66,
76720 	BATADV_ICMP = 67,
76721 	BATADV_UNICAST_TVLV = 68,
76722 };
76723 
76724 struct batadv_unicast_packet {
76725 	__u8 packet_type;
76726 	__u8 version;
76727 	__u8 ttl;
76728 	__u8 ttvn;
76729 	__u8 dest[6];
76730 };
76731 
76732 struct nf_conntrack_l4proto {
76733 	u_int8_t l4proto;
76734 	bool allow_clash;
76735 	u16 nlattr_size;
76736 	bool (*can_early_drop)(const struct nf_conn *);
76737 	int (*to_nlattr)(struct sk_buff *, struct nlattr *, struct nf_conn *, bool);
76738 	int (*from_nlattr)(struct nlattr **, struct nf_conn *);
76739 	int (*tuple_to_nlattr)(struct sk_buff *, const struct nf_conntrack_tuple *);
76740 	unsigned int (*nlattr_tuple_size)();
76741 	int (*nlattr_to_tuple)(struct nlattr **, struct nf_conntrack_tuple *, u_int32_t);
76742 	const struct nla_policy *nla_policy;
76743 	struct {
76744 		int (*nlattr_to_obj)(struct nlattr **, struct net *, void *);
76745 		int (*obj_to_nlattr)(struct sk_buff *, const void *);
76746 		u16 obj_size;
76747 		u16 nlattr_max;
76748 		const struct nla_policy *nla_policy;
76749 	} ctnl_timeout;
76750 	void (*print_conntrack)(struct seq_file *, struct nf_conn *);
76751 };
76752 
76753 struct nf_ct_ext {
76754 	u8 offset[3];
76755 	u8 len;
76756 	char data[0];
76757 };
76758 
76759 enum nf_ct_ext_id {
76760 	NF_CT_EXT_HELPER = 0,
76761 	NF_CT_EXT_SEQADJ = 1,
76762 	NF_CT_EXT_ACCT = 2,
76763 	NF_CT_EXT_NUM = 3,
76764 };
76765 
76766 struct nf_conn_labels {
76767 	long unsigned int bits[2];
76768 };
76769 
76770 struct _flow_keys_digest_data {
76771 	__be16 n_proto;
76772 	u8 ip_proto;
76773 	u8 padding;
76774 	__be32 ports;
76775 	__be32 src;
76776 	__be32 dst;
76777 };
76778 
76779 enum nf_dev_hooks {
76780 	NF_NETDEV_INGRESS = 0,
76781 	NF_NETDEV_EGRESS = 1,
76782 	NF_NETDEV_NUMHOOKS = 2,
76783 };
76784 
76785 enum {
76786 	IF_OPER_UNKNOWN = 0,
76787 	IF_OPER_NOTPRESENT = 1,
76788 	IF_OPER_DOWN = 2,
76789 	IF_OPER_LOWERLAYERDOWN = 3,
76790 	IF_OPER_TESTING = 4,
76791 	IF_OPER_DORMANT = 5,
76792 	IF_OPER_UP = 6,
76793 };
76794 
76795 enum {
76796 	NAPIF_STATE_SCHED = 1,
76797 	NAPIF_STATE_MISSED = 2,
76798 	NAPIF_STATE_DISABLE = 4,
76799 	NAPIF_STATE_NPSVC = 8,
76800 	NAPIF_STATE_LISTED = 16,
76801 	NAPIF_STATE_NO_BUSY_POLL = 32,
76802 	NAPIF_STATE_IN_BUSY_POLL = 64,
76803 	NAPIF_STATE_PREFER_BUSY_POLL = 128,
76804 	NAPIF_STATE_THREADED = 256,
76805 	NAPIF_STATE_SCHED_THREADED = 512,
76806 };
76807 
76808 struct net_device_path_stack {
76809 	int num_paths;
76810 	struct net_device_path path[5];
76811 };
76812 
76813 enum bpf_xdp_mode {
76814 	XDP_MODE_SKB = 0,
76815 	XDP_MODE_DRV = 1,
76816 	XDP_MODE_HW = 2,
76817 	__MAX_XDP_MODE = 3,
76818 };
76819 
76820 struct bpf_xdp_link {
76821 	struct bpf_link link;
76822 	struct net_device *dev;
76823 	int flags;
76824 };
76825 
76826 struct netdev_net_notifier {
76827 	struct list_head list;
76828 	struct notifier_block *nb;
76829 };
76830 
76831 struct packet_type {
76832 	__be16 type;
76833 	bool ignore_outgoing;
76834 	struct net_device *dev;
76835 	netdevice_tracker dev_tracker;
76836 	int (*func)(struct sk_buff *, struct net_device *, struct packet_type *, struct net_device *);
76837 	void (*list_func)(struct list_head *, struct packet_type *, struct net_device *);
76838 	bool (*id_match)(struct packet_type *, struct sock *);
76839 	struct net *af_packet_net;
76840 	void *af_packet_priv;
76841 	struct list_head list;
76842 };
76843 
76844 struct netdev_notifier_info_ext {
76845 	struct netdev_notifier_info info;
76846 	union {
76847 		u32 mtu;
76848 	} ext;
76849 };
76850 
76851 struct netdev_notifier_change_info {
76852 	struct netdev_notifier_info info;
76853 	unsigned int flags_changed;
76854 };
76855 
76856 struct netdev_notifier_changeupper_info {
76857 	struct netdev_notifier_info info;
76858 	struct net_device *upper_dev;
76859 	bool master;
76860 	bool linking;
76861 	void *upper_info;
76862 };
76863 
76864 struct netdev_notifier_changelowerstate_info {
76865 	struct netdev_notifier_info info;
76866 	void *lower_state_info;
76867 };
76868 
76869 struct netdev_notifier_pre_changeaddr_info {
76870 	struct netdev_notifier_info info;
76871 	const unsigned char *dev_addr;
76872 };
76873 
76874 typedef int (*bpf_op_t)(struct net_device *, struct netdev_bpf *);
76875 
76876 enum {
76877 	NESTED_SYNC_IMM_BIT = 0,
76878 	NESTED_SYNC_TODO_BIT = 1,
76879 };
76880 
76881 struct netdev_notifier_bonding_info {
76882 	struct netdev_notifier_info info;
76883 	struct netdev_bonding_info bonding_info;
76884 };
76885 
76886 enum qdisc_state_t {
76887 	__QDISC_STATE_SCHED = 0,
76888 	__QDISC_STATE_DEACTIVATED = 1,
76889 	__QDISC_STATE_MISSED = 2,
76890 	__QDISC_STATE_DRAINING = 3,
76891 };
76892 
76893 enum qdisc_state2_t {
76894 	__QDISC_STATE2_RUNNING = 0,
76895 };
76896 
76897 struct tc_skb_cb {
76898 	struct qdisc_skb_cb qdisc_cb;
76899 	u16 mru;
76900 	u8 post_ct: 1;
76901 	u8 post_ct_snat: 1;
76902 	u8 post_ct_dnat: 1;
76903 	u16 zone;
76904 };
76905 
76906 struct dev_kfree_skb_cb {
76907 	enum skb_free_reason reason;
76908 };
76909 
76910 struct netdev_adjacent {
76911 	struct net_device *dev;
76912 	netdevice_tracker dev_tracker;
76913 	bool master;
76914 	bool ignore;
76915 	u16 ref_nr;
76916 	void *private;
76917 	struct list_head list;
76918 	struct callback_head rcu;
76919 };
76920 
76921 struct xfrm_dst {
76922 	union {
76923 		struct dst_entry dst;
76924 		struct rtable rt;
76925 		struct rt6_info rt6;
76926 	} u;
76927 	struct dst_entry *route;
76928 	struct dst_entry *child;
76929 	struct dst_entry *path;
76930 	struct xfrm_policy *pols[2];
76931 	int num_pols;
76932 	int num_xfrms;
76933 	u32 xfrm_genid;
76934 	u32 policy_genid;
76935 	u32 route_mtu_cached;
76936 	u32 child_mtu_cached;
76937 	u32 route_cookie;
76938 	u32 path_cookie;
76939 };
76940 
76941 struct ndt_stats {
76942 	__u64 ndts_allocs;
76943 	__u64 ndts_destroys;
76944 	__u64 ndts_hash_grows;
76945 	__u64 ndts_res_failed;
76946 	__u64 ndts_lookups;
76947 	__u64 ndts_hits;
76948 	__u64 ndts_rcv_probes_mcast;
76949 	__u64 ndts_rcv_probes_ucast;
76950 	__u64 ndts_periodic_gc_runs;
76951 	__u64 ndts_forced_gc_runs;
76952 	__u64 ndts_table_fulls;
76953 };
76954 
76955 enum {
76956 	NDTPA_UNSPEC = 0,
76957 	NDTPA_IFINDEX = 1,
76958 	NDTPA_REFCNT = 2,
76959 	NDTPA_REACHABLE_TIME = 3,
76960 	NDTPA_BASE_REACHABLE_TIME = 4,
76961 	NDTPA_RETRANS_TIME = 5,
76962 	NDTPA_GC_STALETIME = 6,
76963 	NDTPA_DELAY_PROBE_TIME = 7,
76964 	NDTPA_QUEUE_LEN = 8,
76965 	NDTPA_APP_PROBES = 9,
76966 	NDTPA_UCAST_PROBES = 10,
76967 	NDTPA_MCAST_PROBES = 11,
76968 	NDTPA_ANYCAST_DELAY = 12,
76969 	NDTPA_PROXY_DELAY = 13,
76970 	NDTPA_PROXY_QLEN = 14,
76971 	NDTPA_LOCKTIME = 15,
76972 	NDTPA_QUEUE_LENBYTES = 16,
76973 	NDTPA_MCAST_REPROBES = 17,
76974 	NDTPA_PAD = 18,
76975 	__NDTPA_MAX = 19,
76976 };
76977 
76978 struct ndtmsg {
76979 	__u8 ndtm_family;
76980 	__u8 ndtm_pad1;
76981 	__u16 ndtm_pad2;
76982 };
76983 
76984 struct ndt_config {
76985 	__u16 ndtc_key_len;
76986 	__u16 ndtc_entry_size;
76987 	__u32 ndtc_entries;
76988 	__u32 ndtc_last_flush;
76989 	__u32 ndtc_last_rand;
76990 	__u32 ndtc_hash_rnd;
76991 	__u32 ndtc_hash_mask;
76992 	__u32 ndtc_hash_chain_gc;
76993 	__u32 ndtc_proxy_qlen;
76994 };
76995 
76996 enum {
76997 	NDTA_UNSPEC = 0,
76998 	NDTA_NAME = 1,
76999 	NDTA_THRESH1 = 2,
77000 	NDTA_THRESH2 = 3,
77001 	NDTA_THRESH3 = 4,
77002 	NDTA_CONFIG = 5,
77003 	NDTA_PARMS = 6,
77004 	NDTA_STATS = 7,
77005 	NDTA_GC_INTERVAL = 8,
77006 	NDTA_PAD = 9,
77007 	__NDTA_MAX = 10,
77008 };
77009 
77010 enum {
77011 	NEIGH_ARP_TABLE = 0,
77012 	NEIGH_ND_TABLE = 1,
77013 	NEIGH_DN_TABLE = 2,
77014 	NEIGH_NR_TABLES = 3,
77015 	NEIGH_LINK_TABLE = 3,
77016 };
77017 
77018 struct neigh_seq_state {
77019 	struct seq_net_private p;
77020 	struct neigh_table *tbl;
77021 	struct neigh_hash_table *nht;
77022 	void * (*neigh_sub_iter)(struct neigh_seq_state *, struct neighbour *, loff_t *);
77023 	unsigned int bucket;
77024 	unsigned int flags;
77025 };
77026 
77027 struct neighbour_cb {
77028 	long unsigned int sched_next;
77029 	unsigned int flags;
77030 };
77031 
77032 enum netevent_notif_type {
77033 	NETEVENT_NEIGH_UPDATE = 1,
77034 	NETEVENT_REDIRECT = 2,
77035 	NETEVENT_DELAY_PROBE_TIME_UPDATE = 3,
77036 	NETEVENT_IPV4_MPATH_HASH_UPDATE = 4,
77037 	NETEVENT_IPV6_MPATH_HASH_UPDATE = 5,
77038 	NETEVENT_IPV4_FWD_UPDATE_PRIORITY_UPDATE = 6,
77039 };
77040 
77041 struct neigh_dump_filter {
77042 	int master_idx;
77043 	int dev_idx;
77044 };
77045 
77046 struct neigh_sysctl_table {
77047 	struct ctl_table_header *sysctl_header;
77048 	struct ctl_table neigh_vars[21];
77049 };
77050 
77051 struct netlink_dump_control {
77052 	int (*start)(struct netlink_callback *);
77053 	int (*dump)(struct sk_buff *, struct netlink_callback *);
77054 	int (*done)(struct netlink_callback *);
77055 	void *data;
77056 	struct module *module;
77057 	u32 min_dump_alloc;
77058 };
77059 
77060 struct rtnl_link_stats {
77061 	__u32 rx_packets;
77062 	__u32 tx_packets;
77063 	__u32 rx_bytes;
77064 	__u32 tx_bytes;
77065 	__u32 rx_errors;
77066 	__u32 tx_errors;
77067 	__u32 rx_dropped;
77068 	__u32 tx_dropped;
77069 	__u32 multicast;
77070 	__u32 collisions;
77071 	__u32 rx_length_errors;
77072 	__u32 rx_over_errors;
77073 	__u32 rx_crc_errors;
77074 	__u32 rx_frame_errors;
77075 	__u32 rx_fifo_errors;
77076 	__u32 rx_missed_errors;
77077 	__u32 tx_aborted_errors;
77078 	__u32 tx_carrier_errors;
77079 	__u32 tx_fifo_errors;
77080 	__u32 tx_heartbeat_errors;
77081 	__u32 tx_window_errors;
77082 	__u32 rx_compressed;
77083 	__u32 tx_compressed;
77084 	__u32 rx_nohandler;
77085 };
77086 
77087 struct rtnl_link_ifmap {
77088 	__u64 mem_start;
77089 	__u64 mem_end;
77090 	__u64 base_addr;
77091 	__u16 irq;
77092 	__u8 dma;
77093 	__u8 port;
77094 };
77095 
77096 enum {
77097 	IFLA_PROTO_DOWN_REASON_UNSPEC = 0,
77098 	IFLA_PROTO_DOWN_REASON_MASK = 1,
77099 	IFLA_PROTO_DOWN_REASON_VALUE = 2,
77100 	__IFLA_PROTO_DOWN_REASON_CNT = 3,
77101 	IFLA_PROTO_DOWN_REASON_MAX = 2,
77102 };
77103 
77104 enum {
77105 	IFLA_BRPORT_UNSPEC = 0,
77106 	IFLA_BRPORT_STATE = 1,
77107 	IFLA_BRPORT_PRIORITY = 2,
77108 	IFLA_BRPORT_COST = 3,
77109 	IFLA_BRPORT_MODE = 4,
77110 	IFLA_BRPORT_GUARD = 5,
77111 	IFLA_BRPORT_PROTECT = 6,
77112 	IFLA_BRPORT_FAST_LEAVE = 7,
77113 	IFLA_BRPORT_LEARNING = 8,
77114 	IFLA_BRPORT_UNICAST_FLOOD = 9,
77115 	IFLA_BRPORT_PROXYARP = 10,
77116 	IFLA_BRPORT_LEARNING_SYNC = 11,
77117 	IFLA_BRPORT_PROXYARP_WIFI = 12,
77118 	IFLA_BRPORT_ROOT_ID = 13,
77119 	IFLA_BRPORT_BRIDGE_ID = 14,
77120 	IFLA_BRPORT_DESIGNATED_PORT = 15,
77121 	IFLA_BRPORT_DESIGNATED_COST = 16,
77122 	IFLA_BRPORT_ID = 17,
77123 	IFLA_BRPORT_NO = 18,
77124 	IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 19,
77125 	IFLA_BRPORT_CONFIG_PENDING = 20,
77126 	IFLA_BRPORT_MESSAGE_AGE_TIMER = 21,
77127 	IFLA_BRPORT_FORWARD_DELAY_TIMER = 22,
77128 	IFLA_BRPORT_HOLD_TIMER = 23,
77129 	IFLA_BRPORT_FLUSH = 24,
77130 	IFLA_BRPORT_MULTICAST_ROUTER = 25,
77131 	IFLA_BRPORT_PAD = 26,
77132 	IFLA_BRPORT_MCAST_FLOOD = 27,
77133 	IFLA_BRPORT_MCAST_TO_UCAST = 28,
77134 	IFLA_BRPORT_VLAN_TUNNEL = 29,
77135 	IFLA_BRPORT_BCAST_FLOOD = 30,
77136 	IFLA_BRPORT_GROUP_FWD_MASK = 31,
77137 	IFLA_BRPORT_NEIGH_SUPPRESS = 32,
77138 	IFLA_BRPORT_ISOLATED = 33,
77139 	IFLA_BRPORT_BACKUP_PORT = 34,
77140 	IFLA_BRPORT_MRP_RING_OPEN = 35,
77141 	IFLA_BRPORT_MRP_IN_OPEN = 36,
77142 	IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 37,
77143 	IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 38,
77144 	__IFLA_BRPORT_MAX = 39,
77145 };
77146 
77147 enum {
77148 	IFLA_INFO_UNSPEC = 0,
77149 	IFLA_INFO_KIND = 1,
77150 	IFLA_INFO_DATA = 2,
77151 	IFLA_INFO_XSTATS = 3,
77152 	IFLA_INFO_SLAVE_KIND = 4,
77153 	IFLA_INFO_SLAVE_DATA = 5,
77154 	__IFLA_INFO_MAX = 6,
77155 };
77156 
77157 enum {
77158 	IFLA_VF_INFO_UNSPEC = 0,
77159 	IFLA_VF_INFO = 1,
77160 	__IFLA_VF_INFO_MAX = 2,
77161 };
77162 
77163 enum {
77164 	IFLA_VF_UNSPEC = 0,
77165 	IFLA_VF_MAC = 1,
77166 	IFLA_VF_VLAN = 2,
77167 	IFLA_VF_TX_RATE = 3,
77168 	IFLA_VF_SPOOFCHK = 4,
77169 	IFLA_VF_LINK_STATE = 5,
77170 	IFLA_VF_RATE = 6,
77171 	IFLA_VF_RSS_QUERY_EN = 7,
77172 	IFLA_VF_STATS = 8,
77173 	IFLA_VF_TRUST = 9,
77174 	IFLA_VF_IB_NODE_GUID = 10,
77175 	IFLA_VF_IB_PORT_GUID = 11,
77176 	IFLA_VF_VLAN_LIST = 12,
77177 	IFLA_VF_BROADCAST = 13,
77178 	__IFLA_VF_MAX = 14,
77179 };
77180 
77181 struct ifla_vf_mac {
77182 	__u32 vf;
77183 	__u8 mac[32];
77184 };
77185 
77186 struct ifla_vf_broadcast {
77187 	__u8 broadcast[32];
77188 };
77189 
77190 struct ifla_vf_vlan {
77191 	__u32 vf;
77192 	__u32 vlan;
77193 	__u32 qos;
77194 };
77195 
77196 enum {
77197 	IFLA_VF_VLAN_INFO_UNSPEC = 0,
77198 	IFLA_VF_VLAN_INFO = 1,
77199 	__IFLA_VF_VLAN_INFO_MAX = 2,
77200 };
77201 
77202 struct ifla_vf_vlan_info {
77203 	__u32 vf;
77204 	__u32 vlan;
77205 	__u32 qos;
77206 	__be16 vlan_proto;
77207 };
77208 
77209 struct ifla_vf_tx_rate {
77210 	__u32 vf;
77211 	__u32 rate;
77212 };
77213 
77214 struct ifla_vf_rate {
77215 	__u32 vf;
77216 	__u32 min_tx_rate;
77217 	__u32 max_tx_rate;
77218 };
77219 
77220 struct ifla_vf_spoofchk {
77221 	__u32 vf;
77222 	__u32 setting;
77223 };
77224 
77225 struct ifla_vf_link_state {
77226 	__u32 vf;
77227 	__u32 link_state;
77228 };
77229 
77230 struct ifla_vf_rss_query_en {
77231 	__u32 vf;
77232 	__u32 setting;
77233 };
77234 
77235 enum {
77236 	IFLA_VF_STATS_RX_PACKETS = 0,
77237 	IFLA_VF_STATS_TX_PACKETS = 1,
77238 	IFLA_VF_STATS_RX_BYTES = 2,
77239 	IFLA_VF_STATS_TX_BYTES = 3,
77240 	IFLA_VF_STATS_BROADCAST = 4,
77241 	IFLA_VF_STATS_MULTICAST = 5,
77242 	IFLA_VF_STATS_PAD = 6,
77243 	IFLA_VF_STATS_RX_DROPPED = 7,
77244 	IFLA_VF_STATS_TX_DROPPED = 8,
77245 	__IFLA_VF_STATS_MAX = 9,
77246 };
77247 
77248 struct ifla_vf_trust {
77249 	__u32 vf;
77250 	__u32 setting;
77251 };
77252 
77253 enum {
77254 	IFLA_VF_PORT_UNSPEC = 0,
77255 	IFLA_VF_PORT = 1,
77256 	__IFLA_VF_PORT_MAX = 2,
77257 };
77258 
77259 enum {
77260 	IFLA_PORT_UNSPEC = 0,
77261 	IFLA_PORT_VF = 1,
77262 	IFLA_PORT_PROFILE = 2,
77263 	IFLA_PORT_VSI_TYPE = 3,
77264 	IFLA_PORT_INSTANCE_UUID = 4,
77265 	IFLA_PORT_HOST_UUID = 5,
77266 	IFLA_PORT_REQUEST = 6,
77267 	IFLA_PORT_RESPONSE = 7,
77268 	__IFLA_PORT_MAX = 8,
77269 };
77270 
77271 struct if_stats_msg {
77272 	__u8 family;
77273 	__u8 pad1;
77274 	__u16 pad2;
77275 	__u32 ifindex;
77276 	__u32 filter_mask;
77277 };
77278 
77279 enum {
77280 	IFLA_OFFLOAD_XSTATS_UNSPEC = 0,
77281 	IFLA_OFFLOAD_XSTATS_CPU_HIT = 1,
77282 	__IFLA_OFFLOAD_XSTATS_MAX = 2,
77283 };
77284 
77285 enum {
77286 	XDP_ATTACHED_NONE = 0,
77287 	XDP_ATTACHED_DRV = 1,
77288 	XDP_ATTACHED_SKB = 2,
77289 	XDP_ATTACHED_HW = 3,
77290 	XDP_ATTACHED_MULTI = 4,
77291 };
77292 
77293 enum {
77294 	IFLA_XDP_UNSPEC = 0,
77295 	IFLA_XDP_FD = 1,
77296 	IFLA_XDP_ATTACHED = 2,
77297 	IFLA_XDP_FLAGS = 3,
77298 	IFLA_XDP_PROG_ID = 4,
77299 	IFLA_XDP_DRV_PROG_ID = 5,
77300 	IFLA_XDP_SKB_PROG_ID = 6,
77301 	IFLA_XDP_HW_PROG_ID = 7,
77302 	IFLA_XDP_EXPECTED_FD = 8,
77303 	__IFLA_XDP_MAX = 9,
77304 };
77305 
77306 enum {
77307 	IFLA_EVENT_NONE = 0,
77308 	IFLA_EVENT_REBOOT = 1,
77309 	IFLA_EVENT_FEATURES = 2,
77310 	IFLA_EVENT_BONDING_FAILOVER = 3,
77311 	IFLA_EVENT_NOTIFY_PEERS = 4,
77312 	IFLA_EVENT_IGMP_RESEND = 5,
77313 	IFLA_EVENT_BONDING_OPTIONS = 6,
77314 };
77315 
77316 enum {
77317 	IFLA_BRIDGE_FLAGS = 0,
77318 	IFLA_BRIDGE_MODE = 1,
77319 	IFLA_BRIDGE_VLAN_INFO = 2,
77320 	IFLA_BRIDGE_VLAN_TUNNEL_INFO = 3,
77321 	IFLA_BRIDGE_MRP = 4,
77322 	IFLA_BRIDGE_CFM = 5,
77323 	__IFLA_BRIDGE_MAX = 6,
77324 };
77325 
77326 enum {
77327 	BR_MCAST_DIR_RX = 0,
77328 	BR_MCAST_DIR_TX = 1,
77329 	BR_MCAST_DIR_SIZE = 2,
77330 };
77331 
77332 enum rtattr_type_t {
77333 	RTA_UNSPEC = 0,
77334 	RTA_DST = 1,
77335 	RTA_SRC = 2,
77336 	RTA_IIF = 3,
77337 	RTA_OIF = 4,
77338 	RTA_GATEWAY = 5,
77339 	RTA_PRIORITY = 6,
77340 	RTA_PREFSRC = 7,
77341 	RTA_METRICS = 8,
77342 	RTA_MULTIPATH = 9,
77343 	RTA_PROTOINFO = 10,
77344 	RTA_FLOW = 11,
77345 	RTA_CACHEINFO = 12,
77346 	RTA_SESSION = 13,
77347 	RTA_MP_ALGO = 14,
77348 	RTA_TABLE = 15,
77349 	RTA_MARK = 16,
77350 	RTA_MFC_STATS = 17,
77351 	RTA_VIA = 18,
77352 	RTA_NEWDST = 19,
77353 	RTA_PREF = 20,
77354 	RTA_ENCAP_TYPE = 21,
77355 	RTA_ENCAP = 22,
77356 	RTA_EXPIRES = 23,
77357 	RTA_PAD = 24,
77358 	RTA_UID = 25,
77359 	RTA_TTL_PROPAGATE = 26,
77360 	RTA_IP_PROTO = 27,
77361 	RTA_SPORT = 28,
77362 	RTA_DPORT = 29,
77363 	RTA_NH_ID = 30,
77364 	__RTA_MAX = 31,
77365 };
77366 
77367 struct rta_cacheinfo {
77368 	__u32 rta_clntref;
77369 	__u32 rta_lastuse;
77370 	__s32 rta_expires;
77371 	__u32 rta_error;
77372 	__u32 rta_used;
77373 	__u32 rta_id;
77374 	__u32 rta_ts;
77375 	__u32 rta_tsage;
77376 };
77377 
77378 typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, struct netlink_ext_ack *);
77379 
77380 typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *);
77381 
77382 struct rtnl_af_ops {
77383 	struct list_head list;
77384 	int family;
77385 	int (*fill_link_af)(struct sk_buff *, const struct net_device *, u32);
77386 	size_t (*get_link_af_size)(const struct net_device *, u32);
77387 	int (*validate_link_af)(const struct net_device *, const struct nlattr *, struct netlink_ext_ack *);
77388 	int (*set_link_af)(struct net_device *, const struct nlattr *, struct netlink_ext_ack *);
77389 	int (*fill_stats_af)(struct sk_buff *, const struct net_device *);
77390 	size_t (*get_stats_af_size)(const struct net_device *);
77391 };
77392 
77393 struct rtnl_link {
77394 	rtnl_doit_func doit;
77395 	rtnl_dumpit_func dumpit;
77396 	struct module *owner;
77397 	unsigned int flags;
77398 	struct callback_head rcu;
77399 };
77400 
77401 enum {
77402 	IF_LINK_MODE_DEFAULT = 0,
77403 	IF_LINK_MODE_DORMANT = 1,
77404 	IF_LINK_MODE_TESTING = 2,
77405 };
77406 
77407 enum lw_bits {
77408 	LW_URGENT = 0,
77409 };
77410 
77411 struct seg6_pernet_data {
77412 	struct mutex lock;
77413 	struct in6_addr *tun_src;
77414 };
77415 
77416 enum xdp_buff_flags {
77417 	XDP_FLAGS_HAS_FRAGS = 1,
77418 	XDP_FLAGS_FRAGS_PF_MEMALLOC = 2,
77419 };
77420 
77421 enum rt_class_t {
77422 	RT_TABLE_UNSPEC = 0,
77423 	RT_TABLE_COMPAT = 252,
77424 	RT_TABLE_DEFAULT = 253,
77425 	RT_TABLE_MAIN = 254,
77426 	RT_TABLE_LOCAL = 255,
77427 	RT_TABLE_MAX = 4294967295,
77428 };
77429 
77430 struct inet_timewait_sock {
77431 	struct sock_common __tw_common;
77432 	__u32 tw_mark;
77433 	volatile unsigned char tw_substate;
77434 	unsigned char tw_rcv_wscale;
77435 	__be16 tw_sport;
77436 	unsigned int tw_kill: 1;
77437 	unsigned int tw_transparent: 1;
77438 	unsigned int tw_flowlabel: 20;
77439 	unsigned int tw_pad: 2;
77440 	unsigned int tw_tos: 8;
77441 	u32 tw_txhash;
77442 	u32 tw_priority;
77443 	struct timer_list tw_timer;
77444 	struct inet_bind_bucket *tw_tb;
77445 };
77446 
77447 struct tcp_timewait_sock {
77448 	struct inet_timewait_sock tw_sk;
77449 	u32 tw_rcv_wnd;
77450 	u32 tw_ts_offset;
77451 	u32 tw_ts_recent;
77452 	u32 tw_last_oow_ack_time;
77453 	int tw_ts_recent_stamp;
77454 	u32 tw_tx_delay;
77455 	struct tcp_md5sig_key *tw_md5_key;
77456 };
77457 
77458 struct udp6_sock {
77459 	struct udp_sock udp;
77460 	struct ipv6_pinfo inet6;
77461 	long: 64;
77462 	long: 64;
77463 	long: 64;
77464 	long: 64;
77465 };
77466 
77467 struct tcp6_sock {
77468 	struct tcp_sock tcp;
77469 	struct ipv6_pinfo inet6;
77470 };
77471 
77472 struct fib_result {
77473 	__be32 prefix;
77474 	unsigned char prefixlen;
77475 	unsigned char nh_sel;
77476 	unsigned char type;
77477 	unsigned char scope;
77478 	u32 tclassid;
77479 	struct fib_nh_common *nhc;
77480 	struct fib_info *fi;
77481 	struct fib_table *table;
77482 	struct hlist_head *fa_head;
77483 };
77484 
77485 enum {
77486 	BPF_F_RECOMPUTE_CSUM = 1,
77487 	BPF_F_INVALIDATE_HASH = 2,
77488 };
77489 
77490 enum {
77491 	BPF_F_HDR_FIELD_MASK = 15,
77492 };
77493 
77494 enum {
77495 	BPF_F_PSEUDO_HDR = 16,
77496 	BPF_F_MARK_MANGLED_0 = 32,
77497 	BPF_F_MARK_ENFORCE = 64,
77498 };
77499 
77500 enum {
77501 	BPF_F_INGRESS = 1,
77502 };
77503 
77504 enum {
77505 	BPF_F_TUNINFO_IPV6 = 1,
77506 };
77507 
77508 enum {
77509 	BPF_F_ZERO_CSUM_TX = 2,
77510 	BPF_F_DONT_FRAGMENT = 4,
77511 	BPF_F_SEQ_NUMBER = 8,
77512 };
77513 
77514 enum {
77515 	BPF_CSUM_LEVEL_QUERY = 0,
77516 	BPF_CSUM_LEVEL_INC = 1,
77517 	BPF_CSUM_LEVEL_DEC = 2,
77518 	BPF_CSUM_LEVEL_RESET = 3,
77519 };
77520 
77521 enum {
77522 	BPF_F_ADJ_ROOM_FIXED_GSO = 1,
77523 	BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 2,
77524 	BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 4,
77525 	BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 8,
77526 	BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 16,
77527 	BPF_F_ADJ_ROOM_NO_CSUM_RESET = 32,
77528 	BPF_F_ADJ_ROOM_ENCAP_L2_ETH = 64,
77529 };
77530 
77531 enum {
77532 	BPF_ADJ_ROOM_ENCAP_L2_MASK = 255,
77533 	BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 56,
77534 };
77535 
77536 enum {
77537 	BPF_SK_LOOKUP_F_REPLACE = 1,
77538 	BPF_SK_LOOKUP_F_NO_REUSEPORT = 2,
77539 };
77540 
77541 enum bpf_adj_room_mode {
77542 	BPF_ADJ_ROOM_NET = 0,
77543 	BPF_ADJ_ROOM_MAC = 1,
77544 };
77545 
77546 enum bpf_hdr_start_off {
77547 	BPF_HDR_START_MAC = 0,
77548 	BPF_HDR_START_NET = 1,
77549 };
77550 
77551 enum bpf_lwt_encap_mode {
77552 	BPF_LWT_ENCAP_SEG6 = 0,
77553 	BPF_LWT_ENCAP_SEG6_INLINE = 1,
77554 	BPF_LWT_ENCAP_IP = 2,
77555 };
77556 
77557 struct bpf_tunnel_key {
77558 	__u32 tunnel_id;
77559 	union {
77560 		__u32 remote_ipv4;
77561 		__u32 remote_ipv6[4];
77562 	};
77563 	__u8 tunnel_tos;
77564 	__u8 tunnel_ttl;
77565 	__u16 tunnel_ext;
77566 	__u32 tunnel_label;
77567 };
77568 
77569 struct bpf_xfrm_state {
77570 	__u32 reqid;
77571 	__u32 spi;
77572 	__u16 family;
77573 	__u16 ext;
77574 	union {
77575 		__u32 remote_ipv4;
77576 		__u32 remote_ipv6[4];
77577 	};
77578 };
77579 
77580 struct bpf_tcp_sock {
77581 	__u32 snd_cwnd;
77582 	__u32 srtt_us;
77583 	__u32 rtt_min;
77584 	__u32 snd_ssthresh;
77585 	__u32 rcv_nxt;
77586 	__u32 snd_nxt;
77587 	__u32 snd_una;
77588 	__u32 mss_cache;
77589 	__u32 ecn_flags;
77590 	__u32 rate_delivered;
77591 	__u32 rate_interval_us;
77592 	__u32 packets_out;
77593 	__u32 retrans_out;
77594 	__u32 total_retrans;
77595 	__u32 segs_in;
77596 	__u32 data_segs_in;
77597 	__u32 segs_out;
77598 	__u32 data_segs_out;
77599 	__u32 lost_out;
77600 	__u32 sacked_out;
77601 	__u64 bytes_received;
77602 	__u64 bytes_acked;
77603 	__u32 dsack_dups;
77604 	__u32 delivered;
77605 	__u32 delivered_ce;
77606 	__u32 icsk_retransmits;
77607 };
77608 
77609 struct bpf_sock_tuple {
77610 	union {
77611 		struct {
77612 			__be32 saddr;
77613 			__be32 daddr;
77614 			__be16 sport;
77615 			__be16 dport;
77616 		} ipv4;
77617 		struct {
77618 			__be32 saddr[4];
77619 			__be32 daddr[4];
77620 			__be16 sport;
77621 			__be16 dport;
77622 		} ipv6;
77623 	};
77624 };
77625 
77626 struct bpf_xdp_sock {
77627 	__u32 queue_id;
77628 };
77629 
77630 enum {
77631 	BPF_SOCK_OPS_RTO_CB_FLAG = 1,
77632 	BPF_SOCK_OPS_RETRANS_CB_FLAG = 2,
77633 	BPF_SOCK_OPS_STATE_CB_FLAG = 4,
77634 	BPF_SOCK_OPS_RTT_CB_FLAG = 8,
77635 	BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG = 16,
77636 	BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = 32,
77637 	BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG = 64,
77638 	BPF_SOCK_OPS_ALL_CB_FLAGS = 127,
77639 };
77640 
77641 enum {
77642 	BPF_SOCK_OPS_VOID = 0,
77643 	BPF_SOCK_OPS_TIMEOUT_INIT = 1,
77644 	BPF_SOCK_OPS_RWND_INIT = 2,
77645 	BPF_SOCK_OPS_TCP_CONNECT_CB = 3,
77646 	BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 4,
77647 	BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 5,
77648 	BPF_SOCK_OPS_NEEDS_ECN = 6,
77649 	BPF_SOCK_OPS_BASE_RTT = 7,
77650 	BPF_SOCK_OPS_RTO_CB = 8,
77651 	BPF_SOCK_OPS_RETRANS_CB = 9,
77652 	BPF_SOCK_OPS_STATE_CB = 10,
77653 	BPF_SOCK_OPS_TCP_LISTEN_CB = 11,
77654 	BPF_SOCK_OPS_RTT_CB = 12,
77655 	BPF_SOCK_OPS_PARSE_HDR_OPT_CB = 13,
77656 	BPF_SOCK_OPS_HDR_OPT_LEN_CB = 14,
77657 	BPF_SOCK_OPS_WRITE_HDR_OPT_CB = 15,
77658 };
77659 
77660 enum {
77661 	TCP_BPF_IW = 1001,
77662 	TCP_BPF_SNDCWND_CLAMP = 1002,
77663 	TCP_BPF_DELACK_MAX = 1003,
77664 	TCP_BPF_RTO_MIN = 1004,
77665 	TCP_BPF_SYN = 1005,
77666 	TCP_BPF_SYN_IP = 1006,
77667 	TCP_BPF_SYN_MAC = 1007,
77668 };
77669 
77670 enum {
77671 	BPF_LOAD_HDR_OPT_TCP_SYN = 1,
77672 };
77673 
77674 enum {
77675 	BPF_FIB_LOOKUP_DIRECT = 1,
77676 	BPF_FIB_LOOKUP_OUTPUT = 2,
77677 };
77678 
77679 enum {
77680 	BPF_FIB_LKUP_RET_SUCCESS = 0,
77681 	BPF_FIB_LKUP_RET_BLACKHOLE = 1,
77682 	BPF_FIB_LKUP_RET_UNREACHABLE = 2,
77683 	BPF_FIB_LKUP_RET_PROHIBIT = 3,
77684 	BPF_FIB_LKUP_RET_NOT_FWDED = 4,
77685 	BPF_FIB_LKUP_RET_FWD_DISABLED = 5,
77686 	BPF_FIB_LKUP_RET_UNSUPP_LWT = 6,
77687 	BPF_FIB_LKUP_RET_NO_NEIGH = 7,
77688 	BPF_FIB_LKUP_RET_FRAG_NEEDED = 8,
77689 };
77690 
77691 struct bpf_fib_lookup {
77692 	__u8 family;
77693 	__u8 l4_protocol;
77694 	__be16 sport;
77695 	__be16 dport;
77696 	union {
77697 		__u16 tot_len;
77698 		__u16 mtu_result;
77699 	};
77700 	__u32 ifindex;
77701 	union {
77702 		__u8 tos;
77703 		__be32 flowinfo;
77704 		__u32 rt_metric;
77705 	};
77706 	union {
77707 		__be32 ipv4_src;
77708 		__u32 ipv6_src[4];
77709 	};
77710 	union {
77711 		__be32 ipv4_dst;
77712 		__u32 ipv6_dst[4];
77713 	};
77714 	__be16 h_vlan_proto;
77715 	__be16 h_vlan_TCI;
77716 	__u8 smac[6];
77717 	__u8 dmac[6];
77718 };
77719 
77720 struct bpf_redir_neigh {
77721 	__u32 nh_family;
77722 	union {
77723 		__be32 ipv4_nh;
77724 		__u32 ipv6_nh[4];
77725 	};
77726 };
77727 
77728 enum bpf_check_mtu_flags {
77729 	BPF_MTU_CHK_SEGS = 1,
77730 };
77731 
77732 enum bpf_check_mtu_ret {
77733 	BPF_MTU_CHK_RET_SUCCESS = 0,
77734 	BPF_MTU_CHK_RET_FRAG_NEEDED = 1,
77735 	BPF_MTU_CHK_RET_SEGS_TOOBIG = 2,
77736 };
77737 
77738 struct compat_sock_fprog {
77739 	u16 len;
77740 	compat_uptr_t filter;
77741 };
77742 
77743 typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int);
77744 
77745 struct tcp_skb_cb {
77746 	__u32 seq;
77747 	__u32 end_seq;
77748 	union {
77749 		__u32 tcp_tw_isn;
77750 		struct {
77751 			u16 tcp_gso_segs;
77752 			u16 tcp_gso_size;
77753 		};
77754 	};
77755 	__u8 tcp_flags;
77756 	__u8 sacked;
77757 	__u8 ip_dsfield;
77758 	__u8 txstamp_ack: 1;
77759 	__u8 eor: 1;
77760 	__u8 has_rxtstamp: 1;
77761 	__u8 unused: 5;
77762 	__u32 ack_seq;
77763 	union {
77764 		struct {
77765 			__u32 is_app_limited: 1;
77766 			__u32 delivered_ce: 20;
77767 			__u32 unused: 11;
77768 			__u32 delivered;
77769 			u64 first_tx_mstamp;
77770 			u64 delivered_mstamp;
77771 		} tx;
77772 		union {
77773 			struct inet_skb_parm h4;
77774 			struct inet6_skb_parm h6;
77775 		} header;
77776 	};
77777 };
77778 
77779 struct strp_msg {
77780 	int full_len;
77781 	int offset;
77782 };
77783 
77784 struct _strp_msg {
77785 	struct strp_msg strp;
77786 	int accum_len;
77787 };
77788 
77789 struct sk_skb_cb {
77790 	unsigned char data[20];
77791 	struct _strp_msg strp;
77792 	u64 temp_reg;
77793 };
77794 
77795 struct xdp_umem {
77796 	void *addrs;
77797 	u64 size;
77798 	u32 headroom;
77799 	u32 chunk_size;
77800 	u32 chunks;
77801 	u32 npgs;
77802 	struct user_struct *user;
77803 	refcount_t users;
77804 	u8 flags;
77805 	bool zc;
77806 	struct page **pgs;
77807 	int id;
77808 	struct list_head xsk_dma_list;
77809 	struct work_struct work;
77810 };
77811 
77812 struct xsk_queue;
77813 
77814 struct xdp_sock {
77815 	struct sock sk;
77816 	long: 64;
77817 	struct xsk_queue *rx;
77818 	struct net_device *dev;
77819 	struct xdp_umem *umem;
77820 	struct list_head flush_node;
77821 	struct xsk_buff_pool *pool;
77822 	u16 queue_id;
77823 	bool zc;
77824 	enum {
77825 		XSK_READY = 0,
77826 		XSK_BOUND = 1,
77827 		XSK_UNBOUND = 2,
77828 	} state;
77829 	long: 64;
77830 	struct xsk_queue *tx;
77831 	struct list_head tx_list;
77832 	spinlock_t rx_lock;
77833 	u64 rx_dropped;
77834 	u64 rx_queue_full;
77835 	struct list_head map_list;
77836 	spinlock_t map_list_lock;
77837 	struct mutex mutex;
77838 	struct xsk_queue *fq_tmp;
77839 	struct xsk_queue *cq_tmp;
77840 	long: 64;
77841 	long: 64;
77842 	long: 64;
77843 	long: 64;
77844 	long: 64;
77845 };
77846 
77847 struct ipv6_sr_hdr {
77848 	__u8 nexthdr;
77849 	__u8 hdrlen;
77850 	__u8 type;
77851 	__u8 segments_left;
77852 	__u8 first_segment;
77853 	__u8 flags;
77854 	__u16 tag;
77855 	struct in6_addr segments[0];
77856 };
77857 
77858 enum {
77859 	SEG6_LOCAL_ACTION_UNSPEC = 0,
77860 	SEG6_LOCAL_ACTION_END = 1,
77861 	SEG6_LOCAL_ACTION_END_X = 2,
77862 	SEG6_LOCAL_ACTION_END_T = 3,
77863 	SEG6_LOCAL_ACTION_END_DX2 = 4,
77864 	SEG6_LOCAL_ACTION_END_DX6 = 5,
77865 	SEG6_LOCAL_ACTION_END_DX4 = 6,
77866 	SEG6_LOCAL_ACTION_END_DT6 = 7,
77867 	SEG6_LOCAL_ACTION_END_DT4 = 8,
77868 	SEG6_LOCAL_ACTION_END_B6 = 9,
77869 	SEG6_LOCAL_ACTION_END_B6_ENCAP = 10,
77870 	SEG6_LOCAL_ACTION_END_BM = 11,
77871 	SEG6_LOCAL_ACTION_END_S = 12,
77872 	SEG6_LOCAL_ACTION_END_AS = 13,
77873 	SEG6_LOCAL_ACTION_END_AM = 14,
77874 	SEG6_LOCAL_ACTION_END_BPF = 15,
77875 	SEG6_LOCAL_ACTION_END_DT46 = 16,
77876 	__SEG6_LOCAL_ACTION_MAX = 17,
77877 };
77878 
77879 struct seg6_bpf_srh_state {
77880 	struct ipv6_sr_hdr *srh;
77881 	u16 hdrlen;
77882 	bool valid;
77883 };
77884 
77885 struct tls_crypto_info {
77886 	__u16 version;
77887 	__u16 cipher_type;
77888 };
77889 
77890 struct tls12_crypto_info_aes_gcm_128 {
77891 	struct tls_crypto_info info;
77892 	unsigned char iv[8];
77893 	unsigned char key[16];
77894 	unsigned char salt[4];
77895 	unsigned char rec_seq[8];
77896 };
77897 
77898 struct tls12_crypto_info_aes_gcm_256 {
77899 	struct tls_crypto_info info;
77900 	unsigned char iv[8];
77901 	unsigned char key[32];
77902 	unsigned char salt[4];
77903 	unsigned char rec_seq[8];
77904 };
77905 
77906 struct tls12_crypto_info_chacha20_poly1305 {
77907 	struct tls_crypto_info info;
77908 	unsigned char iv[12];
77909 	unsigned char key[32];
77910 	unsigned char salt[0];
77911 	unsigned char rec_seq[8];
77912 };
77913 
77914 struct tls12_crypto_info_sm4_gcm {
77915 	struct tls_crypto_info info;
77916 	unsigned char iv[8];
77917 	unsigned char key[16];
77918 	unsigned char salt[4];
77919 	unsigned char rec_seq[8];
77920 };
77921 
77922 struct tls12_crypto_info_sm4_ccm {
77923 	struct tls_crypto_info info;
77924 	unsigned char iv[8];
77925 	unsigned char key[16];
77926 	unsigned char salt[4];
77927 	unsigned char rec_seq[8];
77928 };
77929 
77930 struct tls_sw_context_rx {
77931 	struct crypto_aead *aead_recv;
77932 	struct crypto_wait async_wait;
77933 	struct strparser strp;
77934 	struct sk_buff_head rx_list;
77935 	void (*saved_data_ready)(struct sock *);
77936 	struct sk_buff *recv_pkt;
77937 	u8 control;
77938 	u8 async_capable: 1;
77939 	u8 decrypted: 1;
77940 	atomic_t decrypt_pending;
77941 	spinlock_t decrypt_compl_lock;
77942 	bool async_notify;
77943 };
77944 
77945 struct cipher_context {
77946 	char *iv;
77947 	char *rec_seq;
77948 };
77949 
77950 union tls_crypto_context {
77951 	struct tls_crypto_info info;
77952 	union {
77953 		struct tls12_crypto_info_aes_gcm_128 aes_gcm_128;
77954 		struct tls12_crypto_info_aes_gcm_256 aes_gcm_256;
77955 		struct tls12_crypto_info_chacha20_poly1305 chacha20_poly1305;
77956 		struct tls12_crypto_info_sm4_gcm sm4_gcm;
77957 		struct tls12_crypto_info_sm4_ccm sm4_ccm;
77958 	};
77959 };
77960 
77961 struct tls_prot_info {
77962 	u16 version;
77963 	u16 cipher_type;
77964 	u16 prepend_size;
77965 	u16 tag_size;
77966 	u16 overhead_size;
77967 	u16 iv_size;
77968 	u16 salt_size;
77969 	u16 rec_seq_size;
77970 	u16 aad_size;
77971 	u16 tail_size;
77972 };
77973 
77974 struct tls_context {
77975 	struct tls_prot_info prot_info;
77976 	u8 tx_conf: 3;
77977 	u8 rx_conf: 3;
77978 	int (*push_pending_record)(struct sock *, int);
77979 	void (*sk_write_space)(struct sock *);
77980 	void *priv_ctx_tx;
77981 	void *priv_ctx_rx;
77982 	struct net_device *netdev;
77983 	struct cipher_context tx;
77984 	struct cipher_context rx;
77985 	struct scatterlist *partially_sent_record;
77986 	u16 partially_sent_offset;
77987 	bool in_tcp_sendpages;
77988 	bool pending_open_record_frags;
77989 	struct mutex tx_lock;
77990 	long unsigned int flags;
77991 	struct proto *sk_proto;
77992 	struct sock *sk;
77993 	void (*sk_destruct)(struct sock *);
77994 	union tls_crypto_context crypto_send;
77995 	union tls_crypto_context crypto_recv;
77996 	struct list_head list;
77997 	refcount_t refcount;
77998 	struct callback_head rcu;
77999 };
78000 
78001 typedef u64 (*btf_bpf_skb_get_pay_offset)(struct sk_buff *);
78002 
78003 typedef u64 (*btf_bpf_skb_get_nlattr)(struct sk_buff *, u32, u32);
78004 
78005 typedef u64 (*btf_bpf_skb_get_nlattr_nest)(struct sk_buff *, u32, u32);
78006 
78007 typedef u64 (*btf_bpf_skb_load_helper_8)(const struct sk_buff *, const void *, int, int);
78008 
78009 typedef u64 (*btf_bpf_skb_load_helper_8_no_cache)(const struct sk_buff *, int);
78010 
78011 typedef u64 (*btf_bpf_skb_load_helper_16)(const struct sk_buff *, const void *, int, int);
78012 
78013 typedef u64 (*btf_bpf_skb_load_helper_16_no_cache)(const struct sk_buff *, int);
78014 
78015 typedef u64 (*btf_bpf_skb_load_helper_32)(const struct sk_buff *, const void *, int, int);
78016 
78017 typedef u64 (*btf_bpf_skb_load_helper_32_no_cache)(const struct sk_buff *, int);
78018 
78019 struct bpf_scratchpad {
78020 	union {
78021 		__be32 diff[128];
78022 		u8 buff[512];
78023 	};
78024 };
78025 
78026 typedef u64 (*btf_bpf_skb_store_bytes)(struct sk_buff *, u32, const void *, u32, u64);
78027 
78028 typedef u64 (*btf_bpf_skb_load_bytes)(const struct sk_buff *, u32, void *, u32);
78029 
78030 typedef u64 (*btf_bpf_flow_dissector_load_bytes)(const struct bpf_flow_dissector *, u32, void *, u32);
78031 
78032 typedef u64 (*btf_bpf_skb_load_bytes_relative)(const struct sk_buff *, u32, void *, u32, u32);
78033 
78034 typedef u64 (*btf_bpf_skb_pull_data)(struct sk_buff *, u32);
78035 
78036 typedef u64 (*btf_bpf_sk_fullsock)(struct sock *);
78037 
78038 typedef u64 (*btf_sk_skb_pull_data)(struct sk_buff *, u32);
78039 
78040 typedef u64 (*btf_bpf_l3_csum_replace)(struct sk_buff *, u32, u64, u64, u64);
78041 
78042 typedef u64 (*btf_bpf_l4_csum_replace)(struct sk_buff *, u32, u64, u64, u64);
78043 
78044 typedef u64 (*btf_bpf_csum_diff)(__be32 *, u32, __be32 *, u32, __wsum);
78045 
78046 typedef u64 (*btf_bpf_csum_update)(struct sk_buff *, __wsum);
78047 
78048 typedef u64 (*btf_bpf_csum_level)(struct sk_buff *, u64);
78049 
78050 enum {
78051 	BPF_F_NEIGH = 2,
78052 	BPF_F_PEER = 4,
78053 	BPF_F_NEXTHOP = 8,
78054 };
78055 
78056 typedef u64 (*btf_bpf_clone_redirect)(struct sk_buff *, u32, u64);
78057 
78058 typedef u64 (*btf_bpf_redirect)(u32, u64);
78059 
78060 typedef u64 (*btf_bpf_redirect_peer)(u32, u64);
78061 
78062 typedef u64 (*btf_bpf_redirect_neigh)(u32, struct bpf_redir_neigh *, int, u64);
78063 
78064 typedef u64 (*btf_bpf_msg_apply_bytes)(struct sk_msg *, u32);
78065 
78066 typedef u64 (*btf_bpf_msg_cork_bytes)(struct sk_msg *, u32);
78067 
78068 typedef u64 (*btf_bpf_msg_pull_data)(struct sk_msg *, u32, u32, u64);
78069 
78070 typedef u64 (*btf_bpf_msg_push_data)(struct sk_msg *, u32, u32, u64);
78071 
78072 typedef u64 (*btf_bpf_msg_pop_data)(struct sk_msg *, u32, u32, u64);
78073 
78074 typedef u64 (*btf_bpf_get_cgroup_classid_curr)();
78075 
78076 typedef u64 (*btf_bpf_skb_cgroup_classid)(const struct sk_buff *);
78077 
78078 typedef u64 (*btf_bpf_get_cgroup_classid)(const struct sk_buff *);
78079 
78080 typedef u64 (*btf_bpf_get_route_realm)(const struct sk_buff *);
78081 
78082 typedef u64 (*btf_bpf_get_hash_recalc)(struct sk_buff *);
78083 
78084 typedef u64 (*btf_bpf_set_hash_invalid)(struct sk_buff *);
78085 
78086 typedef u64 (*btf_bpf_set_hash)(struct sk_buff *, u32);
78087 
78088 typedef u64 (*btf_bpf_skb_vlan_push)(struct sk_buff *, __be16, u16);
78089 
78090 typedef u64 (*btf_bpf_skb_vlan_pop)(struct sk_buff *);
78091 
78092 typedef u64 (*btf_bpf_skb_change_proto)(struct sk_buff *, __be16, u64);
78093 
78094 typedef u64 (*btf_bpf_skb_change_type)(struct sk_buff *, u32);
78095 
78096 typedef u64 (*btf_sk_skb_adjust_room)(struct sk_buff *, s32, u32, u64);
78097 
78098 typedef u64 (*btf_bpf_skb_adjust_room)(struct sk_buff *, s32, u32, u64);
78099 
78100 typedef u64 (*btf_bpf_skb_change_tail)(struct sk_buff *, u32, u64);
78101 
78102 typedef u64 (*btf_sk_skb_change_tail)(struct sk_buff *, u32, u64);
78103 
78104 typedef u64 (*btf_bpf_skb_change_head)(struct sk_buff *, u32, u64);
78105 
78106 typedef u64 (*btf_sk_skb_change_head)(struct sk_buff *, u32, u64);
78107 
78108 typedef u64 (*btf_bpf_xdp_get_buff_len)(struct xdp_buff *);
78109 
78110 typedef u64 (*btf_bpf_xdp_adjust_head)(struct xdp_buff *, int);
78111 
78112 typedef u64 (*btf_bpf_xdp_load_bytes)(struct xdp_buff *, u32, void *, u32);
78113 
78114 typedef u64 (*btf_bpf_xdp_store_bytes)(struct xdp_buff *, u32, void *, u32);
78115 
78116 typedef u64 (*btf_bpf_xdp_adjust_tail)(struct xdp_buff *, int);
78117 
78118 typedef u64 (*btf_bpf_xdp_adjust_meta)(struct xdp_buff *, int);
78119 
78120 typedef u64 (*btf_bpf_xdp_redirect)(u32, u64);
78121 
78122 typedef u64 (*btf_bpf_xdp_redirect_map)(struct bpf_map *, u32, u64);
78123 
78124 typedef u64 (*btf_bpf_skb_event_output)(struct sk_buff *, struct bpf_map *, u64, void *, u64);
78125 
78126 typedef u64 (*btf_bpf_skb_get_tunnel_key)(struct sk_buff *, struct bpf_tunnel_key *, u32, u64);
78127 
78128 typedef u64 (*btf_bpf_skb_get_tunnel_opt)(struct sk_buff *, u8 *, u32);
78129 
78130 typedef u64 (*btf_bpf_skb_set_tunnel_key)(struct sk_buff *, const struct bpf_tunnel_key *, u32, u64);
78131 
78132 typedef u64 (*btf_bpf_skb_set_tunnel_opt)(struct sk_buff *, const u8 *, u32);
78133 
78134 typedef u64 (*btf_bpf_skb_under_cgroup)(struct sk_buff *, struct bpf_map *, u32);
78135 
78136 typedef u64 (*btf_bpf_skb_cgroup_id)(const struct sk_buff *);
78137 
78138 typedef u64 (*btf_bpf_skb_ancestor_cgroup_id)(const struct sk_buff *, int);
78139 
78140 typedef u64 (*btf_bpf_sk_cgroup_id)(struct sock *);
78141 
78142 typedef u64 (*btf_bpf_sk_ancestor_cgroup_id)(struct sock *, int);
78143 
78144 typedef u64 (*btf_bpf_xdp_event_output)(struct xdp_buff *, struct bpf_map *, u64, void *, u64);
78145 
78146 typedef u64 (*btf_bpf_get_socket_cookie)(struct sk_buff *);
78147 
78148 typedef u64 (*btf_bpf_get_socket_cookie_sock_addr)(struct bpf_sock_addr_kern *);
78149 
78150 typedef u64 (*btf_bpf_get_socket_cookie_sock)(struct sock *);
78151 
78152 typedef u64 (*btf_bpf_get_socket_ptr_cookie)(struct sock *);
78153 
78154 typedef u64 (*btf_bpf_get_socket_cookie_sock_ops)(struct bpf_sock_ops_kern *);
78155 
78156 typedef u64 (*btf_bpf_get_netns_cookie_sock)(struct sock *);
78157 
78158 typedef u64 (*btf_bpf_get_netns_cookie_sock_addr)(struct bpf_sock_addr_kern *);
78159 
78160 typedef u64 (*btf_bpf_get_netns_cookie_sock_ops)(struct bpf_sock_ops_kern *);
78161 
78162 typedef u64 (*btf_bpf_get_netns_cookie_sk_msg)(struct sk_msg *);
78163 
78164 typedef u64 (*btf_bpf_get_socket_uid)(struct sk_buff *);
78165 
78166 typedef u64 (*btf_bpf_sk_setsockopt)(struct sock *, int, int, char *, int);
78167 
78168 typedef u64 (*btf_bpf_sk_getsockopt)(struct sock *, int, int, char *, int);
78169 
78170 typedef u64 (*btf_bpf_sock_addr_setsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int);
78171 
78172 typedef u64 (*btf_bpf_sock_addr_getsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int);
78173 
78174 typedef u64 (*btf_bpf_sock_ops_setsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int);
78175 
78176 typedef u64 (*btf_bpf_sock_ops_getsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int);
78177 
78178 typedef u64 (*btf_bpf_sock_ops_cb_flags_set)(struct bpf_sock_ops_kern *, int);
78179 
78180 typedef u64 (*btf_bpf_bind)(struct bpf_sock_addr_kern *, struct sockaddr *, int);
78181 
78182 typedef u64 (*btf_bpf_skb_get_xfrm_state)(struct sk_buff *, u32, struct bpf_xfrm_state *, u32, u64);
78183 
78184 typedef u64 (*btf_bpf_xdp_fib_lookup)(struct xdp_buff *, struct bpf_fib_lookup *, int, u32);
78185 
78186 typedef u64 (*btf_bpf_skb_fib_lookup)(struct sk_buff *, struct bpf_fib_lookup *, int, u32);
78187 
78188 typedef u64 (*btf_bpf_skb_check_mtu)(struct sk_buff *, u32, u32 *, s32, u64);
78189 
78190 typedef u64 (*btf_bpf_xdp_check_mtu)(struct xdp_buff *, u32, u32 *, s32, u64);
78191 
78192 typedef u64 (*btf_bpf_lwt_in_push_encap)(struct sk_buff *, u32, void *, u32);
78193 
78194 typedef u64 (*btf_bpf_lwt_xmit_push_encap)(struct sk_buff *, u32, void *, u32);
78195 
78196 typedef u64 (*btf_bpf_lwt_seg6_store_bytes)(struct sk_buff *, u32, const void *, u32);
78197 
78198 typedef u64 (*btf_bpf_lwt_seg6_action)(struct sk_buff *, u32, void *, u32);
78199 
78200 typedef u64 (*btf_bpf_lwt_seg6_adjust_srh)(struct sk_buff *, u32, s32);
78201 
78202 typedef u64 (*btf_bpf_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64);
78203 
78204 typedef u64 (*btf_bpf_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64);
78205 
78206 typedef u64 (*btf_bpf_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64);
78207 
78208 typedef u64 (*btf_bpf_sk_release)(struct sock *);
78209 
78210 typedef u64 (*btf_bpf_xdp_sk_lookup_udp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64);
78211 
78212 typedef u64 (*btf_bpf_xdp_skc_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64);
78213 
78214 typedef u64 (*btf_bpf_xdp_sk_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64);
78215 
78216 typedef u64 (*btf_bpf_sock_addr_skc_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64);
78217 
78218 typedef u64 (*btf_bpf_sock_addr_sk_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64);
78219 
78220 typedef u64 (*btf_bpf_sock_addr_sk_lookup_udp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64);
78221 
78222 typedef u64 (*btf_bpf_tcp_sock)(struct sock *);
78223 
78224 typedef u64 (*btf_bpf_get_listener_sock)(struct sock *);
78225 
78226 typedef u64 (*btf_bpf_skb_ecn_set_ce)(struct sk_buff *);
78227 
78228 typedef u64 (*btf_bpf_tcp_check_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32);
78229 
78230 typedef u64 (*btf_bpf_tcp_gen_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32);
78231 
78232 typedef u64 (*btf_bpf_sk_assign)(struct sk_buff *, struct sock *, u64);
78233 
78234 typedef u64 (*btf_bpf_sock_ops_load_hdr_opt)(struct bpf_sock_ops_kern *, void *, u32, u64);
78235 
78236 typedef u64 (*btf_bpf_sock_ops_store_hdr_opt)(struct bpf_sock_ops_kern *, const void *, u32, u64);
78237 
78238 typedef u64 (*btf_bpf_sock_ops_reserve_hdr_opt)(struct bpf_sock_ops_kern *, u32, u64);
78239 
78240 typedef u64 (*btf_sk_select_reuseport)(struct sk_reuseport_kern *, struct bpf_map *, void *, u32);
78241 
78242 typedef u64 (*btf_sk_reuseport_load_bytes)(const struct sk_reuseport_kern *, u32, void *, u32);
78243 
78244 typedef u64 (*btf_sk_reuseport_load_bytes_relative)(const struct sk_reuseport_kern *, u32, void *, u32, u32);
78245 
78246 typedef u64 (*btf_bpf_sk_lookup_assign)(struct bpf_sk_lookup_kern *, struct sock *, u64);
78247 
78248 typedef u64 (*btf_bpf_skc_to_tcp6_sock)(struct sock *);
78249 
78250 typedef u64 (*btf_bpf_skc_to_tcp_sock)(struct sock *);
78251 
78252 typedef u64 (*btf_bpf_skc_to_tcp_timewait_sock)(struct sock *);
78253 
78254 typedef u64 (*btf_bpf_skc_to_tcp_request_sock)(struct sock *);
78255 
78256 typedef u64 (*btf_bpf_skc_to_udp6_sock)(struct sock *);
78257 
78258 typedef u64 (*btf_bpf_skc_to_unix_sock)(struct sock *);
78259 
78260 typedef u64 (*btf_bpf_sock_from_file)(struct file *);
78261 
78262 struct unix_sock___2;
78263 
78264 struct sock_diag_req {
78265 	__u8 sdiag_family;
78266 	__u8 sdiag_protocol;
78267 };
78268 
78269 struct sock_diag_handler {
78270 	__u8 family;
78271 	int (*dump)(struct sk_buff *, struct nlmsghdr *);
78272 	int (*get_info)(struct sk_buff *, struct sock *);
78273 	int (*destroy)(struct sk_buff *, struct nlmsghdr *);
78274 };
78275 
78276 struct broadcast_sk {
78277 	struct sock *sk;
78278 	struct work_struct work;
78279 };
78280 
78281 struct ifconf {
78282 	int ifc_len;
78283 	union {
78284 		char *ifcu_buf;
78285 		struct ifreq *ifcu_req;
78286 	} ifc_ifcu;
78287 };
78288 
78289 enum hwtstamp_tx_types {
78290 	HWTSTAMP_TX_OFF = 0,
78291 	HWTSTAMP_TX_ON = 1,
78292 	HWTSTAMP_TX_ONESTEP_SYNC = 2,
78293 	HWTSTAMP_TX_ONESTEP_P2P = 3,
78294 	__HWTSTAMP_TX_CNT = 4,
78295 };
78296 
78297 enum hwtstamp_rx_filters {
78298 	HWTSTAMP_FILTER_NONE = 0,
78299 	HWTSTAMP_FILTER_ALL = 1,
78300 	HWTSTAMP_FILTER_SOME = 2,
78301 	HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
78302 	HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
78303 	HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
78304 	HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
78305 	HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
78306 	HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
78307 	HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
78308 	HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
78309 	HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
78310 	HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
78311 	HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
78312 	HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
78313 	HWTSTAMP_FILTER_NTP_ALL = 15,
78314 	__HWTSTAMP_FILTER_CNT = 16,
78315 };
78316 
78317 struct compat_ifconf {
78318 	compat_int_t ifc_len;
78319 	compat_caddr_t ifcbuf;
78320 };
78321 
78322 struct tso_t {
78323 	int next_frag_idx;
78324 	int size;
78325 	void *data;
78326 	u16 ip_id;
78327 	u8 tlen;
78328 	bool ipv6;
78329 	u32 tcp_seq;
78330 };
78331 
78332 struct fib_notifier_net {
78333 	struct list_head fib_notifier_ops;
78334 	struct atomic_notifier_head fib_chain;
78335 };
78336 
78337 struct xdp_frame_bulk {
78338 	int count;
78339 	void *xa;
78340 	void *q[16];
78341 };
78342 
78343 struct xdp_buff_xsk;
78344 
78345 struct xsk_buff_pool {
78346 	struct device *dev;
78347 	struct net_device *netdev;
78348 	struct list_head xsk_tx_list;
78349 	spinlock_t xsk_tx_list_lock;
78350 	refcount_t users;
78351 	struct xdp_umem *umem;
78352 	struct work_struct work;
78353 	struct list_head free_list;
78354 	u32 heads_cnt;
78355 	u16 queue_id;
78356 	long: 16;
78357 	long: 64;
78358 	long: 64;
78359 	long: 64;
78360 	long: 64;
78361 	long: 64;
78362 	long: 64;
78363 	struct xsk_queue *fq;
78364 	struct xsk_queue *cq;
78365 	dma_addr_t *dma_pages;
78366 	struct xdp_buff_xsk *heads;
78367 	u64 chunk_mask;
78368 	u64 addrs_cnt;
78369 	u32 free_list_cnt;
78370 	u32 dma_pages_cnt;
78371 	u32 free_heads_cnt;
78372 	u32 headroom;
78373 	u32 chunk_size;
78374 	u32 chunk_shift;
78375 	u32 frame_len;
78376 	u8 cached_need_wakeup;
78377 	bool uses_need_wakeup;
78378 	bool dma_need_sync;
78379 	bool unaligned;
78380 	void *addrs;
78381 	spinlock_t cq_lock;
78382 	struct xdp_buff_xsk *free_heads[0];
78383 	long: 64;
78384 	long: 64;
78385 	long: 64;
78386 	long: 64;
78387 	long: 64;
78388 };
78389 
78390 struct xdp_buff_xsk {
78391 	struct xdp_buff xdp;
78392 	dma_addr_t dma;
78393 	dma_addr_t frame_dma;
78394 	struct xsk_buff_pool *pool;
78395 	u64 orig_addr;
78396 	struct list_head free_list_node;
78397 };
78398 
78399 struct flow_match {
78400 	struct flow_dissector *dissector;
78401 	void *mask;
78402 	void *key;
78403 };
78404 
78405 struct flow_match_meta {
78406 	struct flow_dissector_key_meta *key;
78407 	struct flow_dissector_key_meta *mask;
78408 };
78409 
78410 struct flow_match_basic {
78411 	struct flow_dissector_key_basic *key;
78412 	struct flow_dissector_key_basic *mask;
78413 };
78414 
78415 struct flow_match_control {
78416 	struct flow_dissector_key_control *key;
78417 	struct flow_dissector_key_control *mask;
78418 };
78419 
78420 struct flow_match_eth_addrs {
78421 	struct flow_dissector_key_eth_addrs *key;
78422 	struct flow_dissector_key_eth_addrs *mask;
78423 };
78424 
78425 struct flow_match_vlan {
78426 	struct flow_dissector_key_vlan *key;
78427 	struct flow_dissector_key_vlan *mask;
78428 };
78429 
78430 struct flow_match_ipv4_addrs {
78431 	struct flow_dissector_key_ipv4_addrs *key;
78432 	struct flow_dissector_key_ipv4_addrs *mask;
78433 };
78434 
78435 struct flow_match_ipv6_addrs {
78436 	struct flow_dissector_key_ipv6_addrs *key;
78437 	struct flow_dissector_key_ipv6_addrs *mask;
78438 };
78439 
78440 struct flow_match_ip {
78441 	struct flow_dissector_key_ip *key;
78442 	struct flow_dissector_key_ip *mask;
78443 };
78444 
78445 struct flow_match_ports {
78446 	struct flow_dissector_key_ports *key;
78447 	struct flow_dissector_key_ports *mask;
78448 };
78449 
78450 struct flow_match_icmp {
78451 	struct flow_dissector_key_icmp *key;
78452 	struct flow_dissector_key_icmp *mask;
78453 };
78454 
78455 struct flow_match_tcp {
78456 	struct flow_dissector_key_tcp *key;
78457 	struct flow_dissector_key_tcp *mask;
78458 };
78459 
78460 struct flow_match_mpls {
78461 	struct flow_dissector_key_mpls *key;
78462 	struct flow_dissector_key_mpls *mask;
78463 };
78464 
78465 struct flow_match_enc_keyid {
78466 	struct flow_dissector_key_keyid *key;
78467 	struct flow_dissector_key_keyid *mask;
78468 };
78469 
78470 struct flow_match_enc_opts {
78471 	struct flow_dissector_key_enc_opts *key;
78472 	struct flow_dissector_key_enc_opts *mask;
78473 };
78474 
78475 struct flow_match_ct {
78476 	struct flow_dissector_key_ct *key;
78477 	struct flow_dissector_key_ct *mask;
78478 };
78479 
78480 enum flow_action_id {
78481 	FLOW_ACTION_ACCEPT = 0,
78482 	FLOW_ACTION_DROP = 1,
78483 	FLOW_ACTION_TRAP = 2,
78484 	FLOW_ACTION_GOTO = 3,
78485 	FLOW_ACTION_REDIRECT = 4,
78486 	FLOW_ACTION_MIRRED = 5,
78487 	FLOW_ACTION_REDIRECT_INGRESS = 6,
78488 	FLOW_ACTION_MIRRED_INGRESS = 7,
78489 	FLOW_ACTION_VLAN_PUSH = 8,
78490 	FLOW_ACTION_VLAN_POP = 9,
78491 	FLOW_ACTION_VLAN_MANGLE = 10,
78492 	FLOW_ACTION_TUNNEL_ENCAP = 11,
78493 	FLOW_ACTION_TUNNEL_DECAP = 12,
78494 	FLOW_ACTION_MANGLE = 13,
78495 	FLOW_ACTION_ADD = 14,
78496 	FLOW_ACTION_CSUM = 15,
78497 	FLOW_ACTION_MARK = 16,
78498 	FLOW_ACTION_PTYPE = 17,
78499 	FLOW_ACTION_PRIORITY = 18,
78500 	FLOW_ACTION_WAKE = 19,
78501 	FLOW_ACTION_QUEUE = 20,
78502 	FLOW_ACTION_SAMPLE = 21,
78503 	FLOW_ACTION_POLICE = 22,
78504 	FLOW_ACTION_CT = 23,
78505 	FLOW_ACTION_CT_METADATA = 24,
78506 	FLOW_ACTION_MPLS_PUSH = 25,
78507 	FLOW_ACTION_MPLS_POP = 26,
78508 	FLOW_ACTION_MPLS_MANGLE = 27,
78509 	FLOW_ACTION_GATE = 28,
78510 	FLOW_ACTION_PPPOE_PUSH = 29,
78511 	NUM_FLOW_ACTIONS = 30,
78512 };
78513 
78514 enum flow_action_mangle_base {
78515 	FLOW_ACT_MANGLE_UNSPEC = 0,
78516 	FLOW_ACT_MANGLE_HDR_TYPE_ETH = 1,
78517 	FLOW_ACT_MANGLE_HDR_TYPE_IP4 = 2,
78518 	FLOW_ACT_MANGLE_HDR_TYPE_IP6 = 3,
78519 	FLOW_ACT_MANGLE_HDR_TYPE_TCP = 4,
78520 	FLOW_ACT_MANGLE_HDR_TYPE_UDP = 5,
78521 };
78522 
78523 enum flow_action_hw_stats {
78524 	FLOW_ACTION_HW_STATS_IMMEDIATE = 1,
78525 	FLOW_ACTION_HW_STATS_DELAYED = 2,
78526 	FLOW_ACTION_HW_STATS_ANY = 3,
78527 	FLOW_ACTION_HW_STATS_DISABLED = 4,
78528 	FLOW_ACTION_HW_STATS_DONT_CARE = 7,
78529 };
78530 
78531 typedef void (*action_destr)(void *);
78532 
78533 struct nf_flowtable;
78534 
78535 struct action_gate_entry;
78536 
78537 struct flow_action_entry {
78538 	enum flow_action_id id;
78539 	u32 hw_index;
78540 	enum flow_action_hw_stats hw_stats;
78541 	action_destr destructor;
78542 	void *destructor_priv;
78543 	union {
78544 		u32 chain_index;
78545 		struct net_device *dev;
78546 		struct {
78547 			u16 vid;
78548 			__be16 proto;
78549 			u8 prio;
78550 		} vlan;
78551 		struct {
78552 			enum flow_action_mangle_base htype;
78553 			u32 offset;
78554 			u32 mask;
78555 			u32 val;
78556 		} mangle;
78557 		struct ip_tunnel_info *tunnel;
78558 		u32 csum_flags;
78559 		u32 mark;
78560 		u16 ptype;
78561 		u32 priority;
78562 		struct {
78563 			u32 ctx;
78564 			u32 index;
78565 			u8 vf;
78566 		} queue;
78567 		struct {
78568 			struct psample_group *psample_group;
78569 			u32 rate;
78570 			u32 trunc_size;
78571 			bool truncate;
78572 		} sample;
78573 		struct {
78574 			u32 burst;
78575 			u64 rate_bytes_ps;
78576 			u64 burst_pkt;
78577 			u64 rate_pkt_ps;
78578 			u32 mtu;
78579 		} police;
78580 		struct {
78581 			int action;
78582 			u16 zone;
78583 			struct nf_flowtable *flow_table;
78584 		} ct;
78585 		struct {
78586 			long unsigned int cookie;
78587 			u32 mark;
78588 			u32 labels[4];
78589 			bool orig_dir;
78590 		} ct_metadata;
78591 		struct {
78592 			u32 label;
78593 			__be16 proto;
78594 			u8 tc;
78595 			u8 bos;
78596 			u8 ttl;
78597 		} mpls_push;
78598 		struct {
78599 			__be16 proto;
78600 		} mpls_pop;
78601 		struct {
78602 			u32 label;
78603 			u8 tc;
78604 			u8 bos;
78605 			u8 ttl;
78606 		} mpls_mangle;
78607 		struct {
78608 			s32 prio;
78609 			u64 basetime;
78610 			u64 cycletime;
78611 			u64 cycletimeext;
78612 			u32 num_entries;
78613 			struct action_gate_entry *entries;
78614 		} gate;
78615 		struct {
78616 			u16 sid;
78617 		} pppoe;
78618 	};
78619 	struct flow_action_cookie *cookie;
78620 };
78621 
78622 struct flow_action {
78623 	unsigned int num_entries;
78624 	struct flow_action_entry entries[0];
78625 };
78626 
78627 struct flow_rule {
78628 	struct flow_match match;
78629 	struct flow_action action;
78630 };
78631 
78632 struct flow_stats {
78633 	u64 pkts;
78634 	u64 bytes;
78635 	u64 drops;
78636 	u64 lastused;
78637 	enum flow_action_hw_stats used_hw_stats;
78638 	bool used_hw_stats_valid;
78639 };
78640 
78641 enum flow_block_command {
78642 	FLOW_BLOCK_BIND = 0,
78643 	FLOW_BLOCK_UNBIND = 1,
78644 };
78645 
78646 enum flow_block_binder_type {
78647 	FLOW_BLOCK_BINDER_TYPE_UNSPEC = 0,
78648 	FLOW_BLOCK_BINDER_TYPE_CLSACT_INGRESS = 1,
78649 	FLOW_BLOCK_BINDER_TYPE_CLSACT_EGRESS = 2,
78650 	FLOW_BLOCK_BINDER_TYPE_RED_EARLY_DROP = 3,
78651 	FLOW_BLOCK_BINDER_TYPE_RED_MARK = 4,
78652 };
78653 
78654 struct flow_block_offload {
78655 	enum flow_block_command command;
78656 	enum flow_block_binder_type binder_type;
78657 	bool block_shared;
78658 	bool unlocked_driver_cb;
78659 	struct net *net;
78660 	struct flow_block *block;
78661 	struct list_head cb_list;
78662 	struct list_head *driver_block_list;
78663 	struct netlink_ext_ack *extack;
78664 	struct Qdisc *sch;
78665 	struct list_head *cb_list_head;
78666 };
78667 
78668 struct flow_block_cb;
78669 
78670 struct flow_block_indr {
78671 	struct list_head list;
78672 	struct net_device *dev;
78673 	struct Qdisc *sch;
78674 	enum flow_block_binder_type binder_type;
78675 	void *data;
78676 	void *cb_priv;
78677 	void (*cleanup)(struct flow_block_cb *);
78678 };
78679 
78680 struct flow_block_cb {
78681 	struct list_head driver_list;
78682 	struct list_head list;
78683 	flow_setup_cb_t *cb;
78684 	void *cb_ident;
78685 	void *cb_priv;
78686 	void (*release)(void *);
78687 	struct flow_block_indr indr;
78688 	unsigned int refcnt;
78689 };
78690 
78691 enum offload_act_command {
78692 	FLOW_ACT_REPLACE = 0,
78693 	FLOW_ACT_DESTROY = 1,
78694 	FLOW_ACT_STATS = 2,
78695 };
78696 
78697 struct flow_offload_action {
78698 	struct netlink_ext_ack *extack;
78699 	enum offload_act_command command;
78700 	enum flow_action_id id;
78701 	u32 index;
78702 	struct flow_stats stats;
78703 	struct flow_action action;
78704 };
78705 
78706 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 *));
78707 
78708 struct flow_indr_dev {
78709 	struct list_head list;
78710 	flow_indr_block_bind_cb_t *cb;
78711 	void *cb_priv;
78712 	refcount_t refcnt;
78713 };
78714 
78715 struct flow_indir_dev_info {
78716 	void *data;
78717 	struct net_device *dev;
78718 	struct Qdisc *sch;
78719 	enum tc_setup_type type;
78720 	void (*cleanup)(struct flow_block_cb *);
78721 	struct list_head list;
78722 	enum flow_block_command command;
78723 	enum flow_block_binder_type binder_type;
78724 	struct list_head *cb_list;
78725 };
78726 
78727 struct tc_skb_ext {
78728 	__u32 chain;
78729 	__u16 mru;
78730 	__u16 zone;
78731 	u8 post_ct: 1;
78732 	u8 post_ct_snat: 1;
78733 	u8 post_ct_dnat: 1;
78734 };
78735 
78736 enum gro_result {
78737 	GRO_MERGED = 0,
78738 	GRO_MERGED_FREE = 1,
78739 	GRO_HELD = 2,
78740 	GRO_NORMAL = 3,
78741 	GRO_CONSUMED = 4,
78742 };
78743 
78744 typedef enum gro_result gro_result_t;
78745 
78746 struct packet_offload {
78747 	__be16 type;
78748 	u16 priority;
78749 	struct offload_callbacks callbacks;
78750 	struct list_head list;
78751 };
78752 
78753 struct netdev_queue_attribute {
78754 	struct attribute attr;
78755 	ssize_t (*show)(struct netdev_queue *, char *);
78756 	ssize_t (*store)(struct netdev_queue *, const char *, size_t);
78757 };
78758 
78759 struct fib_rule_uid_range {
78760 	__u32 start;
78761 	__u32 end;
78762 };
78763 
78764 enum {
78765 	FRA_UNSPEC = 0,
78766 	FRA_DST = 1,
78767 	FRA_SRC = 2,
78768 	FRA_IIFNAME = 3,
78769 	FRA_GOTO = 4,
78770 	FRA_UNUSED2 = 5,
78771 	FRA_PRIORITY = 6,
78772 	FRA_UNUSED3 = 7,
78773 	FRA_UNUSED4 = 8,
78774 	FRA_UNUSED5 = 9,
78775 	FRA_FWMARK = 10,
78776 	FRA_FLOW = 11,
78777 	FRA_TUN_ID = 12,
78778 	FRA_SUPPRESS_IFGROUP = 13,
78779 	FRA_SUPPRESS_PREFIXLEN = 14,
78780 	FRA_TABLE = 15,
78781 	FRA_FWMASK = 16,
78782 	FRA_OIFNAME = 17,
78783 	FRA_PAD = 18,
78784 	FRA_L3MDEV = 19,
78785 	FRA_UID_RANGE = 20,
78786 	FRA_PROTOCOL = 21,
78787 	FRA_IP_PROTO = 22,
78788 	FRA_SPORT_RANGE = 23,
78789 	FRA_DPORT_RANGE = 24,
78790 	__FRA_MAX = 25,
78791 };
78792 
78793 enum {
78794 	FR_ACT_UNSPEC = 0,
78795 	FR_ACT_TO_TBL = 1,
78796 	FR_ACT_GOTO = 2,
78797 	FR_ACT_NOP = 3,
78798 	FR_ACT_RES3 = 4,
78799 	FR_ACT_RES4 = 5,
78800 	FR_ACT_BLACKHOLE = 6,
78801 	FR_ACT_UNREACHABLE = 7,
78802 	FR_ACT_PROHIBIT = 8,
78803 	__FR_ACT_MAX = 9,
78804 };
78805 
78806 struct fib_rule_notifier_info {
78807 	struct fib_notifier_info info;
78808 	struct fib_rule *rule;
78809 };
78810 
78811 struct trace_event_raw_kfree_skb {
78812 	struct trace_entry ent;
78813 	void *skbaddr;
78814 	void *location;
78815 	short unsigned int protocol;
78816 	enum skb_drop_reason reason;
78817 	char __data[0];
78818 };
78819 
78820 struct trace_event_raw_consume_skb {
78821 	struct trace_entry ent;
78822 	void *skbaddr;
78823 	char __data[0];
78824 };
78825 
78826 struct trace_event_raw_skb_copy_datagram_iovec {
78827 	struct trace_entry ent;
78828 	const void *skbaddr;
78829 	int len;
78830 	char __data[0];
78831 };
78832 
78833 struct trace_event_data_offsets_kfree_skb {};
78834 
78835 struct trace_event_data_offsets_consume_skb {};
78836 
78837 struct trace_event_data_offsets_skb_copy_datagram_iovec {};
78838 
78839 typedef void (*btf_trace_kfree_skb)(void *, struct sk_buff *, void *, enum skb_drop_reason);
78840 
78841 typedef void (*btf_trace_consume_skb)(void *, struct sk_buff *);
78842 
78843 typedef void (*btf_trace_skb_copy_datagram_iovec)(void *, const struct sk_buff *, int);
78844 
78845 struct trace_event_raw_net_dev_start_xmit {
78846 	struct trace_entry ent;
78847 	u32 __data_loc_name;
78848 	u16 queue_mapping;
78849 	const void *skbaddr;
78850 	bool vlan_tagged;
78851 	u16 vlan_proto;
78852 	u16 vlan_tci;
78853 	u16 protocol;
78854 	u8 ip_summed;
78855 	unsigned int len;
78856 	unsigned int data_len;
78857 	int network_offset;
78858 	bool transport_offset_valid;
78859 	int transport_offset;
78860 	u8 tx_flags;
78861 	u16 gso_size;
78862 	u16 gso_segs;
78863 	u16 gso_type;
78864 	char __data[0];
78865 };
78866 
78867 struct trace_event_raw_net_dev_xmit {
78868 	struct trace_entry ent;
78869 	void *skbaddr;
78870 	unsigned int len;
78871 	int rc;
78872 	u32 __data_loc_name;
78873 	char __data[0];
78874 };
78875 
78876 struct trace_event_raw_net_dev_xmit_timeout {
78877 	struct trace_entry ent;
78878 	u32 __data_loc_name;
78879 	u32 __data_loc_driver;
78880 	int queue_index;
78881 	char __data[0];
78882 };
78883 
78884 struct trace_event_raw_net_dev_template {
78885 	struct trace_entry ent;
78886 	void *skbaddr;
78887 	unsigned int len;
78888 	u32 __data_loc_name;
78889 	char __data[0];
78890 };
78891 
78892 struct trace_event_raw_net_dev_rx_verbose_template {
78893 	struct trace_entry ent;
78894 	u32 __data_loc_name;
78895 	unsigned int napi_id;
78896 	u16 queue_mapping;
78897 	const void *skbaddr;
78898 	bool vlan_tagged;
78899 	u16 vlan_proto;
78900 	u16 vlan_tci;
78901 	u16 protocol;
78902 	u8 ip_summed;
78903 	u32 hash;
78904 	bool l4_hash;
78905 	unsigned int len;
78906 	unsigned int data_len;
78907 	unsigned int truesize;
78908 	bool mac_header_valid;
78909 	int mac_header;
78910 	unsigned char nr_frags;
78911 	u16 gso_size;
78912 	u16 gso_type;
78913 	char __data[0];
78914 };
78915 
78916 struct trace_event_raw_net_dev_rx_exit_template {
78917 	struct trace_entry ent;
78918 	int ret;
78919 	char __data[0];
78920 };
78921 
78922 struct trace_event_data_offsets_net_dev_start_xmit {
78923 	u32 name;
78924 };
78925 
78926 struct trace_event_data_offsets_net_dev_xmit {
78927 	u32 name;
78928 };
78929 
78930 struct trace_event_data_offsets_net_dev_xmit_timeout {
78931 	u32 name;
78932 	u32 driver;
78933 };
78934 
78935 struct trace_event_data_offsets_net_dev_template {
78936 	u32 name;
78937 };
78938 
78939 struct trace_event_data_offsets_net_dev_rx_verbose_template {
78940 	u32 name;
78941 };
78942 
78943 struct trace_event_data_offsets_net_dev_rx_exit_template {};
78944 
78945 typedef void (*btf_trace_net_dev_start_xmit)(void *, const struct sk_buff *, const struct net_device *);
78946 
78947 typedef void (*btf_trace_net_dev_xmit)(void *, struct sk_buff *, int, struct net_device *, unsigned int);
78948 
78949 typedef void (*btf_trace_net_dev_xmit_timeout)(void *, struct net_device *, int);
78950 
78951 typedef void (*btf_trace_net_dev_queue)(void *, struct sk_buff *);
78952 
78953 typedef void (*btf_trace_netif_receive_skb)(void *, struct sk_buff *);
78954 
78955 typedef void (*btf_trace_netif_rx)(void *, struct sk_buff *);
78956 
78957 typedef void (*btf_trace_napi_gro_frags_entry)(void *, const struct sk_buff *);
78958 
78959 typedef void (*btf_trace_napi_gro_receive_entry)(void *, const struct sk_buff *);
78960 
78961 typedef void (*btf_trace_netif_receive_skb_entry)(void *, const struct sk_buff *);
78962 
78963 typedef void (*btf_trace_netif_receive_skb_list_entry)(void *, const struct sk_buff *);
78964 
78965 typedef void (*btf_trace_netif_rx_entry)(void *, const struct sk_buff *);
78966 
78967 typedef void (*btf_trace_netif_rx_ni_entry)(void *, const struct sk_buff *);
78968 
78969 typedef void (*btf_trace_napi_gro_frags_exit)(void *, int);
78970 
78971 typedef void (*btf_trace_napi_gro_receive_exit)(void *, int);
78972 
78973 typedef void (*btf_trace_netif_receive_skb_exit)(void *, int);
78974 
78975 typedef void (*btf_trace_netif_rx_exit)(void *, int);
78976 
78977 typedef void (*btf_trace_netif_rx_ni_exit)(void *, int);
78978 
78979 typedef void (*btf_trace_netif_receive_skb_list_exit)(void *, int);
78980 
78981 struct trace_event_raw_napi_poll {
78982 	struct trace_entry ent;
78983 	struct napi_struct *napi;
78984 	u32 __data_loc_dev_name;
78985 	int work;
78986 	int budget;
78987 	char __data[0];
78988 };
78989 
78990 struct trace_event_data_offsets_napi_poll {
78991 	u32 dev_name;
78992 };
78993 
78994 typedef void (*btf_trace_napi_poll)(void *, struct napi_struct *, int, int);
78995 
78996 enum tcp_ca_state {
78997 	TCP_CA_Open = 0,
78998 	TCP_CA_Disorder = 1,
78999 	TCP_CA_CWR = 2,
79000 	TCP_CA_Recovery = 3,
79001 	TCP_CA_Loss = 4,
79002 };
79003 
79004 struct trace_event_raw_sock_rcvqueue_full {
79005 	struct trace_entry ent;
79006 	int rmem_alloc;
79007 	unsigned int truesize;
79008 	int sk_rcvbuf;
79009 	char __data[0];
79010 };
79011 
79012 struct trace_event_raw_sock_exceed_buf_limit {
79013 	struct trace_entry ent;
79014 	char name[32];
79015 	long int *sysctl_mem;
79016 	long int allocated;
79017 	int sysctl_rmem;
79018 	int rmem_alloc;
79019 	int sysctl_wmem;
79020 	int wmem_alloc;
79021 	int wmem_queued;
79022 	int kind;
79023 	char __data[0];
79024 };
79025 
79026 struct trace_event_raw_inet_sock_set_state {
79027 	struct trace_entry ent;
79028 	const void *skaddr;
79029 	int oldstate;
79030 	int newstate;
79031 	__u16 sport;
79032 	__u16 dport;
79033 	__u16 family;
79034 	__u16 protocol;
79035 	__u8 saddr[4];
79036 	__u8 daddr[4];
79037 	__u8 saddr_v6[16];
79038 	__u8 daddr_v6[16];
79039 	char __data[0];
79040 };
79041 
79042 struct trace_event_raw_inet_sk_error_report {
79043 	struct trace_entry ent;
79044 	int error;
79045 	__u16 sport;
79046 	__u16 dport;
79047 	__u16 family;
79048 	__u16 protocol;
79049 	__u8 saddr[4];
79050 	__u8 daddr[4];
79051 	__u8 saddr_v6[16];
79052 	__u8 daddr_v6[16];
79053 	char __data[0];
79054 };
79055 
79056 struct trace_event_data_offsets_sock_rcvqueue_full {};
79057 
79058 struct trace_event_data_offsets_sock_exceed_buf_limit {};
79059 
79060 struct trace_event_data_offsets_inet_sock_set_state {};
79061 
79062 struct trace_event_data_offsets_inet_sk_error_report {};
79063 
79064 typedef void (*btf_trace_sock_rcvqueue_full)(void *, struct sock *, struct sk_buff *);
79065 
79066 typedef void (*btf_trace_sock_exceed_buf_limit)(void *, struct sock *, struct proto *, long int, int);
79067 
79068 typedef void (*btf_trace_inet_sock_set_state)(void *, const struct sock *, const int, const int);
79069 
79070 typedef void (*btf_trace_inet_sk_error_report)(void *, const struct sock *);
79071 
79072 struct trace_event_raw_udp_fail_queue_rcv_skb {
79073 	struct trace_entry ent;
79074 	int rc;
79075 	__u16 lport;
79076 	char __data[0];
79077 };
79078 
79079 struct trace_event_data_offsets_udp_fail_queue_rcv_skb {};
79080 
79081 typedef void (*btf_trace_udp_fail_queue_rcv_skb)(void *, int, struct sock *);
79082 
79083 struct trace_event_raw_tcp_event_sk_skb {
79084 	struct trace_entry ent;
79085 	const void *skbaddr;
79086 	const void *skaddr;
79087 	int state;
79088 	__u16 sport;
79089 	__u16 dport;
79090 	__u16 family;
79091 	__u8 saddr[4];
79092 	__u8 daddr[4];
79093 	__u8 saddr_v6[16];
79094 	__u8 daddr_v6[16];
79095 	char __data[0];
79096 };
79097 
79098 struct trace_event_raw_tcp_event_sk {
79099 	struct trace_entry ent;
79100 	const void *skaddr;
79101 	__u16 sport;
79102 	__u16 dport;
79103 	__u16 family;
79104 	__u8 saddr[4];
79105 	__u8 daddr[4];
79106 	__u8 saddr_v6[16];
79107 	__u8 daddr_v6[16];
79108 	__u64 sock_cookie;
79109 	char __data[0];
79110 };
79111 
79112 struct trace_event_raw_tcp_retransmit_synack {
79113 	struct trace_entry ent;
79114 	const void *skaddr;
79115 	const void *req;
79116 	__u16 sport;
79117 	__u16 dport;
79118 	__u16 family;
79119 	__u8 saddr[4];
79120 	__u8 daddr[4];
79121 	__u8 saddr_v6[16];
79122 	__u8 daddr_v6[16];
79123 	char __data[0];
79124 };
79125 
79126 struct trace_event_raw_tcp_probe {
79127 	struct trace_entry ent;
79128 	__u8 saddr[28];
79129 	__u8 daddr[28];
79130 	__u16 sport;
79131 	__u16 dport;
79132 	__u16 family;
79133 	__u32 mark;
79134 	__u16 data_len;
79135 	__u32 snd_nxt;
79136 	__u32 snd_una;
79137 	__u32 snd_cwnd;
79138 	__u32 ssthresh;
79139 	__u32 snd_wnd;
79140 	__u32 srtt;
79141 	__u32 rcv_wnd;
79142 	__u64 sock_cookie;
79143 	char __data[0];
79144 };
79145 
79146 struct trace_event_raw_tcp_event_skb {
79147 	struct trace_entry ent;
79148 	const void *skbaddr;
79149 	__u8 saddr[28];
79150 	__u8 daddr[28];
79151 	char __data[0];
79152 };
79153 
79154 struct trace_event_data_offsets_tcp_event_sk_skb {};
79155 
79156 struct trace_event_data_offsets_tcp_event_sk {};
79157 
79158 struct trace_event_data_offsets_tcp_retransmit_synack {};
79159 
79160 struct trace_event_data_offsets_tcp_probe {};
79161 
79162 struct trace_event_data_offsets_tcp_event_skb {};
79163 
79164 typedef void (*btf_trace_tcp_retransmit_skb)(void *, const struct sock *, const struct sk_buff *);
79165 
79166 typedef void (*btf_trace_tcp_send_reset)(void *, const struct sock *, const struct sk_buff *);
79167 
79168 typedef void (*btf_trace_tcp_receive_reset)(void *, struct sock *);
79169 
79170 typedef void (*btf_trace_tcp_destroy_sock)(void *, struct sock *);
79171 
79172 typedef void (*btf_trace_tcp_rcv_space_adjust)(void *, struct sock *);
79173 
79174 typedef void (*btf_trace_tcp_retransmit_synack)(void *, const struct sock *, const struct request_sock *);
79175 
79176 typedef void (*btf_trace_tcp_probe)(void *, struct sock *, struct sk_buff *);
79177 
79178 typedef void (*btf_trace_tcp_bad_csum)(void *, const struct sk_buff *);
79179 
79180 struct trace_event_raw_fib_table_lookup {
79181 	struct trace_entry ent;
79182 	u32 tb_id;
79183 	int err;
79184 	int oif;
79185 	int iif;
79186 	u8 proto;
79187 	__u8 tos;
79188 	__u8 scope;
79189 	__u8 flags;
79190 	__u8 src[4];
79191 	__u8 dst[4];
79192 	__u8 gw4[4];
79193 	__u8 gw6[16];
79194 	u16 sport;
79195 	u16 dport;
79196 	u32 __data_loc_name;
79197 	char __data[0];
79198 };
79199 
79200 struct trace_event_data_offsets_fib_table_lookup {
79201 	u32 name;
79202 };
79203 
79204 typedef void (*btf_trace_fib_table_lookup)(void *, u32, const struct flowi4 *, const struct fib_nh_common *, int);
79205 
79206 struct trace_event_raw_qdisc_dequeue {
79207 	struct trace_entry ent;
79208 	struct Qdisc *qdisc;
79209 	const struct netdev_queue *txq;
79210 	int packets;
79211 	void *skbaddr;
79212 	int ifindex;
79213 	u32 handle;
79214 	u32 parent;
79215 	long unsigned int txq_state;
79216 	char __data[0];
79217 };
79218 
79219 struct trace_event_raw_qdisc_enqueue {
79220 	struct trace_entry ent;
79221 	struct Qdisc *qdisc;
79222 	const struct netdev_queue *txq;
79223 	void *skbaddr;
79224 	int ifindex;
79225 	u32 handle;
79226 	u32 parent;
79227 	char __data[0];
79228 };
79229 
79230 struct trace_event_raw_qdisc_reset {
79231 	struct trace_entry ent;
79232 	u32 __data_loc_dev;
79233 	u32 __data_loc_kind;
79234 	u32 parent;
79235 	u32 handle;
79236 	char __data[0];
79237 };
79238 
79239 struct trace_event_raw_qdisc_destroy {
79240 	struct trace_entry ent;
79241 	u32 __data_loc_dev;
79242 	u32 __data_loc_kind;
79243 	u32 parent;
79244 	u32 handle;
79245 	char __data[0];
79246 };
79247 
79248 struct trace_event_raw_qdisc_create {
79249 	struct trace_entry ent;
79250 	u32 __data_loc_dev;
79251 	u32 __data_loc_kind;
79252 	u32 parent;
79253 	char __data[0];
79254 };
79255 
79256 struct trace_event_data_offsets_qdisc_dequeue {};
79257 
79258 struct trace_event_data_offsets_qdisc_enqueue {};
79259 
79260 struct trace_event_data_offsets_qdisc_reset {
79261 	u32 dev;
79262 	u32 kind;
79263 };
79264 
79265 struct trace_event_data_offsets_qdisc_destroy {
79266 	u32 dev;
79267 	u32 kind;
79268 };
79269 
79270 struct trace_event_data_offsets_qdisc_create {
79271 	u32 dev;
79272 	u32 kind;
79273 };
79274 
79275 typedef void (*btf_trace_qdisc_dequeue)(void *, struct Qdisc *, const struct netdev_queue *, int, struct sk_buff *);
79276 
79277 typedef void (*btf_trace_qdisc_enqueue)(void *, struct Qdisc *, const struct netdev_queue *, struct sk_buff *);
79278 
79279 typedef void (*btf_trace_qdisc_reset)(void *, struct Qdisc *);
79280 
79281 typedef void (*btf_trace_qdisc_destroy)(void *, struct Qdisc *);
79282 
79283 typedef void (*btf_trace_qdisc_create)(void *, const struct Qdisc_ops *, struct net_device *, u32);
79284 
79285 struct trace_event_raw_neigh_create {
79286 	struct trace_entry ent;
79287 	u32 family;
79288 	u32 __data_loc_dev;
79289 	int entries;
79290 	u8 created;
79291 	u8 gc_exempt;
79292 	u8 primary_key4[4];
79293 	u8 primary_key6[16];
79294 	char __data[0];
79295 };
79296 
79297 struct trace_event_raw_neigh_update {
79298 	struct trace_entry ent;
79299 	u32 family;
79300 	u32 __data_loc_dev;
79301 	u8 lladdr[32];
79302 	u8 lladdr_len;
79303 	u8 flags;
79304 	u8 nud_state;
79305 	u8 type;
79306 	u8 dead;
79307 	int refcnt;
79308 	__u8 primary_key4[4];
79309 	__u8 primary_key6[16];
79310 	long unsigned int confirmed;
79311 	long unsigned int updated;
79312 	long unsigned int used;
79313 	u8 new_lladdr[32];
79314 	u8 new_state;
79315 	u32 update_flags;
79316 	u32 pid;
79317 	char __data[0];
79318 };
79319 
79320 struct trace_event_raw_neigh__update {
79321 	struct trace_entry ent;
79322 	u32 family;
79323 	u32 __data_loc_dev;
79324 	u8 lladdr[32];
79325 	u8 lladdr_len;
79326 	u8 flags;
79327 	u8 nud_state;
79328 	u8 type;
79329 	u8 dead;
79330 	int refcnt;
79331 	__u8 primary_key4[4];
79332 	__u8 primary_key6[16];
79333 	long unsigned int confirmed;
79334 	long unsigned int updated;
79335 	long unsigned int used;
79336 	u32 err;
79337 	char __data[0];
79338 };
79339 
79340 struct trace_event_data_offsets_neigh_create {
79341 	u32 dev;
79342 };
79343 
79344 struct trace_event_data_offsets_neigh_update {
79345 	u32 dev;
79346 };
79347 
79348 struct trace_event_data_offsets_neigh__update {
79349 	u32 dev;
79350 };
79351 
79352 typedef void (*btf_trace_neigh_create)(void *, struct neigh_table *, struct net_device *, const void *, const struct neighbour *, bool);
79353 
79354 typedef void (*btf_trace_neigh_update)(void *, struct neighbour *, const u8 *, u8, u32, u32);
79355 
79356 typedef void (*btf_trace_neigh_update_done)(void *, struct neighbour *, int);
79357 
79358 typedef void (*btf_trace_neigh_timer_handler)(void *, struct neighbour *, int);
79359 
79360 typedef void (*btf_trace_neigh_event_send_done)(void *, struct neighbour *, int);
79361 
79362 typedef void (*btf_trace_neigh_event_send_dead)(void *, struct neighbour *, int);
79363 
79364 typedef void (*btf_trace_neigh_cleanup_and_release)(void *, struct neighbour *, int);
79365 
79366 struct update_classid_context {
79367 	u32 classid;
79368 	unsigned int batch;
79369 };
79370 
79371 struct rtnexthop {
79372 	short unsigned int rtnh_len;
79373 	unsigned char rtnh_flags;
79374 	unsigned char rtnh_hops;
79375 	int rtnh_ifindex;
79376 };
79377 
79378 struct lwtunnel_encap_ops {
79379 	int (*build_state)(struct net *, struct nlattr *, unsigned int, const void *, struct lwtunnel_state **, struct netlink_ext_ack *);
79380 	void (*destroy_state)(struct lwtunnel_state *);
79381 	int (*output)(struct net *, struct sock *, struct sk_buff *);
79382 	int (*input)(struct sk_buff *);
79383 	int (*fill_encap)(struct sk_buff *, struct lwtunnel_state *);
79384 	int (*get_encap_size)(struct lwtunnel_state *);
79385 	int (*cmp_encap)(struct lwtunnel_state *, struct lwtunnel_state *);
79386 	int (*xmit)(struct sk_buff *);
79387 	struct module *owner;
79388 };
79389 
79390 enum {
79391 	LWT_BPF_PROG_UNSPEC = 0,
79392 	LWT_BPF_PROG_FD = 1,
79393 	LWT_BPF_PROG_NAME = 2,
79394 	__LWT_BPF_PROG_MAX = 3,
79395 };
79396 
79397 enum {
79398 	LWT_BPF_UNSPEC = 0,
79399 	LWT_BPF_IN = 1,
79400 	LWT_BPF_OUT = 2,
79401 	LWT_BPF_XMIT = 3,
79402 	LWT_BPF_XMIT_HEADROOM = 4,
79403 	__LWT_BPF_MAX = 5,
79404 };
79405 
79406 enum {
79407 	LWTUNNEL_XMIT_DONE = 0,
79408 	LWTUNNEL_XMIT_CONTINUE = 1,
79409 };
79410 
79411 struct bpf_lwt_prog {
79412 	struct bpf_prog *prog;
79413 	char *name;
79414 };
79415 
79416 struct bpf_lwt {
79417 	struct bpf_lwt_prog in;
79418 	struct bpf_lwt_prog out;
79419 	struct bpf_lwt_prog xmit;
79420 	int family;
79421 };
79422 
79423 struct dst_cache_pcpu {
79424 	long unsigned int refresh_ts;
79425 	struct dst_entry *dst;
79426 	u32 cookie;
79427 	union {
79428 		struct in_addr in_saddr;
79429 		struct in6_addr in6_saddr;
79430 	};
79431 };
79432 
79433 struct dim_sample {
79434 	ktime_t time;
79435 	u32 pkt_ctr;
79436 	u32 byte_ctr;
79437 	u16 event_ctr;
79438 	u32 comp_ctr;
79439 };
79440 
79441 struct dim_stats {
79442 	int ppms;
79443 	int bpms;
79444 	int epms;
79445 	int cpms;
79446 	int cpe_ratio;
79447 };
79448 
79449 struct dim {
79450 	u8 state;
79451 	struct dim_stats prev_stats;
79452 	struct dim_sample start_sample;
79453 	struct dim_sample measuring_sample;
79454 	struct work_struct work;
79455 	void *priv;
79456 	u8 profile_ix;
79457 	u8 mode;
79458 	u8 tune_state;
79459 	u8 steps_right;
79460 	u8 steps_left;
79461 	u8 tired;
79462 };
79463 
79464 enum rdma_nl_counter_mode {
79465 	RDMA_COUNTER_MODE_NONE = 0,
79466 	RDMA_COUNTER_MODE_AUTO = 1,
79467 	RDMA_COUNTER_MODE_MANUAL = 2,
79468 	RDMA_COUNTER_MODE_MAX = 3,
79469 };
79470 
79471 enum rdma_nl_counter_mask {
79472 	RDMA_COUNTER_MASK_QP_TYPE = 1,
79473 	RDMA_COUNTER_MASK_PID = 2,
79474 };
79475 
79476 enum rdma_restrack_type {
79477 	RDMA_RESTRACK_PD = 0,
79478 	RDMA_RESTRACK_CQ = 1,
79479 	RDMA_RESTRACK_QP = 2,
79480 	RDMA_RESTRACK_CM_ID = 3,
79481 	RDMA_RESTRACK_MR = 4,
79482 	RDMA_RESTRACK_CTX = 5,
79483 	RDMA_RESTRACK_COUNTER = 6,
79484 	RDMA_RESTRACK_SRQ = 7,
79485 	RDMA_RESTRACK_MAX = 8,
79486 };
79487 
79488 struct rdma_restrack_entry {
79489 	bool valid;
79490 	u8 no_track: 1;
79491 	struct kref kref;
79492 	struct completion comp;
79493 	struct task_struct *task;
79494 	const char *kern_name;
79495 	enum rdma_restrack_type type;
79496 	bool user;
79497 	u32 id;
79498 };
79499 
79500 struct rdma_link_ops {
79501 	struct list_head list;
79502 	const char *type;
79503 	int (*newlink)(const char *, struct net_device *);
79504 };
79505 
79506 struct auto_mode_param {
79507 	int qp_type;
79508 };
79509 
79510 struct rdma_counter_mode {
79511 	enum rdma_nl_counter_mode mode;
79512 	enum rdma_nl_counter_mask mask;
79513 	struct auto_mode_param param;
79514 };
79515 
79516 struct rdma_hw_stats;
79517 
79518 struct rdma_port_counter {
79519 	struct rdma_counter_mode mode;
79520 	struct rdma_hw_stats *hstats;
79521 	unsigned int num_counters;
79522 	struct mutex lock;
79523 };
79524 
79525 struct rdma_stat_desc;
79526 
79527 struct rdma_hw_stats {
79528 	struct mutex lock;
79529 	long unsigned int timestamp;
79530 	long unsigned int lifespan;
79531 	const struct rdma_stat_desc *descs;
79532 	long unsigned int *is_disabled;
79533 	int num_counters;
79534 	u64 value[0];
79535 };
79536 
79537 struct ib_device;
79538 
79539 struct rdma_counter {
79540 	struct rdma_restrack_entry res;
79541 	struct ib_device *device;
79542 	uint32_t id;
79543 	struct kref kref;
79544 	struct rdma_counter_mode mode;
79545 	struct mutex lock;
79546 	struct rdma_hw_stats *stats;
79547 	u32 port;
79548 };
79549 
79550 enum rdma_driver_id {
79551 	RDMA_DRIVER_UNKNOWN = 0,
79552 	RDMA_DRIVER_MLX5 = 1,
79553 	RDMA_DRIVER_MLX4 = 2,
79554 	RDMA_DRIVER_CXGB3 = 3,
79555 	RDMA_DRIVER_CXGB4 = 4,
79556 	RDMA_DRIVER_MTHCA = 5,
79557 	RDMA_DRIVER_BNXT_RE = 6,
79558 	RDMA_DRIVER_OCRDMA = 7,
79559 	RDMA_DRIVER_NES = 8,
79560 	RDMA_DRIVER_I40IW = 9,
79561 	RDMA_DRIVER_IRDMA = 9,
79562 	RDMA_DRIVER_VMW_PVRDMA = 10,
79563 	RDMA_DRIVER_QEDR = 11,
79564 	RDMA_DRIVER_HNS = 12,
79565 	RDMA_DRIVER_USNIC = 13,
79566 	RDMA_DRIVER_RXE = 14,
79567 	RDMA_DRIVER_HFI1 = 15,
79568 	RDMA_DRIVER_QIB = 16,
79569 	RDMA_DRIVER_EFA = 17,
79570 	RDMA_DRIVER_SIW = 18,
79571 };
79572 
79573 enum ib_cq_notify_flags {
79574 	IB_CQ_SOLICITED = 1,
79575 	IB_CQ_NEXT_COMP = 2,
79576 	IB_CQ_SOLICITED_MASK = 3,
79577 	IB_CQ_REPORT_MISSED_EVENTS = 4,
79578 };
79579 
79580 struct ib_mad;
79581 
79582 enum rdma_link_layer {
79583 	IB_LINK_LAYER_UNSPECIFIED = 0,
79584 	IB_LINK_LAYER_INFINIBAND = 1,
79585 	IB_LINK_LAYER_ETHERNET = 2,
79586 };
79587 
79588 enum rdma_netdev_t {
79589 	RDMA_NETDEV_OPA_VNIC = 0,
79590 	RDMA_NETDEV_IPOIB = 1,
79591 };
79592 
79593 enum ib_srq_attr_mask {
79594 	IB_SRQ_MAX_WR = 1,
79595 	IB_SRQ_LIMIT = 2,
79596 };
79597 
79598 enum ib_mr_type {
79599 	IB_MR_TYPE_MEM_REG = 0,
79600 	IB_MR_TYPE_SG_GAPS = 1,
79601 	IB_MR_TYPE_DM = 2,
79602 	IB_MR_TYPE_USER = 3,
79603 	IB_MR_TYPE_DMA = 4,
79604 	IB_MR_TYPE_INTEGRITY = 5,
79605 };
79606 
79607 enum ib_uverbs_advise_mr_advice {
79608 	IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH = 0,
79609 	IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_WRITE = 1,
79610 	IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_NO_FAULT = 2,
79611 };
79612 
79613 struct uverbs_attr_bundle;
79614 
79615 struct rdma_cm_id;
79616 
79617 struct iw_cm_id;
79618 
79619 struct iw_cm_conn_param;
79620 
79621 struct ib_qp;
79622 
79623 struct ib_send_wr;
79624 
79625 struct ib_recv_wr;
79626 
79627 struct ib_cq;
79628 
79629 struct ib_wc;
79630 
79631 struct ib_srq;
79632 
79633 struct ib_grh;
79634 
79635 struct ib_device_attr;
79636 
79637 struct ib_udata;
79638 
79639 struct ib_device_modify;
79640 
79641 struct ib_port_attr;
79642 
79643 struct ib_port_modify;
79644 
79645 struct ib_port_immutable;
79646 
79647 struct rdma_netdev_alloc_params;
79648 
79649 struct ib_gid_attr;
79650 
79651 struct ib_ucontext;
79652 
79653 struct rdma_user_mmap_entry;
79654 
79655 struct ib_pd;
79656 
79657 struct ib_ah;
79658 
79659 struct rdma_ah_init_attr;
79660 
79661 struct rdma_ah_attr;
79662 
79663 struct ib_srq_init_attr;
79664 
79665 struct ib_srq_attr;
79666 
79667 struct ib_qp_init_attr;
79668 
79669 struct ib_qp_attr;
79670 
79671 struct ib_cq_init_attr;
79672 
79673 struct ib_mr;
79674 
79675 struct ib_sge;
79676 
79677 struct ib_mr_status;
79678 
79679 struct ib_mw;
79680 
79681 struct ib_xrcd;
79682 
79683 struct ib_flow;
79684 
79685 struct ib_flow_attr;
79686 
79687 struct ib_flow_action;
79688 
79689 struct ib_flow_action_attrs_esp;
79690 
79691 struct ib_wq;
79692 
79693 struct ib_wq_init_attr;
79694 
79695 struct ib_wq_attr;
79696 
79697 struct ib_rwq_ind_table;
79698 
79699 struct ib_rwq_ind_table_init_attr;
79700 
79701 struct ib_dm;
79702 
79703 struct ib_dm_alloc_attr;
79704 
79705 struct ib_dm_mr_attr;
79706 
79707 struct ib_counters;
79708 
79709 struct ib_counters_read_attr;
79710 
79711 struct ib_device_ops {
79712 	struct module *owner;
79713 	enum rdma_driver_id driver_id;
79714 	u32 uverbs_abi_ver;
79715 	unsigned int uverbs_no_driver_id_binding: 1;
79716 	const struct attribute_group *device_group;
79717 	const struct attribute_group **port_groups;
79718 	int (*post_send)(struct ib_qp *, const struct ib_send_wr *, const struct ib_send_wr **);
79719 	int (*post_recv)(struct ib_qp *, const struct ib_recv_wr *, const struct ib_recv_wr **);
79720 	void (*drain_rq)(struct ib_qp *);
79721 	void (*drain_sq)(struct ib_qp *);
79722 	int (*poll_cq)(struct ib_cq *, int, struct ib_wc *);
79723 	int (*peek_cq)(struct ib_cq *, int);
79724 	int (*req_notify_cq)(struct ib_cq *, enum ib_cq_notify_flags);
79725 	int (*post_srq_recv)(struct ib_srq *, const struct ib_recv_wr *, const struct ib_recv_wr **);
79726 	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 *);
79727 	int (*query_device)(struct ib_device *, struct ib_device_attr *, struct ib_udata *);
79728 	int (*modify_device)(struct ib_device *, int, struct ib_device_modify *);
79729 	void (*get_dev_fw_str)(struct ib_device *, char *);
79730 	const struct cpumask * (*get_vector_affinity)(struct ib_device *, int);
79731 	int (*query_port)(struct ib_device *, u32, struct ib_port_attr *);
79732 	int (*modify_port)(struct ib_device *, u32, int, struct ib_port_modify *);
79733 	int (*get_port_immutable)(struct ib_device *, u32, struct ib_port_immutable *);
79734 	enum rdma_link_layer (*get_link_layer)(struct ib_device *, u32);
79735 	struct net_device * (*get_netdev)(struct ib_device *, u32);
79736 	struct net_device * (*alloc_rdma_netdev)(struct ib_device *, u32, enum rdma_netdev_t, const char *, unsigned char, void (*)(struct net_device *));
79737 	int (*rdma_netdev_get_params)(struct ib_device *, u32, enum rdma_netdev_t, struct rdma_netdev_alloc_params *);
79738 	int (*query_gid)(struct ib_device *, u32, int, union ib_gid *);
79739 	int (*add_gid)(const struct ib_gid_attr *, void **);
79740 	int (*del_gid)(const struct ib_gid_attr *, void **);
79741 	int (*query_pkey)(struct ib_device *, u32, u16, u16 *);
79742 	int (*alloc_ucontext)(struct ib_ucontext *, struct ib_udata *);
79743 	void (*dealloc_ucontext)(struct ib_ucontext *);
79744 	int (*mmap)(struct ib_ucontext *, struct vm_area_struct *);
79745 	void (*mmap_free)(struct rdma_user_mmap_entry *);
79746 	void (*disassociate_ucontext)(struct ib_ucontext *);
79747 	int (*alloc_pd)(struct ib_pd *, struct ib_udata *);
79748 	int (*dealloc_pd)(struct ib_pd *, struct ib_udata *);
79749 	int (*create_ah)(struct ib_ah *, struct rdma_ah_init_attr *, struct ib_udata *);
79750 	int (*create_user_ah)(struct ib_ah *, struct rdma_ah_init_attr *, struct ib_udata *);
79751 	int (*modify_ah)(struct ib_ah *, struct rdma_ah_attr *);
79752 	int (*query_ah)(struct ib_ah *, struct rdma_ah_attr *);
79753 	int (*destroy_ah)(struct ib_ah *, u32);
79754 	int (*create_srq)(struct ib_srq *, struct ib_srq_init_attr *, struct ib_udata *);
79755 	int (*modify_srq)(struct ib_srq *, struct ib_srq_attr *, enum ib_srq_attr_mask, struct ib_udata *);
79756 	int (*query_srq)(struct ib_srq *, struct ib_srq_attr *);
79757 	int (*destroy_srq)(struct ib_srq *, struct ib_udata *);
79758 	int (*create_qp)(struct ib_qp *, struct ib_qp_init_attr *, struct ib_udata *);
79759 	int (*modify_qp)(struct ib_qp *, struct ib_qp_attr *, int, struct ib_udata *);
79760 	int (*query_qp)(struct ib_qp *, struct ib_qp_attr *, int, struct ib_qp_init_attr *);
79761 	int (*destroy_qp)(struct ib_qp *, struct ib_udata *);
79762 	int (*create_cq)(struct ib_cq *, const struct ib_cq_init_attr *, struct ib_udata *);
79763 	int (*modify_cq)(struct ib_cq *, u16, u16);
79764 	int (*destroy_cq)(struct ib_cq *, struct ib_udata *);
79765 	int (*resize_cq)(struct ib_cq *, int, struct ib_udata *);
79766 	struct ib_mr * (*get_dma_mr)(struct ib_pd *, int);
79767 	struct ib_mr * (*reg_user_mr)(struct ib_pd *, u64, u64, u64, int, struct ib_udata *);
79768 	struct ib_mr * (*reg_user_mr_dmabuf)(struct ib_pd *, u64, u64, u64, int, int, struct ib_udata *);
79769 	struct ib_mr * (*rereg_user_mr)(struct ib_mr *, int, u64, u64, u64, int, struct ib_pd *, struct ib_udata *);
79770 	int (*dereg_mr)(struct ib_mr *, struct ib_udata *);
79771 	struct ib_mr * (*alloc_mr)(struct ib_pd *, enum ib_mr_type, u32);
79772 	struct ib_mr * (*alloc_mr_integrity)(struct ib_pd *, u32, u32);
79773 	int (*advise_mr)(struct ib_pd *, enum ib_uverbs_advise_mr_advice, u32, struct ib_sge *, u32, struct uverbs_attr_bundle *);
79774 	int (*map_mr_sg)(struct ib_mr *, struct scatterlist *, int, unsigned int *);
79775 	int (*check_mr_status)(struct ib_mr *, u32, struct ib_mr_status *);
79776 	int (*alloc_mw)(struct ib_mw *, struct ib_udata *);
79777 	int (*dealloc_mw)(struct ib_mw *);
79778 	int (*attach_mcast)(struct ib_qp *, union ib_gid *, u16);
79779 	int (*detach_mcast)(struct ib_qp *, union ib_gid *, u16);
79780 	int (*alloc_xrcd)(struct ib_xrcd *, struct ib_udata *);
79781 	int (*dealloc_xrcd)(struct ib_xrcd *, struct ib_udata *);
79782 	struct ib_flow * (*create_flow)(struct ib_qp *, struct ib_flow_attr *, struct ib_udata *);
79783 	int (*destroy_flow)(struct ib_flow *);
79784 	struct ib_flow_action * (*create_flow_action_esp)(struct ib_device *, const struct ib_flow_action_attrs_esp *, struct uverbs_attr_bundle *);
79785 	int (*destroy_flow_action)(struct ib_flow_action *);
79786 	int (*modify_flow_action_esp)(struct ib_flow_action *, const struct ib_flow_action_attrs_esp *, struct uverbs_attr_bundle *);
79787 	int (*set_vf_link_state)(struct ib_device *, int, u32, int);
79788 	int (*get_vf_config)(struct ib_device *, int, u32, struct ifla_vf_info *);
79789 	int (*get_vf_stats)(struct ib_device *, int, u32, struct ifla_vf_stats *);
79790 	int (*get_vf_guid)(struct ib_device *, int, u32, struct ifla_vf_guid *, struct ifla_vf_guid *);
79791 	int (*set_vf_guid)(struct ib_device *, int, u32, u64, int);
79792 	struct ib_wq * (*create_wq)(struct ib_pd *, struct ib_wq_init_attr *, struct ib_udata *);
79793 	int (*destroy_wq)(struct ib_wq *, struct ib_udata *);
79794 	int (*modify_wq)(struct ib_wq *, struct ib_wq_attr *, u32, struct ib_udata *);
79795 	int (*create_rwq_ind_table)(struct ib_rwq_ind_table *, struct ib_rwq_ind_table_init_attr *, struct ib_udata *);
79796 	int (*destroy_rwq_ind_table)(struct ib_rwq_ind_table *);
79797 	struct ib_dm * (*alloc_dm)(struct ib_device *, struct ib_ucontext *, struct ib_dm_alloc_attr *, struct uverbs_attr_bundle *);
79798 	int (*dealloc_dm)(struct ib_dm *, struct uverbs_attr_bundle *);
79799 	struct ib_mr * (*reg_dm_mr)(struct ib_pd *, struct ib_dm *, struct ib_dm_mr_attr *, struct uverbs_attr_bundle *);
79800 	int (*create_counters)(struct ib_counters *, struct uverbs_attr_bundle *);
79801 	int (*destroy_counters)(struct ib_counters *);
79802 	int (*read_counters)(struct ib_counters *, struct ib_counters_read_attr *, struct uverbs_attr_bundle *);
79803 	int (*map_mr_sg_pi)(struct ib_mr *, struct scatterlist *, int, unsigned int *, struct scatterlist *, int, unsigned int *);
79804 	struct rdma_hw_stats * (*alloc_hw_device_stats)(struct ib_device *);
79805 	struct rdma_hw_stats * (*alloc_hw_port_stats)(struct ib_device *, u32);
79806 	int (*get_hw_stats)(struct ib_device *, struct rdma_hw_stats *, u32, int);
79807 	int (*modify_hw_stat)(struct ib_device *, u32, unsigned int, bool);
79808 	int (*fill_res_mr_entry)(struct sk_buff *, struct ib_mr *);
79809 	int (*fill_res_mr_entry_raw)(struct sk_buff *, struct ib_mr *);
79810 	int (*fill_res_cq_entry)(struct sk_buff *, struct ib_cq *);
79811 	int (*fill_res_cq_entry_raw)(struct sk_buff *, struct ib_cq *);
79812 	int (*fill_res_qp_entry)(struct sk_buff *, struct ib_qp *);
79813 	int (*fill_res_qp_entry_raw)(struct sk_buff *, struct ib_qp *);
79814 	int (*fill_res_cm_id_entry)(struct sk_buff *, struct rdma_cm_id *);
79815 	int (*enable_driver)(struct ib_device *);
79816 	void (*dealloc_driver)(struct ib_device *);
79817 	void (*iw_add_ref)(struct ib_qp *);
79818 	void (*iw_rem_ref)(struct ib_qp *);
79819 	struct ib_qp * (*iw_get_qp)(struct ib_device *, int);
79820 	int (*iw_connect)(struct iw_cm_id *, struct iw_cm_conn_param *);
79821 	int (*iw_accept)(struct iw_cm_id *, struct iw_cm_conn_param *);
79822 	int (*iw_reject)(struct iw_cm_id *, const void *, u8);
79823 	int (*iw_create_listen)(struct iw_cm_id *, int);
79824 	int (*iw_destroy_listen)(struct iw_cm_id *);
79825 	int (*counter_bind_qp)(struct rdma_counter *, struct ib_qp *);
79826 	int (*counter_unbind_qp)(struct ib_qp *);
79827 	int (*counter_dealloc)(struct rdma_counter *);
79828 	struct rdma_hw_stats * (*counter_alloc_stats)(struct rdma_counter *);
79829 	int (*counter_update_stats)(struct rdma_counter *);
79830 	int (*fill_stat_mr_entry)(struct sk_buff *, struct ib_mr *);
79831 	int (*query_ucontext)(struct ib_ucontext *, struct uverbs_attr_bundle *);
79832 	int (*get_numa_node)(struct ib_device *);
79833 	size_t size_ib_ah;
79834 	size_t size_ib_counters;
79835 	size_t size_ib_cq;
79836 	size_t size_ib_mw;
79837 	size_t size_ib_pd;
79838 	size_t size_ib_qp;
79839 	size_t size_ib_rwq_ind_table;
79840 	size_t size_ib_srq;
79841 	size_t size_ib_ucontext;
79842 	size_t size_ib_xrcd;
79843 };
79844 
79845 struct ib_core_device {
79846 	struct device dev;
79847 	possible_net_t rdma_net;
79848 	struct kobject *ports_kobj;
79849 	struct list_head port_list;
79850 	struct ib_device *owner;
79851 };
79852 
79853 enum ib_atomic_cap {
79854 	IB_ATOMIC_NONE = 0,
79855 	IB_ATOMIC_HCA = 1,
79856 	IB_ATOMIC_GLOB = 2,
79857 };
79858 
79859 struct ib_odp_caps {
79860 	uint64_t general_caps;
79861 	struct {
79862 		uint32_t rc_odp_caps;
79863 		uint32_t uc_odp_caps;
79864 		uint32_t ud_odp_caps;
79865 		uint32_t xrc_odp_caps;
79866 	} per_transport_caps;
79867 };
79868 
79869 struct ib_rss_caps {
79870 	u32 supported_qpts;
79871 	u32 max_rwq_indirection_tables;
79872 	u32 max_rwq_indirection_table_size;
79873 };
79874 
79875 struct ib_tm_caps {
79876 	u32 max_rndv_hdr_size;
79877 	u32 max_num_tags;
79878 	u32 flags;
79879 	u32 max_ops;
79880 	u32 max_sge;
79881 };
79882 
79883 struct ib_cq_caps {
79884 	u16 max_cq_moderation_count;
79885 	u16 max_cq_moderation_period;
79886 };
79887 
79888 struct ib_device_attr {
79889 	u64 fw_ver;
79890 	__be64 sys_image_guid;
79891 	u64 max_mr_size;
79892 	u64 page_size_cap;
79893 	u32 vendor_id;
79894 	u32 vendor_part_id;
79895 	u32 hw_ver;
79896 	int max_qp;
79897 	int max_qp_wr;
79898 	u64 device_cap_flags;
79899 	int max_send_sge;
79900 	int max_recv_sge;
79901 	int max_sge_rd;
79902 	int max_cq;
79903 	int max_cqe;
79904 	int max_mr;
79905 	int max_pd;
79906 	int max_qp_rd_atom;
79907 	int max_ee_rd_atom;
79908 	int max_res_rd_atom;
79909 	int max_qp_init_rd_atom;
79910 	int max_ee_init_rd_atom;
79911 	enum ib_atomic_cap atomic_cap;
79912 	enum ib_atomic_cap masked_atomic_cap;
79913 	int max_ee;
79914 	int max_rdd;
79915 	int max_mw;
79916 	int max_raw_ipv6_qp;
79917 	int max_raw_ethy_qp;
79918 	int max_mcast_grp;
79919 	int max_mcast_qp_attach;
79920 	int max_total_mcast_qp_attach;
79921 	int max_ah;
79922 	int max_srq;
79923 	int max_srq_wr;
79924 	int max_srq_sge;
79925 	unsigned int max_fast_reg_page_list_len;
79926 	unsigned int max_pi_fast_reg_page_list_len;
79927 	u16 max_pkeys;
79928 	u8 local_ca_ack_delay;
79929 	int sig_prot_cap;
79930 	int sig_guard_cap;
79931 	struct ib_odp_caps odp_caps;
79932 	uint64_t timestamp_mask;
79933 	uint64_t hca_core_clock;
79934 	struct ib_rss_caps rss_caps;
79935 	u32 max_wq_type_rq;
79936 	u32 raw_packet_caps;
79937 	struct ib_tm_caps tm_caps;
79938 	struct ib_cq_caps cq_caps;
79939 	u64 max_dm_size;
79940 	u32 max_sgl_rd;
79941 };
79942 
79943 struct hw_stats_device_data;
79944 
79945 struct rdma_restrack_root;
79946 
79947 struct uapi_definition;
79948 
79949 struct ib_port_data;
79950 
79951 struct ib_device {
79952 	struct device *dma_device;
79953 	struct ib_device_ops ops;
79954 	char name[64];
79955 	struct callback_head callback_head;
79956 	struct list_head event_handler_list;
79957 	struct rw_semaphore event_handler_rwsem;
79958 	spinlock_t qp_open_list_lock;
79959 	struct rw_semaphore client_data_rwsem;
79960 	struct xarray client_data;
79961 	struct mutex unregistration_lock;
79962 	rwlock_t cache_lock;
79963 	struct ib_port_data *port_data;
79964 	int num_comp_vectors;
79965 	union {
79966 		struct device dev;
79967 		struct ib_core_device coredev;
79968 	};
79969 	const struct attribute_group *groups[4];
79970 	u64 uverbs_cmd_mask;
79971 	char node_desc[64];
79972 	__be64 node_guid;
79973 	u32 local_dma_lkey;
79974 	u16 is_switch: 1;
79975 	u16 kverbs_provider: 1;
79976 	u16 use_cq_dim: 1;
79977 	u8 node_type;
79978 	u32 phys_port_cnt;
79979 	struct ib_device_attr attrs;
79980 	struct hw_stats_device_data *hw_stats_data;
79981 	u32 index;
79982 	spinlock_t cq_pools_lock;
79983 	struct list_head cq_pools[3];
79984 	struct rdma_restrack_root *res;
79985 	const struct uapi_definition *driver_def;
79986 	refcount_t refcount;
79987 	struct completion unreg_completion;
79988 	struct work_struct unregistration_work;
79989 	const struct rdma_link_ops *link_ops;
79990 	struct mutex compat_devs_mutex;
79991 	struct xarray compat_devs;
79992 	char iw_ifname[16];
79993 	u32 iw_driver_flags;
79994 	u32 lag_flags;
79995 };
79996 
79997 enum ib_signature_type {
79998 	IB_SIG_TYPE_NONE = 0,
79999 	IB_SIG_TYPE_T10_DIF = 1,
80000 };
80001 
80002 enum ib_t10_dif_bg_type {
80003 	IB_T10DIF_CRC = 0,
80004 	IB_T10DIF_CSUM = 1,
80005 };
80006 
80007 struct ib_t10_dif_domain {
80008 	enum ib_t10_dif_bg_type bg_type;
80009 	u16 pi_interval;
80010 	u16 bg;
80011 	u16 app_tag;
80012 	u32 ref_tag;
80013 	bool ref_remap;
80014 	bool app_escape;
80015 	bool ref_escape;
80016 	u16 apptag_check_mask;
80017 };
80018 
80019 struct ib_sig_domain {
80020 	enum ib_signature_type sig_type;
80021 	union {
80022 		struct ib_t10_dif_domain dif;
80023 	} sig;
80024 };
80025 
80026 struct ib_sig_attrs {
80027 	u8 check_mask;
80028 	struct ib_sig_domain mem;
80029 	struct ib_sig_domain wire;
80030 	int meta_length;
80031 };
80032 
80033 enum ib_sig_err_type {
80034 	IB_SIG_BAD_GUARD = 0,
80035 	IB_SIG_BAD_REFTAG = 1,
80036 	IB_SIG_BAD_APPTAG = 2,
80037 };
80038 
80039 struct ib_sig_err {
80040 	enum ib_sig_err_type err_type;
80041 	u32 expected;
80042 	u32 actual;
80043 	u64 sig_err_offset;
80044 	u32 key;
80045 };
80046 
80047 enum ib_uverbs_flow_action_esp_keymat {
80048 	IB_UVERBS_FLOW_ACTION_ESP_KEYMAT_AES_GCM = 0,
80049 };
80050 
80051 struct ib_uverbs_flow_action_esp_keymat_aes_gcm {
80052 	__u64 iv;
80053 	__u32 iv_algo;
80054 	__u32 salt;
80055 	__u32 icv_len;
80056 	__u32 key_len;
80057 	__u32 aes_key[8];
80058 };
80059 
80060 enum ib_uverbs_flow_action_esp_replay {
80061 	IB_UVERBS_FLOW_ACTION_ESP_REPLAY_NONE = 0,
80062 	IB_UVERBS_FLOW_ACTION_ESP_REPLAY_BMP = 1,
80063 };
80064 
80065 struct ib_uverbs_flow_action_esp_replay_bmp {
80066 	__u32 size;
80067 };
80068 
80069 enum ib_gid_type {
80070 	IB_GID_TYPE_IB = 0,
80071 	IB_GID_TYPE_ROCE = 1,
80072 	IB_GID_TYPE_ROCE_UDP_ENCAP = 2,
80073 	IB_GID_TYPE_SIZE = 3,
80074 };
80075 
80076 struct ib_gid_attr {
80077 	struct net_device *ndev;
80078 	struct ib_device *device;
80079 	union ib_gid gid;
80080 	enum ib_gid_type gid_type;
80081 	u16 index;
80082 	u32 port_num;
80083 };
80084 
80085 struct ib_cq_init_attr {
80086 	unsigned int cqe;
80087 	u32 comp_vector;
80088 	u32 flags;
80089 };
80090 
80091 struct ib_dm_mr_attr {
80092 	u64 length;
80093 	u64 offset;
80094 	u32 access_flags;
80095 };
80096 
80097 struct ib_dm_alloc_attr {
80098 	u64 length;
80099 	u32 alignment;
80100 	u32 flags;
80101 };
80102 
80103 enum ib_mtu {
80104 	IB_MTU_256 = 1,
80105 	IB_MTU_512 = 2,
80106 	IB_MTU_1024 = 3,
80107 	IB_MTU_2048 = 4,
80108 	IB_MTU_4096 = 5,
80109 };
80110 
80111 enum ib_port_state {
80112 	IB_PORT_NOP = 0,
80113 	IB_PORT_DOWN = 1,
80114 	IB_PORT_INIT = 2,
80115 	IB_PORT_ARMED = 3,
80116 	IB_PORT_ACTIVE = 4,
80117 	IB_PORT_ACTIVE_DEFER = 5,
80118 };
80119 
80120 struct rdma_stat_desc {
80121 	const char *name;
80122 	unsigned int flags;
80123 	const void *priv;
80124 };
80125 
80126 struct ib_port_attr {
80127 	u64 subnet_prefix;
80128 	enum ib_port_state state;
80129 	enum ib_mtu max_mtu;
80130 	enum ib_mtu active_mtu;
80131 	u32 phys_mtu;
80132 	int gid_tbl_len;
80133 	unsigned int ip_gids: 1;
80134 	u32 port_cap_flags;
80135 	u32 max_msg_sz;
80136 	u32 bad_pkey_cntr;
80137 	u32 qkey_viol_cntr;
80138 	u16 pkey_tbl_len;
80139 	u32 sm_lid;
80140 	u32 lid;
80141 	u8 lmc;
80142 	u8 max_vl_num;
80143 	u8 sm_sl;
80144 	u8 subnet_timeout;
80145 	u8 init_type_reply;
80146 	u8 active_width;
80147 	u16 active_speed;
80148 	u8 phys_state;
80149 	u16 port_cap_flags2;
80150 };
80151 
80152 struct ib_device_modify {
80153 	u64 sys_image_guid;
80154 	char node_desc[64];
80155 };
80156 
80157 struct ib_port_modify {
80158 	u32 set_port_cap_mask;
80159 	u32 clr_port_cap_mask;
80160 	u8 init_type;
80161 };
80162 
80163 enum ib_event_type {
80164 	IB_EVENT_CQ_ERR = 0,
80165 	IB_EVENT_QP_FATAL = 1,
80166 	IB_EVENT_QP_REQ_ERR = 2,
80167 	IB_EVENT_QP_ACCESS_ERR = 3,
80168 	IB_EVENT_COMM_EST = 4,
80169 	IB_EVENT_SQ_DRAINED = 5,
80170 	IB_EVENT_PATH_MIG = 6,
80171 	IB_EVENT_PATH_MIG_ERR = 7,
80172 	IB_EVENT_DEVICE_FATAL = 8,
80173 	IB_EVENT_PORT_ACTIVE = 9,
80174 	IB_EVENT_PORT_ERR = 10,
80175 	IB_EVENT_LID_CHANGE = 11,
80176 	IB_EVENT_PKEY_CHANGE = 12,
80177 	IB_EVENT_SM_CHANGE = 13,
80178 	IB_EVENT_SRQ_ERR = 14,
80179 	IB_EVENT_SRQ_LIMIT_REACHED = 15,
80180 	IB_EVENT_QP_LAST_WQE_REACHED = 16,
80181 	IB_EVENT_CLIENT_REREGISTER = 17,
80182 	IB_EVENT_GID_CHANGE = 18,
80183 	IB_EVENT_WQ_FATAL = 19,
80184 };
80185 
80186 struct ib_ucq_object;
80187 
80188 typedef void (*ib_comp_handler)(struct ib_cq *, void *);
80189 
80190 struct ib_event;
80191 
80192 struct ib_cq {
80193 	struct ib_device *device;
80194 	struct ib_ucq_object *uobject;
80195 	ib_comp_handler comp_handler;
80196 	void (*event_handler)(struct ib_event *, void *);
80197 	void *cq_context;
80198 	int cqe;
80199 	unsigned int cqe_used;
80200 	atomic_t usecnt;
80201 	enum ib_poll_context poll_ctx;
80202 	struct ib_wc *wc;
80203 	struct list_head pool_entry;
80204 	union {
80205 		struct irq_poll iop;
80206 		struct work_struct work;
80207 	};
80208 	struct workqueue_struct *comp_wq;
80209 	struct dim *dim;
80210 	ktime_t timestamp;
80211 	u8 interrupt: 1;
80212 	u8 shared: 1;
80213 	unsigned int comp_vector;
80214 	struct rdma_restrack_entry res;
80215 };
80216 
80217 struct ib_uqp_object;
80218 
80219 enum ib_qp_type {
80220 	IB_QPT_SMI = 0,
80221 	IB_QPT_GSI = 1,
80222 	IB_QPT_RC = 2,
80223 	IB_QPT_UC = 3,
80224 	IB_QPT_UD = 4,
80225 	IB_QPT_RAW_IPV6 = 5,
80226 	IB_QPT_RAW_ETHERTYPE = 6,
80227 	IB_QPT_RAW_PACKET = 8,
80228 	IB_QPT_XRC_INI = 9,
80229 	IB_QPT_XRC_TGT = 10,
80230 	IB_QPT_MAX = 11,
80231 	IB_QPT_DRIVER = 255,
80232 	IB_QPT_RESERVED1 = 4096,
80233 	IB_QPT_RESERVED2 = 4097,
80234 	IB_QPT_RESERVED3 = 4098,
80235 	IB_QPT_RESERVED4 = 4099,
80236 	IB_QPT_RESERVED5 = 4100,
80237 	IB_QPT_RESERVED6 = 4101,
80238 	IB_QPT_RESERVED7 = 4102,
80239 	IB_QPT_RESERVED8 = 4103,
80240 	IB_QPT_RESERVED9 = 4104,
80241 	IB_QPT_RESERVED10 = 4105,
80242 };
80243 
80244 struct ib_qp_security;
80245 
80246 struct ib_qp {
80247 	struct ib_device *device;
80248 	struct ib_pd *pd;
80249 	struct ib_cq *send_cq;
80250 	struct ib_cq *recv_cq;
80251 	spinlock_t mr_lock;
80252 	int mrs_used;
80253 	struct list_head rdma_mrs;
80254 	struct list_head sig_mrs;
80255 	struct ib_srq *srq;
80256 	struct ib_xrcd *xrcd;
80257 	struct list_head xrcd_list;
80258 	atomic_t usecnt;
80259 	struct list_head open_list;
80260 	struct ib_qp *real_qp;
80261 	struct ib_uqp_object *uobject;
80262 	void (*event_handler)(struct ib_event *, void *);
80263 	void *qp_context;
80264 	const struct ib_gid_attr *av_sgid_attr;
80265 	const struct ib_gid_attr *alt_path_sgid_attr;
80266 	u32 qp_num;
80267 	u32 max_write_sge;
80268 	u32 max_read_sge;
80269 	enum ib_qp_type qp_type;
80270 	struct ib_rwq_ind_table *rwq_ind_tbl;
80271 	struct ib_qp_security *qp_sec;
80272 	u32 port;
80273 	bool integrity_en;
80274 	struct rdma_restrack_entry res;
80275 	struct rdma_counter *counter;
80276 };
80277 
80278 struct ib_usrq_object;
80279 
80280 enum ib_srq_type {
80281 	IB_SRQT_BASIC = 0,
80282 	IB_SRQT_XRC = 1,
80283 	IB_SRQT_TM = 2,
80284 };
80285 
80286 struct ib_srq {
80287 	struct ib_device *device;
80288 	struct ib_pd *pd;
80289 	struct ib_usrq_object *uobject;
80290 	void (*event_handler)(struct ib_event *, void *);
80291 	void *srq_context;
80292 	enum ib_srq_type srq_type;
80293 	atomic_t usecnt;
80294 	struct {
80295 		struct ib_cq *cq;
80296 		union {
80297 			struct {
80298 				struct ib_xrcd *xrcd;
80299 				u32 srq_num;
80300 			} xrc;
80301 		};
80302 	} ext;
80303 	struct rdma_restrack_entry res;
80304 };
80305 
80306 struct ib_uwq_object;
80307 
80308 enum ib_wq_state {
80309 	IB_WQS_RESET = 0,
80310 	IB_WQS_RDY = 1,
80311 	IB_WQS_ERR = 2,
80312 };
80313 
80314 enum ib_wq_type {
80315 	IB_WQT_RQ = 0,
80316 };
80317 
80318 struct ib_wq {
80319 	struct ib_device *device;
80320 	struct ib_uwq_object *uobject;
80321 	void *wq_context;
80322 	void (*event_handler)(struct ib_event *, void *);
80323 	struct ib_pd *pd;
80324 	struct ib_cq *cq;
80325 	u32 wq_num;
80326 	enum ib_wq_state state;
80327 	enum ib_wq_type wq_type;
80328 	atomic_t usecnt;
80329 };
80330 
80331 struct ib_event {
80332 	struct ib_device *device;
80333 	union {
80334 		struct ib_cq *cq;
80335 		struct ib_qp *qp;
80336 		struct ib_srq *srq;
80337 		struct ib_wq *wq;
80338 		u32 port_num;
80339 	} element;
80340 	enum ib_event_type event;
80341 };
80342 
80343 struct ib_global_route {
80344 	const struct ib_gid_attr *sgid_attr;
80345 	union ib_gid dgid;
80346 	u32 flow_label;
80347 	u8 sgid_index;
80348 	u8 hop_limit;
80349 	u8 traffic_class;
80350 };
80351 
80352 struct ib_grh {
80353 	__be32 version_tclass_flow;
80354 	__be16 paylen;
80355 	u8 next_hdr;
80356 	u8 hop_limit;
80357 	union ib_gid sgid;
80358 	union ib_gid dgid;
80359 };
80360 
80361 struct ib_mr_status {
80362 	u32 fail_status;
80363 	struct ib_sig_err sig_err;
80364 };
80365 
80366 struct rdma_ah_init_attr {
80367 	struct rdma_ah_attr *ah_attr;
80368 	u32 flags;
80369 	struct net_device *xmit_slave;
80370 };
80371 
80372 enum rdma_ah_attr_type {
80373 	RDMA_AH_ATTR_TYPE_UNDEFINED = 0,
80374 	RDMA_AH_ATTR_TYPE_IB = 1,
80375 	RDMA_AH_ATTR_TYPE_ROCE = 2,
80376 	RDMA_AH_ATTR_TYPE_OPA = 3,
80377 };
80378 
80379 struct ib_ah_attr {
80380 	u16 dlid;
80381 	u8 src_path_bits;
80382 };
80383 
80384 struct roce_ah_attr {
80385 	u8 dmac[6];
80386 };
80387 
80388 struct opa_ah_attr {
80389 	u32 dlid;
80390 	u8 src_path_bits;
80391 	bool make_grd;
80392 };
80393 
80394 struct rdma_ah_attr {
80395 	struct ib_global_route grh;
80396 	u8 sl;
80397 	u8 static_rate;
80398 	u32 port_num;
80399 	u8 ah_flags;
80400 	enum rdma_ah_attr_type type;
80401 	union {
80402 		struct ib_ah_attr ib;
80403 		struct roce_ah_attr roce;
80404 		struct opa_ah_attr opa;
80405 	};
80406 };
80407 
80408 enum ib_wc_status {
80409 	IB_WC_SUCCESS = 0,
80410 	IB_WC_LOC_LEN_ERR = 1,
80411 	IB_WC_LOC_QP_OP_ERR = 2,
80412 	IB_WC_LOC_EEC_OP_ERR = 3,
80413 	IB_WC_LOC_PROT_ERR = 4,
80414 	IB_WC_WR_FLUSH_ERR = 5,
80415 	IB_WC_MW_BIND_ERR = 6,
80416 	IB_WC_BAD_RESP_ERR = 7,
80417 	IB_WC_LOC_ACCESS_ERR = 8,
80418 	IB_WC_REM_INV_REQ_ERR = 9,
80419 	IB_WC_REM_ACCESS_ERR = 10,
80420 	IB_WC_REM_OP_ERR = 11,
80421 	IB_WC_RETRY_EXC_ERR = 12,
80422 	IB_WC_RNR_RETRY_EXC_ERR = 13,
80423 	IB_WC_LOC_RDD_VIOL_ERR = 14,
80424 	IB_WC_REM_INV_RD_REQ_ERR = 15,
80425 	IB_WC_REM_ABORT_ERR = 16,
80426 	IB_WC_INV_EECN_ERR = 17,
80427 	IB_WC_INV_EEC_STATE_ERR = 18,
80428 	IB_WC_FATAL_ERR = 19,
80429 	IB_WC_RESP_TIMEOUT_ERR = 20,
80430 	IB_WC_GENERAL_ERR = 21,
80431 };
80432 
80433 enum ib_wc_opcode {
80434 	IB_WC_SEND = 0,
80435 	IB_WC_RDMA_WRITE = 1,
80436 	IB_WC_RDMA_READ = 2,
80437 	IB_WC_COMP_SWAP = 3,
80438 	IB_WC_FETCH_ADD = 4,
80439 	IB_WC_BIND_MW = 5,
80440 	IB_WC_LOCAL_INV = 6,
80441 	IB_WC_LSO = 7,
80442 	IB_WC_REG_MR = 8,
80443 	IB_WC_MASKED_COMP_SWAP = 9,
80444 	IB_WC_MASKED_FETCH_ADD = 10,
80445 	IB_WC_RECV = 128,
80446 	IB_WC_RECV_RDMA_WITH_IMM = 129,
80447 };
80448 
80449 struct ib_cqe {
80450 	void (*done)(struct ib_cq *, struct ib_wc *);
80451 };
80452 
80453 struct ib_wc {
80454 	union {
80455 		u64 wr_id;
80456 		struct ib_cqe *wr_cqe;
80457 	};
80458 	enum ib_wc_status status;
80459 	enum ib_wc_opcode opcode;
80460 	u32 vendor_err;
80461 	u32 byte_len;
80462 	struct ib_qp *qp;
80463 	union {
80464 		__be32 imm_data;
80465 		u32 invalidate_rkey;
80466 	} ex;
80467 	u32 src_qp;
80468 	u32 slid;
80469 	int wc_flags;
80470 	u16 pkey_index;
80471 	u8 sl;
80472 	u8 dlid_path_bits;
80473 	u32 port_num;
80474 	u8 smac[6];
80475 	u16 vlan_id;
80476 	u8 network_hdr_type;
80477 };
80478 
80479 struct ib_srq_attr {
80480 	u32 max_wr;
80481 	u32 max_sge;
80482 	u32 srq_limit;
80483 };
80484 
80485 struct ib_xrcd {
80486 	struct ib_device *device;
80487 	atomic_t usecnt;
80488 	struct inode *inode;
80489 	struct rw_semaphore tgt_qps_rwsem;
80490 	struct xarray tgt_qps;
80491 };
80492 
80493 struct ib_srq_init_attr {
80494 	void (*event_handler)(struct ib_event *, void *);
80495 	void *srq_context;
80496 	struct ib_srq_attr attr;
80497 	enum ib_srq_type srq_type;
80498 	struct {
80499 		struct ib_cq *cq;
80500 		union {
80501 			struct {
80502 				struct ib_xrcd *xrcd;
80503 			} xrc;
80504 			struct {
80505 				u32 max_num_tags;
80506 			} tag_matching;
80507 		};
80508 	} ext;
80509 };
80510 
80511 struct ib_qp_cap {
80512 	u32 max_send_wr;
80513 	u32 max_recv_wr;
80514 	u32 max_send_sge;
80515 	u32 max_recv_sge;
80516 	u32 max_inline_data;
80517 	u32 max_rdma_ctxs;
80518 };
80519 
80520 enum ib_sig_type {
80521 	IB_SIGNAL_ALL_WR = 0,
80522 	IB_SIGNAL_REQ_WR = 1,
80523 };
80524 
80525 struct ib_qp_init_attr {
80526 	void (*event_handler)(struct ib_event *, void *);
80527 	void *qp_context;
80528 	struct ib_cq *send_cq;
80529 	struct ib_cq *recv_cq;
80530 	struct ib_srq *srq;
80531 	struct ib_xrcd *xrcd;
80532 	struct ib_qp_cap cap;
80533 	enum ib_sig_type sq_sig_type;
80534 	enum ib_qp_type qp_type;
80535 	u32 create_flags;
80536 	u32 port_num;
80537 	struct ib_rwq_ind_table *rwq_ind_tbl;
80538 	u32 source_qpn;
80539 };
80540 
80541 struct ib_uobject;
80542 
80543 struct ib_rwq_ind_table {
80544 	struct ib_device *device;
80545 	struct ib_uobject *uobject;
80546 	atomic_t usecnt;
80547 	u32 ind_tbl_num;
80548 	u32 log_ind_tbl_size;
80549 	struct ib_wq **ind_tbl;
80550 };
80551 
80552 enum ib_qp_state {
80553 	IB_QPS_RESET = 0,
80554 	IB_QPS_INIT = 1,
80555 	IB_QPS_RTR = 2,
80556 	IB_QPS_RTS = 3,
80557 	IB_QPS_SQD = 4,
80558 	IB_QPS_SQE = 5,
80559 	IB_QPS_ERR = 6,
80560 };
80561 
80562 enum ib_mig_state {
80563 	IB_MIG_MIGRATED = 0,
80564 	IB_MIG_REARM = 1,
80565 	IB_MIG_ARMED = 2,
80566 };
80567 
80568 enum ib_mw_type {
80569 	IB_MW_TYPE_1 = 1,
80570 	IB_MW_TYPE_2 = 2,
80571 };
80572 
80573 struct ib_qp_attr {
80574 	enum ib_qp_state qp_state;
80575 	enum ib_qp_state cur_qp_state;
80576 	enum ib_mtu path_mtu;
80577 	enum ib_mig_state path_mig_state;
80578 	u32 qkey;
80579 	u32 rq_psn;
80580 	u32 sq_psn;
80581 	u32 dest_qp_num;
80582 	int qp_access_flags;
80583 	struct ib_qp_cap cap;
80584 	struct rdma_ah_attr ah_attr;
80585 	struct rdma_ah_attr alt_ah_attr;
80586 	u16 pkey_index;
80587 	u16 alt_pkey_index;
80588 	u8 en_sqd_async_notify;
80589 	u8 sq_draining;
80590 	u8 max_rd_atomic;
80591 	u8 max_dest_rd_atomic;
80592 	u8 min_rnr_timer;
80593 	u32 port_num;
80594 	u8 timeout;
80595 	u8 retry_cnt;
80596 	u8 rnr_retry;
80597 	u32 alt_port_num;
80598 	u8 alt_timeout;
80599 	u32 rate_limit;
80600 	struct net_device *xmit_slave;
80601 };
80602 
80603 enum ib_wr_opcode {
80604 	IB_WR_RDMA_WRITE = 0,
80605 	IB_WR_RDMA_WRITE_WITH_IMM = 1,
80606 	IB_WR_SEND = 2,
80607 	IB_WR_SEND_WITH_IMM = 3,
80608 	IB_WR_RDMA_READ = 4,
80609 	IB_WR_ATOMIC_CMP_AND_SWP = 5,
80610 	IB_WR_ATOMIC_FETCH_AND_ADD = 6,
80611 	IB_WR_BIND_MW = 8,
80612 	IB_WR_LSO = 10,
80613 	IB_WR_SEND_WITH_INV = 9,
80614 	IB_WR_RDMA_READ_WITH_INV = 11,
80615 	IB_WR_LOCAL_INV = 7,
80616 	IB_WR_MASKED_ATOMIC_CMP_AND_SWP = 12,
80617 	IB_WR_MASKED_ATOMIC_FETCH_AND_ADD = 13,
80618 	IB_WR_REG_MR = 32,
80619 	IB_WR_REG_MR_INTEGRITY = 33,
80620 	IB_WR_RESERVED1 = 240,
80621 	IB_WR_RESERVED2 = 241,
80622 	IB_WR_RESERVED3 = 242,
80623 	IB_WR_RESERVED4 = 243,
80624 	IB_WR_RESERVED5 = 244,
80625 	IB_WR_RESERVED6 = 245,
80626 	IB_WR_RESERVED7 = 246,
80627 	IB_WR_RESERVED8 = 247,
80628 	IB_WR_RESERVED9 = 248,
80629 	IB_WR_RESERVED10 = 249,
80630 };
80631 
80632 struct ib_sge {
80633 	u64 addr;
80634 	u32 length;
80635 	u32 lkey;
80636 };
80637 
80638 struct ib_send_wr {
80639 	struct ib_send_wr *next;
80640 	union {
80641 		u64 wr_id;
80642 		struct ib_cqe *wr_cqe;
80643 	};
80644 	struct ib_sge *sg_list;
80645 	int num_sge;
80646 	enum ib_wr_opcode opcode;
80647 	int send_flags;
80648 	union {
80649 		__be32 imm_data;
80650 		u32 invalidate_rkey;
80651 	} ex;
80652 };
80653 
80654 struct ib_ah {
80655 	struct ib_device *device;
80656 	struct ib_pd *pd;
80657 	struct ib_uobject *uobject;
80658 	const struct ib_gid_attr *sgid_attr;
80659 	enum rdma_ah_attr_type type;
80660 };
80661 
80662 struct ib_mr {
80663 	struct ib_device *device;
80664 	struct ib_pd *pd;
80665 	u32 lkey;
80666 	u32 rkey;
80667 	u64 iova;
80668 	u64 length;
80669 	unsigned int page_size;
80670 	enum ib_mr_type type;
80671 	bool need_inval;
80672 	union {
80673 		struct ib_uobject *uobject;
80674 		struct list_head qp_entry;
80675 	};
80676 	struct ib_dm *dm;
80677 	struct ib_sig_attrs *sig_attrs;
80678 	struct rdma_restrack_entry res;
80679 };
80680 
80681 struct ib_recv_wr {
80682 	struct ib_recv_wr *next;
80683 	union {
80684 		u64 wr_id;
80685 		struct ib_cqe *wr_cqe;
80686 	};
80687 	struct ib_sge *sg_list;
80688 	int num_sge;
80689 };
80690 
80691 struct ib_rdmacg_object {};
80692 
80693 struct ib_uverbs_file;
80694 
80695 struct ib_ucontext {
80696 	struct ib_device *device;
80697 	struct ib_uverbs_file *ufile;
80698 	struct ib_rdmacg_object cg_obj;
80699 	struct rdma_restrack_entry res;
80700 	struct xarray mmap_xa;
80701 };
80702 
80703 struct uverbs_api_object;
80704 
80705 struct ib_uobject {
80706 	u64 user_handle;
80707 	struct ib_uverbs_file *ufile;
80708 	struct ib_ucontext *context;
80709 	void *object;
80710 	struct list_head list;
80711 	struct ib_rdmacg_object cg_obj;
80712 	int id;
80713 	struct kref ref;
80714 	atomic_t usecnt;
80715 	struct callback_head rcu;
80716 	const struct uverbs_api_object *uapi_object;
80717 };
80718 
80719 struct ib_udata {
80720 	const void *inbuf;
80721 	void *outbuf;
80722 	size_t inlen;
80723 	size_t outlen;
80724 };
80725 
80726 struct ib_pd {
80727 	u32 local_dma_lkey;
80728 	u32 flags;
80729 	struct ib_device *device;
80730 	struct ib_uobject *uobject;
80731 	atomic_t usecnt;
80732 	u32 unsafe_global_rkey;
80733 	struct ib_mr *__internal_mr;
80734 	struct rdma_restrack_entry res;
80735 };
80736 
80737 struct ib_wq_init_attr {
80738 	void *wq_context;
80739 	enum ib_wq_type wq_type;
80740 	u32 max_wr;
80741 	u32 max_sge;
80742 	struct ib_cq *cq;
80743 	void (*event_handler)(struct ib_event *, void *);
80744 	u32 create_flags;
80745 };
80746 
80747 struct ib_wq_attr {
80748 	enum ib_wq_state wq_state;
80749 	enum ib_wq_state curr_wq_state;
80750 	u32 flags;
80751 	u32 flags_mask;
80752 };
80753 
80754 struct ib_rwq_ind_table_init_attr {
80755 	u32 log_ind_tbl_size;
80756 	struct ib_wq **ind_tbl;
80757 };
80758 
80759 enum port_pkey_state {
80760 	IB_PORT_PKEY_NOT_VALID = 0,
80761 	IB_PORT_PKEY_VALID = 1,
80762 	IB_PORT_PKEY_LISTED = 2,
80763 };
80764 
80765 struct ib_port_pkey {
80766 	enum port_pkey_state state;
80767 	u16 pkey_index;
80768 	u32 port_num;
80769 	struct list_head qp_list;
80770 	struct list_head to_error_list;
80771 	struct ib_qp_security *sec;
80772 };
80773 
80774 struct ib_ports_pkeys;
80775 
80776 struct ib_qp_security {
80777 	struct ib_qp *qp;
80778 	struct ib_device *dev;
80779 	struct mutex mutex;
80780 	struct ib_ports_pkeys *ports_pkeys;
80781 	struct list_head shared_qp_list;
80782 	void *security;
80783 	bool destroying;
80784 	atomic_t error_list_count;
80785 	struct completion error_complete;
80786 	int error_comps_pending;
80787 };
80788 
80789 struct ib_ports_pkeys {
80790 	struct ib_port_pkey main;
80791 	struct ib_port_pkey alt;
80792 };
80793 
80794 struct ib_dm {
80795 	struct ib_device *device;
80796 	u32 length;
80797 	u32 flags;
80798 	struct ib_uobject *uobject;
80799 	atomic_t usecnt;
80800 };
80801 
80802 struct ib_mw {
80803 	struct ib_device *device;
80804 	struct ib_pd *pd;
80805 	struct ib_uobject *uobject;
80806 	u32 rkey;
80807 	enum ib_mw_type type;
80808 };
80809 
80810 enum ib_flow_attr_type {
80811 	IB_FLOW_ATTR_NORMAL = 0,
80812 	IB_FLOW_ATTR_ALL_DEFAULT = 1,
80813 	IB_FLOW_ATTR_MC_DEFAULT = 2,
80814 	IB_FLOW_ATTR_SNIFFER = 3,
80815 };
80816 
80817 enum ib_flow_spec_type {
80818 	IB_FLOW_SPEC_ETH = 32,
80819 	IB_FLOW_SPEC_IB = 34,
80820 	IB_FLOW_SPEC_IPV4 = 48,
80821 	IB_FLOW_SPEC_IPV6 = 49,
80822 	IB_FLOW_SPEC_ESP = 52,
80823 	IB_FLOW_SPEC_TCP = 64,
80824 	IB_FLOW_SPEC_UDP = 65,
80825 	IB_FLOW_SPEC_VXLAN_TUNNEL = 80,
80826 	IB_FLOW_SPEC_GRE = 81,
80827 	IB_FLOW_SPEC_MPLS = 96,
80828 	IB_FLOW_SPEC_INNER = 256,
80829 	IB_FLOW_SPEC_ACTION_TAG = 4096,
80830 	IB_FLOW_SPEC_ACTION_DROP = 4097,
80831 	IB_FLOW_SPEC_ACTION_HANDLE = 4098,
80832 	IB_FLOW_SPEC_ACTION_COUNT = 4099,
80833 };
80834 
80835 struct ib_flow_eth_filter {
80836 	u8 dst_mac[6];
80837 	u8 src_mac[6];
80838 	__be16 ether_type;
80839 	__be16 vlan_tag;
80840 	u8 real_sz[0];
80841 };
80842 
80843 struct ib_flow_spec_eth {
80844 	u32 type;
80845 	u16 size;
80846 	struct ib_flow_eth_filter val;
80847 	struct ib_flow_eth_filter mask;
80848 };
80849 
80850 struct ib_flow_ib_filter {
80851 	__be16 dlid;
80852 	__u8 sl;
80853 	u8 real_sz[0];
80854 };
80855 
80856 struct ib_flow_spec_ib {
80857 	u32 type;
80858 	u16 size;
80859 	struct ib_flow_ib_filter val;
80860 	struct ib_flow_ib_filter mask;
80861 };
80862 
80863 struct ib_flow_ipv4_filter {
80864 	__be32 src_ip;
80865 	__be32 dst_ip;
80866 	u8 proto;
80867 	u8 tos;
80868 	u8 ttl;
80869 	u8 flags;
80870 	u8 real_sz[0];
80871 };
80872 
80873 struct ib_flow_spec_ipv4 {
80874 	u32 type;
80875 	u16 size;
80876 	struct ib_flow_ipv4_filter val;
80877 	struct ib_flow_ipv4_filter mask;
80878 };
80879 
80880 struct ib_flow_ipv6_filter {
80881 	u8 src_ip[16];
80882 	u8 dst_ip[16];
80883 	__be32 flow_label;
80884 	u8 next_hdr;
80885 	u8 traffic_class;
80886 	u8 hop_limit;
80887 	u8 real_sz[0];
80888 };
80889 
80890 struct ib_flow_spec_ipv6 {
80891 	u32 type;
80892 	u16 size;
80893 	struct ib_flow_ipv6_filter val;
80894 	struct ib_flow_ipv6_filter mask;
80895 };
80896 
80897 struct ib_flow_tcp_udp_filter {
80898 	__be16 dst_port;
80899 	__be16 src_port;
80900 	u8 real_sz[0];
80901 };
80902 
80903 struct ib_flow_spec_tcp_udp {
80904 	u32 type;
80905 	u16 size;
80906 	struct ib_flow_tcp_udp_filter val;
80907 	struct ib_flow_tcp_udp_filter mask;
80908 };
80909 
80910 struct ib_flow_tunnel_filter {
80911 	__be32 tunnel_id;
80912 	u8 real_sz[0];
80913 };
80914 
80915 struct ib_flow_spec_tunnel {
80916 	u32 type;
80917 	u16 size;
80918 	struct ib_flow_tunnel_filter val;
80919 	struct ib_flow_tunnel_filter mask;
80920 };
80921 
80922 struct ib_flow_esp_filter {
80923 	__be32 spi;
80924 	__be32 seq;
80925 	u8 real_sz[0];
80926 };
80927 
80928 struct ib_flow_spec_esp {
80929 	u32 type;
80930 	u16 size;
80931 	struct ib_flow_esp_filter val;
80932 	struct ib_flow_esp_filter mask;
80933 };
80934 
80935 struct ib_flow_gre_filter {
80936 	__be16 c_ks_res0_ver;
80937 	__be16 protocol;
80938 	__be32 key;
80939 	u8 real_sz[0];
80940 };
80941 
80942 struct ib_flow_spec_gre {
80943 	u32 type;
80944 	u16 size;
80945 	struct ib_flow_gre_filter val;
80946 	struct ib_flow_gre_filter mask;
80947 };
80948 
80949 struct ib_flow_mpls_filter {
80950 	__be32 tag;
80951 	u8 real_sz[0];
80952 };
80953 
80954 struct ib_flow_spec_mpls {
80955 	u32 type;
80956 	u16 size;
80957 	struct ib_flow_mpls_filter val;
80958 	struct ib_flow_mpls_filter mask;
80959 };
80960 
80961 struct ib_flow_spec_action_tag {
80962 	enum ib_flow_spec_type type;
80963 	u16 size;
80964 	u32 tag_id;
80965 };
80966 
80967 struct ib_flow_spec_action_drop {
80968 	enum ib_flow_spec_type type;
80969 	u16 size;
80970 };
80971 
80972 struct ib_flow_spec_action_handle {
80973 	enum ib_flow_spec_type type;
80974 	u16 size;
80975 	struct ib_flow_action *act;
80976 };
80977 
80978 enum ib_flow_action_type {
80979 	IB_FLOW_ACTION_UNSPECIFIED = 0,
80980 	IB_FLOW_ACTION_ESP = 1,
80981 };
80982 
80983 struct ib_flow_action {
80984 	struct ib_device *device;
80985 	struct ib_uobject *uobject;
80986 	enum ib_flow_action_type type;
80987 	atomic_t usecnt;
80988 };
80989 
80990 struct ib_flow_spec_action_count {
80991 	enum ib_flow_spec_type type;
80992 	u16 size;
80993 	struct ib_counters *counters;
80994 };
80995 
80996 struct ib_counters {
80997 	struct ib_device *device;
80998 	struct ib_uobject *uobject;
80999 	atomic_t usecnt;
81000 };
81001 
81002 union ib_flow_spec {
81003 	struct {
81004 		u32 type;
81005 		u16 size;
81006 	};
81007 	struct ib_flow_spec_eth eth;
81008 	struct ib_flow_spec_ib ib;
81009 	struct ib_flow_spec_ipv4 ipv4;
81010 	struct ib_flow_spec_tcp_udp tcp_udp;
81011 	struct ib_flow_spec_ipv6 ipv6;
81012 	struct ib_flow_spec_tunnel tunnel;
81013 	struct ib_flow_spec_esp esp;
81014 	struct ib_flow_spec_gre gre;
81015 	struct ib_flow_spec_mpls mpls;
81016 	struct ib_flow_spec_action_tag flow_tag;
81017 	struct ib_flow_spec_action_drop drop;
81018 	struct ib_flow_spec_action_handle action;
81019 	struct ib_flow_spec_action_count flow_count;
81020 };
81021 
81022 struct ib_flow_attr {
81023 	enum ib_flow_attr_type type;
81024 	u16 size;
81025 	u16 priority;
81026 	u32 flags;
81027 	u8 num_of_specs;
81028 	u32 port;
81029 	union ib_flow_spec flows[0];
81030 };
81031 
81032 struct ib_flow {
81033 	struct ib_qp *qp;
81034 	struct ib_device *device;
81035 	struct ib_uobject *uobject;
81036 };
81037 
81038 struct ib_flow_action_attrs_esp_keymats {
81039 	enum ib_uverbs_flow_action_esp_keymat protocol;
81040 	union {
81041 		struct ib_uverbs_flow_action_esp_keymat_aes_gcm aes_gcm;
81042 	} keymat;
81043 };
81044 
81045 struct ib_flow_action_attrs_esp_replays {
81046 	enum ib_uverbs_flow_action_esp_replay protocol;
81047 	union {
81048 		struct ib_uverbs_flow_action_esp_replay_bmp bmp;
81049 	} replay;
81050 };
81051 
81052 struct ib_flow_spec_list {
81053 	struct ib_flow_spec_list *next;
81054 	union ib_flow_spec spec;
81055 };
81056 
81057 struct ib_flow_action_attrs_esp {
81058 	struct ib_flow_action_attrs_esp_keymats *keymat;
81059 	struct ib_flow_action_attrs_esp_replays *replay;
81060 	struct ib_flow_spec_list *encap;
81061 	u32 esn;
81062 	u32 spi;
81063 	u32 seq;
81064 	u32 tfc_pad;
81065 	u64 flags;
81066 	u64 hard_limit_pkts;
81067 };
81068 
81069 struct ib_pkey_cache;
81070 
81071 struct ib_gid_table;
81072 
81073 struct ib_port_cache {
81074 	u64 subnet_prefix;
81075 	struct ib_pkey_cache *pkey;
81076 	struct ib_gid_table *gid;
81077 	u8 lmc;
81078 	enum ib_port_state port_state;
81079 };
81080 
81081 struct ib_port_immutable {
81082 	int pkey_tbl_len;
81083 	int gid_tbl_len;
81084 	u32 core_cap_flags;
81085 	u32 max_mad_size;
81086 };
81087 
81088 struct ib_port;
81089 
81090 struct ib_port_data {
81091 	struct ib_device *ib_dev;
81092 	struct ib_port_immutable immutable;
81093 	spinlock_t pkey_list_lock;
81094 	spinlock_t netdev_lock;
81095 	struct list_head pkey_list;
81096 	struct ib_port_cache cache;
81097 	struct net_device *netdev;
81098 	struct hlist_node ndev_hash_link;
81099 	struct rdma_port_counter port_counter;
81100 	struct ib_port *sysfs;
81101 };
81102 
81103 struct rdma_netdev_alloc_params {
81104 	size_t sizeof_priv;
81105 	unsigned int txqs;
81106 	unsigned int rxqs;
81107 	void *param;
81108 	int (*initialize_rdma_netdev)(struct ib_device *, u32, struct net_device *, void *);
81109 };
81110 
81111 struct ib_counters_read_attr {
81112 	u64 *counters_buff;
81113 	u32 ncounters;
81114 	u32 flags;
81115 };
81116 
81117 struct rdma_user_mmap_entry {
81118 	struct kref ref;
81119 	struct ib_ucontext *ucontext;
81120 	long unsigned int start_pgoff;
81121 	size_t npages;
81122 	bool driver_removed;
81123 };
81124 
81125 struct genl_dumpit_info {
81126 	const struct genl_family *family;
81127 	struct genl_ops op;
81128 	struct nlattr **attrs;
81129 };
81130 
81131 enum devlink_command {
81132 	DEVLINK_CMD_UNSPEC = 0,
81133 	DEVLINK_CMD_GET = 1,
81134 	DEVLINK_CMD_SET = 2,
81135 	DEVLINK_CMD_NEW = 3,
81136 	DEVLINK_CMD_DEL = 4,
81137 	DEVLINK_CMD_PORT_GET = 5,
81138 	DEVLINK_CMD_PORT_SET = 6,
81139 	DEVLINK_CMD_PORT_NEW = 7,
81140 	DEVLINK_CMD_PORT_DEL = 8,
81141 	DEVLINK_CMD_PORT_SPLIT = 9,
81142 	DEVLINK_CMD_PORT_UNSPLIT = 10,
81143 	DEVLINK_CMD_SB_GET = 11,
81144 	DEVLINK_CMD_SB_SET = 12,
81145 	DEVLINK_CMD_SB_NEW = 13,
81146 	DEVLINK_CMD_SB_DEL = 14,
81147 	DEVLINK_CMD_SB_POOL_GET = 15,
81148 	DEVLINK_CMD_SB_POOL_SET = 16,
81149 	DEVLINK_CMD_SB_POOL_NEW = 17,
81150 	DEVLINK_CMD_SB_POOL_DEL = 18,
81151 	DEVLINK_CMD_SB_PORT_POOL_GET = 19,
81152 	DEVLINK_CMD_SB_PORT_POOL_SET = 20,
81153 	DEVLINK_CMD_SB_PORT_POOL_NEW = 21,
81154 	DEVLINK_CMD_SB_PORT_POOL_DEL = 22,
81155 	DEVLINK_CMD_SB_TC_POOL_BIND_GET = 23,
81156 	DEVLINK_CMD_SB_TC_POOL_BIND_SET = 24,
81157 	DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 25,
81158 	DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 26,
81159 	DEVLINK_CMD_SB_OCC_SNAPSHOT = 27,
81160 	DEVLINK_CMD_SB_OCC_MAX_CLEAR = 28,
81161 	DEVLINK_CMD_ESWITCH_GET = 29,
81162 	DEVLINK_CMD_ESWITCH_SET = 30,
81163 	DEVLINK_CMD_DPIPE_TABLE_GET = 31,
81164 	DEVLINK_CMD_DPIPE_ENTRIES_GET = 32,
81165 	DEVLINK_CMD_DPIPE_HEADERS_GET = 33,
81166 	DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 34,
81167 	DEVLINK_CMD_RESOURCE_SET = 35,
81168 	DEVLINK_CMD_RESOURCE_DUMP = 36,
81169 	DEVLINK_CMD_RELOAD = 37,
81170 	DEVLINK_CMD_PARAM_GET = 38,
81171 	DEVLINK_CMD_PARAM_SET = 39,
81172 	DEVLINK_CMD_PARAM_NEW = 40,
81173 	DEVLINK_CMD_PARAM_DEL = 41,
81174 	DEVLINK_CMD_REGION_GET = 42,
81175 	DEVLINK_CMD_REGION_SET = 43,
81176 	DEVLINK_CMD_REGION_NEW = 44,
81177 	DEVLINK_CMD_REGION_DEL = 45,
81178 	DEVLINK_CMD_REGION_READ = 46,
81179 	DEVLINK_CMD_PORT_PARAM_GET = 47,
81180 	DEVLINK_CMD_PORT_PARAM_SET = 48,
81181 	DEVLINK_CMD_PORT_PARAM_NEW = 49,
81182 	DEVLINK_CMD_PORT_PARAM_DEL = 50,
81183 	DEVLINK_CMD_INFO_GET = 51,
81184 	DEVLINK_CMD_HEALTH_REPORTER_GET = 52,
81185 	DEVLINK_CMD_HEALTH_REPORTER_SET = 53,
81186 	DEVLINK_CMD_HEALTH_REPORTER_RECOVER = 54,
81187 	DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE = 55,
81188 	DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET = 56,
81189 	DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR = 57,
81190 	DEVLINK_CMD_FLASH_UPDATE = 58,
81191 	DEVLINK_CMD_FLASH_UPDATE_END = 59,
81192 	DEVLINK_CMD_FLASH_UPDATE_STATUS = 60,
81193 	DEVLINK_CMD_TRAP_GET = 61,
81194 	DEVLINK_CMD_TRAP_SET = 62,
81195 	DEVLINK_CMD_TRAP_NEW = 63,
81196 	DEVLINK_CMD_TRAP_DEL = 64,
81197 	DEVLINK_CMD_TRAP_GROUP_GET = 65,
81198 	DEVLINK_CMD_TRAP_GROUP_SET = 66,
81199 	DEVLINK_CMD_TRAP_GROUP_NEW = 67,
81200 	DEVLINK_CMD_TRAP_GROUP_DEL = 68,
81201 	DEVLINK_CMD_TRAP_POLICER_GET = 69,
81202 	DEVLINK_CMD_TRAP_POLICER_SET = 70,
81203 	DEVLINK_CMD_TRAP_POLICER_NEW = 71,
81204 	DEVLINK_CMD_TRAP_POLICER_DEL = 72,
81205 	DEVLINK_CMD_HEALTH_REPORTER_TEST = 73,
81206 	DEVLINK_CMD_RATE_GET = 74,
81207 	DEVLINK_CMD_RATE_SET = 75,
81208 	DEVLINK_CMD_RATE_NEW = 76,
81209 	DEVLINK_CMD_RATE_DEL = 77,
81210 	__DEVLINK_CMD_MAX = 78,
81211 	DEVLINK_CMD_MAX = 77,
81212 };
81213 
81214 enum {
81215 	DEVLINK_ATTR_STATS_RX_PACKETS = 0,
81216 	DEVLINK_ATTR_STATS_RX_BYTES = 1,
81217 	DEVLINK_ATTR_STATS_RX_DROPPED = 2,
81218 	__DEVLINK_ATTR_STATS_MAX = 3,
81219 	DEVLINK_ATTR_STATS_MAX = 2,
81220 };
81221 
81222 enum {
81223 	DEVLINK_FLASH_OVERWRITE_SETTINGS_BIT = 0,
81224 	DEVLINK_FLASH_OVERWRITE_IDENTIFIERS_BIT = 1,
81225 	__DEVLINK_FLASH_OVERWRITE_MAX_BIT = 2,
81226 	DEVLINK_FLASH_OVERWRITE_MAX_BIT = 1,
81227 };
81228 
81229 enum {
81230 	DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT = 0,
81231 	DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE = 1,
81232 };
81233 
81234 enum devlink_attr {
81235 	DEVLINK_ATTR_UNSPEC = 0,
81236 	DEVLINK_ATTR_BUS_NAME = 1,
81237 	DEVLINK_ATTR_DEV_NAME = 2,
81238 	DEVLINK_ATTR_PORT_INDEX = 3,
81239 	DEVLINK_ATTR_PORT_TYPE = 4,
81240 	DEVLINK_ATTR_PORT_DESIRED_TYPE = 5,
81241 	DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 6,
81242 	DEVLINK_ATTR_PORT_NETDEV_NAME = 7,
81243 	DEVLINK_ATTR_PORT_IBDEV_NAME = 8,
81244 	DEVLINK_ATTR_PORT_SPLIT_COUNT = 9,
81245 	DEVLINK_ATTR_PORT_SPLIT_GROUP = 10,
81246 	DEVLINK_ATTR_SB_INDEX = 11,
81247 	DEVLINK_ATTR_SB_SIZE = 12,
81248 	DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 13,
81249 	DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 14,
81250 	DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 15,
81251 	DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 16,
81252 	DEVLINK_ATTR_SB_POOL_INDEX = 17,
81253 	DEVLINK_ATTR_SB_POOL_TYPE = 18,
81254 	DEVLINK_ATTR_SB_POOL_SIZE = 19,
81255 	DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 20,
81256 	DEVLINK_ATTR_SB_THRESHOLD = 21,
81257 	DEVLINK_ATTR_SB_TC_INDEX = 22,
81258 	DEVLINK_ATTR_SB_OCC_CUR = 23,
81259 	DEVLINK_ATTR_SB_OCC_MAX = 24,
81260 	DEVLINK_ATTR_ESWITCH_MODE = 25,
81261 	DEVLINK_ATTR_ESWITCH_INLINE_MODE = 26,
81262 	DEVLINK_ATTR_DPIPE_TABLES = 27,
81263 	DEVLINK_ATTR_DPIPE_TABLE = 28,
81264 	DEVLINK_ATTR_DPIPE_TABLE_NAME = 29,
81265 	DEVLINK_ATTR_DPIPE_TABLE_SIZE = 30,
81266 	DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 31,
81267 	DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 32,
81268 	DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 33,
81269 	DEVLINK_ATTR_DPIPE_ENTRIES = 34,
81270 	DEVLINK_ATTR_DPIPE_ENTRY = 35,
81271 	DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 36,
81272 	DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 37,
81273 	DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 38,
81274 	DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 39,
81275 	DEVLINK_ATTR_DPIPE_MATCH = 40,
81276 	DEVLINK_ATTR_DPIPE_MATCH_VALUE = 41,
81277 	DEVLINK_ATTR_DPIPE_MATCH_TYPE = 42,
81278 	DEVLINK_ATTR_DPIPE_ACTION = 43,
81279 	DEVLINK_ATTR_DPIPE_ACTION_VALUE = 44,
81280 	DEVLINK_ATTR_DPIPE_ACTION_TYPE = 45,
81281 	DEVLINK_ATTR_DPIPE_VALUE = 46,
81282 	DEVLINK_ATTR_DPIPE_VALUE_MASK = 47,
81283 	DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 48,
81284 	DEVLINK_ATTR_DPIPE_HEADERS = 49,
81285 	DEVLINK_ATTR_DPIPE_HEADER = 50,
81286 	DEVLINK_ATTR_DPIPE_HEADER_NAME = 51,
81287 	DEVLINK_ATTR_DPIPE_HEADER_ID = 52,
81288 	DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 53,
81289 	DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 54,
81290 	DEVLINK_ATTR_DPIPE_HEADER_INDEX = 55,
81291 	DEVLINK_ATTR_DPIPE_FIELD = 56,
81292 	DEVLINK_ATTR_DPIPE_FIELD_NAME = 57,
81293 	DEVLINK_ATTR_DPIPE_FIELD_ID = 58,
81294 	DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 59,
81295 	DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 60,
81296 	DEVLINK_ATTR_PAD = 61,
81297 	DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 62,
81298 	DEVLINK_ATTR_RESOURCE_LIST = 63,
81299 	DEVLINK_ATTR_RESOURCE = 64,
81300 	DEVLINK_ATTR_RESOURCE_NAME = 65,
81301 	DEVLINK_ATTR_RESOURCE_ID = 66,
81302 	DEVLINK_ATTR_RESOURCE_SIZE = 67,
81303 	DEVLINK_ATTR_RESOURCE_SIZE_NEW = 68,
81304 	DEVLINK_ATTR_RESOURCE_SIZE_VALID = 69,
81305 	DEVLINK_ATTR_RESOURCE_SIZE_MIN = 70,
81306 	DEVLINK_ATTR_RESOURCE_SIZE_MAX = 71,
81307 	DEVLINK_ATTR_RESOURCE_SIZE_GRAN = 72,
81308 	DEVLINK_ATTR_RESOURCE_UNIT = 73,
81309 	DEVLINK_ATTR_RESOURCE_OCC = 74,
81310 	DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID = 75,
81311 	DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS = 76,
81312 	DEVLINK_ATTR_PORT_FLAVOUR = 77,
81313 	DEVLINK_ATTR_PORT_NUMBER = 78,
81314 	DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER = 79,
81315 	DEVLINK_ATTR_PARAM = 80,
81316 	DEVLINK_ATTR_PARAM_NAME = 81,
81317 	DEVLINK_ATTR_PARAM_GENERIC = 82,
81318 	DEVLINK_ATTR_PARAM_TYPE = 83,
81319 	DEVLINK_ATTR_PARAM_VALUES_LIST = 84,
81320 	DEVLINK_ATTR_PARAM_VALUE = 85,
81321 	DEVLINK_ATTR_PARAM_VALUE_DATA = 86,
81322 	DEVLINK_ATTR_PARAM_VALUE_CMODE = 87,
81323 	DEVLINK_ATTR_REGION_NAME = 88,
81324 	DEVLINK_ATTR_REGION_SIZE = 89,
81325 	DEVLINK_ATTR_REGION_SNAPSHOTS = 90,
81326 	DEVLINK_ATTR_REGION_SNAPSHOT = 91,
81327 	DEVLINK_ATTR_REGION_SNAPSHOT_ID = 92,
81328 	DEVLINK_ATTR_REGION_CHUNKS = 93,
81329 	DEVLINK_ATTR_REGION_CHUNK = 94,
81330 	DEVLINK_ATTR_REGION_CHUNK_DATA = 95,
81331 	DEVLINK_ATTR_REGION_CHUNK_ADDR = 96,
81332 	DEVLINK_ATTR_REGION_CHUNK_LEN = 97,
81333 	DEVLINK_ATTR_INFO_DRIVER_NAME = 98,
81334 	DEVLINK_ATTR_INFO_SERIAL_NUMBER = 99,
81335 	DEVLINK_ATTR_INFO_VERSION_FIXED = 100,
81336 	DEVLINK_ATTR_INFO_VERSION_RUNNING = 101,
81337 	DEVLINK_ATTR_INFO_VERSION_STORED = 102,
81338 	DEVLINK_ATTR_INFO_VERSION_NAME = 103,
81339 	DEVLINK_ATTR_INFO_VERSION_VALUE = 104,
81340 	DEVLINK_ATTR_SB_POOL_CELL_SIZE = 105,
81341 	DEVLINK_ATTR_FMSG = 106,
81342 	DEVLINK_ATTR_FMSG_OBJ_NEST_START = 107,
81343 	DEVLINK_ATTR_FMSG_PAIR_NEST_START = 108,
81344 	DEVLINK_ATTR_FMSG_ARR_NEST_START = 109,
81345 	DEVLINK_ATTR_FMSG_NEST_END = 110,
81346 	DEVLINK_ATTR_FMSG_OBJ_NAME = 111,
81347 	DEVLINK_ATTR_FMSG_OBJ_VALUE_TYPE = 112,
81348 	DEVLINK_ATTR_FMSG_OBJ_VALUE_DATA = 113,
81349 	DEVLINK_ATTR_HEALTH_REPORTER = 114,
81350 	DEVLINK_ATTR_HEALTH_REPORTER_NAME = 115,
81351 	DEVLINK_ATTR_HEALTH_REPORTER_STATE = 116,
81352 	DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT = 117,
81353 	DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT = 118,
81354 	DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS = 119,
81355 	DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD = 120,
81356 	DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER = 121,
81357 	DEVLINK_ATTR_FLASH_UPDATE_FILE_NAME = 122,
81358 	DEVLINK_ATTR_FLASH_UPDATE_COMPONENT = 123,
81359 	DEVLINK_ATTR_FLASH_UPDATE_STATUS_MSG = 124,
81360 	DEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE = 125,
81361 	DEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL = 126,
81362 	DEVLINK_ATTR_PORT_PCI_PF_NUMBER = 127,
81363 	DEVLINK_ATTR_PORT_PCI_VF_NUMBER = 128,
81364 	DEVLINK_ATTR_STATS = 129,
81365 	DEVLINK_ATTR_TRAP_NAME = 130,
81366 	DEVLINK_ATTR_TRAP_ACTION = 131,
81367 	DEVLINK_ATTR_TRAP_TYPE = 132,
81368 	DEVLINK_ATTR_TRAP_GENERIC = 133,
81369 	DEVLINK_ATTR_TRAP_METADATA = 134,
81370 	DEVLINK_ATTR_TRAP_GROUP_NAME = 135,
81371 	DEVLINK_ATTR_RELOAD_FAILED = 136,
81372 	DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS = 137,
81373 	DEVLINK_ATTR_NETNS_FD = 138,
81374 	DEVLINK_ATTR_NETNS_PID = 139,
81375 	DEVLINK_ATTR_NETNS_ID = 140,
81376 	DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP = 141,
81377 	DEVLINK_ATTR_TRAP_POLICER_ID = 142,
81378 	DEVLINK_ATTR_TRAP_POLICER_RATE = 143,
81379 	DEVLINK_ATTR_TRAP_POLICER_BURST = 144,
81380 	DEVLINK_ATTR_PORT_FUNCTION = 145,
81381 	DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER = 146,
81382 	DEVLINK_ATTR_PORT_LANES = 147,
81383 	DEVLINK_ATTR_PORT_SPLITTABLE = 148,
81384 	DEVLINK_ATTR_PORT_EXTERNAL = 149,
81385 	DEVLINK_ATTR_PORT_CONTROLLER_NUMBER = 150,
81386 	DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT = 151,
81387 	DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK = 152,
81388 	DEVLINK_ATTR_RELOAD_ACTION = 153,
81389 	DEVLINK_ATTR_RELOAD_ACTIONS_PERFORMED = 154,
81390 	DEVLINK_ATTR_RELOAD_LIMITS = 155,
81391 	DEVLINK_ATTR_DEV_STATS = 156,
81392 	DEVLINK_ATTR_RELOAD_STATS = 157,
81393 	DEVLINK_ATTR_RELOAD_STATS_ENTRY = 158,
81394 	DEVLINK_ATTR_RELOAD_STATS_LIMIT = 159,
81395 	DEVLINK_ATTR_RELOAD_STATS_VALUE = 160,
81396 	DEVLINK_ATTR_REMOTE_RELOAD_STATS = 161,
81397 	DEVLINK_ATTR_RELOAD_ACTION_INFO = 162,
81398 	DEVLINK_ATTR_RELOAD_ACTION_STATS = 163,
81399 	DEVLINK_ATTR_PORT_PCI_SF_NUMBER = 164,
81400 	DEVLINK_ATTR_RATE_TYPE = 165,
81401 	DEVLINK_ATTR_RATE_TX_SHARE = 166,
81402 	DEVLINK_ATTR_RATE_TX_MAX = 167,
81403 	DEVLINK_ATTR_RATE_NODE_NAME = 168,
81404 	DEVLINK_ATTR_RATE_PARENT_NODE_NAME = 169,
81405 	DEVLINK_ATTR_REGION_MAX_SNAPSHOTS = 170,
81406 	__DEVLINK_ATTR_MAX = 171,
81407 	DEVLINK_ATTR_MAX = 170,
81408 };
81409 
81410 enum devlink_dpipe_match_type {
81411 	DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0,
81412 };
81413 
81414 enum devlink_dpipe_action_type {
81415 	DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0,
81416 };
81417 
81418 enum devlink_dpipe_field_ethernet_id {
81419 	DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0,
81420 };
81421 
81422 enum devlink_dpipe_field_ipv4_id {
81423 	DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0,
81424 };
81425 
81426 enum devlink_dpipe_field_ipv6_id {
81427 	DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0,
81428 };
81429 
81430 enum devlink_dpipe_header_id {
81431 	DEVLINK_DPIPE_HEADER_ETHERNET = 0,
81432 	DEVLINK_DPIPE_HEADER_IPV4 = 1,
81433 	DEVLINK_DPIPE_HEADER_IPV6 = 2,
81434 };
81435 
81436 enum devlink_port_function_attr {
81437 	DEVLINK_PORT_FUNCTION_ATTR_UNSPEC = 0,
81438 	DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR = 1,
81439 	DEVLINK_PORT_FN_ATTR_STATE = 2,
81440 	DEVLINK_PORT_FN_ATTR_OPSTATE = 3,
81441 	__DEVLINK_PORT_FUNCTION_ATTR_MAX = 4,
81442 	DEVLINK_PORT_FUNCTION_ATTR_MAX = 3,
81443 };
81444 
81445 struct devlink_dev_stats {
81446 	u32 reload_stats[6];
81447 	u32 remote_reload_stats[6];
81448 };
81449 
81450 struct devlink_dpipe_headers;
81451 
81452 struct devlink {
81453 	u32 index;
81454 	struct list_head port_list;
81455 	struct list_head rate_list;
81456 	struct list_head sb_list;
81457 	struct list_head dpipe_table_list;
81458 	struct list_head resource_list;
81459 	struct list_head param_list;
81460 	struct list_head region_list;
81461 	struct list_head reporter_list;
81462 	struct mutex reporters_lock;
81463 	struct devlink_dpipe_headers *dpipe_headers;
81464 	struct list_head trap_list;
81465 	struct list_head trap_group_list;
81466 	struct list_head trap_policer_list;
81467 	const struct devlink_ops *ops;
81468 	u64 features;
81469 	struct xarray snapshot_ids;
81470 	struct devlink_dev_stats stats;
81471 	struct device *dev;
81472 	possible_net_t _net;
81473 	struct mutex lock;
81474 	u8 reload_failed: 1;
81475 	refcount_t refcount;
81476 	struct completion comp;
81477 	char priv[0];
81478 };
81479 
81480 struct devlink_dpipe_match {
81481 	enum devlink_dpipe_match_type type;
81482 	unsigned int header_index;
81483 	struct devlink_dpipe_header *header;
81484 	unsigned int field_id;
81485 };
81486 
81487 struct devlink_dpipe_action {
81488 	enum devlink_dpipe_action_type type;
81489 	unsigned int header_index;
81490 	struct devlink_dpipe_header *header;
81491 	unsigned int field_id;
81492 };
81493 
81494 struct devlink_dpipe_value {
81495 	union {
81496 		struct devlink_dpipe_action *action;
81497 		struct devlink_dpipe_match *match;
81498 	};
81499 	unsigned int mapping_value;
81500 	bool mapping_valid;
81501 	unsigned int value_size;
81502 	void *value;
81503 	void *mask;
81504 };
81505 
81506 struct devlink_dpipe_entry {
81507 	u64 index;
81508 	struct devlink_dpipe_value *match_values;
81509 	unsigned int match_values_count;
81510 	struct devlink_dpipe_value *action_values;
81511 	unsigned int action_values_count;
81512 	u64 counter;
81513 	bool counter_valid;
81514 };
81515 
81516 struct devlink_dpipe_dump_ctx {
81517 	struct genl_info *info;
81518 	enum devlink_command cmd;
81519 	struct sk_buff *skb;
81520 	struct nlattr *nest;
81521 	void *hdr;
81522 };
81523 
81524 struct devlink_dpipe_table_ops;
81525 
81526 struct devlink_dpipe_table {
81527 	void *priv;
81528 	struct list_head list;
81529 	const char *name;
81530 	bool counters_enabled;
81531 	bool counter_control_extern;
81532 	bool resource_valid;
81533 	u64 resource_id;
81534 	u64 resource_units;
81535 	struct devlink_dpipe_table_ops *table_ops;
81536 	struct callback_head rcu;
81537 };
81538 
81539 struct devlink_dpipe_table_ops {
81540 	int (*actions_dump)(void *, struct sk_buff *);
81541 	int (*matches_dump)(void *, struct sk_buff *);
81542 	int (*entries_dump)(void *, bool, struct devlink_dpipe_dump_ctx *);
81543 	int (*counters_set_update)(void *, bool);
81544 	u64 (*size_get)(void *);
81545 };
81546 
81547 struct devlink_dpipe_headers {
81548 	struct devlink_dpipe_header **headers;
81549 	unsigned int headers_count;
81550 };
81551 
81552 typedef u64 devlink_resource_occ_get_t(void *);
81553 
81554 struct devlink_flash_notify {
81555 	const char *status_msg;
81556 	const char *component;
81557 	long unsigned int done;
81558 	long unsigned int total;
81559 	long unsigned int timeout;
81560 };
81561 
81562 struct devlink_param_item {
81563 	struct list_head list;
81564 	const struct devlink_param *param;
81565 	union devlink_param_value driverinit_value;
81566 	bool driverinit_value_valid;
81567 };
81568 
81569 struct devlink_port_region_ops {
81570 	const char *name;
81571 	void (*destructor)(const void *);
81572 	int (*snapshot)(struct devlink_port *, const struct devlink_port_region_ops *, struct netlink_ext_ack *, u8 **);
81573 	void *priv;
81574 };
81575 
81576 enum devlink_health_reporter_state {
81577 	DEVLINK_HEALTH_REPORTER_STATE_HEALTHY = 0,
81578 	DEVLINK_HEALTH_REPORTER_STATE_ERROR = 1,
81579 };
81580 
81581 struct devlink_health_reporter {
81582 	struct list_head list;
81583 	void *priv;
81584 	const struct devlink_health_reporter_ops *ops;
81585 	struct devlink *devlink;
81586 	struct devlink_port *devlink_port;
81587 	struct devlink_fmsg *dump_fmsg;
81588 	struct mutex dump_lock;
81589 	u64 graceful_period;
81590 	bool auto_recover;
81591 	bool auto_dump;
81592 	u8 health_state;
81593 	u64 dump_ts;
81594 	u64 dump_real_ts;
81595 	u64 error_count;
81596 	u64 recovery_count;
81597 	u64 last_recovery_ts;
81598 	refcount_t refcount;
81599 };
81600 
81601 struct devlink_fmsg {
81602 	struct list_head item_list;
81603 	bool putting_binary;
81604 };
81605 
81606 struct devlink_trap_metadata {
81607 	const char *trap_name;
81608 	const char *trap_group_name;
81609 	struct net_device *input_dev;
81610 	netdevice_tracker dev_tracker;
81611 	const struct flow_action_cookie *fa_cookie;
81612 	enum devlink_trap_type trap_type;
81613 };
81614 
81615 struct devlink_info_req {
81616 	struct sk_buff *msg;
81617 };
81618 
81619 struct trace_event_raw_devlink_hwmsg {
81620 	struct trace_entry ent;
81621 	u32 __data_loc_bus_name;
81622 	u32 __data_loc_dev_name;
81623 	u32 __data_loc_driver_name;
81624 	bool incoming;
81625 	long unsigned int type;
81626 	u32 __data_loc_buf;
81627 	size_t len;
81628 	char __data[0];
81629 };
81630 
81631 struct trace_event_raw_devlink_hwerr {
81632 	struct trace_entry ent;
81633 	u32 __data_loc_bus_name;
81634 	u32 __data_loc_dev_name;
81635 	u32 __data_loc_driver_name;
81636 	int err;
81637 	u32 __data_loc_msg;
81638 	char __data[0];
81639 };
81640 
81641 struct trace_event_raw_devlink_health_report {
81642 	struct trace_entry ent;
81643 	u32 __data_loc_bus_name;
81644 	u32 __data_loc_dev_name;
81645 	u32 __data_loc_driver_name;
81646 	u32 __data_loc_reporter_name;
81647 	u32 __data_loc_msg;
81648 	char __data[0];
81649 };
81650 
81651 struct trace_event_raw_devlink_health_recover_aborted {
81652 	struct trace_entry ent;
81653 	u32 __data_loc_bus_name;
81654 	u32 __data_loc_dev_name;
81655 	u32 __data_loc_driver_name;
81656 	u32 __data_loc_reporter_name;
81657 	bool health_state;
81658 	u64 time_since_last_recover;
81659 	char __data[0];
81660 };
81661 
81662 struct trace_event_raw_devlink_health_reporter_state_update {
81663 	struct trace_entry ent;
81664 	u32 __data_loc_bus_name;
81665 	u32 __data_loc_dev_name;
81666 	u32 __data_loc_driver_name;
81667 	u32 __data_loc_reporter_name;
81668 	u8 new_state;
81669 	char __data[0];
81670 };
81671 
81672 struct trace_event_raw_devlink_trap_report {
81673 	struct trace_entry ent;
81674 	u32 __data_loc_bus_name;
81675 	u32 __data_loc_dev_name;
81676 	u32 __data_loc_driver_name;
81677 	u32 __data_loc_trap_name;
81678 	u32 __data_loc_trap_group_name;
81679 	u32 __data_loc_input_dev_name;
81680 	char __data[0];
81681 };
81682 
81683 struct trace_event_data_offsets_devlink_hwmsg {
81684 	u32 bus_name;
81685 	u32 dev_name;
81686 	u32 driver_name;
81687 	u32 buf;
81688 };
81689 
81690 struct trace_event_data_offsets_devlink_hwerr {
81691 	u32 bus_name;
81692 	u32 dev_name;
81693 	u32 driver_name;
81694 	u32 msg;
81695 };
81696 
81697 struct trace_event_data_offsets_devlink_health_report {
81698 	u32 bus_name;
81699 	u32 dev_name;
81700 	u32 driver_name;
81701 	u32 reporter_name;
81702 	u32 msg;
81703 };
81704 
81705 struct trace_event_data_offsets_devlink_health_recover_aborted {
81706 	u32 bus_name;
81707 	u32 dev_name;
81708 	u32 driver_name;
81709 	u32 reporter_name;
81710 };
81711 
81712 struct trace_event_data_offsets_devlink_health_reporter_state_update {
81713 	u32 bus_name;
81714 	u32 dev_name;
81715 	u32 driver_name;
81716 	u32 reporter_name;
81717 };
81718 
81719 struct trace_event_data_offsets_devlink_trap_report {
81720 	u32 bus_name;
81721 	u32 dev_name;
81722 	u32 driver_name;
81723 	u32 trap_name;
81724 	u32 trap_group_name;
81725 	u32 input_dev_name;
81726 };
81727 
81728 typedef void (*btf_trace_devlink_hwmsg)(void *, const struct devlink *, bool, long unsigned int, const u8 *, size_t);
81729 
81730 typedef void (*btf_trace_devlink_hwerr)(void *, const struct devlink *, int, const char *);
81731 
81732 typedef void (*btf_trace_devlink_health_report)(void *, const struct devlink *, const char *, const char *);
81733 
81734 typedef void (*btf_trace_devlink_health_recover_aborted)(void *, const struct devlink *, const char *, bool, u64);
81735 
81736 typedef void (*btf_trace_devlink_health_reporter_state_update)(void *, const struct devlink *, const char *, bool);
81737 
81738 typedef void (*btf_trace_devlink_trap_report)(void *, const struct devlink *, struct sk_buff *, const struct devlink_trap_metadata *);
81739 
81740 struct devlink_resource {
81741 	const char *name;
81742 	u64 id;
81743 	u64 size;
81744 	u64 size_new;
81745 	bool size_valid;
81746 	struct devlink_resource *parent;
81747 	struct devlink_resource_size_params size_params;
81748 	struct list_head list;
81749 	struct list_head resource_list;
81750 	devlink_resource_occ_get_t *occ_get;
81751 	void *occ_get_priv;
81752 };
81753 
81754 struct devlink_sb {
81755 	struct list_head list;
81756 	unsigned int index;
81757 	u32 size;
81758 	u16 ingress_pools_count;
81759 	u16 egress_pools_count;
81760 	u16 ingress_tc_count;
81761 	u16 egress_tc_count;
81762 };
81763 
81764 struct devlink_region___2 {
81765 	struct devlink *devlink;
81766 	struct devlink_port *port;
81767 	struct list_head list;
81768 	union {
81769 		const struct devlink_region_ops *ops;
81770 		const struct devlink_port_region_ops *port_ops;
81771 	};
81772 	struct list_head snapshot_list;
81773 	u32 max_snapshots;
81774 	u32 cur_snapshots;
81775 	u64 size;
81776 };
81777 
81778 struct devlink_snapshot {
81779 	struct list_head list;
81780 	struct devlink_region___2 *region;
81781 	u8 *data;
81782 	u32 id;
81783 };
81784 
81785 enum devlink_multicast_groups {
81786 	DEVLINK_MCGRP_CONFIG = 0,
81787 };
81788 
81789 struct devlink_reload_combination {
81790 	enum devlink_reload_action action;
81791 	enum devlink_reload_limit limit;
81792 };
81793 
81794 struct devlink_fmsg_item {
81795 	struct list_head list;
81796 	int attrtype;
81797 	u8 nla_type;
81798 	u16 len;
81799 	int value[0];
81800 };
81801 
81802 struct devlink_stats {
81803 	u64 rx_bytes;
81804 	u64 rx_packets;
81805 	struct u64_stats_sync syncp;
81806 };
81807 
81808 struct devlink_trap_policer_item {
81809 	const struct devlink_trap_policer *policer;
81810 	u64 rate;
81811 	u64 burst;
81812 	struct list_head list;
81813 };
81814 
81815 struct devlink_trap_group_item {
81816 	const struct devlink_trap_group *group;
81817 	struct devlink_trap_policer_item *policer_item;
81818 	struct list_head list;
81819 	struct devlink_stats *stats;
81820 };
81821 
81822 struct devlink_trap_item {
81823 	const struct devlink_trap *trap;
81824 	struct devlink_trap_group_item *group_item;
81825 	struct list_head list;
81826 	enum devlink_trap_action action;
81827 	struct devlink_stats *stats;
81828 	void *priv;
81829 };
81830 
81831 struct gro_cell {
81832 	struct sk_buff_head napi_skbs;
81833 	struct napi_struct napi;
81834 };
81835 
81836 enum __sk_action {
81837 	__SK_DROP = 0,
81838 	__SK_PASS = 1,
81839 	__SK_REDIRECT = 2,
81840 	__SK_NONE = 3,
81841 };
81842 
81843 enum sk_psock_state_bits {
81844 	SK_PSOCK_TX_ENABLED = 0,
81845 };
81846 
81847 struct sk_psock_link {
81848 	struct list_head list;
81849 	struct bpf_map *map;
81850 	void *link_raw;
81851 };
81852 
81853 struct bpf_stab {
81854 	struct bpf_map map;
81855 	struct sock **sks;
81856 	struct sk_psock_progs progs;
81857 	raw_spinlock_t lock;
81858 	long: 64;
81859 	long: 64;
81860 	long: 64;
81861 };
81862 
81863 typedef u64 (*btf_bpf_sock_map_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64);
81864 
81865 typedef u64 (*btf_bpf_sk_redirect_map)(struct sk_buff *, struct bpf_map *, u32, u64);
81866 
81867 typedef u64 (*btf_bpf_msg_redirect_map)(struct sk_msg *, struct bpf_map *, u32, u64);
81868 
81869 struct sock_map_seq_info {
81870 	struct bpf_map *map;
81871 	struct sock *sk;
81872 	u32 index;
81873 };
81874 
81875 struct bpf_iter__sockmap {
81876 	union {
81877 		struct bpf_iter_meta *meta;
81878 	};
81879 	union {
81880 		struct bpf_map *map;
81881 	};
81882 	union {
81883 		void *key;
81884 	};
81885 	union {
81886 		struct sock *sk;
81887 	};
81888 };
81889 
81890 struct bpf_shtab_elem {
81891 	struct callback_head rcu;
81892 	u32 hash;
81893 	struct sock *sk;
81894 	struct hlist_node node;
81895 	u8 key[0];
81896 };
81897 
81898 struct bpf_shtab_bucket {
81899 	struct hlist_head head;
81900 	raw_spinlock_t lock;
81901 };
81902 
81903 struct bpf_shtab {
81904 	struct bpf_map map;
81905 	struct bpf_shtab_bucket *buckets;
81906 	u32 buckets_num;
81907 	u32 elem_size;
81908 	struct sk_psock_progs progs;
81909 	atomic_t count;
81910 	long: 32;
81911 	long: 64;
81912 };
81913 
81914 typedef u64 (*btf_bpf_sock_hash_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64);
81915 
81916 typedef u64 (*btf_bpf_sk_redirect_hash)(struct sk_buff *, struct bpf_map *, void *, u64);
81917 
81918 typedef u64 (*btf_bpf_msg_redirect_hash)(struct sk_msg *, struct bpf_map *, void *, u64);
81919 
81920 struct sock_hash_seq_info {
81921 	struct bpf_map *map;
81922 	struct bpf_shtab *htab;
81923 	u32 bucket_id;
81924 };
81925 
81926 enum {
81927 	SK_DIAG_BPF_STORAGE_REQ_NONE = 0,
81928 	SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 1,
81929 	__SK_DIAG_BPF_STORAGE_REQ_MAX = 2,
81930 };
81931 
81932 enum {
81933 	SK_DIAG_BPF_STORAGE_REP_NONE = 0,
81934 	SK_DIAG_BPF_STORAGE = 1,
81935 	__SK_DIAG_BPF_STORAGE_REP_MAX = 2,
81936 };
81937 
81938 enum {
81939 	SK_DIAG_BPF_STORAGE_NONE = 0,
81940 	SK_DIAG_BPF_STORAGE_PAD = 1,
81941 	SK_DIAG_BPF_STORAGE_MAP_ID = 2,
81942 	SK_DIAG_BPF_STORAGE_MAP_VALUE = 3,
81943 	__SK_DIAG_BPF_STORAGE_MAX = 4,
81944 };
81945 
81946 typedef u64 (*btf_bpf_sk_storage_get)(struct bpf_map *, struct sock *, void *, u64);
81947 
81948 typedef u64 (*btf_bpf_sk_storage_delete)(struct bpf_map *, struct sock *);
81949 
81950 typedef u64 (*btf_bpf_sk_storage_get_tracing)(struct bpf_map *, struct sock *, void *, u64);
81951 
81952 typedef u64 (*btf_bpf_sk_storage_delete_tracing)(struct bpf_map *, struct sock *);
81953 
81954 struct bpf_sk_storage_diag {
81955 	u32 nr_maps;
81956 	struct bpf_map *maps[0];
81957 };
81958 
81959 struct bpf_iter_seq_sk_storage_map_info {
81960 	struct bpf_map *map;
81961 	unsigned int bucket_id;
81962 	unsigned int skip_elems;
81963 };
81964 
81965 struct bpf_iter__bpf_sk_storage_map {
81966 	union {
81967 		struct bpf_iter_meta *meta;
81968 	};
81969 	union {
81970 		struct bpf_map *map;
81971 	};
81972 	union {
81973 		struct sock *sk;
81974 	};
81975 	union {
81976 		void *value;
81977 	};
81978 };
81979 
81980 struct nvmem_cell___2;
81981 
81982 struct tc_ratespec {
81983 	unsigned char cell_log;
81984 	__u8 linklayer;
81985 	short unsigned int overhead;
81986 	short int cell_align;
81987 	short unsigned int mpu;
81988 	__u32 rate;
81989 };
81990 
81991 struct tc_prio_qopt {
81992 	int bands;
81993 	__u8 priomap[16];
81994 };
81995 
81996 enum {
81997 	TCA_UNSPEC = 0,
81998 	TCA_KIND = 1,
81999 	TCA_OPTIONS = 2,
82000 	TCA_STATS = 3,
82001 	TCA_XSTATS = 4,
82002 	TCA_RATE = 5,
82003 	TCA_FCNT = 6,
82004 	TCA_STATS2 = 7,
82005 	TCA_STAB = 8,
82006 	TCA_PAD = 9,
82007 	TCA_DUMP_INVISIBLE = 10,
82008 	TCA_CHAIN = 11,
82009 	TCA_HW_OFFLOAD = 12,
82010 	TCA_INGRESS_BLOCK = 13,
82011 	TCA_EGRESS_BLOCK = 14,
82012 	TCA_DUMP_FLAGS = 15,
82013 	__TCA_MAX = 16,
82014 };
82015 
82016 struct skb_array {
82017 	struct ptr_ring ring;
82018 };
82019 
82020 struct psched_ratecfg {
82021 	u64 rate_bytes_ps;
82022 	u32 mult;
82023 	u16 overhead;
82024 	u16 mpu;
82025 	u8 linklayer;
82026 	u8 shift;
82027 };
82028 
82029 struct psched_pktrate {
82030 	u64 rate_pkts_ps;
82031 	u32 mult;
82032 	u8 shift;
82033 };
82034 
82035 struct mini_Qdisc_pair {
82036 	struct mini_Qdisc miniq1;
82037 	struct mini_Qdisc miniq2;
82038 	struct mini_Qdisc **p_miniq;
82039 };
82040 
82041 struct pfifo_fast_priv {
82042 	struct skb_array q[3];
82043 };
82044 
82045 struct tc_qopt_offload_stats {
82046 	struct gnet_stats_basic_sync *bstats;
82047 	struct gnet_stats_queue *qstats;
82048 };
82049 
82050 enum tc_mq_command {
82051 	TC_MQ_CREATE = 0,
82052 	TC_MQ_DESTROY = 1,
82053 	TC_MQ_STATS = 2,
82054 	TC_MQ_GRAFT = 3,
82055 };
82056 
82057 struct tc_mq_opt_offload_graft_params {
82058 	long unsigned int queue;
82059 	u32 child_handle;
82060 };
82061 
82062 struct tc_mq_qopt_offload {
82063 	enum tc_mq_command command;
82064 	u32 handle;
82065 	union {
82066 		struct tc_qopt_offload_stats stats;
82067 		struct tc_mq_opt_offload_graft_params graft_params;
82068 	};
82069 };
82070 
82071 struct mq_sched {
82072 	struct Qdisc **qdiscs;
82073 };
82074 
82075 struct sch_frag_data {
82076 	long unsigned int dst;
82077 	struct qdisc_skb_cb cb;
82078 	__be16 inner_protocol;
82079 	u16 vlan_tci;
82080 	__be16 vlan_proto;
82081 	unsigned int l2_len;
82082 	u8 l2_data[18];
82083 	int (*xmit)(struct sk_buff *);
82084 };
82085 
82086 enum tc_link_layer {
82087 	TC_LINKLAYER_UNAWARE = 0,
82088 	TC_LINKLAYER_ETHERNET = 1,
82089 	TC_LINKLAYER_ATM = 2,
82090 };
82091 
82092 enum {
82093 	TCA_STAB_UNSPEC = 0,
82094 	TCA_STAB_BASE = 1,
82095 	TCA_STAB_DATA = 2,
82096 	__TCA_STAB_MAX = 3,
82097 };
82098 
82099 struct qdisc_rate_table {
82100 	struct tc_ratespec rate;
82101 	u32 data[256];
82102 	struct qdisc_rate_table *next;
82103 	int refcnt;
82104 };
82105 
82106 struct Qdisc_class_common {
82107 	u32 classid;
82108 	struct hlist_node hnode;
82109 };
82110 
82111 struct Qdisc_class_hash {
82112 	struct hlist_head *hash;
82113 	unsigned int hashsize;
82114 	unsigned int hashmask;
82115 	unsigned int hashelems;
82116 };
82117 
82118 struct qdisc_watchdog {
82119 	u64 last_expires;
82120 	struct hrtimer timer;
82121 	struct Qdisc *qdisc;
82122 };
82123 
82124 enum tc_root_command {
82125 	TC_ROOT_GRAFT = 0,
82126 };
82127 
82128 struct tc_root_qopt_offload {
82129 	enum tc_root_command command;
82130 	u32 handle;
82131 	bool ingress;
82132 };
82133 
82134 struct check_loop_arg {
82135 	struct qdisc_walker w;
82136 	struct Qdisc *p;
82137 	int depth;
82138 };
82139 
82140 struct tcf_bind_args {
82141 	struct tcf_walker w;
82142 	long unsigned int base;
82143 	long unsigned int cl;
82144 	u32 classid;
82145 };
82146 
82147 struct tc_bind_class_args {
82148 	struct qdisc_walker w;
82149 	long unsigned int new_cl;
82150 	u32 portid;
82151 	u32 clid;
82152 };
82153 
82154 struct qdisc_dump_args {
82155 	struct qdisc_walker w;
82156 	struct sk_buff *skb;
82157 	struct netlink_callback *cb;
82158 };
82159 
82160 enum net_xmit_qdisc_t {
82161 	__NET_XMIT_STOLEN = 65536,
82162 	__NET_XMIT_BYPASS = 131072,
82163 };
82164 
82165 enum {
82166 	TCA_ACT_UNSPEC = 0,
82167 	TCA_ACT_KIND = 1,
82168 	TCA_ACT_OPTIONS = 2,
82169 	TCA_ACT_INDEX = 3,
82170 	TCA_ACT_STATS = 4,
82171 	TCA_ACT_PAD = 5,
82172 	TCA_ACT_COOKIE = 6,
82173 	TCA_ACT_FLAGS = 7,
82174 	TCA_ACT_HW_STATS = 8,
82175 	TCA_ACT_USED_HW_STATS = 9,
82176 	TCA_ACT_IN_HW_COUNT = 10,
82177 	__TCA_ACT_MAX = 11,
82178 };
82179 
82180 struct psample_group {
82181 	struct list_head list;
82182 	struct net *net;
82183 	u32 group_num;
82184 	u32 refcount;
82185 	u32 seq;
82186 	struct callback_head rcu;
82187 };
82188 
82189 struct action_gate_entry {
82190 	u8 gate_state;
82191 	u32 interval;
82192 	s32 ipv;
82193 	s32 maxoctets;
82194 };
82195 
82196 enum qdisc_class_ops_flags {
82197 	QDISC_CLASS_OPS_DOIT_UNLOCKED = 1,
82198 };
82199 
82200 enum tcf_proto_ops_flags {
82201 	TCF_PROTO_OPS_DOIT_UNLOCKED = 1,
82202 };
82203 
82204 typedef void tcf_chain_head_change_t(struct tcf_proto *, void *);
82205 
82206 struct tcf_block_ext_info {
82207 	enum flow_block_binder_type binder_type;
82208 	tcf_chain_head_change_t *chain_head_change;
82209 	void *chain_head_change_priv;
82210 	u32 block_index;
82211 };
82212 
82213 struct tcf_qevent {
82214 	struct tcf_block *block;
82215 	struct tcf_block_ext_info info;
82216 	struct tcf_proto *filter_chain;
82217 };
82218 
82219 enum pedit_header_type {
82220 	TCA_PEDIT_KEY_EX_HDR_TYPE_NETWORK = 0,
82221 	TCA_PEDIT_KEY_EX_HDR_TYPE_ETH = 1,
82222 	TCA_PEDIT_KEY_EX_HDR_TYPE_IP4 = 2,
82223 	TCA_PEDIT_KEY_EX_HDR_TYPE_IP6 = 3,
82224 	TCA_PEDIT_KEY_EX_HDR_TYPE_TCP = 4,
82225 	TCA_PEDIT_KEY_EX_HDR_TYPE_UDP = 5,
82226 	__PEDIT_HDR_TYPE_MAX = 6,
82227 };
82228 
82229 enum pedit_cmd {
82230 	TCA_PEDIT_KEY_EX_CMD_SET = 0,
82231 	TCA_PEDIT_KEY_EX_CMD_ADD = 1,
82232 	__PEDIT_CMD_MAX = 2,
82233 };
82234 
82235 struct tc_pedit_key {
82236 	__u32 mask;
82237 	__u32 val;
82238 	__u32 off;
82239 	__u32 at;
82240 	__u32 offmask;
82241 	__u32 shift;
82242 };
82243 
82244 struct tcf_pedit_key_ex {
82245 	enum pedit_header_type htype;
82246 	enum pedit_cmd cmd;
82247 };
82248 
82249 struct tcf_pedit {
82250 	struct tc_action common;
82251 	unsigned char tcfp_nkeys;
82252 	unsigned char tcfp_flags;
82253 	struct tc_pedit_key *tcfp_keys;
82254 	struct tcf_pedit_key_ex *tcfp_keys_ex;
82255 	long: 64;
82256 };
82257 
82258 struct nf_conntrack_tuple_mask {
82259 	struct {
82260 		union nf_inet_addr u3;
82261 		union nf_conntrack_man_proto u;
82262 	} src;
82263 };
82264 
82265 struct nf_conntrack_l4proto___2;
82266 
82267 struct nf_conntrack_helper;
82268 
82269 struct nf_conntrack_expect {
82270 	struct hlist_node lnode;
82271 	struct hlist_node hnode;
82272 	struct nf_conntrack_tuple tuple;
82273 	struct nf_conntrack_tuple_mask mask;
82274 	void (*expectfn)(struct nf_conn *, struct nf_conntrack_expect *);
82275 	struct nf_conntrack_helper *helper;
82276 	struct nf_conn *master;
82277 	struct timer_list timeout;
82278 	refcount_t use;
82279 	unsigned int flags;
82280 	unsigned int class;
82281 	struct callback_head rcu;
82282 };
82283 
82284 struct PptpControlHeader {
82285 	__be16 messageType;
82286 	__u16 reserved;
82287 };
82288 
82289 struct PptpStartSessionRequest {
82290 	__be16 protocolVersion;
82291 	__u16 reserved1;
82292 	__be32 framingCapability;
82293 	__be32 bearerCapability;
82294 	__be16 maxChannels;
82295 	__be16 firmwareRevision;
82296 	__u8 hostName[64];
82297 	__u8 vendorString[64];
82298 };
82299 
82300 struct PptpStartSessionReply {
82301 	__be16 protocolVersion;
82302 	__u8 resultCode;
82303 	__u8 generalErrorCode;
82304 	__be32 framingCapability;
82305 	__be32 bearerCapability;
82306 	__be16 maxChannels;
82307 	__be16 firmwareRevision;
82308 	__u8 hostName[64];
82309 	__u8 vendorString[64];
82310 };
82311 
82312 struct PptpStopSessionRequest {
82313 	__u8 reason;
82314 	__u8 reserved1;
82315 	__u16 reserved2;
82316 };
82317 
82318 struct PptpStopSessionReply {
82319 	__u8 resultCode;
82320 	__u8 generalErrorCode;
82321 	__u16 reserved1;
82322 };
82323 
82324 struct PptpOutCallRequest {
82325 	__be16 callID;
82326 	__be16 callSerialNumber;
82327 	__be32 minBPS;
82328 	__be32 maxBPS;
82329 	__be32 bearerType;
82330 	__be32 framingType;
82331 	__be16 packetWindow;
82332 	__be16 packetProcDelay;
82333 	__be16 phoneNumberLength;
82334 	__u16 reserved1;
82335 	__u8 phoneNumber[64];
82336 	__u8 subAddress[64];
82337 };
82338 
82339 struct PptpOutCallReply {
82340 	__be16 callID;
82341 	__be16 peersCallID;
82342 	__u8 resultCode;
82343 	__u8 generalErrorCode;
82344 	__be16 causeCode;
82345 	__be32 connectSpeed;
82346 	__be16 packetWindow;
82347 	__be16 packetProcDelay;
82348 	__be32 physChannelID;
82349 };
82350 
82351 struct PptpInCallRequest {
82352 	__be16 callID;
82353 	__be16 callSerialNumber;
82354 	__be32 callBearerType;
82355 	__be32 physChannelID;
82356 	__be16 dialedNumberLength;
82357 	__be16 dialingNumberLength;
82358 	__u8 dialedNumber[64];
82359 	__u8 dialingNumber[64];
82360 	__u8 subAddress[64];
82361 };
82362 
82363 struct PptpInCallReply {
82364 	__be16 callID;
82365 	__be16 peersCallID;
82366 	__u8 resultCode;
82367 	__u8 generalErrorCode;
82368 	__be16 packetWindow;
82369 	__be16 packetProcDelay;
82370 	__u16 reserved;
82371 };
82372 
82373 struct PptpInCallConnected {
82374 	__be16 peersCallID;
82375 	__u16 reserved;
82376 	__be32 connectSpeed;
82377 	__be16 packetWindow;
82378 	__be16 packetProcDelay;
82379 	__be32 callFramingType;
82380 };
82381 
82382 struct PptpClearCallRequest {
82383 	__be16 callID;
82384 	__u16 reserved;
82385 };
82386 
82387 struct PptpCallDisconnectNotify {
82388 	__be16 callID;
82389 	__u8 resultCode;
82390 	__u8 generalErrorCode;
82391 	__be16 causeCode;
82392 	__u16 reserved;
82393 	__u8 callStatistics[128];
82394 };
82395 
82396 struct PptpWanErrorNotify {
82397 	__be16 peersCallID;
82398 	__u16 reserved;
82399 	__be32 crcErrors;
82400 	__be32 framingErrors;
82401 	__be32 hardwareOverRuns;
82402 	__be32 bufferOverRuns;
82403 	__be32 timeoutErrors;
82404 	__be32 alignmentErrors;
82405 };
82406 
82407 struct PptpSetLinkInfo {
82408 	__be16 peersCallID;
82409 	__u16 reserved;
82410 	__be32 sendAccm;
82411 	__be32 recvAccm;
82412 };
82413 
82414 union pptp_ctrl_union {
82415 	struct PptpStartSessionRequest sreq;
82416 	struct PptpStartSessionReply srep;
82417 	struct PptpStopSessionRequest streq;
82418 	struct PptpStopSessionReply strep;
82419 	struct PptpOutCallRequest ocreq;
82420 	struct PptpOutCallReply ocack;
82421 	struct PptpInCallRequest icreq;
82422 	struct PptpInCallReply icack;
82423 	struct PptpInCallConnected iccon;
82424 	struct PptpClearCallRequest clrreq;
82425 	struct PptpCallDisconnectNotify disc;
82426 	struct PptpWanErrorNotify wanerr;
82427 	struct PptpSetLinkInfo setlink;
82428 };
82429 
82430 struct tcf_filter_chain_list_item {
82431 	struct list_head list;
82432 	tcf_chain_head_change_t *chain_head_change;
82433 	void *chain_head_change_priv;
82434 };
82435 
82436 struct tcf_net {
82437 	spinlock_t idr_lock;
82438 	struct idr idr;
82439 };
82440 
82441 struct tcf_block_owner_item {
82442 	struct list_head list;
82443 	struct Qdisc *q;
82444 	enum flow_block_binder_type binder_type;
82445 };
82446 
82447 struct tcf_chain_info {
82448 	struct tcf_proto **pprev;
82449 	struct tcf_proto *next;
82450 };
82451 
82452 struct tcf_dump_args {
82453 	struct tcf_walker w;
82454 	struct sk_buff *skb;
82455 	struct netlink_callback *cb;
82456 	struct tcf_block *block;
82457 	struct Qdisc *q;
82458 	u32 parent;
82459 	bool terse_dump;
82460 };
82461 
82462 struct tcamsg {
82463 	unsigned char tca_family;
82464 	unsigned char tca__pad1;
82465 	short unsigned int tca__pad2;
82466 };
82467 
82468 enum {
82469 	TCA_ROOT_UNSPEC = 0,
82470 	TCA_ROOT_TAB = 1,
82471 	TCA_ROOT_FLAGS = 2,
82472 	TCA_ROOT_COUNT = 3,
82473 	TCA_ROOT_TIME_DELTA = 4,
82474 	__TCA_ROOT_MAX = 5,
82475 };
82476 
82477 struct tc_action_net {
82478 	struct tcf_idrinfo *idrinfo;
82479 	const struct tc_action_ops *ops;
82480 };
82481 
82482 struct tc_act_pernet_id {
82483 	struct list_head list;
82484 	unsigned int id;
82485 };
82486 
82487 struct tc_act_bpf {
82488 	__u32 index;
82489 	__u32 capab;
82490 	int action;
82491 	int refcnt;
82492 	int bindcnt;
82493 };
82494 
82495 enum {
82496 	TCA_ACT_BPF_UNSPEC = 0,
82497 	TCA_ACT_BPF_TM = 1,
82498 	TCA_ACT_BPF_PARMS = 2,
82499 	TCA_ACT_BPF_OPS_LEN = 3,
82500 	TCA_ACT_BPF_OPS = 4,
82501 	TCA_ACT_BPF_FD = 5,
82502 	TCA_ACT_BPF_NAME = 6,
82503 	TCA_ACT_BPF_PAD = 7,
82504 	TCA_ACT_BPF_TAG = 8,
82505 	TCA_ACT_BPF_ID = 9,
82506 	__TCA_ACT_BPF_MAX = 10,
82507 };
82508 
82509 struct tcf_bpf {
82510 	struct tc_action common;
82511 	struct bpf_prog *filter;
82512 	union {
82513 		u32 bpf_fd;
82514 		u16 bpf_num_ops;
82515 	};
82516 	struct sock_filter *bpf_ops;
82517 	const char *bpf_name;
82518 };
82519 
82520 struct tcf_bpf_cfg {
82521 	struct bpf_prog *filter;
82522 	struct sock_filter *bpf_ops;
82523 	const char *bpf_name;
82524 	u16 bpf_num_ops;
82525 	bool is_ebpf;
82526 };
82527 
82528 struct tc_fifo_qopt {
82529 	__u32 limit;
82530 };
82531 
82532 enum tc_fifo_command {
82533 	TC_FIFO_REPLACE = 0,
82534 	TC_FIFO_DESTROY = 1,
82535 	TC_FIFO_STATS = 2,
82536 };
82537 
82538 struct tc_fifo_qopt_offload {
82539 	enum tc_fifo_command command;
82540 	u32 handle;
82541 	u32 parent;
82542 	union {
82543 		struct tc_qopt_offload_stats stats;
82544 	};
82545 };
82546 
82547 struct ingress_sched_data {
82548 	struct tcf_block *block;
82549 	struct tcf_block_ext_info block_info;
82550 	struct mini_Qdisc_pair miniqp;
82551 };
82552 
82553 struct clsact_sched_data {
82554 	struct tcf_block *ingress_block;
82555 	struct tcf_block *egress_block;
82556 	struct tcf_block_ext_info ingress_block_info;
82557 	struct tcf_block_ext_info egress_block_info;
82558 	struct mini_Qdisc_pair miniqp_ingress;
82559 	struct mini_Qdisc_pair miniqp_egress;
82560 };
82561 
82562 enum {
82563 	TCA_FQ_CODEL_UNSPEC = 0,
82564 	TCA_FQ_CODEL_TARGET = 1,
82565 	TCA_FQ_CODEL_LIMIT = 2,
82566 	TCA_FQ_CODEL_INTERVAL = 3,
82567 	TCA_FQ_CODEL_ECN = 4,
82568 	TCA_FQ_CODEL_FLOWS = 5,
82569 	TCA_FQ_CODEL_QUANTUM = 6,
82570 	TCA_FQ_CODEL_CE_THRESHOLD = 7,
82571 	TCA_FQ_CODEL_DROP_BATCH_SIZE = 8,
82572 	TCA_FQ_CODEL_MEMORY_LIMIT = 9,
82573 	TCA_FQ_CODEL_CE_THRESHOLD_SELECTOR = 10,
82574 	TCA_FQ_CODEL_CE_THRESHOLD_MASK = 11,
82575 	__TCA_FQ_CODEL_MAX = 12,
82576 };
82577 
82578 enum {
82579 	TCA_FQ_CODEL_XSTATS_QDISC = 0,
82580 	TCA_FQ_CODEL_XSTATS_CLASS = 1,
82581 };
82582 
82583 struct tc_fq_codel_qd_stats {
82584 	__u32 maxpacket;
82585 	__u32 drop_overlimit;
82586 	__u32 ecn_mark;
82587 	__u32 new_flow_count;
82588 	__u32 new_flows_len;
82589 	__u32 old_flows_len;
82590 	__u32 ce_mark;
82591 	__u32 memory_usage;
82592 	__u32 drop_overmemory;
82593 };
82594 
82595 struct tc_fq_codel_cl_stats {
82596 	__s32 deficit;
82597 	__u32 ldelay;
82598 	__u32 count;
82599 	__u32 lastcount;
82600 	__u32 dropping;
82601 	__s32 drop_next;
82602 };
82603 
82604 struct tc_fq_codel_xstats {
82605 	__u32 type;
82606 	union {
82607 		struct tc_fq_codel_qd_stats qdisc_stats;
82608 		struct tc_fq_codel_cl_stats class_stats;
82609 	};
82610 };
82611 
82612 typedef u32 codel_time_t;
82613 
82614 typedef s32 codel_tdiff_t;
82615 
82616 struct codel_params {
82617 	codel_time_t target;
82618 	codel_time_t ce_threshold;
82619 	codel_time_t interval;
82620 	u32 mtu;
82621 	bool ecn;
82622 	u8 ce_threshold_selector;
82623 	u8 ce_threshold_mask;
82624 };
82625 
82626 struct codel_vars {
82627 	u32 count;
82628 	u32 lastcount;
82629 	bool dropping;
82630 	u16 rec_inv_sqrt;
82631 	codel_time_t first_above_time;
82632 	codel_time_t drop_next;
82633 	codel_time_t ldelay;
82634 };
82635 
82636 struct codel_stats {
82637 	u32 maxpacket;
82638 	u32 drop_count;
82639 	u32 drop_len;
82640 	u32 ecn_mark;
82641 	u32 ce_mark;
82642 };
82643 
82644 typedef u32 (*codel_skb_len_t)(const struct sk_buff *);
82645 
82646 typedef codel_time_t (*codel_skb_time_t)(const struct sk_buff *);
82647 
82648 typedef void (*codel_skb_drop_t)(struct sk_buff *, void *);
82649 
82650 typedef struct sk_buff * (*codel_skb_dequeue_t)(struct codel_vars *, void *);
82651 
82652 struct codel_skb_cb {
82653 	codel_time_t enqueue_time;
82654 	unsigned int mem_usage;
82655 };
82656 
82657 struct fq_codel_flow {
82658 	struct sk_buff *head;
82659 	struct sk_buff *tail;
82660 	struct list_head flowchain;
82661 	int deficit;
82662 	struct codel_vars cvars;
82663 };
82664 
82665 struct fq_codel_sched_data {
82666 	struct tcf_proto *filter_list;
82667 	struct tcf_block *block;
82668 	struct fq_codel_flow *flows;
82669 	u32 *backlogs;
82670 	u32 flows_cnt;
82671 	u32 quantum;
82672 	u32 drop_batch_size;
82673 	u32 memory_limit;
82674 	struct codel_params cparams;
82675 	struct codel_stats cstats;
82676 	u32 memory_usage;
82677 	u32 drop_overmemory;
82678 	u32 drop_overlimit;
82679 	u32 new_flow_count;
82680 	struct list_head new_flows;
82681 	struct list_head old_flows;
82682 };
82683 
82684 enum {
82685 	TCA_CGROUP_UNSPEC = 0,
82686 	TCA_CGROUP_ACT = 1,
82687 	TCA_CGROUP_POLICE = 2,
82688 	TCA_CGROUP_EMATCHES = 3,
82689 	__TCA_CGROUP_MAX = 4,
82690 };
82691 
82692 struct tcf_ematch_tree_hdr {
82693 	__u16 nmatches;
82694 	__u16 progid;
82695 };
82696 
82697 struct tcf_pkt_info {
82698 	unsigned char *ptr;
82699 	int nexthdr;
82700 };
82701 
82702 struct tcf_ematch_ops;
82703 
82704 struct tcf_ematch {
82705 	struct tcf_ematch_ops *ops;
82706 	long unsigned int data;
82707 	unsigned int datalen;
82708 	u16 matchid;
82709 	u16 flags;
82710 	struct net *net;
82711 };
82712 
82713 struct tcf_ematch_ops {
82714 	int kind;
82715 	int datalen;
82716 	int (*change)(struct net *, void *, int, struct tcf_ematch *);
82717 	int (*match)(struct sk_buff *, struct tcf_ematch *, struct tcf_pkt_info *);
82718 	void (*destroy)(struct tcf_ematch *);
82719 	int (*dump)(struct sk_buff *, struct tcf_ematch *);
82720 	struct module *owner;
82721 	struct list_head link;
82722 };
82723 
82724 struct tcf_ematch_tree {
82725 	struct tcf_ematch_tree_hdr hdr;
82726 	struct tcf_ematch *matches;
82727 };
82728 
82729 struct cls_cgroup_head {
82730 	u32 handle;
82731 	struct tcf_exts exts;
82732 	struct tcf_ematch_tree ematches;
82733 	struct tcf_proto *tp;
82734 	struct rcu_work rwork;
82735 };
82736 
82737 enum {
82738 	TCA_BPF_UNSPEC = 0,
82739 	TCA_BPF_ACT = 1,
82740 	TCA_BPF_POLICE = 2,
82741 	TCA_BPF_CLASSID = 3,
82742 	TCA_BPF_OPS_LEN = 4,
82743 	TCA_BPF_OPS = 5,
82744 	TCA_BPF_FD = 6,
82745 	TCA_BPF_NAME = 7,
82746 	TCA_BPF_FLAGS = 8,
82747 	TCA_BPF_FLAGS_GEN = 9,
82748 	TCA_BPF_TAG = 10,
82749 	TCA_BPF_ID = 11,
82750 	__TCA_BPF_MAX = 12,
82751 };
82752 
82753 struct cls_bpf_head {
82754 	struct list_head plist;
82755 	struct idr handle_idr;
82756 	struct callback_head rcu;
82757 };
82758 
82759 struct cls_bpf_prog {
82760 	struct bpf_prog *filter;
82761 	struct list_head link;
82762 	struct tcf_result res;
82763 	bool exts_integrated;
82764 	u32 gen_flags;
82765 	unsigned int in_hw_count;
82766 	struct tcf_exts exts;
82767 	u32 handle;
82768 	u16 bpf_num_ops;
82769 	struct sock_filter *bpf_ops;
82770 	const char *bpf_name;
82771 	struct tcf_proto *tp;
82772 	struct rcu_work rwork;
82773 };
82774 
82775 enum {
82776 	TCA_EMATCH_TREE_UNSPEC = 0,
82777 	TCA_EMATCH_TREE_HDR = 1,
82778 	TCA_EMATCH_TREE_LIST = 2,
82779 	__TCA_EMATCH_TREE_MAX = 3,
82780 };
82781 
82782 struct tcf_ematch_hdr {
82783 	__u16 matchid;
82784 	__u16 kind;
82785 	__u16 flags;
82786 	__u16 pad;
82787 };
82788 
82789 struct sockaddr_nl {
82790 	__kernel_sa_family_t nl_family;
82791 	short unsigned int nl_pad;
82792 	__u32 nl_pid;
82793 	__u32 nl_groups;
82794 };
82795 
82796 struct nlmsgerr {
82797 	int error;
82798 	struct nlmsghdr msg;
82799 };
82800 
82801 enum nlmsgerr_attrs {
82802 	NLMSGERR_ATTR_UNUSED = 0,
82803 	NLMSGERR_ATTR_MSG = 1,
82804 	NLMSGERR_ATTR_OFFS = 2,
82805 	NLMSGERR_ATTR_COOKIE = 3,
82806 	NLMSGERR_ATTR_POLICY = 4,
82807 	__NLMSGERR_ATTR_MAX = 5,
82808 	NLMSGERR_ATTR_MAX = 4,
82809 };
82810 
82811 struct nl_pktinfo {
82812 	__u32 group;
82813 };
82814 
82815 enum {
82816 	NETLINK_UNCONNECTED = 0,
82817 	NETLINK_CONNECTED = 1,
82818 };
82819 
82820 enum netlink_skb_flags {
82821 	NETLINK_SKB_DST = 8,
82822 };
82823 
82824 struct netlink_notify {
82825 	struct net *net;
82826 	u32 portid;
82827 	int protocol;
82828 };
82829 
82830 struct netlink_tap {
82831 	struct net_device *dev;
82832 	struct module *module;
82833 	struct list_head list;
82834 };
82835 
82836 struct trace_event_raw_netlink_extack {
82837 	struct trace_entry ent;
82838 	u32 __data_loc_msg;
82839 	char __data[0];
82840 };
82841 
82842 struct trace_event_data_offsets_netlink_extack {
82843 	u32 msg;
82844 };
82845 
82846 typedef void (*btf_trace_netlink_extack)(void *, const char *);
82847 
82848 struct netlink_sock {
82849 	struct sock sk;
82850 	u32 portid;
82851 	u32 dst_portid;
82852 	u32 dst_group;
82853 	u32 flags;
82854 	u32 subscriptions;
82855 	u32 ngroups;
82856 	long unsigned int *groups;
82857 	long unsigned int state;
82858 	size_t max_recvmsg_len;
82859 	wait_queue_head_t wait;
82860 	bool bound;
82861 	bool cb_running;
82862 	int dump_done_errno;
82863 	struct netlink_callback cb;
82864 	struct mutex *cb_mutex;
82865 	struct mutex cb_def_mutex;
82866 	void (*netlink_rcv)(struct sk_buff *);
82867 	int (*netlink_bind)(struct net *, int);
82868 	void (*netlink_unbind)(struct net *, int);
82869 	struct module *module;
82870 	struct rhash_head node;
82871 	struct callback_head rcu;
82872 	struct work_struct work;
82873 };
82874 
82875 struct listeners;
82876 
82877 struct netlink_table {
82878 	struct rhashtable hash;
82879 	struct hlist_head mc_list;
82880 	struct listeners *listeners;
82881 	unsigned int flags;
82882 	unsigned int groups;
82883 	struct mutex *cb_mutex;
82884 	struct module *module;
82885 	int (*bind)(struct net *, int);
82886 	void (*unbind)(struct net *, int);
82887 	bool (*compare)(struct net *, struct sock *);
82888 	int registered;
82889 };
82890 
82891 struct listeners {
82892 	struct callback_head rcu;
82893 	long unsigned int masks[0];
82894 };
82895 
82896 struct netlink_tap_net {
82897 	struct list_head netlink_tap_all;
82898 	struct mutex netlink_tap_lock;
82899 };
82900 
82901 struct netlink_compare_arg {
82902 	possible_net_t pnet;
82903 	u32 portid;
82904 };
82905 
82906 struct netlink_broadcast_data {
82907 	struct sock *exclude_sk;
82908 	struct net *net;
82909 	u32 portid;
82910 	u32 group;
82911 	int failure;
82912 	int delivery_failure;
82913 	int congested;
82914 	int delivered;
82915 	gfp_t allocation;
82916 	struct sk_buff *skb;
82917 	struct sk_buff *skb2;
82918 };
82919 
82920 struct netlink_set_err_data {
82921 	struct sock *exclude_sk;
82922 	u32 portid;
82923 	u32 group;
82924 	int code;
82925 };
82926 
82927 struct nl_seq_iter {
82928 	struct seq_net_private p;
82929 	struct rhashtable_iter hti;
82930 	int link;
82931 };
82932 
82933 struct bpf_iter__netlink {
82934 	union {
82935 		struct bpf_iter_meta *meta;
82936 	};
82937 	union {
82938 		struct netlink_sock *sk;
82939 	};
82940 };
82941 
82942 enum {
82943 	CTRL_CMD_UNSPEC = 0,
82944 	CTRL_CMD_NEWFAMILY = 1,
82945 	CTRL_CMD_DELFAMILY = 2,
82946 	CTRL_CMD_GETFAMILY = 3,
82947 	CTRL_CMD_NEWOPS = 4,
82948 	CTRL_CMD_DELOPS = 5,
82949 	CTRL_CMD_GETOPS = 6,
82950 	CTRL_CMD_NEWMCAST_GRP = 7,
82951 	CTRL_CMD_DELMCAST_GRP = 8,
82952 	CTRL_CMD_GETMCAST_GRP = 9,
82953 	CTRL_CMD_GETPOLICY = 10,
82954 	__CTRL_CMD_MAX = 11,
82955 };
82956 
82957 enum {
82958 	CTRL_ATTR_UNSPEC = 0,
82959 	CTRL_ATTR_FAMILY_ID = 1,
82960 	CTRL_ATTR_FAMILY_NAME = 2,
82961 	CTRL_ATTR_VERSION = 3,
82962 	CTRL_ATTR_HDRSIZE = 4,
82963 	CTRL_ATTR_MAXATTR = 5,
82964 	CTRL_ATTR_OPS = 6,
82965 	CTRL_ATTR_MCAST_GROUPS = 7,
82966 	CTRL_ATTR_POLICY = 8,
82967 	CTRL_ATTR_OP_POLICY = 9,
82968 	CTRL_ATTR_OP = 10,
82969 	__CTRL_ATTR_MAX = 11,
82970 };
82971 
82972 enum {
82973 	CTRL_ATTR_OP_UNSPEC = 0,
82974 	CTRL_ATTR_OP_ID = 1,
82975 	CTRL_ATTR_OP_FLAGS = 2,
82976 	__CTRL_ATTR_OP_MAX = 3,
82977 };
82978 
82979 enum {
82980 	CTRL_ATTR_MCAST_GRP_UNSPEC = 0,
82981 	CTRL_ATTR_MCAST_GRP_NAME = 1,
82982 	CTRL_ATTR_MCAST_GRP_ID = 2,
82983 	__CTRL_ATTR_MCAST_GRP_MAX = 3,
82984 };
82985 
82986 enum {
82987 	CTRL_ATTR_POLICY_UNSPEC = 0,
82988 	CTRL_ATTR_POLICY_DO = 1,
82989 	CTRL_ATTR_POLICY_DUMP = 2,
82990 	__CTRL_ATTR_POLICY_DUMP_MAX = 3,
82991 	CTRL_ATTR_POLICY_DUMP_MAX = 2,
82992 };
82993 
82994 struct genl_start_context {
82995 	const struct genl_family *family;
82996 	struct nlmsghdr *nlh;
82997 	struct netlink_ext_ack *extack;
82998 	const struct genl_ops *ops;
82999 	int hdrlen;
83000 };
83001 
83002 struct netlink_policy_dump_state;
83003 
83004 struct ctrl_dump_policy_ctx {
83005 	struct netlink_policy_dump_state *state;
83006 	const struct genl_family *rt;
83007 	unsigned int opidx;
83008 	u32 op;
83009 	u16 fam_id;
83010 	u8 policies: 1;
83011 	u8 single_op: 1;
83012 };
83013 
83014 enum netlink_attribute_type {
83015 	NL_ATTR_TYPE_INVALID = 0,
83016 	NL_ATTR_TYPE_FLAG = 1,
83017 	NL_ATTR_TYPE_U8 = 2,
83018 	NL_ATTR_TYPE_U16 = 3,
83019 	NL_ATTR_TYPE_U32 = 4,
83020 	NL_ATTR_TYPE_U64 = 5,
83021 	NL_ATTR_TYPE_S8 = 6,
83022 	NL_ATTR_TYPE_S16 = 7,
83023 	NL_ATTR_TYPE_S32 = 8,
83024 	NL_ATTR_TYPE_S64 = 9,
83025 	NL_ATTR_TYPE_BINARY = 10,
83026 	NL_ATTR_TYPE_STRING = 11,
83027 	NL_ATTR_TYPE_NUL_STRING = 12,
83028 	NL_ATTR_TYPE_NESTED = 13,
83029 	NL_ATTR_TYPE_NESTED_ARRAY = 14,
83030 	NL_ATTR_TYPE_BITFIELD32 = 15,
83031 };
83032 
83033 enum netlink_policy_type_attr {
83034 	NL_POLICY_TYPE_ATTR_UNSPEC = 0,
83035 	NL_POLICY_TYPE_ATTR_TYPE = 1,
83036 	NL_POLICY_TYPE_ATTR_MIN_VALUE_S = 2,
83037 	NL_POLICY_TYPE_ATTR_MAX_VALUE_S = 3,
83038 	NL_POLICY_TYPE_ATTR_MIN_VALUE_U = 4,
83039 	NL_POLICY_TYPE_ATTR_MAX_VALUE_U = 5,
83040 	NL_POLICY_TYPE_ATTR_MIN_LENGTH = 6,
83041 	NL_POLICY_TYPE_ATTR_MAX_LENGTH = 7,
83042 	NL_POLICY_TYPE_ATTR_POLICY_IDX = 8,
83043 	NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE = 9,
83044 	NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 10,
83045 	NL_POLICY_TYPE_ATTR_PAD = 11,
83046 	NL_POLICY_TYPE_ATTR_MASK = 12,
83047 	__NL_POLICY_TYPE_ATTR_MAX = 13,
83048 	NL_POLICY_TYPE_ATTR_MAX = 12,
83049 };
83050 
83051 struct netlink_policy_dump_state___2 {
83052 	unsigned int policy_idx;
83053 	unsigned int attr_idx;
83054 	unsigned int n_alloc;
83055 	struct {
83056 		const struct nla_policy *policy;
83057 		unsigned int maxtype;
83058 	} policies[0];
83059 };
83060 
83061 struct trace_event_raw_bpf_test_finish {
83062 	struct trace_entry ent;
83063 	int err;
83064 	char __data[0];
83065 };
83066 
83067 struct trace_event_data_offsets_bpf_test_finish {};
83068 
83069 typedef void (*btf_trace_bpf_test_finish)(void *, int *);
83070 
83071 struct bpf_test_timer {
83072 	enum {
83073 		NO_PREEMPT = 0,
83074 		NO_MIGRATE = 1,
83075 	} mode;
83076 	u32 i;
83077 	u64 time_start;
83078 	u64 time_spent;
83079 };
83080 
83081 struct bpf_fentry_test_t {
83082 	struct bpf_fentry_test_t *a;
83083 };
83084 
83085 struct prog_test_ref_kfunc {
83086 	int a;
83087 	int b;
83088 	struct prog_test_ref_kfunc *next;
83089 };
83090 
83091 struct prog_test_pass1 {
83092 	int x0;
83093 	struct {
83094 		int x1;
83095 		struct {
83096 			int x2;
83097 			struct {
83098 				int x3;
83099 			};
83100 		};
83101 	};
83102 };
83103 
83104 struct prog_test_pass2 {
83105 	int len;
83106 	short int arr1[4];
83107 	struct {
83108 		char arr2[4];
83109 		long unsigned int arr3[8];
83110 	} x;
83111 };
83112 
83113 struct prog_test_fail1 {
83114 	void *p;
83115 	int x;
83116 };
83117 
83118 struct prog_test_fail2 {
83119 	int x8;
83120 	struct prog_test_pass1 x;
83121 };
83122 
83123 struct prog_test_fail3 {
83124 	int len;
83125 	char arr1[2];
83126 	char arr2[0];
83127 };
83128 
83129 struct bpf_raw_tp_test_run_info {
83130 	struct bpf_prog *prog;
83131 	void *ctx;
83132 	u32 retval;
83133 };
83134 
83135 typedef int (*dummy_ops_test_ret_fn)(struct bpf_dummy_ops_state *, ...);
83136 
83137 struct bpf_dummy_ops_test_args {
83138 	u64 args[12];
83139 	struct bpf_dummy_ops_state state;
83140 };
83141 
83142 struct ethtool_cmd {
83143 	__u32 cmd;
83144 	__u32 supported;
83145 	__u32 advertising;
83146 	__u16 speed;
83147 	__u8 duplex;
83148 	__u8 port;
83149 	__u8 phy_address;
83150 	__u8 transceiver;
83151 	__u8 autoneg;
83152 	__u8 mdio_support;
83153 	__u32 maxtxpkt;
83154 	__u32 maxrxpkt;
83155 	__u16 speed_hi;
83156 	__u8 eth_tp_mdix;
83157 	__u8 eth_tp_mdix_ctrl;
83158 	__u32 lp_advertising;
83159 	__u32 reserved[2];
83160 };
83161 
83162 struct ethtool_value {
83163 	__u32 cmd;
83164 	__u32 data;
83165 };
83166 
83167 enum tunable_id {
83168 	ETHTOOL_ID_UNSPEC = 0,
83169 	ETHTOOL_RX_COPYBREAK = 1,
83170 	ETHTOOL_TX_COPYBREAK = 2,
83171 	ETHTOOL_PFC_PREVENTION_TOUT = 3,
83172 	ETHTOOL_TX_COPYBREAK_BUF_SIZE = 4,
83173 	__ETHTOOL_TUNABLE_COUNT = 5,
83174 };
83175 
83176 enum tunable_type_id {
83177 	ETHTOOL_TUNABLE_UNSPEC = 0,
83178 	ETHTOOL_TUNABLE_U8 = 1,
83179 	ETHTOOL_TUNABLE_U16 = 2,
83180 	ETHTOOL_TUNABLE_U32 = 3,
83181 	ETHTOOL_TUNABLE_U64 = 4,
83182 	ETHTOOL_TUNABLE_STRING = 5,
83183 	ETHTOOL_TUNABLE_S8 = 6,
83184 	ETHTOOL_TUNABLE_S16 = 7,
83185 	ETHTOOL_TUNABLE_S32 = 8,
83186 	ETHTOOL_TUNABLE_S64 = 9,
83187 };
83188 
83189 enum phy_tunable_id {
83190 	ETHTOOL_PHY_ID_UNSPEC = 0,
83191 	ETHTOOL_PHY_DOWNSHIFT = 1,
83192 	ETHTOOL_PHY_FAST_LINK_DOWN = 2,
83193 	ETHTOOL_PHY_EDPD = 3,
83194 	__ETHTOOL_PHY_TUNABLE_COUNT = 4,
83195 };
83196 
83197 struct ethtool_gstrings {
83198 	__u32 cmd;
83199 	__u32 string_set;
83200 	__u32 len;
83201 	__u8 data[0];
83202 };
83203 
83204 struct ethtool_sset_info {
83205 	__u32 cmd;
83206 	__u32 reserved;
83207 	__u64 sset_mask;
83208 	__u32 data[0];
83209 };
83210 
83211 struct ethtool_perm_addr {
83212 	__u32 cmd;
83213 	__u32 size;
83214 	__u8 data[0];
83215 };
83216 
83217 enum ethtool_flags {
83218 	ETH_FLAG_TXVLAN = 128,
83219 	ETH_FLAG_RXVLAN = 256,
83220 	ETH_FLAG_LRO = 32768,
83221 	ETH_FLAG_NTUPLE = 134217728,
83222 	ETH_FLAG_RXHASH = 268435456,
83223 };
83224 
83225 struct ethtool_rxfh {
83226 	__u32 cmd;
83227 	__u32 rss_context;
83228 	__u32 indir_size;
83229 	__u32 key_size;
83230 	__u8 hfunc;
83231 	__u8 rsvd8[3];
83232 	__u32 rsvd32;
83233 	__u32 rss_config[0];
83234 };
83235 
83236 struct ethtool_get_features_block {
83237 	__u32 available;
83238 	__u32 requested;
83239 	__u32 active;
83240 	__u32 never_changed;
83241 };
83242 
83243 struct ethtool_gfeatures {
83244 	__u32 cmd;
83245 	__u32 size;
83246 	struct ethtool_get_features_block features[0];
83247 };
83248 
83249 struct ethtool_set_features_block {
83250 	__u32 valid;
83251 	__u32 requested;
83252 };
83253 
83254 struct ethtool_sfeatures {
83255 	__u32 cmd;
83256 	__u32 size;
83257 	struct ethtool_set_features_block features[0];
83258 };
83259 
83260 enum ethtool_sfeatures_retval_bits {
83261 	ETHTOOL_F_UNSUPPORTED__BIT = 0,
83262 	ETHTOOL_F_WISH__BIT = 1,
83263 	ETHTOOL_F_COMPAT__BIT = 2,
83264 };
83265 
83266 struct ethtool_per_queue_op {
83267 	__u32 cmd;
83268 	__u32 sub_command;
83269 	__u32 queue_mask[128];
83270 	char data[0];
83271 };
83272 
83273 enum {
83274 	ETH_RSS_HASH_TOP_BIT = 0,
83275 	ETH_RSS_HASH_XOR_BIT = 1,
83276 	ETH_RSS_HASH_CRC32_BIT = 2,
83277 	ETH_RSS_HASH_FUNCS_COUNT = 3,
83278 };
83279 
83280 struct ethtool_rx_flow_rule {
83281 	struct flow_rule *rule;
83282 	long unsigned int priv[0];
83283 };
83284 
83285 struct ethtool_rx_flow_spec_input {
83286 	const struct ethtool_rx_flow_spec *fs;
83287 	u32 rss_ctx;
83288 };
83289 
83290 struct ethtool_phy_ops {
83291 	int (*get_sset_count)(struct phy_device *);
83292 	int (*get_strings)(struct phy_device *, u8 *);
83293 	int (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *);
83294 	int (*start_cable_test)(struct phy_device *, struct netlink_ext_ack *);
83295 	int (*start_cable_test_tdr)(struct phy_device *, struct netlink_ext_ack *, const struct phy_tdr_config *);
83296 };
83297 
83298 enum {
83299 	ETHTOOL_MSG_KERNEL_NONE = 0,
83300 	ETHTOOL_MSG_STRSET_GET_REPLY = 1,
83301 	ETHTOOL_MSG_LINKINFO_GET_REPLY = 2,
83302 	ETHTOOL_MSG_LINKINFO_NTF = 3,
83303 	ETHTOOL_MSG_LINKMODES_GET_REPLY = 4,
83304 	ETHTOOL_MSG_LINKMODES_NTF = 5,
83305 	ETHTOOL_MSG_LINKSTATE_GET_REPLY = 6,
83306 	ETHTOOL_MSG_DEBUG_GET_REPLY = 7,
83307 	ETHTOOL_MSG_DEBUG_NTF = 8,
83308 	ETHTOOL_MSG_WOL_GET_REPLY = 9,
83309 	ETHTOOL_MSG_WOL_NTF = 10,
83310 	ETHTOOL_MSG_FEATURES_GET_REPLY = 11,
83311 	ETHTOOL_MSG_FEATURES_SET_REPLY = 12,
83312 	ETHTOOL_MSG_FEATURES_NTF = 13,
83313 	ETHTOOL_MSG_PRIVFLAGS_GET_REPLY = 14,
83314 	ETHTOOL_MSG_PRIVFLAGS_NTF = 15,
83315 	ETHTOOL_MSG_RINGS_GET_REPLY = 16,
83316 	ETHTOOL_MSG_RINGS_NTF = 17,
83317 	ETHTOOL_MSG_CHANNELS_GET_REPLY = 18,
83318 	ETHTOOL_MSG_CHANNELS_NTF = 19,
83319 	ETHTOOL_MSG_COALESCE_GET_REPLY = 20,
83320 	ETHTOOL_MSG_COALESCE_NTF = 21,
83321 	ETHTOOL_MSG_PAUSE_GET_REPLY = 22,
83322 	ETHTOOL_MSG_PAUSE_NTF = 23,
83323 	ETHTOOL_MSG_EEE_GET_REPLY = 24,
83324 	ETHTOOL_MSG_EEE_NTF = 25,
83325 	ETHTOOL_MSG_TSINFO_GET_REPLY = 26,
83326 	ETHTOOL_MSG_CABLE_TEST_NTF = 27,
83327 	ETHTOOL_MSG_CABLE_TEST_TDR_NTF = 28,
83328 	ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY = 29,
83329 	ETHTOOL_MSG_FEC_GET_REPLY = 30,
83330 	ETHTOOL_MSG_FEC_NTF = 31,
83331 	ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY = 32,
83332 	ETHTOOL_MSG_STATS_GET_REPLY = 33,
83333 	ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY = 34,
83334 	ETHTOOL_MSG_MODULE_GET_REPLY = 35,
83335 	ETHTOOL_MSG_MODULE_NTF = 36,
83336 	__ETHTOOL_MSG_KERNEL_CNT = 37,
83337 	ETHTOOL_MSG_KERNEL_MAX = 36,
83338 };
83339 
83340 enum {
83341 	ETHTOOL_A_STATS_UNSPEC = 0,
83342 	ETHTOOL_A_STATS_PAD = 1,
83343 	ETHTOOL_A_STATS_HEADER = 2,
83344 	ETHTOOL_A_STATS_GROUPS = 3,
83345 	ETHTOOL_A_STATS_GRP = 4,
83346 	__ETHTOOL_A_STATS_CNT = 5,
83347 	ETHTOOL_A_STATS_MAX = 4,
83348 };
83349 
83350 struct link_mode_info {
83351 	int speed;
83352 	u8 lanes;
83353 	u8 duplex;
83354 };
83355 
83356 struct ethtool_devlink_compat {
83357 	struct devlink *devlink;
83358 	union {
83359 		struct ethtool_flash efl;
83360 		struct ethtool_drvinfo info;
83361 	};
83362 };
83363 
83364 struct ethtool_link_usettings {
83365 	struct ethtool_link_settings base;
83366 	struct {
83367 		__u32 supported[3];
83368 		__u32 advertising[3];
83369 		__u32 lp_advertising[3];
83370 	} link_modes;
83371 };
83372 
83373 struct ethtool_rx_flow_key {
83374 	struct flow_dissector_key_basic basic;
83375 	union {
83376 		struct flow_dissector_key_ipv4_addrs ipv4;
83377 		struct flow_dissector_key_ipv6_addrs ipv6;
83378 	};
83379 	struct flow_dissector_key_ports tp;
83380 	struct flow_dissector_key_ip ip;
83381 	struct flow_dissector_key_vlan vlan;
83382 	struct flow_dissector_key_eth_addrs eth_addrs;
83383 	long: 48;
83384 };
83385 
83386 struct ethtool_rx_flow_match {
83387 	struct flow_dissector dissector;
83388 	int: 32;
83389 	struct ethtool_rx_flow_key key;
83390 	struct ethtool_rx_flow_key mask;
83391 };
83392 
83393 enum {
83394 	ETHTOOL_UDP_TUNNEL_TYPE_VXLAN = 0,
83395 	ETHTOOL_UDP_TUNNEL_TYPE_GENEVE = 1,
83396 	ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE = 2,
83397 	__ETHTOOL_UDP_TUNNEL_TYPE_CNT = 3,
83398 };
83399 
83400 enum {
83401 	ETHTOOL_MSG_USER_NONE = 0,
83402 	ETHTOOL_MSG_STRSET_GET = 1,
83403 	ETHTOOL_MSG_LINKINFO_GET = 2,
83404 	ETHTOOL_MSG_LINKINFO_SET = 3,
83405 	ETHTOOL_MSG_LINKMODES_GET = 4,
83406 	ETHTOOL_MSG_LINKMODES_SET = 5,
83407 	ETHTOOL_MSG_LINKSTATE_GET = 6,
83408 	ETHTOOL_MSG_DEBUG_GET = 7,
83409 	ETHTOOL_MSG_DEBUG_SET = 8,
83410 	ETHTOOL_MSG_WOL_GET = 9,
83411 	ETHTOOL_MSG_WOL_SET = 10,
83412 	ETHTOOL_MSG_FEATURES_GET = 11,
83413 	ETHTOOL_MSG_FEATURES_SET = 12,
83414 	ETHTOOL_MSG_PRIVFLAGS_GET = 13,
83415 	ETHTOOL_MSG_PRIVFLAGS_SET = 14,
83416 	ETHTOOL_MSG_RINGS_GET = 15,
83417 	ETHTOOL_MSG_RINGS_SET = 16,
83418 	ETHTOOL_MSG_CHANNELS_GET = 17,
83419 	ETHTOOL_MSG_CHANNELS_SET = 18,
83420 	ETHTOOL_MSG_COALESCE_GET = 19,
83421 	ETHTOOL_MSG_COALESCE_SET = 20,
83422 	ETHTOOL_MSG_PAUSE_GET = 21,
83423 	ETHTOOL_MSG_PAUSE_SET = 22,
83424 	ETHTOOL_MSG_EEE_GET = 23,
83425 	ETHTOOL_MSG_EEE_SET = 24,
83426 	ETHTOOL_MSG_TSINFO_GET = 25,
83427 	ETHTOOL_MSG_CABLE_TEST_ACT = 26,
83428 	ETHTOOL_MSG_CABLE_TEST_TDR_ACT = 27,
83429 	ETHTOOL_MSG_TUNNEL_INFO_GET = 28,
83430 	ETHTOOL_MSG_FEC_GET = 29,
83431 	ETHTOOL_MSG_FEC_SET = 30,
83432 	ETHTOOL_MSG_MODULE_EEPROM_GET = 31,
83433 	ETHTOOL_MSG_STATS_GET = 32,
83434 	ETHTOOL_MSG_PHC_VCLOCKS_GET = 33,
83435 	ETHTOOL_MSG_MODULE_GET = 34,
83436 	ETHTOOL_MSG_MODULE_SET = 35,
83437 	__ETHTOOL_MSG_USER_CNT = 36,
83438 	ETHTOOL_MSG_USER_MAX = 35,
83439 };
83440 
83441 enum {
83442 	ETHTOOL_A_HEADER_UNSPEC = 0,
83443 	ETHTOOL_A_HEADER_DEV_INDEX = 1,
83444 	ETHTOOL_A_HEADER_DEV_NAME = 2,
83445 	ETHTOOL_A_HEADER_FLAGS = 3,
83446 	__ETHTOOL_A_HEADER_CNT = 4,
83447 	ETHTOOL_A_HEADER_MAX = 3,
83448 };
83449 
83450 enum {
83451 	ETHTOOL_A_STRSET_UNSPEC = 0,
83452 	ETHTOOL_A_STRSET_HEADER = 1,
83453 	ETHTOOL_A_STRSET_STRINGSETS = 2,
83454 	ETHTOOL_A_STRSET_COUNTS_ONLY = 3,
83455 	__ETHTOOL_A_STRSET_CNT = 4,
83456 	ETHTOOL_A_STRSET_MAX = 3,
83457 };
83458 
83459 enum {
83460 	ETHTOOL_A_LINKINFO_UNSPEC = 0,
83461 	ETHTOOL_A_LINKINFO_HEADER = 1,
83462 	ETHTOOL_A_LINKINFO_PORT = 2,
83463 	ETHTOOL_A_LINKINFO_PHYADDR = 3,
83464 	ETHTOOL_A_LINKINFO_TP_MDIX = 4,
83465 	ETHTOOL_A_LINKINFO_TP_MDIX_CTRL = 5,
83466 	ETHTOOL_A_LINKINFO_TRANSCEIVER = 6,
83467 	__ETHTOOL_A_LINKINFO_CNT = 7,
83468 	ETHTOOL_A_LINKINFO_MAX = 6,
83469 };
83470 
83471 enum {
83472 	ETHTOOL_A_LINKMODES_UNSPEC = 0,
83473 	ETHTOOL_A_LINKMODES_HEADER = 1,
83474 	ETHTOOL_A_LINKMODES_AUTONEG = 2,
83475 	ETHTOOL_A_LINKMODES_OURS = 3,
83476 	ETHTOOL_A_LINKMODES_PEER = 4,
83477 	ETHTOOL_A_LINKMODES_SPEED = 5,
83478 	ETHTOOL_A_LINKMODES_DUPLEX = 6,
83479 	ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG = 7,
83480 	ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE = 8,
83481 	ETHTOOL_A_LINKMODES_LANES = 9,
83482 	__ETHTOOL_A_LINKMODES_CNT = 10,
83483 	ETHTOOL_A_LINKMODES_MAX = 9,
83484 };
83485 
83486 enum {
83487 	ETHTOOL_A_LINKSTATE_UNSPEC = 0,
83488 	ETHTOOL_A_LINKSTATE_HEADER = 1,
83489 	ETHTOOL_A_LINKSTATE_LINK = 2,
83490 	ETHTOOL_A_LINKSTATE_SQI = 3,
83491 	ETHTOOL_A_LINKSTATE_SQI_MAX = 4,
83492 	ETHTOOL_A_LINKSTATE_EXT_STATE = 5,
83493 	ETHTOOL_A_LINKSTATE_EXT_SUBSTATE = 6,
83494 	__ETHTOOL_A_LINKSTATE_CNT = 7,
83495 	ETHTOOL_A_LINKSTATE_MAX = 6,
83496 };
83497 
83498 enum {
83499 	ETHTOOL_A_DEBUG_UNSPEC = 0,
83500 	ETHTOOL_A_DEBUG_HEADER = 1,
83501 	ETHTOOL_A_DEBUG_MSGMASK = 2,
83502 	__ETHTOOL_A_DEBUG_CNT = 3,
83503 	ETHTOOL_A_DEBUG_MAX = 2,
83504 };
83505 
83506 enum {
83507 	ETHTOOL_A_WOL_UNSPEC = 0,
83508 	ETHTOOL_A_WOL_HEADER = 1,
83509 	ETHTOOL_A_WOL_MODES = 2,
83510 	ETHTOOL_A_WOL_SOPASS = 3,
83511 	__ETHTOOL_A_WOL_CNT = 4,
83512 	ETHTOOL_A_WOL_MAX = 3,
83513 };
83514 
83515 enum {
83516 	ETHTOOL_A_FEATURES_UNSPEC = 0,
83517 	ETHTOOL_A_FEATURES_HEADER = 1,
83518 	ETHTOOL_A_FEATURES_HW = 2,
83519 	ETHTOOL_A_FEATURES_WANTED = 3,
83520 	ETHTOOL_A_FEATURES_ACTIVE = 4,
83521 	ETHTOOL_A_FEATURES_NOCHANGE = 5,
83522 	__ETHTOOL_A_FEATURES_CNT = 6,
83523 	ETHTOOL_A_FEATURES_MAX = 5,
83524 };
83525 
83526 enum {
83527 	ETHTOOL_A_PRIVFLAGS_UNSPEC = 0,
83528 	ETHTOOL_A_PRIVFLAGS_HEADER = 1,
83529 	ETHTOOL_A_PRIVFLAGS_FLAGS = 2,
83530 	__ETHTOOL_A_PRIVFLAGS_CNT = 3,
83531 	ETHTOOL_A_PRIVFLAGS_MAX = 2,
83532 };
83533 
83534 enum {
83535 	ETHTOOL_A_RINGS_UNSPEC = 0,
83536 	ETHTOOL_A_RINGS_HEADER = 1,
83537 	ETHTOOL_A_RINGS_RX_MAX = 2,
83538 	ETHTOOL_A_RINGS_RX_MINI_MAX = 3,
83539 	ETHTOOL_A_RINGS_RX_JUMBO_MAX = 4,
83540 	ETHTOOL_A_RINGS_TX_MAX = 5,
83541 	ETHTOOL_A_RINGS_RX = 6,
83542 	ETHTOOL_A_RINGS_RX_MINI = 7,
83543 	ETHTOOL_A_RINGS_RX_JUMBO = 8,
83544 	ETHTOOL_A_RINGS_TX = 9,
83545 	ETHTOOL_A_RINGS_RX_BUF_LEN = 10,
83546 	__ETHTOOL_A_RINGS_CNT = 11,
83547 	ETHTOOL_A_RINGS_MAX = 10,
83548 };
83549 
83550 enum {
83551 	ETHTOOL_A_CHANNELS_UNSPEC = 0,
83552 	ETHTOOL_A_CHANNELS_HEADER = 1,
83553 	ETHTOOL_A_CHANNELS_RX_MAX = 2,
83554 	ETHTOOL_A_CHANNELS_TX_MAX = 3,
83555 	ETHTOOL_A_CHANNELS_OTHER_MAX = 4,
83556 	ETHTOOL_A_CHANNELS_COMBINED_MAX = 5,
83557 	ETHTOOL_A_CHANNELS_RX_COUNT = 6,
83558 	ETHTOOL_A_CHANNELS_TX_COUNT = 7,
83559 	ETHTOOL_A_CHANNELS_OTHER_COUNT = 8,
83560 	ETHTOOL_A_CHANNELS_COMBINED_COUNT = 9,
83561 	__ETHTOOL_A_CHANNELS_CNT = 10,
83562 	ETHTOOL_A_CHANNELS_MAX = 9,
83563 };
83564 
83565 enum {
83566 	ETHTOOL_A_COALESCE_UNSPEC = 0,
83567 	ETHTOOL_A_COALESCE_HEADER = 1,
83568 	ETHTOOL_A_COALESCE_RX_USECS = 2,
83569 	ETHTOOL_A_COALESCE_RX_MAX_FRAMES = 3,
83570 	ETHTOOL_A_COALESCE_RX_USECS_IRQ = 4,
83571 	ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ = 5,
83572 	ETHTOOL_A_COALESCE_TX_USECS = 6,
83573 	ETHTOOL_A_COALESCE_TX_MAX_FRAMES = 7,
83574 	ETHTOOL_A_COALESCE_TX_USECS_IRQ = 8,
83575 	ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ = 9,
83576 	ETHTOOL_A_COALESCE_STATS_BLOCK_USECS = 10,
83577 	ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX = 11,
83578 	ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX = 12,
83579 	ETHTOOL_A_COALESCE_PKT_RATE_LOW = 13,
83580 	ETHTOOL_A_COALESCE_RX_USECS_LOW = 14,
83581 	ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW = 15,
83582 	ETHTOOL_A_COALESCE_TX_USECS_LOW = 16,
83583 	ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW = 17,
83584 	ETHTOOL_A_COALESCE_PKT_RATE_HIGH = 18,
83585 	ETHTOOL_A_COALESCE_RX_USECS_HIGH = 19,
83586 	ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH = 20,
83587 	ETHTOOL_A_COALESCE_TX_USECS_HIGH = 21,
83588 	ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH = 22,
83589 	ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL = 23,
83590 	ETHTOOL_A_COALESCE_USE_CQE_MODE_TX = 24,
83591 	ETHTOOL_A_COALESCE_USE_CQE_MODE_RX = 25,
83592 	__ETHTOOL_A_COALESCE_CNT = 26,
83593 	ETHTOOL_A_COALESCE_MAX = 25,
83594 };
83595 
83596 enum {
83597 	ETHTOOL_A_PAUSE_UNSPEC = 0,
83598 	ETHTOOL_A_PAUSE_HEADER = 1,
83599 	ETHTOOL_A_PAUSE_AUTONEG = 2,
83600 	ETHTOOL_A_PAUSE_RX = 3,
83601 	ETHTOOL_A_PAUSE_TX = 4,
83602 	ETHTOOL_A_PAUSE_STATS = 5,
83603 	__ETHTOOL_A_PAUSE_CNT = 6,
83604 	ETHTOOL_A_PAUSE_MAX = 5,
83605 };
83606 
83607 enum {
83608 	ETHTOOL_A_EEE_UNSPEC = 0,
83609 	ETHTOOL_A_EEE_HEADER = 1,
83610 	ETHTOOL_A_EEE_MODES_OURS = 2,
83611 	ETHTOOL_A_EEE_MODES_PEER = 3,
83612 	ETHTOOL_A_EEE_ACTIVE = 4,
83613 	ETHTOOL_A_EEE_ENABLED = 5,
83614 	ETHTOOL_A_EEE_TX_LPI_ENABLED = 6,
83615 	ETHTOOL_A_EEE_TX_LPI_TIMER = 7,
83616 	__ETHTOOL_A_EEE_CNT = 8,
83617 	ETHTOOL_A_EEE_MAX = 7,
83618 };
83619 
83620 enum {
83621 	ETHTOOL_A_TSINFO_UNSPEC = 0,
83622 	ETHTOOL_A_TSINFO_HEADER = 1,
83623 	ETHTOOL_A_TSINFO_TIMESTAMPING = 2,
83624 	ETHTOOL_A_TSINFO_TX_TYPES = 3,
83625 	ETHTOOL_A_TSINFO_RX_FILTERS = 4,
83626 	ETHTOOL_A_TSINFO_PHC_INDEX = 5,
83627 	__ETHTOOL_A_TSINFO_CNT = 6,
83628 	ETHTOOL_A_TSINFO_MAX = 5,
83629 };
83630 
83631 enum {
83632 	ETHTOOL_A_PHC_VCLOCKS_UNSPEC = 0,
83633 	ETHTOOL_A_PHC_VCLOCKS_HEADER = 1,
83634 	ETHTOOL_A_PHC_VCLOCKS_NUM = 2,
83635 	ETHTOOL_A_PHC_VCLOCKS_INDEX = 3,
83636 	__ETHTOOL_A_PHC_VCLOCKS_CNT = 4,
83637 	ETHTOOL_A_PHC_VCLOCKS_MAX = 3,
83638 };
83639 
83640 enum {
83641 	ETHTOOL_A_CABLE_TEST_UNSPEC = 0,
83642 	ETHTOOL_A_CABLE_TEST_HEADER = 1,
83643 	__ETHTOOL_A_CABLE_TEST_CNT = 2,
83644 	ETHTOOL_A_CABLE_TEST_MAX = 1,
83645 };
83646 
83647 enum {
83648 	ETHTOOL_A_CABLE_TEST_TDR_UNSPEC = 0,
83649 	ETHTOOL_A_CABLE_TEST_TDR_HEADER = 1,
83650 	ETHTOOL_A_CABLE_TEST_TDR_CFG = 2,
83651 	__ETHTOOL_A_CABLE_TEST_TDR_CNT = 3,
83652 	ETHTOOL_A_CABLE_TEST_TDR_MAX = 2,
83653 };
83654 
83655 enum {
83656 	ETHTOOL_A_TUNNEL_INFO_UNSPEC = 0,
83657 	ETHTOOL_A_TUNNEL_INFO_HEADER = 1,
83658 	ETHTOOL_A_TUNNEL_INFO_UDP_PORTS = 2,
83659 	__ETHTOOL_A_TUNNEL_INFO_CNT = 3,
83660 	ETHTOOL_A_TUNNEL_INFO_MAX = 2,
83661 };
83662 
83663 enum {
83664 	ETHTOOL_A_FEC_UNSPEC = 0,
83665 	ETHTOOL_A_FEC_HEADER = 1,
83666 	ETHTOOL_A_FEC_MODES = 2,
83667 	ETHTOOL_A_FEC_AUTO = 3,
83668 	ETHTOOL_A_FEC_ACTIVE = 4,
83669 	ETHTOOL_A_FEC_STATS = 5,
83670 	__ETHTOOL_A_FEC_CNT = 6,
83671 	ETHTOOL_A_FEC_MAX = 5,
83672 };
83673 
83674 enum {
83675 	ETHTOOL_A_MODULE_EEPROM_UNSPEC = 0,
83676 	ETHTOOL_A_MODULE_EEPROM_HEADER = 1,
83677 	ETHTOOL_A_MODULE_EEPROM_OFFSET = 2,
83678 	ETHTOOL_A_MODULE_EEPROM_LENGTH = 3,
83679 	ETHTOOL_A_MODULE_EEPROM_PAGE = 4,
83680 	ETHTOOL_A_MODULE_EEPROM_BANK = 5,
83681 	ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS = 6,
83682 	ETHTOOL_A_MODULE_EEPROM_DATA = 7,
83683 	__ETHTOOL_A_MODULE_EEPROM_CNT = 8,
83684 	ETHTOOL_A_MODULE_EEPROM_MAX = 7,
83685 };
83686 
83687 enum {
83688 	ETHTOOL_STATS_ETH_PHY = 0,
83689 	ETHTOOL_STATS_ETH_MAC = 1,
83690 	ETHTOOL_STATS_ETH_CTRL = 2,
83691 	ETHTOOL_STATS_RMON = 3,
83692 	__ETHTOOL_STATS_CNT = 4,
83693 };
83694 
83695 enum {
83696 	ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR = 0,
83697 	__ETHTOOL_A_STATS_ETH_PHY_CNT = 1,
83698 	ETHTOOL_A_STATS_ETH_PHY_MAX = 0,
83699 };
83700 
83701 enum {
83702 	ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT = 0,
83703 	ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL = 1,
83704 	ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL = 2,
83705 	ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT = 3,
83706 	ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR = 4,
83707 	ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR = 5,
83708 	ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES = 6,
83709 	ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER = 7,
83710 	ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL = 8,
83711 	ETHTOOL_A_STATS_ETH_MAC_11_XS_COL = 9,
83712 	ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR = 10,
83713 	ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR = 11,
83714 	ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES = 12,
83715 	ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR = 13,
83716 	ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST = 14,
83717 	ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST = 15,
83718 	ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER = 16,
83719 	ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST = 17,
83720 	ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST = 18,
83721 	ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR = 19,
83722 	ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN = 20,
83723 	ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR = 21,
83724 	__ETHTOOL_A_STATS_ETH_MAC_CNT = 22,
83725 	ETHTOOL_A_STATS_ETH_MAC_MAX = 21,
83726 };
83727 
83728 enum {
83729 	ETHTOOL_A_STATS_ETH_CTRL_3_TX = 0,
83730 	ETHTOOL_A_STATS_ETH_CTRL_4_RX = 1,
83731 	ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP = 2,
83732 	__ETHTOOL_A_STATS_ETH_CTRL_CNT = 3,
83733 	ETHTOOL_A_STATS_ETH_CTRL_MAX = 2,
83734 };
83735 
83736 enum {
83737 	ETHTOOL_A_STATS_RMON_UNDERSIZE = 0,
83738 	ETHTOOL_A_STATS_RMON_OVERSIZE = 1,
83739 	ETHTOOL_A_STATS_RMON_FRAG = 2,
83740 	ETHTOOL_A_STATS_RMON_JABBER = 3,
83741 	__ETHTOOL_A_STATS_RMON_CNT = 4,
83742 	ETHTOOL_A_STATS_RMON_MAX = 3,
83743 };
83744 
83745 enum {
83746 	ETHTOOL_A_MODULE_UNSPEC = 0,
83747 	ETHTOOL_A_MODULE_HEADER = 1,
83748 	ETHTOOL_A_MODULE_POWER_MODE_POLICY = 2,
83749 	ETHTOOL_A_MODULE_POWER_MODE = 3,
83750 	__ETHTOOL_A_MODULE_CNT = 4,
83751 	ETHTOOL_A_MODULE_MAX = 3,
83752 };
83753 
83754 enum ethtool_multicast_groups {
83755 	ETHNL_MCGRP_MONITOR = 0,
83756 };
83757 
83758 struct ethnl_req_info {
83759 	struct net_device *dev;
83760 	netdevice_tracker dev_tracker;
83761 	u32 flags;
83762 };
83763 
83764 struct ethnl_reply_data {
83765 	struct net_device *dev;
83766 };
83767 
83768 struct ethnl_request_ops {
83769 	u8 request_cmd;
83770 	u8 reply_cmd;
83771 	u16 hdr_attr;
83772 	unsigned int req_info_size;
83773 	unsigned int reply_data_size;
83774 	bool allow_nodev_do;
83775 	int (*parse_request)(struct ethnl_req_info *, struct nlattr **, struct netlink_ext_ack *);
83776 	int (*prepare_data)(const struct ethnl_req_info *, struct ethnl_reply_data *, struct genl_info *);
83777 	int (*reply_size)(const struct ethnl_req_info *, const struct ethnl_reply_data *);
83778 	int (*fill_reply)(struct sk_buff *, const struct ethnl_req_info *, const struct ethnl_reply_data *);
83779 	void (*cleanup_data)(struct ethnl_reply_data *);
83780 };
83781 
83782 struct ethnl_dump_ctx {
83783 	const struct ethnl_request_ops *ops;
83784 	struct ethnl_req_info *req_info;
83785 	struct ethnl_reply_data *reply_data;
83786 	int pos_hash;
83787 	int pos_idx;
83788 };
83789 
83790 typedef void (*ethnl_notify_handler_t)(struct net_device *, unsigned int, const void *);
83791 
83792 enum {
83793 	ETHTOOL_A_BITSET_BIT_UNSPEC = 0,
83794 	ETHTOOL_A_BITSET_BIT_INDEX = 1,
83795 	ETHTOOL_A_BITSET_BIT_NAME = 2,
83796 	ETHTOOL_A_BITSET_BIT_VALUE = 3,
83797 	__ETHTOOL_A_BITSET_BIT_CNT = 4,
83798 	ETHTOOL_A_BITSET_BIT_MAX = 3,
83799 };
83800 
83801 enum {
83802 	ETHTOOL_A_BITSET_BITS_UNSPEC = 0,
83803 	ETHTOOL_A_BITSET_BITS_BIT = 1,
83804 	__ETHTOOL_A_BITSET_BITS_CNT = 2,
83805 	ETHTOOL_A_BITSET_BITS_MAX = 1,
83806 };
83807 
83808 enum {
83809 	ETHTOOL_A_BITSET_UNSPEC = 0,
83810 	ETHTOOL_A_BITSET_NOMASK = 1,
83811 	ETHTOOL_A_BITSET_SIZE = 2,
83812 	ETHTOOL_A_BITSET_BITS = 3,
83813 	ETHTOOL_A_BITSET_VALUE = 4,
83814 	ETHTOOL_A_BITSET_MASK = 5,
83815 	__ETHTOOL_A_BITSET_CNT = 6,
83816 	ETHTOOL_A_BITSET_MAX = 5,
83817 };
83818 
83819 typedef const char (* const ethnl_string_array_t)[32];
83820 
83821 enum {
83822 	ETHTOOL_A_STRING_UNSPEC = 0,
83823 	ETHTOOL_A_STRING_INDEX = 1,
83824 	ETHTOOL_A_STRING_VALUE = 2,
83825 	__ETHTOOL_A_STRING_CNT = 3,
83826 	ETHTOOL_A_STRING_MAX = 2,
83827 };
83828 
83829 enum {
83830 	ETHTOOL_A_STRINGS_UNSPEC = 0,
83831 	ETHTOOL_A_STRINGS_STRING = 1,
83832 	__ETHTOOL_A_STRINGS_CNT = 2,
83833 	ETHTOOL_A_STRINGS_MAX = 1,
83834 };
83835 
83836 enum {
83837 	ETHTOOL_A_STRINGSET_UNSPEC = 0,
83838 	ETHTOOL_A_STRINGSET_ID = 1,
83839 	ETHTOOL_A_STRINGSET_COUNT = 2,
83840 	ETHTOOL_A_STRINGSET_STRINGS = 3,
83841 	__ETHTOOL_A_STRINGSET_CNT = 4,
83842 	ETHTOOL_A_STRINGSET_MAX = 3,
83843 };
83844 
83845 enum {
83846 	ETHTOOL_A_STRINGSETS_UNSPEC = 0,
83847 	ETHTOOL_A_STRINGSETS_STRINGSET = 1,
83848 	__ETHTOOL_A_STRINGSETS_CNT = 2,
83849 	ETHTOOL_A_STRINGSETS_MAX = 1,
83850 };
83851 
83852 struct strset_info {
83853 	bool per_dev;
83854 	bool free_strings;
83855 	unsigned int count;
83856 	const char (*strings)[32];
83857 };
83858 
83859 struct strset_req_info {
83860 	struct ethnl_req_info base;
83861 	u32 req_ids;
83862 	bool counts_only;
83863 };
83864 
83865 struct strset_reply_data {
83866 	struct ethnl_reply_data base;
83867 	struct strset_info sets[21];
83868 };
83869 
83870 struct linkinfo_reply_data {
83871 	struct ethnl_reply_data base;
83872 	struct ethtool_link_ksettings ksettings;
83873 	struct ethtool_link_settings *lsettings;
83874 };
83875 
83876 struct linkmodes_reply_data {
83877 	struct ethnl_reply_data base;
83878 	struct ethtool_link_ksettings ksettings;
83879 	struct ethtool_link_settings *lsettings;
83880 	bool peer_empty;
83881 };
83882 
83883 struct linkstate_reply_data {
83884 	struct ethnl_reply_data base;
83885 	int link;
83886 	int sqi;
83887 	int sqi_max;
83888 	bool link_ext_state_provided;
83889 	struct ethtool_link_ext_state_info ethtool_link_ext_state_info;
83890 };
83891 
83892 struct debug_reply_data {
83893 	struct ethnl_reply_data base;
83894 	u32 msg_mask;
83895 };
83896 
83897 struct wol_reply_data {
83898 	struct ethnl_reply_data base;
83899 	struct ethtool_wolinfo wol;
83900 	bool show_sopass;
83901 };
83902 
83903 struct features_reply_data {
83904 	struct ethnl_reply_data base;
83905 	u32 hw[2];
83906 	u32 wanted[2];
83907 	u32 active[2];
83908 	u32 nochange[2];
83909 	u32 all[2];
83910 };
83911 
83912 struct privflags_reply_data {
83913 	struct ethnl_reply_data base;
83914 	const char (*priv_flag_names)[32];
83915 	unsigned int n_priv_flags;
83916 	u32 priv_flags;
83917 };
83918 
83919 enum ethtool_supported_ring_param {
83920 	ETHTOOL_RING_USE_RX_BUF_LEN = 1,
83921 };
83922 
83923 struct rings_reply_data {
83924 	struct ethnl_reply_data base;
83925 	struct ethtool_ringparam ringparam;
83926 	struct kernel_ethtool_ringparam kernel_ringparam;
83927 };
83928 
83929 struct channels_reply_data {
83930 	struct ethnl_reply_data base;
83931 	struct ethtool_channels channels;
83932 };
83933 
83934 struct coalesce_reply_data {
83935 	struct ethnl_reply_data base;
83936 	struct ethtool_coalesce coalesce;
83937 	struct kernel_ethtool_coalesce kernel_coalesce;
83938 	u32 supported_params;
83939 };
83940 
83941 enum {
83942 	ETHTOOL_A_PAUSE_STAT_UNSPEC = 0,
83943 	ETHTOOL_A_PAUSE_STAT_PAD = 1,
83944 	ETHTOOL_A_PAUSE_STAT_TX_FRAMES = 2,
83945 	ETHTOOL_A_PAUSE_STAT_RX_FRAMES = 3,
83946 	__ETHTOOL_A_PAUSE_STAT_CNT = 4,
83947 	ETHTOOL_A_PAUSE_STAT_MAX = 3,
83948 };
83949 
83950 struct pause_reply_data {
83951 	struct ethnl_reply_data base;
83952 	struct ethtool_pauseparam pauseparam;
83953 	struct ethtool_pause_stats pausestat;
83954 };
83955 
83956 struct eee_reply_data {
83957 	struct ethnl_reply_data base;
83958 	struct ethtool_eee eee;
83959 };
83960 
83961 struct tsinfo_reply_data {
83962 	struct ethnl_reply_data base;
83963 	struct ethtool_ts_info ts_info;
83964 };
83965 
83966 enum {
83967 	ETHTOOL_A_CABLE_PAIR_A = 0,
83968 	ETHTOOL_A_CABLE_PAIR_B = 1,
83969 	ETHTOOL_A_CABLE_PAIR_C = 2,
83970 	ETHTOOL_A_CABLE_PAIR_D = 3,
83971 };
83972 
83973 enum {
83974 	ETHTOOL_A_CABLE_RESULT_UNSPEC = 0,
83975 	ETHTOOL_A_CABLE_RESULT_PAIR = 1,
83976 	ETHTOOL_A_CABLE_RESULT_CODE = 2,
83977 	__ETHTOOL_A_CABLE_RESULT_CNT = 3,
83978 	ETHTOOL_A_CABLE_RESULT_MAX = 2,
83979 };
83980 
83981 enum {
83982 	ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC = 0,
83983 	ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR = 1,
83984 	ETHTOOL_A_CABLE_FAULT_LENGTH_CM = 2,
83985 	__ETHTOOL_A_CABLE_FAULT_LENGTH_CNT = 3,
83986 	ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = 2,
83987 };
83988 
83989 enum {
83990 	ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC = 0,
83991 	ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED = 1,
83992 	ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED = 2,
83993 };
83994 
83995 enum {
83996 	ETHTOOL_A_CABLE_NEST_UNSPEC = 0,
83997 	ETHTOOL_A_CABLE_NEST_RESULT = 1,
83998 	ETHTOOL_A_CABLE_NEST_FAULT_LENGTH = 2,
83999 	__ETHTOOL_A_CABLE_NEST_CNT = 3,
84000 	ETHTOOL_A_CABLE_NEST_MAX = 2,
84001 };
84002 
84003 enum {
84004 	ETHTOOL_A_CABLE_TEST_NTF_UNSPEC = 0,
84005 	ETHTOOL_A_CABLE_TEST_NTF_HEADER = 1,
84006 	ETHTOOL_A_CABLE_TEST_NTF_STATUS = 2,
84007 	ETHTOOL_A_CABLE_TEST_NTF_NEST = 3,
84008 	__ETHTOOL_A_CABLE_TEST_NTF_CNT = 4,
84009 	ETHTOOL_A_CABLE_TEST_NTF_MAX = 3,
84010 };
84011 
84012 enum {
84013 	ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC = 0,
84014 	ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST = 1,
84015 	ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST = 2,
84016 	ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP = 3,
84017 	ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR = 4,
84018 	__ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT = 5,
84019 	ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = 4,
84020 };
84021 
84022 enum {
84023 	ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC = 0,
84024 	ETHTOOL_A_CABLE_AMPLITUDE_PAIR = 1,
84025 	ETHTOOL_A_CABLE_AMPLITUDE_mV = 2,
84026 	__ETHTOOL_A_CABLE_AMPLITUDE_CNT = 3,
84027 	ETHTOOL_A_CABLE_AMPLITUDE_MAX = 2,
84028 };
84029 
84030 enum {
84031 	ETHTOOL_A_CABLE_PULSE_UNSPEC = 0,
84032 	ETHTOOL_A_CABLE_PULSE_mV = 1,
84033 	__ETHTOOL_A_CABLE_PULSE_CNT = 2,
84034 	ETHTOOL_A_CABLE_PULSE_MAX = 1,
84035 };
84036 
84037 enum {
84038 	ETHTOOL_A_CABLE_STEP_UNSPEC = 0,
84039 	ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE = 1,
84040 	ETHTOOL_A_CABLE_STEP_LAST_DISTANCE = 2,
84041 	ETHTOOL_A_CABLE_STEP_STEP_DISTANCE = 3,
84042 	__ETHTOOL_A_CABLE_STEP_CNT = 4,
84043 	ETHTOOL_A_CABLE_STEP_MAX = 3,
84044 };
84045 
84046 enum {
84047 	ETHTOOL_A_CABLE_TDR_NEST_UNSPEC = 0,
84048 	ETHTOOL_A_CABLE_TDR_NEST_STEP = 1,
84049 	ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE = 2,
84050 	ETHTOOL_A_CABLE_TDR_NEST_PULSE = 3,
84051 	__ETHTOOL_A_CABLE_TDR_NEST_CNT = 4,
84052 	ETHTOOL_A_CABLE_TDR_NEST_MAX = 3,
84053 };
84054 
84055 enum {
84056 	ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC = 0,
84057 	ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT = 1,
84058 	ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE = 2,
84059 	__ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT = 3,
84060 	ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = 2,
84061 };
84062 
84063 enum {
84064 	ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC = 0,
84065 	ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE = 1,
84066 	ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES = 2,
84067 	ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY = 3,
84068 	__ETHTOOL_A_TUNNEL_UDP_TABLE_CNT = 4,
84069 	ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = 3,
84070 };
84071 
84072 enum {
84073 	ETHTOOL_A_TUNNEL_UDP_UNSPEC = 0,
84074 	ETHTOOL_A_TUNNEL_UDP_TABLE = 1,
84075 	__ETHTOOL_A_TUNNEL_UDP_CNT = 2,
84076 	ETHTOOL_A_TUNNEL_UDP_MAX = 1,
84077 };
84078 
84079 struct ethnl_tunnel_info_dump_ctx {
84080 	struct ethnl_req_info req_info;
84081 	int pos_hash;
84082 	int pos_idx;
84083 };
84084 
84085 enum {
84086 	ETHTOOL_A_FEC_STAT_UNSPEC = 0,
84087 	ETHTOOL_A_FEC_STAT_PAD = 1,
84088 	ETHTOOL_A_FEC_STAT_CORRECTED = 2,
84089 	ETHTOOL_A_FEC_STAT_UNCORR = 3,
84090 	ETHTOOL_A_FEC_STAT_CORR_BITS = 4,
84091 	__ETHTOOL_A_FEC_STAT_CNT = 5,
84092 	ETHTOOL_A_FEC_STAT_MAX = 4,
84093 };
84094 
84095 struct fec_stat_grp {
84096 	u64 stats[9];
84097 	u8 cnt;
84098 };
84099 
84100 struct fec_reply_data {
84101 	struct ethnl_reply_data base;
84102 	long unsigned int fec_link_modes[2];
84103 	u32 active_fec;
84104 	u8 fec_auto;
84105 	struct fec_stat_grp corr;
84106 	struct fec_stat_grp uncorr;
84107 	struct fec_stat_grp corr_bits;
84108 };
84109 
84110 struct eeprom_req_info {
84111 	struct ethnl_req_info base;
84112 	u32 offset;
84113 	u32 length;
84114 	u8 page;
84115 	u8 bank;
84116 	u8 i2c_address;
84117 };
84118 
84119 struct eeprom_reply_data {
84120 	struct ethnl_reply_data base;
84121 	u32 length;
84122 	u8 *data;
84123 };
84124 
84125 enum {
84126 	ETHTOOL_A_STATS_GRP_UNSPEC = 0,
84127 	ETHTOOL_A_STATS_GRP_PAD = 1,
84128 	ETHTOOL_A_STATS_GRP_ID = 2,
84129 	ETHTOOL_A_STATS_GRP_SS_ID = 3,
84130 	ETHTOOL_A_STATS_GRP_STAT = 4,
84131 	ETHTOOL_A_STATS_GRP_HIST_RX = 5,
84132 	ETHTOOL_A_STATS_GRP_HIST_TX = 6,
84133 	ETHTOOL_A_STATS_GRP_HIST_BKT_LOW = 7,
84134 	ETHTOOL_A_STATS_GRP_HIST_BKT_HI = 8,
84135 	ETHTOOL_A_STATS_GRP_HIST_VAL = 9,
84136 	__ETHTOOL_A_STATS_GRP_CNT = 10,
84137 	ETHTOOL_A_STATS_GRP_MAX = 4,
84138 };
84139 
84140 struct stats_req_info {
84141 	struct ethnl_req_info base;
84142 	long unsigned int stat_mask[1];
84143 };
84144 
84145 struct stats_reply_data {
84146 	struct ethnl_reply_data base;
84147 	union {
84148 		struct {
84149 			struct ethtool_eth_phy_stats phy_stats;
84150 			struct ethtool_eth_mac_stats mac_stats;
84151 			struct ethtool_eth_ctrl_stats ctrl_stats;
84152 			struct ethtool_rmon_stats rmon_stats;
84153 		};
84154 		struct {
84155 			struct ethtool_eth_phy_stats phy_stats;
84156 			struct ethtool_eth_mac_stats mac_stats;
84157 			struct ethtool_eth_ctrl_stats ctrl_stats;
84158 			struct ethtool_rmon_stats rmon_stats;
84159 		} stats;
84160 	};
84161 	const struct ethtool_rmon_hist_range *rmon_ranges;
84162 };
84163 
84164 struct phc_vclocks_reply_data {
84165 	struct ethnl_reply_data base;
84166 	int num;
84167 	int *index;
84168 };
84169 
84170 struct module_reply_data {
84171 	struct ethnl_reply_data base;
84172 	struct ethtool_module_power_mode_params power;
84173 };
84174 
84175 struct nf_hook_entries_rcu_head {
84176 	struct callback_head head;
84177 	void *allocation;
84178 };
84179 
84180 struct nf_loginfo {
84181 	u_int8_t type;
84182 	union {
84183 		struct {
84184 			u_int32_t copy_len;
84185 			u_int16_t group;
84186 			u_int16_t qthreshold;
84187 			u_int16_t flags;
84188 		} ulog;
84189 		struct {
84190 			u_int8_t level;
84191 			u_int8_t logflags;
84192 		} log;
84193 	} u;
84194 };
84195 
84196 struct nf_log_buf {
84197 	unsigned int count;
84198 	char buf[1020];
84199 };
84200 
84201 struct ip_rt_info {
84202 	__be32 daddr;
84203 	__be32 saddr;
84204 	u_int8_t tos;
84205 	u_int32_t mark;
84206 };
84207 
84208 struct ip6_rt_info {
84209 	struct in6_addr daddr;
84210 	struct in6_addr saddr;
84211 	u_int32_t mark;
84212 };
84213 
84214 struct nf_queue_handler {
84215 	int (*outfn)(struct nf_queue_entry *, unsigned int);
84216 	void (*nf_hook_drop)(struct net *);
84217 };
84218 
84219 struct nf_sockopt_ops {
84220 	struct list_head list;
84221 	u_int8_t pf;
84222 	int set_optmin;
84223 	int set_optmax;
84224 	int (*set)(struct sock *, int, sockptr_t, unsigned int);
84225 	int get_optmin;
84226 	int get_optmax;
84227 	int (*get)(struct sock *, int, void *, int *);
84228 	struct module *owner;
84229 };
84230 
84231 enum nfnetlink_groups {
84232 	NFNLGRP_NONE = 0,
84233 	NFNLGRP_CONNTRACK_NEW = 1,
84234 	NFNLGRP_CONNTRACK_UPDATE = 2,
84235 	NFNLGRP_CONNTRACK_DESTROY = 3,
84236 	NFNLGRP_CONNTRACK_EXP_NEW = 4,
84237 	NFNLGRP_CONNTRACK_EXP_UPDATE = 5,
84238 	NFNLGRP_CONNTRACK_EXP_DESTROY = 6,
84239 	NFNLGRP_NFTABLES = 7,
84240 	NFNLGRP_ACCT_QUOTA = 8,
84241 	NFNLGRP_NFTRACE = 9,
84242 	__NFNLGRP_MAX = 10,
84243 };
84244 
84245 struct nfgenmsg {
84246 	__u8 nfgen_family;
84247 	__u8 version;
84248 	__be16 res_id;
84249 };
84250 
84251 enum nfnl_batch_attributes {
84252 	NFNL_BATCH_UNSPEC = 0,
84253 	NFNL_BATCH_GENID = 1,
84254 	__NFNL_BATCH_MAX = 2,
84255 };
84256 
84257 struct nfnl_info {
84258 	struct net *net;
84259 	struct sock *sk;
84260 	const struct nlmsghdr *nlh;
84261 	const struct nfgenmsg *nfmsg;
84262 	struct netlink_ext_ack *extack;
84263 };
84264 
84265 enum nfnl_callback_type {
84266 	NFNL_CB_UNSPEC = 0,
84267 	NFNL_CB_MUTEX = 1,
84268 	NFNL_CB_RCU = 2,
84269 	NFNL_CB_BATCH = 3,
84270 };
84271 
84272 struct nfnl_callback {
84273 	int (*call)(struct sk_buff *, const struct nfnl_info *, const struct nlattr * const *);
84274 	const struct nla_policy *policy;
84275 	enum nfnl_callback_type type;
84276 	__u16 attr_count;
84277 };
84278 
84279 enum nfnl_abort_action {
84280 	NFNL_ABORT_NONE = 0,
84281 	NFNL_ABORT_AUTOLOAD = 1,
84282 	NFNL_ABORT_VALIDATE = 2,
84283 };
84284 
84285 struct nfnetlink_subsystem {
84286 	const char *name;
84287 	__u8 subsys_id;
84288 	__u8 cb_count;
84289 	const struct nfnl_callback *cb;
84290 	struct module *owner;
84291 	int (*commit)(struct net *, struct sk_buff *);
84292 	int (*abort)(struct net *, struct sk_buff *, enum nfnl_abort_action);
84293 	void (*cleanup)(struct net *);
84294 	bool (*valid_genid)(struct net *, u32);
84295 };
84296 
84297 struct nfnl_net {
84298 	struct sock *nfnl;
84299 };
84300 
84301 struct nfnl_err {
84302 	struct list_head head;
84303 	struct nlmsghdr *nlh;
84304 	int err;
84305 	struct netlink_ext_ack extack;
84306 };
84307 
84308 enum {
84309 	NFNL_BATCH_FAILURE = 1,
84310 	NFNL_BATCH_DONE = 2,
84311 	NFNL_BATCH_REPLAY = 4,
84312 };
84313 
84314 enum ip_conntrack_status {
84315 	IPS_EXPECTED_BIT = 0,
84316 	IPS_EXPECTED = 1,
84317 	IPS_SEEN_REPLY_BIT = 1,
84318 	IPS_SEEN_REPLY = 2,
84319 	IPS_ASSURED_BIT = 2,
84320 	IPS_ASSURED = 4,
84321 	IPS_CONFIRMED_BIT = 3,
84322 	IPS_CONFIRMED = 8,
84323 	IPS_SRC_NAT_BIT = 4,
84324 	IPS_SRC_NAT = 16,
84325 	IPS_DST_NAT_BIT = 5,
84326 	IPS_DST_NAT = 32,
84327 	IPS_NAT_MASK = 48,
84328 	IPS_SEQ_ADJUST_BIT = 6,
84329 	IPS_SEQ_ADJUST = 64,
84330 	IPS_SRC_NAT_DONE_BIT = 7,
84331 	IPS_SRC_NAT_DONE = 128,
84332 	IPS_DST_NAT_DONE_BIT = 8,
84333 	IPS_DST_NAT_DONE = 256,
84334 	IPS_NAT_DONE_MASK = 384,
84335 	IPS_DYING_BIT = 9,
84336 	IPS_DYING = 512,
84337 	IPS_FIXED_TIMEOUT_BIT = 10,
84338 	IPS_FIXED_TIMEOUT = 1024,
84339 	IPS_TEMPLATE_BIT = 11,
84340 	IPS_TEMPLATE = 2048,
84341 	IPS_UNTRACKED_BIT = 12,
84342 	IPS_UNTRACKED = 4096,
84343 	IPS_NAT_CLASH_BIT = 12,
84344 	IPS_NAT_CLASH = 4096,
84345 	IPS_HELPER_BIT = 13,
84346 	IPS_HELPER = 8192,
84347 	IPS_OFFLOAD_BIT = 14,
84348 	IPS_OFFLOAD = 16384,
84349 	IPS_HW_OFFLOAD_BIT = 15,
84350 	IPS_HW_OFFLOAD = 32768,
84351 	IPS_UNCHANGEABLE_MASK = 56313,
84352 	__IPS_MAX_BIT = 16,
84353 };
84354 
84355 enum nfqnl_msg_types {
84356 	NFQNL_MSG_PACKET = 0,
84357 	NFQNL_MSG_VERDICT = 1,
84358 	NFQNL_MSG_CONFIG = 2,
84359 	NFQNL_MSG_VERDICT_BATCH = 3,
84360 	NFQNL_MSG_MAX = 4,
84361 };
84362 
84363 struct nfqnl_msg_packet_hdr {
84364 	__be32 packet_id;
84365 	__be16 hw_protocol;
84366 	__u8 hook;
84367 } __attribute__((packed));
84368 
84369 struct nfqnl_msg_packet_hw {
84370 	__be16 hw_addrlen;
84371 	__u16 _pad;
84372 	__u8 hw_addr[8];
84373 };
84374 
84375 struct nfqnl_msg_packet_timestamp {
84376 	__be64 sec;
84377 	__be64 usec;
84378 };
84379 
84380 enum nfqnl_vlan_attr {
84381 	NFQA_VLAN_UNSPEC = 0,
84382 	NFQA_VLAN_PROTO = 1,
84383 	NFQA_VLAN_TCI = 2,
84384 	__NFQA_VLAN_MAX = 3,
84385 };
84386 
84387 enum nfqnl_attr_type {
84388 	NFQA_UNSPEC = 0,
84389 	NFQA_PACKET_HDR = 1,
84390 	NFQA_VERDICT_HDR = 2,
84391 	NFQA_MARK = 3,
84392 	NFQA_TIMESTAMP = 4,
84393 	NFQA_IFINDEX_INDEV = 5,
84394 	NFQA_IFINDEX_OUTDEV = 6,
84395 	NFQA_IFINDEX_PHYSINDEV = 7,
84396 	NFQA_IFINDEX_PHYSOUTDEV = 8,
84397 	NFQA_HWADDR = 9,
84398 	NFQA_PAYLOAD = 10,
84399 	NFQA_CT = 11,
84400 	NFQA_CT_INFO = 12,
84401 	NFQA_CAP_LEN = 13,
84402 	NFQA_SKB_INFO = 14,
84403 	NFQA_EXP = 15,
84404 	NFQA_UID = 16,
84405 	NFQA_GID = 17,
84406 	NFQA_SECCTX = 18,
84407 	NFQA_VLAN = 19,
84408 	NFQA_L2HDR = 20,
84409 	__NFQA_MAX = 21,
84410 };
84411 
84412 struct nfqnl_msg_verdict_hdr {
84413 	__be32 verdict;
84414 	__be32 id;
84415 };
84416 
84417 enum nfqnl_msg_config_cmds {
84418 	NFQNL_CFG_CMD_NONE = 0,
84419 	NFQNL_CFG_CMD_BIND = 1,
84420 	NFQNL_CFG_CMD_UNBIND = 2,
84421 	NFQNL_CFG_CMD_PF_BIND = 3,
84422 	NFQNL_CFG_CMD_PF_UNBIND = 4,
84423 };
84424 
84425 struct nfqnl_msg_config_cmd {
84426 	__u8 command;
84427 	__u8 _pad;
84428 	__be16 pf;
84429 };
84430 
84431 enum nfqnl_config_mode {
84432 	NFQNL_COPY_NONE = 0,
84433 	NFQNL_COPY_META = 1,
84434 	NFQNL_COPY_PACKET = 2,
84435 };
84436 
84437 struct nfqnl_msg_config_params {
84438 	__be32 copy_range;
84439 	__u8 copy_mode;
84440 } __attribute__((packed));
84441 
84442 enum nfqnl_attr_config {
84443 	NFQA_CFG_UNSPEC = 0,
84444 	NFQA_CFG_CMD = 1,
84445 	NFQA_CFG_PARAMS = 2,
84446 	NFQA_CFG_QUEUE_MAXLEN = 3,
84447 	NFQA_CFG_MASK = 4,
84448 	NFQA_CFG_FLAGS = 5,
84449 	__NFQA_CFG_MAX = 6,
84450 };
84451 
84452 struct nfqnl_instance {
84453 	struct hlist_node hlist;
84454 	struct callback_head rcu;
84455 	u32 peer_portid;
84456 	unsigned int queue_maxlen;
84457 	unsigned int copy_range;
84458 	unsigned int queue_dropped;
84459 	unsigned int queue_user_dropped;
84460 	u_int16_t queue_num;
84461 	u_int8_t copy_mode;
84462 	u_int32_t flags;
84463 	spinlock_t lock;
84464 	unsigned int queue_total;
84465 	unsigned int id_sequence;
84466 	struct list_head queue_list;
84467 	long: 64;
84468 	long: 64;
84469 	long: 64;
84470 	long: 64;
84471 	long: 64;
84472 };
84473 
84474 typedef int (*nfqnl_cmpfn)(struct nf_queue_entry *, long unsigned int);
84475 
84476 struct nfnl_queue_net {
84477 	spinlock_t instances_lock;
84478 	struct hlist_head instance_table[16];
84479 };
84480 
84481 struct iter_state {
84482 	struct seq_net_private p;
84483 	unsigned int bucket;
84484 };
84485 
84486 enum nfulnl_msg_types {
84487 	NFULNL_MSG_PACKET = 0,
84488 	NFULNL_MSG_CONFIG = 1,
84489 	NFULNL_MSG_MAX = 2,
84490 };
84491 
84492 struct nfulnl_msg_packet_hdr {
84493 	__be16 hw_protocol;
84494 	__u8 hook;
84495 	__u8 _pad;
84496 };
84497 
84498 struct nfulnl_msg_packet_hw {
84499 	__be16 hw_addrlen;
84500 	__u16 _pad;
84501 	__u8 hw_addr[8];
84502 };
84503 
84504 struct nfulnl_msg_packet_timestamp {
84505 	__be64 sec;
84506 	__be64 usec;
84507 };
84508 
84509 enum nfulnl_vlan_attr {
84510 	NFULA_VLAN_UNSPEC = 0,
84511 	NFULA_VLAN_PROTO = 1,
84512 	NFULA_VLAN_TCI = 2,
84513 	__NFULA_VLAN_MAX = 3,
84514 };
84515 
84516 enum nfulnl_attr_type {
84517 	NFULA_UNSPEC = 0,
84518 	NFULA_PACKET_HDR = 1,
84519 	NFULA_MARK = 2,
84520 	NFULA_TIMESTAMP = 3,
84521 	NFULA_IFINDEX_INDEV = 4,
84522 	NFULA_IFINDEX_OUTDEV = 5,
84523 	NFULA_IFINDEX_PHYSINDEV = 6,
84524 	NFULA_IFINDEX_PHYSOUTDEV = 7,
84525 	NFULA_HWADDR = 8,
84526 	NFULA_PAYLOAD = 9,
84527 	NFULA_PREFIX = 10,
84528 	NFULA_UID = 11,
84529 	NFULA_SEQ = 12,
84530 	NFULA_SEQ_GLOBAL = 13,
84531 	NFULA_GID = 14,
84532 	NFULA_HWTYPE = 15,
84533 	NFULA_HWHEADER = 16,
84534 	NFULA_HWLEN = 17,
84535 	NFULA_CT = 18,
84536 	NFULA_CT_INFO = 19,
84537 	NFULA_VLAN = 20,
84538 	NFULA_L2HDR = 21,
84539 	__NFULA_MAX = 22,
84540 };
84541 
84542 enum nfulnl_msg_config_cmds {
84543 	NFULNL_CFG_CMD_NONE = 0,
84544 	NFULNL_CFG_CMD_BIND = 1,
84545 	NFULNL_CFG_CMD_UNBIND = 2,
84546 	NFULNL_CFG_CMD_PF_BIND = 3,
84547 	NFULNL_CFG_CMD_PF_UNBIND = 4,
84548 };
84549 
84550 struct nfulnl_msg_config_cmd {
84551 	__u8 command;
84552 };
84553 
84554 struct nfulnl_msg_config_mode {
84555 	__be32 copy_range;
84556 	__u8 copy_mode;
84557 	__u8 _pad;
84558 } __attribute__((packed));
84559 
84560 enum nfulnl_attr_config {
84561 	NFULA_CFG_UNSPEC = 0,
84562 	NFULA_CFG_CMD = 1,
84563 	NFULA_CFG_MODE = 2,
84564 	NFULA_CFG_NLBUFSIZ = 3,
84565 	NFULA_CFG_TIMEOUT = 4,
84566 	NFULA_CFG_QTHRESH = 5,
84567 	NFULA_CFG_FLAGS = 6,
84568 	__NFULA_CFG_MAX = 7,
84569 };
84570 
84571 struct nfulnl_instance {
84572 	struct hlist_node hlist;
84573 	spinlock_t lock;
84574 	refcount_t use;
84575 	unsigned int qlen;
84576 	struct sk_buff *skb;
84577 	struct timer_list timer;
84578 	struct net *net;
84579 	netns_tracker ns_tracker;
84580 	struct user_namespace *peer_user_ns;
84581 	u32 peer_portid;
84582 	unsigned int flushtimeout;
84583 	unsigned int nlbufsiz;
84584 	unsigned int qthreshold;
84585 	u_int32_t copy_range;
84586 	u_int32_t seq;
84587 	u_int16_t group_num;
84588 	u_int16_t flags;
84589 	u_int8_t copy_mode;
84590 	struct callback_head rcu;
84591 };
84592 
84593 struct nfnl_log_net {
84594 	spinlock_t instances_lock;
84595 	struct hlist_head instance_table[16];
84596 	atomic_t global_seq;
84597 };
84598 
84599 enum ip_conntrack_events {
84600 	IPCT_NEW = 0,
84601 	IPCT_RELATED = 1,
84602 	IPCT_DESTROY = 2,
84603 	IPCT_REPLY = 3,
84604 	IPCT_ASSURED = 4,
84605 	IPCT_PROTOINFO = 5,
84606 	IPCT_HELPER = 6,
84607 	IPCT_MARK = 7,
84608 	IPCT_SEQADJ = 8,
84609 	IPCT_NATSEQADJ = 8,
84610 	IPCT_SECMARK = 9,
84611 	IPCT_LABEL = 10,
84612 	IPCT_SYNPROXY = 11,
84613 	__IPCT_MAX = 12,
84614 };
84615 
84616 struct nf_conntrack_net {
84617 	atomic_t count;
84618 	unsigned int expect_count;
84619 	u8 sysctl_auto_assign_helper;
84620 	bool auto_assign_helper_warned;
84621 	unsigned int users4;
84622 	unsigned int users6;
84623 	unsigned int users_bridge;
84624 	struct ctl_table_header *sysctl_header;
84625 };
84626 
84627 struct nf_conntrack_expect_policy;
84628 
84629 struct nf_conntrack_helper {
84630 	struct hlist_node hnode;
84631 	char name[16];
84632 	refcount_t refcnt;
84633 	struct module *me;
84634 	const struct nf_conntrack_expect_policy *expect_policy;
84635 	struct nf_conntrack_tuple tuple;
84636 	int (*help)(struct sk_buff *, unsigned int, struct nf_conn *, enum ip_conntrack_info);
84637 	void (*destroy)(struct nf_conn *);
84638 	int (*from_nlattr)(struct nlattr *, struct nf_conn *);
84639 	int (*to_nlattr)(struct sk_buff *, const struct nf_conn *);
84640 	unsigned int expect_class_max;
84641 	unsigned int flags;
84642 	unsigned int queue_num;
84643 	u16 data_len;
84644 	char nat_mod_name[16];
84645 };
84646 
84647 struct nf_conntrack_expect_policy {
84648 	unsigned int max_expected;
84649 	unsigned int timeout;
84650 	char name[16];
84651 };
84652 
84653 enum nf_ct_helper_flags {
84654 	NF_CT_HELPER_F_USERSPACE = 1,
84655 	NF_CT_HELPER_F_CONFIGURED = 2,
84656 };
84657 
84658 struct nf_conn_help {
84659 	struct nf_conntrack_helper *helper;
84660 	struct hlist_head expectations;
84661 	u8 expecting[4];
84662 	int: 32;
84663 	char data[32];
84664 };
84665 
84666 enum nf_ct_ecache_state {
84667 	NFCT_ECACHE_UNKNOWN = 0,
84668 	NFCT_ECACHE_DESTROY_FAIL = 1,
84669 	NFCT_ECACHE_DESTROY_SENT = 2,
84670 };
84671 
84672 struct nf_conntrack_ecache {
84673 	long unsigned int cache;
84674 	u16 missed;
84675 	u16 ctmask;
84676 	u16 expmask;
84677 	enum nf_ct_ecache_state state: 8;
84678 	u32 portid;
84679 };
84680 
84681 struct nf_conn_counter {
84682 	atomic64_t packets;
84683 	atomic64_t bytes;
84684 };
84685 
84686 struct nf_conn_acct {
84687 	struct nf_conn_counter counter[2];
84688 };
84689 
84690 struct nf_conn_tstamp {
84691 	u_int64_t start;
84692 	u_int64_t stop;
84693 };
84694 
84695 struct nf_ct_timeout {
84696 	__u16 l3num;
84697 	const struct nf_conntrack_l4proto *l4proto;
84698 	char data[0];
84699 };
84700 
84701 struct nf_conn_timeout {
84702 	struct nf_ct_timeout *timeout;
84703 };
84704 
84705 struct conntrack_gc_work {
84706 	struct delayed_work dwork;
84707 	u32 next_bucket;
84708 	bool exiting;
84709 	bool early_drop;
84710 };
84711 
84712 struct iter_data {
84713 	int (*iter)(struct nf_conn *, void *);
84714 	void *data;
84715 	struct net *net;
84716 };
84717 
84718 struct ct_iter_state {
84719 	struct seq_net_private p;
84720 	struct hlist_nulls_head *hash;
84721 	unsigned int htable_size;
84722 	unsigned int bucket;
84723 	u_int64_t time_now;
84724 };
84725 
84726 enum nf_ct_sysctl_index {
84727 	NF_SYSCTL_CT_MAX = 0,
84728 	NF_SYSCTL_CT_COUNT = 1,
84729 	NF_SYSCTL_CT_BUCKETS = 2,
84730 	NF_SYSCTL_CT_CHECKSUM = 3,
84731 	NF_SYSCTL_CT_LOG_INVALID = 4,
84732 	NF_SYSCTL_CT_EXPECT_MAX = 5,
84733 	NF_SYSCTL_CT_ACCT = 6,
84734 	NF_SYSCTL_CT_HELPER = 7,
84735 	NF_SYSCTL_CT_PROTO_TIMEOUT_GENERIC = 8,
84736 	NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_SYN_SENT = 9,
84737 	NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_SYN_RECV = 10,
84738 	NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_ESTABLISHED = 11,
84739 	NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_FIN_WAIT = 12,
84740 	NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_CLOSE_WAIT = 13,
84741 	NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_LAST_ACK = 14,
84742 	NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_TIME_WAIT = 15,
84743 	NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_CLOSE = 16,
84744 	NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_RETRANS = 17,
84745 	NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_UNACK = 18,
84746 	NF_SYSCTL_CT_PROTO_TCP_LOOSE = 19,
84747 	NF_SYSCTL_CT_PROTO_TCP_LIBERAL = 20,
84748 	NF_SYSCTL_CT_PROTO_TCP_IGNORE_INVALID_RST = 21,
84749 	NF_SYSCTL_CT_PROTO_TCP_MAX_RETRANS = 22,
84750 	NF_SYSCTL_CT_PROTO_TIMEOUT_UDP = 23,
84751 	NF_SYSCTL_CT_PROTO_TIMEOUT_UDP_STREAM = 24,
84752 	NF_SYSCTL_CT_PROTO_TIMEOUT_ICMP = 25,
84753 	NF_SYSCTL_CT_PROTO_TIMEOUT_ICMPV6 = 26,
84754 	NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_CLOSED = 27,
84755 	NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_COOKIE_WAIT = 28,
84756 	NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_COOKIE_ECHOED = 29,
84757 	NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_ESTABLISHED = 30,
84758 	NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_SHUTDOWN_SENT = 31,
84759 	NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_SHUTDOWN_RECD = 32,
84760 	NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_SHUTDOWN_ACK_SENT = 33,
84761 	NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_HEARTBEAT_SENT = 34,
84762 	NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_HEARTBEAT_ACKED = 35,
84763 	NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_REQUEST = 36,
84764 	NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_RESPOND = 37,
84765 	NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_PARTOPEN = 38,
84766 	NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_OPEN = 39,
84767 	NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_CLOSEREQ = 40,
84768 	NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_CLOSING = 41,
84769 	NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_TIMEWAIT = 42,
84770 	NF_SYSCTL_CT_PROTO_DCCP_LOOSE = 43,
84771 	NF_SYSCTL_CT_LWTUNNEL = 44,
84772 	__NF_SYSCTL_CT_LAST_SYSCTL = 45,
84773 };
84774 
84775 enum ip_conntrack_expect_events {
84776 	IPEXP_NEW = 0,
84777 	IPEXP_DESTROY = 1,
84778 };
84779 
84780 struct ct_expect_iter_state {
84781 	struct seq_net_private p;
84782 	unsigned int bucket;
84783 };
84784 
84785 struct nf_ct_ext_type {
84786 	void (*destroy)(struct nf_conn *);
84787 	enum nf_ct_ext_id id;
84788 	u8 len;
84789 	u8 align;
84790 };
84791 
84792 struct nf_ct_helper_expectfn {
84793 	struct list_head head;
84794 	const char *name;
84795 	void (*expectfn)(struct nf_conn *, struct nf_conntrack_expect *);
84796 };
84797 
84798 struct nf_conntrack_nat_helper {
84799 	struct list_head list;
84800 	char mod_name[16];
84801 	struct module *module;
84802 };
84803 
84804 struct nf_ct_bridge_info {
84805 	struct nf_hook_ops *ops;
84806 	unsigned int ops_size;
84807 	struct module *me;
84808 };
84809 
84810 enum {
84811 	TCP_FLAG_CWR = 32768,
84812 	TCP_FLAG_ECE = 16384,
84813 	TCP_FLAG_URG = 8192,
84814 	TCP_FLAG_ACK = 4096,
84815 	TCP_FLAG_PSH = 2048,
84816 	TCP_FLAG_RST = 1024,
84817 	TCP_FLAG_SYN = 512,
84818 	TCP_FLAG_FIN = 256,
84819 	TCP_RESERVED_BITS = 15,
84820 	TCP_DATA_OFFSET = 240,
84821 };
84822 
84823 struct nf_conn_synproxy {
84824 	u32 isn;
84825 	u32 its;
84826 	u32 tsoff;
84827 };
84828 
84829 enum tcp_bit_set {
84830 	TCP_SYN_SET = 0,
84831 	TCP_SYNACK_SET = 1,
84832 	TCP_FIN_SET = 2,
84833 	TCP_ACK_SET = 3,
84834 	TCP_RST_SET = 4,
84835 	TCP_NONE_SET = 5,
84836 };
84837 
84838 struct tcp_sack_block_wire {
84839 	__be32 start_seq;
84840 	__be32 end_seq;
84841 };
84842 
84843 struct nf_ct_seqadj {
84844 	u32 correction_pos;
84845 	s32 offset_before;
84846 	s32 offset_after;
84847 };
84848 
84849 struct nf_conn_seqadj {
84850 	struct nf_ct_seqadj seq[2];
84851 };
84852 
84853 enum ct_dccp_roles {
84854 	CT_DCCP_ROLE_CLIENT = 0,
84855 	CT_DCCP_ROLE_SERVER = 1,
84856 	__CT_DCCP_ROLE_MAX = 2,
84857 };
84858 
84859 struct dccp_hdr_ext {
84860 	__be32 dccph_seq_low;
84861 };
84862 
84863 struct dccp_hdr_ack_bits {
84864 	__be16 dccph_reserved1;
84865 	__be16 dccph_ack_nr_high;
84866 	__be32 dccph_ack_nr_low;
84867 };
84868 
84869 enum dccp_pkt_type {
84870 	DCCP_PKT_REQUEST = 0,
84871 	DCCP_PKT_RESPONSE = 1,
84872 	DCCP_PKT_DATA = 2,
84873 	DCCP_PKT_ACK = 3,
84874 	DCCP_PKT_DATAACK = 4,
84875 	DCCP_PKT_CLOSEREQ = 5,
84876 	DCCP_PKT_CLOSE = 6,
84877 	DCCP_PKT_RESET = 7,
84878 	DCCP_PKT_SYNC = 8,
84879 	DCCP_PKT_SYNCACK = 9,
84880 	DCCP_PKT_INVALID = 10,
84881 };
84882 
84883 enum {
84884 	SCTP_CHUNK_FLAG_T = 1,
84885 };
84886 
84887 enum {
84888 	SCTP_MIB_NUM = 0,
84889 	SCTP_MIB_CURRESTAB = 1,
84890 	SCTP_MIB_ACTIVEESTABS = 2,
84891 	SCTP_MIB_PASSIVEESTABS = 3,
84892 	SCTP_MIB_ABORTEDS = 4,
84893 	SCTP_MIB_SHUTDOWNS = 5,
84894 	SCTP_MIB_OUTOFBLUES = 6,
84895 	SCTP_MIB_CHECKSUMERRORS = 7,
84896 	SCTP_MIB_OUTCTRLCHUNKS = 8,
84897 	SCTP_MIB_OUTORDERCHUNKS = 9,
84898 	SCTP_MIB_OUTUNORDERCHUNKS = 10,
84899 	SCTP_MIB_INCTRLCHUNKS = 11,
84900 	SCTP_MIB_INORDERCHUNKS = 12,
84901 	SCTP_MIB_INUNORDERCHUNKS = 13,
84902 	SCTP_MIB_FRAGUSRMSGS = 14,
84903 	SCTP_MIB_REASMUSRMSGS = 15,
84904 	SCTP_MIB_OUTSCTPPACKS = 16,
84905 	SCTP_MIB_INSCTPPACKS = 17,
84906 	SCTP_MIB_T1_INIT_EXPIREDS = 18,
84907 	SCTP_MIB_T1_COOKIE_EXPIREDS = 19,
84908 	SCTP_MIB_T2_SHUTDOWN_EXPIREDS = 20,
84909 	SCTP_MIB_T3_RTX_EXPIREDS = 21,
84910 	SCTP_MIB_T4_RTO_EXPIREDS = 22,
84911 	SCTP_MIB_T5_SHUTDOWN_GUARD_EXPIREDS = 23,
84912 	SCTP_MIB_DELAY_SACK_EXPIREDS = 24,
84913 	SCTP_MIB_AUTOCLOSE_EXPIREDS = 25,
84914 	SCTP_MIB_T1_RETRANSMITS = 26,
84915 	SCTP_MIB_T3_RETRANSMITS = 27,
84916 	SCTP_MIB_PMTUD_RETRANSMITS = 28,
84917 	SCTP_MIB_FAST_RETRANSMITS = 29,
84918 	SCTP_MIB_IN_PKT_SOFTIRQ = 30,
84919 	SCTP_MIB_IN_PKT_BACKLOG = 31,
84920 	SCTP_MIB_IN_PKT_DISCARDS = 32,
84921 	SCTP_MIB_IN_DATA_CHUNK_DISCARDS = 33,
84922 	__SCTP_MIB_MAX = 34,
84923 };
84924 
84925 enum {
84926 	BPF_F_CURRENT_NETNS = 4294967295,
84927 };
84928 
84929 struct bpf_ct_opts {
84930 	s32 netns_id;
84931 	s32 error;
84932 	u8 l4proto;
84933 	u8 reserved[3];
84934 };
84935 
84936 enum {
84937 	NF_BPF_CT_OPTS_SZ = 12,
84938 };
84939 
84940 struct xt_action_param;
84941 
84942 struct xt_mtchk_param;
84943 
84944 struct xt_mtdtor_param;
84945 
84946 struct xt_match {
84947 	struct list_head list;
84948 	const char name[29];
84949 	u_int8_t revision;
84950 	bool (*match)(const struct sk_buff *, struct xt_action_param *);
84951 	int (*checkentry)(const struct xt_mtchk_param *);
84952 	void (*destroy)(const struct xt_mtdtor_param *);
84953 	struct module *me;
84954 	const char *table;
84955 	unsigned int matchsize;
84956 	unsigned int usersize;
84957 	unsigned int hooks;
84958 	short unsigned int proto;
84959 	short unsigned int family;
84960 };
84961 
84962 struct xt_entry_match {
84963 	union {
84964 		struct {
84965 			__u16 match_size;
84966 			char name[29];
84967 			__u8 revision;
84968 		} user;
84969 		struct {
84970 			__u16 match_size;
84971 			struct xt_match *match;
84972 		} kernel;
84973 		__u16 match_size;
84974 	} u;
84975 	unsigned char data[0];
84976 };
84977 
84978 struct xt_tgchk_param;
84979 
84980 struct xt_tgdtor_param;
84981 
84982 struct xt_target {
84983 	struct list_head list;
84984 	const char name[29];
84985 	u_int8_t revision;
84986 	unsigned int (*target)(struct sk_buff *, const struct xt_action_param *);
84987 	int (*checkentry)(const struct xt_tgchk_param *);
84988 	void (*destroy)(const struct xt_tgdtor_param *);
84989 	struct module *me;
84990 	const char *table;
84991 	unsigned int targetsize;
84992 	unsigned int usersize;
84993 	unsigned int hooks;
84994 	short unsigned int proto;
84995 	short unsigned int family;
84996 };
84997 
84998 struct xt_entry_target {
84999 	union {
85000 		struct {
85001 			__u16 target_size;
85002 			char name[29];
85003 			__u8 revision;
85004 		} user;
85005 		struct {
85006 			__u16 target_size;
85007 			struct xt_target *target;
85008 		} kernel;
85009 		__u16 target_size;
85010 	} u;
85011 	unsigned char data[0];
85012 };
85013 
85014 struct xt_standard_target {
85015 	struct xt_entry_target target;
85016 	int verdict;
85017 };
85018 
85019 struct xt_error_target {
85020 	struct xt_entry_target target;
85021 	char errorname[30];
85022 };
85023 
85024 struct xt_counters {
85025 	__u64 pcnt;
85026 	__u64 bcnt;
85027 };
85028 
85029 struct xt_counters_info {
85030 	char name[32];
85031 	unsigned int num_counters;
85032 	struct xt_counters counters[0];
85033 };
85034 
85035 struct xt_action_param {
85036 	union {
85037 		const struct xt_match *match;
85038 		const struct xt_target *target;
85039 	};
85040 	union {
85041 		const void *matchinfo;
85042 		const void *targinfo;
85043 	};
85044 	const struct nf_hook_state *state;
85045 	unsigned int thoff;
85046 	u16 fragoff;
85047 	bool hotdrop;
85048 };
85049 
85050 struct xt_mtchk_param {
85051 	struct net *net;
85052 	const char *table;
85053 	const void *entryinfo;
85054 	const struct xt_match *match;
85055 	void *matchinfo;
85056 	unsigned int hook_mask;
85057 	u_int8_t family;
85058 	bool nft_compat;
85059 };
85060 
85061 struct xt_mtdtor_param {
85062 	struct net *net;
85063 	const struct xt_match *match;
85064 	void *matchinfo;
85065 	u_int8_t family;
85066 };
85067 
85068 struct xt_tgchk_param {
85069 	struct net *net;
85070 	const char *table;
85071 	const void *entryinfo;
85072 	const struct xt_target *target;
85073 	void *targinfo;
85074 	unsigned int hook_mask;
85075 	u_int8_t family;
85076 	bool nft_compat;
85077 };
85078 
85079 struct xt_tgdtor_param {
85080 	struct net *net;
85081 	const struct xt_target *target;
85082 	void *targinfo;
85083 	u_int8_t family;
85084 };
85085 
85086 struct xt_table_info;
85087 
85088 struct xt_table {
85089 	struct list_head list;
85090 	unsigned int valid_hooks;
85091 	struct xt_table_info *private;
85092 	struct nf_hook_ops *ops;
85093 	struct module *me;
85094 	u_int8_t af;
85095 	int priority;
85096 	const char name[32];
85097 };
85098 
85099 struct xt_table_info {
85100 	unsigned int size;
85101 	unsigned int number;
85102 	unsigned int initial_entries;
85103 	unsigned int hook_entry[5];
85104 	unsigned int underflow[5];
85105 	unsigned int stacksize;
85106 	void ***jumpstack;
85107 	unsigned char entries[0];
85108 };
85109 
85110 struct xt_percpu_counter_alloc_state {
85111 	unsigned int off;
85112 	const char *mem;
85113 };
85114 
85115 struct xt_template {
85116 	struct list_head list;
85117 	int (*table_init)(struct net *);
85118 	struct module *me;
85119 	char name[32];
85120 };
85121 
85122 struct xt_pernet {
85123 	struct list_head tables[13];
85124 };
85125 
85126 struct xt_af {
85127 	struct mutex mutex;
85128 	struct list_head match;
85129 	struct list_head target;
85130 };
85131 
85132 struct nf_mttg_trav {
85133 	struct list_head *head;
85134 	struct list_head *curr;
85135 	uint8_t class;
85136 };
85137 
85138 enum {
85139 	MTTG_TRAV_INIT = 0,
85140 	MTTG_TRAV_NFP_UNSPEC = 1,
85141 	MTTG_TRAV_NFP_SPEC = 2,
85142 	MTTG_TRAV_DONE = 3,
85143 };
85144 
85145 struct xt_tcp {
85146 	__u16 spts[2];
85147 	__u16 dpts[2];
85148 	__u8 option;
85149 	__u8 flg_mask;
85150 	__u8 flg_cmp;
85151 	__u8 invflags;
85152 };
85153 
85154 struct xt_udp {
85155 	__u16 spts[2];
85156 	__u16 dpts[2];
85157 	__u8 invflags;
85158 };
85159 
85160 struct xt_bpf_info {
85161 	__u16 bpf_program_num_elem;
85162 	struct sock_filter bpf_program[64];
85163 	struct bpf_prog *filter;
85164 };
85165 
85166 enum xt_bpf_modes {
85167 	XT_BPF_MODE_BYTECODE = 0,
85168 	XT_BPF_MODE_FD_PINNED = 1,
85169 	XT_BPF_MODE_FD_ELF = 2,
85170 };
85171 
85172 struct xt_bpf_info_v1 {
85173 	__u16 mode;
85174 	__u16 bpf_program_num_elem;
85175 	__s32 fd;
85176 	union {
85177 		struct sock_filter bpf_program[64];
85178 		char path[512];
85179 	};
85180 	struct bpf_prog *filter;
85181 };
85182 
85183 enum xt_statistic_mode {
85184 	XT_STATISTIC_MODE_RANDOM = 0,
85185 	XT_STATISTIC_MODE_NTH = 1,
85186 	__XT_STATISTIC_MODE_MAX = 2,
85187 };
85188 
85189 enum xt_statistic_flags {
85190 	XT_STATISTIC_INVERT = 1,
85191 };
85192 
85193 struct xt_statistic_priv;
85194 
85195 struct xt_statistic_info {
85196 	__u16 mode;
85197 	__u16 flags;
85198 	union {
85199 		struct {
85200 			__u32 probability;
85201 		} random;
85202 		struct {
85203 			__u32 every;
85204 			__u32 packet;
85205 			__u32 count;
85206 		} nth;
85207 	} u;
85208 	struct xt_statistic_priv *master;
85209 };
85210 
85211 struct xt_statistic_priv {
85212 	atomic_t count;
85213 	long: 32;
85214 	long: 64;
85215 	long: 64;
85216 	long: 64;
85217 	long: 64;
85218 	long: 64;
85219 	long: 64;
85220 	long: 64;
85221 };
85222 
85223 struct mr_table_ops {
85224 	const struct rhashtable_params *rht_params;
85225 	void *cmparg_any;
85226 };
85227 
85228 struct vif_device {
85229 	struct net_device *dev;
85230 	netdevice_tracker dev_tracker;
85231 	long unsigned int bytes_in;
85232 	long unsigned int bytes_out;
85233 	long unsigned int pkt_in;
85234 	long unsigned int pkt_out;
85235 	long unsigned int rate_limit;
85236 	unsigned char threshold;
85237 	short unsigned int flags;
85238 	int link;
85239 	struct netdev_phys_item_id dev_parent_id;
85240 	__be32 local;
85241 	__be32 remote;
85242 };
85243 
85244 struct mr_table {
85245 	struct list_head list;
85246 	possible_net_t net;
85247 	struct mr_table_ops ops;
85248 	u32 id;
85249 	struct sock *mroute_sk;
85250 	struct timer_list ipmr_expire_timer;
85251 	struct list_head mfc_unres_queue;
85252 	struct vif_device vif_table[32];
85253 	struct rhltable mfc_hash;
85254 	struct list_head mfc_cache_list;
85255 	int maxvif;
85256 	atomic_t cache_resolve_queue_len;
85257 	bool mroute_do_assert;
85258 	bool mroute_do_pim;
85259 	bool mroute_do_wrvifwhole;
85260 	int mroute_reg_vif_num;
85261 };
85262 
85263 struct rtmsg {
85264 	unsigned char rtm_family;
85265 	unsigned char rtm_dst_len;
85266 	unsigned char rtm_src_len;
85267 	unsigned char rtm_tos;
85268 	unsigned char rtm_table;
85269 	unsigned char rtm_protocol;
85270 	unsigned char rtm_scope;
85271 	unsigned char rtm_type;
85272 	unsigned int rtm_flags;
85273 };
85274 
85275 struct rtvia {
85276 	__kernel_sa_family_t rtvia_family;
85277 	__u8 rtvia_addr[0];
85278 };
85279 
85280 struct ipv4_addr_key {
85281 	__be32 addr;
85282 	int vif;
85283 };
85284 
85285 struct inetpeer_addr {
85286 	union {
85287 		struct ipv4_addr_key a4;
85288 		struct in6_addr a6;
85289 		u32 key[4];
85290 	};
85291 	__u16 family;
85292 };
85293 
85294 struct inet_peer {
85295 	struct rb_node rb_node;
85296 	struct inetpeer_addr daddr;
85297 	u32 metrics[17];
85298 	u32 rate_tokens;
85299 	u32 n_redirects;
85300 	long unsigned int rate_last;
85301 	union {
85302 		struct {
85303 			atomic_t rid;
85304 		};
85305 		struct callback_head rcu;
85306 	};
85307 	__u32 dtime;
85308 	refcount_t refcnt;
85309 };
85310 
85311 struct uncached_list {
85312 	spinlock_t lock;
85313 	struct list_head head;
85314 };
85315 
85316 struct rt_cache_stat {
85317 	unsigned int in_slow_tot;
85318 	unsigned int in_slow_mc;
85319 	unsigned int in_no_route;
85320 	unsigned int in_brd;
85321 	unsigned int in_martian_dst;
85322 	unsigned int in_martian_src;
85323 	unsigned int out_slow_tot;
85324 	unsigned int out_slow_mc;
85325 };
85326 
85327 struct fib_alias {
85328 	struct hlist_node fa_list;
85329 	struct fib_info *fa_info;
85330 	u8 fa_tos;
85331 	u8 fa_type;
85332 	u8 fa_state;
85333 	u8 fa_slen;
85334 	u32 tb_id;
85335 	s16 fa_default;
85336 	u8 offload: 1;
85337 	u8 trap: 1;
85338 	u8 offload_failed: 1;
85339 	u8 unused: 5;
85340 	struct callback_head rcu;
85341 };
85342 
85343 struct fib_prop {
85344 	int error;
85345 	u8 scope;
85346 };
85347 
85348 struct raw_hashinfo {
85349 	rwlock_t lock;
85350 	struct hlist_head ht[256];
85351 };
85352 
85353 enum ip_defrag_users {
85354 	IP_DEFRAG_LOCAL_DELIVER = 0,
85355 	IP_DEFRAG_CALL_RA_CHAIN = 1,
85356 	IP_DEFRAG_CONNTRACK_IN = 2,
85357 	__IP_DEFRAG_CONNTRACK_IN_END = 65537,
85358 	IP_DEFRAG_CONNTRACK_OUT = 65538,
85359 	__IP_DEFRAG_CONNTRACK_OUT_END = 131073,
85360 	IP_DEFRAG_CONNTRACK_BRIDGE_IN = 131074,
85361 	__IP_DEFRAG_CONNTRACK_BRIDGE_IN = 196609,
85362 	IP_DEFRAG_VS_IN = 196610,
85363 	IP_DEFRAG_VS_OUT = 196611,
85364 	IP_DEFRAG_VS_FWD = 196612,
85365 	IP_DEFRAG_AF_PACKET = 196613,
85366 	IP_DEFRAG_MACVLAN = 196614,
85367 };
85368 
85369 enum {
85370 	INET_FRAG_FIRST_IN = 1,
85371 	INET_FRAG_LAST_IN = 2,
85372 	INET_FRAG_COMPLETE = 4,
85373 	INET_FRAG_HASH_DEAD = 8,
85374 };
85375 
85376 struct ipq {
85377 	struct inet_frag_queue q;
85378 	u8 ecn;
85379 	u16 max_df_size;
85380 	int iif;
85381 	unsigned int rid;
85382 	struct inet_peer *peer;
85383 };
85384 
85385 struct ip_options_data {
85386 	struct ip_options_rcu opt;
85387 	char data[40];
85388 };
85389 
85390 struct ipcm_cookie {
85391 	struct sockcm_cookie sockc;
85392 	__be32 addr;
85393 	int oif;
85394 	struct ip_options_rcu *opt;
85395 	__u8 ttl;
85396 	__s16 tos;
85397 	char priority;
85398 	__u16 gso_size;
85399 };
85400 
85401 struct ip_fraglist_iter {
85402 	struct sk_buff *frag;
85403 	struct iphdr *iph;
85404 	int offset;
85405 	unsigned int hlen;
85406 };
85407 
85408 struct ip_frag_state {
85409 	bool DF;
85410 	unsigned int hlen;
85411 	unsigned int ll_rs;
85412 	unsigned int mtu;
85413 	unsigned int left;
85414 	int offset;
85415 	int ptr;
85416 	__be16 not_last_frag;
85417 };
85418 
85419 struct ip_reply_arg {
85420 	struct kvec iov[1];
85421 	int flags;
85422 	__wsum csum;
85423 	int csumoffset;
85424 	int bound_dev_if;
85425 	u8 tos;
85426 	kuid_t uid;
85427 };
85428 
85429 struct ip_mreq_source {
85430 	__be32 imr_multiaddr;
85431 	__be32 imr_interface;
85432 	__be32 imr_sourceaddr;
85433 };
85434 
85435 struct ip_msfilter {
85436 	union {
85437 		struct {
85438 			__be32 imsf_multiaddr_aux;
85439 			__be32 imsf_interface_aux;
85440 			__u32 imsf_fmode_aux;
85441 			__u32 imsf_numsrc_aux;
85442 			__be32 imsf_slist[1];
85443 		};
85444 		struct {
85445 			__be32 imsf_multiaddr;
85446 			__be32 imsf_interface;
85447 			__u32 imsf_fmode;
85448 			__u32 imsf_numsrc;
85449 			__be32 imsf_slist_flex[0];
85450 		};
85451 	};
85452 };
85453 
85454 struct group_req {
85455 	__u32 gr_interface;
85456 	struct __kernel_sockaddr_storage gr_group;
85457 };
85458 
85459 struct group_source_req {
85460 	__u32 gsr_interface;
85461 	struct __kernel_sockaddr_storage gsr_group;
85462 	struct __kernel_sockaddr_storage gsr_source;
85463 };
85464 
85465 struct group_filter {
85466 	union {
85467 		struct {
85468 			__u32 gf_interface_aux;
85469 			struct __kernel_sockaddr_storage gf_group_aux;
85470 			__u32 gf_fmode_aux;
85471 			__u32 gf_numsrc_aux;
85472 			struct __kernel_sockaddr_storage gf_slist[1];
85473 		};
85474 		struct {
85475 			__u32 gf_interface;
85476 			struct __kernel_sockaddr_storage gf_group;
85477 			__u32 gf_fmode;
85478 			__u32 gf_numsrc;
85479 			struct __kernel_sockaddr_storage gf_slist_flex[0];
85480 		};
85481 	};
85482 };
85483 
85484 struct in_pktinfo {
85485 	int ipi_ifindex;
85486 	struct in_addr ipi_spec_dst;
85487 	struct in_addr ipi_addr;
85488 };
85489 
85490 struct compat_group_req {
85491 	__u32 gr_interface;
85492 	struct __kernel_sockaddr_storage gr_group;
85493 } __attribute__((packed));
85494 
85495 struct compat_group_source_req {
85496 	__u32 gsr_interface;
85497 	struct __kernel_sockaddr_storage gsr_group;
85498 	struct __kernel_sockaddr_storage gsr_source;
85499 } __attribute__((packed));
85500 
85501 struct compat_group_filter {
85502 	union {
85503 		struct {
85504 			__u32 gf_interface_aux;
85505 			struct __kernel_sockaddr_storage gf_group_aux;
85506 			__u32 gf_fmode_aux;
85507 			__u32 gf_numsrc_aux;
85508 			struct __kernel_sockaddr_storage gf_slist[1];
85509 		} __attribute__((packed));
85510 		struct {
85511 			__u32 gf_interface;
85512 			struct __kernel_sockaddr_storage gf_group;
85513 			__u32 gf_fmode;
85514 			__u32 gf_numsrc;
85515 			struct __kernel_sockaddr_storage gf_slist_flex[0];
85516 		} __attribute__((packed));
85517 	};
85518 } __attribute__((packed));
85519 
85520 enum {
85521 	BPFILTER_IPT_SO_SET_REPLACE = 64,
85522 	BPFILTER_IPT_SO_SET_ADD_COUNTERS = 65,
85523 	BPFILTER_IPT_SET_MAX = 66,
85524 };
85525 
85526 enum {
85527 	BPFILTER_IPT_SO_GET_INFO = 64,
85528 	BPFILTER_IPT_SO_GET_ENTRIES = 65,
85529 	BPFILTER_IPT_SO_GET_REVISION_MATCH = 66,
85530 	BPFILTER_IPT_SO_GET_REVISION_TARGET = 67,
85531 	BPFILTER_IPT_GET_MAX = 68,
85532 };
85533 
85534 struct bpfilter_umh_ops {
85535 	struct umd_info info;
85536 	struct mutex lock;
85537 	int (*sockopt)(struct sock *, int, sockptr_t, unsigned int, bool);
85538 	int (*start)();
85539 };
85540 
85541 struct tcpvegas_info {
85542 	__u32 tcpv_enabled;
85543 	__u32 tcpv_rttcnt;
85544 	__u32 tcpv_rtt;
85545 	__u32 tcpv_minrtt;
85546 };
85547 
85548 struct tcp_dctcp_info {
85549 	__u16 dctcp_enabled;
85550 	__u16 dctcp_ce_state;
85551 	__u32 dctcp_alpha;
85552 	__u32 dctcp_ab_ecn;
85553 	__u32 dctcp_ab_tot;
85554 };
85555 
85556 struct tcp_bbr_info {
85557 	__u32 bbr_bw_lo;
85558 	__u32 bbr_bw_hi;
85559 	__u32 bbr_min_rtt;
85560 	__u32 bbr_pacing_gain;
85561 	__u32 bbr_cwnd_gain;
85562 };
85563 
85564 union tcp_cc_info {
85565 	struct tcpvegas_info vegas;
85566 	struct tcp_dctcp_info dctcp;
85567 	struct tcp_bbr_info bbr;
85568 };
85569 
85570 enum inet_csk_ack_state_t {
85571 	ICSK_ACK_SCHED = 1,
85572 	ICSK_ACK_TIMER = 2,
85573 	ICSK_ACK_PUSHED = 4,
85574 	ICSK_ACK_PUSHED2 = 8,
85575 	ICSK_ACK_NOW = 16,
85576 };
85577 
85578 struct tcp_repair_opt {
85579 	__u32 opt_code;
85580 	__u32 opt_val;
85581 };
85582 
85583 struct tcp_repair_window {
85584 	__u32 snd_wl1;
85585 	__u32 snd_wnd;
85586 	__u32 max_window;
85587 	__u32 rcv_wnd;
85588 	__u32 rcv_wup;
85589 };
85590 
85591 enum {
85592 	TCP_NO_QUEUE = 0,
85593 	TCP_RECV_QUEUE = 1,
85594 	TCP_SEND_QUEUE = 2,
85595 	TCP_QUEUES_NR = 3,
85596 };
85597 
85598 struct tcp_info {
85599 	__u8 tcpi_state;
85600 	__u8 tcpi_ca_state;
85601 	__u8 tcpi_retransmits;
85602 	__u8 tcpi_probes;
85603 	__u8 tcpi_backoff;
85604 	__u8 tcpi_options;
85605 	__u8 tcpi_snd_wscale: 4;
85606 	__u8 tcpi_rcv_wscale: 4;
85607 	__u8 tcpi_delivery_rate_app_limited: 1;
85608 	__u8 tcpi_fastopen_client_fail: 2;
85609 	__u32 tcpi_rto;
85610 	__u32 tcpi_ato;
85611 	__u32 tcpi_snd_mss;
85612 	__u32 tcpi_rcv_mss;
85613 	__u32 tcpi_unacked;
85614 	__u32 tcpi_sacked;
85615 	__u32 tcpi_lost;
85616 	__u32 tcpi_retrans;
85617 	__u32 tcpi_fackets;
85618 	__u32 tcpi_last_data_sent;
85619 	__u32 tcpi_last_ack_sent;
85620 	__u32 tcpi_last_data_recv;
85621 	__u32 tcpi_last_ack_recv;
85622 	__u32 tcpi_pmtu;
85623 	__u32 tcpi_rcv_ssthresh;
85624 	__u32 tcpi_rtt;
85625 	__u32 tcpi_rttvar;
85626 	__u32 tcpi_snd_ssthresh;
85627 	__u32 tcpi_snd_cwnd;
85628 	__u32 tcpi_advmss;
85629 	__u32 tcpi_reordering;
85630 	__u32 tcpi_rcv_rtt;
85631 	__u32 tcpi_rcv_space;
85632 	__u32 tcpi_total_retrans;
85633 	__u64 tcpi_pacing_rate;
85634 	__u64 tcpi_max_pacing_rate;
85635 	__u64 tcpi_bytes_acked;
85636 	__u64 tcpi_bytes_received;
85637 	__u32 tcpi_segs_out;
85638 	__u32 tcpi_segs_in;
85639 	__u32 tcpi_notsent_bytes;
85640 	__u32 tcpi_min_rtt;
85641 	__u32 tcpi_data_segs_in;
85642 	__u32 tcpi_data_segs_out;
85643 	__u64 tcpi_delivery_rate;
85644 	__u64 tcpi_busy_time;
85645 	__u64 tcpi_rwnd_limited;
85646 	__u64 tcpi_sndbuf_limited;
85647 	__u32 tcpi_delivered;
85648 	__u32 tcpi_delivered_ce;
85649 	__u64 tcpi_bytes_sent;
85650 	__u64 tcpi_bytes_retrans;
85651 	__u32 tcpi_dsack_dups;
85652 	__u32 tcpi_reord_seen;
85653 	__u32 tcpi_rcv_ooopack;
85654 	__u32 tcpi_snd_wnd;
85655 };
85656 
85657 enum {
85658 	TCP_NLA_PAD = 0,
85659 	TCP_NLA_BUSY = 1,
85660 	TCP_NLA_RWND_LIMITED = 2,
85661 	TCP_NLA_SNDBUF_LIMITED = 3,
85662 	TCP_NLA_DATA_SEGS_OUT = 4,
85663 	TCP_NLA_TOTAL_RETRANS = 5,
85664 	TCP_NLA_PACING_RATE = 6,
85665 	TCP_NLA_DELIVERY_RATE = 7,
85666 	TCP_NLA_SND_CWND = 8,
85667 	TCP_NLA_REORDERING = 9,
85668 	TCP_NLA_MIN_RTT = 10,
85669 	TCP_NLA_RECUR_RETRANS = 11,
85670 	TCP_NLA_DELIVERY_RATE_APP_LMT = 12,
85671 	TCP_NLA_SNDQ_SIZE = 13,
85672 	TCP_NLA_CA_STATE = 14,
85673 	TCP_NLA_SND_SSTHRESH = 15,
85674 	TCP_NLA_DELIVERED = 16,
85675 	TCP_NLA_DELIVERED_CE = 17,
85676 	TCP_NLA_BYTES_SENT = 18,
85677 	TCP_NLA_BYTES_RETRANS = 19,
85678 	TCP_NLA_DSACK_DUPS = 20,
85679 	TCP_NLA_REORD_SEEN = 21,
85680 	TCP_NLA_SRTT = 22,
85681 	TCP_NLA_TIMEOUT_REHASH = 23,
85682 	TCP_NLA_BYTES_NOTSENT = 24,
85683 	TCP_NLA_EDT = 25,
85684 	TCP_NLA_TTL = 26,
85685 };
85686 
85687 struct tcp_zerocopy_receive {
85688 	__u64 address;
85689 	__u32 length;
85690 	__u32 recv_skip_hint;
85691 	__u32 inq;
85692 	__s32 err;
85693 	__u64 copybuf_address;
85694 	__s32 copybuf_len;
85695 	__u32 flags;
85696 	__u64 msg_control;
85697 	__u64 msg_controllen;
85698 	__u32 msg_flags;
85699 	__u32 reserved;
85700 };
85701 
85702 enum {
85703 	BPF_TCP_ESTABLISHED = 1,
85704 	BPF_TCP_SYN_SENT = 2,
85705 	BPF_TCP_SYN_RECV = 3,
85706 	BPF_TCP_FIN_WAIT1 = 4,
85707 	BPF_TCP_FIN_WAIT2 = 5,
85708 	BPF_TCP_TIME_WAIT = 6,
85709 	BPF_TCP_CLOSE = 7,
85710 	BPF_TCP_CLOSE_WAIT = 8,
85711 	BPF_TCP_LAST_ACK = 9,
85712 	BPF_TCP_LISTEN = 10,
85713 	BPF_TCP_CLOSING = 11,
85714 	BPF_TCP_NEW_SYN_RECV = 12,
85715 	BPF_TCP_MAX_STATES = 13,
85716 };
85717 
85718 struct tcp_md5sig_pool {
85719 	struct ahash_request *md5_req;
85720 	void *scratch;
85721 };
85722 
85723 enum tcp_chrono {
85724 	TCP_CHRONO_UNSPEC = 0,
85725 	TCP_CHRONO_BUSY = 1,
85726 	TCP_CHRONO_RWND_LIMITED = 2,
85727 	TCP_CHRONO_SNDBUF_LIMITED = 3,
85728 	__TCP_CHRONO_MAX = 4,
85729 };
85730 
85731 enum {
85732 	TCP_CMSG_INQ = 1,
85733 	TCP_CMSG_TS = 2,
85734 };
85735 
85736 struct tcp_splice_state {
85737 	struct pipe_inode_info *pipe;
85738 	size_t len;
85739 	unsigned int flags;
85740 };
85741 
85742 enum tcp_fastopen_client_fail {
85743 	TFO_STATUS_UNSPEC = 0,
85744 	TFO_COOKIE_UNAVAILABLE = 1,
85745 	TFO_DATA_NOT_ACKED = 2,
85746 	TFO_SYN_RETRANSMITTED = 3,
85747 };
85748 
85749 enum tcp_queue {
85750 	TCP_FRAG_IN_WRITE_QUEUE = 0,
85751 	TCP_FRAG_IN_RTX_QUEUE = 1,
85752 };
85753 
85754 enum tcp_ca_ack_event_flags {
85755 	CA_ACK_SLOWPATH = 1,
85756 	CA_ACK_WIN_UPDATE = 2,
85757 	CA_ACK_ECE = 4,
85758 };
85759 
85760 struct tcp_sacktag_state {
85761 	u64 first_sackt;
85762 	u64 last_sackt;
85763 	u32 reord;
85764 	u32 sack_delivered;
85765 	int flag;
85766 	unsigned int mss_now;
85767 	struct rate_sample *rate;
85768 };
85769 
85770 enum pkt_hash_types {
85771 	PKT_HASH_TYPE_NONE = 0,
85772 	PKT_HASH_TYPE_L2 = 1,
85773 	PKT_HASH_TYPE_L3 = 2,
85774 	PKT_HASH_TYPE_L4 = 3,
85775 };
85776 
85777 enum tsq_flags {
85778 	TSQF_THROTTLED = 1,
85779 	TSQF_QUEUED = 2,
85780 	TCPF_TSQ_DEFERRED = 4,
85781 	TCPF_WRITE_TIMER_DEFERRED = 8,
85782 	TCPF_DELACK_TIMER_DEFERRED = 16,
85783 	TCPF_MTU_REDUCED_DEFERRED = 32,
85784 };
85785 
85786 enum {
85787 	BPF_WRITE_HDR_TCP_CURRENT_MSS = 1,
85788 	BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 2,
85789 };
85790 
85791 struct mptcp_out_options {};
85792 
85793 struct tcp_out_options {
85794 	u16 options;
85795 	u16 mss;
85796 	u8 ws;
85797 	u8 num_sack_blocks;
85798 	u8 hash_size;
85799 	u8 bpf_opt_len;
85800 	__u8 *hash_location;
85801 	__u32 tsval;
85802 	__u32 tsecr;
85803 	struct tcp_fastopen_cookie *fastopen_cookie;
85804 	struct mptcp_out_options mptcp;
85805 };
85806 
85807 struct tsq_tasklet {
85808 	struct tasklet_struct tasklet;
85809 	struct list_head head;
85810 };
85811 
85812 struct tcp_md5sig {
85813 	struct __kernel_sockaddr_storage tcpm_addr;
85814 	__u8 tcpm_flags;
85815 	__u8 tcpm_prefixlen;
85816 	__u16 tcpm_keylen;
85817 	int tcpm_ifindex;
85818 	__u8 tcpm_key[80];
85819 };
85820 
85821 enum tcp_tw_status {
85822 	TCP_TW_SUCCESS = 0,
85823 	TCP_TW_RST = 1,
85824 	TCP_TW_ACK = 2,
85825 	TCP_TW_SYN = 3,
85826 };
85827 
85828 struct tcp4_pseudohdr {
85829 	__be32 saddr;
85830 	__be32 daddr;
85831 	__u8 pad;
85832 	__u8 protocol;
85833 	__be16 len;
85834 };
85835 
85836 enum tcp_seq_states {
85837 	TCP_SEQ_STATE_LISTENING = 0,
85838 	TCP_SEQ_STATE_ESTABLISHED = 1,
85839 };
85840 
85841 struct tcp_seq_afinfo {
85842 	sa_family_t family;
85843 };
85844 
85845 struct tcp_iter_state {
85846 	struct seq_net_private p;
85847 	enum tcp_seq_states state;
85848 	struct sock *syn_wait_sk;
85849 	int bucket;
85850 	int offset;
85851 	int sbucket;
85852 	int num;
85853 	loff_t last_pos;
85854 };
85855 
85856 struct bpf_tcp_iter_state {
85857 	struct tcp_iter_state state;
85858 	unsigned int cur_sk;
85859 	unsigned int end_sk;
85860 	unsigned int max_sk;
85861 	struct sock **batch;
85862 	bool st_bucket_done;
85863 };
85864 
85865 struct bpf_iter__tcp {
85866 	union {
85867 		struct bpf_iter_meta *meta;
85868 	};
85869 	union {
85870 		struct sock_common *sk_common;
85871 	};
85872 	uid_t uid;
85873 };
85874 
85875 enum tcp_metric_index {
85876 	TCP_METRIC_RTT = 0,
85877 	TCP_METRIC_RTTVAR = 1,
85878 	TCP_METRIC_SSTHRESH = 2,
85879 	TCP_METRIC_CWND = 3,
85880 	TCP_METRIC_REORDERING = 4,
85881 	TCP_METRIC_RTT_US = 5,
85882 	TCP_METRIC_RTTVAR_US = 6,
85883 	__TCP_METRIC_MAX = 7,
85884 };
85885 
85886 enum {
85887 	TCP_METRICS_ATTR_UNSPEC = 0,
85888 	TCP_METRICS_ATTR_ADDR_IPV4 = 1,
85889 	TCP_METRICS_ATTR_ADDR_IPV6 = 2,
85890 	TCP_METRICS_ATTR_AGE = 3,
85891 	TCP_METRICS_ATTR_TW_TSVAL = 4,
85892 	TCP_METRICS_ATTR_TW_TS_STAMP = 5,
85893 	TCP_METRICS_ATTR_VALS = 6,
85894 	TCP_METRICS_ATTR_FOPEN_MSS = 7,
85895 	TCP_METRICS_ATTR_FOPEN_SYN_DROPS = 8,
85896 	TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS = 9,
85897 	TCP_METRICS_ATTR_FOPEN_COOKIE = 10,
85898 	TCP_METRICS_ATTR_SADDR_IPV4 = 11,
85899 	TCP_METRICS_ATTR_SADDR_IPV6 = 12,
85900 	TCP_METRICS_ATTR_PAD = 13,
85901 	__TCP_METRICS_ATTR_MAX = 14,
85902 };
85903 
85904 enum {
85905 	TCP_METRICS_CMD_UNSPEC = 0,
85906 	TCP_METRICS_CMD_GET = 1,
85907 	TCP_METRICS_CMD_DEL = 2,
85908 	__TCP_METRICS_CMD_MAX = 3,
85909 };
85910 
85911 struct tcp_fastopen_metrics {
85912 	u16 mss;
85913 	u16 syn_loss: 10;
85914 	u16 try_exp: 2;
85915 	long unsigned int last_syn_loss;
85916 	struct tcp_fastopen_cookie cookie;
85917 };
85918 
85919 struct tcp_metrics_block {
85920 	struct tcp_metrics_block *tcpm_next;
85921 	possible_net_t tcpm_net;
85922 	struct inetpeer_addr tcpm_saddr;
85923 	struct inetpeer_addr tcpm_daddr;
85924 	long unsigned int tcpm_stamp;
85925 	u32 tcpm_lock;
85926 	u32 tcpm_vals[5];
85927 	struct tcp_fastopen_metrics tcpm_fastopen;
85928 	struct callback_head callback_head;
85929 };
85930 
85931 struct tcpm_hash_bucket {
85932 	struct tcp_metrics_block *chain;
85933 };
85934 
85935 struct icmp_filter {
85936 	__u32 data;
85937 };
85938 
85939 struct raw_iter_state {
85940 	struct seq_net_private p;
85941 	int bucket;
85942 };
85943 
85944 struct raw_sock {
85945 	struct inet_sock inet;
85946 	struct icmp_filter filter;
85947 	u32 ipmr_table;
85948 };
85949 
85950 struct raw_frag_vec {
85951 	struct msghdr *msg;
85952 	union {
85953 		struct icmphdr icmph;
85954 		char c[1];
85955 	} hdr;
85956 	int hlen;
85957 };
85958 
85959 struct udp_skb_cb {
85960 	union {
85961 		struct inet_skb_parm h4;
85962 		struct inet6_skb_parm h6;
85963 	} header;
85964 	__u16 cscov;
85965 	__u8 partial_cov;
85966 };
85967 
85968 struct udp_dev_scratch {
85969 	u32 _tsize_state;
85970 	u16 len;
85971 	bool is_linear;
85972 	bool csum_unnecessary;
85973 };
85974 
85975 struct udp_seq_afinfo {
85976 	sa_family_t family;
85977 	struct udp_table *udp_table;
85978 };
85979 
85980 struct udp_iter_state {
85981 	struct seq_net_private p;
85982 	int bucket;
85983 	struct udp_seq_afinfo *bpf_seq_afinfo;
85984 };
85985 
85986 struct bpf_iter__udp {
85987 	union {
85988 		struct bpf_iter_meta *meta;
85989 	};
85990 	union {
85991 		struct udp_sock *udp_sk;
85992 	};
85993 	uid_t uid;
85994 	int: 32;
85995 	int bucket;
85996 };
85997 
85998 struct inet_protosw {
85999 	struct list_head list;
86000 	short unsigned int type;
86001 	short unsigned int protocol;
86002 	struct proto *prot;
86003 	const struct proto_ops *ops;
86004 	unsigned char flags;
86005 };
86006 
86007 typedef struct sock * (*udp_lookup_t)(const struct sk_buff *, __be16, __be16);
86008 
86009 typedef struct sk_buff * (*gro_receive_sk_t)(struct sock *, struct list_head *, struct sk_buff *);
86010 
86011 struct arpreq {
86012 	struct sockaddr arp_pa;
86013 	struct sockaddr arp_ha;
86014 	int arp_flags;
86015 	struct sockaddr arp_netmask;
86016 	char arp_dev[16];
86017 };
86018 
86019 enum {
86020 	XFRM_LOOKUP_ICMP = 1,
86021 	XFRM_LOOKUP_QUEUE = 2,
86022 	XFRM_LOOKUP_KEEP_DST_REF = 4,
86023 };
86024 
86025 struct icmp_ext_hdr {
86026 	__u8 reserved1: 4;
86027 	__u8 version: 4;
86028 	__u8 reserved2;
86029 	__sum16 checksum;
86030 };
86031 
86032 struct icmp_extobj_hdr {
86033 	__be16 length;
86034 	__u8 class_num;
86035 	__u8 class_type;
86036 };
86037 
86038 struct icmp_ext_echo_ctype3_hdr {
86039 	__be16 afi;
86040 	__u8 addrlen;
86041 	__u8 reserved;
86042 };
86043 
86044 struct icmp_ext_echo_iio {
86045 	struct icmp_extobj_hdr extobj_hdr;
86046 	union {
86047 		char name[16];
86048 		__be32 ifindex;
86049 		struct {
86050 			struct icmp_ext_echo_ctype3_hdr ctype3_hdr;
86051 			union {
86052 				__be32 ipv4_addr;
86053 				struct in6_addr ipv6_addr;
86054 			} ip_addr;
86055 		} addr;
86056 	} ident;
86057 };
86058 
86059 struct pingv6_ops {
86060 	int (*ipv6_recv_error)(struct sock *, struct msghdr *, int, int *);
86061 	void (*ip6_datagram_recv_common_ctl)(struct sock *, struct msghdr *, struct sk_buff *);
86062 	void (*ip6_datagram_recv_specific_ctl)(struct sock *, struct msghdr *, struct sk_buff *);
86063 	int (*icmpv6_err_convert)(u8, u8, int *);
86064 	void (*ipv6_icmp_error)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *);
86065 	int (*ipv6_chk_addr)(struct net *, const struct in6_addr *, const struct net_device *, int);
86066 };
86067 
86068 struct icmp_bxm {
86069 	struct sk_buff *skb;
86070 	int offset;
86071 	int data_len;
86072 	struct {
86073 		struct icmphdr icmph;
86074 		__be32 times[3];
86075 	} data;
86076 	int head_len;
86077 	struct ip_options_data replyopts;
86078 };
86079 
86080 struct icmp_control {
86081 	bool (*handler)(struct sk_buff *);
86082 	short int error;
86083 };
86084 
86085 struct ifaddrmsg {
86086 	__u8 ifa_family;
86087 	__u8 ifa_prefixlen;
86088 	__u8 ifa_flags;
86089 	__u8 ifa_scope;
86090 	__u32 ifa_index;
86091 };
86092 
86093 enum {
86094 	IFA_UNSPEC = 0,
86095 	IFA_ADDRESS = 1,
86096 	IFA_LOCAL = 2,
86097 	IFA_LABEL = 3,
86098 	IFA_BROADCAST = 4,
86099 	IFA_ANYCAST = 5,
86100 	IFA_CACHEINFO = 6,
86101 	IFA_MULTICAST = 7,
86102 	IFA_FLAGS = 8,
86103 	IFA_RT_PRIORITY = 9,
86104 	IFA_TARGET_NETNSID = 10,
86105 	__IFA_MAX = 11,
86106 };
86107 
86108 struct ifa_cacheinfo {
86109 	__u32 ifa_prefered;
86110 	__u32 ifa_valid;
86111 	__u32 cstamp;
86112 	__u32 tstamp;
86113 };
86114 
86115 enum {
86116 	IFLA_INET_UNSPEC = 0,
86117 	IFLA_INET_CONF = 1,
86118 	__IFLA_INET_MAX = 2,
86119 };
86120 
86121 struct in_validator_info {
86122 	__be32 ivi_addr;
86123 	struct in_device *ivi_dev;
86124 	struct netlink_ext_ack *extack;
86125 };
86126 
86127 struct netconfmsg {
86128 	__u8 ncm_family;
86129 };
86130 
86131 enum {
86132 	NETCONFA_UNSPEC = 0,
86133 	NETCONFA_IFINDEX = 1,
86134 	NETCONFA_FORWARDING = 2,
86135 	NETCONFA_RP_FILTER = 3,
86136 	NETCONFA_MC_FORWARDING = 4,
86137 	NETCONFA_PROXY_NEIGH = 5,
86138 	NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN = 6,
86139 	NETCONFA_INPUT = 7,
86140 	NETCONFA_BC_FORWARDING = 8,
86141 	__NETCONFA_MAX = 9,
86142 };
86143 
86144 struct inet_fill_args {
86145 	u32 portid;
86146 	u32 seq;
86147 	int event;
86148 	unsigned int flags;
86149 	int netnsid;
86150 	int ifindex;
86151 };
86152 
86153 struct devinet_sysctl_table {
86154 	struct ctl_table_header *sysctl_header;
86155 	struct ctl_table devinet_vars[34];
86156 };
86157 
86158 struct rtentry {
86159 	long unsigned int rt_pad1;
86160 	struct sockaddr rt_dst;
86161 	struct sockaddr rt_gateway;
86162 	struct sockaddr rt_genmask;
86163 	short unsigned int rt_flags;
86164 	short int rt_pad2;
86165 	long unsigned int rt_pad3;
86166 	void *rt_pad4;
86167 	short int rt_metric;
86168 	char *rt_dev;
86169 	long unsigned int rt_mtu;
86170 	long unsigned int rt_window;
86171 	short unsigned int rt_irtt;
86172 };
86173 
86174 struct igmphdr {
86175 	__u8 type;
86176 	__u8 code;
86177 	__sum16 csum;
86178 	__be32 group;
86179 };
86180 
86181 struct igmpv3_grec {
86182 	__u8 grec_type;
86183 	__u8 grec_auxwords;
86184 	__be16 grec_nsrcs;
86185 	__be32 grec_mca;
86186 	__be32 grec_src[0];
86187 };
86188 
86189 struct igmpv3_report {
86190 	__u8 type;
86191 	__u8 resv1;
86192 	__sum16 csum;
86193 	__be16 resv2;
86194 	__be16 ngrec;
86195 	struct igmpv3_grec grec[0];
86196 };
86197 
86198 struct igmpv3_query {
86199 	__u8 type;
86200 	__u8 code;
86201 	__sum16 csum;
86202 	__be32 group;
86203 	__u8 qrv: 3;
86204 	__u8 suppress: 1;
86205 	__u8 resv: 4;
86206 	__u8 qqic;
86207 	__be16 nsrcs;
86208 	__be32 srcs[0];
86209 };
86210 
86211 struct igmp_mc_iter_state {
86212 	struct seq_net_private p;
86213 	struct net_device *dev;
86214 	struct in_device *in_dev;
86215 };
86216 
86217 struct igmp_mcf_iter_state {
86218 	struct seq_net_private p;
86219 	struct net_device *dev;
86220 	struct in_device *idev;
86221 	struct ip_mc_list *im;
86222 };
86223 
86224 struct fib_config {
86225 	u8 fc_dst_len;
86226 	u8 fc_tos;
86227 	u8 fc_protocol;
86228 	u8 fc_scope;
86229 	u8 fc_type;
86230 	u8 fc_gw_family;
86231 	u32 fc_table;
86232 	__be32 fc_dst;
86233 	union {
86234 		__be32 fc_gw4;
86235 		struct in6_addr fc_gw6;
86236 	};
86237 	int fc_oif;
86238 	u32 fc_flags;
86239 	u32 fc_priority;
86240 	__be32 fc_prefsrc;
86241 	u32 fc_nh_id;
86242 	struct nlattr *fc_mx;
86243 	struct rtnexthop *fc_mp;
86244 	int fc_mx_len;
86245 	int fc_mp_len;
86246 	u32 fc_flow;
86247 	u32 fc_nlflags;
86248 	struct nl_info fc_nlinfo;
86249 	struct nlattr *fc_encap;
86250 	u16 fc_encap_type;
86251 };
86252 
86253 struct fib_result_nl {
86254 	__be32 fl_addr;
86255 	u32 fl_mark;
86256 	unsigned char fl_tos;
86257 	unsigned char fl_scope;
86258 	unsigned char tb_id_in;
86259 	unsigned char tb_id;
86260 	unsigned char prefixlen;
86261 	unsigned char nh_sel;
86262 	unsigned char type;
86263 	unsigned char scope;
86264 	int err;
86265 };
86266 
86267 struct fib_dump_filter {
86268 	u32 table_id;
86269 	bool filter_set;
86270 	bool dump_routes;
86271 	bool dump_exceptions;
86272 	unsigned char protocol;
86273 	unsigned char rt_type;
86274 	unsigned int flags;
86275 	struct net_device *dev;
86276 };
86277 
86278 struct fib_nh_notifier_info {
86279 	struct fib_notifier_info info;
86280 	struct fib_nh *fib_nh;
86281 };
86282 
86283 typedef unsigned int t_key;
86284 
86285 struct key_vector {
86286 	t_key key;
86287 	unsigned char pos;
86288 	unsigned char bits;
86289 	unsigned char slen;
86290 	union {
86291 		struct hlist_head leaf;
86292 		struct key_vector *tnode[0];
86293 	};
86294 };
86295 
86296 struct tnode {
86297 	struct callback_head rcu;
86298 	t_key empty_children;
86299 	t_key full_children;
86300 	struct key_vector *parent;
86301 	struct key_vector kv[1];
86302 };
86303 
86304 struct trie_stat {
86305 	unsigned int totdepth;
86306 	unsigned int maxdepth;
86307 	unsigned int tnodes;
86308 	unsigned int leaves;
86309 	unsigned int nullpointers;
86310 	unsigned int prefixes;
86311 	unsigned int nodesizes[32];
86312 };
86313 
86314 struct trie {
86315 	struct key_vector kv[1];
86316 };
86317 
86318 struct fib_trie_iter {
86319 	struct seq_net_private p;
86320 	struct fib_table *tb;
86321 	struct key_vector *tnode;
86322 	unsigned int index;
86323 	unsigned int depth;
86324 };
86325 
86326 struct fib_route_iter {
86327 	struct seq_net_private p;
86328 	struct fib_table *main_tb;
86329 	struct key_vector *tnode;
86330 	loff_t pos;
86331 	t_key key;
86332 };
86333 
86334 struct ipfrag_skb_cb {
86335 	union {
86336 		struct inet_skb_parm h4;
86337 		struct inet6_skb_parm h6;
86338 	};
86339 	struct sk_buff *next_frag;
86340 	int frag_run_len;
86341 };
86342 
86343 struct ping_iter_state {
86344 	struct seq_net_private p;
86345 	int bucket;
86346 	sa_family_t family;
86347 };
86348 
86349 struct pingfakehdr {
86350 	struct icmphdr icmph;
86351 	struct msghdr *msg;
86352 	sa_family_t family;
86353 	__wsum wcheck;
86354 };
86355 
86356 struct ping_table {
86357 	struct hlist_nulls_head hash[64];
86358 	rwlock_t lock;
86359 };
86360 
86361 enum lwtunnel_ip_t {
86362 	LWTUNNEL_IP_UNSPEC = 0,
86363 	LWTUNNEL_IP_ID = 1,
86364 	LWTUNNEL_IP_DST = 2,
86365 	LWTUNNEL_IP_SRC = 3,
86366 	LWTUNNEL_IP_TTL = 4,
86367 	LWTUNNEL_IP_TOS = 5,
86368 	LWTUNNEL_IP_FLAGS = 6,
86369 	LWTUNNEL_IP_PAD = 7,
86370 	LWTUNNEL_IP_OPTS = 8,
86371 	__LWTUNNEL_IP_MAX = 9,
86372 };
86373 
86374 enum lwtunnel_ip6_t {
86375 	LWTUNNEL_IP6_UNSPEC = 0,
86376 	LWTUNNEL_IP6_ID = 1,
86377 	LWTUNNEL_IP6_DST = 2,
86378 	LWTUNNEL_IP6_SRC = 3,
86379 	LWTUNNEL_IP6_HOPLIMIT = 4,
86380 	LWTUNNEL_IP6_TC = 5,
86381 	LWTUNNEL_IP6_FLAGS = 6,
86382 	LWTUNNEL_IP6_PAD = 7,
86383 	LWTUNNEL_IP6_OPTS = 8,
86384 	__LWTUNNEL_IP6_MAX = 9,
86385 };
86386 
86387 enum {
86388 	LWTUNNEL_IP_OPTS_UNSPEC = 0,
86389 	LWTUNNEL_IP_OPTS_GENEVE = 1,
86390 	LWTUNNEL_IP_OPTS_VXLAN = 2,
86391 	LWTUNNEL_IP_OPTS_ERSPAN = 3,
86392 	__LWTUNNEL_IP_OPTS_MAX = 4,
86393 };
86394 
86395 enum {
86396 	LWTUNNEL_IP_OPT_GENEVE_UNSPEC = 0,
86397 	LWTUNNEL_IP_OPT_GENEVE_CLASS = 1,
86398 	LWTUNNEL_IP_OPT_GENEVE_TYPE = 2,
86399 	LWTUNNEL_IP_OPT_GENEVE_DATA = 3,
86400 	__LWTUNNEL_IP_OPT_GENEVE_MAX = 4,
86401 };
86402 
86403 enum {
86404 	LWTUNNEL_IP_OPT_VXLAN_UNSPEC = 0,
86405 	LWTUNNEL_IP_OPT_VXLAN_GBP = 1,
86406 	__LWTUNNEL_IP_OPT_VXLAN_MAX = 2,
86407 };
86408 
86409 enum {
86410 	LWTUNNEL_IP_OPT_ERSPAN_UNSPEC = 0,
86411 	LWTUNNEL_IP_OPT_ERSPAN_VER = 1,
86412 	LWTUNNEL_IP_OPT_ERSPAN_INDEX = 2,
86413 	LWTUNNEL_IP_OPT_ERSPAN_DIR = 3,
86414 	LWTUNNEL_IP_OPT_ERSPAN_HWID = 4,
86415 	__LWTUNNEL_IP_OPT_ERSPAN_MAX = 5,
86416 };
86417 
86418 struct geneve_opt {
86419 	__be16 opt_class;
86420 	u8 type;
86421 	u8 length: 5;
86422 	u8 r3: 1;
86423 	u8 r2: 1;
86424 	u8 r1: 1;
86425 	u8 opt_data[0];
86426 };
86427 
86428 struct erspan_md2 {
86429 	__be32 timestamp;
86430 	__be16 sgt;
86431 	__u8 hwid_upper: 2;
86432 	__u8 ft: 5;
86433 	__u8 p: 1;
86434 	__u8 o: 1;
86435 	__u8 gra: 2;
86436 	__u8 dir: 1;
86437 	__u8 hwid: 4;
86438 };
86439 
86440 struct erspan_metadata {
86441 	int version;
86442 	union {
86443 		__be32 index;
86444 		struct erspan_md2 md2;
86445 	} u;
86446 };
86447 
86448 struct nhmsg {
86449 	unsigned char nh_family;
86450 	unsigned char nh_scope;
86451 	unsigned char nh_protocol;
86452 	unsigned char resvd;
86453 	unsigned int nh_flags;
86454 };
86455 
86456 struct nexthop_grp {
86457 	__u32 id;
86458 	__u8 weight;
86459 	__u8 resvd1;
86460 	__u16 resvd2;
86461 };
86462 
86463 enum {
86464 	NEXTHOP_GRP_TYPE_MPATH = 0,
86465 	NEXTHOP_GRP_TYPE_RES = 1,
86466 	__NEXTHOP_GRP_TYPE_MAX = 2,
86467 };
86468 
86469 enum {
86470 	NHA_UNSPEC = 0,
86471 	NHA_ID = 1,
86472 	NHA_GROUP = 2,
86473 	NHA_GROUP_TYPE = 3,
86474 	NHA_BLACKHOLE = 4,
86475 	NHA_OIF = 5,
86476 	NHA_GATEWAY = 6,
86477 	NHA_ENCAP_TYPE = 7,
86478 	NHA_ENCAP = 8,
86479 	NHA_GROUPS = 9,
86480 	NHA_MASTER = 10,
86481 	NHA_FDB = 11,
86482 	NHA_RES_GROUP = 12,
86483 	NHA_RES_BUCKET = 13,
86484 	__NHA_MAX = 14,
86485 };
86486 
86487 enum {
86488 	NHA_RES_GROUP_UNSPEC = 0,
86489 	NHA_RES_GROUP_PAD = 0,
86490 	NHA_RES_GROUP_BUCKETS = 1,
86491 	NHA_RES_GROUP_IDLE_TIMER = 2,
86492 	NHA_RES_GROUP_UNBALANCED_TIMER = 3,
86493 	NHA_RES_GROUP_UNBALANCED_TIME = 4,
86494 	__NHA_RES_GROUP_MAX = 5,
86495 };
86496 
86497 enum {
86498 	NHA_RES_BUCKET_UNSPEC = 0,
86499 	NHA_RES_BUCKET_PAD = 0,
86500 	NHA_RES_BUCKET_INDEX = 1,
86501 	NHA_RES_BUCKET_IDLE_TIME = 2,
86502 	NHA_RES_BUCKET_NH_ID = 3,
86503 	__NHA_RES_BUCKET_MAX = 4,
86504 };
86505 
86506 struct nh_config {
86507 	u32 nh_id;
86508 	u8 nh_family;
86509 	u8 nh_protocol;
86510 	u8 nh_blackhole;
86511 	u8 nh_fdb;
86512 	u32 nh_flags;
86513 	int nh_ifindex;
86514 	struct net_device *dev;
86515 	union {
86516 		__be32 ipv4;
86517 		struct in6_addr ipv6;
86518 	} gw;
86519 	struct nlattr *nh_grp;
86520 	u16 nh_grp_type;
86521 	u16 nh_grp_res_num_buckets;
86522 	long unsigned int nh_grp_res_idle_timer;
86523 	long unsigned int nh_grp_res_unbalanced_timer;
86524 	bool nh_grp_res_has_num_buckets;
86525 	bool nh_grp_res_has_idle_timer;
86526 	bool nh_grp_res_has_unbalanced_timer;
86527 	struct nlattr *nh_encap;
86528 	u16 nh_encap_type;
86529 	u32 nlflags;
86530 	struct nl_info nlinfo;
86531 };
86532 
86533 struct nh_dump_filter {
86534 	u32 nh_id;
86535 	int dev_idx;
86536 	int master_idx;
86537 	bool group_filter;
86538 	bool fdb_filter;
86539 	u32 res_bucket_nh_id;
86540 };
86541 
86542 struct rtm_dump_nh_ctx {
86543 	u32 idx;
86544 };
86545 
86546 struct rtm_dump_res_bucket_ctx {
86547 	struct rtm_dump_nh_ctx nh;
86548 	u16 bucket_index;
86549 	u32 done_nh_idx;
86550 };
86551 
86552 struct rtm_dump_nexthop_bucket_data {
86553 	struct rtm_dump_res_bucket_ctx *ctx;
86554 	struct nh_dump_filter filter;
86555 };
86556 
86557 enum tunnel_encap_types {
86558 	TUNNEL_ENCAP_NONE = 0,
86559 	TUNNEL_ENCAP_FOU = 1,
86560 	TUNNEL_ENCAP_GUE = 2,
86561 	TUNNEL_ENCAP_MPLS = 3,
86562 };
86563 
86564 struct ip_tunnel_prl_entry {
86565 	struct ip_tunnel_prl_entry *next;
86566 	__be32 addr;
86567 	u16 flags;
86568 	struct callback_head callback_head;
86569 };
86570 
86571 struct ip_tunnel {
86572 	struct ip_tunnel *next;
86573 	struct hlist_node hash_node;
86574 	struct net_device *dev;
86575 	netdevice_tracker dev_tracker;
86576 	struct net *net;
86577 	long unsigned int err_time;
86578 	int err_count;
86579 	u32 i_seqno;
86580 	u32 o_seqno;
86581 	int tun_hlen;
86582 	u32 index;
86583 	u8 erspan_ver;
86584 	u8 dir;
86585 	u16 hwid;
86586 	struct dst_cache dst_cache;
86587 	struct ip_tunnel_parm parms;
86588 	int mlink;
86589 	int encap_hlen;
86590 	int hlen;
86591 	struct ip_tunnel_encap encap;
86592 	struct ip_tunnel_prl_entry *prl;
86593 	unsigned int prl_count;
86594 	unsigned int ip_tnl_net_id;
86595 	struct gro_cells gro_cells;
86596 	__u32 fwmark;
86597 	bool collect_md;
86598 	bool ignore_df;
86599 };
86600 
86601 struct tnl_ptk_info {
86602 	__be16 flags;
86603 	__be16 proto;
86604 	__be32 key;
86605 	__be32 seq;
86606 	int hdr_len;
86607 };
86608 
86609 struct ip_tunnel_net {
86610 	struct net_device *fb_tunnel_dev;
86611 	struct rtnl_link_ops *rtnl_link_ops;
86612 	struct hlist_head tunnels[128];
86613 	struct ip_tunnel *collect_md_tun;
86614 	int type;
86615 };
86616 
86617 struct snmp_mib {
86618 	const char *name;
86619 	int entry;
86620 };
86621 
86622 struct fib4_rule {
86623 	struct fib_rule common;
86624 	u8 dst_len;
86625 	u8 src_len;
86626 	u8 tos;
86627 	__be32 src;
86628 	__be32 srcmask;
86629 	__be32 dst;
86630 	__be32 dstmask;
86631 };
86632 
86633 enum {
86634 	PIM_TYPE_HELLO = 0,
86635 	PIM_TYPE_REGISTER = 1,
86636 	PIM_TYPE_REGISTER_STOP = 2,
86637 	PIM_TYPE_JOIN_PRUNE = 3,
86638 	PIM_TYPE_BOOTSTRAP = 4,
86639 	PIM_TYPE_ASSERT = 5,
86640 	PIM_TYPE_GRAFT = 6,
86641 	PIM_TYPE_GRAFT_ACK = 7,
86642 	PIM_TYPE_CANDIDATE_RP_ADV = 8,
86643 };
86644 
86645 struct pimreghdr {
86646 	__u8 type;
86647 	__u8 reserved;
86648 	__be16 csum;
86649 	__be32 flags;
86650 };
86651 
86652 typedef short unsigned int vifi_t;
86653 
86654 struct vifctl {
86655 	vifi_t vifc_vifi;
86656 	unsigned char vifc_flags;
86657 	unsigned char vifc_threshold;
86658 	unsigned int vifc_rate_limit;
86659 	union {
86660 		struct in_addr vifc_lcl_addr;
86661 		int vifc_lcl_ifindex;
86662 	};
86663 	struct in_addr vifc_rmt_addr;
86664 };
86665 
86666 struct mfcctl {
86667 	struct in_addr mfcc_origin;
86668 	struct in_addr mfcc_mcastgrp;
86669 	vifi_t mfcc_parent;
86670 	unsigned char mfcc_ttls[32];
86671 	unsigned int mfcc_pkt_cnt;
86672 	unsigned int mfcc_byte_cnt;
86673 	unsigned int mfcc_wrong_if;
86674 	int mfcc_expire;
86675 };
86676 
86677 struct sioc_sg_req {
86678 	struct in_addr src;
86679 	struct in_addr grp;
86680 	long unsigned int pktcnt;
86681 	long unsigned int bytecnt;
86682 	long unsigned int wrong_if;
86683 };
86684 
86685 struct sioc_vif_req {
86686 	vifi_t vifi;
86687 	long unsigned int icount;
86688 	long unsigned int ocount;
86689 	long unsigned int ibytes;
86690 	long unsigned int obytes;
86691 };
86692 
86693 struct igmpmsg {
86694 	__u32 unused1;
86695 	__u32 unused2;
86696 	unsigned char im_msgtype;
86697 	unsigned char im_mbz;
86698 	unsigned char im_vif;
86699 	unsigned char im_vif_hi;
86700 	struct in_addr im_src;
86701 	struct in_addr im_dst;
86702 };
86703 
86704 enum {
86705 	IPMRA_TABLE_UNSPEC = 0,
86706 	IPMRA_TABLE_ID = 1,
86707 	IPMRA_TABLE_CACHE_RES_QUEUE_LEN = 2,
86708 	IPMRA_TABLE_MROUTE_REG_VIF_NUM = 3,
86709 	IPMRA_TABLE_MROUTE_DO_ASSERT = 4,
86710 	IPMRA_TABLE_MROUTE_DO_PIM = 5,
86711 	IPMRA_TABLE_VIFS = 6,
86712 	IPMRA_TABLE_MROUTE_DO_WRVIFWHOLE = 7,
86713 	__IPMRA_TABLE_MAX = 8,
86714 };
86715 
86716 enum {
86717 	IPMRA_VIF_UNSPEC = 0,
86718 	IPMRA_VIF = 1,
86719 	__IPMRA_VIF_MAX = 2,
86720 };
86721 
86722 enum {
86723 	IPMRA_VIFA_UNSPEC = 0,
86724 	IPMRA_VIFA_IFINDEX = 1,
86725 	IPMRA_VIFA_VIF_ID = 2,
86726 	IPMRA_VIFA_FLAGS = 3,
86727 	IPMRA_VIFA_BYTES_IN = 4,
86728 	IPMRA_VIFA_BYTES_OUT = 5,
86729 	IPMRA_VIFA_PACKETS_IN = 6,
86730 	IPMRA_VIFA_PACKETS_OUT = 7,
86731 	IPMRA_VIFA_LOCAL_ADDR = 8,
86732 	IPMRA_VIFA_REMOTE_ADDR = 9,
86733 	IPMRA_VIFA_PAD = 10,
86734 	__IPMRA_VIFA_MAX = 11,
86735 };
86736 
86737 enum {
86738 	IPMRA_CREPORT_UNSPEC = 0,
86739 	IPMRA_CREPORT_MSGTYPE = 1,
86740 	IPMRA_CREPORT_VIF_ID = 2,
86741 	IPMRA_CREPORT_SRC_ADDR = 3,
86742 	IPMRA_CREPORT_DST_ADDR = 4,
86743 	IPMRA_CREPORT_PKT = 5,
86744 	IPMRA_CREPORT_TABLE = 6,
86745 	__IPMRA_CREPORT_MAX = 7,
86746 };
86747 
86748 struct vif_entry_notifier_info {
86749 	struct fib_notifier_info info;
86750 	struct net_device *dev;
86751 	short unsigned int vif_index;
86752 	short unsigned int vif_flags;
86753 	u32 tb_id;
86754 };
86755 
86756 enum {
86757 	MFC_STATIC = 1,
86758 	MFC_OFFLOAD = 2,
86759 };
86760 
86761 struct mr_mfc {
86762 	struct rhlist_head mnode;
86763 	short unsigned int mfc_parent;
86764 	int mfc_flags;
86765 	union {
86766 		struct {
86767 			long unsigned int expires;
86768 			struct sk_buff_head unresolved;
86769 		} unres;
86770 		struct {
86771 			long unsigned int last_assert;
86772 			int minvif;
86773 			int maxvif;
86774 			long unsigned int bytes;
86775 			long unsigned int pkt;
86776 			long unsigned int wrong_if;
86777 			long unsigned int lastuse;
86778 			unsigned char ttls[32];
86779 			refcount_t refcount;
86780 		} res;
86781 	} mfc_un;
86782 	struct list_head list;
86783 	struct callback_head rcu;
86784 	void (*free)(struct callback_head *);
86785 };
86786 
86787 struct mfc_entry_notifier_info {
86788 	struct fib_notifier_info info;
86789 	struct mr_mfc *mfc;
86790 	u32 tb_id;
86791 };
86792 
86793 struct mr_vif_iter {
86794 	struct seq_net_private p;
86795 	struct mr_table *mrt;
86796 	int ct;
86797 };
86798 
86799 struct mr_mfc_iter {
86800 	struct seq_net_private p;
86801 	struct mr_table *mrt;
86802 	struct list_head *cache;
86803 	spinlock_t *lock;
86804 };
86805 
86806 struct mfc_cache_cmp_arg {
86807 	__be32 mfc_mcastgrp;
86808 	__be32 mfc_origin;
86809 };
86810 
86811 struct mfc_cache {
86812 	struct mr_mfc _c;
86813 	union {
86814 		struct {
86815 			__be32 mfc_mcastgrp;
86816 			__be32 mfc_origin;
86817 		};
86818 		struct mfc_cache_cmp_arg cmparg;
86819 	};
86820 };
86821 
86822 struct rta_mfc_stats {
86823 	__u64 mfcs_packets;
86824 	__u64 mfcs_bytes;
86825 	__u64 mfcs_wrong_if;
86826 };
86827 
86828 enum {
86829 	IFLA_IPTUN_UNSPEC = 0,
86830 	IFLA_IPTUN_LINK = 1,
86831 	IFLA_IPTUN_LOCAL = 2,
86832 	IFLA_IPTUN_REMOTE = 3,
86833 	IFLA_IPTUN_TTL = 4,
86834 	IFLA_IPTUN_TOS = 5,
86835 	IFLA_IPTUN_ENCAP_LIMIT = 6,
86836 	IFLA_IPTUN_FLOWINFO = 7,
86837 	IFLA_IPTUN_FLAGS = 8,
86838 	IFLA_IPTUN_PROTO = 9,
86839 	IFLA_IPTUN_PMTUDISC = 10,
86840 	IFLA_IPTUN_6RD_PREFIX = 11,
86841 	IFLA_IPTUN_6RD_RELAY_PREFIX = 12,
86842 	IFLA_IPTUN_6RD_PREFIXLEN = 13,
86843 	IFLA_IPTUN_6RD_RELAY_PREFIXLEN = 14,
86844 	IFLA_IPTUN_ENCAP_TYPE = 15,
86845 	IFLA_IPTUN_ENCAP_FLAGS = 16,
86846 	IFLA_IPTUN_ENCAP_SPORT = 17,
86847 	IFLA_IPTUN_ENCAP_DPORT = 18,
86848 	IFLA_IPTUN_COLLECT_METADATA = 19,
86849 	IFLA_IPTUN_FWMARK = 20,
86850 	__IFLA_IPTUN_MAX = 21,
86851 };
86852 
86853 struct xfrm_tunnel {
86854 	int (*handler)(struct sk_buff *);
86855 	int (*cb_handler)(struct sk_buff *, int);
86856 	int (*err_handler)(struct sk_buff *, u32);
86857 	struct xfrm_tunnel *next;
86858 	int priority;
86859 };
86860 
86861 struct gre_protocol {
86862 	int (*handler)(struct sk_buff *);
86863 	void (*err_handler)(struct sk_buff *, u32);
86864 };
86865 
86866 struct erspan_base_hdr {
86867 	__u8 vlan_upper: 4;
86868 	__u8 ver: 4;
86869 	__u8 vlan: 8;
86870 	__u8 session_id_upper: 2;
86871 	__u8 t: 1;
86872 	__u8 en: 2;
86873 	__u8 cos: 3;
86874 	__u8 session_id: 8;
86875 };
86876 
86877 enum {
86878 	IFLA_GRE_UNSPEC = 0,
86879 	IFLA_GRE_LINK = 1,
86880 	IFLA_GRE_IFLAGS = 2,
86881 	IFLA_GRE_OFLAGS = 3,
86882 	IFLA_GRE_IKEY = 4,
86883 	IFLA_GRE_OKEY = 5,
86884 	IFLA_GRE_LOCAL = 6,
86885 	IFLA_GRE_REMOTE = 7,
86886 	IFLA_GRE_TTL = 8,
86887 	IFLA_GRE_TOS = 9,
86888 	IFLA_GRE_PMTUDISC = 10,
86889 	IFLA_GRE_ENCAP_LIMIT = 11,
86890 	IFLA_GRE_FLOWINFO = 12,
86891 	IFLA_GRE_FLAGS = 13,
86892 	IFLA_GRE_ENCAP_TYPE = 14,
86893 	IFLA_GRE_ENCAP_FLAGS = 15,
86894 	IFLA_GRE_ENCAP_SPORT = 16,
86895 	IFLA_GRE_ENCAP_DPORT = 17,
86896 	IFLA_GRE_COLLECT_METADATA = 18,
86897 	IFLA_GRE_IGNORE_DF = 19,
86898 	IFLA_GRE_FWMARK = 20,
86899 	IFLA_GRE_ERSPAN_INDEX = 21,
86900 	IFLA_GRE_ERSPAN_VER = 22,
86901 	IFLA_GRE_ERSPAN_DIR = 23,
86902 	IFLA_GRE_ERSPAN_HWID = 24,
86903 	__IFLA_GRE_MAX = 25,
86904 };
86905 
86906 enum erspan_encap_type {
86907 	ERSPAN_ENCAP_NOVLAN = 0,
86908 	ERSPAN_ENCAP_ISL = 1,
86909 	ERSPAN_ENCAP_8021Q = 2,
86910 	ERSPAN_ENCAP_INFRAME = 3,
86911 };
86912 
86913 enum erspan_bso {
86914 	BSO_NOERROR = 0,
86915 	BSO_SHORT = 1,
86916 	BSO_OVERSIZED = 2,
86917 	BSO_BAD = 3,
86918 };
86919 
86920 struct qtag_prefix {
86921 	__be16 eth_type;
86922 	__be16 tci;
86923 };
86924 
86925 struct udp_tunnel_nic_table_entry;
86926 
86927 struct udp_tunnel_nic {
86928 	struct work_struct work;
86929 	struct net_device *dev;
86930 	u8 need_sync: 1;
86931 	u8 need_replay: 1;
86932 	u8 work_pending: 1;
86933 	unsigned int n_tables;
86934 	long unsigned int missed;
86935 	struct udp_tunnel_nic_table_entry **entries;
86936 };
86937 
86938 struct udp_tunnel_nic_shared_node {
86939 	struct net_device *dev;
86940 	struct list_head list;
86941 };
86942 
86943 enum udp_tunnel_nic_table_entry_flags {
86944 	UDP_TUNNEL_NIC_ENTRY_ADD = 1,
86945 	UDP_TUNNEL_NIC_ENTRY_DEL = 2,
86946 	UDP_TUNNEL_NIC_ENTRY_OP_FAIL = 4,
86947 	UDP_TUNNEL_NIC_ENTRY_FROZEN = 8,
86948 };
86949 
86950 struct udp_tunnel_nic_table_entry {
86951 	__be16 port;
86952 	u8 type;
86953 	u8 flags;
86954 	u16 use_cnt;
86955 	u8 hw_priv;
86956 };
86957 
86958 struct xt_get_revision {
86959 	char name[29];
86960 	__u8 revision;
86961 };
86962 
86963 struct ipt_ip {
86964 	struct in_addr src;
86965 	struct in_addr dst;
86966 	struct in_addr smsk;
86967 	struct in_addr dmsk;
86968 	char iniface[16];
86969 	char outiface[16];
86970 	unsigned char iniface_mask[16];
86971 	unsigned char outiface_mask[16];
86972 	__u16 proto;
86973 	__u8 flags;
86974 	__u8 invflags;
86975 };
86976 
86977 struct ipt_entry {
86978 	struct ipt_ip ip;
86979 	unsigned int nfcache;
86980 	__u16 target_offset;
86981 	__u16 next_offset;
86982 	unsigned int comefrom;
86983 	struct xt_counters counters;
86984 	unsigned char elems[0];
86985 };
86986 
86987 struct ipt_icmp {
86988 	__u8 type;
86989 	__u8 code[2];
86990 	__u8 invflags;
86991 };
86992 
86993 struct ipt_getinfo {
86994 	char name[32];
86995 	unsigned int valid_hooks;
86996 	unsigned int hook_entry[5];
86997 	unsigned int underflow[5];
86998 	unsigned int num_entries;
86999 	unsigned int size;
87000 };
87001 
87002 struct ipt_replace {
87003 	char name[32];
87004 	unsigned int valid_hooks;
87005 	unsigned int num_entries;
87006 	unsigned int size;
87007 	unsigned int hook_entry[5];
87008 	unsigned int underflow[5];
87009 	unsigned int num_counters;
87010 	struct xt_counters *counters;
87011 	struct ipt_entry entries[0];
87012 };
87013 
87014 struct ipt_get_entries {
87015 	char name[32];
87016 	unsigned int size;
87017 	struct ipt_entry entrytable[0];
87018 };
87019 
87020 struct ipt_standard {
87021 	struct ipt_entry entry;
87022 	struct xt_standard_target target;
87023 };
87024 
87025 struct ipt_error {
87026 	struct ipt_entry entry;
87027 	struct xt_error_target target;
87028 };
87029 
87030 struct inet_diag_sockid {
87031 	__be16 idiag_sport;
87032 	__be16 idiag_dport;
87033 	__be32 idiag_src[4];
87034 	__be32 idiag_dst[4];
87035 	__u32 idiag_if;
87036 	__u32 idiag_cookie[2];
87037 };
87038 
87039 struct inet_diag_req {
87040 	__u8 idiag_family;
87041 	__u8 idiag_src_len;
87042 	__u8 idiag_dst_len;
87043 	__u8 idiag_ext;
87044 	struct inet_diag_sockid id;
87045 	__u32 idiag_states;
87046 	__u32 idiag_dbs;
87047 };
87048 
87049 struct inet_diag_req_v2 {
87050 	__u8 sdiag_family;
87051 	__u8 sdiag_protocol;
87052 	__u8 idiag_ext;
87053 	__u8 pad;
87054 	__u32 idiag_states;
87055 	struct inet_diag_sockid id;
87056 };
87057 
87058 struct inet_diag_bc_op {
87059 	unsigned char code;
87060 	unsigned char yes;
87061 	short unsigned int no;
87062 };
87063 
87064 enum {
87065 	INET_DIAG_BC_NOP = 0,
87066 	INET_DIAG_BC_JMP = 1,
87067 	INET_DIAG_BC_S_GE = 2,
87068 	INET_DIAG_BC_S_LE = 3,
87069 	INET_DIAG_BC_D_GE = 4,
87070 	INET_DIAG_BC_D_LE = 5,
87071 	INET_DIAG_BC_AUTO = 6,
87072 	INET_DIAG_BC_S_COND = 7,
87073 	INET_DIAG_BC_D_COND = 8,
87074 	INET_DIAG_BC_DEV_COND = 9,
87075 	INET_DIAG_BC_MARK_COND = 10,
87076 	INET_DIAG_BC_S_EQ = 11,
87077 	INET_DIAG_BC_D_EQ = 12,
87078 	INET_DIAG_BC_CGROUP_COND = 13,
87079 };
87080 
87081 struct inet_diag_hostcond {
87082 	__u8 family;
87083 	__u8 prefix_len;
87084 	int port;
87085 	__be32 addr[0];
87086 };
87087 
87088 struct inet_diag_markcond {
87089 	__u32 mark;
87090 	__u32 mask;
87091 };
87092 
87093 struct inet_diag_msg {
87094 	__u8 idiag_family;
87095 	__u8 idiag_state;
87096 	__u8 idiag_timer;
87097 	__u8 idiag_retrans;
87098 	struct inet_diag_sockid id;
87099 	__u32 idiag_expires;
87100 	__u32 idiag_rqueue;
87101 	__u32 idiag_wqueue;
87102 	__u32 idiag_uid;
87103 	__u32 idiag_inode;
87104 };
87105 
87106 enum {
87107 	INET_DIAG_NONE = 0,
87108 	INET_DIAG_MEMINFO = 1,
87109 	INET_DIAG_INFO = 2,
87110 	INET_DIAG_VEGASINFO = 3,
87111 	INET_DIAG_CONG = 4,
87112 	INET_DIAG_TOS = 5,
87113 	INET_DIAG_TCLASS = 6,
87114 	INET_DIAG_SKMEMINFO = 7,
87115 	INET_DIAG_SHUTDOWN = 8,
87116 	INET_DIAG_DCTCPINFO = 9,
87117 	INET_DIAG_PROTOCOL = 10,
87118 	INET_DIAG_SKV6ONLY = 11,
87119 	INET_DIAG_LOCALS = 12,
87120 	INET_DIAG_PEERS = 13,
87121 	INET_DIAG_PAD = 14,
87122 	INET_DIAG_MARK = 15,
87123 	INET_DIAG_BBRINFO = 16,
87124 	INET_DIAG_CLASS_ID = 17,
87125 	INET_DIAG_MD5SIG = 18,
87126 	INET_DIAG_ULP_INFO = 19,
87127 	INET_DIAG_SK_BPF_STORAGES = 20,
87128 	INET_DIAG_CGROUP_ID = 21,
87129 	INET_DIAG_SOCKOPT = 22,
87130 	__INET_DIAG_MAX = 23,
87131 };
87132 
87133 struct inet_diag_meminfo {
87134 	__u32 idiag_rmem;
87135 	__u32 idiag_wmem;
87136 	__u32 idiag_fmem;
87137 	__u32 idiag_tmem;
87138 };
87139 
87140 struct inet_diag_sockopt {
87141 	__u8 recverr: 1;
87142 	__u8 is_icsk: 1;
87143 	__u8 freebind: 1;
87144 	__u8 hdrincl: 1;
87145 	__u8 mc_loop: 1;
87146 	__u8 transparent: 1;
87147 	__u8 mc_all: 1;
87148 	__u8 nodefrag: 1;
87149 	__u8 bind_address_no_port: 1;
87150 	__u8 recverr_rfc4884: 1;
87151 	__u8 defer_connect: 1;
87152 	__u8 unused: 5;
87153 };
87154 
87155 struct inet_diag_handler {
87156 	void (*dump)(struct sk_buff *, struct netlink_callback *, const struct inet_diag_req_v2 *);
87157 	int (*dump_one)(struct netlink_callback *, const struct inet_diag_req_v2 *);
87158 	void (*idiag_get_info)(struct sock *, struct inet_diag_msg *, void *);
87159 	int (*idiag_get_aux)(struct sock *, bool, struct sk_buff *);
87160 	size_t (*idiag_get_aux_size)(struct sock *, bool);
87161 	int (*destroy)(struct sk_buff *, const struct inet_diag_req_v2 *);
87162 	__u16 idiag_type;
87163 	__u16 idiag_info_size;
87164 };
87165 
87166 struct bpf_sk_storage_diag___2;
87167 
87168 struct inet_diag_dump_data {
87169 	struct nlattr *req_nlas[4];
87170 	struct bpf_sk_storage_diag___2 *bpf_stg_diag;
87171 };
87172 
87173 struct inet_diag_entry {
87174 	const __be32 *saddr;
87175 	const __be32 *daddr;
87176 	u16 sport;
87177 	u16 dport;
87178 	u16 family;
87179 	u16 userlocks;
87180 	u32 ifindex;
87181 	u32 mark;
87182 	u64 cgroup_id;
87183 };
87184 
87185 enum {
87186 	INET_ULP_INFO_UNSPEC = 0,
87187 	INET_ULP_INFO_NAME = 1,
87188 	INET_ULP_INFO_TLS = 2,
87189 	INET_ULP_INFO_MPTCP = 3,
87190 	__INET_ULP_INFO_MAX = 4,
87191 };
87192 
87193 struct tcp_diag_md5sig {
87194 	__u8 tcpm_family;
87195 	__u8 tcpm_prefixlen;
87196 	__u16 tcpm_keylen;
87197 	__be32 tcpm_addr[4];
87198 	__u8 tcpm_key[80];
87199 };
87200 
87201 struct bictcp {
87202 	u32 cnt;
87203 	u32 last_max_cwnd;
87204 	u32 last_cwnd;
87205 	u32 last_time;
87206 	u32 bic_origin_point;
87207 	u32 bic_K;
87208 	u32 delay_min;
87209 	u32 epoch_start;
87210 	u32 ack_cnt;
87211 	u32 tcp_cwnd;
87212 	u16 unused;
87213 	u8 sample_cnt;
87214 	u8 found;
87215 	u32 round_start;
87216 	u32 end_seq;
87217 	u32 last_ack;
87218 	u32 curr_rtt;
87219 };
87220 
87221 struct tls_rec {
87222 	struct list_head list;
87223 	int tx_ready;
87224 	int tx_flags;
87225 	struct sk_msg msg_plaintext;
87226 	struct sk_msg msg_encrypted;
87227 	struct scatterlist sg_aead_in[2];
87228 	struct scatterlist sg_aead_out[2];
87229 	char content_type;
87230 	struct scatterlist sg_content_type;
87231 	char aad_space[13];
87232 	u8 iv_data[16];
87233 	struct aead_request aead_req;
87234 	u8 aead_req_ctx[0];
87235 };
87236 
87237 struct tx_work {
87238 	struct delayed_work work;
87239 	struct sock *sk;
87240 };
87241 
87242 struct tls_sw_context_tx {
87243 	struct crypto_aead *aead_send;
87244 	struct crypto_wait async_wait;
87245 	struct tx_work tx_work;
87246 	struct tls_rec *open_rec;
87247 	struct list_head tx_list;
87248 	atomic_t encrypt_pending;
87249 	spinlock_t encrypt_compl_lock;
87250 	int async_notify;
87251 	u8 async_capable: 1;
87252 	long unsigned int tx_bitmask;
87253 };
87254 
87255 enum {
87256 	TCP_BPF_IPV4 = 0,
87257 	TCP_BPF_IPV6 = 1,
87258 	TCP_BPF_NUM_PROTS = 2,
87259 };
87260 
87261 enum {
87262 	TCP_BPF_BASE = 0,
87263 	TCP_BPF_TX = 1,
87264 	TCP_BPF_RX = 2,
87265 	TCP_BPF_TXRX = 3,
87266 	TCP_BPF_NUM_CFGS = 4,
87267 };
87268 
87269 enum {
87270 	UDP_BPF_IPV4 = 0,
87271 	UDP_BPF_IPV6 = 1,
87272 	UDP_BPF_NUM_PROTS = 2,
87273 };
87274 
87275 struct netlbl_audit {
87276 	u32 secid;
87277 	kuid_t loginuid;
87278 	unsigned int sessionid;
87279 };
87280 
87281 struct cipso_v4_std_map_tbl {
87282 	struct {
87283 		u32 *cipso;
87284 		u32 *local;
87285 		u32 cipso_size;
87286 		u32 local_size;
87287 	} lvl;
87288 	struct {
87289 		u32 *cipso;
87290 		u32 *local;
87291 		u32 cipso_size;
87292 		u32 local_size;
87293 	} cat;
87294 };
87295 
87296 struct cipso_v4_doi {
87297 	u32 doi;
87298 	u32 type;
87299 	union {
87300 		struct cipso_v4_std_map_tbl *std;
87301 	} map;
87302 	u8 tags[5];
87303 	refcount_t refcount;
87304 	struct list_head list;
87305 	struct callback_head rcu;
87306 };
87307 
87308 struct cipso_v4_map_cache_bkt {
87309 	spinlock_t lock;
87310 	u32 size;
87311 	struct list_head list;
87312 };
87313 
87314 struct cipso_v4_map_cache_entry {
87315 	u32 hash;
87316 	unsigned char *key;
87317 	size_t key_len;
87318 	struct netlbl_lsm_cache *lsm_data;
87319 	u32 activity;
87320 	struct list_head list;
87321 };
87322 
87323 struct xfrm_policy_afinfo {
87324 	struct dst_ops *dst_ops;
87325 	struct dst_entry * (*dst_lookup)(struct net *, int, int, const xfrm_address_t *, const xfrm_address_t *, u32);
87326 	int (*get_saddr)(struct net *, int, xfrm_address_t *, xfrm_address_t *, u32);
87327 	int (*fill_dst)(struct xfrm_dst *, struct net_device *, const struct flowi *);
87328 	struct dst_entry * (*blackhole_route)(struct net *, struct dst_entry *);
87329 };
87330 
87331 struct xfrm_state_afinfo {
87332 	u8 family;
87333 	u8 proto;
87334 	const struct xfrm_type_offload *type_offload_esp;
87335 	const struct xfrm_type *type_esp;
87336 	const struct xfrm_type *type_ipip;
87337 	const struct xfrm_type *type_ipip6;
87338 	const struct xfrm_type *type_comp;
87339 	const struct xfrm_type *type_ah;
87340 	const struct xfrm_type *type_routing;
87341 	const struct xfrm_type *type_dstopts;
87342 	int (*output)(struct net *, struct sock *, struct sk_buff *);
87343 	int (*transport_finish)(struct sk_buff *, int);
87344 	void (*local_error)(struct sk_buff *, u32);
87345 };
87346 
87347 struct ip6_tnl;
87348 
87349 struct xfrm_tunnel_skb_cb {
87350 	union {
87351 		struct inet_skb_parm h4;
87352 		struct inet6_skb_parm h6;
87353 	} header;
87354 	union {
87355 		struct ip_tunnel *ip4;
87356 		struct ip6_tnl *ip6;
87357 	} tunnel;
87358 };
87359 
87360 struct xfrm_mode_skb_cb {
87361 	struct xfrm_tunnel_skb_cb header;
87362 	__be16 id;
87363 	__be16 frag_off;
87364 	u8 ihl;
87365 	u8 tos;
87366 	u8 ttl;
87367 	u8 protocol;
87368 	u8 optlen;
87369 	u8 flow_lbl[3];
87370 };
87371 
87372 struct xfrm_spi_skb_cb {
87373 	struct xfrm_tunnel_skb_cb header;
87374 	unsigned int daddroff;
87375 	unsigned int family;
87376 	__be32 seq;
87377 };
87378 
87379 struct xfrm_input_afinfo {
87380 	u8 family;
87381 	bool is_ipip;
87382 	int (*callback)(struct sk_buff *, u8, int);
87383 };
87384 
87385 struct xfrm4_protocol {
87386 	int (*handler)(struct sk_buff *);
87387 	int (*input_handler)(struct sk_buff *, int, __be32, int);
87388 	int (*cb_handler)(struct sk_buff *, int);
87389 	int (*err_handler)(struct sk_buff *, u32);
87390 	struct xfrm4_protocol *next;
87391 	int priority;
87392 };
87393 
87394 typedef u64 (*btf_bpf_tcp_send_ack)(struct tcp_sock *, u32);
87395 
87396 struct tls12_crypto_info_aes_ccm_128 {
87397 	struct tls_crypto_info info;
87398 	unsigned char iv[8];
87399 	unsigned char key[16];
87400 	unsigned char salt[4];
87401 	unsigned char rec_seq[8];
87402 };
87403 
87404 enum {
87405 	TLS_INFO_UNSPEC = 0,
87406 	TLS_INFO_VERSION = 1,
87407 	TLS_INFO_CIPHER = 2,
87408 	TLS_INFO_TXCONF = 3,
87409 	TLS_INFO_RXCONF = 4,
87410 	__TLS_INFO_MAX = 5,
87411 };
87412 
87413 enum {
87414 	TLS_BASE = 0,
87415 	TLS_SW = 1,
87416 	TLS_HW = 2,
87417 	TLS_HW_RECORD = 3,
87418 	TLS_NUM_CONFIG = 4,
87419 };
87420 
87421 enum {
87422 	TLSV4 = 0,
87423 	TLSV6 = 1,
87424 	TLS_NUM_PROTS = 2,
87425 };
87426 
87427 struct tls_msg {
87428 	struct strp_msg rxm;
87429 	u8 control;
87430 };
87431 
87432 struct trace_event_raw_tls_device_offload_set {
87433 	struct trace_entry ent;
87434 	struct sock *sk;
87435 	u64 rec_no;
87436 	int dir;
87437 	u32 tcp_seq;
87438 	int ret;
87439 	char __data[0];
87440 };
87441 
87442 struct trace_event_raw_tls_device_decrypted {
87443 	struct trace_entry ent;
87444 	struct sock *sk;
87445 	u64 rec_no;
87446 	u32 tcp_seq;
87447 	u32 rec_len;
87448 	bool encrypted;
87449 	bool decrypted;
87450 	char __data[0];
87451 };
87452 
87453 struct trace_event_raw_tls_device_rx_resync_send {
87454 	struct trace_entry ent;
87455 	struct sock *sk;
87456 	u64 rec_no;
87457 	u32 tcp_seq;
87458 	int sync_type;
87459 	char __data[0];
87460 };
87461 
87462 struct trace_event_raw_tls_device_rx_resync_nh_schedule {
87463 	struct trace_entry ent;
87464 	struct sock *sk;
87465 	char __data[0];
87466 };
87467 
87468 struct trace_event_raw_tls_device_rx_resync_nh_delay {
87469 	struct trace_entry ent;
87470 	struct sock *sk;
87471 	u32 sock_data;
87472 	u32 rec_len;
87473 	char __data[0];
87474 };
87475 
87476 struct trace_event_raw_tls_device_tx_resync_req {
87477 	struct trace_entry ent;
87478 	struct sock *sk;
87479 	u32 tcp_seq;
87480 	u32 exp_tcp_seq;
87481 	char __data[0];
87482 };
87483 
87484 struct trace_event_raw_tls_device_tx_resync_send {
87485 	struct trace_entry ent;
87486 	struct sock *sk;
87487 	u64 rec_no;
87488 	u32 tcp_seq;
87489 	char __data[0];
87490 };
87491 
87492 struct trace_event_data_offsets_tls_device_offload_set {};
87493 
87494 struct trace_event_data_offsets_tls_device_decrypted {};
87495 
87496 struct trace_event_data_offsets_tls_device_rx_resync_send {};
87497 
87498 struct trace_event_data_offsets_tls_device_rx_resync_nh_schedule {};
87499 
87500 struct trace_event_data_offsets_tls_device_rx_resync_nh_delay {};
87501 
87502 struct trace_event_data_offsets_tls_device_tx_resync_req {};
87503 
87504 struct trace_event_data_offsets_tls_device_tx_resync_send {};
87505 
87506 typedef void (*btf_trace_tls_device_offload_set)(void *, struct sock *, int, u32, u8 *, int);
87507 
87508 typedef void (*btf_trace_tls_device_decrypted)(void *, struct sock *, u32, u8 *, u32, bool, bool);
87509 
87510 typedef void (*btf_trace_tls_device_rx_resync_send)(void *, struct sock *, u32, u8 *, int);
87511 
87512 typedef void (*btf_trace_tls_device_rx_resync_nh_schedule)(void *, struct sock *);
87513 
87514 typedef void (*btf_trace_tls_device_rx_resync_nh_delay)(void *, struct sock *, u32, u32);
87515 
87516 typedef void (*btf_trace_tls_device_tx_resync_req)(void *, struct sock *, u32, u32);
87517 
87518 typedef void (*btf_trace_tls_device_tx_resync_send)(void *, struct sock *, u32, u8 *);
87519 
87520 enum {
87521 	XFRM_STATE_VOID = 0,
87522 	XFRM_STATE_ACQ = 1,
87523 	XFRM_STATE_VALID = 2,
87524 	XFRM_STATE_ERROR = 3,
87525 	XFRM_STATE_EXPIRED = 4,
87526 	XFRM_STATE_DEAD = 5,
87527 };
87528 
87529 struct xfrm_if;
87530 
87531 struct xfrm_if_cb {
87532 	struct xfrm_if * (*decode_session)(struct sk_buff *, short unsigned int);
87533 };
87534 
87535 struct xfrm_if_parms {
87536 	int link;
87537 	u32 if_id;
87538 };
87539 
87540 struct xfrm_if {
87541 	struct xfrm_if *next;
87542 	struct net_device *dev;
87543 	struct net *net;
87544 	struct xfrm_if_parms p;
87545 	struct gro_cells gro_cells;
87546 };
87547 
87548 struct xfrm_policy_walk {
87549 	struct xfrm_policy_walk_entry walk;
87550 	u8 type;
87551 	u32 seq;
87552 };
87553 
87554 struct xfrmk_spdinfo {
87555 	u32 incnt;
87556 	u32 outcnt;
87557 	u32 fwdcnt;
87558 	u32 inscnt;
87559 	u32 outscnt;
87560 	u32 fwdscnt;
87561 	u32 spdhcnt;
87562 	u32 spdhmcnt;
87563 };
87564 
87565 struct ip6_mh {
87566 	__u8 ip6mh_proto;
87567 	__u8 ip6mh_hdrlen;
87568 	__u8 ip6mh_type;
87569 	__u8 ip6mh_reserved;
87570 	__u16 ip6mh_cksum;
87571 	__u8 data[0];
87572 };
87573 
87574 struct xfrm_flo {
87575 	struct dst_entry *dst_orig;
87576 	u8 flags;
87577 };
87578 
87579 struct xfrm_pol_inexact_node {
87580 	struct rb_node node;
87581 	union {
87582 		xfrm_address_t addr;
87583 		struct callback_head rcu;
87584 	};
87585 	u8 prefixlen;
87586 	struct rb_root root;
87587 	struct hlist_head hhead;
87588 };
87589 
87590 struct xfrm_pol_inexact_key {
87591 	possible_net_t net;
87592 	u32 if_id;
87593 	u16 family;
87594 	u8 dir;
87595 	u8 type;
87596 };
87597 
87598 struct xfrm_pol_inexact_bin {
87599 	struct xfrm_pol_inexact_key k;
87600 	struct rhash_head head;
87601 	struct hlist_head hhead;
87602 	seqcount_spinlock_t count;
87603 	struct rb_root root_d;
87604 	struct rb_root root_s;
87605 	struct list_head inexact_bins;
87606 	struct callback_head rcu;
87607 };
87608 
87609 enum xfrm_pol_inexact_candidate_type {
87610 	XFRM_POL_CAND_BOTH = 0,
87611 	XFRM_POL_CAND_SADDR = 1,
87612 	XFRM_POL_CAND_DADDR = 2,
87613 	XFRM_POL_CAND_ANY = 3,
87614 	XFRM_POL_CAND_MAX = 4,
87615 };
87616 
87617 struct xfrm_pol_inexact_candidates {
87618 	struct hlist_head *res[4];
87619 };
87620 
87621 enum xfrm_ae_ftype_t {
87622 	XFRM_AE_UNSPEC = 0,
87623 	XFRM_AE_RTHR = 1,
87624 	XFRM_AE_RVAL = 2,
87625 	XFRM_AE_LVAL = 4,
87626 	XFRM_AE_ETHR = 8,
87627 	XFRM_AE_CR = 16,
87628 	XFRM_AE_CE = 32,
87629 	XFRM_AE_CU = 64,
87630 	__XFRM_AE_MAX = 65,
87631 };
87632 
87633 enum xfrm_nlgroups {
87634 	XFRMNLGRP_NONE = 0,
87635 	XFRMNLGRP_ACQUIRE = 1,
87636 	XFRMNLGRP_EXPIRE = 2,
87637 	XFRMNLGRP_SA = 3,
87638 	XFRMNLGRP_POLICY = 4,
87639 	XFRMNLGRP_AEVENTS = 5,
87640 	XFRMNLGRP_REPORT = 6,
87641 	XFRMNLGRP_MIGRATE = 7,
87642 	XFRMNLGRP_MAPPING = 8,
87643 	__XFRMNLGRP_MAX = 9,
87644 };
87645 
87646 enum {
87647 	XFRM_MODE_FLAG_TUNNEL = 1,
87648 };
87649 
87650 struct km_event {
87651 	union {
87652 		u32 hard;
87653 		u32 proto;
87654 		u32 byid;
87655 		u32 aevent;
87656 		u32 type;
87657 	} data;
87658 	u32 seq;
87659 	u32 portid;
87660 	u32 event;
87661 	struct net *net;
87662 };
87663 
87664 struct xfrm_kmaddress {
87665 	xfrm_address_t local;
87666 	xfrm_address_t remote;
87667 	u32 reserved;
87668 	u16 family;
87669 };
87670 
87671 struct xfrm_migrate {
87672 	xfrm_address_t old_daddr;
87673 	xfrm_address_t old_saddr;
87674 	xfrm_address_t new_daddr;
87675 	xfrm_address_t new_saddr;
87676 	u8 proto;
87677 	u8 mode;
87678 	u16 reserved;
87679 	u32 reqid;
87680 	u16 old_family;
87681 	u16 new_family;
87682 };
87683 
87684 struct xfrm_mgr {
87685 	struct list_head list;
87686 	int (*notify)(struct xfrm_state *, const struct km_event *);
87687 	int (*acquire)(struct xfrm_state *, struct xfrm_tmpl *, struct xfrm_policy *);
87688 	struct xfrm_policy * (*compile_policy)(struct sock *, int, u8 *, int, int *);
87689 	int (*new_mapping)(struct xfrm_state *, xfrm_address_t *, __be16);
87690 	int (*notify_policy)(struct xfrm_policy *, int, const struct km_event *);
87691 	int (*report)(struct net *, u8, struct xfrm_selector *, xfrm_address_t *);
87692 	int (*migrate)(const struct xfrm_selector *, u8, u8, const struct xfrm_migrate *, int, const struct xfrm_kmaddress *, const struct xfrm_encap_tmpl *);
87693 	bool (*is_alive)(const struct km_event *);
87694 };
87695 
87696 struct xfrmk_sadinfo {
87697 	u32 sadhcnt;
87698 	u32 sadhmcnt;
87699 	u32 sadcnt;
87700 };
87701 
87702 struct xfrm_translator {
87703 	int (*alloc_compat)(struct sk_buff *, const struct nlmsghdr *);
87704 	struct nlmsghdr * (*rcv_msg_compat)(const struct nlmsghdr *, int, const struct nla_policy *, struct netlink_ext_ack *);
87705 	int (*xlate_user_policy_sockptr)(u8 **, int);
87706 	struct module *owner;
87707 };
87708 
87709 struct ip_beet_phdr {
87710 	__u8 nexthdr;
87711 	__u8 hdrlen;
87712 	__u8 padlen;
87713 	__u8 reserved;
87714 };
87715 
87716 struct __ip6_tnl_parm {
87717 	char name[16];
87718 	int link;
87719 	__u8 proto;
87720 	__u8 encap_limit;
87721 	__u8 hop_limit;
87722 	bool collect_md;
87723 	__be32 flowinfo;
87724 	__u32 flags;
87725 	struct in6_addr laddr;
87726 	struct in6_addr raddr;
87727 	__be16 i_flags;
87728 	__be16 o_flags;
87729 	__be32 i_key;
87730 	__be32 o_key;
87731 	__u32 fwmark;
87732 	__u32 index;
87733 	__u8 erspan_ver;
87734 	__u8 dir;
87735 	__u16 hwid;
87736 };
87737 
87738 struct ip6_tnl {
87739 	struct ip6_tnl *next;
87740 	struct net_device *dev;
87741 	netdevice_tracker dev_tracker;
87742 	struct net *net;
87743 	struct __ip6_tnl_parm parms;
87744 	struct flowi fl;
87745 	struct dst_cache dst_cache;
87746 	struct gro_cells gro_cells;
87747 	int err_count;
87748 	long unsigned int err_time;
87749 	__u32 i_seqno;
87750 	__u32 o_seqno;
87751 	int hlen;
87752 	int tun_hlen;
87753 	int encap_hlen;
87754 	struct ip_tunnel_encap encap;
87755 	int mlink;
87756 };
87757 
87758 struct xfrm_skb_cb {
87759 	struct xfrm_tunnel_skb_cb header;
87760 	union {
87761 		struct {
87762 			__u32 low;
87763 			__u32 hi;
87764 		} output;
87765 		struct {
87766 			__be32 low;
87767 			__be32 hi;
87768 		} input;
87769 	} seq;
87770 };
87771 
87772 struct xfrm_trans_tasklet {
87773 	struct tasklet_struct tasklet;
87774 	struct sk_buff_head queue;
87775 };
87776 
87777 struct xfrm_trans_cb {
87778 	union {
87779 		struct inet_skb_parm h4;
87780 		struct inet6_skb_parm h6;
87781 	} header;
87782 	int (*finish)(struct net *, struct sock *, struct sk_buff *);
87783 	struct net *net;
87784 };
87785 
87786 struct sadb_alg {
87787 	__u8 sadb_alg_id;
87788 	__u8 sadb_alg_ivlen;
87789 	__u16 sadb_alg_minbits;
87790 	__u16 sadb_alg_maxbits;
87791 	__u16 sadb_alg_reserved;
87792 };
87793 
87794 struct xfrm_algo_aead_info {
87795 	char *geniv;
87796 	u16 icv_truncbits;
87797 };
87798 
87799 struct xfrm_algo_auth_info {
87800 	u16 icv_truncbits;
87801 	u16 icv_fullbits;
87802 };
87803 
87804 struct xfrm_algo_encr_info {
87805 	char *geniv;
87806 	u16 blockbits;
87807 	u16 defkeybits;
87808 };
87809 
87810 struct xfrm_algo_comp_info {
87811 	u16 threshold;
87812 };
87813 
87814 struct xfrm_algo_desc {
87815 	char *name;
87816 	char *compat;
87817 	u8 available: 1;
87818 	u8 pfkey_supported: 1;
87819 	union {
87820 		struct xfrm_algo_aead_info aead;
87821 		struct xfrm_algo_auth_info auth;
87822 		struct xfrm_algo_encr_info encr;
87823 		struct xfrm_algo_comp_info comp;
87824 	} uinfo;
87825 	struct sadb_alg desc;
87826 };
87827 
87828 struct xfrm_algo_list {
87829 	struct xfrm_algo_desc *algs;
87830 	int entries;
87831 	u32 type;
87832 	u32 mask;
87833 };
87834 
87835 struct xfrm_aead_name {
87836 	const char *name;
87837 	int icvbits;
87838 };
87839 
87840 enum {
87841 	XFRM_SHARE_ANY = 0,
87842 	XFRM_SHARE_SESSION = 1,
87843 	XFRM_SHARE_USER = 2,
87844 	XFRM_SHARE_UNIQUE = 3,
87845 };
87846 
87847 struct xfrm_user_sec_ctx {
87848 	__u16 len;
87849 	__u16 exttype;
87850 	__u8 ctx_alg;
87851 	__u8 ctx_doi;
87852 	__u16 ctx_len;
87853 };
87854 
87855 struct xfrm_user_tmpl {
87856 	struct xfrm_id id;
87857 	__u16 family;
87858 	xfrm_address_t saddr;
87859 	__u32 reqid;
87860 	__u8 mode;
87861 	__u8 share;
87862 	__u8 optional;
87863 	__u32 aalgos;
87864 	__u32 ealgos;
87865 	__u32 calgos;
87866 };
87867 
87868 struct xfrm_userpolicy_type {
87869 	__u8 type;
87870 	__u16 reserved1;
87871 	__u8 reserved2;
87872 };
87873 
87874 enum xfrm_sadattr_type_t {
87875 	XFRMA_SAD_UNSPEC = 0,
87876 	XFRMA_SAD_CNT = 1,
87877 	XFRMA_SAD_HINFO = 2,
87878 	__XFRMA_SAD_MAX = 3,
87879 };
87880 
87881 struct xfrmu_sadhinfo {
87882 	__u32 sadhcnt;
87883 	__u32 sadhmcnt;
87884 };
87885 
87886 enum xfrm_spdattr_type_t {
87887 	XFRMA_SPD_UNSPEC = 0,
87888 	XFRMA_SPD_INFO = 1,
87889 	XFRMA_SPD_HINFO = 2,
87890 	XFRMA_SPD_IPV4_HTHRESH = 3,
87891 	XFRMA_SPD_IPV6_HTHRESH = 4,
87892 	__XFRMA_SPD_MAX = 5,
87893 };
87894 
87895 struct xfrmu_spdinfo {
87896 	__u32 incnt;
87897 	__u32 outcnt;
87898 	__u32 fwdcnt;
87899 	__u32 inscnt;
87900 	__u32 outscnt;
87901 	__u32 fwdscnt;
87902 };
87903 
87904 struct xfrmu_spdhinfo {
87905 	__u32 spdhcnt;
87906 	__u32 spdhmcnt;
87907 };
87908 
87909 struct xfrmu_spdhthresh {
87910 	__u8 lbits;
87911 	__u8 rbits;
87912 };
87913 
87914 struct xfrm_usersa_info {
87915 	struct xfrm_selector sel;
87916 	struct xfrm_id id;
87917 	xfrm_address_t saddr;
87918 	struct xfrm_lifetime_cfg lft;
87919 	struct xfrm_lifetime_cur curlft;
87920 	struct xfrm_stats stats;
87921 	__u32 seq;
87922 	__u32 reqid;
87923 	__u16 family;
87924 	__u8 mode;
87925 	__u8 replay_window;
87926 	__u8 flags;
87927 };
87928 
87929 struct xfrm_usersa_id {
87930 	xfrm_address_t daddr;
87931 	__be32 spi;
87932 	__u16 family;
87933 	__u8 proto;
87934 };
87935 
87936 struct xfrm_aevent_id {
87937 	struct xfrm_usersa_id sa_id;
87938 	xfrm_address_t saddr;
87939 	__u32 flags;
87940 	__u32 reqid;
87941 };
87942 
87943 struct xfrm_userspi_info {
87944 	struct xfrm_usersa_info info;
87945 	__u32 min;
87946 	__u32 max;
87947 };
87948 
87949 struct xfrm_userpolicy_info {
87950 	struct xfrm_selector sel;
87951 	struct xfrm_lifetime_cfg lft;
87952 	struct xfrm_lifetime_cur curlft;
87953 	__u32 priority;
87954 	__u32 index;
87955 	__u8 dir;
87956 	__u8 action;
87957 	__u8 flags;
87958 	__u8 share;
87959 };
87960 
87961 struct xfrm_userpolicy_id {
87962 	struct xfrm_selector sel;
87963 	__u32 index;
87964 	__u8 dir;
87965 };
87966 
87967 struct xfrm_user_acquire {
87968 	struct xfrm_id id;
87969 	xfrm_address_t saddr;
87970 	struct xfrm_selector sel;
87971 	struct xfrm_userpolicy_info policy;
87972 	__u32 aalgos;
87973 	__u32 ealgos;
87974 	__u32 calgos;
87975 	__u32 seq;
87976 };
87977 
87978 struct xfrm_user_expire {
87979 	struct xfrm_usersa_info state;
87980 	__u8 hard;
87981 };
87982 
87983 struct xfrm_user_polexpire {
87984 	struct xfrm_userpolicy_info pol;
87985 	__u8 hard;
87986 };
87987 
87988 struct xfrm_usersa_flush {
87989 	__u8 proto;
87990 };
87991 
87992 struct xfrm_user_report {
87993 	__u8 proto;
87994 	struct xfrm_selector sel;
87995 };
87996 
87997 struct xfrm_user_mapping {
87998 	struct xfrm_usersa_id id;
87999 	__u32 reqid;
88000 	xfrm_address_t old_saddr;
88001 	xfrm_address_t new_saddr;
88002 	__be16 old_sport;
88003 	__be16 new_sport;
88004 };
88005 
88006 struct xfrm_user_offload {
88007 	int ifindex;
88008 	__u8 flags;
88009 };
88010 
88011 struct xfrm_userpolicy_default {
88012 	__u8 in;
88013 	__u8 fwd;
88014 	__u8 out;
88015 };
88016 
88017 struct xfrm_dump_info {
88018 	struct sk_buff *in_skb;
88019 	struct sk_buff *out_skb;
88020 	u32 nlmsg_seq;
88021 	u16 nlmsg_flags;
88022 };
88023 
88024 struct xfrm_link {
88025 	int (*doit)(struct sk_buff *, struct nlmsghdr *, struct nlattr **);
88026 	int (*start)(struct netlink_callback *);
88027 	int (*dump)(struct sk_buff *, struct netlink_callback *);
88028 	int (*done)(struct netlink_callback *);
88029 	const struct nla_policy *nla_pol;
88030 	int nla_max;
88031 };
88032 
88033 struct unix_stream_read_state {
88034 	int (*recv_actor)(struct sk_buff *, int, int, struct unix_stream_read_state *);
88035 	struct socket *socket;
88036 	struct msghdr *msg;
88037 	struct pipe_inode_info *pipe;
88038 	size_t size;
88039 	int flags;
88040 	unsigned int splice_flags;
88041 };
88042 
88043 struct bpf_unix_iter_state {
88044 	struct seq_net_private p;
88045 	unsigned int cur_sk;
88046 	unsigned int end_sk;
88047 	unsigned int max_sk;
88048 	struct sock **batch;
88049 	bool st_bucket_done;
88050 };
88051 
88052 struct bpf_iter__unix {
88053 	union {
88054 		struct bpf_iter_meta *meta;
88055 	};
88056 	union {
88057 		struct unix_sock *unix_sk;
88058 	};
88059 	uid_t uid;
88060 };
88061 
88062 struct ioam6_pernet_data {
88063 	struct mutex lock;
88064 	struct rhashtable namespaces;
88065 	struct rhashtable schemas;
88066 };
88067 
88068 enum flowlabel_reflect {
88069 	FLOWLABEL_REFLECT_ESTABLISHED = 1,
88070 	FLOWLABEL_REFLECT_TCP_RESET = 2,
88071 	FLOWLABEL_REFLECT_ICMPV6_ECHO_REPLIES = 4,
88072 };
88073 
88074 struct in6_rtmsg {
88075 	struct in6_addr rtmsg_dst;
88076 	struct in6_addr rtmsg_src;
88077 	struct in6_addr rtmsg_gateway;
88078 	__u32 rtmsg_type;
88079 	__u16 rtmsg_dst_len;
88080 	__u16 rtmsg_src_len;
88081 	__u32 rtmsg_metric;
88082 	long unsigned int rtmsg_info;
88083 	__u32 rtmsg_flags;
88084 	int rtmsg_ifindex;
88085 };
88086 
88087 struct ac6_iter_state {
88088 	struct seq_net_private p;
88089 	struct net_device *dev;
88090 	struct inet6_dev *idev;
88091 };
88092 
88093 struct ip6_fraglist_iter {
88094 	struct ipv6hdr *tmp_hdr;
88095 	struct sk_buff *frag;
88096 	int offset;
88097 	unsigned int hlen;
88098 	__be32 frag_id;
88099 	u8 nexthdr;
88100 };
88101 
88102 struct ip6_frag_state {
88103 	u8 *prevhdr;
88104 	unsigned int hlen;
88105 	unsigned int mtu;
88106 	unsigned int left;
88107 	int offset;
88108 	int ptr;
88109 	int hroom;
88110 	int troom;
88111 	__be32 frag_id;
88112 	u8 nexthdr;
88113 };
88114 
88115 struct ipcm6_cookie {
88116 	struct sockcm_cookie sockc;
88117 	__s16 hlimit;
88118 	__s16 tclass;
88119 	__u16 gso_size;
88120 	__s8 dontfrag;
88121 	struct ipv6_txoptions *opt;
88122 };
88123 
88124 enum {
88125 	IFLA_INET6_UNSPEC = 0,
88126 	IFLA_INET6_FLAGS = 1,
88127 	IFLA_INET6_CONF = 2,
88128 	IFLA_INET6_STATS = 3,
88129 	IFLA_INET6_MCAST = 4,
88130 	IFLA_INET6_CACHEINFO = 5,
88131 	IFLA_INET6_ICMP6STATS = 6,
88132 	IFLA_INET6_TOKEN = 7,
88133 	IFLA_INET6_ADDR_GEN_MODE = 8,
88134 	IFLA_INET6_RA_MTU = 9,
88135 	__IFLA_INET6_MAX = 10,
88136 };
88137 
88138 enum in6_addr_gen_mode {
88139 	IN6_ADDR_GEN_MODE_EUI64 = 0,
88140 	IN6_ADDR_GEN_MODE_NONE = 1,
88141 	IN6_ADDR_GEN_MODE_STABLE_PRIVACY = 2,
88142 	IN6_ADDR_GEN_MODE_RANDOM = 3,
88143 };
88144 
88145 struct ifla_cacheinfo {
88146 	__u32 max_reasm_len;
88147 	__u32 tstamp;
88148 	__u32 reachable_time;
88149 	__u32 retrans_time;
88150 };
88151 
88152 struct prefixmsg {
88153 	unsigned char prefix_family;
88154 	unsigned char prefix_pad1;
88155 	short unsigned int prefix_pad2;
88156 	int prefix_ifindex;
88157 	unsigned char prefix_type;
88158 	unsigned char prefix_len;
88159 	unsigned char prefix_flags;
88160 	unsigned char prefix_pad3;
88161 };
88162 
88163 enum {
88164 	PREFIX_UNSPEC = 0,
88165 	PREFIX_ADDRESS = 1,
88166 	PREFIX_CACHEINFO = 2,
88167 	__PREFIX_MAX = 3,
88168 };
88169 
88170 struct prefix_cacheinfo {
88171 	__u32 preferred_time;
88172 	__u32 valid_time;
88173 };
88174 
88175 struct in6_ifreq {
88176 	struct in6_addr ifr6_addr;
88177 	__u32 ifr6_prefixlen;
88178 	int ifr6_ifindex;
88179 };
88180 
88181 enum {
88182 	DEVCONF_FORWARDING = 0,
88183 	DEVCONF_HOPLIMIT = 1,
88184 	DEVCONF_MTU6 = 2,
88185 	DEVCONF_ACCEPT_RA = 3,
88186 	DEVCONF_ACCEPT_REDIRECTS = 4,
88187 	DEVCONF_AUTOCONF = 5,
88188 	DEVCONF_DAD_TRANSMITS = 6,
88189 	DEVCONF_RTR_SOLICITS = 7,
88190 	DEVCONF_RTR_SOLICIT_INTERVAL = 8,
88191 	DEVCONF_RTR_SOLICIT_DELAY = 9,
88192 	DEVCONF_USE_TEMPADDR = 10,
88193 	DEVCONF_TEMP_VALID_LFT = 11,
88194 	DEVCONF_TEMP_PREFERED_LFT = 12,
88195 	DEVCONF_REGEN_MAX_RETRY = 13,
88196 	DEVCONF_MAX_DESYNC_FACTOR = 14,
88197 	DEVCONF_MAX_ADDRESSES = 15,
88198 	DEVCONF_FORCE_MLD_VERSION = 16,
88199 	DEVCONF_ACCEPT_RA_DEFRTR = 17,
88200 	DEVCONF_ACCEPT_RA_PINFO = 18,
88201 	DEVCONF_ACCEPT_RA_RTR_PREF = 19,
88202 	DEVCONF_RTR_PROBE_INTERVAL = 20,
88203 	DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN = 21,
88204 	DEVCONF_PROXY_NDP = 22,
88205 	DEVCONF_OPTIMISTIC_DAD = 23,
88206 	DEVCONF_ACCEPT_SOURCE_ROUTE = 24,
88207 	DEVCONF_MC_FORWARDING = 25,
88208 	DEVCONF_DISABLE_IPV6 = 26,
88209 	DEVCONF_ACCEPT_DAD = 27,
88210 	DEVCONF_FORCE_TLLAO = 28,
88211 	DEVCONF_NDISC_NOTIFY = 29,
88212 	DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL = 30,
88213 	DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL = 31,
88214 	DEVCONF_SUPPRESS_FRAG_NDISC = 32,
88215 	DEVCONF_ACCEPT_RA_FROM_LOCAL = 33,
88216 	DEVCONF_USE_OPTIMISTIC = 34,
88217 	DEVCONF_ACCEPT_RA_MTU = 35,
88218 	DEVCONF_STABLE_SECRET = 36,
88219 	DEVCONF_USE_OIF_ADDRS_ONLY = 37,
88220 	DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT = 38,
88221 	DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 39,
88222 	DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 40,
88223 	DEVCONF_DROP_UNSOLICITED_NA = 41,
88224 	DEVCONF_KEEP_ADDR_ON_DOWN = 42,
88225 	DEVCONF_RTR_SOLICIT_MAX_INTERVAL = 43,
88226 	DEVCONF_SEG6_ENABLED = 44,
88227 	DEVCONF_SEG6_REQUIRE_HMAC = 45,
88228 	DEVCONF_ENHANCED_DAD = 46,
88229 	DEVCONF_ADDR_GEN_MODE = 47,
88230 	DEVCONF_DISABLE_POLICY = 48,
88231 	DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN = 49,
88232 	DEVCONF_NDISC_TCLASS = 50,
88233 	DEVCONF_RPL_SEG_ENABLED = 51,
88234 	DEVCONF_RA_DEFRTR_METRIC = 52,
88235 	DEVCONF_IOAM6_ENABLED = 53,
88236 	DEVCONF_IOAM6_ID = 54,
88237 	DEVCONF_IOAM6_ID_WIDE = 55,
88238 	DEVCONF_NDISC_EVICT_NOCARRIER = 56,
88239 	DEVCONF_MAX = 57,
88240 };
88241 
88242 enum {
88243 	INET6_IFADDR_STATE_PREDAD = 0,
88244 	INET6_IFADDR_STATE_DAD = 1,
88245 	INET6_IFADDR_STATE_POSTDAD = 2,
88246 	INET6_IFADDR_STATE_ERRDAD = 3,
88247 	INET6_IFADDR_STATE_DEAD = 4,
88248 };
88249 
88250 struct inet6_ifaddr {
88251 	struct in6_addr addr;
88252 	__u32 prefix_len;
88253 	__u32 rt_priority;
88254 	__u32 valid_lft;
88255 	__u32 prefered_lft;
88256 	refcount_t refcnt;
88257 	spinlock_t lock;
88258 	int state;
88259 	__u32 flags;
88260 	__u8 dad_probes;
88261 	__u8 stable_privacy_retry;
88262 	__u16 scope;
88263 	__u64 dad_nonce;
88264 	long unsigned int cstamp;
88265 	long unsigned int tstamp;
88266 	struct delayed_work dad_work;
88267 	struct inet6_dev *idev;
88268 	struct fib6_info *rt;
88269 	struct hlist_node addr_lst;
88270 	struct list_head if_list;
88271 	struct list_head tmp_list;
88272 	struct inet6_ifaddr *ifpub;
88273 	int regen_count;
88274 	bool tokenized;
88275 	struct callback_head rcu;
88276 	struct in6_addr peer_addr;
88277 };
88278 
88279 union fwnet_hwaddr {
88280 	u8 u[16];
88281 	struct {
88282 		__be64 uniq_id;
88283 		u8 max_rec;
88284 		u8 sspd;
88285 		__be16 fifo_hi;
88286 		__be32 fifo_lo;
88287 	} uc;
88288 };
88289 
88290 struct in6_validator_info {
88291 	struct in6_addr i6vi_addr;
88292 	struct inet6_dev *i6vi_dev;
88293 	struct netlink_ext_ack *extack;
88294 };
88295 
88296 struct ifa6_config {
88297 	const struct in6_addr *pfx;
88298 	unsigned int plen;
88299 	const struct in6_addr *peer_pfx;
88300 	u32 rt_priority;
88301 	u32 ifa_flags;
88302 	u32 preferred_lft;
88303 	u32 valid_lft;
88304 	u16 scope;
88305 };
88306 
88307 enum cleanup_prefix_rt_t {
88308 	CLEANUP_PREFIX_RT_NOP = 0,
88309 	CLEANUP_PREFIX_RT_DEL = 1,
88310 	CLEANUP_PREFIX_RT_EXPIRE = 2,
88311 };
88312 
88313 enum {
88314 	IPV6_SADDR_RULE_INIT = 0,
88315 	IPV6_SADDR_RULE_LOCAL = 1,
88316 	IPV6_SADDR_RULE_SCOPE = 2,
88317 	IPV6_SADDR_RULE_PREFERRED = 3,
88318 	IPV6_SADDR_RULE_HOA = 4,
88319 	IPV6_SADDR_RULE_OIF = 5,
88320 	IPV6_SADDR_RULE_LABEL = 6,
88321 	IPV6_SADDR_RULE_PRIVACY = 7,
88322 	IPV6_SADDR_RULE_ORCHID = 8,
88323 	IPV6_SADDR_RULE_PREFIX = 9,
88324 	IPV6_SADDR_RULE_MAX = 10,
88325 };
88326 
88327 struct ipv6_saddr_score {
88328 	int rule;
88329 	int addr_type;
88330 	struct inet6_ifaddr *ifa;
88331 	long unsigned int scorebits[1];
88332 	int scopedist;
88333 	int matchlen;
88334 };
88335 
88336 struct ipv6_saddr_dst {
88337 	const struct in6_addr *addr;
88338 	int ifindex;
88339 	int scope;
88340 	int label;
88341 	unsigned int prefs;
88342 };
88343 
88344 struct if6_iter_state {
88345 	struct seq_net_private p;
88346 	int bucket;
88347 	int offset;
88348 };
88349 
88350 enum addr_type_t {
88351 	UNICAST_ADDR = 0,
88352 	MULTICAST_ADDR = 1,
88353 	ANYCAST_ADDR = 2,
88354 };
88355 
88356 struct inet6_fill_args {
88357 	u32 portid;
88358 	u32 seq;
88359 	int event;
88360 	unsigned int flags;
88361 	int netnsid;
88362 	int ifindex;
88363 	enum addr_type_t type;
88364 };
88365 
88366 enum {
88367 	DAD_PROCESS = 0,
88368 	DAD_BEGIN = 1,
88369 	DAD_ABORT = 2,
88370 };
88371 
88372 struct ifaddrlblmsg {
88373 	__u8 ifal_family;
88374 	__u8 __ifal_reserved;
88375 	__u8 ifal_prefixlen;
88376 	__u8 ifal_flags;
88377 	__u32 ifal_index;
88378 	__u32 ifal_seq;
88379 };
88380 
88381 enum {
88382 	IFAL_ADDRESS = 1,
88383 	IFAL_LABEL = 2,
88384 	__IFAL_MAX = 3,
88385 };
88386 
88387 struct ip6addrlbl_entry {
88388 	struct in6_addr prefix;
88389 	int prefixlen;
88390 	int ifindex;
88391 	int addrtype;
88392 	u32 label;
88393 	struct hlist_node list;
88394 	struct callback_head rcu;
88395 };
88396 
88397 struct ip6addrlbl_init_table {
88398 	const struct in6_addr *prefix;
88399 	int prefixlen;
88400 	u32 label;
88401 };
88402 
88403 struct rd_msg {
88404 	struct icmp6hdr icmph;
88405 	struct in6_addr target;
88406 	struct in6_addr dest;
88407 	__u8 opt[0];
88408 };
88409 
88410 struct fib6_gc_args {
88411 	int timeout;
88412 	int more;
88413 };
88414 
88415 struct rt6_exception {
88416 	struct hlist_node hlist;
88417 	struct rt6_info *rt6i;
88418 	long unsigned int stamp;
88419 	struct callback_head rcu;
88420 };
88421 
88422 struct route_info {
88423 	__u8 type;
88424 	__u8 length;
88425 	__u8 prefix_len;
88426 	__u8 reserved_l: 3;
88427 	__u8 route_pref: 2;
88428 	__u8 reserved_h: 3;
88429 	__be32 lifetime;
88430 	__u8 prefix[0];
88431 };
88432 
88433 struct rt6_rtnl_dump_arg {
88434 	struct sk_buff *skb;
88435 	struct netlink_callback *cb;
88436 	struct net *net;
88437 	struct fib_dump_filter filter;
88438 };
88439 
88440 struct netevent_redirect {
88441 	struct dst_entry *old;
88442 	struct dst_entry *new;
88443 	struct neighbour *neigh;
88444 	const void *daddr;
88445 };
88446 
88447 struct trace_event_raw_fib6_table_lookup {
88448 	struct trace_entry ent;
88449 	u32 tb_id;
88450 	int err;
88451 	int oif;
88452 	int iif;
88453 	__u8 tos;
88454 	__u8 scope;
88455 	__u8 flags;
88456 	__u8 src[16];
88457 	__u8 dst[16];
88458 	u16 sport;
88459 	u16 dport;
88460 	u8 proto;
88461 	u8 rt_type;
88462 	u32 __data_loc_name;
88463 	__u8 gw[16];
88464 	char __data[0];
88465 };
88466 
88467 struct trace_event_data_offsets_fib6_table_lookup {
88468 	u32 name;
88469 };
88470 
88471 typedef void (*btf_trace_fib6_table_lookup)(void *, const struct net *, const struct fib6_result *, struct fib6_table *, const struct flowi6 *);
88472 
88473 enum rt6_nud_state {
88474 	RT6_NUD_FAIL_HARD = 4294967293,
88475 	RT6_NUD_FAIL_PROBE = 4294967294,
88476 	RT6_NUD_FAIL_DO_RR = 4294967295,
88477 	RT6_NUD_SUCCEED = 1,
88478 };
88479 
88480 struct fib6_nh_dm_arg {
88481 	struct net *net;
88482 	const struct in6_addr *saddr;
88483 	int oif;
88484 	int flags;
88485 	struct fib6_nh *nh;
88486 };
88487 
88488 struct __rt6_probe_work {
88489 	struct work_struct work;
88490 	struct in6_addr target;
88491 	struct net_device *dev;
88492 	netdevice_tracker dev_tracker;
88493 };
88494 
88495 struct fib6_nh_frl_arg {
88496 	u32 flags;
88497 	int oif;
88498 	int strict;
88499 	int *mpri;
88500 	bool *do_rr;
88501 	struct fib6_nh *nh;
88502 };
88503 
88504 struct fib6_nh_excptn_arg {
88505 	struct rt6_info *rt;
88506 	int plen;
88507 };
88508 
88509 struct fib6_nh_match_arg {
88510 	const struct net_device *dev;
88511 	const struct in6_addr *gw;
88512 	struct fib6_nh *match;
88513 };
88514 
88515 struct fib6_nh_age_excptn_arg {
88516 	struct fib6_gc_args *gc_args;
88517 	long unsigned int now;
88518 };
88519 
88520 struct fib6_nh_rd_arg {
88521 	struct fib6_result *res;
88522 	struct flowi6 *fl6;
88523 	const struct in6_addr *gw;
88524 	struct rt6_info **ret;
88525 };
88526 
88527 struct ip6rd_flowi {
88528 	struct flowi6 fl6;
88529 	struct in6_addr gateway;
88530 };
88531 
88532 struct fib6_nh_del_cached_rt_arg {
88533 	struct fib6_config *cfg;
88534 	struct fib6_info *f6i;
88535 };
88536 
88537 struct arg_dev_net_ip {
88538 	struct net_device *dev;
88539 	struct net *net;
88540 	struct in6_addr *addr;
88541 };
88542 
88543 struct arg_netdev_event {
88544 	const struct net_device *dev;
88545 	union {
88546 		unsigned char nh_flags;
88547 		long unsigned int event;
88548 	};
88549 };
88550 
88551 struct rt6_mtu_change_arg {
88552 	struct net_device *dev;
88553 	unsigned int mtu;
88554 	struct fib6_info *f6i;
88555 };
88556 
88557 struct rt6_nh {
88558 	struct fib6_info *fib6_info;
88559 	struct fib6_config r_cfg;
88560 	struct list_head next;
88561 };
88562 
88563 struct fib6_nh_exception_dump_walker {
88564 	struct rt6_rtnl_dump_arg *dump;
88565 	struct fib6_info *rt;
88566 	unsigned int flags;
88567 	unsigned int skip;
88568 	unsigned int count;
88569 };
88570 
88571 enum fib6_walk_state {
88572 	FWS_S = 0,
88573 	FWS_L = 1,
88574 	FWS_R = 2,
88575 	FWS_C = 3,
88576 	FWS_U = 4,
88577 };
88578 
88579 struct fib6_walker {
88580 	struct list_head lh;
88581 	struct fib6_node *root;
88582 	struct fib6_node *node;
88583 	struct fib6_info *leaf;
88584 	enum fib6_walk_state state;
88585 	unsigned int skip;
88586 	unsigned int count;
88587 	unsigned int skip_in_node;
88588 	int (*func)(struct fib6_walker *);
88589 	void *args;
88590 };
88591 
88592 struct ipv6_route_iter {
88593 	struct seq_net_private p;
88594 	struct fib6_walker w;
88595 	loff_t skip;
88596 	struct fib6_table *tbl;
88597 	int sernum;
88598 };
88599 
88600 struct bpf_iter__ipv6_route {
88601 	union {
88602 		struct bpf_iter_meta *meta;
88603 	};
88604 	union {
88605 		struct fib6_info *rt;
88606 	};
88607 };
88608 
88609 struct fib6_cleaner {
88610 	struct fib6_walker w;
88611 	struct net *net;
88612 	int (*func)(struct fib6_info *, void *);
88613 	int sernum;
88614 	void *arg;
88615 	bool skip_notify;
88616 };
88617 
88618 enum {
88619 	FIB6_NO_SERNUM_CHANGE = 0,
88620 };
88621 
88622 struct fib6_dump_arg {
88623 	struct net *net;
88624 	struct notifier_block *nb;
88625 	struct netlink_ext_ack *extack;
88626 };
88627 
88628 struct fib6_nh_pcpu_arg {
88629 	struct fib6_info *from;
88630 	const struct fib6_table *table;
88631 };
88632 
88633 struct lookup_args {
88634 	int offset;
88635 	const struct in6_addr *addr;
88636 };
88637 
88638 struct ipv6_mreq {
88639 	struct in6_addr ipv6mr_multiaddr;
88640 	int ipv6mr_ifindex;
88641 };
88642 
88643 struct in6_flowlabel_req {
88644 	struct in6_addr flr_dst;
88645 	__be32 flr_label;
88646 	__u8 flr_action;
88647 	__u8 flr_share;
88648 	__u16 flr_flags;
88649 	__u16 flr_expires;
88650 	__u16 flr_linger;
88651 	__u32 __flr_pad;
88652 };
88653 
88654 struct ip6_mtuinfo {
88655 	struct sockaddr_in6 ip6m_addr;
88656 	__u32 ip6m_mtu;
88657 };
88658 
88659 struct nduseroptmsg {
88660 	unsigned char nduseropt_family;
88661 	unsigned char nduseropt_pad1;
88662 	short unsigned int nduseropt_opts_len;
88663 	int nduseropt_ifindex;
88664 	__u8 nduseropt_icmp_type;
88665 	__u8 nduseropt_icmp_code;
88666 	short unsigned int nduseropt_pad2;
88667 	unsigned int nduseropt_pad3;
88668 };
88669 
88670 enum {
88671 	NDUSEROPT_UNSPEC = 0,
88672 	NDUSEROPT_SRCADDR = 1,
88673 	__NDUSEROPT_MAX = 2,
88674 };
88675 
88676 struct rs_msg {
88677 	struct icmp6hdr icmph;
88678 	__u8 opt[0];
88679 };
88680 
88681 struct ra_msg {
88682 	struct icmp6hdr icmph;
88683 	__be32 reachable_time;
88684 	__be32 retrans_timer;
88685 };
88686 
88687 struct icmp6_filter {
88688 	__u32 data[8];
88689 };
88690 
88691 struct raw6_sock {
88692 	struct inet_sock inet;
88693 	__u32 checksum;
88694 	__u32 offset;
88695 	struct icmp6_filter filter;
88696 	__u32 ip6mr_table;
88697 	struct ipv6_pinfo inet6;
88698 };
88699 
88700 typedef int mh_filter_t(struct sock *, struct sk_buff *);
88701 
88702 struct raw6_frag_vec {
88703 	struct msghdr *msg;
88704 	int hlen;
88705 	char c[4];
88706 };
88707 
88708 struct ipv6_destopt_hao {
88709 	__u8 type;
88710 	__u8 length;
88711 	struct in6_addr addr;
88712 } __attribute__((packed));
88713 
88714 typedef void ip6_icmp_send_t(struct sk_buff *, u8, u8, __u32, const struct in6_addr *, const struct inet6_skb_parm *);
88715 
88716 struct icmpv6_msg {
88717 	struct sk_buff *skb;
88718 	int offset;
88719 	uint8_t type;
88720 };
88721 
88722 struct icmp6_err {
88723 	int err;
88724 	int fatal;
88725 };
88726 
88727 struct mld_msg {
88728 	struct icmp6hdr mld_hdr;
88729 	struct in6_addr mld_mca;
88730 };
88731 
88732 struct mld2_grec {
88733 	__u8 grec_type;
88734 	__u8 grec_auxwords;
88735 	__be16 grec_nsrcs;
88736 	struct in6_addr grec_mca;
88737 	struct in6_addr grec_src[0];
88738 };
88739 
88740 struct mld2_report {
88741 	struct icmp6hdr mld2r_hdr;
88742 	struct mld2_grec mld2r_grec[0];
88743 };
88744 
88745 struct mld2_query {
88746 	struct icmp6hdr mld2q_hdr;
88747 	struct in6_addr mld2q_mca;
88748 	__u8 mld2q_qrv: 3;
88749 	__u8 mld2q_suppress: 1;
88750 	__u8 mld2q_resv2: 4;
88751 	__u8 mld2q_qqic;
88752 	__be16 mld2q_nsrcs;
88753 	struct in6_addr mld2q_srcs[0];
88754 };
88755 
88756 struct igmp6_mc_iter_state {
88757 	struct seq_net_private p;
88758 	struct net_device *dev;
88759 	struct inet6_dev *idev;
88760 };
88761 
88762 struct igmp6_mcf_iter_state {
88763 	struct seq_net_private p;
88764 	struct net_device *dev;
88765 	struct inet6_dev *idev;
88766 	struct ifmcaddr6 *im;
88767 };
88768 
88769 enum ip6_defrag_users {
88770 	IP6_DEFRAG_LOCAL_DELIVER = 0,
88771 	IP6_DEFRAG_CONNTRACK_IN = 1,
88772 	__IP6_DEFRAG_CONNTRACK_IN = 65536,
88773 	IP6_DEFRAG_CONNTRACK_OUT = 65537,
88774 	__IP6_DEFRAG_CONNTRACK_OUT = 131072,
88775 	IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 131073,
88776 	__IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 196608,
88777 };
88778 
88779 struct frag_queue {
88780 	struct inet_frag_queue q;
88781 	int iif;
88782 	__u16 nhoffset;
88783 	u8 ecn;
88784 };
88785 
88786 struct tcp6_pseudohdr {
88787 	struct in6_addr saddr;
88788 	struct in6_addr daddr;
88789 	__be32 len;
88790 	__be32 protocol;
88791 };
88792 
88793 struct rt0_hdr {
88794 	struct ipv6_rt_hdr rt_hdr;
88795 	__u32 reserved;
88796 	struct in6_addr addr[0];
88797 };
88798 
88799 struct ipv6_rpl_sr_hdr {
88800 	__u8 nexthdr;
88801 	__u8 hdrlen;
88802 	__u8 type;
88803 	__u8 segments_left;
88804 	__u32 cmpre: 4;
88805 	__u32 cmpri: 4;
88806 	__u32 reserved: 4;
88807 	__u32 pad: 4;
88808 	__u32 reserved1: 16;
88809 	union {
88810 		struct in6_addr addr[0];
88811 		__u8 data[0];
88812 	} segments;
88813 };
88814 
88815 struct ioam6_hdr {
88816 	__u8 opt_type;
88817 	__u8 opt_len;
88818 	char: 8;
88819 	__u8 type;
88820 };
88821 
88822 struct ioam6_trace_hdr {
88823 	__be16 namespace_id;
88824 	char: 2;
88825 	__u8 overflow: 1;
88826 	__u8 nodelen: 5;
88827 	__u8 remlen: 7;
88828 	union {
88829 		__be32 type_be32;
88830 		struct {
88831 			__u32 bit7: 1;
88832 			__u32 bit6: 1;
88833 			__u32 bit5: 1;
88834 			__u32 bit4: 1;
88835 			__u32 bit3: 1;
88836 			__u32 bit2: 1;
88837 			__u32 bit1: 1;
88838 			__u32 bit0: 1;
88839 			__u32 bit15: 1;
88840 			__u32 bit14: 1;
88841 			__u32 bit13: 1;
88842 			__u32 bit12: 1;
88843 			__u32 bit11: 1;
88844 			__u32 bit10: 1;
88845 			__u32 bit9: 1;
88846 			__u32 bit8: 1;
88847 			__u32 bit23: 1;
88848 			__u32 bit22: 1;
88849 			__u32 bit21: 1;
88850 			__u32 bit20: 1;
88851 			__u32 bit19: 1;
88852 			__u32 bit18: 1;
88853 			__u32 bit17: 1;
88854 			__u32 bit16: 1;
88855 		} type;
88856 	};
88857 	__u8 data[0];
88858 };
88859 
88860 struct ioam6_schema;
88861 
88862 struct ioam6_namespace {
88863 	struct rhash_head head;
88864 	struct callback_head rcu;
88865 	struct ioam6_schema *schema;
88866 	__be16 id;
88867 	__be32 data;
88868 	__be64 data_wide;
88869 };
88870 
88871 struct ioam6_schema {
88872 	struct rhash_head head;
88873 	struct callback_head rcu;
88874 	struct ioam6_namespace *ns;
88875 	u32 id;
88876 	int len;
88877 	__be32 hdr;
88878 	u8 data[0];
88879 };
88880 
88881 struct ip6fl_iter_state {
88882 	struct seq_net_private p;
88883 	struct pid_namespace *pid_ns;
88884 	int bucket;
88885 };
88886 
88887 struct sr6_tlv {
88888 	__u8 type;
88889 	__u8 len;
88890 	__u8 data[0];
88891 };
88892 
88893 enum {
88894 	SEG6_ATTR_UNSPEC = 0,
88895 	SEG6_ATTR_DST = 1,
88896 	SEG6_ATTR_DSTLEN = 2,
88897 	SEG6_ATTR_HMACKEYID = 3,
88898 	SEG6_ATTR_SECRET = 4,
88899 	SEG6_ATTR_SECRETLEN = 5,
88900 	SEG6_ATTR_ALGID = 6,
88901 	SEG6_ATTR_HMACINFO = 7,
88902 	__SEG6_ATTR_MAX = 8,
88903 };
88904 
88905 enum {
88906 	SEG6_CMD_UNSPEC = 0,
88907 	SEG6_CMD_SETHMAC = 1,
88908 	SEG6_CMD_DUMPHMAC = 2,
88909 	SEG6_CMD_SET_TUNSRC = 3,
88910 	SEG6_CMD_GET_TUNSRC = 4,
88911 	__SEG6_CMD_MAX = 5,
88912 };
88913 
88914 enum {
88915 	IOAM6_ATTR_UNSPEC = 0,
88916 	IOAM6_ATTR_NS_ID = 1,
88917 	IOAM6_ATTR_NS_DATA = 2,
88918 	IOAM6_ATTR_NS_DATA_WIDE = 3,
88919 	IOAM6_ATTR_SC_ID = 4,
88920 	IOAM6_ATTR_SC_DATA = 5,
88921 	IOAM6_ATTR_SC_NONE = 6,
88922 	IOAM6_ATTR_PAD = 7,
88923 	__IOAM6_ATTR_MAX = 8,
88924 };
88925 
88926 enum {
88927 	IOAM6_CMD_UNSPEC = 0,
88928 	IOAM6_CMD_ADD_NAMESPACE = 1,
88929 	IOAM6_CMD_DEL_NAMESPACE = 2,
88930 	IOAM6_CMD_DUMP_NAMESPACES = 3,
88931 	IOAM6_CMD_ADD_SCHEMA = 4,
88932 	IOAM6_CMD_DEL_SCHEMA = 5,
88933 	IOAM6_CMD_DUMP_SCHEMAS = 6,
88934 	IOAM6_CMD_NS_SET_SCHEMA = 7,
88935 	__IOAM6_CMD_MAX = 8,
88936 };
88937 
88938 struct xfrm6_protocol {
88939 	int (*handler)(struct sk_buff *);
88940 	int (*input_handler)(struct sk_buff *, int, __be32, int);
88941 	int (*cb_handler)(struct sk_buff *, int);
88942 	int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32);
88943 	struct xfrm6_protocol *next;
88944 	int priority;
88945 };
88946 
88947 struct br_input_skb_cb {
88948 	struct net_device *brdev;
88949 	u16 frag_max_size;
88950 	u8 proxyarp_replied: 1;
88951 	u8 src_port_isolated: 1;
88952 };
88953 
88954 struct nf_br_ops {
88955 	int (*br_dev_xmit_hook)(struct sk_buff *);
88956 };
88957 
88958 struct nf_bridge_frag_data;
88959 
88960 typedef struct rt6_info * (*pol_lookup_t)(struct net *, struct fib6_table *, struct flowi6 *, const struct sk_buff *, int);
88961 
88962 struct fib6_rule {
88963 	struct fib_rule common;
88964 	struct rt6key src;
88965 	struct rt6key dst;
88966 	u8 tclass;
88967 };
88968 
88969 struct calipso_doi;
88970 
88971 struct netlbl_calipso_ops {
88972 	int (*doi_add)(struct calipso_doi *, struct netlbl_audit *);
88973 	void (*doi_free)(struct calipso_doi *);
88974 	int (*doi_remove)(u32, struct netlbl_audit *);
88975 	struct calipso_doi * (*doi_getdef)(u32);
88976 	void (*doi_putdef)(struct calipso_doi *);
88977 	int (*doi_walk)(u32 *, int (*)(struct calipso_doi *, void *), void *);
88978 	int (*sock_getattr)(struct sock *, struct netlbl_lsm_secattr *);
88979 	int (*sock_setattr)(struct sock *, const struct calipso_doi *, const struct netlbl_lsm_secattr *);
88980 	void (*sock_delattr)(struct sock *);
88981 	int (*req_setattr)(struct request_sock *, const struct calipso_doi *, const struct netlbl_lsm_secattr *);
88982 	void (*req_delattr)(struct request_sock *);
88983 	int (*opt_getattr)(const unsigned char *, struct netlbl_lsm_secattr *);
88984 	unsigned char * (*skbuff_optptr)(const struct sk_buff *);
88985 	int (*skbuff_setattr)(struct sk_buff *, const struct calipso_doi *, const struct netlbl_lsm_secattr *);
88986 	int (*skbuff_delattr)(struct sk_buff *);
88987 	void (*cache_invalidate)();
88988 	int (*cache_add)(const unsigned char *, const struct netlbl_lsm_secattr *);
88989 };
88990 
88991 struct calipso_doi {
88992 	u32 doi;
88993 	u32 type;
88994 	refcount_t refcount;
88995 	struct list_head list;
88996 	struct callback_head rcu;
88997 };
88998 
88999 struct calipso_map_cache_bkt {
89000 	spinlock_t lock;
89001 	u32 size;
89002 	struct list_head list;
89003 };
89004 
89005 struct calipso_map_cache_entry {
89006 	u32 hash;
89007 	unsigned char *key;
89008 	size_t key_len;
89009 	struct netlbl_lsm_cache *lsm_data;
89010 	u32 activity;
89011 	struct list_head list;
89012 };
89013 
89014 enum {
89015 	SEG6_IPTUNNEL_UNSPEC = 0,
89016 	SEG6_IPTUNNEL_SRH = 1,
89017 	__SEG6_IPTUNNEL_MAX = 2,
89018 };
89019 
89020 struct seg6_iptunnel_encap {
89021 	int mode;
89022 	struct ipv6_sr_hdr srh[0];
89023 };
89024 
89025 enum {
89026 	SEG6_IPTUN_MODE_INLINE = 0,
89027 	SEG6_IPTUN_MODE_ENCAP = 1,
89028 	SEG6_IPTUN_MODE_L2ENCAP = 2,
89029 };
89030 
89031 struct seg6_lwt {
89032 	struct dst_cache cache;
89033 	struct seg6_iptunnel_encap tuninfo[0];
89034 };
89035 
89036 enum {
89037 	IP6_FH_F_FRAG = 1,
89038 	IP6_FH_F_AUTH = 2,
89039 	IP6_FH_F_SKIP_RH = 4,
89040 };
89041 
89042 enum {
89043 	SEG6_LOCAL_UNSPEC = 0,
89044 	SEG6_LOCAL_ACTION = 1,
89045 	SEG6_LOCAL_SRH = 2,
89046 	SEG6_LOCAL_TABLE = 3,
89047 	SEG6_LOCAL_NH4 = 4,
89048 	SEG6_LOCAL_NH6 = 5,
89049 	SEG6_LOCAL_IIF = 6,
89050 	SEG6_LOCAL_OIF = 7,
89051 	SEG6_LOCAL_BPF = 8,
89052 	SEG6_LOCAL_VRFTABLE = 9,
89053 	SEG6_LOCAL_COUNTERS = 10,
89054 	__SEG6_LOCAL_MAX = 11,
89055 };
89056 
89057 enum {
89058 	SEG6_LOCAL_BPF_PROG_UNSPEC = 0,
89059 	SEG6_LOCAL_BPF_PROG = 1,
89060 	SEG6_LOCAL_BPF_PROG_NAME = 2,
89061 	__SEG6_LOCAL_BPF_PROG_MAX = 3,
89062 };
89063 
89064 enum {
89065 	SEG6_LOCAL_CNT_UNSPEC = 0,
89066 	SEG6_LOCAL_CNT_PAD = 1,
89067 	SEG6_LOCAL_CNT_PACKETS = 2,
89068 	SEG6_LOCAL_CNT_BYTES = 3,
89069 	SEG6_LOCAL_CNT_ERRORS = 4,
89070 	__SEG6_LOCAL_CNT_MAX = 5,
89071 };
89072 
89073 struct seg6_local_lwt;
89074 
89075 struct seg6_local_lwtunnel_ops {
89076 	int (*build_state)(struct seg6_local_lwt *, const void *, struct netlink_ext_ack *);
89077 	void (*destroy_state)(struct seg6_local_lwt *);
89078 };
89079 
89080 struct pcpu_seg6_local_counters;
89081 
89082 struct seg6_action_desc;
89083 
89084 struct seg6_local_lwt {
89085 	int action;
89086 	struct ipv6_sr_hdr *srh;
89087 	int table;
89088 	struct in_addr nh4;
89089 	struct in6_addr nh6;
89090 	int iif;
89091 	int oif;
89092 	struct bpf_lwt_prog bpf;
89093 	struct pcpu_seg6_local_counters *pcpu_counters;
89094 	int headroom;
89095 	struct seg6_action_desc *desc;
89096 	long unsigned int parsed_optattrs;
89097 };
89098 
89099 struct seg6_action_desc {
89100 	int action;
89101 	long unsigned int attrs;
89102 	long unsigned int optattrs;
89103 	int (*input)(struct sk_buff *, struct seg6_local_lwt *);
89104 	int static_headroom;
89105 	struct seg6_local_lwtunnel_ops slwt_ops;
89106 };
89107 
89108 enum seg6_end_dt_mode {
89109 	DT_INVALID_MODE = 4294967274,
89110 	DT_LEGACY_MODE = 0,
89111 	DT_VRF_MODE = 1,
89112 };
89113 
89114 struct seg6_end_dt_info {
89115 	enum seg6_end_dt_mode mode;
89116 	struct net *net;
89117 	int vrf_ifindex;
89118 	int vrf_table;
89119 	u16 family;
89120 };
89121 
89122 struct pcpu_seg6_local_counters {
89123 	u64_stats_t packets;
89124 	u64_stats_t bytes;
89125 	u64_stats_t errors;
89126 	struct u64_stats_sync syncp;
89127 };
89128 
89129 struct seg6_local_counters {
89130 	__u64 packets;
89131 	__u64 bytes;
89132 	__u64 errors;
89133 };
89134 
89135 struct seg6_action_param {
89136 	int (*parse)(struct nlattr **, struct seg6_local_lwt *);
89137 	int (*put)(struct sk_buff *, struct seg6_local_lwt *);
89138 	int (*cmp)(struct seg6_local_lwt *, struct seg6_local_lwt *);
89139 	void (*destroy)(struct seg6_local_lwt *);
89140 };
89141 
89142 struct xfrm6_tunnel {
89143 	int (*handler)(struct sk_buff *);
89144 	int (*cb_handler)(struct sk_buff *, int);
89145 	int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32);
89146 	struct xfrm6_tunnel *next;
89147 	int priority;
89148 };
89149 
89150 struct rt2_hdr {
89151 	struct ipv6_rt_hdr rt_hdr;
89152 	__u32 reserved;
89153 	struct in6_addr addr;
89154 };
89155 
89156 struct mip6_report_rate_limiter {
89157 	spinlock_t lock;
89158 	ktime_t stamp;
89159 	int iif;
89160 	struct in6_addr src;
89161 	struct in6_addr dst;
89162 };
89163 
89164 struct ip6t_ip6 {
89165 	struct in6_addr src;
89166 	struct in6_addr dst;
89167 	struct in6_addr smsk;
89168 	struct in6_addr dmsk;
89169 	char iniface[16];
89170 	char outiface[16];
89171 	unsigned char iniface_mask[16];
89172 	unsigned char outiface_mask[16];
89173 	__u16 proto;
89174 	__u8 tos;
89175 	__u8 flags;
89176 	__u8 invflags;
89177 };
89178 
89179 struct ip6t_entry {
89180 	struct ip6t_ip6 ipv6;
89181 	unsigned int nfcache;
89182 	__u16 target_offset;
89183 	__u16 next_offset;
89184 	unsigned int comefrom;
89185 	struct xt_counters counters;
89186 	unsigned char elems[0];
89187 };
89188 
89189 struct ip6t_standard {
89190 	struct ip6t_entry entry;
89191 	struct xt_standard_target target;
89192 };
89193 
89194 struct ip6t_error {
89195 	struct ip6t_entry entry;
89196 	struct xt_error_target target;
89197 };
89198 
89199 struct ip6t_icmp {
89200 	__u8 type;
89201 	__u8 code[2];
89202 	__u8 invflags;
89203 };
89204 
89205 struct ip6t_getinfo {
89206 	char name[32];
89207 	unsigned int valid_hooks;
89208 	unsigned int hook_entry[5];
89209 	unsigned int underflow[5];
89210 	unsigned int num_entries;
89211 	unsigned int size;
89212 };
89213 
89214 struct ip6t_replace {
89215 	char name[32];
89216 	unsigned int valid_hooks;
89217 	unsigned int num_entries;
89218 	unsigned int size;
89219 	unsigned int hook_entry[5];
89220 	unsigned int underflow[5];
89221 	unsigned int num_counters;
89222 	struct xt_counters *counters;
89223 	struct ip6t_entry entries[0];
89224 };
89225 
89226 struct ip6t_get_entries {
89227 	char name[32];
89228 	unsigned int size;
89229 	struct ip6t_entry entrytable[0];
89230 };
89231 
89232 struct nft_ct_frag6_pernet {
89233 	struct ctl_table_header *nf_frag_frags_hdr;
89234 	struct fqdir *fqdir;
89235 };
89236 
89237 struct ip_tunnel_prl {
89238 	__be32 addr;
89239 	__u16 flags;
89240 	__u16 __reserved;
89241 	__u32 datalen;
89242 	__u32 __reserved2;
89243 };
89244 
89245 struct sit_net {
89246 	struct ip_tunnel *tunnels_r_l[16];
89247 	struct ip_tunnel *tunnels_r[16];
89248 	struct ip_tunnel *tunnels_l[16];
89249 	struct ip_tunnel *tunnels_wc[1];
89250 	struct ip_tunnel **tunnels[4];
89251 	struct net_device *fb_tunnel_dev;
89252 };
89253 
89254 struct ip6_tnl_parm {
89255 	char name[16];
89256 	int link;
89257 	__u8 proto;
89258 	__u8 encap_limit;
89259 	__u8 hop_limit;
89260 	__be32 flowinfo;
89261 	__u32 flags;
89262 	struct in6_addr laddr;
89263 	struct in6_addr raddr;
89264 };
89265 
89266 struct ipv6_tlv_tnl_enc_lim {
89267 	__u8 type;
89268 	__u8 length;
89269 	__u8 encap_limit;
89270 };
89271 
89272 struct ip6_tnl_net {
89273 	struct net_device *fb_tnl_dev;
89274 	struct ip6_tnl *tnls_r_l[32];
89275 	struct ip6_tnl *tnls_wc[1];
89276 	struct ip6_tnl **tnls[2];
89277 	struct ip6_tnl *collect_md_tun;
89278 };
89279 
89280 struct ipv6_tel_txoption {
89281 	struct ipv6_txoptions ops;
89282 	__u8 dst_opt[8];
89283 };
89284 
89285 struct ip6_tnl_parm2 {
89286 	char name[16];
89287 	int link;
89288 	__u8 proto;
89289 	__u8 encap_limit;
89290 	__u8 hop_limit;
89291 	__be32 flowinfo;
89292 	__u32 flags;
89293 	struct in6_addr laddr;
89294 	struct in6_addr raddr;
89295 	__be16 i_flags;
89296 	__be16 o_flags;
89297 	__be32 i_key;
89298 	__be32 o_key;
89299 };
89300 
89301 struct ip6gre_net {
89302 	struct ip6_tnl *tunnels[128];
89303 	struct ip6_tnl *collect_md_tun;
89304 	struct ip6_tnl *collect_md_tun_erspan;
89305 	struct net_device *fb_tunnel_dev;
89306 };
89307 
89308 struct sockaddr_pkt {
89309 	short unsigned int spkt_family;
89310 	unsigned char spkt_device[14];
89311 	__be16 spkt_protocol;
89312 };
89313 
89314 struct sockaddr_ll {
89315 	short unsigned int sll_family;
89316 	__be16 sll_protocol;
89317 	int sll_ifindex;
89318 	short unsigned int sll_hatype;
89319 	unsigned char sll_pkttype;
89320 	unsigned char sll_halen;
89321 	unsigned char sll_addr[8];
89322 };
89323 
89324 struct tpacket_stats {
89325 	unsigned int tp_packets;
89326 	unsigned int tp_drops;
89327 };
89328 
89329 struct tpacket_stats_v3 {
89330 	unsigned int tp_packets;
89331 	unsigned int tp_drops;
89332 	unsigned int tp_freeze_q_cnt;
89333 };
89334 
89335 struct tpacket_rollover_stats {
89336 	__u64 tp_all;
89337 	__u64 tp_huge;
89338 	__u64 tp_failed;
89339 };
89340 
89341 union tpacket_stats_u {
89342 	struct tpacket_stats stats1;
89343 	struct tpacket_stats_v3 stats3;
89344 };
89345 
89346 struct tpacket_auxdata {
89347 	__u32 tp_status;
89348 	__u32 tp_len;
89349 	__u32 tp_snaplen;
89350 	__u16 tp_mac;
89351 	__u16 tp_net;
89352 	__u16 tp_vlan_tci;
89353 	__u16 tp_vlan_tpid;
89354 };
89355 
89356 struct tpacket_hdr {
89357 	long unsigned int tp_status;
89358 	unsigned int tp_len;
89359 	unsigned int tp_snaplen;
89360 	short unsigned int tp_mac;
89361 	short unsigned int tp_net;
89362 	unsigned int tp_sec;
89363 	unsigned int tp_usec;
89364 };
89365 
89366 struct tpacket2_hdr {
89367 	__u32 tp_status;
89368 	__u32 tp_len;
89369 	__u32 tp_snaplen;
89370 	__u16 tp_mac;
89371 	__u16 tp_net;
89372 	__u32 tp_sec;
89373 	__u32 tp_nsec;
89374 	__u16 tp_vlan_tci;
89375 	__u16 tp_vlan_tpid;
89376 	__u8 tp_padding[4];
89377 };
89378 
89379 struct tpacket_hdr_variant1 {
89380 	__u32 tp_rxhash;
89381 	__u32 tp_vlan_tci;
89382 	__u16 tp_vlan_tpid;
89383 	__u16 tp_padding;
89384 };
89385 
89386 struct tpacket3_hdr {
89387 	__u32 tp_next_offset;
89388 	__u32 tp_sec;
89389 	__u32 tp_nsec;
89390 	__u32 tp_snaplen;
89391 	__u32 tp_len;
89392 	__u32 tp_status;
89393 	__u16 tp_mac;
89394 	__u16 tp_net;
89395 	union {
89396 		struct tpacket_hdr_variant1 hv1;
89397 	};
89398 	__u8 tp_padding[8];
89399 };
89400 
89401 struct tpacket_bd_ts {
89402 	unsigned int ts_sec;
89403 	union {
89404 		unsigned int ts_usec;
89405 		unsigned int ts_nsec;
89406 	};
89407 };
89408 
89409 struct tpacket_hdr_v1 {
89410 	__u32 block_status;
89411 	__u32 num_pkts;
89412 	__u32 offset_to_first_pkt;
89413 	__u32 blk_len;
89414 	__u64 seq_num;
89415 	struct tpacket_bd_ts ts_first_pkt;
89416 	struct tpacket_bd_ts ts_last_pkt;
89417 };
89418 
89419 union tpacket_bd_header_u {
89420 	struct tpacket_hdr_v1 bh1;
89421 };
89422 
89423 struct tpacket_block_desc {
89424 	__u32 version;
89425 	__u32 offset_to_priv;
89426 	union tpacket_bd_header_u hdr;
89427 };
89428 
89429 enum tpacket_versions {
89430 	TPACKET_V1 = 0,
89431 	TPACKET_V2 = 1,
89432 	TPACKET_V3 = 2,
89433 };
89434 
89435 struct tpacket_req {
89436 	unsigned int tp_block_size;
89437 	unsigned int tp_block_nr;
89438 	unsigned int tp_frame_size;
89439 	unsigned int tp_frame_nr;
89440 };
89441 
89442 struct tpacket_req3 {
89443 	unsigned int tp_block_size;
89444 	unsigned int tp_block_nr;
89445 	unsigned int tp_frame_size;
89446 	unsigned int tp_frame_nr;
89447 	unsigned int tp_retire_blk_tov;
89448 	unsigned int tp_sizeof_priv;
89449 	unsigned int tp_feature_req_word;
89450 };
89451 
89452 union tpacket_req_u {
89453 	struct tpacket_req req;
89454 	struct tpacket_req3 req3;
89455 };
89456 
89457 struct fanout_args {
89458 	__u16 id;
89459 	__u16 type_flags;
89460 	__u32 max_num_members;
89461 };
89462 
89463 struct packet_mclist {
89464 	struct packet_mclist *next;
89465 	int ifindex;
89466 	int count;
89467 	short unsigned int type;
89468 	short unsigned int alen;
89469 	unsigned char addr[32];
89470 };
89471 
89472 struct pgv;
89473 
89474 struct tpacket_kbdq_core {
89475 	struct pgv *pkbdq;
89476 	unsigned int feature_req_word;
89477 	unsigned int hdrlen;
89478 	unsigned char reset_pending_on_curr_blk;
89479 	unsigned char delete_blk_timer;
89480 	short unsigned int kactive_blk_num;
89481 	short unsigned int blk_sizeof_priv;
89482 	short unsigned int last_kactive_blk_num;
89483 	char *pkblk_start;
89484 	char *pkblk_end;
89485 	int kblk_size;
89486 	unsigned int max_frame_len;
89487 	unsigned int knum_blocks;
89488 	uint64_t knxt_seq_num;
89489 	char *prev;
89490 	char *nxt_offset;
89491 	struct sk_buff *skb;
89492 	rwlock_t blk_fill_in_prog_lock;
89493 	short unsigned int retire_blk_tov;
89494 	short unsigned int version;
89495 	long unsigned int tov_in_jiffies;
89496 	struct timer_list retire_blk_timer;
89497 };
89498 
89499 struct pgv {
89500 	char *buffer;
89501 };
89502 
89503 struct packet_ring_buffer {
89504 	struct pgv *pg_vec;
89505 	unsigned int head;
89506 	unsigned int frames_per_block;
89507 	unsigned int frame_size;
89508 	unsigned int frame_max;
89509 	unsigned int pg_vec_order;
89510 	unsigned int pg_vec_pages;
89511 	unsigned int pg_vec_len;
89512 	unsigned int *pending_refcnt;
89513 	union {
89514 		long unsigned int *rx_owner_map;
89515 		struct tpacket_kbdq_core prb_bdqc;
89516 	};
89517 };
89518 
89519 struct packet_fanout {
89520 	possible_net_t net;
89521 	unsigned int num_members;
89522 	u32 max_num_members;
89523 	u16 id;
89524 	u8 type;
89525 	u8 flags;
89526 	union {
89527 		atomic_t rr_cur;
89528 		struct bpf_prog *bpf_prog;
89529 	};
89530 	struct list_head list;
89531 	spinlock_t lock;
89532 	refcount_t sk_ref;
89533 	long: 32;
89534 	long: 64;
89535 	struct packet_type prot_hook;
89536 	struct sock *arr[0];
89537 	long: 64;
89538 	long: 64;
89539 	long: 64;
89540 	long: 64;
89541 	long: 64;
89542 	long: 64;
89543 	long: 64;
89544 };
89545 
89546 struct packet_rollover {
89547 	int sock;
89548 	atomic_long_t num;
89549 	atomic_long_t num_huge;
89550 	atomic_long_t num_failed;
89551 	long: 64;
89552 	long: 64;
89553 	long: 64;
89554 	long: 64;
89555 	u32 history[16];
89556 };
89557 
89558 struct packet_sock {
89559 	struct sock sk;
89560 	struct packet_fanout *fanout;
89561 	union tpacket_stats_u stats;
89562 	struct packet_ring_buffer rx_ring;
89563 	struct packet_ring_buffer tx_ring;
89564 	int copy_thresh;
89565 	spinlock_t bind_lock;
89566 	struct mutex pg_vec_lock;
89567 	unsigned int running;
89568 	unsigned int auxdata: 1;
89569 	unsigned int origdev: 1;
89570 	unsigned int has_vnet_hdr: 1;
89571 	unsigned int tp_loss: 1;
89572 	unsigned int tp_tx_has_off: 1;
89573 	int pressure;
89574 	int ifindex;
89575 	__be16 num;
89576 	struct packet_rollover *rollover;
89577 	struct packet_mclist *mclist;
89578 	atomic_t mapped;
89579 	enum tpacket_versions tp_version;
89580 	unsigned int tp_hdrlen;
89581 	unsigned int tp_reserve;
89582 	unsigned int tp_tstamp;
89583 	struct completion skb_completion;
89584 	struct net_device *cached_dev;
89585 	int (*xmit)(struct sk_buff *);
89586 	long: 64;
89587 	long: 64;
89588 	long: 64;
89589 	long: 64;
89590 	struct packet_type prot_hook;
89591 	long: 64;
89592 	long: 64;
89593 	long: 64;
89594 	long: 64;
89595 	long: 64;
89596 	long: 64;
89597 	long: 64;
89598 	atomic_t tp_drops;
89599 	long: 32;
89600 	long: 64;
89601 	long: 64;
89602 	long: 64;
89603 	long: 64;
89604 	long: 64;
89605 	long: 64;
89606 	long: 64;
89607 };
89608 
89609 struct packet_mreq_max {
89610 	int mr_ifindex;
89611 	short unsigned int mr_type;
89612 	short unsigned int mr_alen;
89613 	unsigned char mr_address[32];
89614 };
89615 
89616 union tpacket_uhdr {
89617 	struct tpacket_hdr *h1;
89618 	struct tpacket2_hdr *h2;
89619 	struct tpacket3_hdr *h3;
89620 	void *raw;
89621 };
89622 
89623 struct packet_skb_cb {
89624 	union {
89625 		struct sockaddr_pkt pkt;
89626 		union {
89627 			unsigned int origlen;
89628 			struct sockaddr_ll ll;
89629 		};
89630 	} sa;
89631 };
89632 
89633 struct vlan_group {
89634 	unsigned int nr_vlan_devs;
89635 	struct hlist_node hlist;
89636 	struct net_device **vlan_devices_arrays[16];
89637 };
89638 
89639 struct vlan_info {
89640 	struct net_device *real_dev;
89641 	struct vlan_group grp;
89642 	struct list_head vid_list;
89643 	unsigned int nr_vids;
89644 	struct callback_head rcu;
89645 };
89646 
89647 enum vlan_flags {
89648 	VLAN_FLAG_REORDER_HDR = 1,
89649 	VLAN_FLAG_GVRP = 2,
89650 	VLAN_FLAG_LOOSE_BINDING = 4,
89651 	VLAN_FLAG_MVRP = 8,
89652 	VLAN_FLAG_BRIDGE_BINDING = 16,
89653 };
89654 
89655 struct vlan_pcpu_stats {
89656 	u64 rx_packets;
89657 	u64 rx_bytes;
89658 	u64 rx_multicast;
89659 	u64 tx_packets;
89660 	u64 tx_bytes;
89661 	struct u64_stats_sync syncp;
89662 	u32 rx_errors;
89663 	u32 tx_dropped;
89664 };
89665 
89666 struct vlan_priority_tci_mapping {
89667 	u32 priority;
89668 	u16 vlan_qos;
89669 	struct vlan_priority_tci_mapping *next;
89670 };
89671 
89672 struct vlan_dev_priv {
89673 	unsigned int nr_ingress_mappings;
89674 	u32 ingress_priority_map[8];
89675 	unsigned int nr_egress_mappings;
89676 	struct vlan_priority_tci_mapping *egress_priority_map[16];
89677 	__be16 vlan_proto;
89678 	u16 vlan_id;
89679 	u16 flags;
89680 	struct net_device *real_dev;
89681 	netdevice_tracker dev_tracker;
89682 	unsigned char real_dev_addr[6];
89683 	struct proc_dir_entry *dent;
89684 	struct vlan_pcpu_stats *vlan_pcpu_stats;
89685 };
89686 
89687 enum vlan_protos {
89688 	VLAN_PROTO_8021Q = 0,
89689 	VLAN_PROTO_8021AD = 1,
89690 	VLAN_PROTO_NUM = 2,
89691 };
89692 
89693 struct vlan_vid_info {
89694 	struct list_head list;
89695 	__be16 proto;
89696 	u16 vid;
89697 	int refcount;
89698 };
89699 
89700 enum vlan_ioctl_cmds {
89701 	ADD_VLAN_CMD = 0,
89702 	DEL_VLAN_CMD = 1,
89703 	SET_VLAN_INGRESS_PRIORITY_CMD = 2,
89704 	SET_VLAN_EGRESS_PRIORITY_CMD = 3,
89705 	GET_VLAN_INGRESS_PRIORITY_CMD = 4,
89706 	GET_VLAN_EGRESS_PRIORITY_CMD = 5,
89707 	SET_VLAN_NAME_TYPE_CMD = 6,
89708 	SET_VLAN_FLAG_CMD = 7,
89709 	GET_VLAN_REALDEV_NAME_CMD = 8,
89710 	GET_VLAN_VID_CMD = 9,
89711 };
89712 
89713 enum vlan_name_types {
89714 	VLAN_NAME_TYPE_PLUS_VID = 0,
89715 	VLAN_NAME_TYPE_RAW_PLUS_VID = 1,
89716 	VLAN_NAME_TYPE_PLUS_VID_NO_PAD = 2,
89717 	VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD = 3,
89718 	VLAN_NAME_TYPE_HIGHEST = 4,
89719 };
89720 
89721 struct vlan_ioctl_args {
89722 	int cmd;
89723 	char device1[24];
89724 	union {
89725 		char device2[24];
89726 		int VID;
89727 		unsigned int skb_priority;
89728 		unsigned int name_type;
89729 		unsigned int bind_type;
89730 		unsigned int flag;
89731 	} u;
89732 	short int vlan_qos;
89733 };
89734 
89735 struct vlan_net {
89736 	struct proc_dir_entry *proc_vlan_dir;
89737 	struct proc_dir_entry *proc_vlan_conf;
89738 	short unsigned int name_type;
89739 };
89740 
89741 enum {
89742 	IFLA_VLAN_UNSPEC = 0,
89743 	IFLA_VLAN_ID = 1,
89744 	IFLA_VLAN_FLAGS = 2,
89745 	IFLA_VLAN_EGRESS_QOS = 3,
89746 	IFLA_VLAN_INGRESS_QOS = 4,
89747 	IFLA_VLAN_PROTOCOL = 5,
89748 	__IFLA_VLAN_MAX = 6,
89749 };
89750 
89751 struct ifla_vlan_flags {
89752 	__u32 flags;
89753 	__u32 mask;
89754 };
89755 
89756 enum {
89757 	IFLA_VLAN_QOS_UNSPEC = 0,
89758 	IFLA_VLAN_QOS_MAPPING = 1,
89759 	__IFLA_VLAN_QOS_MAX = 2,
89760 };
89761 
89762 struct ifla_vlan_qos_mapping {
89763 	__u32 from;
89764 	__u32 to;
89765 };
89766 
89767 struct netlbl_af4list {
89768 	__be32 addr;
89769 	__be32 mask;
89770 	u32 valid;
89771 	struct list_head list;
89772 };
89773 
89774 struct netlbl_af6list {
89775 	struct in6_addr addr;
89776 	struct in6_addr mask;
89777 	u32 valid;
89778 	struct list_head list;
89779 };
89780 
89781 struct netlbl_domaddr_map {
89782 	struct list_head list4;
89783 	struct list_head list6;
89784 };
89785 
89786 struct netlbl_dommap_def {
89787 	u32 type;
89788 	union {
89789 		struct netlbl_domaddr_map *addrsel;
89790 		struct cipso_v4_doi *cipso;
89791 		struct calipso_doi *calipso;
89792 	};
89793 };
89794 
89795 struct netlbl_domaddr4_map {
89796 	struct netlbl_dommap_def def;
89797 	struct netlbl_af4list list;
89798 };
89799 
89800 struct netlbl_domaddr6_map {
89801 	struct netlbl_dommap_def def;
89802 	struct netlbl_af6list list;
89803 };
89804 
89805 struct netlbl_dom_map {
89806 	char *domain;
89807 	u16 family;
89808 	struct netlbl_dommap_def def;
89809 	u32 valid;
89810 	struct list_head list;
89811 	struct callback_head rcu;
89812 };
89813 
89814 struct netlbl_domhsh_tbl {
89815 	struct list_head *tbl;
89816 	u32 size;
89817 };
89818 
89819 enum {
89820 	NLBL_MGMT_C_UNSPEC = 0,
89821 	NLBL_MGMT_C_ADD = 1,
89822 	NLBL_MGMT_C_REMOVE = 2,
89823 	NLBL_MGMT_C_LISTALL = 3,
89824 	NLBL_MGMT_C_ADDDEF = 4,
89825 	NLBL_MGMT_C_REMOVEDEF = 5,
89826 	NLBL_MGMT_C_LISTDEF = 6,
89827 	NLBL_MGMT_C_PROTOCOLS = 7,
89828 	NLBL_MGMT_C_VERSION = 8,
89829 	__NLBL_MGMT_C_MAX = 9,
89830 };
89831 
89832 enum {
89833 	NLBL_MGMT_A_UNSPEC = 0,
89834 	NLBL_MGMT_A_DOMAIN = 1,
89835 	NLBL_MGMT_A_PROTOCOL = 2,
89836 	NLBL_MGMT_A_VERSION = 3,
89837 	NLBL_MGMT_A_CV4DOI = 4,
89838 	NLBL_MGMT_A_IPV6ADDR = 5,
89839 	NLBL_MGMT_A_IPV6MASK = 6,
89840 	NLBL_MGMT_A_IPV4ADDR = 7,
89841 	NLBL_MGMT_A_IPV4MASK = 8,
89842 	NLBL_MGMT_A_ADDRSELECTOR = 9,
89843 	NLBL_MGMT_A_SELECTORLIST = 10,
89844 	NLBL_MGMT_A_FAMILY = 11,
89845 	NLBL_MGMT_A_CLPDOI = 12,
89846 	__NLBL_MGMT_A_MAX = 13,
89847 };
89848 
89849 struct netlbl_domhsh_walk_arg {
89850 	struct netlink_callback *nl_cb;
89851 	struct sk_buff *skb;
89852 	u32 seq;
89853 };
89854 
89855 enum {
89856 	NLBL_UNLABEL_C_UNSPEC = 0,
89857 	NLBL_UNLABEL_C_ACCEPT = 1,
89858 	NLBL_UNLABEL_C_LIST = 2,
89859 	NLBL_UNLABEL_C_STATICADD = 3,
89860 	NLBL_UNLABEL_C_STATICREMOVE = 4,
89861 	NLBL_UNLABEL_C_STATICLIST = 5,
89862 	NLBL_UNLABEL_C_STATICADDDEF = 6,
89863 	NLBL_UNLABEL_C_STATICREMOVEDEF = 7,
89864 	NLBL_UNLABEL_C_STATICLISTDEF = 8,
89865 	__NLBL_UNLABEL_C_MAX = 9,
89866 };
89867 
89868 enum {
89869 	NLBL_UNLABEL_A_UNSPEC = 0,
89870 	NLBL_UNLABEL_A_ACPTFLG = 1,
89871 	NLBL_UNLABEL_A_IPV6ADDR = 2,
89872 	NLBL_UNLABEL_A_IPV6MASK = 3,
89873 	NLBL_UNLABEL_A_IPV4ADDR = 4,
89874 	NLBL_UNLABEL_A_IPV4MASK = 5,
89875 	NLBL_UNLABEL_A_IFACE = 6,
89876 	NLBL_UNLABEL_A_SECCTX = 7,
89877 	__NLBL_UNLABEL_A_MAX = 8,
89878 };
89879 
89880 struct netlbl_unlhsh_tbl {
89881 	struct list_head *tbl;
89882 	u32 size;
89883 };
89884 
89885 struct netlbl_unlhsh_addr4 {
89886 	u32 secid;
89887 	struct netlbl_af4list list;
89888 	struct callback_head rcu;
89889 };
89890 
89891 struct netlbl_unlhsh_addr6 {
89892 	u32 secid;
89893 	struct netlbl_af6list list;
89894 	struct callback_head rcu;
89895 };
89896 
89897 struct netlbl_unlhsh_iface {
89898 	int ifindex;
89899 	struct list_head addr4_list;
89900 	struct list_head addr6_list;
89901 	u32 valid;
89902 	struct list_head list;
89903 	struct callback_head rcu;
89904 };
89905 
89906 struct netlbl_unlhsh_walk_arg {
89907 	struct netlink_callback *nl_cb;
89908 	struct sk_buff *skb;
89909 	u32 seq;
89910 };
89911 
89912 enum {
89913 	NLBL_CIPSOV4_C_UNSPEC = 0,
89914 	NLBL_CIPSOV4_C_ADD = 1,
89915 	NLBL_CIPSOV4_C_REMOVE = 2,
89916 	NLBL_CIPSOV4_C_LIST = 3,
89917 	NLBL_CIPSOV4_C_LISTALL = 4,
89918 	__NLBL_CIPSOV4_C_MAX = 5,
89919 };
89920 
89921 enum {
89922 	NLBL_CIPSOV4_A_UNSPEC = 0,
89923 	NLBL_CIPSOV4_A_DOI = 1,
89924 	NLBL_CIPSOV4_A_MTYPE = 2,
89925 	NLBL_CIPSOV4_A_TAG = 3,
89926 	NLBL_CIPSOV4_A_TAGLST = 4,
89927 	NLBL_CIPSOV4_A_MLSLVLLOC = 5,
89928 	NLBL_CIPSOV4_A_MLSLVLREM = 6,
89929 	NLBL_CIPSOV4_A_MLSLVL = 7,
89930 	NLBL_CIPSOV4_A_MLSLVLLST = 8,
89931 	NLBL_CIPSOV4_A_MLSCATLOC = 9,
89932 	NLBL_CIPSOV4_A_MLSCATREM = 10,
89933 	NLBL_CIPSOV4_A_MLSCAT = 11,
89934 	NLBL_CIPSOV4_A_MLSCATLST = 12,
89935 	__NLBL_CIPSOV4_A_MAX = 13,
89936 };
89937 
89938 struct netlbl_cipsov4_doiwalk_arg {
89939 	struct netlink_callback *nl_cb;
89940 	struct sk_buff *skb;
89941 	u32 seq;
89942 };
89943 
89944 struct netlbl_domhsh_walk_arg___2 {
89945 	struct netlbl_audit *audit_info;
89946 	u32 doi;
89947 };
89948 
89949 enum {
89950 	NLBL_CALIPSO_C_UNSPEC = 0,
89951 	NLBL_CALIPSO_C_ADD = 1,
89952 	NLBL_CALIPSO_C_REMOVE = 2,
89953 	NLBL_CALIPSO_C_LIST = 3,
89954 	NLBL_CALIPSO_C_LISTALL = 4,
89955 	__NLBL_CALIPSO_C_MAX = 5,
89956 };
89957 
89958 enum {
89959 	NLBL_CALIPSO_A_UNSPEC = 0,
89960 	NLBL_CALIPSO_A_DOI = 1,
89961 	NLBL_CALIPSO_A_MTYPE = 2,
89962 	__NLBL_CALIPSO_A_MAX = 3,
89963 };
89964 
89965 struct netlbl_calipso_doiwalk_arg {
89966 	struct netlink_callback *nl_cb;
89967 	struct sk_buff *skb;
89968 	u32 seq;
89969 };
89970 
89971 typedef s8 int8_t;
89972 
89973 enum p9_msg_t {
89974 	P9_TLERROR = 6,
89975 	P9_RLERROR = 7,
89976 	P9_TSTATFS = 8,
89977 	P9_RSTATFS = 9,
89978 	P9_TLOPEN = 12,
89979 	P9_RLOPEN = 13,
89980 	P9_TLCREATE = 14,
89981 	P9_RLCREATE = 15,
89982 	P9_TSYMLINK = 16,
89983 	P9_RSYMLINK = 17,
89984 	P9_TMKNOD = 18,
89985 	P9_RMKNOD = 19,
89986 	P9_TRENAME = 20,
89987 	P9_RRENAME = 21,
89988 	P9_TREADLINK = 22,
89989 	P9_RREADLINK = 23,
89990 	P9_TGETATTR = 24,
89991 	P9_RGETATTR = 25,
89992 	P9_TSETATTR = 26,
89993 	P9_RSETATTR = 27,
89994 	P9_TXATTRWALK = 30,
89995 	P9_RXATTRWALK = 31,
89996 	P9_TXATTRCREATE = 32,
89997 	P9_RXATTRCREATE = 33,
89998 	P9_TREADDIR = 40,
89999 	P9_RREADDIR = 41,
90000 	P9_TFSYNC = 50,
90001 	P9_RFSYNC = 51,
90002 	P9_TLOCK = 52,
90003 	P9_RLOCK = 53,
90004 	P9_TGETLOCK = 54,
90005 	P9_RGETLOCK = 55,
90006 	P9_TLINK = 70,
90007 	P9_RLINK = 71,
90008 	P9_TMKDIR = 72,
90009 	P9_RMKDIR = 73,
90010 	P9_TRENAMEAT = 74,
90011 	P9_RRENAMEAT = 75,
90012 	P9_TUNLINKAT = 76,
90013 	P9_RUNLINKAT = 77,
90014 	P9_TVERSION = 100,
90015 	P9_RVERSION = 101,
90016 	P9_TAUTH = 102,
90017 	P9_RAUTH = 103,
90018 	P9_TATTACH = 104,
90019 	P9_RATTACH = 105,
90020 	P9_TERROR = 106,
90021 	P9_RERROR = 107,
90022 	P9_TFLUSH = 108,
90023 	P9_RFLUSH = 109,
90024 	P9_TWALK = 110,
90025 	P9_RWALK = 111,
90026 	P9_TOPEN = 112,
90027 	P9_ROPEN = 113,
90028 	P9_TCREATE = 114,
90029 	P9_RCREATE = 115,
90030 	P9_TREAD = 116,
90031 	P9_RREAD = 117,
90032 	P9_TWRITE = 118,
90033 	P9_RWRITE = 119,
90034 	P9_TCLUNK = 120,
90035 	P9_RCLUNK = 121,
90036 	P9_TREMOVE = 122,
90037 	P9_RREMOVE = 123,
90038 	P9_TSTAT = 124,
90039 	P9_RSTAT = 125,
90040 	P9_TWSTAT = 126,
90041 	P9_RWSTAT = 127,
90042 };
90043 
90044 enum p9_proto_versions {
90045 	p9_proto_legacy = 0,
90046 	p9_proto_2000u = 1,
90047 	p9_proto_2000L = 2,
90048 };
90049 
90050 enum p9_req_status_t {
90051 	REQ_STATUS_ALLOC = 0,
90052 	REQ_STATUS_UNSENT = 1,
90053 	REQ_STATUS_SENT = 2,
90054 	REQ_STATUS_RCVD = 3,
90055 	REQ_STATUS_FLSHD = 4,
90056 	REQ_STATUS_ERROR = 5,
90057 };
90058 
90059 struct trace_event_raw_9p_client_req {
90060 	struct trace_entry ent;
90061 	void *clnt;
90062 	__u8 type;
90063 	__u32 tag;
90064 	char __data[0];
90065 };
90066 
90067 struct trace_event_raw_9p_client_res {
90068 	struct trace_entry ent;
90069 	void *clnt;
90070 	__u8 type;
90071 	__u32 tag;
90072 	__u32 err;
90073 	char __data[0];
90074 };
90075 
90076 struct trace_event_raw_9p_protocol_dump {
90077 	struct trace_entry ent;
90078 	void *clnt;
90079 	__u8 type;
90080 	__u16 tag;
90081 	unsigned char line[32];
90082 	char __data[0];
90083 };
90084 
90085 struct trace_event_data_offsets_9p_client_req {};
90086 
90087 struct trace_event_data_offsets_9p_client_res {};
90088 
90089 struct trace_event_data_offsets_9p_protocol_dump {};
90090 
90091 typedef void (*btf_trace_9p_client_req)(void *, struct p9_client *, int8_t, int);
90092 
90093 typedef void (*btf_trace_9p_client_res)(void *, struct p9_client *, int8_t, int, int);
90094 
90095 typedef void (*btf_trace_9p_protocol_dump)(void *, struct p9_client *, struct p9_fcall *);
90096 
90097 enum {
90098 	Opt_msize = 0,
90099 	Opt_trans = 1,
90100 	Opt_legacy = 2,
90101 	Opt_version = 3,
90102 	Opt_err___7 = 4,
90103 };
90104 
90105 struct errormap {
90106 	char *name;
90107 	int val;
90108 	int namelen;
90109 	struct hlist_node list;
90110 };
90111 
90112 struct p9_fd_opts {
90113 	int rfd;
90114 	int wfd;
90115 	u16 port;
90116 	bool privport;
90117 };
90118 
90119 enum {
90120 	Opt_port = 0,
90121 	Opt_rfdno = 1,
90122 	Opt_wfdno = 2,
90123 	Opt_err___8 = 3,
90124 	Opt_privport = 4,
90125 };
90126 
90127 enum {
90128 	Rworksched = 1,
90129 	Rpending = 2,
90130 	Wworksched = 4,
90131 	Wpending = 8,
90132 };
90133 
90134 struct p9_conn;
90135 
90136 struct p9_poll_wait {
90137 	struct p9_conn *conn;
90138 	wait_queue_entry_t wait;
90139 	wait_queue_head_t *wait_addr;
90140 };
90141 
90142 struct p9_conn {
90143 	struct list_head mux_list;
90144 	struct p9_client *client;
90145 	int err;
90146 	struct list_head req_list;
90147 	struct list_head unsent_req_list;
90148 	struct p9_req_t *rreq;
90149 	struct p9_req_t *wreq;
90150 	char tmp_buf[7];
90151 	struct p9_fcall rc;
90152 	int wpos;
90153 	int wsize;
90154 	char *wbuf;
90155 	struct list_head poll_pending_link;
90156 	struct p9_poll_wait poll_wait[2];
90157 	poll_table pt;
90158 	struct work_struct rq;
90159 	struct work_struct wq;
90160 	long unsigned int wsched;
90161 };
90162 
90163 struct p9_trans_fd {
90164 	struct file *rd;
90165 	struct file *wr;
90166 	struct p9_conn conn;
90167 };
90168 
90169 struct virtio_9p_config {
90170 	__virtio16 tag_len;
90171 	__u8 tag[0];
90172 };
90173 
90174 struct virtio_chan {
90175 	bool inuse;
90176 	spinlock_t lock;
90177 	struct p9_client *client;
90178 	struct virtio_device *vdev;
90179 	struct virtqueue *vq;
90180 	int ring_bufs_avail;
90181 	wait_queue_head_t *vc_wq;
90182 	long unsigned int p9_max_pages;
90183 	struct scatterlist sg[128];
90184 	char *tag;
90185 	struct list_head chan_list;
90186 };
90187 
90188 struct dcbmsg {
90189 	__u8 dcb_family;
90190 	__u8 cmd;
90191 	__u16 dcb_pad;
90192 };
90193 
90194 enum dcbnl_commands {
90195 	DCB_CMD_UNDEFINED = 0,
90196 	DCB_CMD_GSTATE = 1,
90197 	DCB_CMD_SSTATE = 2,
90198 	DCB_CMD_PGTX_GCFG = 3,
90199 	DCB_CMD_PGTX_SCFG = 4,
90200 	DCB_CMD_PGRX_GCFG = 5,
90201 	DCB_CMD_PGRX_SCFG = 6,
90202 	DCB_CMD_PFC_GCFG = 7,
90203 	DCB_CMD_PFC_SCFG = 8,
90204 	DCB_CMD_SET_ALL = 9,
90205 	DCB_CMD_GPERM_HWADDR = 10,
90206 	DCB_CMD_GCAP = 11,
90207 	DCB_CMD_GNUMTCS = 12,
90208 	DCB_CMD_SNUMTCS = 13,
90209 	DCB_CMD_PFC_GSTATE = 14,
90210 	DCB_CMD_PFC_SSTATE = 15,
90211 	DCB_CMD_BCN_GCFG = 16,
90212 	DCB_CMD_BCN_SCFG = 17,
90213 	DCB_CMD_GAPP = 18,
90214 	DCB_CMD_SAPP = 19,
90215 	DCB_CMD_IEEE_SET = 20,
90216 	DCB_CMD_IEEE_GET = 21,
90217 	DCB_CMD_GDCBX = 22,
90218 	DCB_CMD_SDCBX = 23,
90219 	DCB_CMD_GFEATCFG = 24,
90220 	DCB_CMD_SFEATCFG = 25,
90221 	DCB_CMD_CEE_GET = 26,
90222 	DCB_CMD_IEEE_DEL = 27,
90223 	__DCB_CMD_ENUM_MAX = 28,
90224 	DCB_CMD_MAX = 27,
90225 };
90226 
90227 enum dcbnl_attrs {
90228 	DCB_ATTR_UNDEFINED = 0,
90229 	DCB_ATTR_IFNAME = 1,
90230 	DCB_ATTR_STATE = 2,
90231 	DCB_ATTR_PFC_STATE = 3,
90232 	DCB_ATTR_PFC_CFG = 4,
90233 	DCB_ATTR_NUM_TC = 5,
90234 	DCB_ATTR_PG_CFG = 6,
90235 	DCB_ATTR_SET_ALL = 7,
90236 	DCB_ATTR_PERM_HWADDR = 8,
90237 	DCB_ATTR_CAP = 9,
90238 	DCB_ATTR_NUMTCS = 10,
90239 	DCB_ATTR_BCN = 11,
90240 	DCB_ATTR_APP = 12,
90241 	DCB_ATTR_IEEE = 13,
90242 	DCB_ATTR_DCBX = 14,
90243 	DCB_ATTR_FEATCFG = 15,
90244 	DCB_ATTR_CEE = 16,
90245 	__DCB_ATTR_ENUM_MAX = 17,
90246 	DCB_ATTR_MAX = 16,
90247 };
90248 
90249 enum ieee_attrs {
90250 	DCB_ATTR_IEEE_UNSPEC = 0,
90251 	DCB_ATTR_IEEE_ETS = 1,
90252 	DCB_ATTR_IEEE_PFC = 2,
90253 	DCB_ATTR_IEEE_APP_TABLE = 3,
90254 	DCB_ATTR_IEEE_PEER_ETS = 4,
90255 	DCB_ATTR_IEEE_PEER_PFC = 5,
90256 	DCB_ATTR_IEEE_PEER_APP = 6,
90257 	DCB_ATTR_IEEE_MAXRATE = 7,
90258 	DCB_ATTR_IEEE_QCN = 8,
90259 	DCB_ATTR_IEEE_QCN_STATS = 9,
90260 	DCB_ATTR_DCB_BUFFER = 10,
90261 	__DCB_ATTR_IEEE_MAX = 11,
90262 };
90263 
90264 enum ieee_attrs_app {
90265 	DCB_ATTR_IEEE_APP_UNSPEC = 0,
90266 	DCB_ATTR_IEEE_APP = 1,
90267 	__DCB_ATTR_IEEE_APP_MAX = 2,
90268 };
90269 
90270 enum cee_attrs {
90271 	DCB_ATTR_CEE_UNSPEC = 0,
90272 	DCB_ATTR_CEE_PEER_PG = 1,
90273 	DCB_ATTR_CEE_PEER_PFC = 2,
90274 	DCB_ATTR_CEE_PEER_APP_TABLE = 3,
90275 	DCB_ATTR_CEE_TX_PG = 4,
90276 	DCB_ATTR_CEE_RX_PG = 5,
90277 	DCB_ATTR_CEE_PFC = 6,
90278 	DCB_ATTR_CEE_APP_TABLE = 7,
90279 	DCB_ATTR_CEE_FEAT = 8,
90280 	__DCB_ATTR_CEE_MAX = 9,
90281 };
90282 
90283 enum peer_app_attr {
90284 	DCB_ATTR_CEE_PEER_APP_UNSPEC = 0,
90285 	DCB_ATTR_CEE_PEER_APP_INFO = 1,
90286 	DCB_ATTR_CEE_PEER_APP = 2,
90287 	__DCB_ATTR_CEE_PEER_APP_MAX = 3,
90288 };
90289 
90290 enum dcbnl_pfc_up_attrs {
90291 	DCB_PFC_UP_ATTR_UNDEFINED = 0,
90292 	DCB_PFC_UP_ATTR_0 = 1,
90293 	DCB_PFC_UP_ATTR_1 = 2,
90294 	DCB_PFC_UP_ATTR_2 = 3,
90295 	DCB_PFC_UP_ATTR_3 = 4,
90296 	DCB_PFC_UP_ATTR_4 = 5,
90297 	DCB_PFC_UP_ATTR_5 = 6,
90298 	DCB_PFC_UP_ATTR_6 = 7,
90299 	DCB_PFC_UP_ATTR_7 = 8,
90300 	DCB_PFC_UP_ATTR_ALL = 9,
90301 	__DCB_PFC_UP_ATTR_ENUM_MAX = 10,
90302 	DCB_PFC_UP_ATTR_MAX = 9,
90303 };
90304 
90305 enum dcbnl_pg_attrs {
90306 	DCB_PG_ATTR_UNDEFINED = 0,
90307 	DCB_PG_ATTR_TC_0 = 1,
90308 	DCB_PG_ATTR_TC_1 = 2,
90309 	DCB_PG_ATTR_TC_2 = 3,
90310 	DCB_PG_ATTR_TC_3 = 4,
90311 	DCB_PG_ATTR_TC_4 = 5,
90312 	DCB_PG_ATTR_TC_5 = 6,
90313 	DCB_PG_ATTR_TC_6 = 7,
90314 	DCB_PG_ATTR_TC_7 = 8,
90315 	DCB_PG_ATTR_TC_MAX = 9,
90316 	DCB_PG_ATTR_TC_ALL = 10,
90317 	DCB_PG_ATTR_BW_ID_0 = 11,
90318 	DCB_PG_ATTR_BW_ID_1 = 12,
90319 	DCB_PG_ATTR_BW_ID_2 = 13,
90320 	DCB_PG_ATTR_BW_ID_3 = 14,
90321 	DCB_PG_ATTR_BW_ID_4 = 15,
90322 	DCB_PG_ATTR_BW_ID_5 = 16,
90323 	DCB_PG_ATTR_BW_ID_6 = 17,
90324 	DCB_PG_ATTR_BW_ID_7 = 18,
90325 	DCB_PG_ATTR_BW_ID_MAX = 19,
90326 	DCB_PG_ATTR_BW_ID_ALL = 20,
90327 	__DCB_PG_ATTR_ENUM_MAX = 21,
90328 	DCB_PG_ATTR_MAX = 20,
90329 };
90330 
90331 enum dcbnl_tc_attrs {
90332 	DCB_TC_ATTR_PARAM_UNDEFINED = 0,
90333 	DCB_TC_ATTR_PARAM_PGID = 1,
90334 	DCB_TC_ATTR_PARAM_UP_MAPPING = 2,
90335 	DCB_TC_ATTR_PARAM_STRICT_PRIO = 3,
90336 	DCB_TC_ATTR_PARAM_BW_PCT = 4,
90337 	DCB_TC_ATTR_PARAM_ALL = 5,
90338 	__DCB_TC_ATTR_PARAM_ENUM_MAX = 6,
90339 	DCB_TC_ATTR_PARAM_MAX = 5,
90340 };
90341 
90342 enum dcbnl_cap_attrs {
90343 	DCB_CAP_ATTR_UNDEFINED = 0,
90344 	DCB_CAP_ATTR_ALL = 1,
90345 	DCB_CAP_ATTR_PG = 2,
90346 	DCB_CAP_ATTR_PFC = 3,
90347 	DCB_CAP_ATTR_UP2TC = 4,
90348 	DCB_CAP_ATTR_PG_TCS = 5,
90349 	DCB_CAP_ATTR_PFC_TCS = 6,
90350 	DCB_CAP_ATTR_GSP = 7,
90351 	DCB_CAP_ATTR_BCN = 8,
90352 	DCB_CAP_ATTR_DCBX = 9,
90353 	__DCB_CAP_ATTR_ENUM_MAX = 10,
90354 	DCB_CAP_ATTR_MAX = 9,
90355 };
90356 
90357 enum dcbnl_numtcs_attrs {
90358 	DCB_NUMTCS_ATTR_UNDEFINED = 0,
90359 	DCB_NUMTCS_ATTR_ALL = 1,
90360 	DCB_NUMTCS_ATTR_PG = 2,
90361 	DCB_NUMTCS_ATTR_PFC = 3,
90362 	__DCB_NUMTCS_ATTR_ENUM_MAX = 4,
90363 	DCB_NUMTCS_ATTR_MAX = 3,
90364 };
90365 
90366 enum dcbnl_bcn_attrs {
90367 	DCB_BCN_ATTR_UNDEFINED = 0,
90368 	DCB_BCN_ATTR_RP_0 = 1,
90369 	DCB_BCN_ATTR_RP_1 = 2,
90370 	DCB_BCN_ATTR_RP_2 = 3,
90371 	DCB_BCN_ATTR_RP_3 = 4,
90372 	DCB_BCN_ATTR_RP_4 = 5,
90373 	DCB_BCN_ATTR_RP_5 = 6,
90374 	DCB_BCN_ATTR_RP_6 = 7,
90375 	DCB_BCN_ATTR_RP_7 = 8,
90376 	DCB_BCN_ATTR_RP_ALL = 9,
90377 	DCB_BCN_ATTR_BCNA_0 = 10,
90378 	DCB_BCN_ATTR_BCNA_1 = 11,
90379 	DCB_BCN_ATTR_ALPHA = 12,
90380 	DCB_BCN_ATTR_BETA = 13,
90381 	DCB_BCN_ATTR_GD = 14,
90382 	DCB_BCN_ATTR_GI = 15,
90383 	DCB_BCN_ATTR_TMAX = 16,
90384 	DCB_BCN_ATTR_TD = 17,
90385 	DCB_BCN_ATTR_RMIN = 18,
90386 	DCB_BCN_ATTR_W = 19,
90387 	DCB_BCN_ATTR_RD = 20,
90388 	DCB_BCN_ATTR_RU = 21,
90389 	DCB_BCN_ATTR_WRTT = 22,
90390 	DCB_BCN_ATTR_RI = 23,
90391 	DCB_BCN_ATTR_C = 24,
90392 	DCB_BCN_ATTR_ALL = 25,
90393 	__DCB_BCN_ATTR_ENUM_MAX = 26,
90394 	DCB_BCN_ATTR_MAX = 25,
90395 };
90396 
90397 enum dcb_general_attr_values {
90398 	DCB_ATTR_VALUE_UNDEFINED = 255,
90399 };
90400 
90401 enum dcbnl_app_attrs {
90402 	DCB_APP_ATTR_UNDEFINED = 0,
90403 	DCB_APP_ATTR_IDTYPE = 1,
90404 	DCB_APP_ATTR_ID = 2,
90405 	DCB_APP_ATTR_PRIORITY = 3,
90406 	__DCB_APP_ATTR_ENUM_MAX = 4,
90407 	DCB_APP_ATTR_MAX = 3,
90408 };
90409 
90410 enum dcbnl_featcfg_attrs {
90411 	DCB_FEATCFG_ATTR_UNDEFINED = 0,
90412 	DCB_FEATCFG_ATTR_ALL = 1,
90413 	DCB_FEATCFG_ATTR_PG = 2,
90414 	DCB_FEATCFG_ATTR_PFC = 3,
90415 	DCB_FEATCFG_ATTR_APP = 4,
90416 	__DCB_FEATCFG_ATTR_ENUM_MAX = 5,
90417 	DCB_FEATCFG_ATTR_MAX = 4,
90418 };
90419 
90420 struct dcb_app_type {
90421 	int ifindex;
90422 	struct dcb_app app;
90423 	struct list_head list;
90424 	u8 dcbx;
90425 };
90426 
90427 struct dcb_ieee_app_prio_map {
90428 	u64 map[8];
90429 };
90430 
90431 struct dcb_ieee_app_dscp_map {
90432 	u8 map[64];
90433 };
90434 
90435 enum dcbevent_notif_type {
90436 	DCB_APP_EVENT = 1,
90437 };
90438 
90439 struct reply_func {
90440 	int type;
90441 	int (*cb)(struct net_device *, struct nlmsghdr *, u32, struct nlattr **, struct sk_buff *);
90442 };
90443 
90444 enum dns_payload_content_type {
90445 	DNS_PAYLOAD_IS_SERVER_LIST = 0,
90446 };
90447 
90448 struct dns_payload_header {
90449 	__u8 zero;
90450 	__u8 content;
90451 	__u8 version;
90452 };
90453 
90454 enum {
90455 	dns_key_data = 0,
90456 	dns_key_error = 1,
90457 };
90458 
90459 struct sockaddr_xdp {
90460 	__u16 sxdp_family;
90461 	__u16 sxdp_flags;
90462 	__u32 sxdp_ifindex;
90463 	__u32 sxdp_queue_id;
90464 	__u32 sxdp_shared_umem_fd;
90465 };
90466 
90467 struct xdp_ring_offset {
90468 	__u64 producer;
90469 	__u64 consumer;
90470 	__u64 desc;
90471 	__u64 flags;
90472 };
90473 
90474 struct xdp_mmap_offsets {
90475 	struct xdp_ring_offset rx;
90476 	struct xdp_ring_offset tx;
90477 	struct xdp_ring_offset fr;
90478 	struct xdp_ring_offset cr;
90479 };
90480 
90481 struct xdp_umem_reg {
90482 	__u64 addr;
90483 	__u64 len;
90484 	__u32 chunk_size;
90485 	__u32 headroom;
90486 	__u32 flags;
90487 };
90488 
90489 struct xdp_statistics {
90490 	__u64 rx_dropped;
90491 	__u64 rx_invalid_descs;
90492 	__u64 tx_invalid_descs;
90493 	__u64 rx_ring_full;
90494 	__u64 rx_fill_ring_empty_descs;
90495 	__u64 tx_ring_empty_descs;
90496 };
90497 
90498 struct xdp_options {
90499 	__u32 flags;
90500 };
90501 
90502 struct xdp_desc {
90503 	__u64 addr;
90504 	__u32 len;
90505 	__u32 options;
90506 };
90507 
90508 struct xsk_map {
90509 	struct bpf_map map;
90510 	spinlock_t lock;
90511 	struct xdp_sock *xsk_map[0];
90512 };
90513 
90514 struct xdp_ring;
90515 
90516 struct xsk_queue {
90517 	u32 ring_mask;
90518 	u32 nentries;
90519 	u32 cached_prod;
90520 	u32 cached_cons;
90521 	struct xdp_ring *ring;
90522 	u64 invalid_descs;
90523 	u64 queue_empty_descs;
90524 };
90525 
90526 struct xdp_ring_offset_v1 {
90527 	__u64 producer;
90528 	__u64 consumer;
90529 	__u64 desc;
90530 };
90531 
90532 struct xdp_mmap_offsets_v1 {
90533 	struct xdp_ring_offset_v1 rx;
90534 	struct xdp_ring_offset_v1 tx;
90535 	struct xdp_ring_offset_v1 fr;
90536 	struct xdp_ring_offset_v1 cr;
90537 };
90538 
90539 struct xsk_map_node {
90540 	struct list_head node;
90541 	struct xsk_map *map;
90542 	struct xdp_sock **map_entry;
90543 };
90544 
90545 struct xdp_ring {
90546 	u32 producer;
90547 	long: 32;
90548 	long: 64;
90549 	long: 64;
90550 	long: 64;
90551 	long: 64;
90552 	long: 64;
90553 	long: 64;
90554 	long: 64;
90555 	u32 pad1;
90556 	long: 32;
90557 	long: 64;
90558 	long: 64;
90559 	long: 64;
90560 	long: 64;
90561 	long: 64;
90562 	long: 64;
90563 	long: 64;
90564 	u32 consumer;
90565 	long: 32;
90566 	long: 64;
90567 	long: 64;
90568 	long: 64;
90569 	long: 64;
90570 	long: 64;
90571 	long: 64;
90572 	long: 64;
90573 	u32 pad2;
90574 	u32 flags;
90575 	long: 64;
90576 	long: 64;
90577 	long: 64;
90578 	long: 64;
90579 	long: 64;
90580 	long: 64;
90581 	long: 64;
90582 	u32 pad3;
90583 	long: 32;
90584 	long: 64;
90585 	long: 64;
90586 	long: 64;
90587 	long: 64;
90588 	long: 64;
90589 	long: 64;
90590 	long: 64;
90591 };
90592 
90593 struct xdp_rxtx_ring {
90594 	struct xdp_ring ptrs;
90595 	struct xdp_desc desc[0];
90596 };
90597 
90598 struct xdp_umem_ring {
90599 	struct xdp_ring ptrs;
90600 	u64 desc[0];
90601 };
90602 
90603 struct xsk_dma_map {
90604 	dma_addr_t *dma_pages;
90605 	struct device *dev;
90606 	struct net_device *netdev;
90607 	refcount_t users;
90608 	struct list_head list;
90609 	u32 dma_pages_cnt;
90610 	bool dma_need_sync;
90611 };
90612 
90613 struct xdp_diag_req {
90614 	__u8 sdiag_family;
90615 	__u8 sdiag_protocol;
90616 	__u16 pad;
90617 	__u32 xdiag_ino;
90618 	__u32 xdiag_show;
90619 	__u32 xdiag_cookie[2];
90620 };
90621 
90622 struct xdp_diag_msg {
90623 	__u8 xdiag_family;
90624 	__u8 xdiag_type;
90625 	__u16 pad;
90626 	__u32 xdiag_ino;
90627 	__u32 xdiag_cookie[2];
90628 };
90629 
90630 enum {
90631 	XDP_DIAG_NONE = 0,
90632 	XDP_DIAG_INFO = 1,
90633 	XDP_DIAG_UID = 2,
90634 	XDP_DIAG_RX_RING = 3,
90635 	XDP_DIAG_TX_RING = 4,
90636 	XDP_DIAG_UMEM = 5,
90637 	XDP_DIAG_UMEM_FILL_RING = 6,
90638 	XDP_DIAG_UMEM_COMPLETION_RING = 7,
90639 	XDP_DIAG_MEMINFO = 8,
90640 	XDP_DIAG_STATS = 9,
90641 	__XDP_DIAG_MAX = 10,
90642 };
90643 
90644 struct xdp_diag_info {
90645 	__u32 ifindex;
90646 	__u32 queue_id;
90647 };
90648 
90649 struct xdp_diag_ring {
90650 	__u32 entries;
90651 };
90652 
90653 struct xdp_diag_umem {
90654 	__u64 size;
90655 	__u32 id;
90656 	__u32 num_pages;
90657 	__u32 chunk_size;
90658 	__u32 headroom;
90659 	__u32 ifindex;
90660 	__u32 queue_id;
90661 	__u32 flags;
90662 	__u32 refs;
90663 };
90664 
90665 struct xdp_diag_stats {
90666 	__u64 n_rx_dropped;
90667 	__u64 n_rx_invalid;
90668 	__u64 n_rx_full;
90669 	__u64 n_fill_ring_empty;
90670 	__u64 n_tx_invalid;
90671 	__u64 n_tx_ring_empty;
90672 };
90673 
90674 struct pcibios_fwaddrmap {
90675 	struct list_head list;
90676 	struct pci_dev *dev;
90677 	resource_size_t fw_addr[17];
90678 };
90679 
90680 struct pci_check_idx_range {
90681 	int start;
90682 	int end;
90683 };
90684 
90685 struct pci_mmcfg_region {
90686 	struct list_head list;
90687 	struct resource res;
90688 	u64 address;
90689 	char *virt;
90690 	u16 segment;
90691 	u8 start_bus;
90692 	u8 end_bus;
90693 	char name[30];
90694 };
90695 
90696 struct acpi_table_mcfg {
90697 	struct acpi_table_header header;
90698 	u8 reserved[8];
90699 };
90700 
90701 struct acpi_mcfg_allocation {
90702 	u64 address;
90703 	u16 pci_segment;
90704 	u8 start_bus_number;
90705 	u8 end_bus_number;
90706 	u32 reserved;
90707 };
90708 
90709 struct pci_mmcfg_hostbridge_probe {
90710 	u32 bus;
90711 	u32 devfn;
90712 	u32 vendor;
90713 	u32 device;
90714 	const char * (*probe)();
90715 };
90716 
90717 typedef bool (*check_reserved_t)(u64, u64, enum e820_type);
90718 
90719 struct pci_root_info {
90720 	struct acpi_pci_root_info common;
90721 	struct pci_sysdata sd;
90722 	bool mcfg_added;
90723 	u8 start_bus;
90724 	u8 end_bus;
90725 };
90726 
90727 struct irq_info___2 {
90728 	u8 bus;
90729 	u8 devfn;
90730 	struct {
90731 		u8 link;
90732 		u16 bitmap;
90733 	} __attribute__((packed)) irq[4];
90734 	u8 slot;
90735 	u8 rfu;
90736 };
90737 
90738 struct irq_routing_table {
90739 	u32 signature;
90740 	u16 version;
90741 	u16 size;
90742 	u8 rtr_bus;
90743 	u8 rtr_devfn;
90744 	u16 exclusive_irqs;
90745 	u16 rtr_vendor;
90746 	u16 rtr_device;
90747 	u32 miniport_data;
90748 	u8 rfu[11];
90749 	u8 checksum;
90750 	struct irq_info___2 slots[0];
90751 };
90752 
90753 struct irq_router {
90754 	char *name;
90755 	u16 vendor;
90756 	u16 device;
90757 	int (*get)(struct pci_dev *, struct pci_dev *, int);
90758 	int (*set)(struct pci_dev *, struct pci_dev *, int, int);
90759 	int (*lvl)(struct pci_dev *, struct pci_dev *, int, int);
90760 };
90761 
90762 struct irq_router_handler {
90763 	u16 vendor;
90764 	int (*probe)(struct irq_router *, struct pci_dev *, u16);
90765 };
90766 
90767 struct pci_setup_rom {
90768 	struct setup_data data;
90769 	uint16_t vendor;
90770 	uint16_t devid;
90771 	uint64_t pcilen;
90772 	long unsigned int segment;
90773 	long unsigned int bus;
90774 	long unsigned int device;
90775 	long unsigned int function;
90776 	uint8_t romdata[0];
90777 };
90778 
90779 enum pci_bf_sort_state {
90780 	pci_bf_sort_default = 0,
90781 	pci_force_nobf = 1,
90782 	pci_force_bf = 2,
90783 	pci_dmi_bf = 3,
90784 };
90785 
90786 struct pci_root_res {
90787 	struct list_head list;
90788 	struct resource res;
90789 };
90790 
90791 struct pci_root_info___2 {
90792 	struct list_head list;
90793 	char name[12];
90794 	struct list_head resources;
90795 	struct resource busn;
90796 	int node;
90797 	int link;
90798 };
90799 
90800 struct amd_hostbridge {
90801 	u32 bus;
90802 	u32 slot;
90803 	u32 device;
90804 };
90805 
90806 #ifndef BPF_NO_PRESERVE_ACCESS_INDEX
90807 #pragma clang attribute pop
90808 #endif
90809 
90810 #endif /* __VMLINUX_H__ */
90811